Transaction executed successfully

Transaction Details

Inspect execution, participants, message data, gas usage, events and raw transaction data.

Transaction hash
0D83FD26BBF80B7192A08325FCBAF7DA7E8E7B9BF5F97756E346DA2701F59570

Transaction overview

Status
Success
Execution completed
Block
#77247
Included in block
Message Type
m_addpkg
Primary message

Execution summary

TX INDEX
0
Position in block
GAS WANTED
37,022,913
Requested gas limit
GAS USED
30,852,457
Gas consumed
FEE
37023ugnot
Transaction fee

Participants

Sender
Package / Realm
Not available
Memo
None

Message

Message #1
m_addpkg
Caller
Arguments
g1q5tjjv3kkslzwf2na9y9wk7e5a8ugph8xfsk04

Execution log

msg:0,success:true,log:,events:[]

Events

No events emitted by this transaction.

Raw encoded transaction

CuixAQoML3ZtLm1fYWRkcGtnEtaxAQooZzFxNXRqanYza2tzbHp3ZjJuYTl5OXdrN2U1YTh1Z3BoOHhmc2swNBKosQEKBGhhbHQSGmduby5sYW5kL3IvZ25vc3dhcC9oYWx0L3YxGvsVCglSRUFETUUubWQS7RUjIEhhbHQKCkVtZXJnZW5jeSBwYXVzZSBtZWNoYW5pc20gZm9yIHByb3RvY29sIHNhZmV0eS4KCiMjIE92ZXJ2aWV3CgpIYWx0IHN5c3RlbSBwcm92aWRlcyBncmFudWxhciBjb250cm9sIG92ZXIgcHJvdG9jb2wgb3BlcmF0aW9ucyBmb3IgZW1lcmdlbmN5IHJlc3BvbnNlIGFuZCBiZXRhIHNhZmV0eSBtb2RlLiBUaGUgaW5pdGlhbCBoYWx0IGxldmVsIGlzIGBOT05FYDsgYW4gYXV0aG9yaXplZCBjYWxsZXIgbXVzdCBleHBsaWNpdGx5IHNlbGVjdCBhbm90aGVyIGxldmVsLgoKIyMgQ29uZmlndXJhdGlvbgoKIyMjIEhhbHQgTGV2ZWxzCgotICoqTk9ORSoqOiBBbGwgb3BlcmF0aW9ucyBlbmFibGVkIChub3JtYWwgb3BlcmF0aW9uKQotICoqU0FGRV9NT0RFKio6IEFsbCBvcGVyYXRpb25zIGVuYWJsZWQgZXhjZXB0IHdpdGhkcmF3YWxzIChtdXN0IGJlIGV4cGxpY2l0bHkgY29uZmlndXJlZCkKLSAqKkVNRVJHRU5DWSoqOiBPbmx5IGdvdmVybmFuY2UgYW5kIHdpdGhkcmF3YWwgb3BlcmF0aW9ucyBlbmFibGVkIChjcmlzaXMgcmVzcG9uc2UpCi0gKipDT01QTEVURSoqOiBBbGwgb3BlcmF0aW9ucyBkaXNhYmxlZCAoZnVsbCBzeXN0ZW0gaGFsdCkKCiMjIyBDb250cm9sbGFibGUgT3BlcmF0aW9ucyAoT3BUeXBlcykKCi0gKipwb29sKio6IFBvb2wgY3JlYXRpb24gYW5kIGxpcXVpZGl0eSBvcGVyYXRpb25zCi0gKipwb3NpdGlvbioqOiBQb3NpdGlvbiBORlQgbWludGluZyBhbmQgbWFuYWdlbWVudAotICoqcHJvdG9jb2xfZmVlKio6IEZlZSBjb2xsZWN0aW9uIGFuZCBkaXN0cmlidXRpb24KLSAqKnJvdXRlcioqOiBTd2FwIHJvdXRpbmcgYW5kIGV4ZWN1dGlvbgotICoqc3Rha2VyKio6IExpcXVpZGl0eSBzdGFraW5nIGFuZCByZXdhcmRzCi0gKipsYXVuY2hwYWQqKjogVG9rZW4gZGlzdHJpYnV0aW9uIHByb2plY3RzCi0gKipnb3Zlcm5hbmNlKio6IFByb3Bvc2FsIGNyZWF0aW9uIGFuZCB2b3RpbmcKLSAqKmdvdl9zdGFrZXIqKjogR05TIHN0YWtpbmcgZm9yIHhHTlMKLSAqKnhnbnMqKjogeEdOUyB0b2tlbiBvcGVyYXRpb25zCi0gKipjb21tdW5pdHlfcG9vbCoqOiBUcmVhc3VyeSBtYW5hZ2VtZW50Ci0gKiplbWlzc2lvbioqOiBHTlMgZW1pc3Npb24gYW5kIGRpc3RyaWJ1dGlvbgotICoqd2l0aGRyYXcqKjogV2l0aGRyYXdhbCBvcGVyYXRpb25zIChMUCwgcmV3YXJkcywgZXRjLikKCiMjIEtleSBGdW5jdGlvbnMKCiMjIyBgU2V0SGFsdExldmVsYApTZXRzIHN5c3RlbS13aWRlIGhhbHQgbGV2ZWwuCgojIyMgYFNldE9wZXJhdGlvblN0YXR1c2AKQ29udHJvbHMgaW5kaXZpZHVhbCBvcGVyYXRpb24gdHlwZXMuCgojIyMgYElzSGFsdGVkYApDaGVja3MgaWYgb3BlcmF0aW9uIGlzIGhhbHRlZC4KCiMjIFVzYWdlCgpgYGBnbwovLyBTZXQgc3lzdGVtIHRvIHNhZmUgbW9kZSBleHBsaWNpdGx5IHdoZW4gbmVlZGVkClNldEhhbHRMZXZlbChjcm9zcyhjdXIpLCBIYWx0TGV2ZWxTYWZlTW9kZSkKCi8vIEVuYWJsZSBlbWVyZ2VuY3kgbW9kZQpTZXRIYWx0TGV2ZWwoY3Jvc3MoY3VyKSwgSGFsdExldmVsRW1lcmdlbmN5KQoKLy8gSGFsdCBzcGVjaWZpYyBvcGVyYXRpb24KU2V0T3BlcmF0aW9uU3RhdHVzKGNyb3NzKGN1ciksIE9wVHlwZVJvdXRlciwgdHJ1ZSkKCi8vIFJlc3VtZSBzcGVjaWZpYyBvcGVyYXRpb24KU2V0T3BlcmF0aW9uU3RhdHVzKGNyb3NzKGN1ciksIE9wVHlwZVJvdXRlciwgZmFsc2UpCgovLyBDaGVjayBiZWZvcmUgb3BlcmF0aW9uCmhhbHRlZCwgZXJyIDo9IElzSGFsdGVkKE9wVHlwZVdpdGhkcmF3KQppZiBlcnIgIT0gbmlsIHsKICAgIHBhbmljKGVycikKfQppZiBoYWx0ZWQgewogICAgcGFuaWMoIndpdGhkcmF3YWxzIGhhbHRlZCIpCn0KYGBgCgojIyBIYWx0IExldmVsIEJlaGF2aW9ycwoKIyMjIE5PTkUgKE5vcm1hbCBPcGVyYXRpb24pCi0gQWxsIGNvbnRyYWN0cyBmdWxseSBvcGVyYXRpb25hbAotIE5vIHJlc3RyaWN0aW9ucyBhcHBsaWVkCgojIyMgU0FGRV9NT0RFIChFeHBsaWNpdGx5IENvbmZpZ3VyZWQpCi0gQWxsIG9wZXJhdGlvbnMgZW5hYmxlZCBleGNlcHQgd2l0aGRyYXdhbHMKLSBVc2VkIHdoZW4gZXhwbGljaXRseSBzZWxlY3RlZCBkdXJpbmcgaW5pdGlhbCBtYWlubmV0IGxhdW5jaCBvciBhbm90aGVyIGNvbnRyb2xsZWQgd2luZG93Ci0gQWxsb3dzIHRyYWRpbmcgYnV0IHByZXZlbnRzIGZ1bmQgZXh0cmFjdGlvbgoKIyMjIEVNRVJHRU5DWSAoQ3Jpc2lzIFJlc3BvbnNlKQotIE9ubHkgZ292ZXJuYW5jZSBhbmQgd2l0aGRyYXdhbHMgZW5hYmxlZAotIEFsbG93cyB1c2VycyB0byBleGl0IHBvc2l0aW9ucwotIEdvdmVybmFuY2UgY2FuIHN0aWxsIGV4ZWN1dGUgcHJvcG9zYWxzCgojIyMgQ09NUExFVEUgKEZ1bGwgSGFsdCkKLSBBbGwgb3BlcmF0aW9ucyBkaXNhYmxlZAotIENvbXBsZXRlIHN5c3RlbSBmcmVlemUKLSBSZWNvdmVyeSByZXF1aXJlcyBhZG1pbi9nb3Zlcm5hbmNlIGFjdGlvbgotIEdvdmVybmFuY2UgY2FuIHN0aWxsIHByb3Bvc2UsIHZvdGUgb24sIGFuZCBleGVjdXRlIHByb3Bvc2FscyB0aGF0IG9ubHkgdGFyZ2V0IHRoZSBoYWx0IHJlYWxtLCBzbyBpdCBjYW4gcmVjb3ZlciBvbiBpdHMgb3duCgojIyBTZWN1cml0eQoKLSBBZG1pbi9nb3Zlcm5hbmNlIGNvbnRyb2wgb25seQotIFRoZSBzeXN0ZW0gaW5pdGlhbGl6ZXMgYXQgYE5PTkVgOyBTQUZFX01PREUgaXMgbm90IGVuYWJsZWQgYnkgZGVmYXVsdAotIEdyYW51bGFyIG9wZXJhdGlvbiBjb250cm9sCi0gRXZlbnQgZW1pc3Npb24gZm9yIHRyYW5zcGFyZW5jeQotIEVtZXJnZW5jeSByZXNwb25zZSBjYXBhYmlsaXR5GpYSCgphc3NlcnQuZ25vEocScGFja2FnZSBoYWx0CgovLyBBc3NlcnRJc05vdEhhbHRlZFBvb2wgcGFuaWNzIGlmIHBvb2wgb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgpmdW5jIEFzc2VydElzTm90SGFsdGVkUG9vbCgpIHsKCUFzc2VydElzTm90SGFsdGVkT3BlcmF0aW9uKE9wVHlwZVBvb2wpCn0KCi8vIEFzc2VydElzTm90SGFsdGVkUG9zaXRpb24gcGFuaWNzIGlmIHBvc2l0aW9uIG9wZXJhdGlvbnMgYXJlIGhhbHRlZC4KZnVuYyBBc3NlcnRJc05vdEhhbHRlZFBvc2l0aW9uKCkgewoJQXNzZXJ0SXNOb3RIYWx0ZWRPcGVyYXRpb24oT3BUeXBlUG9zaXRpb24pCn0KCi8vIEFzc2VydElzTm90SGFsdGVkUHJvdG9jb2xGZWUgcGFuaWNzIGlmIHByb3RvY29sIGZlZSBvcGVyYXRpb25zIGFyZSBoYWx0ZWQuCmZ1bmMgQXNzZXJ0SXNOb3RIYWx0ZWRQcm90b2NvbEZlZSgpIHsKCUFzc2VydElzTm90SGFsdGVkT3BlcmF0aW9uKE9wVHlwZVByb3RvY29sRmVlKQp9CgovLyBBc3NlcnRJc05vdEhhbHRlZFJvdXRlciBwYW5pY3MgaWYgcm91dGVyIG9wZXJhdGlvbnMgYXJlIGhhbHRlZC4KZnVuYyBBc3NlcnRJc05vdEhhbHRlZFJvdXRlcigpIHsKCUFzc2VydElzTm90SGFsdGVkT3BlcmF0aW9uKE9wVHlwZVJvdXRlcikKfQoKLy8gQXNzZXJ0SXNOb3RIYWx0ZWRTdGFrZXIgcGFuaWNzIGlmIHN0YWtlciBvcGVyYXRpb25zIGFyZSBoYWx0ZWQuCmZ1bmMgQXNzZXJ0SXNOb3RIYWx0ZWRTdGFrZXIoKSB7CglBc3NlcnRJc05vdEhhbHRlZE9wZXJhdGlvbihPcFR5cGVTdGFrZXIpCn0KCi8vIEFzc2VydElzTm90SGFsdGVkTGF1bmNocGFkIHBhbmljcyBpZiBsYXVuY2hwYWQgb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgpmdW5jIEFzc2VydElzTm90SGFsdGVkTGF1bmNocGFkKCkgewoJQXNzZXJ0SXNOb3RIYWx0ZWRPcGVyYXRpb24oT3BUeXBlTGF1bmNocGFkKQp9CgovLyBBc3NlcnRJc05vdEhhbHRlZEdvdmVybmFuY2UgcGFuaWNzIGlmIGdvdmVybmFuY2Ugb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgpmdW5jIEFzc2VydElzTm90SGFsdGVkR292ZXJuYW5jZSgpIHsKCUFzc2VydElzTm90SGFsdGVkT3BlcmF0aW9uKE9wVHlwZUdvdmVybmFuY2UpCn0KCi8vIEFzc2VydElzTm90SGFsdGVkR292U3Rha2VyIHBhbmljcyBpZiBnb3Zlcm5hbmNlIHN0YWtlciBvcGVyYXRpb25zIGFyZSBoYWx0ZWQuCmZ1bmMgQXNzZXJ0SXNOb3RIYWx0ZWRHb3ZTdGFrZXIoKSB7CglBc3NlcnRJc05vdEhhbHRlZE9wZXJhdGlvbihPcFR5cGVHb3ZTdGFrZXIpCn0KCi8vIEFzc2VydElzTm90SGFsdGVkWEducyBwYW5pY3MgaWYgeEdOUyBvcGVyYXRpb25zIGFyZSBoYWx0ZWQuCmZ1bmMgQXNzZXJ0SXNOb3RIYWx0ZWRYR25zKCkgewoJQXNzZXJ0SXNOb3RIYWx0ZWRPcGVyYXRpb24oT3BUeXBlWEducykKfQoKLy8gQXNzZXJ0SXNOb3RIYWx0ZWRDb21tdW5pdHlQb29sIHBhbmljcyBpZiBjb21tdW5pdHkgcG9vbCBvcGVyYXRpb25zIGFyZSBoYWx0ZWQuCmZ1bmMgQXNzZXJ0SXNOb3RIYWx0ZWRDb21tdW5pdHlQb29sKCkgewoJQXNzZXJ0SXNOb3RIYWx0ZWRPcGVyYXRpb24oT3BUeXBlQ29tbXVuaXR5UG9vbCkKfQoKLy8gQXNzZXJ0SXNOb3RIYWx0ZWRFbWlzc2lvbiBwYW5pY3MgaWYgZW1pc3Npb24gb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgpmdW5jIEFzc2VydElzTm90SGFsdGVkRW1pc3Npb24oKSB7CglBc3NlcnRJc05vdEhhbHRlZE9wZXJhdGlvbihPcFR5cGVFbWlzc2lvbikKfQoKLy8gQXNzZXJ0SXNOb3RIYWx0ZWRXaXRoZHJhdyBwYW5pY3MgaWYgd2l0aGRyYXcgb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgpmdW5jIEFzc2VydElzTm90SGFsdGVkV2l0aGRyYXcoKSB7CglBc3NlcnRJc05vdEhhbHRlZE9wZXJhdGlvbihPcFR5cGVXaXRoZHJhdykKfQoKLy8gQXNzZXJ0SXNOb3RIYWx0ZWRPcGVyYXRpb24gcGFuaWNzIGlmIHRoZSBzcGVjaWZpZWQgb3BlcmF0aW9uIHR5cGUgaXMgaGFsdGVkLgovLyBQYW5pY3Mgd2l0aCBlcnJvciBkZXRhaWxzIGluY2x1ZGluZyBvcGVyYXRpb24gdHlwZSBuYW1lLgovLwovLyBQYXJhbWV0ZXJzOgovLyAgIC0gb3A6IHZhbGlkIG9wZXJhdGlvbiB0eXBlIHdob3NlIGhhbHQgc3RhdHVzIG11c3QgcGVybWl0IGV4ZWN1dGlvbjsgaW52YWxpZAovLyAgICAgb3BlcmF0aW9uIHR5cGVzIHBhbmljIHdpdGggYW4gaW52YWxpZC1vcGVyYXRpb24gZXJyb3IuCmZ1bmMgQXNzZXJ0SXNOb3RIYWx0ZWRPcGVyYXRpb24ob3AgT3BUeXBlKSB7CglpZiBoYWx0ZWQgOj0gaXNIYWx0ZWRPcGVyYXRpb24ob3ApOyBoYWx0ZWQgewoJCXBhbmljKG1ha2VFcnJvcldpdGhEZXRhaWxzKGVyckhhbHRlZCwgb3AuU3RyaW5nKCkpKQoJfQp9ChqWHAoKY29uZmlnLmdubxKHHHBhY2thZ2UgaGFsdAoKLy8gSGFsdENvbmZpZyBzdG9yZXMgaGFsdCBzdGF0ZSBmb3IgZWFjaCBvcGVyYXRpb24gdHlwZS4KdHlwZSBIYWx0Q29uZmlnIG1hcFtPcFR5cGVdYm9vbAoKLy8gSXNIYWx0ZWQgcmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgb3BlcmF0aW9uIGlzIGhhbHRlZCwgZmFsc2Ugb3RoZXJ3aXNlLgovLyBSZXR1cm5zIGZhbHNlIGlmIG9wZXJhdGlvbiB0eXBlIGlzIG5vdCBmb3VuZCBpbiBjb25maWd1cmF0aW9uLgovLwovLyBQYXJhbWV0ZXJzOgovLyAgIC0gb3A6IG9wZXJhdGlvbiB0eXBlIHdob3NlIGhhbHQgZmxhZyBpcyBxdWVyaWVkLgovLwovLyBSZXR1cm5zOgovLyAgIC0gaGFsdGVkOiBjb25maWd1cmVkIGhhbHQgZmxhZzsgZmFsc2Ugd2hlbiBvcCBpcyBhYnNlbnQgZnJvbSB0aGUgY29uZmlndXJhdGlvbi4KZnVuYyAoYyBIYWx0Q29uZmlnKSBJc0hhbHRlZChvcCBPcFR5cGUpIGJvb2wgewoJaGFsdGVkLCBleGlzdHMgOj0gY1tvcF0KCWlmICFleGlzdHMgewoJCXJldHVybiBmYWxzZQoJfQoKCXJldHVybiBoYWx0ZWQKfQoKLy8gQ2xvbmUgY3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGUgaGFsdCBjb25maWd1cmF0aW9uIGFuZCByZXR1cm5zIGl0LgovLwovLyBSZXR1cm5zOgovLyAgIC0gY2xvbmU6IGluZGVwZW5kZW50IG1hcCBjb250YWluaW5nIHRoZSBzYW1lIG9wZXJhdGlvbiBoYWx0IGZsYWdzIGFzIHRoZSByZWNlaXZlci4KZnVuYyAoYyBIYWx0Q29uZmlnKSBDbG9uZSgpIEhhbHRDb25maWcgewoJY2xvbmUgOj0gbWFrZShIYWx0Q29uZmlnKQoKCWZvciBvcCwgb3B0aW9uIDo9IHJhbmdlIGMgewoJCWNsb25lW29wXSA9IG9wdGlvbgoJfQoKCXJldHVybiBjbG9uZQp9CgovLyBnZXQgcmV0cmlldmVzIGhhbHQgc3RhdGUgZm9yIHRoZSBzcGVjaWZpZWQgb3BlcmF0aW9uIHR5cGUuCi8vCi8vIEVycm9yczoKLy8gICAtIGVyck9wVHlwZU5vdEZvdW5kOiB0aGUgc3BlY2lmaWVkIG9wZXJhdGlvbiB0eXBlIGRvZXMgbm90IGV4aXN0IGluIHRoZSBjb25maWcKZnVuYyAoYyBIYWx0Q29uZmlnKSBnZXQob3AgT3BUeXBlKSAoYm9vbCwgZXJyb3IpIHsKCWVuYWJsZWQsIGV4aXN0cyA6PSBjW29wXQoJaWYgIWV4aXN0cyB7CgkJcmV0dXJuIGZhbHNlLCBtYWtlRXJyb3JXaXRoRGV0YWlscyhlcnJPcFR5cGVOb3RGb3VuZCwgb3AuU3RyaW5nKCkpCgl9CgoJcmV0dXJuIGVuYWJsZWQsIG5pbAp9CgovLyBzZXQgdXBkYXRlcyBoYWx0IHN0YXRlIGZvciB0aGUgc3BlY2lmaWVkIG9wZXJhdGlvbiB0eXBlLgovLyBSZXR1cm5zIGVycm9yIGlmIG9wZXJhdGlvbiB0eXBlIGlzIGludmFsaWQuCmZ1bmMgKGMgSGFsdENvbmZpZykgc2V0KG9wIE9wVHlwZSwgZW5hYmxlZCBib29sKSBlcnJvciB7CglpZiAhb3AuSXNWYWxpZCgpIHsKCQlyZXR1cm4gbWFrZUVycm9yV2l0aERldGFpbHMoZXJySW52YWxpZE9wVHlwZSwgb3AuU3RyaW5nKCkpCgl9CgoJY1tvcF0gPSBlbmFibGVkCgoJcmV0dXJuIG5pbAp9CgovLyBuZXdOb25lQ29uZmlnIGNyZWF0ZXMgY29uZmlndXJhdGlvbiB3aXRoIGFsbCBvcGVyYXRpb25zIGVuYWJsZWQgKG5vIGhhbHRzKS4KZnVuYyBuZXdOb25lQ29uZmlnKCkgSGFsdENvbmZpZyB7CglyZXR1cm4gSGFsdENvbmZpZ3sKCQlPcFR5cGVQb29sOiAgICAgICAgICBmYWxzZSwKCQlPcFR5cGVQb3NpdGlvbjogICAgICBmYWxzZSwKCQlPcFR5cGVQcm90b2NvbEZlZTogICBmYWxzZSwKCQlPcFR5cGVSb3V0ZXI6ICAgICAgICBmYWxzZSwKCQlPcFR5cGVTdGFrZXI6ICAgICAgICBmYWxzZSwKCQlPcFR5cGVMYXVuY2hwYWQ6ICAgICBmYWxzZSwKCQlPcFR5cGVHb3Zlcm5hbmNlOiAgICBmYWxzZSwKCQlPcFR5cGVHb3ZTdGFrZXI6ICAgICBmYWxzZSwKCQlPcFR5cGVYR25zOiAgICAgICAgICBmYWxzZSwKCQlPcFR5cGVDb21tdW5pdHlQb29sOiBmYWxzZSwKCQlPcFR5cGVFbWlzc2lvbjogICAgICBmYWxzZSwKCQlPcFR5cGVXaXRoZHJhdzogICAgICBmYWxzZSwKCX0KfQoKLy8gbmV3U2FmZU1vZGVDb25maWcgY3JlYXRlcyBjb25maWd1cmF0aW9uIGZvciBzYWZlIG1vZGUgd2l0aCBvbmx5IHdpdGhkcmF3YWxzIGhhbHRlZC4KZnVuYyBuZXdTYWZlTW9kZUNvbmZpZygpIEhhbHRDb25maWcgewoJcmV0dXJuIEhhbHRDb25maWd7CgkJT3BUeXBlUG9vbDogICAgICAgICAgZmFsc2UsCgkJT3BUeXBlUG9zaXRpb246ICAgICAgZmFsc2UsCgkJT3BUeXBlUHJvdG9jb2xGZWU6ICAgZmFsc2UsCgkJT3BUeXBlUm91dGVyOiAgICAgICAgZmFsc2UsCgkJT3BUeXBlU3Rha2VyOiAgICAgICAgZmFsc2UsCgkJT3BUeXBlTGF1bmNocGFkOiAgICAgZmFsc2UsCgkJT3BUeXBlR292ZXJuYW5jZTogICAgZmFsc2UsCgkJT3BUeXBlR292U3Rha2VyOiAgICAgZmFsc2UsCgkJT3BUeXBlWEduczogICAgICAgICAgZmFsc2UsCgkJT3BUeXBlQ29tbXVuaXR5UG9vbDogZmFsc2UsCgkJT3BUeXBlRW1pc3Npb246ICAgICAgZmFsc2UsCgkJT3BUeXBlV2l0aGRyYXc6ICAgICAgdHJ1ZSwKCX0KfQoKLy8gbmV3RW1lcmdlbmN5Q29uZmlnIGNyZWF0ZXMgY29uZmlndXJhdGlvbiBmb3IgZW1lcmdlbmN5IG1vZGUgd2l0aCBtb3N0IG9wZXJhdGlvbnMgaGFsdGVkLgovLyBPbmx5IGdvdmVybmFuY2UgYW5kIHdpdGhkcmF3IG9wZXJhdGlvbnMgcmVtYWluIGVuYWJsZWQgZm9yIGVtZXJnZW5jeSByZWNvdmVyeS4KZnVuYyBuZXdFbWVyZ2VuY3lDb25maWcoKSBIYWx0Q29uZmlnIHsKCXJldHVybiBIYWx0Q29uZmlnewoJCU9wVHlwZVBvb2w6ICAgICAgICAgIHRydWUsCgkJT3BUeXBlUG9zaXRpb246ICAgICAgdHJ1ZSwKCQlPcFR5cGVQcm90b2NvbEZlZTogICB0cnVlLAoJCU9wVHlwZVJvdXRlcjogICAgICAgIHRydWUsCgkJT3BUeXBlU3Rha2VyOiAgICAgICAgdHJ1ZSwKCQlPcFR5cGVMYXVuY2hwYWQ6ICAgICB0cnVlLAoJCU9wVHlwZUdvdmVybmFuY2U6ICAgIGZhbHNlLAoJCU9wVHlwZUdvdlN0YWtlcjogICAgIHRydWUsCgkJT3BUeXBlWEduczogICAgICAgICAgdHJ1ZSwKCQlPcFR5cGVDb21tdW5pdHlQb29sOiB0cnVlLAoJCU9wVHlwZUVtaXNzaW9uOiAgICAgIHRydWUsCgkJT3BUeXBlV2l0aGRyYXc6ICAgICAgZmFsc2UsCgl9Cn0KCi8vIG5ld0NvbXBsZXRlQ29uZmlnIGNyZWF0ZXMgY29uZmlndXJhdGlvbiB3aXRoIGFsbCBvcGVyYXRpb25zIGhhbHRlZCBmb3IgY29tcGxldGUgbG9ja2Rvd24uCmZ1bmMgbmV3Q29tcGxldGVDb25maWcoKSBIYWx0Q29uZmlnIHsKCXJldHVybiBIYWx0Q29uZmlnewoJCU9wVHlwZVBvb2w6ICAgICAgICAgIHRydWUsCgkJT3BUeXBlUG9zaXRpb246ICAgICAgdHJ1ZSwKCQlPcFR5cGVQcm90b2NvbEZlZTogICB0cnVlLAoJCU9wVHlwZVJvdXRlcjogICAgICAgIHRydWUsCgkJT3BUeXBlU3Rha2VyOiAgICAgICAgdHJ1ZSwKCQlPcFR5cGVMYXVuY2hwYWQ6ICAgICB0cnVlLAoJCU9wVHlwZUdvdmVybmFuY2U6ICAgIHRydWUsCgkJT3BUeXBlR292U3Rha2VyOiAgICAgdHJ1ZSwKCQlPcFR5cGVYR25zOiAgICAgICAgICB0cnVlLAoJCU9wVHlwZUNvbW11bml0eVBvb2w6IHRydWUsCgkJT3BUeXBlRW1pc3Npb246ICAgICAgdHJ1ZSwKCQlPcFR5cGVXaXRoZHJhdzogICAgICB0cnVlLAoJfQp9ChpxCgdkb2MuZ25vEmYvLyBQYWNrYWdlIGhhbHQgcHJvdmlkZXMgZnVuY3Rpb25hbGl0eSBmb3IgbWFuYWdpbmcgcHJvdG9jb2wgaGFsdCBsZXZlbHMgYW5kIG9wZXJhdGlvbnMuCnBhY2thZ2UgaGFsdAoa4wMKCmVycm9ycy5nbm8S1ANwYWNrYWdlIGhhbHQKCmltcG9ydCAoCgl1Zm10ICJnbm8ubGFuZC9wL250L3VmbXQvdjAiCikKCmNvbnN0ICgKCWVyckhhbHRlZCAgICAgICAgICAgPSAiaGFsdGVkIgoJZXJySW52YWxpZE9wVHlwZSAgICA9ICJpbnZhbGlkIG9wZXJhdGlvbiB0eXBlIgoJZXJySW52YWxpZEhhbHRMZXZlbCA9ICJpbnZhbGlkIGhhbHQgbGV2ZWwiCgllcnJPcFR5cGVOb3RGb3VuZCAgID0gIm9wZXJhdGlvbiB0eXBlIG5vdCBmb3VuZCBpbiBjb25maWciCikKCi8vIG1ha2VFcnJvcldpdGhEZXRhaWxzIGNyZWF0ZXMgYW4gZXJyb3Igd2l0aCBhZGRpdGlvbmFsIGRldGFpbHMgYXBwZW5kZWQgdG8gdGhlIGJhc2UgZXJyb3IgbWVzc2FnZS4KZnVuYyBtYWtlRXJyb3JXaXRoRGV0YWlscyhtZXNzYWdlIHN0cmluZywgZGV0YWlscyBzdHJpbmcpIGVycm9yIHsKCXJldHVybiB1Zm10LkVycm9yZigiJXM6ICVzIiwgbWVzc2FnZSwgZGV0YWlscykKfQoa9SQKC2dldHRlcnMuZ25vEuUkcGFja2FnZSBoYWx0CgppbXBvcnQgKAoJImduby5sYW5kL3Avb25ibG9jL2pzb24vdjAiCikKCi8vIElzSGFsdGVkIHJldHVybnMgdHJ1ZSBpZiBhbnkgb2YgdGhlIHNwZWNpZmllZCBvcGVyYXRpb24gdHlwZXMgYXJlIGhhbHRlZC4KLy8gUmV0dXJucyBlcnJvciBpZiBhbnkgb3BlcmF0aW9uIHR5cGUgaXMgaW52YWxpZC4KLy8KLy8gUGFyYW1ldGVyczoKLy8gICAtIG9wVHlwZXM6IG9wZXJhdGlvbiB0eXBlcyB0byBpbnNwZWN0OyBhbiBlbXB0eSBsaXN0IHJlcG9ydHMgbm8gaGFsdGVkIG9wZXJhdGlvbnMKLy8KLy8gUmV0dXJuczoKLy8gICAtIGhhbHRlZDogdHJ1ZSB3aGVuIGFueSByZXF1ZXN0ZWQgb3BlcmF0aW9uIGlzIGhhbHRlZDsgb24gaW52YWxpZCBpbnB1dCBpdAovLyAgICAgaXMgYWxzbyB0cnVlIGFsb25nc2lkZSB0aGUgZXJyb3IKLy8gICAtIGVycm9yOiBuaWwgd2hlbiBhbGwgcmVxdWVzdGVkIG9wZXJhdGlvbiB0eXBlcyBhcmUgdmFsaWQgYW5kIGluc3BlY3RlZDsKLy8gICAgIGFuIGludmFsaWQtb3BlcmF0aW9uIG9yIHN0YXRlIGVycm9yIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkKG9wVHlwZXMgLi4uT3BUeXBlKSAoYm9vbCwgZXJyb3IpIHsKCWZvciBfLCBvcCA6PSByYW5nZSBvcFR5cGVzIHsKCQlpZiAhb3AuSXNWYWxpZCgpIHsKCQkJcmV0dXJuIHRydWUsIG1ha2VFcnJvcldpdGhEZXRhaWxzKGVyckludmFsaWRPcFR5cGUsIG9wLlN0cmluZygpKQoJCX0KCgkJaGFsdGVkLCBlcnIgOj0gaGFsdFN0YXRlcy5Jc09wZXJhdGlvbkhhbHRlZChvcCkKCQlpZiBlcnIgIT0gbmlsIHsKCQkJcmV0dXJuIHRydWUsIGVycgoJCX0KCgkJaWYgaGFsdGVkIHsKCQkJcmV0dXJuIHRydWUsIG5pbAoJCX0KCX0KCglyZXR1cm4gZmFsc2UsIG5pbAp9CgovLyBHZXRIYWx0Q29uZmlnIHJldHVybnMgYSBjb3B5IG9mIHRoZSBjdXJyZW50IGhhbHQgY29uZmlndXJhdGlvbi4KLy8KLy8gUmV0dXJuczoKLy8gICAtIGNvbmZpZzogY29weSBvZiB0aGUgY3VycmVudCBoYWx0IHN0YXR1cyBrZXllZCBieSBvcGVyYXRpb24gdHlwZQpmdW5jIEdldEhhbHRDb25maWcoKSBIYWx0Q29uZmlnIHsKCXJldHVybiBoYWx0U3RhdGVzLlRvQ29uZmlnKCkKfQoKLy8gR2V0SGFsdENvbmZpZ0pzb24gcmV0dXJucyB0aGUgaGFsdCBjb25maWd1cmF0aW9uIGFzIGEgSlNPTiBzdHJpbmcuCi8vCi8vIFJldHVybnM6Ci8vICAgLSBqc29uOiBKU09OIG9iamVjdCBjb250YWluaW5nIGVhY2ggb3BlcmF0aW9uIHR5cGUncyBoYWx0IHN0YXR1cwpmdW5jIEdldEhhbHRDb25maWdKc29uKCkgc3RyaW5nIHsKCWhhbHRDb25maWcgOj0gR2V0SGFsdENvbmZpZygpCgoJc3RhdHVzTm9kZXMgOj0gbWFrZShtYXBbc3RyaW5nXSpqc29uLk5vZGUpCgoJZm9yIG9wLCBoYWx0ZWQgOj0gcmFuZ2UgaGFsdENvbmZpZyB7CgkJc3RhdHVzTm9kZXNbb3AuU3RyaW5nKCldID0ganNvbi5Cb29sTm9kZShvcC5TdHJpbmcoKSwgaGFsdGVkKQoJfQoKCW9iamVjdE5vZGUgOj0ganNvbi5PYmplY3ROb2RlKCJzdGF0dXMiLCBzdGF0dXNOb2RlcykKCglyZXR1cm4gb2JqZWN0Tm9kZS5TdHJpbmcoKQp9CgovLyBJc0hhbHRlZFBvb2wgcmV0dXJucyB0cnVlIGlmIHBvb2wgb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgovLwovLyBSZXR1cm5zOgovLyAgIC0gaGFsdGVkOiB0cnVlIHdoZW4gcG9vbCBvcGVyYXRpb25zIGFyZSBoYWx0ZWQ7IGZhbHNlIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkUG9vbCgpIGJvb2wgewoJcmV0dXJuIGlzSGFsdGVkT3BlcmF0aW9uKE9wVHlwZVBvb2wpCn0KCi8vIElzSGFsdGVkUG9zaXRpb24gcmV0dXJucyB0cnVlIGlmIHBvc2l0aW9uIG9wZXJhdGlvbnMgYXJlIGhhbHRlZC4KLy8KLy8gUmV0dXJuczoKLy8gICAtIGhhbHRlZDogdHJ1ZSB3aGVuIHBvc2l0aW9uIG9wZXJhdGlvbnMgYXJlIGhhbHRlZDsgZmFsc2Ugb3RoZXJ3aXNlCmZ1bmMgSXNIYWx0ZWRQb3NpdGlvbigpIGJvb2wgewoJcmV0dXJuIGlzSGFsdGVkT3BlcmF0aW9uKE9wVHlwZVBvc2l0aW9uKQp9CgovLyBJc0hhbHRlZFByb3RvY29sRmVlIHJldHVybnMgdHJ1ZSBpZiBwcm90b2NvbCBmZWUgb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgovLwovLyBSZXR1cm5zOgovLyAgIC0gaGFsdGVkOiB0cnVlIHdoZW4gcHJvdG9jb2wtZmVlIG9wZXJhdGlvbnMgYXJlIGhhbHRlZDsgZmFsc2Ugb3RoZXJ3aXNlCmZ1bmMgSXNIYWx0ZWRQcm90b2NvbEZlZSgpIGJvb2wgewoJcmV0dXJuIGlzSGFsdGVkT3BlcmF0aW9uKE9wVHlwZVByb3RvY29sRmVlKQp9CgovLyBJc0hhbHRlZFJvdXRlciByZXR1cm5zIHRydWUgaWYgcm91dGVyIG9wZXJhdGlvbnMgYXJlIGhhbHRlZC4KLy8KLy8gUmV0dXJuczoKLy8gICAtIGhhbHRlZDogdHJ1ZSB3aGVuIHJvdXRlciBvcGVyYXRpb25zIGFyZSBoYWx0ZWQ7IGZhbHNlIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkUm91dGVyKCkgYm9vbCB7CglyZXR1cm4gaXNIYWx0ZWRPcGVyYXRpb24oT3BUeXBlUm91dGVyKQp9CgovLyBJc0hhbHRlZFN0YWtlciByZXR1cm5zIHRydWUgaWYgc3Rha2VyIG9wZXJhdGlvbnMgYXJlIGhhbHRlZC4KLy8KLy8gUmV0dXJuczoKLy8gICAtIGhhbHRlZDogdHJ1ZSB3aGVuIHN0YWtlciBvcGVyYXRpb25zIGFyZSBoYWx0ZWQ7IGZhbHNlIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkU3Rha2VyKCkgYm9vbCB7CglyZXR1cm4gaXNIYWx0ZWRPcGVyYXRpb24oT3BUeXBlU3Rha2VyKQp9CgovLyBJc0hhbHRlZExhdW5jaHBhZCByZXR1cm5zIHRydWUgaWYgbGF1bmNocGFkIG9wZXJhdGlvbnMgYXJlIGhhbHRlZC4KLy8KLy8gUmV0dXJuczoKLy8gICAtIGhhbHRlZDogdHJ1ZSB3aGVuIGxhdW5jaHBhZCBvcGVyYXRpb25zIGFyZSBoYWx0ZWQ7IGZhbHNlIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkTGF1bmNocGFkKCkgYm9vbCB7CglyZXR1cm4gaXNIYWx0ZWRPcGVyYXRpb24oT3BUeXBlTGF1bmNocGFkKQp9CgovLyBJc0hhbHRlZEdvdmVybmFuY2UgcmV0dXJucyB0cnVlIGlmIGdvdmVybmFuY2Ugb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgovLwovLyBSZXR1cm5zOgovLyAgIC0gaGFsdGVkOiB0cnVlIHdoZW4gZ292ZXJuYW5jZSBvcGVyYXRpb25zIGFyZSBoYWx0ZWQ7IGZhbHNlIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkR292ZXJuYW5jZSgpIGJvb2wgewoJcmV0dXJuIGlzSGFsdGVkT3BlcmF0aW9uKE9wVHlwZUdvdmVybmFuY2UpCn0KCi8vIElzSGFsdGVkR292U3Rha2VyIHJldHVybnMgdHJ1ZSBpZiBnb3Zlcm5hbmNlIHN0YWtlciBvcGVyYXRpb25zIGFyZSBoYWx0ZWQuCi8vCi8vIFJldHVybnM6Ci8vICAgLSBoYWx0ZWQ6IHRydWUgd2hlbiBnb3Zlcm5hbmNlLXN0YWtlciBvcGVyYXRpb25zIGFyZSBoYWx0ZWQ7IGZhbHNlIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkR292U3Rha2VyKCkgYm9vbCB7CglyZXR1cm4gaXNIYWx0ZWRPcGVyYXRpb24oT3BUeXBlR292U3Rha2VyKQp9CgovLyBJc0hhbHRlZFhHbnMgcmV0dXJucyB0cnVlIGlmIHhHTlMgb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgovLwovLyBSZXR1cm5zOgovLyAgIC0gaGFsdGVkOiB0cnVlIHdoZW4geEdOUyBvcGVyYXRpb25zIGFyZSBoYWx0ZWQ7IGZhbHNlIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkWEducygpIGJvb2wgewoJcmV0dXJuIGlzSGFsdGVkT3BlcmF0aW9uKE9wVHlwZVhHbnMpCn0KCi8vIElzSGFsdGVkQ29tbXVuaXR5UG9vbCByZXR1cm5zIHRydWUgaWYgY29tbXVuaXR5IHBvb2wgb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgovLwovLyBSZXR1cm5zOgovLyAgIC0gaGFsdGVkOiB0cnVlIHdoZW4gY29tbXVuaXR5LXBvb2wgb3BlcmF0aW9ucyBhcmUgaGFsdGVkOyBmYWxzZSBvdGhlcndpc2UKZnVuYyBJc0hhbHRlZENvbW11bml0eVBvb2woKSBib29sIHsKCXJldHVybiBpc0hhbHRlZE9wZXJhdGlvbihPcFR5cGVDb21tdW5pdHlQb29sKQp9CgovLyBJc0hhbHRlZEVtaXNzaW9uIHJldHVybnMgdHJ1ZSBpZiBlbWlzc2lvbiBvcGVyYXRpb25zIGFyZSBoYWx0ZWQuCi8vCi8vIFJldHVybnM6Ci8vICAgLSBoYWx0ZWQ6IHRydWUgd2hlbiBlbWlzc2lvbiBvcGVyYXRpb25zIGFyZSBoYWx0ZWQ7IGZhbHNlIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkRW1pc3Npb24oKSBib29sIHsKCXJldHVybiBpc0hhbHRlZE9wZXJhdGlvbihPcFR5cGVFbWlzc2lvbikKfQoKLy8gSXNIYWx0ZWRXaXRoZHJhdyByZXR1cm5zIHRydWUgaWYgd2l0aGRyYXcgb3BlcmF0aW9ucyBhcmUgaGFsdGVkLgovLwovLyBSZXR1cm5zOgovLyAgIC0gaGFsdGVkOiB0cnVlIHdoZW4gd2l0aGRyYXdhbCBvcGVyYXRpb25zIGFyZSBoYWx0ZWQ7IGZhbHNlIG90aGVyd2lzZQpmdW5jIElzSGFsdGVkV2l0aGRyYXcoKSBib29sIHsKCXJldHVybiBpc0hhbHRlZE9wZXJhdGlvbihPcFR5cGVXaXRoZHJhdykKfQoKLy8gaXNIYWx0ZWRPcGVyYXRpb24gcmV0dXJucyBoYWx0IHN0YXR1cyBmb3IgdGhlIHNwZWNpZmllZCBvcGVyYXRpb24gdHlwZS4KLy8gUGFuaWNzIGlmIG9wZXJhdGlvbiB0eXBlIGlzIGludmFsaWQuCmZ1bmMgaXNIYWx0ZWRPcGVyYXRpb24ob3AgT3BUeXBlKSBib29sIHsKCWlmICFvcC5Jc1ZhbGlkKCkgewoJCXBhbmljKG1ha2VFcnJvcldpdGhEZXRhaWxzKGVyckludmFsaWRPcFR5cGUsIG9wLlN0cmluZygpKSkKCX0KCgloYWx0ZWQsIGVyciA6PSBoYWx0U3RhdGVzLklzT3BlcmF0aW9uSGFsdGVkKG9wKQoJaWYgZXJyICE9IG5pbCB7CgkJcGFuaWMoZXJyKQoJfQoKCXJldHVybiBoYWx0ZWQKfQoaQQoLZ25vbW9kLnRvbWwSMm1vZHVsZSA9ICJnbm8ubGFuZC9yL2dub3N3YXAvaGFsdC92MSIKZ25vID0gIjAuOSIKGqAQCghoYWx0LmdubxKTEHBhY2thZ2UgaGFsdAoKaW1wb3J0ICgKCSJjaGFpbiIKCSJzdHJjb252IgoKCSJnbm8ubGFuZC9yL2dub3N3YXAvYWNjZXNzL3YxIgopCgp2YXIgaGFsdFN0YXRlcyBIYWx0U3RhdGVNYW5hZ2VyCgpmdW5jIGluaXQoKSB7CgloYWx0U3RhdGVzID0gbmV3SGFsdFN0YXRlTWFuYWdlckJ5Q29uZmlnKG5ld05vbmVDb25maWcoKSkKfQoKLy8gU2V0SGFsdExldmVsIHNldHMgdGhlIGdsb2JhbCBoYWx0IGxldmVsLgovLwovLyBQYXJhbWV0ZXJzOgovLyAgIC0gY3VyOiBDdXJyZW50IHJlYWxtIGNvbnRleHQ7IGNhbGxlcnMgdXNlIGNyb3NzKGN1cikgd2hlbiBjcm9zc2luZyBpbnRvIHRoaXMgcmVhbG0uCi8vICAgLSBsZXZlbDogaGFsdCBsZXZlbCB0byBhcHBseSAoTm9uZSwgU2FmZU1vZGUsIEVtZXJnZW5jeSwgb3IgQ29tcGxldGUpLgovLwovLyBPbmx5IGNhbGxhYmxlIGJ5IGFkbWluIG9yIGdvdmVybmFuY2UuCmZ1bmMgU2V0SGFsdExldmVsKGN1ciByZWFsbSwgbGV2ZWwgSGFsdExldmVsKSB7CgljYWxsZXIgOj0gY3VyLlByZXZpb3VzKCkuQWRkcmVzcygpCglhY2Nlc3MuQXNzZXJ0SXNBZG1pbk9yR292ZXJuYW5jZShjYWxsZXIpCgoJZXJyIDo9IHNldEhhbHRMZXZlbChsZXZlbCkKCWlmIGVyciAhPSBuaWwgewoJCXBhbmljKGVycikKCX0KCgljaGFpbi5FbWl0KAoJCSJTZXRIYWx0TGV2ZWwiLAoJCSJsZXZlbCIsIGxldmVsLlN0cmluZygpLAoJCSJkZXNjcmlwdGlvbiIsIGxldmVsLkRlc2NyaXB0aW9uKCksCgkJImNhbGxlciIsIGNhbGxlci5TdHJpbmcoKSwKCSkKfQoKLy8gU2V0T3BlcmF0aW9uU3RhdHVzIHNldHMgdGhlIGhhbHQgc3RhdHVzIGZvciBhIHNwZWNpZmljIG9wZXJhdGlvbi4KLy8KLy8gUGFyYW1ldGVyczoKLy8gICAtIGN1cjogQ3VycmVudCByZWFsbSBjb250ZXh0OyBjYWxsZXJzIHVzZSBjcm9zcyhjdXIpIHdoZW4gY3Jvc3NpbmcgaW50byB0aGlzIHJlYWxtLgovLyAgIC0gb3A6IG9wZXJhdGlvbiB0eXBlIHdob3NlIGhhbHQgc3RhdHVzIGlzIGNoYW5nZWQuCi8vICAgLSBoYWx0ZWQ6IHRydWUgdG8gYmxvY2sgdGhlIG9wZXJhdGlvbiwgZmFsc2UgdG8gYWxsb3cgaXQuCi8vCi8vIE9ubHkgY2FsbGFibGUgYnkgYWRtaW4gb3IgZ292ZXJuYW5jZS4KZnVuYyBTZXRPcGVyYXRpb25TdGF0dXMoY3VyIHJlYWxtLCBvcCBPcFR5cGUsIGhhbHRlZCBib29sKSB7CgljYWxsZXIgOj0gY3VyLlByZXZpb3VzKCkuQWRkcmVzcygpCglhY2Nlc3MuQXNzZXJ0SXNBZG1pbk9yR292ZXJuYW5jZShjYWxsZXIpCgoJaWYgIW9wLklzVmFsaWQoKSB7CgkJcGFuaWMobWFrZUVycm9yV2l0aERldGFpbHMoZXJySW52YWxpZE9wVHlwZSwgb3AuU3RyaW5nKCkpKQoJfQoKCWVyciA6PSBoYWx0U3RhdGVzLnNldE9wZXJhdGlvbkhhbHRlZChvcCwgaGFsdGVkKQoJaWYgZXJyICE9IG5pbCB7CgkJcGFuaWMoZXJyKQoJfQoKCWNoYWluLkVtaXQoCgkJIlNldE9wZXJhdGlvblN0YXR1cyIsCgkJIm9wZXJhdGlvbiIsIHN0cmluZyhvcCksCgkJImhhbHRlZCIsIHN0cmNvbnYuRm9ybWF0Qm9vbChoYWx0ZWQpLAoJCSJjYWxsZXIiLCBjYWxsZXIuU3RyaW5nKCksCgkpCn0KCi8vIHNldEhhbHRMZXZlbCBhcHBsaWVzIHByZWRlZmluZWQgaGFsdCBsZXZlbCBjb25maWd1cmF0aW9uLgpmdW5jIHNldEhhbHRMZXZlbChsZXZlbCBIYWx0TGV2ZWwpIGVycm9yIHsKCXZhciBjb25maWcgSGFsdENvbmZpZwoKCXN3aXRjaCBsZXZlbCB7CgljYXNlIEhhbHRMZXZlbE5vbmU6CgkJY29uZmlnID0gbmV3Tm9uZUNvbmZpZygpCgljYXNlIEhhbHRMZXZlbFNhZmVNb2RlOgoJCWNvbmZpZyA9IG5ld1NhZmVNb2RlQ29uZmlnKCkKCWNhc2UgSGFsdExldmVsRW1lcmdlbmN5OgoJCWNvbmZpZyA9IG5ld0VtZXJnZW5jeUNvbmZpZygpCgljYXNlIEhhbHRMZXZlbENvbXBsZXRlOgoJCWNvbmZpZyA9IG5ld0NvbXBsZXRlQ29uZmlnKCkKCWRlZmF1bHQ6CgkJcmV0dXJuIG1ha2VFcnJvcldpdGhEZXRhaWxzKGVyckludmFsaWRIYWx0TGV2ZWwsIGxldmVsLlN0cmluZygpKQoJfQoKCXJldHVybiBoYWx0U3RhdGVzLnVwZGF0ZU9wZXJhdGlvbkhhbHRzQnlDb25maWcoY29uZmlnKQp9ChrzDQoOaGFsdF9zdGF0ZS5nbm8S4A1wYWNrYWdlIGhhbHQKCnR5cGUgSGFsdFN0YXRlTWFuYWdlciBtYXBbT3BUeXBlXWJvb2wKCi8vIElzT3BlcmF0aW9uSGFsdGVkIHJldHVybnMgdGhlIGhhbHQgc3RhdGUgZm9yIGFuIG9wZXJhdGlvbiB0eXBlLgovLwovLyBQYXJhbWV0ZXJzOgovLyAgIC0gb3A6IG9wZXJhdGlvbiB0eXBlIHdob3NlIGhhbHQgZmxhZyBpcyBxdWVyaWVkLgovLwovLyBSZXR1cm5zOgovLyAgIC0gaGFsdGVkOiBjb25maWd1cmVkIGhhbHQgZmxhZyBmb3Igb3AuCi8vICAgLSBlcnJvcjogbmlsIHdoZW4gb3AgZXhpc3RzOyBvdGhlcndpc2UgZXJyT3BUeXBlTm90Rm91bmQuCmZ1bmMgKGggSGFsdFN0YXRlTWFuYWdlcikgSXNPcGVyYXRpb25IYWx0ZWQob3AgT3BUeXBlKSAoYm9vbCwgZXJyb3IpIHsKCXJldHVybiBoLmdldE9wZXJhdGlvbkhhbHRlZChvcCkKfQoKLy8gVG9Db25maWcgY29udmVydHMgdGhlIEhhbHRTdGF0ZU1hbmFnZXIgdG8gYW4gaW5kZXBlbmRlbnQgSGFsdENvbmZpZyBjb3B5LgovLwovLyBSZXR1cm5zOgovLyAgIC0gY29uZmlnOiBjb3BpZWQgb3BlcmF0aW9uLXRvLWhhbHQtZmxhZyBtYXAuCmZ1bmMgKGggSGFsdFN0YXRlTWFuYWdlcikgVG9Db25maWcoKSBIYWx0Q29uZmlnIHsKCWNvbmZpZyA6PSBtYWtlKEhhbHRDb25maWcpCglmb3Igb3AsIGhhbHRlZCA6PSByYW5nZSBoIHsKCQljb25maWdbb3BdID0gaGFsdGVkCgl9CglyZXR1cm4gY29uZmlnCn0KCi8vIGdldE9wZXJhdGlvbkhhbHRlZCByZXRyaWV2ZXMgaGFsdCBzdGF0ZSBmb3IgdGhlIHNwZWNpZmllZCBvcGVyYXRpb24gdHlwZS4KLy8KLy8gRXJyb3JzOgovLyAgIC0gZXJyT3BUeXBlTm90Rm91bmQ6IHRoZSBzcGVjaWZpZWQgb3BlcmF0aW9uIHR5cGUgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hbmFnZXIKZnVuYyAoaCBIYWx0U3RhdGVNYW5hZ2VyKSBnZXRPcGVyYXRpb25IYWx0ZWQob3AgT3BUeXBlKSAoYm9vbCwgZXJyb3IpIHsKCWhhbHRlZCwgZXhpc3RzIDo9IGhbb3BdCglpZiAhZXhpc3RzIHsKCQlyZXR1cm4gZmFsc2UsIG1ha2VFcnJvcldpdGhEZXRhaWxzKGVyck9wVHlwZU5vdEZvdW5kLCBvcC5TdHJpbmcoKSkKCX0KCglyZXR1cm4gaGFsdGVkLCBuaWwKfQoKZnVuYyAoaCBIYWx0U3RhdGVNYW5hZ2VyKSBzZXRPcGVyYXRpb25IYWx0ZWQob3AgT3BUeXBlLCBoYWx0ZWQgYm9vbCkgZXJyb3IgewoJaWYgIW9wLklzVmFsaWQoKSB7CgkJcmV0dXJuIG1ha2VFcnJvcldpdGhEZXRhaWxzKGVyckludmFsaWRPcFR5cGUsIG9wLlN0cmluZygpKQoJfQoKCWhbb3BdID0gaGFsdGVkCgoJcmV0dXJuIG5pbAp9CgpmdW5jIChoIEhhbHRTdGF0ZU1hbmFnZXIpIHVwZGF0ZU9wZXJhdGlvbkhhbHRzQnlDb25maWcoY29uZmlnIEhhbHRDb25maWcpIGVycm9yIHsKCWZvciBvcCwgaGFsdGVkIDo9IHJhbmdlIGNvbmZpZyB7CgkJaWYgZXJyIDo9IGguc2V0T3BlcmF0aW9uSGFsdGVkKG9wLCBoYWx0ZWQpOyBlcnIgIT0gbmlsIHsKCQkJcmV0dXJuIGVycgoJCX0KCX0KCglyZXR1cm4gbmlsCn0KCmZ1bmMgbmV3SGFsdFN0YXRlTWFuYWdlckJ5Q29uZmlnKGNvbmZpZyBIYWx0Q29uZmlnKSBIYWx0U3RhdGVNYW5hZ2VyIHsKCWhhbHRTdGF0ZSA6PSBtYWtlKEhhbHRTdGF0ZU1hbmFnZXIpCgoJZm9yIF8sIG9wIDo9IHJhbmdlIE9wVHlwZXMoKSB7CgkJaGFsdGVkLCBleGlzdHMgOj0gY29uZmlnW29wXQoJCWlmICFleGlzdHMgewoJCQloYWx0ZWQgPSB0cnVlCgkJfQoKCQloYWx0U3RhdGVbb3BdID0gaGFsdGVkCgl9CgoJcmV0dXJuIGhhbHRTdGF0ZQp9ChqHCQoKcmVuZGVyLmdubxL4CHBhY2thZ2UgaGFsdAoKaW1wb3J0ICgKCSJnbm8ubGFuZC9wL21vdWwvbWQvdjAiCgkiZ25vLmxhbmQvcC9tb3VsL21kdGFibGUvdjAiCgl1Zm10ICJnbm8ubGFuZC9wL250L3VmbXQvdjAiCikKCi8vIFJlbmRlciByZXR1cm5zIHRoZSBjdXJyZW50IGhhbHQgc3RhdHVzIGZvciBldmVyeSBvcGVyYXRpb24uCmZ1bmMgUmVuZGVyKHBhdGggc3RyaW5nKSBzdHJpbmcgewoJaWYgcGF0aCAhPSAiIiB7CgkJcmV0dXJuICI0MDRcbiIKCX0KCgl0YWJsZSA6PSBtZHRhYmxlLlRhYmxlewoJCUhlYWRlcnM6IFtdc3RyaW5neyJPcGVyYXRpb24iLCAiSGFsdGVkIn0sCgkJUm93czogW11bXXN0cmluZ3sKCQkJeyJQb29sIiwgdWZtdC5TcHJpbnRmKCIldCIsIElzSGFsdGVkUG9vbCgpKX0sCgkJCXsiUG9zaXRpb24iLCB1Zm10LlNwcmludGYoIiV0IiwgSXNIYWx0ZWRQb3NpdGlvbigpKX0sCgkJCXsiUHJvdG9jb2wgZmVlIiwgdWZtdC5TcHJpbnRmKCIldCIsIElzSGFsdGVkUHJvdG9jb2xGZWUoKSl9LAoJCQl7IlJvdXRlciIsIHVmbXQuU3ByaW50ZigiJXQiLCBJc0hhbHRlZFJvdXRlcigpKX0sCgkJCXsiU3Rha2VyIiwgdWZtdC5TcHJpbnRmKCIldCIsIElzSGFsdGVkU3Rha2VyKCkpfSwKCQkJeyJMYXVuY2hwYWQiLCB1Zm10LlNwcmludGYoIiV0IiwgSXNIYWx0ZWRMYXVuY2hwYWQoKSl9LAoJCQl7IkdvdmVybmFuY2UiLCB1Zm10LlNwcmludGYoIiV0IiwgSXNIYWx0ZWRHb3Zlcm5hbmNlKCkpfSwKCQkJeyJHb3Zlcm5hbmNlIHN0YWtlciIsIHVmbXQuU3ByaW50ZigiJXQiLCBJc0hhbHRlZEdvdlN0YWtlcigpKX0sCgkJCXsieEdOUyIsIHVmbXQuU3ByaW50ZigiJXQiLCBJc0hhbHRlZFhHbnMoKSl9LAoJCQl7IkNvbW11bml0eSBwb29sIiwgdWZtdC5TcHJpbnRmKCIldCIsIElzSGFsdGVkQ29tbXVuaXR5UG9vbCgpKX0sCgkJCXsiRW1pc3Npb24iLCB1Zm10LlNwcmludGYoIiV0IiwgSXNIYWx0ZWRFbWlzc2lvbigpKX0sCgkJCXsiV2l0aGRyYXciLCB1Zm10LlNwcmludGYoIiV0IiwgSXNIYWx0ZWRXaXRoZHJhdygpKX0sCgkJfSwKCX0KCglyZXR1cm4gbWQuSDEoIkdub3N3YXAgSGFsdCBTdGF0dXMiKSArCgkJIlxuIiArCgkJbWQuSDIoIk9wZXJhdGlvbiBzdGF0dXMiKSArCgkJIlxuIiArCgkJdGFibGUuU3RyaW5nKCkKfQoa+BoKCXR5cGVzLmdubxLqGnBhY2thZ2UgaGFsdAoKLy8gSGFsdCBsZXZlbHMgZGVmaW5lIGRpZmZlcmVudCBzdGF0ZXMgb2Ygc3lzdGVtIG9wZXJhdGlvbiByZXN0cmljdGlvbi4KY29uc3QgKAoJSGFsdExldmVsTm9uZSAgICAgIEhhbHRMZXZlbCA9ICJOT05FIiAgICAgIC8vIEFsbCBvcGVyYXRpb25zIGVuYWJsZWQuCglIYWx0TGV2ZWxTYWZlTW9kZSAgSGFsdExldmVsID0gIlNBRkVfTU9ERSIgLy8gQWxsIG9wZXJhdGlvbnMgZW5hYmxlZCBleGNlcHQgd2l0aGRyYXdhbHMuCglIYWx0TGV2ZWxFbWVyZ2VuY3kgSGFsdExldmVsID0gIkVNRVJHRU5DWSIgLy8gT25seSBnb3Zlcm5hbmNlIGFuZCB3aXRoZHJhd2FsIG9wZXJhdGlvbnMgZW5hYmxlZC4KCUhhbHRMZXZlbENvbXBsZXRlICBIYWx0TGV2ZWwgPSAiQ09NUExFVEUiICAvLyBBbGwgb3BlcmF0aW9ucyBkaXNhYmxlZC4KKQoKLy8gT3BlcmF0aW9uIHR5cGVzIHJlcHJlc2VudGluZyBpbmRpdmlkdWFsIGNvbnRyYWN0cy4KY29uc3QgKAoJT3BUeXBlUG9vbCAgICAgICAgICBPcFR5cGUgPSAicG9vbCIKCU9wVHlwZVBvc2l0aW9uICAgICAgT3BUeXBlID0gInBvc2l0aW9uIgoJT3BUeXBlUHJvdG9jb2xGZWUgICBPcFR5cGUgPSAicHJvdG9jb2xfZmVlIgoJT3BUeXBlUm91dGVyICAgICAgICBPcFR5cGUgPSAicm91dGVyIgoJT3BUeXBlU3Rha2VyICAgICAgICBPcFR5cGUgPSAic3Rha2VyIgoJT3BUeXBlTGF1bmNocGFkICAgICBPcFR5cGUgPSAibGF1bmNocGFkIgoJT3BUeXBlR292ZXJuYW5jZSAgICBPcFR5cGUgPSAiZ292ZXJuYW5jZSIKCU9wVHlwZUdvdlN0YWtlciAgICAgT3BUeXBlID0gImdvdl9zdGFrZXIiCglPcFR5cGVYR25zICAgICAgICAgIE9wVHlwZSA9ICJ4Z25zIgoJT3BUeXBlQ29tbXVuaXR5UG9vbCBPcFR5cGUgPSAiY29tbXVuaXR5X3Bvb2wiCglPcFR5cGVFbWlzc2lvbiAgICAgIE9wVHlwZSA9ICJlbWlzc2lvbiIKCU9wVHlwZVdpdGhkcmF3ICAgICAgT3BUeXBlID0gIndpdGhkcmF3IgopCgovLyBIYWx0TGV2ZWwgcmVwcmVzZW50cyBjdXJyZW50IHN5c3RlbSBoYWx0IHN0YXRlLgp0eXBlIEhhbHRMZXZlbCBzdHJpbmcKCi8vIFN0cmluZyByZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGhhbHQgbGV2ZWwuCi8vCi8vIFJldHVybnM6Ci8vICAgLSB0ZXh0OiBleGFjdCBzdHJpbmcgdmFsdWUgcmVwcmVzZW50ZWQgYnkgdGhlIGhhbHQgbGV2ZWwKZnVuYyAoaCBIYWx0TGV2ZWwpIFN0cmluZygpIHN0cmluZyB7CglyZXR1cm4gc3RyaW5nKGgpCn0KCi8vIERlc2NyaXB0aW9uIHJldHVybnMgYSBodW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbiBvZiB0aGUgaGFsdCBsZXZlbC4KLy8KLy8gUmV0dXJuczoKLy8gICAtIGRlc2NyaXB0aW9uOiBodW1hbi1yZWFkYWJsZSBwb2xpY3kgZGVzY3JpcHRpb247ICJVbmtub3duIGhhbHQgbGV2ZWwiIGZvcgovLyAgICAgYW4gdW5yZWNvZ25pemVkIHZhbHVlCmZ1bmMgKGggSGFsdExldmVsKSBEZXNjcmlwdGlvbigpIHN0cmluZyB7CgloYWx0TGV2ZWxEZXNjcmlwdGlvbnMgOj0gbWFwW0hhbHRMZXZlbF1zdHJpbmd7CgkJSGFsdExldmVsTm9uZTogICAgICAiQWxsIG9wZXJhdGlvbnMgZW5hYmxlZCIsCgkJSGFsdExldmVsU2FmZU1vZGU6ICAiQWxsIG9wZXJhdGlvbnMgZW5hYmxlZCBleGNlcHQgd2l0aGRyYXdhbHMiLAoJCUhhbHRMZXZlbEVtZXJnZW5jeTogIk9ubHkgZ292ZXJuYW5jZSBhbmQgd2l0aGRyYXdhbCBvcGVyYXRpb25zIGVuYWJsZWQiLAoJCUhhbHRMZXZlbENvbXBsZXRlOiAgIkFsbCBvcGVyYXRpb25zIGRpc2FibGVkIiwKCX0KCglkZXNjLCBvayA6PSBoYWx0TGV2ZWxEZXNjcmlwdGlvbnNbaF0KCWlmICFvayB7CgkJcmV0dXJuICJVbmtub3duIGhhbHQgbGV2ZWwiCgl9CgoJcmV0dXJuIGRlc2MKfQoKLy8gSXNWYWxpZCByZXR1cm5zIHRydWUgaWYgdGhlIGhhbHQgbGV2ZWwgaXMgdmFsaWQuCi8vCi8vIFJldHVybnM6Ci8vICAgLSB2YWxpZDogdHJ1ZSBmb3Igb25lIG9mIHRoZSBkZWZpbmVkIGhhbHQgbGV2ZWxzOyBmYWxzZSBvdGhlcndpc2UKZnVuYyAoaCBIYWx0TGV2ZWwpIElzVmFsaWQoKSBib29sIHsKCXN3aXRjaCBoIHsKCWNhc2UgSGFsdExldmVsTm9uZSwgSGFsdExldmVsU2FmZU1vZGUsIEhhbHRMZXZlbEVtZXJnZW5jeSwgSGFsdExldmVsQ29tcGxldGU6CgkJcmV0dXJuIHRydWUKCWRlZmF1bHQ6CgkJcmV0dXJuIGZhbHNlCgl9Cn0KCi8vIE9wVHlwZSByZXByZXNlbnRzIG9wZXJhdGlvbiB0eXBlcyB0aGF0IGNhbiBiZSBjb250cm9sbGVkIGluZGVwZW5kZW50bHkuCnR5cGUgT3BUeXBlIHN0cmluZwoKdmFyIG9wVHlwZXMgPSBtYXBbT3BUeXBlXWJvb2x7CglPcFR5cGVQb29sOiAgICAgICAgICB0cnVlLAoJT3BUeXBlUG9zaXRpb246ICAgICAgdHJ1ZSwKCU9wVHlwZVByb3RvY29sRmVlOiAgIHRydWUsCglPcFR5cGVSb3V0ZXI6ICAgICAgICB0cnVlLAoJT3BUeXBlU3Rha2VyOiAgICAgICAgdHJ1ZSwKCU9wVHlwZUxhdW5jaHBhZDogICAgIHRydWUsCglPcFR5cGVHb3Zlcm5hbmNlOiAgICB0cnVlLAoJT3BUeXBlR292U3Rha2VyOiAgICAgdHJ1ZSwKCU9wVHlwZVhHbnM6ICAgICAgICAgIHRydWUsCglPcFR5cGVDb21tdW5pdHlQb29sOiB0cnVlLAoJT3BUeXBlRW1pc3Npb246ICAgICAgdHJ1ZSwKCU9wVHlwZVdpdGhkcmF3OiAgICAgIHRydWUsCn0KCi8vIFN0cmluZyByZXR1cm5zIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIG9wZXJhdGlvbiB0eXBlLgovLwovLyBSZXR1cm5zOgovLyAgIC0gdGV4dDogZXhhY3Qgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGVkIGJ5IHRoZSBvcGVyYXRpb24gdHlwZQpmdW5jIChvIE9wVHlwZSkgU3RyaW5nKCkgc3RyaW5nIHsKCXJldHVybiBzdHJpbmcobykKfQoKLy8gSXNWYWxpZCByZXR1cm5zIHRydWUgaWYgdGhlIG9wZXJhdGlvbiB0eXBlIGlzIHZhbGlkLgovLwovLyBSZXR1cm5zOgovLyAgIC0gdmFsaWQ6IHRydWUgd2hlbiB0aGUgb3BlcmF0aW9uIHR5cGUgaXMgZGVmaW5lZDsgZmFsc2Ugb3RoZXJ3aXNlCmZ1bmMgKG8gT3BUeXBlKSBJc1ZhbGlkKCkgYm9vbCB7CglfLCBvayA6PSBvcFR5cGVzW29dCgoJcmV0dXJuIG9rCn0KCi8vIE9wVHlwZXMgcmV0dXJucyBhbGwgb3BlcmF0aW9uIHR5cGVzIGN1cnJlbnRseSBzdXBwb3J0ZWQgYnkgdGhlIGhhbHQKLy8gY29uZmlndXJhdGlvbi4KLy8KLy8gUmV0dXJuczoKLy8gICAtIG9wZXJhdGlvblR5cGVzOiBzbGljZSBjb250YWluaW5nIGVhY2ggZGVmaW5lZCBvcGVyYXRpb24gdHlwZSBpbiBtYXAgaXRlcmF0aW9uIG9yZGVyCmZ1bmMgT3BUeXBlcygpIFtdT3BUeXBlIHsKCWFsbE9wVHlwZXMgOj0gbWFrZShbXU9wVHlwZSwgMCwgbGVuKG9wVHlwZXMpKQoKCWZvciBvcCA6PSByYW5nZSBvcFR5cGVzIHsKCQlhbGxPcFR5cGVzID0gYXBwZW5kKGFsbE9wVHlwZXMsIG9wKQoJfQoKCXJldHVybiBhbGxPcFR5cGVzCn0KIiIKEy9nbm8uTWVtUGFja2FnZVR5cGUSCwoJTVBVc2VyQWxsEhEIgrOnIxIKMzcwMjN1Z25vdBqoAQo6ChMvdG0uUHViS2V5U2VjcDI1NmsxEiMKIQMEnNUEw+LSOqLPC53myjgfoun1lzihgX/ZUaUiNcK64RJANFczaJCByhxeXxJw1+rSkEwu/dKExWv5Pdjs+Zxs4/By2+Rr7hdJFshfcjhrLIUYQTkFmx8fWpIGqBDMt0w0/BooZzFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFsdXV4ZQ==

Raw transaction data

Raw JSON data