2137 lines
220 KiB
JSON
2137 lines
220 KiB
JSON
{
|
|
"abi": [
|
|
{
|
|
"inputs": [],
|
|
"name": "IS_SCRIPT",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "run",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": {
|
|
"object": "0x608060405260048054600160ff199182168117909255600c8054909116909117905534801561002d57600080fd5b506174588061003d6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063c04062261461003b578063f8ccbf4714610045575b600080fd5b610043610068565b005b600c546100529060ff1681565b60405161005f9190610503565b60405180910390f35b6040517fc1978d1f000000000000000000000000000000000000000000000000000000008152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c1978d1f906100b990600401610517565b602060405180830381865afa1580156100d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fa9190610554565b6040517fce817d47000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ce817d479061014d908490600401610579565b600060405180830381600087803b15801561016757600080fd5b505af115801561017b573d6000803e3d6000fd5b5050505060006001604051602001610193919061059b565b604051602081830303815290604052805190602001206040516101b5906104d2565b8190604051809103906000f59050801580156101d5573d6000803e3d6000fd5b50905060006040516101e6906104df565b604051809103906000f080158015610202573d6000803e3d6000fd5b5090506000604051610213906104ec565b604051809103906000f08015801561022f573d6000803e3d6000fd5b5090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166376eadd366040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561029d57600080fd5b505af11580156102b1573d6000803e3d6000fd5b505050506102f36040518060400160405280600781526020017f466163746f727900000000000000000000000000000000000000000000000000815250610390565b6102fc83610422565b61033a6040518060400160405280600b81526020017f517565727948656c706572000000000000000000000000000000000000000000815250610390565b61034382610422565b6103816040518060400160405280600881526020017f4465786f72646572000000000000000000000000000000000000000000000000815250610390565b61038a81610422565b50505050565b61041f816040516024016103a4919061061b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526104ad565b50565b61041f816040516024016104369190610655565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790525b61041f8180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6151af8061066483390190565b6112b98061581383390190565b61095780616acc83390190565b8015155b82525050565b6020810161051182846104f9565b92915050565b60208152600061051160208301600b81527f505249564154455f4b4559000000000000000000000000000000000000000000602082015260400190565b60006020828403121561056957610569600080fd5b81515b9392505050565b806104fd565b602081016105118284610573565b600060ff8216610511565b6104fd81610587565b602081016105118284610592565b60005b838110156105c45781810151838201526020016105ac565b50506000910152565b60006105d7825190565b808452602084016105ec8282602087016105a9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b60208152600061056c60208301846105cd565b600073ffffffffffffffffffffffffffffffffffffffff8216610511565b6104fd8161062e565b60208101610511828461064c56fe608060405234801561001057600080fd5b50600180546001600160a01b0319163317905561517d806100326000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063901c4e4f11610050578063901c4e4f146100d3578063dd009fdc146100db578063f851a440146100ee57600080fd5b80631a48240f146100775780635eb512e7146100a057806389035730146100b3575b600080fd5b61008a6100853660046102ac565b61010e565b60405161009791906102f8565b60405180910390f35b61008a6100ae36600461031b565b610120565b60005461008a9073ffffffffffffffffffffffffffffffffffffffff1681565b61008a61012d565b61008a6100e936600461033a565b61013f565b60015461008a9073ffffffffffffffffffffffffffffffffffffffff1681565b600061011a3383610152565b92915050565b600061011a826000610152565b600061013a336000610152565b905090565b600061014b8383610152565b9392505050565b604080516020808201835273ffffffffffffffffffffffffffffffffffffffff851691829052600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169092178255915190916101b59185918591016103b2565b604051602081830303815290604052805190602001206040516101d790610279565b8190604051809103906000f59050801580156101f7573d6000803e3d6000fd5b50600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560405190915073ffffffffffffffffffffffffffffffffffffffff8416907f416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d49061026b9085906103db565b60405180910390a292915050565b614d5e806103ea83390190565b60ff81165b811461029657600080fd5b50565b8035806102a581610286565b5092915050565b6000602082840312156102c1576102c1600080fd5b61014b8383610299565b600073ffffffffffffffffffffffffffffffffffffffff821661011a565b6102f2816102cb565b82525050565b6020810161011a82846102e9565b61028b816102cb565b8035806102a581610306565b60006020828403121561033057610330600080fd5b61014b838361030f565b6000806040838503121561035057610350600080fd5b61035a848461030f565b91506103698460208501610299565b90509250929050565b600061011a8260601b90565b600061011a82610372565b6102f2610395826102cb565b61037e565b600061011a8260f81b90565b6102f260ff821661039a565b6103bc8184610389565b6103c960148201836103a6565b60150192915050565b60ff81166102f2565b6020810161011a82846103d256fe60c06040523480156200001157600080fd5b50336001600160a01b031663890357306040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000051573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000779190620000bc565b6001600160a01b031660a0526000608052620000e6565b6001600160a01b0381168114620000a457600080fd5b50565b805180620000b5816200008e565b5092915050565b600060208284031215620000d357620000d3600080fd5b620000df8383620000a7565b9392505050565b60805160a051614c2862000136600039600081816102460152818161034c015281816103ea0152818161042701528181610844015281816108da0152611fd60152600061018f0152614c286000f3fe6080604052600436106100d65760003560e01c806377bad6b51161007f578063e78f84e711610059578063e78f84e714610295578063f1c6d051146102b2578063f3fef3a3146102d2578063fbbc8731146102f257600080fd5b806377bad6b5146102075780638da5cb5b14610234578063c3b35a7e1461027557600080fd5b806354fd4d50116100b057806354fd4d501461017d578063625c061c146101c75780636e98833d146101e757600080fd5b8063205c28781461011b5780632e1a7d4d1461013d578063523eb5371461015d57600080fd5b36610116577ff17c7d05fbef2f7f7af4beefa0649a44e2f27ed60c8fc3fc371ff2c1de29880a333460405161010c929190613227565b60405180910390a1005b600080fd5b34801561012757600080fd5b5061013b610136366004613282565b610319565b005b34801561014957600080fd5b5061013b6101583660046132ba565b610327565b34801561016957600080fd5b5061013b6101783660046132f5565b610334565b34801561018957600080fd5b506101b17f000000000000000000000000000000000000000000000000000000000000000081565b6040516101be919061331d565b60405180910390f35b3480156101d357600080fd5b5061013b6101e236600461389f565b6103d2565b3480156101f357600080fd5b5061013b610202366004613934565b610420565b34801561021357600080fd5b506102276102223660046132f5565b610453565b6040516101be9190613dca565b34801561024057600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b6040516101be9190613ddd565b34801561028157600080fd5b5061013b610290366004613e0b565b610821565b3480156102a157600080fd5b506001546040516101be9190613e4b565b3480156102be57600080fd5b5061013b6102cd366004613e59565b61082c565b3480156102de57600080fd5b5061013b6102ed366004613e94565b6108b7565b3480156102fe57600080fd5b5060005461030c9060ff1681565b6040516101be9190613eb4565b61032382826108c2565b5050565b61033133826108c2565b50565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461037657600080fd5b6103b46040518060400160405280600b81526020017f63616e63656c4f72646572000000000000000000000000000000000000000000815250610947565b6103c78167ffffffffffffffff166109d6565b610331600082610a65565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461041457600080fd5b61032360008383610b62565b61044e60007f00000000000000000000000000000000000000000000000000000000000000008585856111e9565b505050565b61045b61312e565b6001805467ffffffffffffffff841690811061047957610479613ec2565b600091825260209091206040805161020081018252600b909302909101805473ffffffffffffffffffffffffffffffffffffffff90811661010085019081526001808401549092166101208601528351808501909452600283018054939486949293869361014087019391839160ff16908111156104f9576104f961397d565b600181111561050a5761050a61397d565b815290546101009081900462ffffff16602092830152918352600384015483820152600484015460ff8082161515604080870191909152938204161515606085015262010000900467ffffffffffffffff16608084015260058401805483518184028101840190945280845260a090940193909160009084015b828210156106e5576000848152602080822060408051808201825260028702909201805461ffff168352600181018054835181870281018701909452808452939591948681019491929084015b828210156106ce57838290600052602060002090600202016040518060400160405290816000820160009054906101000a900460ff1660028111156106185761061861397d565b60028111156106295761062961397d565b815260200160018201805461063d90613f20565b80601f016020809104026020016040519081016040528092919081815260200182805461066990613f20565b80156106b65780601f1061068b576101008083540402835291602001916106b6565b820191906000526020600020905b81548152906001019060200180831161069957829003601f168201915b505050505081525050815260200190600101906105d1565b505050508152505081526020019060010190610584565b505050915250508152600682015460209091019060ff16600381111561070d5761070d61397d565b600381111561071e5761071e61397d565b81526006820154610100810463ffffffff166020808401919091526501000000000090910467ffffffffffffffff16604080840191909152600784015460608401526008840154608084015260098401805482518185028101850190935280835260a09094019391929091908301828280156107b957602002820191906000526020600020905b8154815260200190600101908083116107a5575b50505050508152602001600a820180548060200260200160405190810160405280929190818152602001828054801561081157602002820191906000526020600020905b8154815260200190600101908083116107fd575b5050505050815250509050919050565b61044e838383611fbe565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461086e57600080fd5b6108ac6040518060400160405280601281526020017f5661756c742e706c6163654f7264657228290000000000000000000000000000815250610947565b61033160008261209d565b610323823383611fbe565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461090457600080fd5b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f1935050505015801561044e573d6000803e3d6000fd5b6103318160405160240161095b9190613f4f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526120fc565b610331816040516024016109ea9190613f62565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f1000000000000000000000000000000000000000000000000000000001790526120fc565b6000826001018267ffffffffffffffff1681548110610a8657610a86613ec2565b6000918252602082206006600b90920201015460ff169150816003811115610ab057610ab061397d565b0361044e576001836001018367ffffffffffffffff1681548110610ad657610ad6613ec2565b600091825260209091206006600b909202010180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836003811115610b2157610b2161397d565b02179055507f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4882604051610b559190613e4b565b60405180910390a1505050565b815160ff11610b7057600080fd5b600183015467ffffffffffffffff80821610610b8b57600080fd5b600080836002811115610ba057610ba061397d565b03610bb4575067ffffffffffffffff610d52565b6001836002811115610bc857610bc861397d565b1480610be557506002836002811115610be357610be361397d565b145b15610d175784600201805490509050846002016040518060600160405280856002811115610c1557610c1561397d565b815267ffffffffffffffff8516602080830191909152875160ff1660409092019190915282546001818101855560009485529190932082519301805492939092909183917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690836002811115610c8e57610c8e61397d565b02179055506020820151815460409093015160ff166901000000000000000000027fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff67ffffffffffffffff90921661010002919091167fffffffffffffffffffffffffffffffffffffffffffff000000000000000000ff90931692909217919091179055610d52565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990613fa7565b60405180910390fd5b60005b84518160ff1610156111a7576000858260ff1681518110610d7857610d78613ec2565b60200260200101519050600180811115610d9457610d9461397d565b6040820151516001811115610dab57610dab61397d565b14610de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990613feb565b600180880180549182018082556000828152919083908110610e0657610e06613ec2565b600091825260209182902060608601516003600b9093029091019182015560808501516004820180549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009283161790558551825473ffffffffffffffffffffffffffffffffffffffff9182167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178455938701516001808501805492909316919095161790556040860151805160028401805494965091949193909284929116908381811115610ede57610ede61397d565b02179055506020919091015181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff1661010062ffffff90921682021790915560c084015160048301805460a08701517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000ff9091166201000067ffffffffffffffff909416939093027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169290921791151590920217905560005b8360e0015151811015611126576005820180546001018155600090815260e0850151805183908110610fcc57610fcc613ec2565b602002602001015190506000836000016005018381548110610ff057610ff0613ec2565b60009182526020822084516002929092020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff90921691909117815591505b8260200151518110156110e857816001018360200151828151811061105c5761105c613ec2565b60209081029190910181015182546001818101855560009485529290932081516002948502909101805492949093919284927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091169184908111156110c4576110c461397d565b0217905550602082015160018201906110dd9082614121565b505050600101611035565b5050506009820180546001818101835560009283526020808420909201839055600a8501805480830182559084529183209091019190915501610f98565b5060060180547fffffffffffffffffffffffffffffffffffffff00000000000000000000000000166101004263ffffffff16027fffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffff16176501000000000067ffffffffffffffff8716021790555081905061119f81614227565b915050610d55565b507f704790b72d78f27fe222b5e80adb23b845160c560b9e927c2c87b75adc9c2e2b8285516040516111da929190614246565b60405180910390a15050505050565b6112276040518060400160405280600781526020017f6578656375746500000000000000000000000000000000000000000000000000815250610947565b61123030612105565b6112438367ffffffffffffffff166109d6565b61124f8260ff166109d6565b6000856001018467ffffffffffffffff168154811061127057611270613ec2565b600091825260208220600b909102019150600682015460ff16600381111561129a5761129a61397d565b146112d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990614293565b6000816000016005018460ff16815481106112ee576112ee613ec2565b600091825260208220845460018601546002808801546040517f1698ee8200000000000000000000000000000000000000000000000000000000815295909102909301955084938493731f98431c8ad98523631ae4a59f267346ea31f98493631698ee82936113889373ffffffffffffffffffffffffffffffffffffffff928316939290911691610100900462ffffff16906004016142a5565b602060405180830381865afa1580156113a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c991906142d9565b905060005b600185015460ff82161015611ab6576000856001018260ff16815481106113f7576113f7613ec2565b6000918252602082206002909102019150815460ff16600281111561141e5761141e61397d565b03611627576114616040518060400160405280600f81526020017f74696d6520636f6e73747261696e740000000000000000000000000000000000815250610947565b600081600101805461147290613f20565b80601f016020809104026020016040519081016040528092919081815260200182805461149e90613f20565b80156114eb5780601f106114c0576101008083540402835291602001916114eb565b820191906000526020600020905b8154815290600101906020018083116114ce57829003601f168201915b50505050508060200190518101906115039190614392565b9050600080825151600181111561151c5761151c61397d565b146115465781516020015160068a01546115419190610100900463ffffffff166143b1565b61154d565b8151602001515b9050428163ffffffff16111561158f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990614401565b600060208301515160018111156115a8576115a861397d565b146115d457602082810151015160068a01546115cf9190610100900463ffffffff166143b1565b6115de565b8160200151602001515b9050428163ffffffff161015611620576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990614445565b5050611aa3565b6001815460ff16600281111561163f5761163f61397d565b036119e4576116826040518060400160405280600f81526020017f6c696e6520636f6e73747261696e740000000000000000000000000000000000815250610947565b8473ffffffffffffffffffffffffffffffffffffffff16600003611719578273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156116eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170f91906144b9565b5094995050505050505b600081600101805461172a90613f20565b80601f016020809104026020016040519081016040528092919081815260200182805461175690613f20565b80156117a35780601f10611778576101008083540402835291602001916117a3565b820191906000526020600020905b81548152906001019060200180831161178657829003601f168201915b50505050508060200190518101906117bb91906145dc565b602081015190915073ffffffffffffffffffffffffffffffffffffffff87169015611812576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d499061462d565b6060820151608083015173ffffffffffffffffffffffffffffffffffffffff9091169060130b15611896576c01000000000000000000000000836080015160130b846040015163ffffffff1642611869919061463f565b611873919061465c565b61187d91906146e3565b6118879082614751565b90506000811215611896575060005b61189f81612194565b6118a8826109d6565b82516118b390612223565b8251819080156118d957508073ffffffffffffffffffffffffffffffffffffffff168311155b806119045750835115801561190457508073ffffffffffffffffffffffffffffffffffffffff168310155b1561193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906147a3565b73ffffffffffffffffffffffffffffffffffffffff8816158061199257508351801561199257508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16105b806119d2575083511580156119d257508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16115b156119db578097505b50505050611aa3565b6002815460ff1660028111156119fc576119fc61397d565b03611a7157611a3f6040518060400160405280601281526020017f6261727269657220636f6e73747261696e740000000000000000000000000000815250610947565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906147e7565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d499061482b565b5080611aae81614227565b9150506113ce565b50611af56040518060400160405280601081526020017f636f6d707574696e6720616d6f756e7400000000000000000000000000000000815250610947565b6003850154611b03906109d6565b8354611b129061ffff166109d6565b6004850154611b239060ff16612223565b611b3085600701546109d6565b611b3d85600801546109d6565b611b68856009018860ff1681548110611b5857611b58613ec2565b90600052602060002001546109d6565b611b8385600a018860ff1681548110611b5857611b58613ec2565b600485015460009060ff16611bba5785600a018860ff1681548110611baa57611baa613ec2565b9060005260206000200154611bde565b856009018860ff1681548110611bd257611bd2613ec2565b90600052602060002001545b8554600388015461ffff91611bf6919083169061483d565b611c009190614857565b611c0a919061463f565b9050611c4a6040518060400160405280600681526020017f616d6f756e740000000000000000000000000000000000000000000000000000815250610947565b611c53816109d6565b611c916040518060400160405280600581526020017f6c696d6974000000000000000000000000000000000000000000000000000000815250610947565b611cb08373ffffffffffffffffffffffffffffffffffffffff166109d6565b611cee6040518060400160405280600581526020017f7072696365000000000000000000000000000000000000000000000000000000815250610947565b611d0d8473ffffffffffffffffffffffffffffffffffffffff166109d6565b6003860154600487015460ff16611d28578660080154611d2e565b86600701545b1115611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906148a3565b600486015460009060ff16611d7f578660080154611d85565b86600701545b6003880154611d94919061463f565b9050611dd46040518060400160405280600981526020017f72656d61696e696e670000000000000000000000000000000000000000000000815250610947565b611ddd816109d6565b80821115611de9578091505b60008211611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906148e7565b611e2c826109d6565b6004870154600090610100900460ff16611e465730611e48565b8b5b9050611e5381612105565b600080600160028b015460ff166001811115611e7157611e7161397d565b03611e8d57611e83838b88888b6122b2565b9092509050611ebf565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990613feb565b818a6007016000828254611ed391906148f9565b92505081905550808a6008016000828254611eee91906148f9565b92505081905550818a6009018d60ff1681548110611f0e57611f0e613ec2565b906000526020600020016000828254611f2791906148f9565b92505081905550808a600a018d60ff1681548110611f4757611f47613ec2565b906000526020600020016000828254611f6091906148f9565b90915550506040517f8b9a867d3ae2675d02744a1ce6d50e404d9af21941871223000c679e01911af890611f9b908f908f908690869061490e565b60405180910390a1611fad8f8b612417565b505050505050505050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461200057600080fd5b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063a9059cbb906120549085908590600401613227565b6020604051808303816000875af1158015612073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120979190614943565b50505050565b604080516001808252818301909252600091816020015b6120bc613189565b8152602001906001900390816120b457905050905081816000815181106120e5576120e5613ec2565b602002602001018190525061044e83826000610b62565b61033181612559565b610331816040516024016121199190613ddd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790526120fc565b610331816040516024016121a89190613f62565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2d5b6cb9000000000000000000000000000000000000000000000000000000001790526120fc565b610331816040516024016122379190613eb4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f32458eed000000000000000000000000000000000000000000000000000000001790526120fc565b6000806122f36040518060400160405280600b81526020017f7072696365206c696d6974000000000000000000000000000000000000000000815250610947565b6123128373ffffffffffffffffffffffffffffffffffffffff166109d6565b600486015460ff1615612398576040805160e08101825273ffffffffffffffffffffffffffffffffffffffff8781168252885481166020830152600189015481169282019290925288821660608201526002880154610100900462ffffff16608082015260a0810186905290841660c082015261238e9061257a565b909250905061240d565b6040805160e08101825273ffffffffffffffffffffffffffffffffffffffff8781168252885481166020830152600189015481169282019290925288821660608201526002880154610100900462ffffff16608082015260a0810186905290841660c082015261240790612928565b90925090505b9550959350505050565b600481015460009060ff16612430578160080154612436565b81600701545b6003830154612445919061463f565b9050806000036124bb576006820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166002179081905567ffffffffffffffff6501000000000090910481161461044e57600682015461044e90849065010000000000900467ffffffffffffffff16612f2b565b600682015465010000000000900467ffffffffffffffff90811614801590612531575060016006830154600285018054909165010000000000900467ffffffffffffffff1690811061250f5761250f613ec2565b60009182526020909120015460ff16600281111561252f5761252f61397d565b145b1561044e57600682015461044e90849065010000000000900467ffffffffffffffff16612f2b565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6000806125bb6040518060400160405280601981526020017f737761704578616374496e70757420617070726f76652e2e2e00000000000000815250610947565b6125c430612105565b6125d18360200151612105565b6125de8360400151612105565b6125f0836080015162ffffff166109d6565b6125fd8360600151612105565b61260a8360a001516109d6565b61262d8360c0015173ffffffffffffffffffffffffffffffffffffffff166109d6565b61264a73e592427a0aece92de3edee1f18e0157c05861564612105565b8260a0015191506000836020015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126909190613ddd565b602060405180830381865afa1580156126ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d1919061496e565b90508060000361270d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906149bf565b82811015612719578092505b61273c846020015173e592427a0aece92de3edee1f18e0157c0586156485612fce565b61277a6040518060400160405280600b81526020017f7377617070696e672e2e2e000000000000000000000000000000000000000000815250610947565b73e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663414bf389604051806101000160405280876020015173ffffffffffffffffffffffffffffffffffffffff168152602001876040015173ffffffffffffffffffffffffffffffffffffffff168152602001876080015162ffffff168152602001876060015173ffffffffffffffffffffffffffffffffffffffff168152602001428152602001868152602001600181526020018760c0015173ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b81526004016128729190614a7c565b6020604051808303816000875af1158015612891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b5919061496e565b91506128f56040518060400160405280600781526020017f7377617070656400000000000000000000000000000000000000000000000000815250610947565b6128fe826109d6565b612922846020015173e592427a0aece92de3edee1f18e0157c058615646000612fce565b50915091565b6000806000836020015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161296a9190613ddd565b602060405180830381865afa158015612987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ab919061496e565b9050806000036129e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906149bf565b60408051808201909152601a81527f7377617045786163744f757470757420617070726f76652e2e2e00000000000060208201528190612a2690610947565b612a2f30612105565b612a3c8560200151612105565b612a498560400151612105565b612a5b856080015162ffffff166109d6565b612a688560600151612105565b612a758560a001516109d6565b612a988560c0015173ffffffffffffffffffffffffffffffffffffffff166109d6565b612ab573e592427a0aece92de3edee1f18e0157c05861564612105565b612af36040518060400160405280600781526020017f617070726f766500000000000000000000000000000000000000000000000000815250610947565b612afc816109d6565b612b1f856020015173e592427a0aece92de3edee1f18e0157c0586156483612fce565b612b5d6040518060400160405280600b81526020017f7377617070696e672e2e2e000000000000000000000000000000000000000000815250610947565b73e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663db3e2198604051806101000160405280886020015173ffffffffffffffffffffffffffffffffffffffff168152602001886040015173ffffffffffffffffffffffffffffffffffffffff168152602001886080015162ffffff168152602001886060015173ffffffffffffffffffffffffffffffffffffffff1681526020014281526020018860a0015181526020018481526020018860c0015173ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b8152600401612c589190614a7c565b6020604051808303816000875af1925050508015612cb1575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612cae9181019061496e565b60015b612ea557612cbd614a8b565b806308c379a003612e8c5750612cd1614aa6565b80612cdc5750612e8e565b73e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663414bf389604051806101000160405280896020015173ffffffffffffffffffffffffffffffffffffffff168152602001896040015173ffffffffffffffffffffffffffffffffffffffff168152602001896080015162ffffff168152602001896060015173ffffffffffffffffffffffffffffffffffffffff168152602001428152602001858152602001600181526020018960c0015173ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b8152600401612dd49190614a7c565b6020604051808303816000875af1925050508015612e2d575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612e2a9181019061496e565b60015b612e9857612e39614a8b565b806308c379a003612e8c5750612e4d614aa6565b80612e585750612e8e565b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d499190613f4f565b505b3d6000803e3d6000fd5b8295508094505050612eb0565b60a086015190945092505b612eee6040518060400160405280600781526020017f7377617070656400000000000000000000000000000000000000000000000000815250610947565b612ef7846109d6565b612f00836109d6565b612f24856020015173e592427a0aece92de3edee1f18e0157c058615646000612fce565b5050915091565b6000826002018267ffffffffffffffff1681548110612f4c57612f4c613ec2565b600091825260208220018054909250612f84906901000000000000000000810460ff1690610100900467ffffffffffffffff16614b5f565b8254909150610100900467ffffffffffffffff165b8167ffffffffffffffff168167ffffffffffffffff161015612fc757612fbf8582610a65565b600101612f99565b5050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360e01b8585604051602401613003929190613227565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161308c9190614ba2565b6000604051808303816000865af19150503d80600081146130c9576040519150601f19603f3d011682016040523d82523d6000602084013e6130ce565b606091505b50915091508180156130f85750805115806130f85750808060200190518101906130f89190614943565b612fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990614be0565b604051806101000160405280613142613189565b815260200160008152602001600063ffffffff168152602001600067ffffffffffffffff168152602001600081526020016000815260200160608152602001606081525090565b6040805161010081018252600080825260208201529081016131bb604080518082019091526000808252602082015290565b815260200160008152602001600015158152602001600015158152602001600067ffffffffffffffff168152602001606081525090565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b61321b816131f2565b82525050565b8061321b565b604081016132358285613212565b6132426020830184613221565b9392505050565b613252816131f2565b811461033157600080fd5b80358061326981613249565b5092915050565b80613252565b80358061326981613270565b6000806040838503121561329857613298600080fd5b6132a2848461325d565b91506132b18460208501613276565b90509250929050565b6000602082840312156132cf576132cf600080fd5b6132428383613276565b67ffffffffffffffff8116613252565b803580613269816132d9565b60006020828403121561330a5761330a600080fd5b61324283836132e9565b60ff811661321b565b6020810161320c8284613314565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff8211171561339e5761339e61332b565b6040525050565b60006133b060405190565b8091506133bd838261335a565b50919050565b600067ffffffffffffffff8211156133dd576133dd61332b565b5060051b60200190565b6002811061033157600080fd5b803580613269816133e7565b62ffffff8116613252565b80358061326981613400565b60006040828403121561342c5761342c600080fd5b61343660406133a5565b80915061344384846133f4565b8152613452846020850161340b565b60208201525092915050565b801515613252565b8035806132698161345e565b61ffff8116613252565b80358061326981613472565b6003811061033157600080fd5b80358061326981613488565b600067ffffffffffffffff8211156134bb576134bb61332b565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b82818337506000910152565b6000613506613501846134a1565b6133a5565b80915083815284848401111561351e5761351e600080fd5b61352c8460208301856134e7565b509392505050565b600082601f83011261354857613548600080fd5b613242838335602085016134f3565b60006040828403121561356c5761356c600080fd5b61357660406133a5565b8091506135838484613495565b8152602083013567ffffffffffffffff8111156135a2576135a2600080fd5b6135ae85828601613534565b6020830152505092915050565b60006135c9613501846133c3565b8381529050600583901b820160208201858211156135e9576135e9600080fd5b835b8281101561362857803567ffffffffffffffff81111561360d5761360d600080fd5b61361988828801613557565b835250602091820191016135eb565b5050509392505050565b600082601f83011261364657613646600080fd5b613242838335602085016135bb565b60006040828403121561366a5761366a600080fd5b61367460406133a5565b809150613681848461347c565b8152602083013567ffffffffffffffff8111156136a0576136a0600080fd5b6135ae85828601613632565b60006136ba613501846133c3565b8381529050600583901b820160208201858211156136da576136da600080fd5b835b8281101561362857803567ffffffffffffffff8111156136fe576136fe600080fd5b61370a88828801613655565b835250602091820191016136dc565b600082601f83011261372d5761372d600080fd5b613242838335602085016136ac565b6000610120828403121561375257613752600080fd5b61375d6101006133a5565b80915061376a848461325d565b8152613779846020850161325d565b602082015261378b8460408501613417565b604082015261379d8460808501613276565b60608201526137af8460a08501613466565b60808201526137c18460c08501613466565b60a08201526137d38460e085016132e9565b60c082015261010083013567ffffffffffffffff8111156137f6576137f6600080fd5b61380285828601613719565b60e0830152505092915050565b600061381d613501846133c3565b8381529050600583901b8201602082018582111561383d5761383d600080fd5b835b8281101561362857803567ffffffffffffffff81111561386157613861600080fd5b61386d8882880161373c565b8352506020918201910161383f565b600082601f83011261389057613890600080fd5b6132428383356020850161380f565b600080604083850312156138b5576138b5600080fd5b823567ffffffffffffffff8111156138cf576138cf600080fd5b6138db8582860161387c565b9250506132b18460208501613495565b60ff8116613252565b803580613269816138eb565b60006020828403121561391557613915600080fd5b61391f60206133a5565b80915061392c8484613276565b905292915050565b60008060006060848603121561394c5761394c600080fd5b61395685856132e9565b925061396585602086016138f4565b91506139748560408601613900565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106103315761033161397d565b806139c6816139ac565b919050565b600061320c826139bc565b61321b816139cb565b62ffffff811661321b565b6139f58282516139d6565b602081015161044e60208401826139df565b80151561321b565b67ffffffffffffffff811661321b565b61ffff811661321b565b600381106103315761033161397d565b806139c681613a29565b600061320c82613a39565b61321b81613a43565b60005b83811015613a72578181015183820152602001613a5a565b50506000910152565b6000613a85825190565b80845260208401613a9a828260208701613a57565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b613ad4828251613a4e565b6000602082015160406020850152613aef6040850182613a7b565b949350505050565b60006132428383613ac9565b6000613b0d825190565b808452602084018094508160051b8101613b278560200190565b60005b84811015613b59578383038852613b42838351613af7565b925060208201602098909801979150600101613b2a565b50909695505050505050565b613b70828251613a1f565b6000602082015160406020850152613aef6040850182613b03565b60006132428383613b65565b6000613ba1825190565b808452602084018094508160051b8101613bbb8560200190565b60005b84811015613b59578383038852613bd6838351613b8b565b925060208201602098909801979150600101613bbe565b613bf8828251613212565b60006020820151613c0c6020850182613212565b506040820151613c1f60408501826139ea565b506060820151613c326080850182613221565b506080820151613c4560a0850182613a07565b5060a0820151613c5860c0850182613a07565b5060c0820151613c6b60e0850182613a0f565b5060e0820151610120610100850152613aef610120850182613b97565b600481106103315761033161397d565b806139c681613c88565b600061320c82613c98565b61321b81613ca2565b63ffffffff811661321b565b613ccc8282613221565b5060200190565b6000613cdd825190565b808452602093840193830160005b82811015613d0e57613cfe868351613cc2565b9550602082019150600101613ceb565b5093949350505050565b600081516101008452613d2f610100850182613bed565b90506020830151613d436020860182613cad565b506040830151613d566040860182613cb6565b506060830151613d696060860182613a0f565b506080830151613d7c6080860182613221565b5060a0830151613d8f60a0860182613221565b5060c083015184820360c0860152613da78282613cd3565b91505060e083015184820360e0860152613dc18282613cd3565b95945050505050565b6020815260006132426020830184613d18565b6020810161320c8284613212565b600061320c826131f2565b61325281613deb565b80358061326981613df6565b600080600060608486031215613e2357613e23600080fd5b613e2d8585613dff565b9250613e3c856020860161325d565b91506139748560408601613276565b6020810161320c8284613a0f565b600060208284031215613e6e57613e6e600080fd5b813567ffffffffffffffff811115613e8857613e88600080fd5b613aef8482850161373c565b60008060408385031215613eaa57613eaa600080fd5b6132a28484613dff565b6020810161320c8284613a07565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c908190831680613f3657607f821692505b602083108103613f4857613f48613ef1565b5050919050565b6020815260006132426020830184613a7b565b6020810161320c8284613221565b600481526000602082017f4f434f4d0000000000000000000000000000000000000000000000000000000081525b60200192915050565b60208152600061320c60208301613f70565b600281526000602082017f55520000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301613fb9565b60008260031b61402c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821b90565b94901b84169319919091169290921792915050565b600061320c61404d8381565b90565b61406761405f61404d85614041565b838354613ffd565b90555050565b61032360008383614050565b818110156103235761408c60008261406d565b600101614079565b601f82111561044e57600081815260209020601f840160051c810160208510156140bb5750805b612fc7601f850160051c830182614079565b60006140fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8460031b1c90565b198216905092915050565b600061411283836140cd565b8360011b811791505092915050565b815167ffffffffffffffff81111561413b5761413b61332b565b61414f816141498454613f20565b84614094565b6020601f82116001811461417d576000831561416b5750848201515b6141758482614106565b855550612fc7565b6000848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156141cb57878501518255602094850194600190920191016141ab565b50848210156141e957838701516141e5601f8716826140cd565b8255505b50505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff810361423d5761423d6141f8565b60010192915050565b604081016142548285613a0f565b6132426020830184613314565b600281526000602082017f4e4f0000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614261565b606081016142b38286613212565b6142c06020830185613212565b613aef60408301846139df565b80518061326981613249565b6000602082840312156142ee576142ee600080fd5b61324283836142cd565b805180613269816133e7565b63ffffffff8116613252565b80518061326981614304565b60006040828403121561433157614331600080fd5b61433b60406133a5565b80915061434884846142f8565b81526134528460208501614310565b60006080828403121561436c5761436c600080fd5b61437660406133a5565b809150614383848461431c565b8152613452846040850161431c565b6000608082840312156143a7576143a7600080fd5b6132428383614357565b63ffffffff82811682821601908190811115613269576132696141f8565b600281526000602082017f54450000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c602083016143cf565b600281526000602082017f544c0000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614413565b73ffffffffffffffffffffffffffffffffffffffff8116613252565b80518061326981614457565b6132528160020b90565b8051806132698161447f565b80518061326981613472565b805180613269816138eb565b8051806132698161345e565b600080600080600080600060e0888a0312156144d7576144d7600080fd5b6144e18989614473565b96506144f08960208a01614489565b95506144ff8960408a01614495565b945061450e8960608a01614495565b935061451d8960808a01614495565b925061452c8960a08a016144a1565b915061453b8960c08a016144ad565b905092959891949750929550565b6132528160130b90565b80518061326981614549565b600060a0828403121561457457614574600080fd5b61457e60a06133a5565b80915061458b84846144ad565b815261459a84602085016144ad565b60208201526145ac8460408501614310565b60408201526145be8460608501614473565b60608201526145d08460808501614553565b60808201525092915050565b600060a082840312156145f1576145f1600080fd5b613242838361455f565b601581526000602082017f726174696f206e6f7420696d706c656d656e74656400000000000000000000008152613f9e565b60208152600061320c602083016145fb565b818103818181811115614654576146546141f8565b505092915050565b818102818382600083127f800000000000000000000000000000000000000000000000000000000000000083141615614697576146976141f8565b82810582148315176146ab576146ab6141f8565b50505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008183806146f4576146f46146b4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147f800000000000000000000000000000000000000000000000000000000000000083141615614748576147486141f8565b90059392505050565b8181016000821283821280158216821582161715614654576146546141f8565b600181526000602082017f4c000000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614771565b600281526000602082017f4e490000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c602083016147b5565b600281526000602082017f55430000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c602083016147f9565b81810281838282158382048314176146ab576146ab6141f8565b6000818380614868576148686146b4565b90049392505050565b600881526000602082017f4f56455246494c4c0000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614871565b600281526000602082017f54460000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c602083016148b5565b818101818180821115614654576146546141f8565b6080810161491c8287613a0f565b6149296020830186613314565b6149366040830185613221565b613dc16060830184613221565b60006020828403121561495857614958600080fd5b61324283836144ad565b80518061326981613270565b60006020828403121561498357614983600080fd5b6132428383614962565b600381526000602082017f49494100000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c6020830161498d565b73ffffffffffffffffffffffffffffffffffffffff811661321b565b6149f8828251613212565b6020810151614a0a6020840182613212565b506040810151614a1d60408401826139df565b506060810151614a306060840182613212565b506080810151614a436080840182613221565b5060a0810151614a5660a0840182613221565b5060c0810151614a6960c0840182613221565b5060e081015161044e60e08401826149d1565b610100810161320c82846149ed565b600060033d111561404d5760046000803e5060005160e01c90565b600060443d1015614ab45790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e80513d602482011167ffffffffffffffff82111715614afc57505090565b808201805167ffffffffffffffff811115614b18575050505090565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020828401011115614b50575050505090565b61352c6020828501018561335a565b67ffffffffffffffff82811682821601908190811115613269576132696141f8565b6000614b8b825190565b83614b9a828260208701613a57565b019392505050565b60006132428284614b81565b600281526000602082017f53410000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614bae56fea26469706673582212204cf82481a51b5aeba98e93aaf50551304c3d1440ea1986dcfc34c4cc96a5b1ea64736f6c63430008160033a26469706673582212204b43bfa3c2fcb653fc7d844b7d1dc73cc4b694448b854030d7e34257e2205efa64736f6c63430008160033608060405234801561001057600080fd5b50611299806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80636a385ae9116100505780636a385ae9146100ab578063b8df9780146100cc578063d85c32c7146100d457600080fd5b80633c38ccbb1461006c57806354fd4d5014610096575b600080fd5b61007f61007a366004610b21565b6100f4565b60405161008d929190610b6f565b60405180910390f35b61009e600181565b60405161008d9190610b93565b6100be6100b9366004610cf4565b610206565b60405161008d929190610da5565b61009e60ff81565b6100e76100e2366004610dd3565b6104c8565b60405161008d9190610f02565b6000808273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610142573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101669190610f92565b5050604080517f1a686502000000000000000000000000000000000000000000000000000000008152905194975073ffffffffffffffffffffffffffffffffffffffff89169550631a686502946004808301955060209450909250908290030181865afa1580156101db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ff9190611046565b9050915091565b60608061ffff801683511061021a57600080fd5b825167ffffffffffffffff81111561023457610234610bb6565b60405190808252806020026020018201604052801561025d578160200160208202803683370190505b509150825167ffffffffffffffff81111561027a5761027a610bb6565b6040519080825280602002602001820160405280156102a3578160200160208202803683370190505b50905060005b83518161ffff1610156104c057838161ffff16815181106102cc576102cc611065565b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b815260040161030c9190611094565b602060405180830381865afa925050508015610363575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610360918101906110b4565b60015b610390576000838261ffff168151811061037f5761037f611065565b6020026020010181815250506103b5565b80848361ffff16815181106103a7576103a7611065565b602002602001018181525050505b838161ffff16815181106103cb576103cb611065565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610457575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610454918101906110d3565b60015b6104865760ff8016828261ffff168151811061047557610475611065565b6020026020010181815250506104ae565b8060ff16838361ffff16815181106104a0576104a0611065565b602002602001018181525050505b806104b881611121565b9150506102a9565b509250929050565b60606105086040518060400160405280600981526020017f676574526f7574657300000000000000000000000000000000000000000000008152506108fe565b61051183610990565b61051a82610990565b60408051608081018252606481526101f46020820152610bb8918101919091526127106060820152600080808087815b60048160ff1610156107aa576105946040518060400160405280600981526020017f676574506f6f6c2e2e00000000000000000000000000000000000000000000008152506108fe565b6000878260ff16600481106105ab576105ab611065565b60200201516040517f1698ee82000000000000000000000000000000000000000000000000000000008152909150600090731f98431c8ad98523631ae4a59f267346ea31f98490631698ee829061060a908f908f908790600401611142565b602060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064b919061117e565b905073ffffffffffffffffffffffffffffffffffffffff81166106ad576106a66040518060400160405280600781526020017f6e6f20706f6f6c000000000000000000000000000000000000000000000000008152506108fe565b50506107a2565b6106eb6040518060400160405280600881526020017f676f74506f6f6c2e0000000000000000000000000000000000000000000000008152506108fe565b6106f481610990565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190610749908590600401611094565b602060405180830381865afa158015610766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078a91906110b4565b90508681111561079e578297508096508195505b5050505b60010161054a565b506000808562ffffff16116107dd5760006107c5878261119d565b62ffffff16116107d65760006107e0565b60016107e0565b60015b90506107eb83610990565b6107f78160ff16610a1f565b8060ff1667ffffffffffffffff81111561081357610813610bb6565b60405190808252806020026020018201604052801561087c57816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816108315790505b509750600062ffffff8616156108f0576040805160608101909152806001815262ffffff8816602082015273ffffffffffffffffffffffffffffffffffffffff861660409091015289826108cf816111ba565b935060ff16815181106108e4576108e4611065565b60200260200101819052505b505050505050505092915050565b61098d816040516024016109129190611242565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac00000000000000000000000000000000000000000000000000000000179052610aaa565b50565b61098d816040516024016109a49190611094565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc200000000000000000000000000000000000000000000000000000000179052610aaa565b61098d81604051602401610a339190611255565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f1000000000000000000000000000000000000000000000000000000001790525b61098d8180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b6000610ae982610acf565b610b0381610aef565b811461098d57600080fd5b803580610b1a81610afa565b5092915050565b600060208284031215610b3657610b36600080fd5b610b408383610b0e565b9392505050565b610b518160020b90565b82525050565b6fffffffffffffffffffffffffffffffff8116610b51565b60408101610b7d8285610b47565b610b406020830184610b57565b60ff8116610b51565b60208101610ae98284610b8a565b610b0381610acf565b803580610b1a81610ba1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff82111715610c2957610c29610bb6565b6040525050565b6000610c3b60405190565b809150610c488382610be5565b50919050565b600067ffffffffffffffff821115610c6857610c68610bb6565b5060051b60200190565b6000610c85610c8084610c4e565b610c30565b8381529050600583901b82016020820185821115610ca557610ca5600080fd5b835b82811015610cc757610cb98782610baa565b825260209182019101610ca7565b5050509392505050565b600082601f830112610ce557610ce5600080fd5b610b4083833560208501610c72565b60008060408385031215610d0a57610d0a600080fd5b610d148484610baa565b9150602083013567ffffffffffffffff811115610d3357610d33600080fd5b610d3f85828601610cd1565b9150509250929050565b80610b51565b610d598282610d49565b5060200190565b6000610d6a825190565b808452602093840193830160005b82811015610d9b57610d8b868351610d4f565b9550602082019150600101610d78565b5093949350505050565b604081526000610db86040830185610d60565b8281036020840152610dca8185610d60565b95945050505050565b60008060408385031215610de957610de9600080fd5b610df38484610baa565b9150610e028460208501610baa565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811061098d5761098d610e0b565b80610e5481610e3a565b919050565b6000610ae982610e4a565b610b5181610e59565b62ffffff8116610b51565b610b5181610acf565b610e8c828251610e64565b6020810151610e9e6020840182610e6d565b506040810151610eb16040840182610e78565b505050565b610ec08282610e81565b5060600190565b6000610ed1825190565b808452602093840193830160005b82811015610d9b57610ef2868351610eb6565b9550602082019150600101610edf565b602081526000610b406020830184610ec7565b73ffffffffffffffffffffffffffffffffffffffff8116610b03565b805180610b1a81610f15565b610b038160020b90565b805180610b1a81610f3d565b61ffff8116610b03565b805180610b1a81610f53565b60ff8116610b03565b805180610b1a81610f69565b801515610b03565b805180610b1a81610f7e565b600080600080600080600060e0888a031215610fb057610fb0600080fd5b610fba8989610f31565b9650610fc98960208a01610f47565b9550610fd88960408a01610f5d565b9450610fe78960608a01610f5d565b9350610ff68960808a01610f5d565b92506110058960a08a01610f72565b91506110148960c08a01610f86565b905092959891949750929550565b6fffffffffffffffffffffffffffffffff8116610b03565b805180610b1a81611022565b60006020828403121561105b5761105b600080fd5b610b40838361103a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60208101610ae98284610e78565b80610b03565b805180610b1a816110a2565b6000602082840312156110c9576110c9600080fd5b610b4083836110a8565b6000602082840312156110e8576110e8600080fd5b610b408383610f72565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061ffff821661ffff8103611139576111396110f2565b60010192915050565b606081016111508286610e78565b61115d6020830185610e78565b61116a6040830184610e6d565b949350505050565b805180610b1a81610ba1565b60006020828403121561119357611193600080fd5b610b408383611172565b62ffffff82811682821601908190811115610b1a57610b1a6110f2565b600060ff821660ff8103611139576111396110f2565b60005b838110156111eb5781810151838201526020016111d3565b50506000910152565b60006111fe825190565b808452602084016112138282602087016111d0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b602081526000610b4060208301846111f4565b60208101610ae98284610d4956fea264697066735822122085b8679d697e8685f6eceb314bd3910c1a407cdc658db22181b280efe388928464736f6c63430008160033608060405234801561001057600080fd5b50610937806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806301efa5e51461003b578063f09e582714610064575b600080fd5b61004e610049366004610505565b610084565b60405161005b91906105af565b60405180910390f35b610077610072366004610671565b610132565b60405161005b9190610734565b606061008f8261023d565b60408051600180825281830190925291925060009190816020015b60608152602001906001900390816100aa57905050905081816000815181106100d5576100d5610747565b6020026020010181905250836fffffffffffffffffffffffffffffffff19167f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad826040516101239190610734565b60405180910390a25092915050565b6060815167ffffffffffffffff81111561014e5761014e610363565b60405190808252806020026020018201604052801561018157816020015b606081526020019060019003908161016c5790505b50905060005b82518160ff1610156101eb576101b8838260ff16815181106101ab576101ab610747565b602002602001015161023d565b828260ff16815181106101cd576101cd610747565b602002602001018190525080806101e3906107a5565b915050610187565b50826fffffffffffffffffffffffffffffffff19167f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad8260405161022f9190610734565b60405180910390a292915050565b8051602082015160408084015160608581015192517f6e98833d000000000000000000000000000000000000000000000000000000008152909473ffffffffffffffffffffffffffffffffffffffff1693636e98833d936102a29391926004016107f4565b600060405180830381600087803b1580156102bc57600080fd5b505af19250505080156102cd575060015b61030a576102d9610824565b806308c379a0036102fe57506102ed610840565b806102f85750610300565b92915050565b505b3d6000803e3d6000fd5b505060408051602081019091526000815290565b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000081165b811461034d57600080fd5b50565b80358061035c8161031e565b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff821117156103d6576103d6610363565b6040525050565b60006103e860405190565b8091506103f58382610392565b50919050565b73ffffffffffffffffffffffffffffffffffffffff8116610342565b80358061035c816103fb565b67ffffffffffffffff8116610342565b80358061035c81610423565b60ff8116610342565b80358061035c8161043f565b80610342565b80358061035c81610454565b60006020828403121561047b5761047b600080fd5b61048560206103dd565b809150610492848461045a565b905292915050565b6000608082840312156104af576104af600080fd5b6104b960806103dd565b8091506104c68484610417565b81526104d58460208501610433565b60208201526104e78460408501610448565b60408201526104f98460608501610466565b60608201525092915050565b60008060a0838503121561051b5761051b600080fd5b6105258484610350565b9150610534846020850161049a565b90509250929050565b60005b83811015610558578181015183820152602001610540565b50506000910152565b600061056b825190565b8084526020840161058082826020870161053d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6020815260006105c26020830184610561565b9392505050565b600067ffffffffffffffff8211156105e3576105e3610363565b5060051b60200190565b60006106006105fb846105c9565b6103dd565b8381529050600783901b8201602082018582111561062057610620600080fd5b835b8281101561064457610634878261049a565b8252602090910190608001610622565b5050509392505050565b600082601f83011261066257610662600080fd5b6105c2838335602085016105ed565b6000806040838503121561068757610687600080fd5b6106918484610350565b9150602083013567ffffffffffffffff8111156106b0576106b0600080fd5b6106bc8582860161064e565b9150509250929050565b60006105c28383610561565b60006106dc825190565b808452602084018094508160051b81016106f68560200190565b60005b848110156107285783830388526107118383516106c6565b9250602082016020989098019791506001016106f9565b50909695505050505050565b6020815260006105c260208301846106d2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff81036107bb576107bb610776565b60010192915050565b67ffffffffffffffff81165b82525050565b60ff81166107d0565b806107d0565b6107f08282516107df565b5050565b6060810161080282866107c4565b61080f60208301856107d6565b61081c60408301846107e5565b949350505050565b600060033d111561083d5760046000803e5060005160e01c5b90565b600060443d101561084e5790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e80513d602482011167ffffffffffffffff8211171561089657505090565b808201805167ffffffffffffffff8111156108b2575050505090565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d85010160208284010111156108ea575050505090565b6108f960208285010185610392565b50939250505056fea264697066735822122010e7caca257b5dd89b35e6ee456a0d4fcc09e1dd5031b604e2af863cab78e61b64736f6c63430008160033a2646970667358221220cf9e541aca458fefc11f7dbe44ffa8c9dd610e085377aa6df37c1b38737f44bd64736f6c63430008160033",
|
|
"sourceMap": "252:605:48:-:0;;;3126:44:4;;;3166:4;-1:-1:-1;;3126:44:4;;;;;;;;800:28:2;;;;;;;;;;;252:605:48;;;;;;;;;;;;;;;;",
|
|
"linkReferences": {}
|
|
},
|
|
"deployedBytecode": {
|
|
"object": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063c04062261461003b578063f8ccbf4714610045575b600080fd5b610043610068565b005b600c546100529060ff1681565b60405161005f9190610503565b60405180910390f35b6040517fc1978d1f000000000000000000000000000000000000000000000000000000008152600090737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c1978d1f906100b990600401610517565b602060405180830381865afa1580156100d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100fa9190610554565b6040517fce817d47000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ce817d479061014d908490600401610579565b600060405180830381600087803b15801561016757600080fd5b505af115801561017b573d6000803e3d6000fd5b5050505060006001604051602001610193919061059b565b604051602081830303815290604052805190602001206040516101b5906104d2565b8190604051809103906000f59050801580156101d5573d6000803e3d6000fd5b50905060006040516101e6906104df565b604051809103906000f080158015610202573d6000803e3d6000fd5b5090506000604051610213906104ec565b604051809103906000f08015801561022f573d6000803e3d6000fd5b5090507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff166376eadd366040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561029d57600080fd5b505af11580156102b1573d6000803e3d6000fd5b505050506102f36040518060400160405280600781526020017f466163746f727900000000000000000000000000000000000000000000000000815250610390565b6102fc83610422565b61033a6040518060400160405280600b81526020017f517565727948656c706572000000000000000000000000000000000000000000815250610390565b61034382610422565b6103816040518060400160405280600881526020017f4465786f72646572000000000000000000000000000000000000000000000000815250610390565b61038a81610422565b50505050565b61041f816040516024016103a4919061061b565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526104ad565b50565b61041f816040516024016104369190610655565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790525b61041f8180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6151af8061066483390190565b6112b98061581383390190565b61095780616acc83390190565b8015155b82525050565b6020810161051182846104f9565b92915050565b60208152600061051160208301600b81527f505249564154455f4b4559000000000000000000000000000000000000000000602082015260400190565b60006020828403121561056957610569600080fd5b81515b9392505050565b806104fd565b602081016105118284610573565b600060ff8216610511565b6104fd81610587565b602081016105118284610592565b60005b838110156105c45781810151838201526020016105ac565b50506000910152565b60006105d7825190565b808452602084016105ec8282602087016105a9565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b60208152600061056c60208301846105cd565b600073ffffffffffffffffffffffffffffffffffffffff8216610511565b6104fd8161062e565b60208101610511828461064c56fe608060405234801561001057600080fd5b50600180546001600160a01b0319163317905561517d806100326000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063901c4e4f11610050578063901c4e4f146100d3578063dd009fdc146100db578063f851a440146100ee57600080fd5b80631a48240f146100775780635eb512e7146100a057806389035730146100b3575b600080fd5b61008a6100853660046102ac565b61010e565b60405161009791906102f8565b60405180910390f35b61008a6100ae36600461031b565b610120565b60005461008a9073ffffffffffffffffffffffffffffffffffffffff1681565b61008a61012d565b61008a6100e936600461033a565b61013f565b60015461008a9073ffffffffffffffffffffffffffffffffffffffff1681565b600061011a3383610152565b92915050565b600061011a826000610152565b600061013a336000610152565b905090565b600061014b8383610152565b9392505050565b604080516020808201835273ffffffffffffffffffffffffffffffffffffffff851691829052600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169092178255915190916101b59185918591016103b2565b604051602081830303815290604052805190602001206040516101d790610279565b8190604051809103906000f59050801580156101f7573d6000803e3d6000fd5b50600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560405190915073ffffffffffffffffffffffffffffffffffffffff8416907f416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d49061026b9085906103db565b60405180910390a292915050565b614d5e806103ea83390190565b60ff81165b811461029657600080fd5b50565b8035806102a581610286565b5092915050565b6000602082840312156102c1576102c1600080fd5b61014b8383610299565b600073ffffffffffffffffffffffffffffffffffffffff821661011a565b6102f2816102cb565b82525050565b6020810161011a82846102e9565b61028b816102cb565b8035806102a581610306565b60006020828403121561033057610330600080fd5b61014b838361030f565b6000806040838503121561035057610350600080fd5b61035a848461030f565b91506103698460208501610299565b90509250929050565b600061011a8260601b90565b600061011a82610372565b6102f2610395826102cb565b61037e565b600061011a8260f81b90565b6102f260ff821661039a565b6103bc8184610389565b6103c960148201836103a6565b60150192915050565b60ff81166102f2565b6020810161011a82846103d256fe60c06040523480156200001157600080fd5b50336001600160a01b031663890357306040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000051573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000779190620000bc565b6001600160a01b031660a0526000608052620000e6565b6001600160a01b0381168114620000a457600080fd5b50565b805180620000b5816200008e565b5092915050565b600060208284031215620000d357620000d3600080fd5b620000df8383620000a7565b9392505050565b60805160a051614c2862000136600039600081816102460152818161034c015281816103ea0152818161042701528181610844015281816108da0152611fd60152600061018f0152614c286000f3fe6080604052600436106100d65760003560e01c806377bad6b51161007f578063e78f84e711610059578063e78f84e714610295578063f1c6d051146102b2578063f3fef3a3146102d2578063fbbc8731146102f257600080fd5b806377bad6b5146102075780638da5cb5b14610234578063c3b35a7e1461027557600080fd5b806354fd4d50116100b057806354fd4d501461017d578063625c061c146101c75780636e98833d146101e757600080fd5b8063205c28781461011b5780632e1a7d4d1461013d578063523eb5371461015d57600080fd5b36610116577ff17c7d05fbef2f7f7af4beefa0649a44e2f27ed60c8fc3fc371ff2c1de29880a333460405161010c929190613227565b60405180910390a1005b600080fd5b34801561012757600080fd5b5061013b610136366004613282565b610319565b005b34801561014957600080fd5b5061013b6101583660046132ba565b610327565b34801561016957600080fd5b5061013b6101783660046132f5565b610334565b34801561018957600080fd5b506101b17f000000000000000000000000000000000000000000000000000000000000000081565b6040516101be919061331d565b60405180910390f35b3480156101d357600080fd5b5061013b6101e236600461389f565b6103d2565b3480156101f357600080fd5b5061013b610202366004613934565b610420565b34801561021357600080fd5b506102276102223660046132f5565b610453565b6040516101be9190613dca565b34801561024057600080fd5b506102687f000000000000000000000000000000000000000000000000000000000000000081565b6040516101be9190613ddd565b34801561028157600080fd5b5061013b610290366004613e0b565b610821565b3480156102a157600080fd5b506001546040516101be9190613e4b565b3480156102be57600080fd5b5061013b6102cd366004613e59565b61082c565b3480156102de57600080fd5b5061013b6102ed366004613e94565b6108b7565b3480156102fe57600080fd5b5060005461030c9060ff1681565b6040516101be9190613eb4565b61032382826108c2565b5050565b61033133826108c2565b50565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461037657600080fd5b6103b46040518060400160405280600b81526020017f63616e63656c4f72646572000000000000000000000000000000000000000000815250610947565b6103c78167ffffffffffffffff166109d6565b610331600082610a65565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461041457600080fd5b61032360008383610b62565b61044e60007f00000000000000000000000000000000000000000000000000000000000000008585856111e9565b505050565b61045b61312e565b6001805467ffffffffffffffff841690811061047957610479613ec2565b600091825260209091206040805161020081018252600b909302909101805473ffffffffffffffffffffffffffffffffffffffff90811661010085019081526001808401549092166101208601528351808501909452600283018054939486949293869361014087019391839160ff16908111156104f9576104f961397d565b600181111561050a5761050a61397d565b815290546101009081900462ffffff16602092830152918352600384015483820152600484015460ff8082161515604080870191909152938204161515606085015262010000900467ffffffffffffffff16608084015260058401805483518184028101840190945280845260a090940193909160009084015b828210156106e5576000848152602080822060408051808201825260028702909201805461ffff168352600181018054835181870281018701909452808452939591948681019491929084015b828210156106ce57838290600052602060002090600202016040518060400160405290816000820160009054906101000a900460ff1660028111156106185761061861397d565b60028111156106295761062961397d565b815260200160018201805461063d90613f20565b80601f016020809104026020016040519081016040528092919081815260200182805461066990613f20565b80156106b65780601f1061068b576101008083540402835291602001916106b6565b820191906000526020600020905b81548152906001019060200180831161069957829003601f168201915b505050505081525050815260200190600101906105d1565b505050508152505081526020019060010190610584565b505050915250508152600682015460209091019060ff16600381111561070d5761070d61397d565b600381111561071e5761071e61397d565b81526006820154610100810463ffffffff166020808401919091526501000000000090910467ffffffffffffffff16604080840191909152600784015460608401526008840154608084015260098401805482518185028101850190935280835260a09094019391929091908301828280156107b957602002820191906000526020600020905b8154815260200190600101908083116107a5575b50505050508152602001600a820180548060200260200160405190810160405280929190818152602001828054801561081157602002820191906000526020600020905b8154815260200190600101908083116107fd575b5050505050815250509050919050565b61044e838383611fbe565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461086e57600080fd5b6108ac6040518060400160405280601281526020017f5661756c742e706c6163654f7264657228290000000000000000000000000000815250610947565b61033160008261209d565b610323823383611fbe565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461090457600080fd5b60405173ffffffffffffffffffffffffffffffffffffffff83169082156108fc029083906000818181858888f1935050505015801561044e573d6000803e3d6000fd5b6103318160405160240161095b9190613f4f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526120fc565b610331816040516024016109ea9190613f62565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f1000000000000000000000000000000000000000000000000000000001790526120fc565b6000826001018267ffffffffffffffff1681548110610a8657610a86613ec2565b6000918252602082206006600b90920201015460ff169150816003811115610ab057610ab061397d565b0361044e576001836001018367ffffffffffffffff1681548110610ad657610ad6613ec2565b600091825260209091206006600b909202010180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001836003811115610b2157610b2161397d565b02179055507f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4882604051610b559190613e4b565b60405180910390a1505050565b815160ff11610b7057600080fd5b600183015467ffffffffffffffff80821610610b8b57600080fd5b600080836002811115610ba057610ba061397d565b03610bb4575067ffffffffffffffff610d52565b6001836002811115610bc857610bc861397d565b1480610be557506002836002811115610be357610be361397d565b145b15610d175784600201805490509050846002016040518060600160405280856002811115610c1557610c1561397d565b815267ffffffffffffffff8516602080830191909152875160ff1660409092019190915282546001818101855560009485529190932082519301805492939092909183917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690836002811115610c8e57610c8e61397d565b02179055506020820151815460409093015160ff166901000000000000000000027fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff67ffffffffffffffff90921661010002919091167fffffffffffffffffffffffffffffffffffffffffffff000000000000000000ff90931692909217919091179055610d52565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990613fa7565b60405180910390fd5b60005b84518160ff1610156111a7576000858260ff1681518110610d7857610d78613ec2565b60200260200101519050600180811115610d9457610d9461397d565b6040820151516001811115610dab57610dab61397d565b14610de2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990613feb565b600180880180549182018082556000828152919083908110610e0657610e06613ec2565b600091825260209182902060608601516003600b9093029091019182015560808501516004820180549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009283161790558551825473ffffffffffffffffffffffffffffffffffffffff9182167fffffffffffffffffffffffff0000000000000000000000000000000000000000918216178455938701516001808501805492909316919095161790556040860151805160028401805494965091949193909284929116908381811115610ede57610ede61397d565b02179055506020919091015181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff1661010062ffffff90921682021790915560c084015160048301805460a08701517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000ff9091166201000067ffffffffffffffff909416939093027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169290921791151590920217905560005b8360e0015151811015611126576005820180546001018155600090815260e0850151805183908110610fcc57610fcc613ec2565b602002602001015190506000836000016005018381548110610ff057610ff0613ec2565b60009182526020822084516002929092020180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff90921691909117815591505b8260200151518110156110e857816001018360200151828151811061105c5761105c613ec2565b60209081029190910181015182546001818101855560009485529290932081516002948502909101805492949093919284927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff009091169184908111156110c4576110c461397d565b0217905550602082015160018201906110dd9082614121565b505050600101611035565b5050506009820180546001818101835560009283526020808420909201839055600a8501805480830182559084529183209091019190915501610f98565b5060060180547fffffffffffffffffffffffffffffffffffffff00000000000000000000000000166101004263ffffffff16027fffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffff16176501000000000067ffffffffffffffff8716021790555081905061119f81614227565b915050610d55565b507f704790b72d78f27fe222b5e80adb23b845160c560b9e927c2c87b75adc9c2e2b8285516040516111da929190614246565b60405180910390a15050505050565b6112276040518060400160405280600781526020017f6578656375746500000000000000000000000000000000000000000000000000815250610947565b61123030612105565b6112438367ffffffffffffffff166109d6565b61124f8260ff166109d6565b6000856001018467ffffffffffffffff168154811061127057611270613ec2565b600091825260208220600b909102019150600682015460ff16600381111561129a5761129a61397d565b146112d1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990614293565b6000816000016005018460ff16815481106112ee576112ee613ec2565b600091825260208220845460018601546002808801546040517f1698ee8200000000000000000000000000000000000000000000000000000000815295909102909301955084938493731f98431c8ad98523631ae4a59f267346ea31f98493631698ee82936113889373ffffffffffffffffffffffffffffffffffffffff928316939290911691610100900462ffffff16906004016142a5565b602060405180830381865afa1580156113a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c991906142d9565b905060005b600185015460ff82161015611ab6576000856001018260ff16815481106113f7576113f7613ec2565b6000918252602082206002909102019150815460ff16600281111561141e5761141e61397d565b03611627576114616040518060400160405280600f81526020017f74696d6520636f6e73747261696e740000000000000000000000000000000000815250610947565b600081600101805461147290613f20565b80601f016020809104026020016040519081016040528092919081815260200182805461149e90613f20565b80156114eb5780601f106114c0576101008083540402835291602001916114eb565b820191906000526020600020905b8154815290600101906020018083116114ce57829003601f168201915b50505050508060200190518101906115039190614392565b9050600080825151600181111561151c5761151c61397d565b146115465781516020015160068a01546115419190610100900463ffffffff166143b1565b61154d565b8151602001515b9050428163ffffffff16111561158f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990614401565b600060208301515160018111156115a8576115a861397d565b146115d457602082810151015160068a01546115cf9190610100900463ffffffff166143b1565b6115de565b8160200151602001515b9050428163ffffffff161015611620576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990614445565b5050611aa3565b6001815460ff16600281111561163f5761163f61397d565b036119e4576116826040518060400160405280600f81526020017f6c696e6520636f6e73747261696e740000000000000000000000000000000000815250610947565b8473ffffffffffffffffffffffffffffffffffffffff16600003611719578273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156116eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170f91906144b9565b5094995050505050505b600081600101805461172a90613f20565b80601f016020809104026020016040519081016040528092919081815260200182805461175690613f20565b80156117a35780601f10611778576101008083540402835291602001916117a3565b820191906000526020600020905b81548152906001019060200180831161178657829003601f168201915b50505050508060200190518101906117bb91906145dc565b602081015190915073ffffffffffffffffffffffffffffffffffffffff87169015611812576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d499061462d565b6060820151608083015173ffffffffffffffffffffffffffffffffffffffff9091169060130b15611896576c01000000000000000000000000836080015160130b846040015163ffffffff1642611869919061463f565b611873919061465c565b61187d91906146e3565b6118879082614751565b90506000811215611896575060005b61189f81612194565b6118a8826109d6565b82516118b390612223565b8251819080156118d957508073ffffffffffffffffffffffffffffffffffffffff168311155b806119045750835115801561190457508073ffffffffffffffffffffffffffffffffffffffff168310155b1561193b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906147a3565b73ffffffffffffffffffffffffffffffffffffffff8816158061199257508351801561199257508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16105b806119d2575083511580156119d257508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16115b156119db578097505b50505050611aa3565b6002815460ff1660028111156119fc576119fc61397d565b03611a7157611a3f6040518060400160405280601281526020017f6261727269657220636f6e73747261696e740000000000000000000000000000815250610947565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906147e7565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d499061482b565b5080611aae81614227565b9150506113ce565b50611af56040518060400160405280601081526020017f636f6d707574696e6720616d6f756e7400000000000000000000000000000000815250610947565b6003850154611b03906109d6565b8354611b129061ffff166109d6565b6004850154611b239060ff16612223565b611b3085600701546109d6565b611b3d85600801546109d6565b611b68856009018860ff1681548110611b5857611b58613ec2565b90600052602060002001546109d6565b611b8385600a018860ff1681548110611b5857611b58613ec2565b600485015460009060ff16611bba5785600a018860ff1681548110611baa57611baa613ec2565b9060005260206000200154611bde565b856009018860ff1681548110611bd257611bd2613ec2565b90600052602060002001545b8554600388015461ffff91611bf6919083169061483d565b611c009190614857565b611c0a919061463f565b9050611c4a6040518060400160405280600681526020017f616d6f756e740000000000000000000000000000000000000000000000000000815250610947565b611c53816109d6565b611c916040518060400160405280600581526020017f6c696d6974000000000000000000000000000000000000000000000000000000815250610947565b611cb08373ffffffffffffffffffffffffffffffffffffffff166109d6565b611cee6040518060400160405280600581526020017f7072696365000000000000000000000000000000000000000000000000000000815250610947565b611d0d8473ffffffffffffffffffffffffffffffffffffffff166109d6565b6003860154600487015460ff16611d28578660080154611d2e565b86600701545b1115611d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906148a3565b600486015460009060ff16611d7f578660080154611d85565b86600701545b6003880154611d94919061463f565b9050611dd46040518060400160405280600981526020017f72656d61696e696e670000000000000000000000000000000000000000000000815250610947565b611ddd816109d6565b80821115611de9578091505b60008211611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906148e7565b611e2c826109d6565b6004870154600090610100900460ff16611e465730611e48565b8b5b9050611e5381612105565b600080600160028b015460ff166001811115611e7157611e7161397d565b03611e8d57611e83838b88888b6122b2565b9092509050611ebf565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990613feb565b818a6007016000828254611ed391906148f9565b92505081905550808a6008016000828254611eee91906148f9565b92505081905550818a6009018d60ff1681548110611f0e57611f0e613ec2565b906000526020600020016000828254611f2791906148f9565b92505081905550808a600a018d60ff1681548110611f4757611f47613ec2565b906000526020600020016000828254611f6091906148f9565b90915550506040517f8b9a867d3ae2675d02744a1ce6d50e404d9af21941871223000c679e01911af890611f9b908f908f908690869061490e565b60405180910390a1611fad8f8b612417565b505050505050505050505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161461200057600080fd5b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063a9059cbb906120549085908590600401613227565b6020604051808303816000875af1158015612073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120979190614943565b50505050565b604080516001808252818301909252600091816020015b6120bc613189565b8152602001906001900390816120b457905050905081816000815181106120e5576120e5613ec2565b602002602001018190525061044e83826000610b62565b61033181612559565b610331816040516024016121199190613ddd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc2000000000000000000000000000000000000000000000000000000001790526120fc565b610331816040516024016121a89190613f62565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2d5b6cb9000000000000000000000000000000000000000000000000000000001790526120fc565b610331816040516024016122379190613eb4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f32458eed000000000000000000000000000000000000000000000000000000001790526120fc565b6000806122f36040518060400160405280600b81526020017f7072696365206c696d6974000000000000000000000000000000000000000000815250610947565b6123128373ffffffffffffffffffffffffffffffffffffffff166109d6565b600486015460ff1615612398576040805160e08101825273ffffffffffffffffffffffffffffffffffffffff8781168252885481166020830152600189015481169282019290925288821660608201526002880154610100900462ffffff16608082015260a0810186905290841660c082015261238e9061257a565b909250905061240d565b6040805160e08101825273ffffffffffffffffffffffffffffffffffffffff8781168252885481166020830152600189015481169282019290925288821660608201526002880154610100900462ffffff16608082015260a0810186905290841660c082015261240790612928565b90925090505b9550959350505050565b600481015460009060ff16612430578160080154612436565b81600701545b6003830154612445919061463f565b9050806000036124bb576006820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166002179081905567ffffffffffffffff6501000000000090910481161461044e57600682015461044e90849065010000000000900467ffffffffffffffff16612f2b565b600682015465010000000000900467ffffffffffffffff90811614801590612531575060016006830154600285018054909165010000000000900467ffffffffffffffff1690811061250f5761250f613ec2565b60009182526020909120015460ff16600281111561252f5761252f61397d565b145b1561044e57600682015461044e90849065010000000000900467ffffffffffffffff16612f2b565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6000806125bb6040518060400160405280601981526020017f737761704578616374496e70757420617070726f76652e2e2e00000000000000815250610947565b6125c430612105565b6125d18360200151612105565b6125de8360400151612105565b6125f0836080015162ffffff166109d6565b6125fd8360600151612105565b61260a8360a001516109d6565b61262d8360c0015173ffffffffffffffffffffffffffffffffffffffff166109d6565b61264a73e592427a0aece92de3edee1f18e0157c05861564612105565b8260a0015191506000836020015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016126909190613ddd565b602060405180830381865afa1580156126ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d1919061496e565b90508060000361270d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906149bf565b82811015612719578092505b61273c846020015173e592427a0aece92de3edee1f18e0157c0586156485612fce565b61277a6040518060400160405280600b81526020017f7377617070696e672e2e2e000000000000000000000000000000000000000000815250610947565b73e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663414bf389604051806101000160405280876020015173ffffffffffffffffffffffffffffffffffffffff168152602001876040015173ffffffffffffffffffffffffffffffffffffffff168152602001876080015162ffffff168152602001876060015173ffffffffffffffffffffffffffffffffffffffff168152602001428152602001868152602001600181526020018760c0015173ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b81526004016128729190614a7c565b6020604051808303816000875af1158015612891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b5919061496e565b91506128f56040518060400160405280600781526020017f7377617070656400000000000000000000000000000000000000000000000000815250610947565b6128fe826109d6565b612922846020015173e592427a0aece92de3edee1f18e0157c058615646000612fce565b50915091565b6000806000836020015173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161296a9190613ddd565b602060405180830381865afa158015612987573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129ab919061496e565b9050806000036129e7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d49906149bf565b60408051808201909152601a81527f7377617045786163744f757470757420617070726f76652e2e2e00000000000060208201528190612a2690610947565b612a2f30612105565b612a3c8560200151612105565b612a498560400151612105565b612a5b856080015162ffffff166109d6565b612a688560600151612105565b612a758560a001516109d6565b612a988560c0015173ffffffffffffffffffffffffffffffffffffffff166109d6565b612ab573e592427a0aece92de3edee1f18e0157c05861564612105565b612af36040518060400160405280600781526020017f617070726f766500000000000000000000000000000000000000000000000000815250610947565b612afc816109d6565b612b1f856020015173e592427a0aece92de3edee1f18e0157c0586156483612fce565b612b5d6040518060400160405280600b81526020017f7377617070696e672e2e2e000000000000000000000000000000000000000000815250610947565b73e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663db3e2198604051806101000160405280886020015173ffffffffffffffffffffffffffffffffffffffff168152602001886040015173ffffffffffffffffffffffffffffffffffffffff168152602001886080015162ffffff168152602001886060015173ffffffffffffffffffffffffffffffffffffffff1681526020014281526020018860a0015181526020018481526020018860c0015173ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b8152600401612c589190614a7c565b6020604051808303816000875af1925050508015612cb1575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612cae9181019061496e565b60015b612ea557612cbd614a8b565b806308c379a003612e8c5750612cd1614aa6565b80612cdc5750612e8e565b73e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1663414bf389604051806101000160405280896020015173ffffffffffffffffffffffffffffffffffffffff168152602001896040015173ffffffffffffffffffffffffffffffffffffffff168152602001896080015162ffffff168152602001896060015173ffffffffffffffffffffffffffffffffffffffff168152602001428152602001858152602001600181526020018960c0015173ffffffffffffffffffffffffffffffffffffffff168152506040518263ffffffff1660e01b8152600401612dd49190614a7c565b6020604051808303816000875af1925050508015612e2d575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612e2a9181019061496e565b60015b612e9857612e39614a8b565b806308c379a003612e8c5750612e4d614aa6565b80612e585750612e8e565b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d499190613f4f565b505b3d6000803e3d6000fd5b8295508094505050612eb0565b60a086015190945092505b612eee6040518060400160405280600781526020017f7377617070656400000000000000000000000000000000000000000000000000815250610947565b612ef7846109d6565b612f00836109d6565b612f24856020015173e592427a0aece92de3edee1f18e0157c058615646000612fce565b5050915091565b6000826002018267ffffffffffffffff1681548110612f4c57612f4c613ec2565b600091825260208220018054909250612f84906901000000000000000000810460ff1690610100900467ffffffffffffffff16614b5f565b8254909150610100900467ffffffffffffffff165b8167ffffffffffffffff168167ffffffffffffffff161015612fc757612fbf8582610a65565b600101612f99565b5050505050565b6000808473ffffffffffffffffffffffffffffffffffffffff1663095ea7b360e01b8585604051602401613003929190613227565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905161308c9190614ba2565b6000604051808303816000865af19150503d80600081146130c9576040519150601f19603f3d011682016040523d82523d6000602084013e6130ce565b606091505b50915091508180156130f85750805115806130f85750808060200190518101906130f89190614943565b612fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4990614be0565b604051806101000160405280613142613189565b815260200160008152602001600063ffffffff168152602001600067ffffffffffffffff168152602001600081526020016000815260200160608152602001606081525090565b6040805161010081018252600080825260208201529081016131bb604080518082019091526000808252602082015290565b815260200160008152602001600015158152602001600015158152602001600067ffffffffffffffff168152602001606081525090565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b61321b816131f2565b82525050565b8061321b565b604081016132358285613212565b6132426020830184613221565b9392505050565b613252816131f2565b811461033157600080fd5b80358061326981613249565b5092915050565b80613252565b80358061326981613270565b6000806040838503121561329857613298600080fd5b6132a2848461325d565b91506132b18460208501613276565b90509250929050565b6000602082840312156132cf576132cf600080fd5b6132428383613276565b67ffffffffffffffff8116613252565b803580613269816132d9565b60006020828403121561330a5761330a600080fd5b61324283836132e9565b60ff811661321b565b6020810161320c8284613314565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff8211171561339e5761339e61332b565b6040525050565b60006133b060405190565b8091506133bd838261335a565b50919050565b600067ffffffffffffffff8211156133dd576133dd61332b565b5060051b60200190565b6002811061033157600080fd5b803580613269816133e7565b62ffffff8116613252565b80358061326981613400565b60006040828403121561342c5761342c600080fd5b61343660406133a5565b80915061344384846133f4565b8152613452846020850161340b565b60208201525092915050565b801515613252565b8035806132698161345e565b61ffff8116613252565b80358061326981613472565b6003811061033157600080fd5b80358061326981613488565b600067ffffffffffffffff8211156134bb576134bb61332b565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b82818337506000910152565b6000613506613501846134a1565b6133a5565b80915083815284848401111561351e5761351e600080fd5b61352c8460208301856134e7565b509392505050565b600082601f83011261354857613548600080fd5b613242838335602085016134f3565b60006040828403121561356c5761356c600080fd5b61357660406133a5565b8091506135838484613495565b8152602083013567ffffffffffffffff8111156135a2576135a2600080fd5b6135ae85828601613534565b6020830152505092915050565b60006135c9613501846133c3565b8381529050600583901b820160208201858211156135e9576135e9600080fd5b835b8281101561362857803567ffffffffffffffff81111561360d5761360d600080fd5b61361988828801613557565b835250602091820191016135eb565b5050509392505050565b600082601f83011261364657613646600080fd5b613242838335602085016135bb565b60006040828403121561366a5761366a600080fd5b61367460406133a5565b809150613681848461347c565b8152602083013567ffffffffffffffff8111156136a0576136a0600080fd5b6135ae85828601613632565b60006136ba613501846133c3565b8381529050600583901b820160208201858211156136da576136da600080fd5b835b8281101561362857803567ffffffffffffffff8111156136fe576136fe600080fd5b61370a88828801613655565b835250602091820191016136dc565b600082601f83011261372d5761372d600080fd5b613242838335602085016136ac565b6000610120828403121561375257613752600080fd5b61375d6101006133a5565b80915061376a848461325d565b8152613779846020850161325d565b602082015261378b8460408501613417565b604082015261379d8460808501613276565b60608201526137af8460a08501613466565b60808201526137c18460c08501613466565b60a08201526137d38460e085016132e9565b60c082015261010083013567ffffffffffffffff8111156137f6576137f6600080fd5b61380285828601613719565b60e0830152505092915050565b600061381d613501846133c3565b8381529050600583901b8201602082018582111561383d5761383d600080fd5b835b8281101561362857803567ffffffffffffffff81111561386157613861600080fd5b61386d8882880161373c565b8352506020918201910161383f565b600082601f83011261389057613890600080fd5b6132428383356020850161380f565b600080604083850312156138b5576138b5600080fd5b823567ffffffffffffffff8111156138cf576138cf600080fd5b6138db8582860161387c565b9250506132b18460208501613495565b60ff8116613252565b803580613269816138eb565b60006020828403121561391557613915600080fd5b61391f60206133a5565b80915061392c8484613276565b905292915050565b60008060006060848603121561394c5761394c600080fd5b61395685856132e9565b925061396585602086016138f4565b91506139748560408601613900565b90509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106103315761033161397d565b806139c6816139ac565b919050565b600061320c826139bc565b61321b816139cb565b62ffffff811661321b565b6139f58282516139d6565b602081015161044e60208401826139df565b80151561321b565b67ffffffffffffffff811661321b565b61ffff811661321b565b600381106103315761033161397d565b806139c681613a29565b600061320c82613a39565b61321b81613a43565b60005b83811015613a72578181015183820152602001613a5a565b50506000910152565b6000613a85825190565b80845260208401613a9a828260208701613a57565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b613ad4828251613a4e565b6000602082015160406020850152613aef6040850182613a7b565b949350505050565b60006132428383613ac9565b6000613b0d825190565b808452602084018094508160051b8101613b278560200190565b60005b84811015613b59578383038852613b42838351613af7565b925060208201602098909801979150600101613b2a565b50909695505050505050565b613b70828251613a1f565b6000602082015160406020850152613aef6040850182613b03565b60006132428383613b65565b6000613ba1825190565b808452602084018094508160051b8101613bbb8560200190565b60005b84811015613b59578383038852613bd6838351613b8b565b925060208201602098909801979150600101613bbe565b613bf8828251613212565b60006020820151613c0c6020850182613212565b506040820151613c1f60408501826139ea565b506060820151613c326080850182613221565b506080820151613c4560a0850182613a07565b5060a0820151613c5860c0850182613a07565b5060c0820151613c6b60e0850182613a0f565b5060e0820151610120610100850152613aef610120850182613b97565b600481106103315761033161397d565b806139c681613c88565b600061320c82613c98565b61321b81613ca2565b63ffffffff811661321b565b613ccc8282613221565b5060200190565b6000613cdd825190565b808452602093840193830160005b82811015613d0e57613cfe868351613cc2565b9550602082019150600101613ceb565b5093949350505050565b600081516101008452613d2f610100850182613bed565b90506020830151613d436020860182613cad565b506040830151613d566040860182613cb6565b506060830151613d696060860182613a0f565b506080830151613d7c6080860182613221565b5060a0830151613d8f60a0860182613221565b5060c083015184820360c0860152613da78282613cd3565b91505060e083015184820360e0860152613dc18282613cd3565b95945050505050565b6020815260006132426020830184613d18565b6020810161320c8284613212565b600061320c826131f2565b61325281613deb565b80358061326981613df6565b600080600060608486031215613e2357613e23600080fd5b613e2d8585613dff565b9250613e3c856020860161325d565b91506139748560408601613276565b6020810161320c8284613a0f565b600060208284031215613e6e57613e6e600080fd5b813567ffffffffffffffff811115613e8857613e88600080fd5b613aef8482850161373c565b60008060408385031215613eaa57613eaa600080fd5b6132a28484613dff565b6020810161320c8284613a07565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c908190831680613f3657607f821692505b602083108103613f4857613f48613ef1565b5050919050565b6020815260006132426020830184613a7b565b6020810161320c8284613221565b600481526000602082017f4f434f4d0000000000000000000000000000000000000000000000000000000081525b60200192915050565b60208152600061320c60208301613f70565b600281526000602082017f55520000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301613fb9565b60008260031b61402c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821b90565b94901b84169319919091169290921792915050565b600061320c61404d8381565b90565b61406761405f61404d85614041565b838354613ffd565b90555050565b61032360008383614050565b818110156103235761408c60008261406d565b600101614079565b601f82111561044e57600081815260209020601f840160051c810160208510156140bb5750805b612fc7601f850160051c830182614079565b60006140fb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8460031b1c90565b198216905092915050565b600061411283836140cd565b8360011b811791505092915050565b815167ffffffffffffffff81111561413b5761413b61332b565b61414f816141498454613f20565b84614094565b6020601f82116001811461417d576000831561416b5750848201515b6141758482614106565b855550612fc7565b6000848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156141cb57878501518255602094850194600190920191016141ab565b50848210156141e957838701516141e5601f8716826140cd565b8255505b50505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff810361423d5761423d6141f8565b60010192915050565b604081016142548285613a0f565b6132426020830184613314565b600281526000602082017f4e4f0000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614261565b606081016142b38286613212565b6142c06020830185613212565b613aef60408301846139df565b80518061326981613249565b6000602082840312156142ee576142ee600080fd5b61324283836142cd565b805180613269816133e7565b63ffffffff8116613252565b80518061326981614304565b60006040828403121561433157614331600080fd5b61433b60406133a5565b80915061434884846142f8565b81526134528460208501614310565b60006080828403121561436c5761436c600080fd5b61437660406133a5565b809150614383848461431c565b8152613452846040850161431c565b6000608082840312156143a7576143a7600080fd5b6132428383614357565b63ffffffff82811682821601908190811115613269576132696141f8565b600281526000602082017f54450000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c602083016143cf565b600281526000602082017f544c0000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614413565b73ffffffffffffffffffffffffffffffffffffffff8116613252565b80518061326981614457565b6132528160020b90565b8051806132698161447f565b80518061326981613472565b805180613269816138eb565b8051806132698161345e565b600080600080600080600060e0888a0312156144d7576144d7600080fd5b6144e18989614473565b96506144f08960208a01614489565b95506144ff8960408a01614495565b945061450e8960608a01614495565b935061451d8960808a01614495565b925061452c8960a08a016144a1565b915061453b8960c08a016144ad565b905092959891949750929550565b6132528160130b90565b80518061326981614549565b600060a0828403121561457457614574600080fd5b61457e60a06133a5565b80915061458b84846144ad565b815261459a84602085016144ad565b60208201526145ac8460408501614310565b60408201526145be8460608501614473565b60608201526145d08460808501614553565b60808201525092915050565b600060a082840312156145f1576145f1600080fd5b613242838361455f565b601581526000602082017f726174696f206e6f7420696d706c656d656e74656400000000000000000000008152613f9e565b60208152600061320c602083016145fb565b818103818181811115614654576146546141f8565b505092915050565b818102818382600083127f800000000000000000000000000000000000000000000000000000000000000083141615614697576146976141f8565b82810582148315176146ab576146ab6141f8565b50505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008183806146f4576146f46146b4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147f800000000000000000000000000000000000000000000000000000000000000083141615614748576147486141f8565b90059392505050565b8181016000821283821280158216821582161715614654576146546141f8565b600181526000602082017f4c000000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614771565b600281526000602082017f4e490000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c602083016147b5565b600281526000602082017f55430000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c602083016147f9565b81810281838282158382048314176146ab576146ab6141f8565b6000818380614868576148686146b4565b90049392505050565b600881526000602082017f4f56455246494c4c0000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614871565b600281526000602082017f54460000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c602083016148b5565b818101818180821115614654576146546141f8565b6080810161491c8287613a0f565b6149296020830186613314565b6149366040830185613221565b613dc16060830184613221565b60006020828403121561495857614958600080fd5b61324283836144ad565b80518061326981613270565b60006020828403121561498357614983600080fd5b6132428383614962565b600381526000602082017f49494100000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c6020830161498d565b73ffffffffffffffffffffffffffffffffffffffff811661321b565b6149f8828251613212565b6020810151614a0a6020840182613212565b506040810151614a1d60408401826139df565b506060810151614a306060840182613212565b506080810151614a436080840182613221565b5060a0810151614a5660a0840182613221565b5060c0810151614a6960c0840182613221565b5060e081015161044e60e08401826149d1565b610100810161320c82846149ed565b600060033d111561404d5760046000803e5060005160e01c90565b600060443d1015614ab45790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e80513d602482011167ffffffffffffffff82111715614afc57505090565b808201805167ffffffffffffffff811115614b18575050505090565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d8501016020828401011115614b50575050505090565b61352c6020828501018561335a565b67ffffffffffffffff82811682821601908190811115613269576132696141f8565b6000614b8b825190565b83614b9a828260208701613a57565b019392505050565b60006132428284614b81565b600281526000602082017f53410000000000000000000000000000000000000000000000000000000000008152613f9e565b60208152600061320c60208301614bae56fea26469706673582212204cf82481a51b5aeba98e93aaf50551304c3d1440ea1986dcfc34c4cc96a5b1ea64736f6c63430008160033a26469706673582212204b43bfa3c2fcb653fc7d844b7d1dc73cc4b694448b854030d7e34257e2205efa64736f6c63430008160033608060405234801561001057600080fd5b50611299806100206000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80636a385ae9116100505780636a385ae9146100ab578063b8df9780146100cc578063d85c32c7146100d457600080fd5b80633c38ccbb1461006c57806354fd4d5014610096575b600080fd5b61007f61007a366004610b21565b6100f4565b60405161008d929190610b6f565b60405180910390f35b61009e600181565b60405161008d9190610b93565b6100be6100b9366004610cf4565b610206565b60405161008d929190610da5565b61009e60ff81565b6100e76100e2366004610dd3565b6104c8565b60405161008d9190610f02565b6000808273ffffffffffffffffffffffffffffffffffffffff16633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa158015610142573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101669190610f92565b5050604080517f1a686502000000000000000000000000000000000000000000000000000000008152905194975073ffffffffffffffffffffffffffffffffffffffff89169550631a686502946004808301955060209450909250908290030181865afa1580156101db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ff9190611046565b9050915091565b60608061ffff801683511061021a57600080fd5b825167ffffffffffffffff81111561023457610234610bb6565b60405190808252806020026020018201604052801561025d578160200160208202803683370190505b509150825167ffffffffffffffff81111561027a5761027a610bb6565b6040519080825280602002602001820160405280156102a3578160200160208202803683370190505b50905060005b83518161ffff1610156104c057838161ffff16815181106102cc576102cc611065565b602002602001015173ffffffffffffffffffffffffffffffffffffffff166370a08231866040518263ffffffff1660e01b815260040161030c9190611094565b602060405180830381865afa925050508015610363575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610360918101906110b4565b60015b610390576000838261ffff168151811061037f5761037f611065565b6020026020010181815250506103b5565b80848361ffff16815181106103a7576103a7611065565b602002602001018181525050505b838161ffff16815181106103cb576103cb611065565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610457575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610454918101906110d3565b60015b6104865760ff8016828261ffff168151811061047557610475611065565b6020026020010181815250506104ae565b8060ff16838361ffff16815181106104a0576104a0611065565b602002602001018181525050505b806104b881611121565b9150506102a9565b509250929050565b60606105086040518060400160405280600981526020017f676574526f7574657300000000000000000000000000000000000000000000008152506108fe565b61051183610990565b61051a82610990565b60408051608081018252606481526101f46020820152610bb8918101919091526127106060820152600080808087815b60048160ff1610156107aa576105946040518060400160405280600981526020017f676574506f6f6c2e2e00000000000000000000000000000000000000000000008152506108fe565b6000878260ff16600481106105ab576105ab611065565b60200201516040517f1698ee82000000000000000000000000000000000000000000000000000000008152909150600090731f98431c8ad98523631ae4a59f267346ea31f98490631698ee829061060a908f908f908790600401611142565b602060405180830381865afa158015610627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064b919061117e565b905073ffffffffffffffffffffffffffffffffffffffff81166106ad576106a66040518060400160405280600781526020017f6e6f20706f6f6c000000000000000000000000000000000000000000000000008152506108fe565b50506107a2565b6106eb6040518060400160405280600881526020017f676f74506f6f6c2e0000000000000000000000000000000000000000000000008152506108fe565b6106f481610990565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8616906370a0823190610749908590600401611094565b602060405180830381865afa158015610766573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078a91906110b4565b90508681111561079e578297508096508195505b5050505b60010161054a565b506000808562ffffff16116107dd5760006107c5878261119d565b62ffffff16116107d65760006107e0565b60016107e0565b60015b90506107eb83610990565b6107f78160ff16610a1f565b8060ff1667ffffffffffffffff81111561081357610813610bb6565b60405190808252806020026020018201604052801561087c57816020015b60408051606081018252600080825260208083018290529282015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816108315790505b509750600062ffffff8616156108f0576040805160608101909152806001815262ffffff8816602082015273ffffffffffffffffffffffffffffffffffffffff861660409091015289826108cf816111ba565b935060ff16815181106108e4576108e4611065565b60200260200101819052505b505050505050505092915050565b61098d816040516024016109129190611242565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac00000000000000000000000000000000000000000000000000000000179052610aaa565b50565b61098d816040516024016109a49190611094565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c2ecbc200000000000000000000000000000000000000000000000000000000179052610aaa565b61098d81604051602401610a339190611255565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff82c50f1000000000000000000000000000000000000000000000000000000001790525b61098d8180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff82165b92915050565b6000610ae982610acf565b610b0381610aef565b811461098d57600080fd5b803580610b1a81610afa565b5092915050565b600060208284031215610b3657610b36600080fd5b610b408383610b0e565b9392505050565b610b518160020b90565b82525050565b6fffffffffffffffffffffffffffffffff8116610b51565b60408101610b7d8285610b47565b610b406020830184610b57565b60ff8116610b51565b60208101610ae98284610b8a565b610b0381610acf565b803580610b1a81610ba1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff82111715610c2957610c29610bb6565b6040525050565b6000610c3b60405190565b809150610c488382610be5565b50919050565b600067ffffffffffffffff821115610c6857610c68610bb6565b5060051b60200190565b6000610c85610c8084610c4e565b610c30565b8381529050600583901b82016020820185821115610ca557610ca5600080fd5b835b82811015610cc757610cb98782610baa565b825260209182019101610ca7565b5050509392505050565b600082601f830112610ce557610ce5600080fd5b610b4083833560208501610c72565b60008060408385031215610d0a57610d0a600080fd5b610d148484610baa565b9150602083013567ffffffffffffffff811115610d3357610d33600080fd5b610d3f85828601610cd1565b9150509250929050565b80610b51565b610d598282610d49565b5060200190565b6000610d6a825190565b808452602093840193830160005b82811015610d9b57610d8b868351610d4f565b9550602082019150600101610d78565b5093949350505050565b604081526000610db86040830185610d60565b8281036020840152610dca8185610d60565b95945050505050565b60008060408385031215610de957610de9600080fd5b610df38484610baa565b9150610e028460208501610baa565b90509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811061098d5761098d610e0b565b80610e5481610e3a565b919050565b6000610ae982610e4a565b610b5181610e59565b62ffffff8116610b51565b610b5181610acf565b610e8c828251610e64565b6020810151610e9e6020840182610e6d565b506040810151610eb16040840182610e78565b505050565b610ec08282610e81565b5060600190565b6000610ed1825190565b808452602093840193830160005b82811015610d9b57610ef2868351610eb6565b9550602082019150600101610edf565b602081526000610b406020830184610ec7565b73ffffffffffffffffffffffffffffffffffffffff8116610b03565b805180610b1a81610f15565b610b038160020b90565b805180610b1a81610f3d565b61ffff8116610b03565b805180610b1a81610f53565b60ff8116610b03565b805180610b1a81610f69565b801515610b03565b805180610b1a81610f7e565b600080600080600080600060e0888a031215610fb057610fb0600080fd5b610fba8989610f31565b9650610fc98960208a01610f47565b9550610fd88960408a01610f5d565b9450610fe78960608a01610f5d565b9350610ff68960808a01610f5d565b92506110058960a08a01610f72565b91506110148960c08a01610f86565b905092959891949750929550565b6fffffffffffffffffffffffffffffffff8116610b03565b805180610b1a81611022565b60006020828403121561105b5761105b600080fd5b610b40838361103a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60208101610ae98284610e78565b80610b03565b805180610b1a816110a2565b6000602082840312156110c9576110c9600080fd5b610b4083836110a8565b6000602082840312156110e8576110e8600080fd5b610b408383610f72565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061ffff821661ffff8103611139576111396110f2565b60010192915050565b606081016111508286610e78565b61115d6020830185610e78565b61116a6040830184610e6d565b949350505050565b805180610b1a81610ba1565b60006020828403121561119357611193600080fd5b610b408383611172565b62ffffff82811682821601908190811115610b1a57610b1a6110f2565b600060ff821660ff8103611139576111396110f2565b60005b838110156111eb5781810151838201526020016111d3565b50506000910152565b60006111fe825190565b808452602084016112138282602087016111d0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b602081526000610b4060208301846111f4565b60208101610ae98284610d4956fea264697066735822122085b8679d697e8685f6eceb314bd3910c1a407cdc658db22181b280efe388928464736f6c63430008160033608060405234801561001057600080fd5b50610937806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806301efa5e51461003b578063f09e582714610064575b600080fd5b61004e610049366004610505565b610084565b60405161005b91906105af565b60405180910390f35b610077610072366004610671565b610132565b60405161005b9190610734565b606061008f8261023d565b60408051600180825281830190925291925060009190816020015b60608152602001906001900390816100aa57905050905081816000815181106100d5576100d5610747565b6020026020010181905250836fffffffffffffffffffffffffffffffff19167f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad826040516101239190610734565b60405180910390a25092915050565b6060815167ffffffffffffffff81111561014e5761014e610363565b60405190808252806020026020018201604052801561018157816020015b606081526020019060019003908161016c5790505b50905060005b82518160ff1610156101eb576101b8838260ff16815181106101ab576101ab610747565b602002602001015161023d565b828260ff16815181106101cd576101cd610747565b602002602001018190525080806101e3906107a5565b915050610187565b50826fffffffffffffffffffffffffffffffff19167f15feb66d72284d4a0e80f76082f237f0dff281916db7a735e31b8236fb40c3ad8260405161022f9190610734565b60405180910390a292915050565b8051602082015160408084015160608581015192517f6e98833d000000000000000000000000000000000000000000000000000000008152909473ffffffffffffffffffffffffffffffffffffffff1693636e98833d936102a29391926004016107f4565b600060405180830381600087803b1580156102bc57600080fd5b505af19250505080156102cd575060015b61030a576102d9610824565b806308c379a0036102fe57506102ed610840565b806102f85750610300565b92915050565b505b3d6000803e3d6000fd5b505060408051602081019091526000815290565b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000081165b811461034d57600080fd5b50565b80358061035c8161031e565b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff821117156103d6576103d6610363565b6040525050565b60006103e860405190565b8091506103f58382610392565b50919050565b73ffffffffffffffffffffffffffffffffffffffff8116610342565b80358061035c816103fb565b67ffffffffffffffff8116610342565b80358061035c81610423565b60ff8116610342565b80358061035c8161043f565b80610342565b80358061035c81610454565b60006020828403121561047b5761047b600080fd5b61048560206103dd565b809150610492848461045a565b905292915050565b6000608082840312156104af576104af600080fd5b6104b960806103dd565b8091506104c68484610417565b81526104d58460208501610433565b60208201526104e78460408501610448565b60408201526104f98460608501610466565b60608201525092915050565b60008060a0838503121561051b5761051b600080fd5b6105258484610350565b9150610534846020850161049a565b90509250929050565b60005b83811015610558578181015183820152602001610540565b50506000910152565b600061056b825190565b8084526020840161058082826020870161053d565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6020815260006105c26020830184610561565b9392505050565b600067ffffffffffffffff8211156105e3576105e3610363565b5060051b60200190565b60006106006105fb846105c9565b6103dd565b8381529050600783901b8201602082018582111561062057610620600080fd5b835b8281101561064457610634878261049a565b8252602090910190608001610622565b5050509392505050565b600082601f83011261066257610662600080fd5b6105c2838335602085016105ed565b6000806040838503121561068757610687600080fd5b6106918484610350565b9150602083013567ffffffffffffffff8111156106b0576106b0600080fd5b6106bc8582860161064e565b9150509250929050565b60006105c28383610561565b60006106dc825190565b808452602084018094508160051b81016106f68560200190565b60005b848110156107285783830388526107118383516106c6565b9250602082016020989098019791506001016106f9565b50909695505050505050565b6020815260006105c260208301846106d2565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060ff821660ff81036107bb576107bb610776565b60010192915050565b67ffffffffffffffff81165b82525050565b60ff81166107d0565b806107d0565b6107f08282516107df565b5050565b6060810161080282866107c4565b61080f60208301856107d6565b61081c60408301846107e5565b949350505050565b600060033d111561083d5760046000803e5060005160e01c5b90565b600060443d101561084e5790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e80513d602482011167ffffffffffffffff8211171561089657505090565b808201805167ffffffffffffffff8111156108b2575050505090565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d85010160208284010111156108ea575050505090565b6108f960208285010185610392565b50939250505056fea264697066735822122010e7caca257b5dd89b35e6ee456a0d4fcc09e1dd5031b604e2af863cab78e61b64736f6c63430008160033a2646970667358221220cf9e541aca458fefc11f7dbe44ffa8c9dd610e085377aa6df37c1b38737f44bd64736f6c63430008160033",
|
|
"sourceMap": "252:605:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;284:571;;;:::i;:::-;;800:28:2;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;284:571:48;347:25;;;;;318:26;;347:10;;;;:25;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;382:37;;;;;318:54;;-1:-1:-1;382:17:48;;;;:37;;318:54;;382:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;429:16;486:1;475:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;465:24;;;;;;448:44;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;429:63;;515:17;535;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;515:37;;562:17;582:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;562:34;;317:28:1;309:37;;606:16:48;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:23;;;;;;;;;;;;;;;;;;:12;:23::i;:::-;667:31;688:8;667:12;:31::i;:::-;708:27;;;;;;;;;;;;;;;;;;:12;:27::i;:::-;745:28;766:5;745:12;:28::i;:::-;783:24;;;;;;;;;;;;;;;;;;:12;:24::i;:::-;817:31;838:8;817:12;:31::i;:::-;308:547;;;;284:571::o;6598:121:16:-;6653:59;6708:2;6669:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6653:15;:59::i;:::-;6598:121;:::o;6841:116::-;6890:60;6946:2;6906:43;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;868:133;939:55;986:7;1105:14;;591:42;1278:2;1265:16;;1081:21;;1105:14;1265:16;591:42;1314:5;1303:68;1294:77;;1231:150;;1007:380;:::o;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o;111:89:69:-;86:13;;79:21;174:19;169:3;162:32;;;111:89::o;205:180::-;333:2;318:18;;345:34;322:9;361:6;345:34;:::i;:::-;205:180;;;;:::o;960:277::-;1162:2;1151:9;1144:21;1125:4;1182:49;1227:2;1216:9;1212:18;812:2;477:19;;672:13;529:4;520:14;;657:29;935:14;;;693:262;1736:312;1806:6;1859:2;1847:9;1838:7;1834:23;1830:32;1827:147;;;1885:79;252:605:48;;;1885:79:69;1645:13;;1993:49;1983:59;1736:312;-1:-1:-1;;;1736:312:69:o;2053:95::-;2135:5;2119:22;1356:67;2153:189;2287:2;2272:18;;2299:37;2276:9;2318:6;2299:37;:::i;2561:142::-;2609:9;2492:4;2481:16;;2646:51;2423:76;2708:112;2778:35;2807:5;2778:35;:::i;2825:199::-;2965:2;2950:18;;2977:41;2954:9;3000:6;2977:41;:::i;3110:250::-;3195:1;3205:113;3219:6;3216:1;3213:13;3205:113;;;3295:11;;;3289:18;3276:11;;;3269:39;3241:2;3234:10;3205:113;;;-1:-1:-1;;3352:1:69;3334:16;;3327:27;3110:250::o;3532:306::-;3574:3;3606:26;3626:5;3091:12;;3029:76;3606:26;477:19;;;529:4;520:14;;3711:67;3771:6;3764:5;3757:4;3750:5;3746:16;3711:67;:::i;:::-;3454:66;3449:2;3438:14;;3434:87;3794:38;;3532:306;-1:-1:-1;;;;3532:306:69:o;3843:220::-;3992:2;3981:9;3974:21;3955:4;4012:45;4053:2;4042:9;4038:18;4030:6;4012:45;:::i;4201:96::-;4236:7;4147:42;4136:54;;4269:22;4068:128;4302:95;4368:22;4384:5;4368:22;:::i;4402:189::-;4536:2;4521:18;;4548:37;4525:9;4567:6;4548:37;:::i",
|
|
"linkReferences": {}
|
|
},
|
|
"methodIdentifiers": {
|
|
"IS_SCRIPT()": "f8ccbf47",
|
|
"run()": "c0406226"
|
|
},
|
|
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IS_SCRIPT\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"run\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"script/Deploy.sol\":\"Deploy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/Script.sol\":{\"keccak256\":\"0x0bded803c7e28336785fa600f03035e61d0b689bba2f014b1720e576c5ee3307\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://407f3979f460cc60bc7e4ce6fd7da4facac9f52623b4d6805052538d897eab9b\",\"dweb:/ipfs/QmSRhYNywsJhtYEYyPM1izGNsP1SBzxsXwLfcQnFF5NA9p\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d\",\"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a\",\"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26\",\"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140\",\"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d\",\"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol\":{\"keccak256\":\"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844\",\"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"script/Deploy.sol\":{\"keccak256\":\"0x0f0aef93372ea4a5a3da50971b5f32ad076e0e9df441f5fb1f188760092be7b8\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ae537c2616f1313857cf0419a5c9599a91963f7fd2a72cae7f38df814313d89c\",\"dweb:/ipfs/QmSaohjig6kPjnAmGK6LPArJD7BNxQkffHjkHmYdSEAf1Z\"]},\"src/Constants.sol\":{\"keccak256\":\"0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418\",\"dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds\"]},\"src/Dexorder.sol\":{\"keccak256\":\"0xc5374193e01ca9b9a139a5f6fceaabcd647b55f8bd750018077ae6e9b1dcb4b9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9310302b0e229d8e5434560b3188023b2393d3dd1f24ce18518007ce73461fa9\",\"dweb:/ipfs/QmRSVeexGMiSt6vbvNdyJENCEtTXSZkb7FGrMeDDZfesZ1\"]},\"src/Factory.sol\":{\"keccak256\":\"0x505f51c4877723756acd154753934f8ffa7088ffec29c70a073d4f1b8f0c6d15\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://81c36502d1b0eb0d882d13f751d3eb2d0cb4f89bb04935d4f0a024d1143d3e05\",\"dweb:/ipfs/QmQmwaDTVuzKzduxGX7zkimJyKc4SVvhHYeFvwNUamDJcG\"]},\"src/MockERC20.sol\":{\"keccak256\":\"0x0b7b50cebfa9265beaa40b0df4c94f25b6834fc6854addf5bba878eb65164089\",\"urls\":[\"bzz-raw://d67d08b0e0fd1ab66bd98341eb93a4850a9f2200bc5ab53d996508fb7c330db4\",\"dweb:/ipfs/QmbNCZyArZvRYTQeXcXJAFytnjuZse8dthoExDZSTwYpAK\"]},\"src/OrderLib.sol\":{\"keccak256\":\"0x3141c71ba0edb4839dcee8f6d461c8969ec85548d756178c94e19e76075a9e89\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f7b1efe6062b9095fe9d71475066743a7c80a1cb6b6c37e9e710195689a54424\",\"dweb:/ipfs/QmcdVcXijUv1CBW1V7nvM9s8gteb3QnmtuDEkrMGmcYEV5\"]},\"src/QueryHelper.sol\":{\"keccak256\":\"0xc501c6e09833b7ab5dbddfab0aece929f9fadaba723a9197fbb3e0fe948644ae\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://1d8eb50b08e37e4ed6d9d73adc50c9576c70ebdbc69266e4467e06b0c02b6ded\",\"dweb:/ipfs/QmSmE81LCdUYpC9PrNntX7YimnVA66uE1wG7ZGnMLh8pkw\"]},\"src/UniswapSwapper.sol\":{\"keccak256\":\"0xeba32c1f50322147452a5e8bb33daf0de90d0abaa26929f00da4cea788f92825\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ccef611297b80392e32363f9dce4f10403d2a9b3780475ffde7c38f1f2d23781\",\"dweb:/ipfs/QmVCN2oa3aQCx1KMxGN7EM4reJNFxegXyLSCQoe62dM2Kx\"]},\"src/Util.sol\":{\"keccak256\":\"0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80\",\"dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr\"]},\"src/Vault.sol\":{\"keccak256\":\"0xb9f8667aab5f5235d8364faa7a04610e5aa14af2fe29a04b27713a13fe955935\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://027c8699c68d1a3ca3a67f4362624d4bb1cb705ac125b6a72ad7638d81b1e045\",\"dweb:/ipfs/QmPcu3E3b2xzbeo15vvWNhrKGgT9sPfm9HVXXiftBc4Qu8\"]},\"src/VaultDeployer.sol\":{\"keccak256\":\"0x1a833cc5151d7acfbb5b665adb938fa0af59aa5aed873b4abf5720966d28ce10\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://52a9f4d146eca466e146956662f8ce76282eeb8a239b9aedf08d6924df724fd3\",\"dweb:/ipfs/Qmcu4qDuw9U7AucKBgSQ4hciNPJygErFxRL9YkqoQz5euu\"]},\"src/interface/IVaultDeployer.sol\":{\"keccak256\":\"0x2985c864a3b5cf99244cc443871b356b47bb6bfb758bbf89b9cceb2e15c68886\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2d3df393bad985f53c8a31e9907badd10766891d5951a3ab95acea2cc6d2092a\",\"dweb:/ipfs/QmbE7z2SwfCnCF2XxKM1FEEPaddrS6WNbCJ5yqSP2Zn8d7\"]},\"test/MockEnv.sol\":{\"keccak256\":\"0x0f80e0ca443ca0421f29720c89ddfc2545a890d9b65b250ac388ae560780692b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://2eb22831d8fe14a3b10e5eff82f9066ce931240e103460ef18297cdc37578368\",\"dweb:/ipfs/QmSiRsGE26WwtG8cJ3a3FodEPp68trUW3n4cNWbgZGFv3V\"]}},\"version\":1}",
|
|
"metadata": {
|
|
"compiler": {
|
|
"version": "0.8.22+commit.4fc1097e"
|
|
},
|
|
"language": "Solidity",
|
|
"output": {
|
|
"abi": [
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "view",
|
|
"type": "function",
|
|
"name": "IS_SCRIPT",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function",
|
|
"name": "run"
|
|
}
|
|
],
|
|
"devdoc": {
|
|
"kind": "dev",
|
|
"methods": {},
|
|
"version": 1
|
|
},
|
|
"userdoc": {
|
|
"kind": "user",
|
|
"methods": {},
|
|
"version": 1
|
|
}
|
|
},
|
|
"settings": {
|
|
"remappings": [
|
|
"@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
|
|
"@uniswap/v3-core/=lib_uniswap/v3-core/",
|
|
"@uniswap/v3-periphery/=lib_uniswap/v3-periphery/",
|
|
"ds-test/=lib/forge-std/lib/ds-test/src/",
|
|
"forge-std/=lib/forge-std/src/",
|
|
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
|
|
"v3-core/=lib_uniswap/v3-core/",
|
|
"v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/"
|
|
],
|
|
"optimizer": {
|
|
"runs": 999999999,
|
|
"details": {
|
|
"peephole": true,
|
|
"inliner": true,
|
|
"jumpdestRemover": true,
|
|
"orderLiterals": true,
|
|
"deduplicate": true,
|
|
"cse": true,
|
|
"constantOptimizer": true,
|
|
"yul": true,
|
|
"yulDetails": {
|
|
"stackAllocation": true,
|
|
"optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu"
|
|
}
|
|
}
|
|
},
|
|
"metadata": {
|
|
"bytecodeHash": "ipfs"
|
|
},
|
|
"compilationTarget": {
|
|
"script/Deploy.sol": "Deploy"
|
|
},
|
|
"libraries": {}
|
|
},
|
|
"sources": {
|
|
"lib/forge-std/src/Base.sol": {
|
|
"keccak256": "0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c",
|
|
"urls": [
|
|
"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224",
|
|
"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/Script.sol": {
|
|
"keccak256": "0x0bded803c7e28336785fa600f03035e61d0b689bba2f014b1720e576c5ee3307",
|
|
"urls": [
|
|
"bzz-raw://407f3979f460cc60bc7e4ce6fd7da4facac9f52623b4d6805052538d897eab9b",
|
|
"dweb:/ipfs/QmSRhYNywsJhtYEYyPM1izGNsP1SBzxsXwLfcQnFF5NA9p"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/StdChains.sol": {
|
|
"keccak256": "0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6",
|
|
"urls": [
|
|
"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d",
|
|
"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/StdCheats.sol": {
|
|
"keccak256": "0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5",
|
|
"urls": [
|
|
"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a",
|
|
"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/StdJson.sol": {
|
|
"keccak256": "0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b",
|
|
"urls": [
|
|
"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c",
|
|
"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/StdMath.sol": {
|
|
"keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2",
|
|
"urls": [
|
|
"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92",
|
|
"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/StdStorage.sol": {
|
|
"keccak256": "0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d",
|
|
"urls": [
|
|
"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26",
|
|
"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/StdStyle.sol": {
|
|
"keccak256": "0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d",
|
|
"urls": [
|
|
"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8",
|
|
"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/StdUtils.sol": {
|
|
"keccak256": "0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1",
|
|
"urls": [
|
|
"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140",
|
|
"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/Vm.sol": {
|
|
"keccak256": "0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5",
|
|
"urls": [
|
|
"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c",
|
|
"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/console.sol": {
|
|
"keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba",
|
|
"urls": [
|
|
"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70",
|
|
"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/console2.sol": {
|
|
"keccak256": "0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea",
|
|
"urls": [
|
|
"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973",
|
|
"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/interfaces/IMulticall3.sol": {
|
|
"keccak256": "0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a",
|
|
"urls": [
|
|
"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0",
|
|
"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/forge-std/src/safeconsole.sol": {
|
|
"keccak256": "0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381",
|
|
"urls": [
|
|
"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae",
|
|
"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol": {
|
|
"keccak256": "0x4ffc0547c02ad22925310c585c0f166f8759e2648a09e9b489100c42f15dd98d",
|
|
"urls": [
|
|
"bzz-raw://15f52f51413a9de1ff191e2f6367c62178e1df7806d7880fe857a98b0b66253d",
|
|
"dweb:/ipfs/QmaQG1fwfgUt5E9nu2cccFiV47B2V78MM1tCy1qB7n4MsH"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": {
|
|
"keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b",
|
|
"urls": [
|
|
"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34",
|
|
"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol": {
|
|
"keccak256": "0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca",
|
|
"urls": [
|
|
"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd",
|
|
"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol": {
|
|
"keccak256": "0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68",
|
|
"urls": [
|
|
"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56",
|
|
"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol": {
|
|
"keccak256": "0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf",
|
|
"urls": [
|
|
"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34",
|
|
"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
|
|
"keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9",
|
|
"urls": [
|
|
"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146",
|
|
"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/utils/Context.sol": {
|
|
"keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
|
|
"urls": [
|
|
"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
|
|
"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol": {
|
|
"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
|
|
"urls": [
|
|
"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
|
|
"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol": {
|
|
"keccak256": "0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489",
|
|
"urls": [
|
|
"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2",
|
|
"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol": {
|
|
"keccak256": "0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1",
|
|
"urls": [
|
|
"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5",
|
|
"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol": {
|
|
"keccak256": "0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69",
|
|
"urls": [
|
|
"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652",
|
|
"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol": {
|
|
"keccak256": "0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634",
|
|
"urls": [
|
|
"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5",
|
|
"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol": {
|
|
"keccak256": "0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5",
|
|
"urls": [
|
|
"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7",
|
|
"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol": {
|
|
"keccak256": "0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd",
|
|
"urls": [
|
|
"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03",
|
|
"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol": {
|
|
"keccak256": "0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7",
|
|
"urls": [
|
|
"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047",
|
|
"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol": {
|
|
"keccak256": "0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235",
|
|
"urls": [
|
|
"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735",
|
|
"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol": {
|
|
"keccak256": "0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f",
|
|
"urls": [
|
|
"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f",
|
|
"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol": {
|
|
"keccak256": "0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032",
|
|
"urls": [
|
|
"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d",
|
|
"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/libraries/FullMath.sol": {
|
|
"keccak256": "0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be",
|
|
"urls": [
|
|
"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d",
|
|
"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"
|
|
],
|
|
"license": "MIT"
|
|
},
|
|
"lib_uniswap/v3-core/contracts/libraries/TickMath.sol": {
|
|
"keccak256": "0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d",
|
|
"urls": [
|
|
"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3",
|
|
"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol": {
|
|
"keccak256": "0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4",
|
|
"urls": [
|
|
"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471",
|
|
"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol": {
|
|
"keccak256": "0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984",
|
|
"urls": [
|
|
"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56",
|
|
"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol": {
|
|
"keccak256": "0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d",
|
|
"urls": [
|
|
"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f",
|
|
"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol": {
|
|
"keccak256": "0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274",
|
|
"urls": [
|
|
"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407",
|
|
"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol": {
|
|
"keccak256": "0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862",
|
|
"urls": [
|
|
"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f",
|
|
"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol": {
|
|
"keccak256": "0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975",
|
|
"urls": [
|
|
"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53",
|
|
"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol": {
|
|
"keccak256": "0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24",
|
|
"urls": [
|
|
"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844",
|
|
"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol": {
|
|
"keccak256": "0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4",
|
|
"urls": [
|
|
"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48",
|
|
"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol": {
|
|
"keccak256": "0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd",
|
|
"urls": [
|
|
"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2",
|
|
"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"
|
|
],
|
|
"license": "GPL-2.0-or-later"
|
|
},
|
|
"script/Deploy.sol": {
|
|
"keccak256": "0x0f0aef93372ea4a5a3da50971b5f32ad076e0e9df441f5fb1f188760092be7b8",
|
|
"urls": [
|
|
"bzz-raw://ae537c2616f1313857cf0419a5c9599a91963f7fd2a72cae7f38df814313d89c",
|
|
"dweb:/ipfs/QmSaohjig6kPjnAmGK6LPArJD7BNxQkffHjkHmYdSEAf1Z"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/Constants.sol": {
|
|
"keccak256": "0x41bf66b69d0d8c9c32c43fd3af5396d1288ac512fd5c6c14e06dbb06a06adf3f",
|
|
"urls": [
|
|
"bzz-raw://283443c74eef1b4ff300c1465a46877957188c3f65ed71aea60bd11362938418",
|
|
"dweb:/ipfs/QmQPn2nrbKVei7HUooGXy7msfoXNT8E2yVkT1kZAC9T3ds"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/Dexorder.sol": {
|
|
"keccak256": "0xc5374193e01ca9b9a139a5f6fceaabcd647b55f8bd750018077ae6e9b1dcb4b9",
|
|
"urls": [
|
|
"bzz-raw://9310302b0e229d8e5434560b3188023b2393d3dd1f24ce18518007ce73461fa9",
|
|
"dweb:/ipfs/QmRSVeexGMiSt6vbvNdyJENCEtTXSZkb7FGrMeDDZfesZ1"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/Factory.sol": {
|
|
"keccak256": "0x505f51c4877723756acd154753934f8ffa7088ffec29c70a073d4f1b8f0c6d15",
|
|
"urls": [
|
|
"bzz-raw://81c36502d1b0eb0d882d13f751d3eb2d0cb4f89bb04935d4f0a024d1143d3e05",
|
|
"dweb:/ipfs/QmQmwaDTVuzKzduxGX7zkimJyKc4SVvhHYeFvwNUamDJcG"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/MockERC20.sol": {
|
|
"keccak256": "0x0b7b50cebfa9265beaa40b0df4c94f25b6834fc6854addf5bba878eb65164089",
|
|
"urls": [
|
|
"bzz-raw://d67d08b0e0fd1ab66bd98341eb93a4850a9f2200bc5ab53d996508fb7c330db4",
|
|
"dweb:/ipfs/QmbNCZyArZvRYTQeXcXJAFytnjuZse8dthoExDZSTwYpAK"
|
|
],
|
|
"license": null
|
|
},
|
|
"src/OrderLib.sol": {
|
|
"keccak256": "0x3141c71ba0edb4839dcee8f6d461c8969ec85548d756178c94e19e76075a9e89",
|
|
"urls": [
|
|
"bzz-raw://f7b1efe6062b9095fe9d71475066743a7c80a1cb6b6c37e9e710195689a54424",
|
|
"dweb:/ipfs/QmcdVcXijUv1CBW1V7nvM9s8gteb3QnmtuDEkrMGmcYEV5"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/QueryHelper.sol": {
|
|
"keccak256": "0xc501c6e09833b7ab5dbddfab0aece929f9fadaba723a9197fbb3e0fe948644ae",
|
|
"urls": [
|
|
"bzz-raw://1d8eb50b08e37e4ed6d9d73adc50c9576c70ebdbc69266e4467e06b0c02b6ded",
|
|
"dweb:/ipfs/QmSmE81LCdUYpC9PrNntX7YimnVA66uE1wG7ZGnMLh8pkw"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/UniswapSwapper.sol": {
|
|
"keccak256": "0xeba32c1f50322147452a5e8bb33daf0de90d0abaa26929f00da4cea788f92825",
|
|
"urls": [
|
|
"bzz-raw://ccef611297b80392e32363f9dce4f10403d2a9b3780475ffde7c38f1f2d23781",
|
|
"dweb:/ipfs/QmVCN2oa3aQCx1KMxGN7EM4reJNFxegXyLSCQoe62dM2Kx"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/Util.sol": {
|
|
"keccak256": "0xbf0a5fb064064aa53474e43777176662a9f09fdb61b823b87705bd0c6d1909ad",
|
|
"urls": [
|
|
"bzz-raw://6dbdd417018821ed9cc564f5d64e92b5efaf067cdc559e7f1dd7bff2afa07a80",
|
|
"dweb:/ipfs/QmPQTGJbnrV4PSCCXNbBQKZ3enF5r7Wv115ivoHFCjVCJr"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/Vault.sol": {
|
|
"keccak256": "0xb9f8667aab5f5235d8364faa7a04610e5aa14af2fe29a04b27713a13fe955935",
|
|
"urls": [
|
|
"bzz-raw://027c8699c68d1a3ca3a67f4362624d4bb1cb705ac125b6a72ad7638d81b1e045",
|
|
"dweb:/ipfs/QmPcu3E3b2xzbeo15vvWNhrKGgT9sPfm9HVXXiftBc4Qu8"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/VaultDeployer.sol": {
|
|
"keccak256": "0x1a833cc5151d7acfbb5b665adb938fa0af59aa5aed873b4abf5720966d28ce10",
|
|
"urls": [
|
|
"bzz-raw://52a9f4d146eca466e146956662f8ce76282eeb8a239b9aedf08d6924df724fd3",
|
|
"dweb:/ipfs/Qmcu4qDuw9U7AucKBgSQ4hciNPJygErFxRL9YkqoQz5euu"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"src/interface/IVaultDeployer.sol": {
|
|
"keccak256": "0x2985c864a3b5cf99244cc443871b356b47bb6bfb758bbf89b9cceb2e15c68886",
|
|
"urls": [
|
|
"bzz-raw://2d3df393bad985f53c8a31e9907badd10766891d5951a3ab95acea2cc6d2092a",
|
|
"dweb:/ipfs/QmbE7z2SwfCnCF2XxKM1FEEPaddrS6WNbCJ5yqSP2Zn8d7"
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"test/MockEnv.sol": {
|
|
"keccak256": "0x0f80e0ca443ca0421f29720c89ddfc2545a890d9b65b250ac388ae560780692b",
|
|
"urls": [
|
|
"bzz-raw://2eb22831d8fe14a3b10e5eff82f9066ce931240e103460ef18297cdc37578368",
|
|
"dweb:/ipfs/QmSiRsGE26WwtG8cJ3a3FodEPp68trUW3n4cNWbgZGFv3V"
|
|
],
|
|
"license": "UNLICENSED"
|
|
}
|
|
},
|
|
"version": 1
|
|
},
|
|
"ast": {
|
|
"absolutePath": "script/Deploy.sol",
|
|
"id": 46173,
|
|
"exportedSymbols": {
|
|
"Constants": [
|
|
46264
|
|
],
|
|
"Context": [
|
|
43777
|
|
],
|
|
"Deploy": [
|
|
46172
|
|
],
|
|
"Dexorder": [
|
|
46412
|
|
],
|
|
"ERC20": [
|
|
43478
|
|
],
|
|
"Factory": [
|
|
46430
|
|
],
|
|
"FixedPoint96": [
|
|
44338
|
|
],
|
|
"FullMath": [
|
|
44519
|
|
],
|
|
"IERC165": [
|
|
43789
|
|
],
|
|
"IERC20": [
|
|
43556
|
|
],
|
|
"IERC20Metadata": [
|
|
43581
|
|
],
|
|
"IERC721": [
|
|
43697
|
|
],
|
|
"IERC721Enumerable": [
|
|
43728
|
|
],
|
|
"IERC721Metadata": [
|
|
43755
|
|
],
|
|
"IERC721Permit": [
|
|
45094
|
|
],
|
|
"INonfungiblePositionManager": [
|
|
45293
|
|
],
|
|
"IPeripheryImmutableState": [
|
|
45309
|
|
],
|
|
"IPeripheryPayments": [
|
|
45335
|
|
],
|
|
"IPoolInitializer": [
|
|
45354
|
|
],
|
|
"ISwapRouter": [
|
|
45454
|
|
],
|
|
"IUniswapV3Factory": [
|
|
43872
|
|
],
|
|
"IUniswapV3Pool": [
|
|
43894
|
|
],
|
|
"IUniswapV3PoolActions": [
|
|
44004
|
|
],
|
|
"IUniswapV3PoolDerivedState": [
|
|
44035
|
|
],
|
|
"IUniswapV3PoolEvents": [
|
|
44154
|
|
],
|
|
"IUniswapV3PoolImmutables": [
|
|
44194
|
|
],
|
|
"IUniswapV3PoolOwnerActions": [
|
|
44220
|
|
],
|
|
"IUniswapV3PoolState": [
|
|
44328
|
|
],
|
|
"IUniswapV3SwapCallback": [
|
|
43908
|
|
],
|
|
"IVaultDeployer": [
|
|
49445
|
|
],
|
|
"LiquidityAmounts": [
|
|
45794
|
|
],
|
|
"MockERC20": [
|
|
46478
|
|
],
|
|
"MockEnv": [
|
|
50069
|
|
],
|
|
"OrderLib": [
|
|
47922
|
|
],
|
|
"PoolAddress": [
|
|
45892
|
|
],
|
|
"QueryHelper": [
|
|
48320
|
|
],
|
|
"Script": [
|
|
2405
|
|
],
|
|
"ScriptBase": [
|
|
2366
|
|
],
|
|
"StdChains": [
|
|
4516
|
|
],
|
|
"StdCheatsSafe": [
|
|
6570
|
|
],
|
|
"StdStorage": [
|
|
8374
|
|
],
|
|
"StdStyle": [
|
|
11038
|
|
],
|
|
"StdUtils": [
|
|
11886
|
|
],
|
|
"TickMath": [
|
|
45059
|
|
],
|
|
"TransferHelper": [
|
|
46063
|
|
],
|
|
"UniswapSwapper": [
|
|
48847
|
|
],
|
|
"Util": [
|
|
48904
|
|
],
|
|
"Vault": [
|
|
49181
|
|
],
|
|
"VaultDeployer": [
|
|
49436
|
|
],
|
|
"VmSafe": [
|
|
12992
|
|
],
|
|
"console": [
|
|
21528
|
|
],
|
|
"console2": [
|
|
29653
|
|
],
|
|
"safeconsole": [
|
|
42891
|
|
],
|
|
"stdJson": [
|
|
8200
|
|
],
|
|
"stdMath": [
|
|
8342
|
|
],
|
|
"stdStorageSafe": [
|
|
9266
|
|
]
|
|
},
|
|
"nodeType": "SourceUnit",
|
|
"src": "39:819:48",
|
|
"nodes": [
|
|
{
|
|
"id": 46065,
|
|
"nodeType": "PragmaDirective",
|
|
"src": "39:24:48",
|
|
"nodes": [],
|
|
"literals": [
|
|
"solidity",
|
|
">=",
|
|
"0.8",
|
|
".0"
|
|
]
|
|
},
|
|
{
|
|
"id": 46066,
|
|
"nodeType": "ImportDirective",
|
|
"src": "65:30:48",
|
|
"nodes": [],
|
|
"absolutePath": "lib/forge-std/src/Script.sol",
|
|
"file": "forge-std/Script.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 46173,
|
|
"sourceUnit": 2406,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 46067,
|
|
"nodeType": "ImportDirective",
|
|
"src": "96:32:48",
|
|
"nodes": [],
|
|
"absolutePath": "lib/forge-std/src/console2.sol",
|
|
"file": "forge-std/console2.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 46173,
|
|
"sourceUnit": 29654,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 46068,
|
|
"nodeType": "ImportDirective",
|
|
"src": "129:32:48",
|
|
"nodes": [],
|
|
"absolutePath": "src/QueryHelper.sol",
|
|
"file": "../src/QueryHelper.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 46173,
|
|
"sourceUnit": 48321,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 46069,
|
|
"nodeType": "ImportDirective",
|
|
"src": "162:28:48",
|
|
"nodes": [],
|
|
"absolutePath": "src/Factory.sol",
|
|
"file": "../src/Factory.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 46173,
|
|
"sourceUnit": 46431,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 46070,
|
|
"nodeType": "ImportDirective",
|
|
"src": "191:29:48",
|
|
"nodes": [],
|
|
"absolutePath": "src/Dexorder.sol",
|
|
"file": "../src/Dexorder.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 46173,
|
|
"sourceUnit": 46413,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 46071,
|
|
"nodeType": "ImportDirective",
|
|
"src": "221:29:48",
|
|
"nodes": [],
|
|
"absolutePath": "test/MockEnv.sol",
|
|
"file": "../test/MockEnv.sol",
|
|
"nameLocation": "-1:-1:-1",
|
|
"scope": 46173,
|
|
"sourceUnit": 50070,
|
|
"symbolAliases": [],
|
|
"unitAlias": ""
|
|
},
|
|
{
|
|
"id": 46172,
|
|
"nodeType": "ContractDefinition",
|
|
"src": "252:605:48",
|
|
"nodes": [
|
|
{
|
|
"id": 46171,
|
|
"nodeType": "FunctionDefinition",
|
|
"src": "284:571:48",
|
|
"nodes": [],
|
|
"body": {
|
|
"id": 46170,
|
|
"nodeType": "Block",
|
|
"src": "308:547:48",
|
|
"nodes": [],
|
|
"statements": [
|
|
{
|
|
"assignments": [
|
|
46077
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 46077,
|
|
"mutability": "mutable",
|
|
"name": "deployerPrivateKey",
|
|
"nameLocation": "326:18:48",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 46170,
|
|
"src": "318:26:48",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
},
|
|
"typeName": {
|
|
"id": 46076,
|
|
"name": "uint256",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "318:7:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 46082,
|
|
"initialValue": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "505249564154455f4b4559",
|
|
"id": 46080,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "358:13:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_2ef6555c4d06f7a53d2dd092327f3256a8d6f18aff592d5349c12226686be6c5",
|
|
"typeString": "literal_string \"PRIVATE_KEY\""
|
|
},
|
|
"value": "PRIVATE_KEY"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_2ef6555c4d06f7a53d2dd092327f3256a8d6f18aff592d5349c12226686be6c5",
|
|
"typeString": "literal_string \"PRIVATE_KEY\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 46078,
|
|
"name": "vm",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2350,
|
|
"src": "347:2:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Vm_$13464",
|
|
"typeString": "contract Vm"
|
|
}
|
|
},
|
|
"id": 46079,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "350:7:48",
|
|
"memberName": "envUint",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 12050,
|
|
"src": "347:10:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_uint256_$",
|
|
"typeString": "function (string memory) view external returns (uint256)"
|
|
}
|
|
},
|
|
"id": 46081,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "347:25:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "318:54:48"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"id": 46086,
|
|
"name": "deployerPrivateKey",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46077,
|
|
"src": "400:18:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_uint256",
|
|
"typeString": "uint256"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 46083,
|
|
"name": "vm",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2350,
|
|
"src": "382:2:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Vm_$13464",
|
|
"typeString": "contract Vm"
|
|
}
|
|
},
|
|
"id": 46085,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "385:14:48",
|
|
"memberName": "startBroadcast",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 12377,
|
|
"src": "382:17:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
|
|
"typeString": "function (uint256) external"
|
|
}
|
|
},
|
|
"id": 46087,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "382:37:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 46088,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "382:37:48"
|
|
},
|
|
{
|
|
"assignments": [
|
|
46091
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 46091,
|
|
"mutability": "mutable",
|
|
"name": "deployer",
|
|
"nameLocation": "437:8:48",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 46170,
|
|
"src": "429:16:48",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Factory_$46430",
|
|
"typeString": "contract Factory"
|
|
},
|
|
"typeName": {
|
|
"id": 46090,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 46089,
|
|
"name": "Factory",
|
|
"nameLocations": [
|
|
"429:7:48"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46430,
|
|
"src": "429:7:48"
|
|
},
|
|
"referencedDeclaration": 46430,
|
|
"src": "429:7:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Factory_$46430",
|
|
"typeString": "contract Factory"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 46103,
|
|
"initialValue": {
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 46094,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "448:11:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Factory_$46430_$",
|
|
"typeString": "function () returns (contract Factory)"
|
|
},
|
|
"typeName": {
|
|
"id": 46093,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 46092,
|
|
"name": "Factory",
|
|
"nameLocations": [
|
|
"452:7:48"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46430,
|
|
"src": "452:7:48"
|
|
},
|
|
"referencedDeclaration": 46430,
|
|
"src": "452:7:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Factory_$46430",
|
|
"typeString": "contract Factory"
|
|
}
|
|
}
|
|
},
|
|
"id": 46101,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"names": [
|
|
"salt"
|
|
],
|
|
"nodeType": "FunctionCallOptions",
|
|
"options": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"hexValue": "31",
|
|
"id": 46098,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "number",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "486:1:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
},
|
|
"value": "1"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_rational_1_by_1",
|
|
"typeString": "int_const 1"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 46096,
|
|
"name": "abi",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -1,
|
|
"src": "475:3:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_magic_abi",
|
|
"typeString": "abi"
|
|
}
|
|
},
|
|
"id": 46097,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"memberLocation": "479:6:48",
|
|
"memberName": "encode",
|
|
"nodeType": "MemberAccess",
|
|
"src": "475:10:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
|
|
"typeString": "function () pure returns (bytes memory)"
|
|
}
|
|
},
|
|
"id": 46099,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "475:13:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_bytes_memory_ptr",
|
|
"typeString": "bytes memory"
|
|
}
|
|
],
|
|
"id": 46095,
|
|
"name": "keccak256",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": -8,
|
|
"src": "465:9:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
|
|
"typeString": "function (bytes memory) pure returns (bytes32)"
|
|
}
|
|
},
|
|
"id": 46100,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "465:24:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_bytes32",
|
|
"typeString": "bytes32"
|
|
}
|
|
}
|
|
],
|
|
"src": "448:42:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Factory_$46430_$salt",
|
|
"typeString": "function () returns (contract Factory)"
|
|
}
|
|
},
|
|
"id": 46102,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "448:44:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Factory_$46430",
|
|
"typeString": "contract Factory"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "429:63:48"
|
|
},
|
|
{
|
|
"assignments": [
|
|
46106
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 46106,
|
|
"mutability": "mutable",
|
|
"name": "query",
|
|
"nameLocation": "527:5:48",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 46170,
|
|
"src": "515:17:48",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_QueryHelper_$48320",
|
|
"typeString": "contract QueryHelper"
|
|
},
|
|
"typeName": {
|
|
"id": 46105,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 46104,
|
|
"name": "QueryHelper",
|
|
"nameLocations": [
|
|
"515:11:48"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 48320,
|
|
"src": "515:11:48"
|
|
},
|
|
"referencedDeclaration": 48320,
|
|
"src": "515:11:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_QueryHelper_$48320",
|
|
"typeString": "contract QueryHelper"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 46111,
|
|
"initialValue": {
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 46109,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "535:15:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_QueryHelper_$48320_$",
|
|
"typeString": "function () returns (contract QueryHelper)"
|
|
},
|
|
"typeName": {
|
|
"id": 46108,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 46107,
|
|
"name": "QueryHelper",
|
|
"nameLocations": [
|
|
"539:11:48"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 48320,
|
|
"src": "539:11:48"
|
|
},
|
|
"referencedDeclaration": 48320,
|
|
"src": "539:11:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_QueryHelper_$48320",
|
|
"typeString": "contract QueryHelper"
|
|
}
|
|
}
|
|
},
|
|
"id": 46110,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "535:17:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_QueryHelper_$48320",
|
|
"typeString": "contract QueryHelper"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "515:37:48"
|
|
},
|
|
{
|
|
"assignments": [
|
|
46114
|
|
],
|
|
"declarations": [
|
|
{
|
|
"constant": false,
|
|
"id": 46114,
|
|
"mutability": "mutable",
|
|
"name": "dexorder",
|
|
"nameLocation": "571:8:48",
|
|
"nodeType": "VariableDeclaration",
|
|
"scope": 46170,
|
|
"src": "562:17:48",
|
|
"stateVariable": false,
|
|
"storageLocation": "default",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Dexorder_$46412",
|
|
"typeString": "contract Dexorder"
|
|
},
|
|
"typeName": {
|
|
"id": 46113,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 46112,
|
|
"name": "Dexorder",
|
|
"nameLocations": [
|
|
"562:8:48"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46412,
|
|
"src": "562:8:48"
|
|
},
|
|
"referencedDeclaration": 46412,
|
|
"src": "562:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Dexorder_$46412",
|
|
"typeString": "contract Dexorder"
|
|
}
|
|
},
|
|
"visibility": "internal"
|
|
}
|
|
],
|
|
"id": 46119,
|
|
"initialValue": {
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"id": 46117,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"nodeType": "NewExpression",
|
|
"src": "582:12:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Dexorder_$46412_$",
|
|
"typeString": "function () returns (contract Dexorder)"
|
|
},
|
|
"typeName": {
|
|
"id": 46116,
|
|
"nodeType": "UserDefinedTypeName",
|
|
"pathNode": {
|
|
"id": 46115,
|
|
"name": "Dexorder",
|
|
"nameLocations": [
|
|
"586:8:48"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 46412,
|
|
"src": "586:8:48"
|
|
},
|
|
"referencedDeclaration": 46412,
|
|
"src": "586:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Dexorder_$46412",
|
|
"typeString": "contract Dexorder"
|
|
}
|
|
}
|
|
},
|
|
"id": 46118,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "582:14:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Dexorder_$46412",
|
|
"typeString": "contract Dexorder"
|
|
}
|
|
},
|
|
"nodeType": "VariableDeclarationStatement",
|
|
"src": "562:34:48"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [],
|
|
"expression": {
|
|
"argumentTypes": [],
|
|
"expression": {
|
|
"id": 46120,
|
|
"name": "vm",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 2350,
|
|
"src": "606:2:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Vm_$13464",
|
|
"typeString": "contract Vm"
|
|
}
|
|
},
|
|
"id": 46122,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "609:13:48",
|
|
"memberName": "stopBroadcast",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 12380,
|
|
"src": "606:16:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
|
|
"typeString": "function () external"
|
|
}
|
|
},
|
|
"id": 46123,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "606:18:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 46124,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "606:18:48"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "466163746f7279",
|
|
"id": 46128,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "647:9:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_992f90ffb92c5ad86f1df6829115f18aaea41d6094dadc8955c35086081a7bb9",
|
|
"typeString": "literal_string \"Factory\""
|
|
},
|
|
"value": "Factory"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_992f90ffb92c5ad86f1df6829115f18aaea41d6094dadc8955c35086081a7bb9",
|
|
"typeString": "literal_string \"Factory\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 46125,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "634:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 46127,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "643:3:48",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22167,
|
|
"src": "634:12:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (string memory) pure"
|
|
}
|
|
},
|
|
"id": 46129,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "634:23:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 46130,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "634:23:48"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 46136,
|
|
"name": "deployer",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46091,
|
|
"src": "688:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Factory_$46430",
|
|
"typeString": "contract Factory"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_Factory_$46430",
|
|
"typeString": "contract Factory"
|
|
}
|
|
],
|
|
"id": 46135,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "680:7:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 46134,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "680:7:48",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 46137,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "680:17:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 46131,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "667:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 46133,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "676:3:48",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22195,
|
|
"src": "667:12:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$",
|
|
"typeString": "function (address) pure"
|
|
}
|
|
},
|
|
"id": 46138,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "667:31:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 46139,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "667:31:48"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "517565727948656c706572",
|
|
"id": 46143,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "721:13:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_19b5fa8de125acec9f37cc88d70ca7b93304b147c8bfed5fec748d928ee66d86",
|
|
"typeString": "literal_string \"QueryHelper\""
|
|
},
|
|
"value": "QueryHelper"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_19b5fa8de125acec9f37cc88d70ca7b93304b147c8bfed5fec748d928ee66d86",
|
|
"typeString": "literal_string \"QueryHelper\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 46140,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "708:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 46142,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "717:3:48",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22167,
|
|
"src": "708:12:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (string memory) pure"
|
|
}
|
|
},
|
|
"id": 46144,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "708:27:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 46145,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "708:27:48"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 46151,
|
|
"name": "query",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46106,
|
|
"src": "766:5:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_QueryHelper_$48320",
|
|
"typeString": "contract QueryHelper"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_QueryHelper_$48320",
|
|
"typeString": "contract QueryHelper"
|
|
}
|
|
],
|
|
"id": 46150,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "758:7:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 46149,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "758:7:48",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 46152,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "758:14:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 46146,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "745:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 46148,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "754:3:48",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22195,
|
|
"src": "745:12:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$",
|
|
"typeString": "function (address) pure"
|
|
}
|
|
},
|
|
"id": 46153,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "745:28:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 46154,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "745:28:48"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"hexValue": "4465786f72646572",
|
|
"id": 46158,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"kind": "string",
|
|
"lValueRequested": false,
|
|
"nodeType": "Literal",
|
|
"src": "796:10:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_stringliteral_9f0825bcb87a64b01ce39a27ad6be140f26dc79ffe32cb93fa14c0e79e37394e",
|
|
"typeString": "literal_string \"Dexorder\""
|
|
},
|
|
"value": "Dexorder"
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_stringliteral_9f0825bcb87a64b01ce39a27ad6be140f26dc79ffe32cb93fa14c0e79e37394e",
|
|
"typeString": "literal_string \"Dexorder\""
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 46155,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "783:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 46157,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "792:3:48",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22167,
|
|
"src": "783:12:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
|
|
"typeString": "function (string memory) pure"
|
|
}
|
|
},
|
|
"id": 46159,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "783:24:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 46160,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "783:24:48"
|
|
},
|
|
{
|
|
"expression": {
|
|
"arguments": [
|
|
{
|
|
"arguments": [
|
|
{
|
|
"id": 46166,
|
|
"name": "dexorder",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 46114,
|
|
"src": "838:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_contract$_Dexorder_$46412",
|
|
"typeString": "contract Dexorder"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_contract$_Dexorder_$46412",
|
|
"typeString": "contract Dexorder"
|
|
}
|
|
],
|
|
"id": 46165,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": true,
|
|
"lValueRequested": false,
|
|
"nodeType": "ElementaryTypeNameExpression",
|
|
"src": "830:7:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_address_$",
|
|
"typeString": "type(address)"
|
|
},
|
|
"typeName": {
|
|
"id": 46164,
|
|
"name": "address",
|
|
"nodeType": "ElementaryTypeName",
|
|
"src": "830:7:48",
|
|
"typeDescriptions": {}
|
|
}
|
|
},
|
|
"id": 46167,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "typeConversion",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "830:17:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
}
|
|
],
|
|
"expression": {
|
|
"argumentTypes": [
|
|
{
|
|
"typeIdentifier": "t_address",
|
|
"typeString": "address"
|
|
}
|
|
],
|
|
"expression": {
|
|
"id": 46161,
|
|
"name": "console2",
|
|
"nodeType": "Identifier",
|
|
"overloadedDeclarations": [],
|
|
"referencedDeclaration": 29653,
|
|
"src": "817:8:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
|
|
"typeString": "type(library console2)"
|
|
}
|
|
},
|
|
"id": 46163,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"lValueRequested": false,
|
|
"memberLocation": "826:3:48",
|
|
"memberName": "log",
|
|
"nodeType": "MemberAccess",
|
|
"referencedDeclaration": 22195,
|
|
"src": "817:12:48",
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$__$",
|
|
"typeString": "function (address) pure"
|
|
}
|
|
},
|
|
"id": 46168,
|
|
"isConstant": false,
|
|
"isLValue": false,
|
|
"isPure": false,
|
|
"kind": "functionCall",
|
|
"lValueRequested": false,
|
|
"nameLocations": [],
|
|
"names": [],
|
|
"nodeType": "FunctionCall",
|
|
"src": "817:31:48",
|
|
"tryCall": false,
|
|
"typeDescriptions": {
|
|
"typeIdentifier": "t_tuple$__$",
|
|
"typeString": "tuple()"
|
|
}
|
|
},
|
|
"id": 46169,
|
|
"nodeType": "ExpressionStatement",
|
|
"src": "817:31:48"
|
|
}
|
|
]
|
|
},
|
|
"functionSelector": "c0406226",
|
|
"implemented": true,
|
|
"kind": "function",
|
|
"modifiers": [],
|
|
"name": "run",
|
|
"nameLocation": "293:3:48",
|
|
"parameters": {
|
|
"id": 46074,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "296:2:48"
|
|
},
|
|
"returnParameters": {
|
|
"id": 46075,
|
|
"nodeType": "ParameterList",
|
|
"parameters": [],
|
|
"src": "308:0:48"
|
|
},
|
|
"scope": 46172,
|
|
"stateMutability": "nonpayable",
|
|
"virtual": false,
|
|
"visibility": "external"
|
|
}
|
|
],
|
|
"abstract": false,
|
|
"baseContracts": [
|
|
{
|
|
"baseName": {
|
|
"id": 46072,
|
|
"name": "Script",
|
|
"nameLocations": [
|
|
"271:6:48"
|
|
],
|
|
"nodeType": "IdentifierPath",
|
|
"referencedDeclaration": 2405,
|
|
"src": "271:6:48"
|
|
},
|
|
"id": 46073,
|
|
"nodeType": "InheritanceSpecifier",
|
|
"src": "271:6:48"
|
|
}
|
|
],
|
|
"canonicalName": "Deploy",
|
|
"contractDependencies": [
|
|
46412,
|
|
46430,
|
|
48320
|
|
],
|
|
"contractKind": "contract",
|
|
"fullyImplemented": true,
|
|
"internalFunctionIDs": {
|
|
"21582": 1
|
|
},
|
|
"linearizedBaseContracts": [
|
|
46172,
|
|
2405,
|
|
2366,
|
|
2354,
|
|
11886,
|
|
6570,
|
|
4516
|
|
],
|
|
"name": "Deploy",
|
|
"nameLocation": "261:6:48",
|
|
"scope": 46173,
|
|
"usedErrors": [],
|
|
"usedEvents": []
|
|
}
|
|
],
|
|
"license": "UNLICENSED"
|
|
},
|
|
"id": 48
|
|
} |