Transaction executed successfully
Transaction Details
Inspect execution, participants, message data, gas usage, events and raw transaction data.
Transaction hash
B8A2F52F9B766399665322A363E17DE35FC22E9FA878C169DCE5A8396188F382
Transaction overview
Execution summary
TX INDEX
1
Position in block
GAS WANTED
16,761,651
Requested gas limit
GAS USED
13,967,993
Gas consumed
FEE
1000000ugnot
Transaction fee
Participants
Message
Message #1
m_addpkg
Arguments
g1manfred47kzduec920z88wfr64ylksmdcedlf5
Execution log
msg:0,success:true,log:,events:[]
Events
No events emitted by this transaction.
Raw encoded transaction
CsdJCgwvdm0ubV9hZGRwa2cStkkKKGcxbWFuZnJlZDQ3a3pkdWVjOTIwejg4d2ZyNjR5bGtzbWRjZWRsZjUSiUkKDmVuZ2xpc2hhdWN0aW9uEilnbm8ubGFuZC9yL21vdWwveC9kYWlseS9lbmdsaXNoYXVjdGlvbi92MBrrFQoJUkVBRE1FLm1kEt0VIyBFbmdsaXNoIEF1Y3Rpb24KCj4g4pqg77iPICoqRXhwZXJpbWVudGFsIOKAlCBnZW5lcmF0ZWQgd2l0aCBubyBodW1hbiBzdXBlcnZpc2lvbioqIGJ5IHRoZSBkYWlseSBNQ1AgcGlwZWxpbmUgKFNvbGlkaXR54oaSR25vIHBvcnQpLiBOb3QgYXVkaXRlZC4gU2VlIFtyL21vdWwveC9kYWlseV0oaHR0cHM6Ly9naXRodWIuY29tL21vdWwvZ25vLWNvbnRyYWN0cy9ibG9iL21haW4vci9tb3VsL3gvZGFpbHkvUkVBRE1FLm1kKS4KCi0tLQoKCkFuIGlkaW9tYXRpYyBnbm8ubGFuZCBwb3J0IG9mIHRoZSBjbGFzc2ljIFNvbGlkaXR5ICoqRW5nbGlzaCAoYXNjZW5kaW5nLWJpZCkKYXVjdGlvbioqLiBJdCBwb3J0cyB0aGUgY29yZSBtZWNoYW5pY3Mg4oCUIGEgc2VsbGVyIG9wZW5zIGFuIGF1Y3Rpb24sIGJpZGRlcnMKc3VibWl0IHN0cmljdGx5IGluY3JlYXNpbmcgYmlkcywgdGhlIGRpc3BsYWNlZCB0b3AgYmlkIGJlY29tZXMgcmVmdW5kYWJsZSwgYW5kCmFmdGVyIGEgYmxvY2sgZGVhZGxpbmUgYW55b25lIGNhbiBzZXR0bGUgaXQg4oCUIGludG8gYSBzaW5nbGUgcmVhbG0gdGhhdCBob3N0cwptYW55IGNvbmN1cnJlbnQgYXVjdGlvbnMuCgpTb2xpZGl0eSdzIGBtc2cuc2VuZGVyYCBtYXBzIHRvIGB1bnNhZmUuUHJldmlvdXNSZWFsbSgpLkFkZHJlc3MoKWAsIGBibG9jay5udW1iZXJgCnRvIGBydW50aW1lLkNoYWluSGVpZ2h0KClgLCBgcmVxdWlyZWAgdG8gYHBhbmljYCwgYW5kIGV2ZW50cyB0byBgY2hhaW4uRW1pdGAuClRoZXJlIGlzIG5vIHJlYWwgY29pbiB0cmFuc2ZlcjogYmlkIGFtb3VudHMgYW5kIHJlZnVuZHMgYXJlIHRyYWNrZWQgYXMgcGxhaW4KYHVpbnQ2NGAgYWNjb3VudGluZyBpbiBvcmRlcmVkIGBhdmwuVHJlZWBzIChtaXJyb3JpbmcgU29saWRpdHkncyBgcGVuZGluZ1JldHVybnNgCndpdGhkcmF3IHBhdHRlcm4pLiBBdWN0aW9ucyBhbmQgcGVuZGluZyByZWZ1bmRzIGFyZSBrZXllZCBzbyBgUmVuZGVyYCBjYW4gaXRlcmF0ZQpkZXRlcm1pbmlzdGljYWxseS4KCiMjIFRyYW5zYWN0aW9ucwoKLSBgU3RhcnQoY3VyLCBpdGVtIHN0cmluZywgZHVyYXRpb25CbG9ja3MgaW50NjQpIGludDY0YCDigJQgb3BlbiBhbiBhdWN0aW9uIChjYWxsZXIKICBiZWNvbWVzIHRoZSBzZWxsZXIpOyBlbmRzIGF0IGBDaGFpbkhlaWdodCgpICsgZHVyYXRpb25CbG9ja3NgLiBSZXR1cm5zIHRoZSBpZC4KLSBgQmlkKGN1ciwgaWQgaW50NjQsIGFtb3VudCB1aW50NjQpYCDigJQgYmlkOyBtdXN0IHN0cmljdGx5IGV4Y2VlZCB0aGUgY3VycmVudAogIGhpZ2hlc3QuIFRoZSBwcmlvciB0b3AgYmlkIGJlY29tZXMgcmVmdW5kYWJsZS4KLSBgV2l0aGRyYXcoY3VyLCBpZCBpbnQ2NCkgdWludDY0YCDigJQgcmVjbGFpbSB5b3VyIGRpc3BsYWNlZCBiaWRzIGZvciBhbiBhdWN0aW9uLgotIGBFbmQoY3VyLCBpZCBpbnQ2NClgIOKAlCBhZnRlciB0aGUgZGVhZGxpbmUsIGF3YXJkIHRoZSBpdGVtIHRvIHRoZSB0b3AgYmlkZGVyLgoKIyMgRXhhbXBsZSBjYWxscwoKYGBgCiMgb3BlbiBhIDEwMC1ibG9jayBhdWN0aW9uIGZvciBhIHBhaW50aW5nIC0+IHJldHVybnMgaWQgMQpTdGFydCgiVmludGFnZSBwYWludGluZyIsIDEwMCkKCiMgdHdvIGJpZGRlcnMgY29tcGV0ZSAoYW1vdW50cyBhcmUgYWNjb3VudGluZyB1bml0cywgbm90IHJlYWwgY29pbnMpCkJpZCgxLCA1MDApICAgICAjIGFsaWNlCkJpZCgxLCA3NTApICAgICAjIGJvYiBvdXRiaWRzIC0+IGFsaWNlJ3MgNTAwIGlzIG5vdyByZWZ1bmRhYmxlCldpdGhkcmF3KDEpICAgICAjIGFsaWNlIHJlY2xhaW1zIDUwMAoKIyBvbmNlIENoYWluSGVpZ2h0KCkgPj0gZW5kSGVpZ2h0LCBhbnlvbmUgc2V0dGxlcyBpdApFbmQoMSkgICAgICAgICAgIyBpdGVtIGF3YXJkZWQgdG8gYm9iIGF0IDc1MApgYGAKClZpc2l0IHRoZSByZWFsbSB0byBzZWUgdGhlIGxpdmUgdGFibGUgb2YgYXVjdGlvbnM6IGl0ZW0sIGhpZ2hlc3QgYmlkICsgYmlkZGVyLApibG9ja3MgcmVtYWluaW5nIG9yIGVuZGVkLCBhbmQgdGhlIHdpbm5lci4KCjwhLS0gQkVHSU4gR05PQ09OVFJBQ1RTIEZPT1RFUiAoZ2VuZXJhdGVkIGJ5IGBtYWtlIHJlYWRtZXNgOyBkbyBub3QgZWRpdCBiZWxvdykgLS0+CgotLS0KClBhcnQgb2YgKipbbW91bC9nbm8tY29udHJhY3RzXShodHRwczovL2dpdGh1Yi5jb20vbW91bC9nbm8tY29udHJhY3RzKSoqIOKAlCBtb3VsJ3MgdmVyc2lvbmVkIGduby5sYW5kIGNvbnRyYWN0cy4gU2VlIHRoZSByZXBvc2l0b3J5IGZvciB0aGUgZnVsbCBjYXRhbG9nLCBidWlsZC90ZXN0IHRvb2xpbmcsIGFuZCB1c2FnZS4KCioqRGVwZW5kZW5jeSBncmFwaDoqKgoKIVtnbm8ubGFuZC9yL21vdWwveC9kYWlseS9lbmdsaXNoYXVjdGlvbi92MCBkZXBlbmRlbmN5IGdyYXBoXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbW91bC9nbm8tY29udHJhY3RzL21haW4vX2Fzc2V0cy9nbm8ubGFuZC9yL21vdWwveC9kYWlseS9lbmdsaXNoYXVjdGlvbi92MC9kZXBzLnBuZykKCj4g8J+nqiAqKkhpZ2hseSBleHBlcmltZW50YWwg4oCUIHBvdGVudGlhbGx5IHZpYmUtY29kZWQuKiogTm90IGF1ZGl0ZWQ7IG1heSBicmVhaywgY2hhbmdlLCBvciBiZSByZW1vdmVkIGF0IGFueSB0aW1lLiBEbyBub3QgdXNlIHdpdGggYW55dGhpbmcgb2YgdmFsdWUuIEZ1bGwgZGlzY2xhaW1lcjogW0RJU0NMQUlNRVJdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3VsL2duby1jb250cmFjdHMvYmxvYi9tYWluL0RJU0NMQUlNRVIubWQpLgoKPCEtLSBFTkQgR05PQ09OVFJBQ1RTIEZPT1RFUiAtLT4KGuYxChJlbmdsaXNoYXVjdGlvbi5nbm8SzzEvLyBQYWNrYWdlIGVuZ2xpc2hhdWN0aW9uIGlzIGFuIGlkaW9tYXRpYyBnbm8ubGFuZCBwb3J0IG9mIHRoZSBjbGFzc2ljIFNvbGlkaXR5Ci8vIEVuZ2xpc2ggKGFzY2VuZGluZy1iaWQpIGF1Y3Rpb24uIEFueW9uZSBjYW4gU3RhcnQgYW4gYXVjdGlvbiBmb3IgYSBuYW1lZCBpdGVtCi8vIHdpdGggYSBkdXJhdGlvbiBpbiBibG9ja3M7IGJpZGRlcnMgY2FsbCBCaWQgd2l0aCBhIHN0cmljdGx5IGluY3JlYXNpbmcgYW1vdW50LgovLyBUaGUgcHJldmlvdXMgaGlnaGVzdCBiaWQgYmVjb21lcyByZWZ1bmRhYmxlIChjbGFpbSBpdCB3aXRoIFdpdGhkcmF3KS4gQWZ0ZXIKLy8gdGhlIGF1Y3Rpb24ncyBlbmQgaGVpZ2h0IGFueW9uZSBtYXkgY2FsbCBFbmQsIGF3YXJkaW5nIHRoZSBpdGVtIHRvIHRoZSBoaWdoZXN0Ci8vIGJpZGRlci4gQXVjdGlvbnMgYW5kIHBlbmRpbmcgcmVmdW5kcyBsaXZlIGluIG9yZGVyZWQgYXZsIHRyZWVzIHNvIFJlbmRlciBjYW4KLy8gaXRlcmF0ZSBkZXRlcm1pbmlzdGljYWxseS4KcGFja2FnZSBlbmdsaXNoYXVjdGlvbgoKaW1wb3J0ICgKCSJzdHJjb252IgoKCSJjaGFpbiIKCSJjaGFpbi9ydW50aW1lIgoJImNoYWluL3J1bnRpbWUvdW5zYWZlIgoKCSJnbm8ubGFuZC9wL250L2F2bC92MCIKKQoKLy8gQXVjdGlvbiBpcyBhIHNpbmdsZSBhc2NlbmRpbmctYmlkIGF1Y3Rpb24uCnR5cGUgQXVjdGlvbiBzdHJ1Y3QgewoJSUQgICAgICAgICAgICBpbnQ2NAoJU2VsbGVyICAgICAgICBhZGRyZXNzCglJdGVtICAgICAgICAgIHN0cmluZwoJRW5kSGVpZ2h0ICAgICBpbnQ2NAoJSGlnaGVzdEJpZCAgICB1aW50NjQKCUhpZ2hlc3RCaWRkZXIgYWRkcmVzcwoJRW5kZWQgICAgICAgICBib29sCn0KCnZhciAoCglhdWN0aW9ucyBhdmwuVHJlZSAvLyBrZXkoaWQpIC0+ICpBdWN0aW9uCglwZW5kaW5nICBhdmwuVHJlZSAvLyAiPGlkPjo8YWRkcj4iIC0+IHVpbnQ2NCByZWZ1bmRhYmxlIGFtb3VudAoJbmV4dElEICAgaW50NjQgICAgPSAxCikKCi8vIGtleSBmb3JtYXRzIGFuIGlkIGludG8gYSB6ZXJvLXBhZGRlZCwgbGV4aWNvZ3JhcGhpY2FsbHktc29ydGFibGUgc3RyaW5nLgpmdW5jIGtleShpZCBpbnQ2NCkgc3RyaW5nIHsKCXMgOj0gc3RyY29udi5Gb3JtYXRJbnQoaWQsIDEwKQoJZm9yIGxlbihzKSA8IDEyIHsKCQlzID0gIjAiICsgcwoJfQoJcmV0dXJuIHMKfQoKLy8gcGVuZEtleSBmb3JtYXRzIHRoZSByZWZ1bmQga2V5IGZvciBhIGdpdmVuIGF1Y3Rpb24gaWQgYW5kIGJpZGRlci4KZnVuYyBwZW5kS2V5KGlkIGludDY0LCBiaWRkZXIgYWRkcmVzcykgc3RyaW5nIHsKCXJldHVybiBrZXkoaWQpICsgIjoiICsgYmlkZGVyLlN0cmluZygpCn0KCi8vIFN0YXJ0IG9wZW5zIGEgbmV3IGF1Y3Rpb24gZm9yIGBpdGVtYCBydW5uaW5nIGZvciBgZHVyYXRpb25CbG9ja3NgIGJsb2NrcyBmcm9tCi8vIHRoZSBjdXJyZW50IGhlaWdodC4gVGhlIGNhbGxlciBiZWNvbWVzIHRoZSBzZWxsZXIuIFJldHVybnMgdGhlIGF1Y3Rpb24gaWQuCmZ1bmMgU3RhcnQoY3VyIHJlYWxtLCBpdGVtIHN0cmluZywgZHVyYXRpb25CbG9ja3MgaW50NjQpIGludDY0IHsKCWlmIGl0ZW0gPT0gIiIgewoJCXBhbmljKCJlbmdsaXNoYXVjdGlvbjogaXRlbSBtdXN0IG5vdCBiZSBlbXB0eSIpCgl9CglpZiBkdXJhdGlvbkJsb2NrcyA8PSAwIHsKCQlwYW5pYygiZW5nbGlzaGF1Y3Rpb246IGR1cmF0aW9uIG11c3QgYmUgPiAwIGJsb2NrcyIpCgl9CglzZWxsZXIgOj0gdW5zYWZlLlByZXZpb3VzUmVhbG0oKS5BZGRyZXNzKCkKCWlkIDo9IG5leHRJRAoJbmV4dElEKysKCglhIDo9ICZBdWN0aW9uewoJCUlEOiAgICAgICAgaWQsCgkJU2VsbGVyOiAgICBzZWxsZXIsCgkJSXRlbTogICAgICBpdGVtLAoJCUVuZEhlaWdodDogcnVudGltZS5DaGFpbkhlaWdodCgpICsgZHVyYXRpb25CbG9ja3MsCgl9CglhdWN0aW9ucy5TZXQoa2V5KGlkKSwgYSkKCgljaGFpbi5FbWl0KCJTdGFydCIsCgkJImlkIiwgc3RyY29udi5Gb3JtYXRJbnQoaWQsIDEwKSwKCQkic2VsbGVyIiwgc2VsbGVyLlN0cmluZygpLAoJCSJpdGVtIiwgaXRlbSwKCQkiZW5kSGVpZ2h0Iiwgc3RyY29udi5Gb3JtYXRJbnQoYS5FbmRIZWlnaHQsIDEwKSwKCSkKCXJldHVybiBpZAp9CgovLyBCaWQgcGxhY2VzIGEgYmlkIG9mIGBhbW91bnRgIG9uIGF1Y3Rpb24gYGlkYC4gSXQgbXVzdCBzdHJpY3RseSBleGNlZWQgdGhlCi8vIGN1cnJlbnQgaGlnaGVzdCBiaWQuIFRoZSBkaXNwbGFjZWQgaGlnaGVzdCBiaWQgYmVjb21lcyByZWZ1bmRhYmxlIHRvIGl0cwovLyBiaWRkZXIgdmlhIFdpdGhkcmF3LgpmdW5jIEJpZChjdXIgcmVhbG0sIGlkIGludDY0LCBhbW91bnQgdWludDY0KSB7CglhIDo9IG11c3RHZXQoaWQpCglpZiBhLkVuZGVkIHx8IHJ1bnRpbWUuQ2hhaW5IZWlnaHQoKSA+PSBhLkVuZEhlaWdodCB7CgkJcGFuaWMoImVuZ2xpc2hhdWN0aW9uOiBhdWN0aW9uIGhhcyBlbmRlZCIpCgl9CglpZiBhbW91bnQgPD0gYS5IaWdoZXN0QmlkIHsKCQlwYW5pYygiZW5nbGlzaGF1Y3Rpb246IGJpZCBtdXN0IHN0cmljdGx5IGV4Y2VlZCBjdXJyZW50IGhpZ2hlc3QiKQoJfQoJYmlkZGVyIDo9IHVuc2FmZS5QcmV2aW91c1JlYWxtKCkuQWRkcmVzcygpCglpZiBiaWRkZXIgPT0gYS5TZWxsZXIgewoJCXBhbmljKCJlbmdsaXNoYXVjdGlvbjogc2VsbGVyIGNhbm5vdCBiaWQiKQoJfQoKCS8vIFRoZSBwcmlvciB0b3AgYmlkIGJlY29tZXMgcmVmdW5kYWJsZSAoYWNjdW11bGF0ZSBpbiBjYXNlIG9mIHJlcGVhdHMpLgoJaWYgYS5IaWdoZXN0QmlkID4gMCB7CgkJcGsgOj0gcGVuZEtleShpZCwgYS5IaWdoZXN0QmlkZGVyKQoJCXBlbmRpbmcuU2V0KHBrLCBwZW5kaW5nT2YoaWQsIGEuSGlnaGVzdEJpZGRlcikrYS5IaWdoZXN0QmlkKQoJfQoKCWEuSGlnaGVzdEJpZCA9IGFtb3VudAoJYS5IaWdoZXN0QmlkZGVyID0gYmlkZGVyCgoJY2hhaW4uRW1pdCgiQmlkIiwKCQkiaWQiLCBzdHJjb252LkZvcm1hdEludChpZCwgMTApLAoJCSJiaWRkZXIiLCBiaWRkZXIuU3RyaW5nKCksCgkJImFtb3VudCIsIHN0cmNvbnYuRm9ybWF0VWludChhbW91bnQsIDEwKSwKCSkKfQoKLy8gV2l0aGRyYXcgcmVmdW5kcyB0aGUgY2FsbGVyJ3MgYWNjdW11bGF0ZWQgZGlzcGxhY2VkIGJpZHMgZm9yIGF1Y3Rpb24gYGlkYC4KLy8gUmV0dXJucyB0aGUgYW1vdW50IHJlZnVuZGVkICgwIGlmIG5vdGhpbmcgcGVuZGluZykuCmZ1bmMgV2l0aGRyYXcoY3VyIHJlYWxtLCBpZCBpbnQ2NCkgdWludDY0IHsKCW11c3RHZXQoaWQpIC8vIGVuc3VyZSBhdWN0aW9uIGV4aXN0cwoJY2FsbGVyIDo9IHVuc2FmZS5QcmV2aW91c1JlYWxtKCkuQWRkcmVzcygpCglhbW91bnQgOj0gcGVuZGluZ09mKGlkLCBjYWxsZXIpCglpZiBhbW91bnQgPT0gMCB7CgkJcmV0dXJuIDAKCX0KCXBlbmRpbmcuUmVtb3ZlKHBlbmRLZXkoaWQsIGNhbGxlcikpCgljaGFpbi5FbWl0KCJXaXRoZHJhdyIsCgkJImlkIiwgc3RyY29udi5Gb3JtYXRJbnQoaWQsIDEwKSwKCQkiYmlkZGVyIiwgY2FsbGVyLlN0cmluZygpLAoJCSJhbW91bnQiLCBzdHJjb252LkZvcm1hdFVpbnQoYW1vdW50LCAxMCksCgkpCglyZXR1cm4gYW1vdW50Cn0KCi8vIEVuZCBjbG9zZXMgYXVjdGlvbiBgaWRgIG9uY2UgaXRzIGVuZCBoZWlnaHQgaXMgcmVhY2hlZCwgYXdhcmRpbmcgdGhlIGl0ZW0gdG8KLy8gdGhlIGhpZ2hlc3QgYmlkZGVyIChpZiBhbnkpLiBBbnlvbmUgbWF5IGNhbGwgaXQuCmZ1bmMgRW5kKGN1ciByZWFsbSwgaWQgaW50NjQpIHsKCWEgOj0gbXVzdEdldChpZCkKCWlmIGEuRW5kZWQgewoJCXBhbmljKCJlbmdsaXNoYXVjdGlvbjogYXVjdGlvbiBhbHJlYWR5IGVuZGVkIikKCX0KCWlmIHJ1bnRpbWUuQ2hhaW5IZWlnaHQoKSA8IGEuRW5kSGVpZ2h0IHsKCQlwYW5pYygiZW5nbGlzaGF1Y3Rpb246IGF1Y3Rpb24gbm90IHlldCBvdmVyIikKCX0KCWEuRW5kZWQgPSB0cnVlCgoJY2hhaW4uRW1pdCgiRW5kIiwKCQkiaWQiLCBzdHJjb252LkZvcm1hdEludChpZCwgMTApLAoJCSJ3aW5uZXIiLCBhLkhpZ2hlc3RCaWRkZXIuU3RyaW5nKCksCgkJImFtb3VudCIsIHN0cmNvbnYuRm9ybWF0VWludChhLkhpZ2hlc3RCaWQsIDEwKSwKCSkKfQoKLy8gLS0tIHJlYWQtb25seSBoZWxwZXJzIChzYWZlIGZyb20gdGVzdHMgYW5kIFJlbmRlcikgLS0tCgovLyBtdXN0R2V0IHJldHVybnMgdGhlIGF1Y3Rpb24gZm9yIGBpZGAsIHBhbmlja2luZyBpZiBpdCBkb2VzIG5vdCBleGlzdC4KZnVuYyBtdXN0R2V0KGlkIGludDY0KSAqQXVjdGlvbiB7Cgl2IDo9IGF1Y3Rpb25zLkdldChrZXkoaWQpKQoJaWYgdiA9PSBuaWwgewoJCXBhbmljKCJlbmdsaXNoYXVjdGlvbjogbm8gc3VjaCBhdWN0aW9uIikKCX0KCXJldHVybiB2LigqQXVjdGlvbikKfQoKLy8gcGVuZGluZ09mIHJldHVybnMgdGhlIHJlZnVuZGFibGUgYW1vdW50IG93ZWQgdG8gYGJpZGRlcmAgZm9yIGF1Y3Rpb24gYGlkYC4KZnVuYyBwZW5kaW5nT2YoaWQgaW50NjQsIGJpZGRlciBhZGRyZXNzKSB1aW50NjQgewoJdiA6PSBwZW5kaW5nLkdldChwZW5kS2V5KGlkLCBiaWRkZXIpKQoJaWYgdiA9PSBuaWwgewoJCXJldHVybiAwCgl9CglyZXR1cm4gdi4odWludDY0KQp9CgovLyBibG9ja3NMZWZ0IHJldHVybnMgaG93IG1hbnkgYmxvY2tzIHJlbWFpbiBiZWZvcmUgYGFgIGNhbiBiZSBlbmRlZCAoMCBpZiB0aGUKLy8gZW5kIGhlaWdodCBoYXMgYmVlbiByZWFjaGVkKS4KZnVuYyBibG9ja3NMZWZ0KGEgKkF1Y3Rpb24sIGhlaWdodCBpbnQ2NCkgaW50NjQgewoJaWYgaGVpZ2h0ID49IGEuRW5kSGVpZ2h0IHsKCQlyZXR1cm4gMAoJfQoJcmV0dXJuIGEuRW5kSGVpZ2h0IC0gaGVpZ2h0Cn0KCi8vIGhhc1dpbm5lciByZXBvcnRzIHdoZXRoZXIgdGhlIGF1Y3Rpb24gcmVjZWl2ZWQgYXQgbGVhc3Qgb25lIGJpZC4KZnVuYyBoYXNXaW5uZXIoYSAqQXVjdGlvbikgYm9vbCB7CglyZXR1cm4gYS5IaWdoZXN0QmlkID4gMAp9CgovLyBSZW5kZXIgbGlzdHMgZXZlcnkgYXVjdGlvbiB3aXRoIGl0ZW0sIHRvcCBiaWQgKyBiaWRkZXIsIHRpbWUgbGVmdCwgYW5kIHdpbm5lci4KZnVuYyBSZW5kZXIocGF0aCBzdHJpbmcpIHN0cmluZyB7CglvdXQgOj0gIiMgRW5nbGlzaCBBdWN0aW9uXG5cbiIKCW91dCArPSAiQXNjZW5kaW5nLWJpZCBhdWN0aW9ucy4gU3RhcnQgb25lLCBvdXRiaWQgb3RoZXJzLCBhbmQgRW5kIGl0IGFmdGVyICIKCW91dCArPSAiaXRzIGJsb2NrIGRlYWRsaW5lIHRvIGF3YXJkIHRoZSBpdGVtIHRvIHRoZSB0b3AgYmlkZGVyLlxuXG4iCgoJaWYgYXVjdGlvbnMuU2l6ZSgpID09IDAgewoJCW91dCArPSAiX05vIGF1Y3Rpb25zIHlldC4gQ2FsbCBgU3RhcnRgIHRvIG9wZW4gb25lLl9cbiIKCQlyZXR1cm4gb3V0Cgl9CgoJaGVpZ2h0IDo9IHJ1bnRpbWUuQ2hhaW5IZWlnaHQoKQoJb3V0ICs9ICJfQ3VycmVudCBibG9jayBoZWlnaHQ6ICIgKyBzdHJjb252LkZvcm1hdEludChoZWlnaHQsIDEwKSArICJfXG5cbiIKCW91dCArPSAifCBJRCB8IEl0ZW0gfCBIaWdoZXN0IEJpZCB8IEJpZGRlciB8IFN0YXR1cyB8IFdpbm5lciB8XG4iCglvdXQgKz0gInwtLS06fC0tLS0tLXwtLS0tLS0tLS0tLS06fC0tLS0tLS0tfC0tLS0tLS0tfC0tLS0tLS0tfFxuIgoKCWF1Y3Rpb25zLkl0ZXJhdGUoIiIsICIiLCBmdW5jKF8gc3RyaW5nLCB2IGludGVyZmFjZXt9KSBib29sIHsKCQlhIDo9IHYuKCpBdWN0aW9uKQoKCQliaWRTdHIgOj0gIuKAlCIKCQliaWRkZXJTdHIgOj0gIuKAlCIKCQlpZiBoYXNXaW5uZXIoYSkgewoJCQliaWRTdHIgPSBzdHJjb252LkZvcm1hdFVpbnQoYS5IaWdoZXN0QmlkLCAxMCkKCQkJYmlkZGVyU3RyID0gImAiICsgYS5IaWdoZXN0QmlkZGVyLlN0cmluZygpICsgImAiCgkJfQoKCQlzdGF0dXMgOj0gIiIKCQl3aW5uZXIgOj0gIuKAlCIKCQlzd2l0Y2ggewoJCWNhc2UgYS5FbmRlZDoKCQkJc3RhdHVzID0gImVuZGVkIgoJCQlpZiBoYXNXaW5uZXIoYSkgewoJCQkJd2lubmVyID0gImAiICsgYS5IaWdoZXN0QmlkZGVyLlN0cmluZygpICsgImAiCgkJCX0gZWxzZSB7CgkJCQl3aW5uZXIgPSAibm8gYmlkcyIKCQkJfQoJCWNhc2UgaGVpZ2h0ID49IGEuRW5kSGVpZ2h0OgoJCQlzdGF0dXMgPSAiYXdhaXRpbmcgRW5kIgoJCWRlZmF1bHQ6CgkJCXN0YXR1cyA9IHN0cmNvbnYuRm9ybWF0SW50KGJsb2Nrc0xlZnQoYSwgaGVpZ2h0KSwgMTApICsgIiBibG9ja3MgbGVmdCIKCQl9CgoJCW91dCArPSAifCAiICsgc3RyY29udi5Gb3JtYXRJbnQoYS5JRCwgMTApICsgIiB8ICIgKyBhLkl0ZW0gKyAiIHwgIiArCgkJCWJpZFN0ciArICIgfCAiICsgYmlkZGVyU3RyICsgIiB8ICIgKyBzdGF0dXMgKyAiIHwgIiArIHdpbm5lciArICIgfFxuIgoJCXJldHVybiBmYWxzZQoJfSkKCXJldHVybiBvdXQKfQoaUAoLZ25vbW9kLnRvbWwSQW1vZHVsZSA9ICJnbm8ubGFuZC9yL21vdWwveC9kYWlseS9lbmdsaXNoYXVjdGlvbi92MCIKZ25vID0gIjAuOSIKIiMKEy9nbm8uTWVtUGFja2FnZVR5cGUSDAoKTVBVc2VyUHJvZBITCOaM/g8SDDEwMDAwMDB1Z25vdBqoAQo6ChMvdG0uUHViS2V5U2VjcDI1NmsxEiMKIQIAUko/jSwAOonEP0X+r2647UW246Nfe75rO0n/ni2DyBJAvO3vfmSeLEJfN0aW+KILzkHU4xGgMaOiK8ccRcB+W3xP3dWqIbsZ5mI93PZaSlbNKTmI3V7NdDQXc0PQx99f8BooZzFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFsdXV4ZSIKZ25vcHVibGlzaA==