Transaction executed successfully
Transaction Details
Inspect execution, participants, message data, gas usage, events and raw transaction data.
Transaction hash
A5240C71E7EFCECF0C04539479FC9EDE92E9C0E1AF5CCB1E8F4D204F48A80131
Transaction overview
Execution summary
TX INDEX
0
Position in block
GAS WANTED
17,624,718
Requested gas limit
GAS USED
14,687,215
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
CvFHCgwvdm0ubV9hZGRwa2cS4EcKKGcxbWFuZnJlZDQ3a3pkdWVjOTIwejg4d2ZyNjR5bGtzbWRjZWRsZjUSs0cKCGNvbm5lY3Q0EiNnbm8ubGFuZC9yL21vdWwveC9kYWlseS9jb25uZWN0NC92MBrjDwoJUkVBRE1FLm1kEtUPIyBDb25uZWN0IEZvdXIKCj4g4pqg77iPICoqRXhwZXJpbWVudGFsIOKAlCBnZW5lcmF0ZWQgd2l0aCBubyBodW1hbiBzdXBlcnZpc2lvbi4qKiBUaGlzIHJlYWxtIHdhcwo+IHByb2R1Y2VkIGF1dG9tYXRpY2FsbHkgYnkgYW4gTUNQLWRyaXZlbiBhZ2VudCB0byBleGVyY2lzZSB0aGUgZ25vIE1DUCBzZXJ2ZXIKPiBhbmQgdG9vbGluZywgYW5kIHRvIGdlbmVyYXRlIHRlc3QgY29udGVudCBmb3IgZ25vIGNvbXBpbGVycywgbGludGVycyBhbmQKPiBmb3JtYXR0ZXJzLiAqKk5vdCBhdWRpdGVkLiBOb3QgZm9yIHByb2R1Y3Rpb24uKiogRnVsbCBjb250ZXh0ICYgZm9sZGVyIFJFQURNRToKPiBbci9tb3VsL3gvZGFpbHldKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3VsL2duby1jb250cmFjdHMvYmxvYi9tYWluL3IvbW91bC94L2RhaWx5L1JFQURNRS5tZCkKCi0tLQoKCkEgdHdvLXBsYXllciBDb25uZWN0IEZvdXIgcmVhbG0gb24gYSA3LXdpZGUgw5cgNi10YWxsIGJvYXJkLiBUaGUgZ2FtZSBjcmVhdG9yIHBsYXlzIPCflLQgYW5kIG1vdmVzIGZpcnN0OyB0aGUgbmFtZWQgb3Bwb25lbnQgcGxheXMg8J+foS4gYERyb3BgIGVuZm9yY2VzIHR1cm4gb3JkZXIgYnkgY2FsbGVyLCByZWplY3RzIGZ1bGwgYW5kIG91dC1vZi1yYW5nZSBjb2x1bW5zLCBhbmQgZGV0ZWN0cyBhIGhvcml6b250YWwsIHZlcnRpY2FsLCBvciBkaWFnb25hbCA0LWluLWEtcm93IChvciBhIGRyYXcpLiBgUmVuZGVyYCBkcmF3cyB0aGUgYm9hcmQgd2l0aCDwn5S08J+focK3IGFuZCBzaG93cyB3aG9zZSB0dXJuIGl0IGlzIG9yIHdobyB3b24uCgpSZWFsbSBwYXRoOiBgZ25vLmxhbmQvci9SRVBMQUNFX0FERFIvY29ubmVjdDRgCgojIyBFeGFtcGxlIGNhbGxzCgpgYGAKIyBjcmVhdGUgYSBnYW1lIGFnYWluc3QgYW5vdGhlciBhZGRyZXNzICh5b3UgYXJlIPCflLQsIHJldHVybnMgdGhlIGdhbWUgaWQpCk5ld0dhbWUoZzF6YWJjLi4ub3Bwb25lbnQpICAgIyAtPiAxCgojIGRyb3AgZGlzY3MgaW50byBjb2x1bW5zIDAtNiAodHVybnMgYWx0ZXJuYXRlLCBlbmZvcmNlZCBieSBjYWxsZXIpCkRyb3AoMSwgMykgICAjIPCflLQgZHJvcHMgaW4gY29sdW1uIDMKRHJvcCgxLCAzKSAgICMg8J+foSBkcm9wcyBpbiBjb2x1bW4gMyAoY2FsbGVkIGZyb20gb3Bwb25lbnQncyBrZXkpCgojIHZpZXcgc3RhdGUKcmVuZGVyOiAgICAgICAgICAgICMgbGlzdHMgYWxsIGdhbWVzCnJlbmRlcjoxICAgICAgICAgICAjIHNob3dzIGJvYXJkIGZvciBnYW1lIDEKYGBgCgo8IS0tIEJFR0lOIEdOT0NPTlRSQUNUUyBGT09URVIgKGdlbmVyYXRlZCBieSBgbWFrZSByZWFkbWVzYDsgZG8gbm90IGVkaXQgYmVsb3cpIC0tPgoKLS0tCgpQYXJ0IG9mICoqW21vdWwvZ25vLWNvbnRyYWN0c10oaHR0cHM6Ly9naXRodWIuY29tL21vdWwvZ25vLWNvbnRyYWN0cykqKiDigJQgbW91bCdzIHZlcnNpb25lZCBnbm8ubGFuZCBjb250cmFjdHMuIFNlZSB0aGUgcmVwb3NpdG9yeSBmb3IgdGhlIGZ1bGwgY2F0YWxvZywgYnVpbGQvdGVzdCB0b29saW5nLCBhbmQgdXNhZ2UuCgoqKkRlcGVuZGVuY3kgZ3JhcGg6KioKCiFbZ25vLmxhbmQvci9tb3VsL3gvZGFpbHkvY29ubmVjdDQvdjAgZGVwZW5kZW5jeSBncmFwaF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL21vdWwvZ25vLWNvbnRyYWN0cy9tYWluL19hc3NldHMvZ25vLmxhbmQvci9tb3VsL3gvZGFpbHkvY29ubmVjdDQvdjAvZGVwcy5wbmcpCgo+IPCfp6ogKipIaWdobHkgZXhwZXJpbWVudGFsIOKAlCBwb3RlbnRpYWxseSB2aWJlLWNvZGVkLioqIE5vdCBhdWRpdGVkOyBtYXkgYnJlYWssIGNoYW5nZSwgb3IgYmUgcmVtb3ZlZCBhdCBhbnkgdGltZS4gRG8gbm90IHVzZSB3aXRoIGFueXRoaW5nIG9mIHZhbHVlLiBGdWxsIGRpc2NsYWltZXI6IFtESVNDTEFJTUVSXShodHRwczovL2dpdGh1Yi5jb20vbW91bC9nbm8tY29udHJhY3RzL2Jsb2IvbWFpbi9ESVNDTEFJTUVSLm1kKS4KCjwhLS0gRU5EIEdOT0NPTlRSQUNUUyBGT09URVIgLS0+ChqqNgoMY29ubmVjdDQuZ25vEpk2cGFja2FnZSBjb25uZWN0NAoKaW1wb3J0ICgKCSJjaGFpbiIKCSJjaGFpbi9ydW50aW1lL3Vuc2FmZSIKCSJlcnJvcnMiCgkic3RyY29udiIKCSJzdHJpbmdzIgoKCSJnbm8ubGFuZC9wL250L2F2bC92MCIKKQoKY29uc3QgKAoJY29scyA9IDcKCXJvd3MgPSA2CikKCi8vIGNlbGwgdmFsdWVzCmNvbnN0ICgKCWVtcHR5ID0gMAoJcmVkICAgPSAxIC8vIPCflLQgZ2FtZSBjcmVhdG9yIChjYWxsZXIgb2YgTmV3R2FtZSkKCXllbCAgID0gMiAvLyDwn5+hIG9wcG9uZW50CikKCi8vIEdhbWUgaG9sZHMgdGhlIGZ1bGwgc3RhdGUgb2Ygb25lIENvbm5lY3QgRm91ciBtYXRjaC4KLy8gYm9hcmQgaXMgaW5kZXhlZCBib2FyZFtyb3ddW2NvbF07IHJvdyAwIGlzIHRoZSBCT1RUT00gcm93Lgp0eXBlIEdhbWUgc3RydWN0IHsKCUlEICAgICAgIGludDY0CglSZWQgICAgICBhZGRyZXNzIC8vIPCflLQgY3JlYXRvciwgbW92ZXMgZmlyc3QKCVllbGxvdyAgIGFkZHJlc3MgLy8g8J+foSBvcHBvbmVudAoJQm9hcmQgICAgW3Jvd3NdW2NvbHNdaW50CglUdXJuICAgICBpbnQgIC8vIHdob3NlIHR1cm46IHJlZCBvciB5ZWwKCVdpbm5lciAgIGludCAgLy8gZW1wdHkgdW50aWwgZGVjaWRlZDsgcmVkL3llbCA9IHdpbm5lcgoJRHJhdyAgICAgYm9vbCAvLyB0cnVlIHdoZW4gYm9hcmQgZnVsbCB3aXRoIG5vIHdpbm5lcgoJRmluaXNoZWQgYm9vbAp9Cgp2YXIgKAoJZ2FtZXMgID0gYXZsLk5ld1RyZWUoKSAvLyBpZCAoemVyby1wYWRkZWQgc3RyaW5nKSAtPiAqR2FtZQoJbmV4dElEIGludDY0CikKCmZ1bmMgaWRLZXkoaWQgaW50NjQpIHN0cmluZyB7CgkvLyB6ZXJvLXBhZCBzbyBhdmwgaXRlcmF0aW9uIG9yZGVyIG1hdGNoZXMgbnVtZXJpYyBvcmRlciBmb3IgUmVuZGVyIGxpc3RzCglzIDo9IHN0cmNvbnYuRm9ybWF0SW50KGlkLCAxMCkKCWZvciBsZW4ocykgPCAxMiB7CgkJcyA9ICIwIiArIHMKCX0KCXJldHVybiBzCn0KCi8vIE5ld0dhbWUgY3JlYXRlcyBhIG1hdGNoIGJldHdlZW4gdGhlIGNhbGxlciAo8J+UtCkgYW5kIG9wcG9uZW50ICjwn5+hKS4KLy8gUmV0dXJucyB0aGUgbmV3IGdhbWUgaWQuCmZ1bmMgTmV3R2FtZShjdXIgcmVhbG0sIG9wcG9uZW50IGFkZHJlc3MpIGludDY0IHsKCWNhbGxlciA6PSB1bnNhZmUuUHJldmlvdXNSZWFsbSgpLkFkZHJlc3MoKQoJaWYgb3Bwb25lbnQgPT0gY2FsbGVyIHsKCQlwYW5pYygib3Bwb25lbnQgbXVzdCBkaWZmZXIgZnJvbSBjYWxsZXIiKQoJfQoJaWYgb3Bwb25lbnQuU3RyaW5nKCkgPT0gIiIgewoJCXBhbmljKCJvcHBvbmVudCBhZGRyZXNzIGlzIGVtcHR5IikKCX0KCW5leHRJRCsrCglnIDo9ICZHYW1lewoJCUlEOiAgICAgbmV4dElELAoJCVJlZDogICAgY2FsbGVyLAoJCVllbGxvdzogb3Bwb25lbnQsCgkJVHVybjogICByZWQsCgl9CglnYW1lcy5TZXQoaWRLZXkoZy5JRCksIGcpCgljaGFpbi5FbWl0KCJHYW1lQ3JlYXRlZCIsCgkJImlkIiwgc3RyY29udi5Gb3JtYXRJbnQoZy5JRCwgMTApLAoJCSJyZWQiLCBjYWxsZXIuU3RyaW5nKCksCgkJInllbGxvdyIsIG9wcG9uZW50LlN0cmluZygpLAoJKQoJcmV0dXJuIGcuSUQKfQoKZnVuYyBnZXRHYW1lKGlkIGludDY0KSAoKkdhbWUsIGVycm9yKSB7Cgl2IDo9IGdhbWVzLkdldChpZEtleShpZCkpCglpZiB2ID09IG5pbCB7CgkJcmV0dXJuIG5pbCwgZXJyb3JzLk5ldygiZ2FtZSBub3QgZm91bmQ6ICIgKyBzdHJjb252LkZvcm1hdEludChpZCwgMTApKQoJfQoJcmV0dXJuIHYuKCpHYW1lKSwgbmlsCn0KCi8vIERyb3AgcGxhY2VzIHRoZSBjYWxsZXIncyBkaXNjIGludG8gdGhlIGdpdmVuIGNvbHVtbiAoMC02KS4KLy8gRW5mb3JjZXMgdHVybiBvcmRlciBieSBjYWxsZXIsIHJlamVjdHMgZnVsbCBjb2x1bW5zLCBhbmQgZGV0ZWN0cwovLyBhIDQtaW4tYS1yb3cgd2luIG9yIGEgZHJhdy4KZnVuYyBEcm9wKGN1ciByZWFsbSwgZ2FtZUlEIGludDY0LCBjb2x1bW4gaW50KSB7CglpZiBjb2x1bW4gPCAwIHx8IGNvbHVtbiA+PSBjb2xzIHsKCQlwYW5pYygiY29sdW1uIG91dCBvZiByYW5nZSAoMC02KSIpCgl9CglnLCBlcnIgOj0gZ2V0R2FtZShnYW1lSUQpCglpZiBlcnIgIT0gbmlsIHsKCQlwYW5pYyhlcnIuRXJyb3IoKSkKCX0KCWlmIGcuRmluaXNoZWQgewoJCXBhbmljKCJnYW1lIGFscmVhZHkgZmluaXNoZWQiKQoJfQoKCWNhbGxlciA6PSB1bnNhZmUuUHJldmlvdXNSZWFsbSgpLkFkZHJlc3MoKQoJdmFyIG1vdmVyIGludAoJc3dpdGNoIGNhbGxlciB7CgljYXNlIGcuUmVkOgoJCW1vdmVyID0gcmVkCgljYXNlIGcuWWVsbG93OgoJCW1vdmVyID0geWVsCglkZWZhdWx0OgoJCXBhbmljKCJjYWxsZXIgaXMgbm90IGEgcGxheWVyIGluIHRoaXMgZ2FtZSIpCgl9CglpZiBtb3ZlciAhPSBnLlR1cm4gewoJCXBhbmljKCJub3QgeW91ciB0dXJuIikKCX0KCgkvLyBmaW5kIGxvd2VzdCBlbXB0eSByb3cgaW4gdGhlIGNvbHVtbgoJcGxhY2VkIDo9IC0xCglmb3IgciA6PSAwOyByIDwgcm93czsgcisrIHsKCQlpZiBnLkJvYXJkW3JdW2NvbHVtbl0gPT0gZW1wdHkgewoJCQlnLkJvYXJkW3JdW2NvbHVtbl0gPSBtb3ZlcgoJCQlwbGFjZWQgPSByCgkJCWJyZWFrCgkJfQoJfQoJaWYgcGxhY2VkID09IC0xIHsKCQlwYW5pYygiY29sdW1uIGlzIGZ1bGwiKQoJfQoKCWlmIHdpbnMoJmcuQm9hcmQsIHBsYWNlZCwgY29sdW1uLCBtb3ZlcikgewoJCWcuV2lubmVyID0gbW92ZXIKCQlnLkZpbmlzaGVkID0gdHJ1ZQoJCWNoYWluLkVtaXQoIkdhbWVXb24iLAoJCQkiaWQiLCBzdHJjb252LkZvcm1hdEludChnLklELCAxMCksCgkJCSJ3aW5uZXIiLCBjYWxsZXIuU3RyaW5nKCksCgkJKQoJfSBlbHNlIGlmIGZ1bGwoJmcuQm9hcmQpIHsKCQlnLkRyYXcgPSB0cnVlCgkJZy5GaW5pc2hlZCA9IHRydWUKCQljaGFpbi5FbWl0KCJHYW1lRHJhdyIsICJpZCIsIHN0cmNvbnYuRm9ybWF0SW50KGcuSUQsIDEwKSkKCX0gZWxzZSB7CgkJaWYgZy5UdXJuID09IHJlZCB7CgkJCWcuVHVybiA9IHllbAoJCX0gZWxzZSB7CgkJCWcuVHVybiA9IHJlZAoJCX0KCQljaGFpbi5FbWl0KCJEaXNjRHJvcHBlZCIsCgkJCSJpZCIsIHN0cmNvbnYuRm9ybWF0SW50KGcuSUQsIDEwKSwKCQkJImNvbCIsIHN0cmNvbnYuSXRvYShjb2x1bW4pLAoJCQkicGxheWVyIiwgY2FsbGVyLlN0cmluZygpLAoJCSkKCX0KCglnYW1lcy5TZXQoaWRLZXkoZy5JRCksIGcpCn0KCmZ1bmMgZnVsbChiICpbcm93c11bY29sc11pbnQpIGJvb2wgewoJZm9yIGMgOj0gMDsgYyA8IGNvbHM7IGMrKyB7CgkJaWYgYltyb3dzLTFdW2NdID09IGVtcHR5IHsKCQkJcmV0dXJuIGZhbHNlCgkJfQoJfQoJcmV0dXJuIHRydWUKfQoKLy8gd2lucyBjaGVja3Mgd2hldGhlciB0aGUgZGlzYyBqdXN0IHBsYWNlZCBhdCAocixjKSBmb3IgcGxheWVyIHAgY29tcGxldGVzCi8vIGEgcnVuIG9mIDQgaW4gYW55IG9mIHRoZSBmb3VyIGRpcmVjdGlvbnMuCmZ1bmMgd2lucyhiICpbcm93c11bY29sc11pbnQsIHIsIGMsIHAgaW50KSBib29sIHsKCS8vIGRpcmVjdGlvbiBwYWlyczogaG9yaXpvbnRhbCwgdmVydGljYWwsIGRpYWcgLywgZGlhZyBcCglkaXJzIDo9IFs0XVsyXWludHt7MCwgMX0sIHsxLCAwfSwgezEsIDF9LCB7MSwgLTF9fQoJZm9yIF8sIGQgOj0gcmFuZ2UgZGlycyB7CgkJY291bnQgOj0gMQoJCWNvdW50ICs9IHJ1bihiLCByLCBjLCBkWzBdLCBkWzFdLCBwKQoJCWNvdW50ICs9IHJ1bihiLCByLCBjLCAtZFswXSwgLWRbMV0sIHApCgkJaWYgY291bnQgPj0gNCB7CgkJCXJldHVybiB0cnVlCgkJfQoJfQoJcmV0dXJuIGZhbHNlCn0KCmZ1bmMgcnVuKGIgKltyb3dzXVtjb2xzXWludCwgciwgYywgZHIsIGRjLCBwIGludCkgaW50IHsKCW4gOj0gMAoJZm9yIGkgOj0gMTsgaSA8IDQ7IGkrKyB7CgkJcnIgOj0gciArIGRyKmkKCQljYyA6PSBjICsgZGMqaQoJCWlmIHJyIDwgMCB8fCByciA+PSByb3dzIHx8IGNjIDwgMCB8fCBjYyA+PSBjb2xzIHsKCQkJYnJlYWsKCQl9CgkJaWYgYltycl1bY2NdICE9IHAgewoJCQlicmVhawoJCX0KCQluKysKCX0KCXJldHVybiBuCn0KCmZ1bmMgZ2x5cGgodiBpbnQpIHN0cmluZyB7Cglzd2l0Y2ggdiB7CgljYXNlIHJlZDoKCQlyZXR1cm4gIvCflLQiCgljYXNlIHllbDoKCQlyZXR1cm4gIvCfn6EiCglkZWZhdWx0OgoJCXJldHVybiAiwrciCgl9Cn0KCi8vIFJlbmRlciBkcmF3cyB0aGUgYm9hcmQgd2l0aCDwn5S08J+focK3IGFuZCBzaG93cyB3aG9zZSB0dXJuIC8gdGhlIHdpbm5lci4KLy8gcGF0aCAiIiBsaXN0cyBhbGwgZ2FtZXM7IHBhdGggIjxpZD4iIHNob3dzIGEgc2luZ2xlIGJvYXJkLgpmdW5jIFJlbmRlcihwYXRoIHN0cmluZykgc3RyaW5nIHsKCXBhdGggPSBzdHJpbmdzLlRyaW1TcGFjZShzdHJpbmdzLlRyaW0ocGF0aCwgIi8iKSkKCWlmIHBhdGggPT0gIiIgewoJCXJldHVybiByZW5kZXJMaXN0KCkKCX0KCWlkLCBlcnIgOj0gc3RyY29udi5QYXJzZUludChwYXRoLCAxMCwgNjQpCglpZiBlcnIgIT0gbmlsIHsKCQlyZXR1cm4gIiMgQ29ubmVjdCBGb3VyXG5cbkludmFsaWQgZ2FtZSBpZDogYCIgKyBwYXRoICsgImBcbiIKCX0KCWcsIGVyciA6PSBnZXRHYW1lKGlkKQoJaWYgZXJyICE9IG5pbCB7CgkJcmV0dXJuICIjIENvbm5lY3QgRm91clxuXG4iICsgZXJyLkVycm9yKCkgKyAiXG4iCgl9CglyZXR1cm4gcmVuZGVyR2FtZShnKQp9CgpmdW5jIHJlbmRlckxpc3QoKSBzdHJpbmcgewoJdmFyIHNiIHN0cmluZ3MuQnVpbGRlcgoJc2IuV3JpdGVTdHJpbmcoIiMgQ29ubmVjdCBGb3VyXG5cbiIpCglzYi5Xcml0ZVN0cmluZygiVHdvLXBsYXllciBDb25uZWN0IEZvdXIgb24gYSA3w5c2IGJvYXJkLiDwn5S0IGlzIHRoZSBnYW1lIGNyZWF0b3IsIPCfn6EgdGhlIG9wcG9uZW50LlxuXG4iKQoJaWYgZ2FtZXMuU2l6ZSgpID09IDAgewoJCXNiLldyaXRlU3RyaW5nKCJfTm8gZ2FtZXMgeWV0LiBDYWxsIGBOZXdHYW1lKG9wcG9uZW50KWAgdG8gc3RhcnQgb25lLl9cbiIpCgkJcmV0dXJuIHNiLlN0cmluZygpCgl9CglzYi5Xcml0ZVN0cmluZygiIyMgR2FtZXNcblxuIikKCXNiLldyaXRlU3RyaW5nKCJ8IElEIHwg8J+UtCBSZWQgfCDwn5+hIFllbGxvdyB8IFN0YXR1cyB8XG4iKQoJc2IuV3JpdGVTdHJpbmcoInwtLS0tfC0tLS0tLS0tfC0tLS0tLS0tLS0tfC0tLS0tLS0tfFxuIikKCWdhbWVzLkl0ZXJhdGUoIiIsICIiLCBmdW5jKF8gc3RyaW5nLCB2IGFueSkgYm9vbCB7CgkJZyA6PSB2LigqR2FtZSkKCQlzdGF0dXMgOj0gIiIKCQlzd2l0Y2ggewoJCWNhc2UgZy5XaW5uZXIgPT0gcmVkOgoJCQlzdGF0dXMgPSAi8J+UtCB3b24iCgkJY2FzZSBnLldpbm5lciA9PSB5ZWw6CgkJCXN0YXR1cyA9ICLwn5+hIHdvbiIKCQljYXNlIGcuRHJhdzoKCQkJc3RhdHVzID0gImRyYXciCgkJY2FzZSBnLlR1cm4gPT0gcmVkOgoJCQlzdGF0dXMgPSAi8J+UtCB0byBtb3ZlIgoJCWRlZmF1bHQ6CgkJCXN0YXR1cyA9ICLwn5+hIHRvIG1vdmUiCgkJfQoJCXNiLldyaXRlU3RyaW5nKCJ8IFsiICsgc3RyY29udi5Gb3JtYXRJbnQoZy5JRCwgMTApICsgIl0oL3I6IiArIHN0cmNvbnYuRm9ybWF0SW50KGcuSUQsIDEwKSArICIpIHwgIiArCgkJCXNob3J0KGcuUmVkKSArICIgfCAiICsgc2hvcnQoZy5ZZWxsb3cpICsgIiB8ICIgKyBzdGF0dXMgKyAiIHxcbiIpCgkJcmV0dXJuIGZhbHNlCgl9KQoJc2IuV3JpdGVTdHJpbmcoIlxuT3BlbiBhIGdhbWUgYnkgaXRzIGlkIChlLmcuIHBhdGggYDFgKS5cbiIpCglyZXR1cm4gc2IuU3RyaW5nKCkKfQoKZnVuYyBzaG9ydChhIGFkZHJlc3MpIHN0cmluZyB7CglzIDo9IGEuU3RyaW5nKCkKCWlmIGxlbihzKSA8PSAxMiB7CgkJcmV0dXJuICJgIiArIHMgKyAiYCIKCX0KCXJldHVybiAiYCIgKyBzWzo4XSArICLigKYiICsgc1tsZW4ocyktNDpdICsgImAiCn0KCmZ1bmMgcmVuZGVyR2FtZShnICpHYW1lKSBzdHJpbmcgewoJdmFyIHNiIHN0cmluZ3MuQnVpbGRlcgoJc2IuV3JpdGVTdHJpbmcoIiMgQ29ubmVjdCBGb3VyIOKAlCBHYW1lICIgKyBzdHJjb252LkZvcm1hdEludChnLklELCAxMCkgKyAiXG5cbiIpCglzYi5Xcml0ZVN0cmluZygiLSDwn5S0IFJlZDogYCIgKyBnLlJlZC5TdHJpbmcoKSArICJgXG4iKQoJc2IuV3JpdGVTdHJpbmcoIi0g8J+foSBZZWxsb3c6IGAiICsgZy5ZZWxsb3cuU3RyaW5nKCkgKyAiYFxuXG4iKQoKCS8vIHN0YXR1cyBsaW5lCglzd2l0Y2ggewoJY2FzZSBnLldpbm5lciA9PSByZWQ6CgkJc2IuV3JpdGVTdHJpbmcoIioq8J+UtCBSZWQgd2lucyEqKlxuXG4iKQoJY2FzZSBnLldpbm5lciA9PSB5ZWw6CgkJc2IuV3JpdGVTdHJpbmcoIioq8J+foSBZZWxsb3cgd2lucyEqKlxuXG4iKQoJY2FzZSBnLkRyYXc6CgkJc2IuV3JpdGVTdHJpbmcoIioqRHJhdyDigJQgYm9hcmQgZnVsbC4qKlxuXG4iKQoJY2FzZSBnLlR1cm4gPT0gcmVkOgoJCXNiLldyaXRlU3RyaW5nKCIqKlR1cm46IPCflLQgUmVkKipcblxuIikKCWRlZmF1bHQ6CgkJc2IuV3JpdGVTdHJpbmcoIioqVHVybjog8J+foSBZZWxsb3cqKlxuXG4iKQoJfQoKCS8vIGJvYXJkIHRvcC1kb3duIChyb3cgcm93cy0xIGF0IHRvcCwgcm93IDAgYXQgYm90dG9tKQoJc2IuV3JpdGVTdHJpbmcoImBgYFxuIikKCWZvciByIDo9IHJvd3MgLSAxOyByID49IDA7IHItLSB7CgkJZm9yIGMgOj0gMDsgYyA8IGNvbHM7IGMrKyB7CgkJCXNiLldyaXRlU3RyaW5nKGdseXBoKGcuQm9hcmRbcl1bY10pKQoJCX0KCQlzYi5Xcml0ZVN0cmluZygiXG4iKQoJfQoJLy8gY29sdW1uIGluZGljZXMKCWZvciBjIDo9IDA7IGMgPCBjb2xzOyBjKysgewoJCXNiLldyaXRlU3RyaW5nKHN0cmNvbnYuSXRvYShjKSkKCX0KCXNiLldyaXRlU3RyaW5nKCJcbmBgYFxuXG4iKQoKCWlmICFnLkZpbmlzaGVkIHsKCQlzYi5Xcml0ZVN0cmluZygiRHJvcCBhIGRpc2M6IGBEcm9wKCIgKyBzdHJjb252LkZvcm1hdEludChnLklELCAxMCkgKyAiLCA8Y29sIDAtNj4pYFxuIikKCX0KCXJldHVybiBzYi5TdHJpbmcoKQp9ChpKCgtnbm9tb2QudG9tbBI7bW9kdWxlID0gImduby5sYW5kL3IvbW91bC94L2RhaWx5L2Nvbm5lY3Q0L3YwIgpnbm8gPSAiMC45IgoiIwoTL2duby5NZW1QYWNrYWdlVHlwZRIMCgpNUFVzZXJQcm9kEhMInLrnEBIMMTAwMDAwMHVnbm90GqgBCjoKEy90bS5QdWJLZXlTZWNwMjU2azESIwohAgBSSj+NLAA6icQ/Rf6vbrjtRbbjo197vms7Sf+eLYPIEkB3nl0kzqcJRyPaLa8/xJ9zPNYXvt1pg5LOVcNhvq9Lhk010Om4atfczo1mFMgkVEI7XGV3XWXM86sHaSDEmbI2GihnMXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcWx1dXhlIgpnbm9wdWJsaXNo