Transaction executed successfully
Transaction Details
Inspect execution, participants, message data, gas usage, events and raw transaction data.
Transaction hash
196D3C9896BB6669DEA3C1689B7E3307ACDD6038A6B011297DECA393577B0D91
Transaction overview
Execution summary
TX INDEX
0
Position in block
GAS WANTED
18,694,634
Requested gas limit
GAS USED
15,578,812
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
Cr1RCgwvdm0ubV9hZGRwa2cSrFEKKGcxbWFuZnJlZDQ3a3pkdWVjOTIwejg4d2ZyNjR5bGtzbWRjZWRsZjUS/1AKC3BpeGVsY2FudmFzEiZnbm8ubGFuZC9yL21vdWwveC9kYWlseS9waXhlbGNhbnZhcy92MBqfFQoJUkVBRE1FLm1kEpEVIyBQaXhlbCBDYW52YXMKCj4g4pqg77iPICoqRXhwZXJpbWVudGFsIOKAlCBnZW5lcmF0ZWQgd2l0aCBubyBodW1hbiBzdXBlcnZpc2lvbioqIGJ5IHRoZSBkYWlseSBNQ1AgcGlwZWxpbmUgdG8gZXhlcmNpc2UgZ25vIHRvb2xpbmcuIE5vdCBhdWRpdGVkLiBTZWUgW3IvbW91bC94L2RhaWx5XShodHRwczovL2dpdGh1Yi5jb20vbW91bC9nbm8tY29udHJhY3RzL2Jsb2IvbWFpbi9yL21vdWwveC9kYWlseS9SRUFETUUubWQpLgoKLS0tCgpBIHNoYXJlZCAxNngxNiBjYW52YXMuIEFueW9uZSBjYW4gcGFpbnQgb25lIGNlbGwgYXQgYSB0aW1lIGZyb20gYSBmaXhlZCA5LWNvbG91cgpwYWxldHRlLCBhbmQgdGhlIGJvYXJkIHJlbmRlcnMgaW4gZ25vd2ViIGFzIGEgZ3JpZCBvZiBjb2xvdXJlZCBibG9ja3MuCgpQYWludGluZyBpcyAqKmxhc3Qtd3JpdGUtd2lucyoqIOKAlCB0aGF0J3MgdGhlIHBvaW50IG9mIGEgc2hhcmVkIGNhbnZhcy4gQm90aApzdHJva2VzIHN0aWxsIGNvdW50IHRvd2FyZCB0aGUgcGFpbnRlciB0YWxsaWVzLCBzbyBvdmVyd3JpdGluZyBzb21lb25lIGRvZXNuJ3QKZXJhc2UgdGhlaXIgY29udHJpYnV0aW9uIGZyb20gdGhlIGxlYWRlcmJvYXJkLgoKYGBgClBhaW50KHgsIHksIGNvbG91cikgICDihpIgY29sb3VycyBhIGNlbGwsIHJldHVybnMgdGhlIHRvdGFsIHN0cm9rZSBjb3VudApBdCh4LCB5KSAgICAgICAgICAgICAg4oaSIHRoZSBjb2xvdXIgbmFtZSBvZiBhIGNlbGwgKCJ3aGl0ZSIgd2hlbiB1bnRvdWNoZWQpClBhaW50ZXJBdCh4LCB5KSAgICAgICDihpIgd2hvIGxhc3QgcGFpbnRlZCBpdCAoIiIgd2hlbiB1bnRvdWNoZWQpClN0cm9rZXMoKSAgICAgICAgICAgICDihpIgdG90YWwgcGFpbnRzIGV2ZXIKUGFsZXR0ZSgpICAgICAgICAgICAgIOKGkiB0aGUgYWNjZXB0ZWQgY29sb3VyIG5hbWVzCgovci9tb3VsL3gvZGFpbHkvcGl4ZWxjYW52YXMvdjAgICAgICAgIOKGkiB0aGUgY2FudmFzLCBwYWxldHRlIGFuZCB0b3AgcGFpbnRlcnMKL3IvbW91bC94L2RhaWx5L3BpeGVsY2FudmFzL3YwOjQsOSAgICDihpIgd2hvIHBhaW50ZWQgdGhhdCBjZWxsLCBhbmQgd2hhdCBjb2xvdXIKYGBgCgpDb29yZGluYXRlcyBhcmUgMC1iYXNlZCB3aXRoIGAoMCwwKWAgYXQgdGhlICoqdG9wLWxlZnQqKiwgYW5kIGFyZSBgeGAgKGNvbHVtbikKdGhlbiBgeWAgKHJvdykg4oCUIHNvIGAoMyw3KWAgaXMgY29sdW1uIDMgb2Ygcm93IDcuIENvbG91ciBuYW1lcyBhcmUgbWF0Y2hlZApjYXNlLSBhbmQgc3BhY2UtaW5zZW5zaXRpdmVseS4KClBhbGV0dGU6IGB3aGl0ZWAsIGByZWRgLCBgb3JhbmdlYCwgYHllbGxvd2AsIGBncmVlbmAsIGBibHVlYCwgYHB1cnBsZWAsCmBicm93bmAsIGBibGFja2AuCgpUaGUgZ3JpZCBpcyBhIGZpeGVkIGBbU2l6ZSpTaXplXWludGAgb2YgcGFsZXR0ZSBpbmRpY2VzIHJhdGhlciB0aGFuIGEgdHJlZToKZXZlcnkgY2VsbCBleGlzdHMgZnJvbSB0aGUgc3RhcnQgYW5kIHRoZSB3aG9sZSBncmlkIGlzIHdhbGtlZCBvbiBlYWNoIHJlbmRlciwKc28gYW4gYXJyYXkgaXMgYm90aCBzaW1wbGVyIGFuZCBjaGVhcGVyIHRoYW4gYSBzcGFyc2Ugc3RydWN0dXJlLgoKT25seSBhbiBFT0EgY2FuIHBhaW50IChgSXNVc2VyQ2FsbGApLCBzbyBhbm90aGVyIHJlYWxtIGNhbid0IHNwcmF5IHRoZSBjYW52YXMKb24gYSB1c2VyJ3MgYmVoYWxmLgoKQnVpbHQgZm9yIGdubyAwLjkuIExpdmUgb24gYm90aCB0ZXN0bmV0cyAoYWdlbnQgYWRkcmVzcyk6CgotIHNhcHBoaXJlIOKAlCBodHRwczovL3NhcHBoaXJlLnRlc3RuZXRzLmduby5sYW5kL3IvZzEyY3M0Y2VodWpwZmZwanB5d21rcWo0M202dTV5YTUzbmo2OXNqei9waXhlbGNhbnZhcwotIHBlYXJsIOKAlCBodHRwczovL3BlYXJsLnRlc3RuZXRzLmduby5sYW5kL3IvZzEyY3M0Y2VodWpwZmZwanB5d21rcWo0M202dTV5YTUzbmo2OXNqei9waXhlbGNhbnZhcwoKPCEtLSBCRUdJTiBHTk9DT05UUkFDVFMgRk9PVEVSIChnZW5lcmF0ZWQgYnkgYG1ha2UgcmVhZG1lc2A7IGRvIG5vdCBlZGl0IGJlbG93KSAtLT4KCi0tLQoKUGFydCBvZiAqKlttb3VsL2duby1jb250cmFjdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS9tb3VsL2duby1jb250cmFjdHMpKiog4oCUIG1vdWwncyB2ZXJzaW9uZWQgZ25vLmxhbmQgY29udHJhY3RzLiBTZWUgdGhlIHJlcG9zaXRvcnkgZm9yIHRoZSBmdWxsIGNhdGFsb2csIGJ1aWxkL3Rlc3QgdG9vbGluZywgYW5kIHVzYWdlLgoKKipEZXBlbmRlbmN5IGdyYXBoOioqCgohW2duby5sYW5kL3IvbW91bC94L2RhaWx5L3BpeGVsY2FudmFzL3YwIGRlcGVuZGVuY3kgZ3JhcGhdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9tb3VsL2duby1jb250cmFjdHMvbWFpbi9fYXNzZXRzL2duby5sYW5kL3IvbW91bC94L2RhaWx5L3BpeGVsY2FudmFzL3YwL2RlcHMucG5nKQoKPiDwn6eqICoqSGlnaGx5IGV4cGVyaW1lbnRhbCDigJQgcG90ZW50aWFsbHkgdmliZS1jb2RlZC4qKiBOb3QgYXVkaXRlZDsgbWF5IGJyZWFrLCBjaGFuZ2UsIG9yIGJlIHJlbW92ZWQgYXQgYW55IHRpbWUuIERvIG5vdCB1c2Ugd2l0aCBhbnl0aGluZyBvZiB2YWx1ZS4gRnVsbCBkaXNjbGFpbWVyOiBbRElTQ0xBSU1FUl0oaHR0cHM6Ly9naXRodWIuY29tL21vdWwvZ25vLWNvbnRyYWN0cy9ibG9iL21haW4vRElTQ0xBSU1FUi5tZCkuCgo8IS0tIEVORCBHTk9DT05UUkFDVFMgRk9PVEVSIC0tPgoaTQoLZ25vbW9kLnRvbWwSPm1vZHVsZSA9ICJnbm8ubGFuZC9yL21vdWwveC9kYWlseS9waXhlbGNhbnZhcy92MCIKZ25vID0gIjAuOSIKGrE6Cg9waXhlbGNhbnZhcy5nbm8SnTovLyBQYWNrYWdlIHBpeGVsY2FudmFzIGlzIGEgc2hhcmVkIDE2eDE2IHBpeGVsIGNhbnZhczogYW55b25lIGNhbiBwYWludCBvbmUKLy8gY2VsbCBhdCBhIHRpbWUgZnJvbSBhIGZpeGVkIDktY29sb3VyIHBhbGV0dGUsIGFuZCB0aGUgY2FudmFzIHJlbmRlcnMgaW4KLy8gZ25vd2ViIGFzIGEgZ3JpZCBvZiBjb2xvdXJlZCBibG9ja3MuCi8vCi8vIFRoZSBjYW52YXMgaXMgYSBmbGF0IFtTaXplKlNpemVdaW50IG9mIHBhbGV0dGUgaW5kaWNlcyBoZWxkIGluIHJlYWxtIHN0YXRlIOKAlAovLyBhIGZpeGVkLXNpemUgYXJyYXkgcmF0aGVyIHRoYW4gYSB0cmVlLCBiZWNhdXNlIGV2ZXJ5IGNlbGwgZXhpc3RzIGZyb20gdGhlCi8vIHN0YXJ0IGFuZCB0aGUgZ3JpZCBpcyB3YWxrZWQgaW4gZnVsbCBvbiBldmVyeSByZW5kZXIuIFBhaW50aW5nIGlzCi8vIGxhc3Qtd3JpdGUtd2luczsgdGhlIHJlYWxtIGtlZXBzIHdobyBwYWludGVkIGVhY2ggY2VsbCBhbmQgYSBwZXItYWRkcmVzcwovLyB0YWxseSwgc28gdGhlIGJvYXJkIGRvdWJsZXMgYXMgYSBjb250cmlidXRpb24gbGVhZGVyYm9hcmQuCi8vCi8vIEEgc3RhdGVmdWwgYXBwIHdpdGggbm90aGluZyByZXVzYWJsZSB0byBleHRyYWN0LCBzbyBpdCBzaGlwcyBhcyBhIGxvbmUgcmVhbG0KLy8gcmF0aGVyIHRoYW4gYSBwLyBsaWJyYXJ5ICsgZGVtbyBwYWlyLgpwYWNrYWdlIHBpeGVsY2FudmFzCgppbXBvcnQgKAoJInNvcnQiCgkic3RyY29udiIKCSJzdHJpbmdzIgoKCSJjaGFpbiIKCSJjaGFpbi9ydW50aW1lIgoKCSJnbm8ubGFuZC9wL250L2F2bC92MCIKKQoKLy8gU2l6ZSBpcyB0aGUgY2FudmFzIGVkZ2UgbGVuZ3RoOyB0aGUgY2FudmFzIGlzIFNpemUgeCBTaXplIGNlbGxzLgpjb25zdCBTaXplID0gMTYKCi8vIHBhbGV0dGUgbWFwcyBhIGNvbG91ciBpbmRleCB0byB0aGUgYmxvY2sgcmVuZGVyZWQgZm9yIGl0LiBJbmRleCAwIGlzIHRoZQovLyBibGFuayBjYW52YXMuIEtlcHQgcGFyYWxsZWwgdG8gcGFsZXR0ZU5hbWVzLgp2YXIgcGFsZXR0ZSA9IFtdc3RyaW5neyLirJwiLCAi8J+fpSIsICLwn5+nIiwgIvCfn6giLCAi8J+fqSIsICLwn5+mIiwgIvCfn6oiLCAi8J+fqyIsICLirJsifQoKLy8gcGFsZXR0ZU5hbWVzIGFyZSB0aGUgbmFtZXMgUGFpbnQgYWNjZXB0cywgaW4gcGFsZXR0ZSBvcmRlci4KdmFyIHBhbGV0dGVOYW1lcyA9IFtdc3RyaW5neyJ3aGl0ZSIsICJyZWQiLCAib3JhbmdlIiwgInllbGxvdyIsICJncmVlbiIsICJibHVlIiwgInB1cnBsZSIsICJicm93biIsICJibGFjayJ9CgovLyBQYWNrYWdlLWxldmVsIHBlcnNpc3RlbnQgc3RhdGUuCnZhciAoCgljZWxscyAgICBbU2l6ZSAqIFNpemVdaW50IC8vIHBhbGV0dGUgaW5kZXggcGVyIGNlbGwsIHJvdy1tYWpvcgoJcGFpbnRlcnMgW1NpemUgKiBTaXplXXN0cmluZwoJdGFsbHkgICAgPSBhdmwuTmV3VHJlZSgpIC8vIGFkZHJlc3Mgc3RyaW5nIC0+ICppbnQgcGFpbnQgY291bnQKCXN0cm9rZXMgIGludCAgICAgICAgICAgICAvLyB0b3RhbCBwYWludHMgZXZlcgoJbGFzdEF0ICAgaW50NjQgICAgICAgICAgIC8vIGhlaWdodCBvZiB0aGUgbW9zdCByZWNlbnQgcGFpbnQKKQoKLy8gUGFpbnQgY29sb3VycyB0aGUgY2VsbCBhdCAoeCwgeSkgYW5kIHJldHVybnMgdGhlIHRvdGFsIG51bWJlciBvZiBzdHJva2VzLgovLwovLyBDb29yZGluYXRlcyBhcmUgMC1iYXNlZCB3aXRoICgwLDApIGF0IHRoZSB0b3AtbGVmdC4gQ29sb3VyIGlzIGEgcGFsZXR0ZSBuYW1lCi8vICgicmVkIiwgImJsdWUiLCDigKYpIOKAlCBzZWUgUGFsZXR0ZS4gUGFpbnRpbmcgb3ZlciBhbiBleGlzdGluZyBjZWxsIGlzIGFsbG93ZWQ6Ci8vIHRoZSBjYW52YXMgaXMgbGFzdC13cml0ZS13aW5zLCB3aGljaCBpcyB0aGUgd2hvbGUgcG9pbnQgb2YgYSBzaGFyZWQgYm9hcmQuCmZ1bmMgUGFpbnQoY3VyIHJlYWxtLCB4LCB5IGludCwgY29sb3VyIHN0cmluZykgaW50IHsKCWlmICFjdXIuSXNDdXJyZW50KCkgewoJCXBhbmljKCJzcG9vZmVkIHJlYWxtIikKCX0KCXByZXYgOj0gY3VyLlByZXZpb3VzKCkKCWlmICFwcmV2LklzVXNlckNhbGwoKSB7CgkJcGFuaWMoIm9ubHkgYW4gRU9BIHZpYSBNc2dDYWxsIGNhbiBwYWludCIpCgl9CglpZiB4IDwgMCB8fCB4ID49IFNpemUgfHwgeSA8IDAgfHwgeSA+PSBTaXplIHsKCQlwYW5pYygib3V0IG9mIGJvdW5kczogeCBhbmQgeSBtdXN0IGJlIGluIFswLCIgKyBzdHJjb252Lkl0b2EoU2l6ZS0xKSArICJdIikKCX0KCWlkeCA6PSBjb2xvdXJJbmRleChjb2xvdXIpCglpZiBpZHggPCAwIHsKCQlwYW5pYygidW5rbm93biBjb2xvdXIgIiArIHN0cmNvbnYuUXVvdGUoY29sb3VyKSArICI7IHNlZSBQYWxldHRlKCkiKQoJfQoKCWFkZHIgOj0gcHJldi5BZGRyZXNzKCkKCWkgOj0geSpTaXplICsgeAoJY2VsbHNbaV0gPSBpZHgKCXBhaW50ZXJzW2ldID0gYWRkci5TdHJpbmcoKQoJc3Ryb2tlcysrCglsYXN0QXQgPSBydW50aW1lLkNoYWluSGVpZ2h0KCkKCWJ1bXAoYWRkci5TdHJpbmcoKSkKCgljaGFpbi5FbWl0KCJQYWludCIsCgkJImFkZHIiLCBhZGRyLlN0cmluZygpLAoJCSJ4Iiwgc3RyY29udi5JdG9hKHgpLAoJCSJ5Iiwgc3RyY29udi5JdG9hKHkpLAoJCSJjb2xvdXIiLCBwYWxldHRlTmFtZXNbaWR4XSwKCSkKCXJldHVybiBzdHJva2VzCn0KCi8vIGNvbG91ckluZGV4IHJlc29sdmVzIGEgcGFsZXR0ZSBuYW1lIHRvIGl0cyBpbmRleCwgb3IgLTEuCmZ1bmMgY29sb3VySW5kZXgobmFtZSBzdHJpbmcpIGludCB7CgluIDo9IHN0cmluZ3MuVG9Mb3dlcihzdHJpbmdzLlRyaW1TcGFjZShuYW1lKSkKCWZvciBpLCBwIDo9IHJhbmdlIHBhbGV0dGVOYW1lcyB7CgkJaWYgcCA9PSBuIHsKCQkJcmV0dXJuIGkKCQl9Cgl9CglyZXR1cm4gLTEKfQoKLy8gYnVtcCBpbmNyZW1lbnRzIGFuIGFkZHJlc3MncyBwYWludCB0YWxseS4KZnVuYyBidW1wKGFkZHIgc3RyaW5nKSB7CgkvLyBhdmwvdjAncyBHZXQgcmV0dXJucyBhIHNpbmdsZSBgYW55YDsgYSBtaXNzIGlzIGEgbmlsIGludGVyZmFjZS4KCWlmIHYgOj0gdGFsbHkuR2V0KGFkZHIpOyB2ICE9IG5pbCB7CgkJYyA6PSB2LigqaW50KQoJCSpjKysKCQlyZXR1cm4KCX0KCW9uZSA6PSAxCgl0YWxseS5TZXQoYWRkciwgJm9uZSkKfQoKLy8gQXQgcmV0dXJucyB0aGUgcGFsZXR0ZSBuYW1lIG9mIHRoZSBjZWxsIGF0ICh4LCB5KSwgb3IgIiIgd2hlbiBvdXQgb2YgYm91bmRzLgpmdW5jIEF0KHgsIHkgaW50KSBzdHJpbmcgewoJaWYgeCA8IDAgfHwgeCA+PSBTaXplIHx8IHkgPCAwIHx8IHkgPj0gU2l6ZSB7CgkJcmV0dXJuICIiCgl9CglyZXR1cm4gcGFsZXR0ZU5hbWVzW2NlbGxzW3kqU2l6ZSt4XV0KfQoKLy8gUGFpbnRlckF0IHJldHVybnMgdGhlIGFkZHJlc3MgdGhhdCBsYXN0IHBhaW50ZWQgKHgsIHkpLCBvciAiIiBpZiB1bnRvdWNoZWQuCmZ1bmMgUGFpbnRlckF0KHgsIHkgaW50KSBzdHJpbmcgewoJaWYgeCA8IDAgfHwgeCA+PSBTaXplIHx8IHkgPCAwIHx8IHkgPj0gU2l6ZSB7CgkJcmV0dXJuICIiCgl9CglyZXR1cm4gcGFpbnRlcnNbeSpTaXplK3hdCn0KCi8vIFN0cm9rZXMgcmV0dXJucyBob3cgbWFueSBwYWludHMgdGhlIGNhbnZhcyBoYXMgdGFrZW4uCmZ1bmMgU3Ryb2tlcygpIGludCB7IHJldHVybiBzdHJva2VzIH0KCi8vIFBhbGV0dGUgcmV0dXJucyB0aGUgYWNjZXB0ZWQgY29sb3VyIG5hbWVzLCBjb21tYS1zZXBhcmF0ZWQuCmZ1bmMgUGFsZXR0ZSgpIHN0cmluZyB7IHJldHVybiBzdHJpbmdzLkpvaW4ocGFsZXR0ZU5hbWVzLCAiLCAiKSB9CgovLyBzY29yZXIgaXMgb25lIHJvdyBvZiB0aGUgY29udHJpYnV0aW9uIGxlYWRlcmJvYXJkLgp0eXBlIHNjb3JlciBzdHJ1Y3QgewoJYWRkciAgc3RyaW5nCgljb3VudCBpbnQKfQoKLy8gYnlDb3VudCByYW5rcyBwYWludGVycyBieSBzdHJva2VzIGRlc2NlbmRpbmcsIHRpZXMgYnJva2VuIG9uIGFkZHJlc3Mgc28gdGhlCi8vIGJvYXJkIGlzIGRldGVybWluaXN0aWMuCnR5cGUgYnlDb3VudCBbXXNjb3JlcgoKZnVuYyAocyBieUNvdW50KSBMZW4oKSBpbnQgICAgICB7IHJldHVybiBsZW4ocykgfQpmdW5jIChzIGJ5Q291bnQpIFN3YXAoaSwgaiBpbnQpIHsgc1tpXSwgc1tqXSA9IHNbal0sIHNbaV0gfQpmdW5jIChzIGJ5Q291bnQpIExlc3MoaSwgaiBpbnQpIGJvb2wgewoJaWYgc1tpXS5jb3VudCAhPSBzW2pdLmNvdW50IHsKCQlyZXR1cm4gc1tpXS5jb3VudCA+IHNbal0uY291bnQKCX0KCXJldHVybiBzW2ldLmFkZHIgPCBzW2pdLmFkZHIKfQoKLy8gUmVuZGVyIHJlbmRlcnMgdGhlIGNhbnZhcyBmb3IgZ25vd2ViLgovLwovLwlSZW5kZXIoIiIpICAgICAgICAvIFJlbmRlcigiLyIpIC0+IHRoZSBjYW52YXMsIHBhbGV0dGUgYW5kIGxlYWRlcmJvYXJkCi8vCVJlbmRlcigiLzx4Piw8eT4iKSAgICAgICAgICAgICAgLT4gd2hvIHBhaW50ZWQgdGhhdCBjZWxsLCBhbmQgd2hhdCBjb2xvdXIKZnVuYyBSZW5kZXIocGF0aCBzdHJpbmcpIHN0cmluZyB7Cgl2YXIgYiBzdHJpbmdzLkJ1aWxkZXIKCWIuV3JpdGVTdHJpbmcoIiMgUGl4ZWwgQ2FudmFzXG5cbiIpCgliLldyaXRlU3RyaW5nKCJBIHNoYXJlZCAiKQoJYi5Xcml0ZVN0cmluZyhzdHJjb252Lkl0b2EoU2l6ZSkpCgliLldyaXRlU3RyaW5nKCJ4IikKCWIuV3JpdGVTdHJpbmcoc3RyY29udi5JdG9hKFNpemUpKQoJYi5Xcml0ZVN0cmluZygiIGNhbnZhcy4gQW55b25lIGNhbiBgUGFpbnQoeCwgeSwgY29sb3VyKWAg4oCUIGxhc3Qgd3JpdGUgd2lucy5cblxuIikKCglpZiBxIDo9IHBhcnNlQXJnKHBhdGgpOyBxICE9ICIiIHsKCQlyZXR1cm4gYi5TdHJpbmcoKSArIHJlbmRlckNlbGwocSkKCX0KCgliLldyaXRlU3RyaW5nKGdyaWQoKSkKCWIuV3JpdGVTdHJpbmcoIlxuKioiKQoJYi5Xcml0ZVN0cmluZyhzdHJjb252Lkl0b2Eoc3Ryb2tlcykpCgliLldyaXRlU3RyaW5nKCIqKiBzdHJva2UiKQoJaWYgc3Ryb2tlcyAhPSAxIHsKCQliLldyaXRlU3RyaW5nKCJzIikKCX0KCWIuV3JpdGVTdHJpbmcoIiDCtyBwYWxldHRlOiAiKQoJYi5Xcml0ZVN0cmluZyhQYWxldHRlKCkpCgliLldyaXRlU3RyaW5nKCJcbiIpCgoJaWYgYm9hcmQgOj0gbGVhZGVyYm9hcmQoKTsgYm9hcmQgIT0gIiIgewoJCWIuV3JpdGVTdHJpbmcoIlxuIyMgVG9wIHBhaW50ZXJzXG5cbiIpCgkJYi5Xcml0ZVN0cmluZyhib2FyZCkKCX0KCXJldHVybiBiLlN0cmluZygpCn0KCi8vIGdyaWQgcmVuZGVycyB0aGUgY2FudmFzIGFzIHJvd3Mgb2YgY29sb3VyZWQgYmxvY2tzLgpmdW5jIGdyaWQoKSBzdHJpbmcgewoJdmFyIGIgc3RyaW5ncy5CdWlsZGVyCglmb3IgeSA6PSAwOyB5IDwgU2l6ZTsgeSsrIHsKCQlmb3IgeCA6PSAwOyB4IDwgU2l6ZTsgeCsrIHsKCQkJYi5Xcml0ZVN0cmluZyhwYWxldHRlW2NlbGxzW3kqU2l6ZSt4XV0pCgkJfQoJCWIuV3JpdGVTdHJpbmcoIlxuIikKCX0KCXJldHVybiBiLlN0cmluZygpCn0KCi8vIGxlYWRlcmJvYXJkIHJlbmRlcnMgdGhlIHRvcCBwYWludGVycywgb3IgIiIgd2hlbiBub2JvZHkgaGFzIHBhaW50ZWQuCmZ1bmMgbGVhZGVyYm9hcmQoKSBzdHJpbmcgewoJc2NvcmVzIDo9IFtdc2NvcmVye30KCXRhbGx5Lkl0ZXJhdGUoIiIsICIiLCBmdW5jKGsgc3RyaW5nLCB2IGFueSkgYm9vbCB7CgkJc2NvcmVzID0gYXBwZW5kKHNjb3Jlcywgc2NvcmVye2FkZHI6IGssIGNvdW50OiAqKHYuKCppbnQpKX0pCgkJcmV0dXJuIGZhbHNlCgl9KQoJaWYgbGVuKHNjb3JlcykgPT0gMCB7CgkJcmV0dXJuICIiCgl9Cglzb3J0LlNvcnQoYnlDb3VudChzY29yZXMpKQoJaWYgbGVuKHNjb3JlcykgPiA1IHsKCQlzY29yZXMgPSBzY29yZXNbOjVdCgl9CgoJdmFyIGIgc3RyaW5ncy5CdWlsZGVyCgliLldyaXRlU3RyaW5nKCJ8ICMgfCBhZGRyZXNzIHwgc3Ryb2tlcyB8XG58LS0tfC0tLXwtLS18XG4iKQoJZm9yIGksIHMgOj0gcmFuZ2Ugc2NvcmVzIHsKCQliLldyaXRlU3RyaW5nKCJ8ICIpCgkJYi5Xcml0ZVN0cmluZyhzdHJjb252Lkl0b2EoaSArIDEpKQoJCWIuV3JpdGVTdHJpbmcoIiB8IGAiKQoJCWIuV3JpdGVTdHJpbmcocy5hZGRyKQoJCWIuV3JpdGVTdHJpbmcoImAgfCAiKQoJCWIuV3JpdGVTdHJpbmcoc3RyY29udi5JdG9hKHMuY291bnQpKQoJCWIuV3JpdGVTdHJpbmcoIiB8XG4iKQoJfQoJcmV0dXJuIGIuU3RyaW5nKCkKfQoKLy8gcmVuZGVyQ2VsbCByZW5kZXJzIGEgc2luZ2xlICJ4LHkiIGxvb2t1cC4KZnVuYyByZW5kZXJDZWxsKHEgc3RyaW5nKSBzdHJpbmcgewoJdmFyIGIgc3RyaW5ncy5CdWlsZGVyCgl4LCB5LCBvayA6PSBwYXJzZUNvb3JkKHEpCglpZiAhb2sgewoJCWIuV3JpdGVTdHJpbmcoIl9FeHBlY3RlZCBgeCx5YCDigJQgZS5nLiBgLzMsN2AuX1xuIikKCQlyZXR1cm4gYi5TdHJpbmcoKQoJfQoJYi5Xcml0ZVN0cmluZygiIyMgQ2VsbCAoIikKCWIuV3JpdGVTdHJpbmcoc3RyY29udi5JdG9hKHgpKQoJYi5Xcml0ZVN0cmluZygiLCAiKQoJYi5Xcml0ZVN0cmluZyhzdHJjb252Lkl0b2EoeSkpCgliLldyaXRlU3RyaW5nKCIpXG5cbiIpCgliLldyaXRlU3RyaW5nKHBhbGV0dGVbY2VsbHNbeSpTaXplK3hdXSkKCWIuV3JpdGVTdHJpbmcoIiAqKiIpCgliLldyaXRlU3RyaW5nKEF0KHgsIHkpKQoJYi5Xcml0ZVN0cmluZygiKipcblxuIikKCWlmIHAgOj0gUGFpbnRlckF0KHgsIHkpOyBwICE9ICIiIHsKCQliLldyaXRlU3RyaW5nKCJQYWludGVkIGJ5IGAiKQoJCWIuV3JpdGVTdHJpbmcocCkKCQliLldyaXRlU3RyaW5nKCJgLlxuIikKCX0gZWxzZSB7CgkJYi5Xcml0ZVN0cmluZygiX05ldmVyIHBhaW50ZWQuX1xuIikKCX0KCXJldHVybiBiLlN0cmluZygpCn0KCi8vIHBhcnNlQXJnIGV4dHJhY3RzIHRoZSBmaXJzdCBwYXRoIHNlZ21lbnQuCmZ1bmMgcGFyc2VBcmcocGF0aCBzdHJpbmcpIHN0cmluZyB7CglzIDo9IHN0cmluZ3MuVHJpbVNwYWNlKHBhdGgpCglzID0gc3RyaW5ncy5UcmltUHJlZml4KHMsICIvIikKCWlmIGkgOj0gc3RyaW5ncy5JbmRleEJ5dGUocywgJy8nKTsgaSA+PSAwIHsKCQlzID0gc1s6aV0KCX0KCXJldHVybiBzCn0KCi8vIHBhcnNlQ29vcmQgcGFyc2VzICJ4LHkiIGFuZCByZXBvcnRzIHdoZXRoZXIgaXQgaXMgaW4gYm91bmRzLgpmdW5jIHBhcnNlQ29vcmQocyBzdHJpbmcpIChpbnQsIGludCwgYm9vbCkgewoJaSA6PSBzdHJpbmdzLkluZGV4Qnl0ZShzLCAnLCcpCglpZiBpIDwgMCB7CgkJcmV0dXJuIDAsIDAsIGZhbHNlCgl9Cgl4LCBlcnIgOj0gc3RyY29udi5BdG9pKHN0cmluZ3MuVHJpbVNwYWNlKHNbOmldKSkKCWlmIGVyciAhPSBuaWwgewoJCXJldHVybiAwLCAwLCBmYWxzZQoJfQoJeSwgZXJyMiA6PSBzdHJjb252LkF0b2koc3RyaW5ncy5UcmltU3BhY2Uoc1tpKzE6XSkpCglpZiBlcnIyICE9IG5pbCB7CgkJcmV0dXJuIDAsIDAsIGZhbHNlCgl9CglpZiB4IDwgMCB8fCB4ID49IFNpemUgfHwgeSA8IDAgfHwgeSA+PSBTaXplIHsKCQlyZXR1cm4gMCwgMCwgZmFsc2UKCX0KCXJldHVybiB4LCB5LCB0cnVlCn0KIiMKEy9nbm8uTWVtUGFja2FnZVR5cGUSDAoKTVBVc2VyUHJvZBITCNSH6hESDDEwMDAwMDB1Z25vdBqoAQo6ChMvdG0uUHViS2V5U2VjcDI1NmsxEiMKIQIAUko/jSwAOonEP0X+r2647UW246Nfe75rO0n/ni2DyBJAlOOWsTlZ/KQjJ9NZauNku4X7GMkQ/I7eFrmhUO+kw7YgrP0/uotxsrdP6e3LELNzdmkwk9LOV1WRXF9tGoc1LhooZzFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFsdXV4ZSIKZ25vcHVibGlzaA==