@keep-network/tbtc-v2 0.1.1-dev.16 → 0.1.1-dev.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/TBTC.json +3 -3
- package/artifacts/TBTCToken.json +3 -3
- package/artifacts/VendingMachine.json +10 -10
- package/artifacts/solcInputs/{3d68045732e072924745a5b701f4ad2a.json → 7ba168d4ff7e401eb795fb23fc07b02f.json} +2 -2
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.json +3 -3
- package/build/contracts/bridge/Bridge.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/bridge/Bridge.sol +20 -9
- package/package.json +1 -1
|
@@ -379,7 +379,7 @@
|
|
|
379
379
|
},
|
|
380
380
|
{
|
|
381
381
|
"inputs": [],
|
|
382
|
-
"name": "
|
|
382
|
+
"name": "redemptionTreasuryFeeDivisor",
|
|
383
383
|
"outputs": [
|
|
384
384
|
{
|
|
385
385
|
"internalType": "uint64",
|
|
@@ -829,8 +829,8 @@
|
|
|
829
829
|
"type": "function"
|
|
830
830
|
}
|
|
831
831
|
],
|
|
832
|
-
"bytecode": "0x6101006040523480156200001257600080fd5b50604051620052da380380620052da83398101604081905262000035916200021c565b6200004033620001af565b6001600160a01b0384166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660a0528316620000fa5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160a01b0380841660c0528216620001585760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b6001600160a01b039190911660e052608052505060008054600160a01b600160e01b031916613d0960a61b179055600180546001600160801b0319166903e800000000000186a01790556202a3006002556200026e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021757600080fd5b919050565b600080600080608085870312156200023357600080fd5b6200023e85620001ff565b93506200024e60208601620001ff565b92506200025e60408601620001ff565b6060959095015193969295505050565b60805160a05160c05160e051614ffa620002e06000396000818161030f01526113c70152600081816104950152818161379f01526138340152600081816103560152818161087b0152818161132e015281816113ff0152611b5f0152600081816102ad0152613a960152614ffa6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063bdf9fca91161008c578063e65e19d511610066578063e65e19d514610517578063f2fde38b14610558578063f3cc53481461056b57600080fd5b8063bdf9fca9146104b7578063d6eccdf0146104d1578063e53c0b55146104e457600080fd5b8063b02c43d0116100bd578063b02c43d0146103db578063b34b32161461047d578063b59589d11461049057600080fd5b80638da5cb5b14610398578063a588f059146103a957600080fd5b80635c0b48121161013a578063715018a611610114578063715018a61461034957806376cdb03b1461035157806383a434281461037857600080fd5b80635c0b4812146102e457806360d712fc146102f757806361d027b31461030a57600080fd5b80631fff4e701161016b5780631fff4e70146102915780632bb818c2146102a857806359a9d90a146102cf57600080fd5b806303d952f7146101875780630b6ba19d14610232575b600080fd5b6101e6610195366004614445565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6101e6610240366004614445565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61029a60025481565b604051908152602001610229565b61029a7f000000000000000000000000000000000000000000000000000000000000000081565b6102e26102dd366004614488565b61057e565b005b6102e26102f23660046144f3565b6108f3565b6102e2610305366004614569565b610f12565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610229565b6102e2610fcb565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b61029a6103863660046145bd565b60056020526000908152604090205481565b6000546001600160a01b0316610331565b6001546103c390600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610229565b6104396103e9366004614445565b600460205260009081526040902080546001909101546001600160a01b0380831692600160a01b8082046001600160401b031693600160e01b90920463ffffffff90811693831692919091041685565b604080516001600160a01b0396871681526001600160401b03909516602086015263ffffffff9384169085015293166060830152909116608082015260a001610229565b6102e261048b3660046145d8565b611031565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6000546103c390600160a01b90046001600160401b031681565b6102e26104df366004614674565b611466565b6105076104f2366004614719565b60036020526000908152604090205460ff1681565b6040519015158152602001610229565b61054a6105253660046145bd565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161022992919061474a565b6102e2610566366004614719565b611bcf565b6001546103c3906001600160401b031681565b600061058a8484611cb1565b90506000806105d961059f6040880188614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e2b92505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156106f35780863561062c6040890160208a016147de565b61063c60608a0160408b016147f9565b6040516020016106799392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146106e15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6106f03687900387018761482a565b91505b6000808061074361070760208d018d614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611f5e915050565b91945092509050600061075f6001600160401b038816856148b2565b9050600082518261077091906148df565b905060005b83518110156107ba5781848281518110610791576107916148f3565b602002602001018181516107a591906148b2565b905250806107b281614909565b915050610775565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198d1660008181526005845284902091909155835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a16040517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063266a123a906108b29087908790600401614924565b600060405180830381600087803b1580156108cc57600080fd5b505af11580156108e0573d6000803e3d6000fd5b5050505050505050505050505050505050565b600061090560e0830160c08401614719565b6001600160a01b0316148061094757506003600061092960e0840160c08501614719565b6001600160a01b0316815260208101919091526040016000205460ff165b6109935760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016106d8565b60006109a56040830160208401614719565b6109b560608401604085016149a8565b6109c560808501606086016145bd565b6109d560a08601608087016145bd565b6109e560c0870160a088016149d2565b6040516020016109f99594939291906149fc565b60408051601f1981840301815291905290506000610a6d610a1d60208501856147de565b63ffffffff16610a306040870187614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506124109050565b90506000610a7a826125db565b9050805160141415610b0057610a8f83612881565b6001600160601b031916610aa48260006128a8565b6001600160601b03191614610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016106d8565b610bf8565b805160201415610bb057600283604051610b1a9190614cac565b602060405180830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b5a9190614cb8565b610b63826128be565b14610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016106d8565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016106d8565b6000610c5d610c0a60208801886149d2565b610c176020890189614784565b610c2460408b018b614784565b610c3460808d0160608e016149d2565b604051602001610c4996959493929190614cd1565b6040516020818303038152906040526128da565b9050600060048183610c7260208a018a6147de565b604051602001610c9992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610d1d5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016106d8565b6000610d2885612901565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610d716040880160208901614719565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610dc060e0880160c08901614719565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583610e1e60208a018a6147de565b610e2e60408b0160208c01614719565b84610e3f60608d0160408e016149a8565b610e4f60808e0160608f016145bd565b8d6080016020810190610e6291906145bd565b8e60a0016020810190610e7591906149d2565b8f60c0016020810190610e889190614719565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b03163314610f6c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146110255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b61102f6000612977565b565b600061103d8585611cb1565b905061108d61104f6020870187614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792508691506129d49050565b6001600160601b0319821660009081526008602052604090205460ff1660018160048111156110be576110be614734565b14806110db575060028160048111156110d9576110d9614734565b145b61114d5760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016106d8565b600061119b61115f6040890189614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612bd9915050565b60608101519091506001600160401b03161561122e5782816040015182606001516040516020016111f99392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526005909352912055611249565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061128290849061010090046001600160401b0316614d13565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516112ec9291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561149657611496614734565b146114e35760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016106d8565b6001600160601b03198516600090815260056020526040902054806115705760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b80853561158360408801602089016147de565b6115936060890160408a016147f9565b6040516020016115d09392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146116335760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b6000611665600060c01b868660405160200161165193929190614d3b565b6040516020818303038152906040526125db565b905060008151116116de5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016106d8565b80805190602001208760405160200161170791906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156117915760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016106d8565b6000546001600160401b03600160a01b909104811690841610156117f75760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016106d8565b600087868660405160200161180e93929190614d5f565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156118df5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016106d8565b6001546001600160401b0380821691600160401b9004166119008287614d13565b6001600160601b03198b166000908152600860205260409020805460019061193790849061010090046001600160401b0316614d83565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d16600090815260086020526040908190205491909104909116915061198d9060608c01908c016147f9565b6001600160401b031610156119e45760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016106d8565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611b14918d918c918c91908c9089908990614dae565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611bab57600080fd5b505af1158015611bbf573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611c295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038116611ca55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d8565b611cae81612977565b50565b6000611cfd611cc36020850185614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131fa92505050565b611d495760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016106d8565b611d93611d596040850185614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132aa92505050565b611ddf5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016106d8565b611e19611def60208501856149d2565b611dfc6020860186614784565b611e096040880188614784565b610c3460808a0160608b016149d2565b9050611e25818361334d565b92915050565b6000806000611e39846134a6565b91505080600114611eb25760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016106d8565b6000611ebe8582612410565b9050611ec981612901565b92506000611ed6826125db565b90508051601414611f4f5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016106d8565b60208101519450505050915091565b805160009060609081901515838080611f76896134a6565b90925090506000611f88836001614e25565b90508415611fa057611f9b6001836148b2565b611fa2565b815b6001600160401b03811115611fb957611fb9614814565b604051908082528060200260200182016040528015611fe2578160200160208202803683370190505b50965086516001600160401b03811115611ffe57611ffe614814565b604051908082528060200260200182016040528015612027578160200160208202803683370190505b5095506000805b838110156123135760008060006120458f876134bd565b925092509250600060046000858560405160200161207a92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff161561226c576001810154600160a01b900463ffffffff16156121155760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016106d8565b8c5186141561218c5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b6001810180547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b4263ffffffff160217905580548d516001600160a01b03909116908e90889081106121e6576121e66148f3565b6001600160a01b03929092166020928302919091019091015280548c51600160a01b9091046001600160401b0316908d9088908110612227576122276148f3565b6020026020010181815250508b8681518110612245576122456148f3565b60200260200101518e6122589190614e25565b9d508561226481614909565b9650506122f0565b8915158b15151415801561228057508e5184145b156122a85760408f015161229d906001600160401b03168f614e25565b9d50600199506122f0565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016106d8565b6122fa8288614e25565b965050505050808061230b90614909565b91505061202e565b506000811161238a5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016106d8565b841515861515146124035760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b5050505050509250925092565b606060008061241e856134a6565b90925090506000198214156124805760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b8084106124cf5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016106d8565b6000806124dd846001614e25565b905060005b86811015612566576124f48883613515565b92506000198314156125485760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125528383614e25565b91508061255e81614909565b9150506124e2565b506125718782613515565b91506000198214156125c55760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125d0878284613584565b979650505050505050565b60606000826008815181106125f2576125f26148f3565b0160200151835160f89190911c915061260c826009614e3d565b60ff161461262a575050604080516020810190915260008152919050565b8260098151811061263d5761263d6148f3565b016020015160f81c6126e35760028160ff16101561266b575050604080516020810190915260008152919050565b600083600a81518110612680576126806148f3565b016020015160f81c9050612695600283614e62565b60ff16811415806126b35750806020141580156126b3575080601414155b156126cf57505060408051602081019091526000815292915050565b6126db84600b83613584565b949350505050565b60006126f08460086128a8565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156127cd5783600b8151811061274f5761274f6148f3565b60209101015160f81c60141415806127a4575061277a6002855161277391906148b2565b85906128a8565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b156127c057505060408051602081019091526000815292915050565b6126db84600c6014613584565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561286a57836001855161282691906148b2565b81518110612836576128366148f3565b60209101015160f81c60871461285d57505060408051602081019091526000815292915050565b6126db84600b6014613584565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006128b78383016020015190565b9392505050565b60008151600014156128d257506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60008061290d8361364e565b60c01c905060006126db8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612a3b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016106d8565b808335612a4e60408601602087016147de565b612a5e60608701604088016147f9565b604051602001612a9b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612afe5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600080612b0a8661365a565b9092509050843582148015612b39575063ffffffff8116612b3160408701602088016147de565b63ffffffff16145b612bd15760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016106d8565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612c07856134a6565b90925090506000612c19836001614e25565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b85811015613177576000612cdb8b87613515565b90506000612cea8c8884613584565b90506000612cf782612901565b90506000612d156008808551612d0d91906148b2565b859190613584565b90508b606001516001600160401b03166000148015612d48575080516020820120881480612d4857508051602082012087145b8015612d5d57506000826001600160401b0316115b15612d825763ffffffff851660408d01526001600160401b03821660608d0152613154565b60008d82604051602001612d97929190614e85565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615612fa157600081815260066020526040812060018101548154919291612e09916001600160401b0390811691600160a01b900416614d13565b60018301549091506001600160401b0380871691612e3091600160401b9091041683614d13565b6001600160401b031611158015612e595750806001600160401b0316856001600160401b031611155b612ef15760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016106d8565b808f600001818151612f039190614d83565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151612f479190614d83565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff1916905588612f9781614909565b9950505050613152565b60008181526007602052604090206001810154600160801b900463ffffffff166130325760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016106d8565b6001810154815460009161305a916001600160401b0391821691600160a01b90910416614d13565b60018301549091506001600160401b038087169161308191600160401b9091041683614d13565b6001600160401b0316111580156130aa5750806001600160401b0316856001600160401b031611155b6131425760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016106d8565b8861314c81614909565b99505050505b505b61315e848a614e25565b985050505050808061316f90614909565b915050612cc7565b50600081116131ee5760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016106d8565b50505050505092915050565b6000806000613208846134a6565b909250905080158061321b575060001982145b1561322a575060009392505050565b6000613237836001614e25565b905060005b8281101561329d57855182106132585750600095945050505050565b6000613264878461370f565b905060001981141561327d575060009695505050505050565b6132878184614e25565b925050808061329590614909565b91505061323c565b5093519093149392505050565b60008060006132b8846134a6565b90925090508015806132cb575060001982145b156132da575060009392505050565b60006132e7836001614e25565b905060005b8281101561329d57855182106133085750600095945050505050565b60006133148784613515565b905060001981141561332d575060009695505050505050565b6133378184614e25565b925050808061334590614909565b9150506132ec565b6133e661339a6133606040840184614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375a92505050565b6133a48380614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613767565b6134585760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016106d8565b6134a26134686040830183614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061379a92505050565b5050565b6000806134b4836000613b30565b91509150915091565b600080806134cb85856128a8565b92506135006134da8686613cac565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b915061350c858561370f565b90509250925092565b6000613522826009614e25565b835110156135335750600019611e25565b60008061354a85613545866008614e25565b613b30565b90925090506000198214156135655760001992505050611e25565b80613571836009614e25565b61357b9190614e25565b95945050505050565b6060816135a057506040805160208101909152600081526128b7565b60006135ac8385614e25565b905083811180156135be575080855110155b61360a5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b604051915082604083010160405282825283850182038460208701018481015b808210156136435781518383015260208201915061362a565b505050509392505050565b6000611e2582826128a8565b6000806000613668846134a6565b915050806001146136e15760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016106d8565b60006136ed8582613cc3565b90506136f881613e78565b93506137066134da82613e85565b92505050915091565b600080600061371e8585613e92565b90925090506000198214156137395760001992505050611e25565b80613745836025614e25565b61374f9190614e25565b61357b906004614e25565b6044810151600090611e25565b60008385148015613776575081155b801561378157508251155b1561378e575060016126db565b61357b85848685613ed4565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156137f657600080fd5b505afa15801561380a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382e9190614cb8565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561388b57600080fd5b505afa15801561389f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c39190614cb8565b905060006138d86138d386613f7c565b614011565b9050828114156138ea57829350613968565b818114156138fa57819350613968565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016106d8565b600061397386614039565b90506000198114156139ed5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b600119811415613a3f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016106d8565b600219811415613a915760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016106d8565b613abb7f000000000000000000000000000000000000000000000000000000000000000086614ea1565b811015612bd15760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016106d8565b6000806000613b3f8585614240565b905060ff8116613b71576000858581518110613b5d57613b5d6148f3565b016020015190935060f81c9150613ca59050565b83613b7d826001614e3d565b60ff16613b8a9190614e25565b85511015613ba15760001960009250925050613ca5565b60008160ff1660021415613be657613bdb613bc7613bc0876001614e25565b88906128a8565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613c9b565b8160ff1660041415613c1057613c036134da613bc0876001614e25565b63ffffffff169050613c9b565b8160ff1660081415613c9b57613c8f613c2d613bc0876001614e25565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b60006128b7613cbc836020614e25565b84906128a8565b6060600080613cd1856134a6565b9092509050600019821415613d335760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b808410613d825760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016106d8565b600080613d90846001614e25565b905060005b86811015613e1957613da7888361370f565b9250600019831415613dfb5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b613e058383614e25565b915080613e1181614909565b915050613d95565b50613e24878261370f565b91506000198214156125c55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b6020810151600090611e25565b6000611e258260206128a8565b600080613ea0836025614e25565b84511015613eb5575060001990506000613ca5565b600080613ec786613545876024614e25565b9097909650945050505050565b600060208451613ee49190614ec0565b15613ef1575060006126db565b8351613eff575060006126db565b818560005b8651811015613f6f57613f18600284614ec0565b60011415613f3d57613f36613f308883016020015190565b836142cc565b9150613f56565b613f5382613f4e8984016020015190565b6142cc565b91505b60019290921c91613f68602082614e25565b9050613f04565b5090931495945050505050565b600080613f8a8360486128a8565b60e81c9050600083604b81518110613fa457613fa46148f3565b016020015160f81c90506000613fd883600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000613fec600384614e62565b60ff169050613ffd81610100614fb8565b6140079083614ea1565b9695505050505050565b6000611e257bffff0000000000000000000000000000000000000000000000000000836142d8565b6000605082516140499190614ec0565b156140575750600019919050565b506040805160808101909152605081526000908190815b8451811015614238576140828583836142e4565b80156140a2576140928284614383565b6140a25750600119949350505050565b60006140ad83613f7c565b90506140b8836128da565b9350806141fc8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b111561420f575060021995945050505050565b61422261421b82614011565b86906143ac565b94506142319050605082614e25565b905061406e565b505050919050565b6000828281518110614254576142546148f3565b60209101015160f81c60ff141561426d57506008611e25565b82828151811061427f5761427f6148f3565b60209101015160f81c60fe141561429857506004611e25565b8282815181106142aa576142aa6148f3565b60209101015160f81c60fd14156142c357506002611e25565b50600092915050565b60006128b7838361440a565b60006128b782846148df565b815160006142f28284614e25565b90508281118015614304575080855110155b6143505760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b826020860101602085018382015b8083101561437957825182526020928301929091019061435e565b5050505050505050565b60008061438f84614438565b90508281146143a2576000915050611e25565b5060019392505050565b60006143b88284614e25565b905082811015611e255760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016106d8565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611e25565b60006020828403121561445757600080fd5b5035919050565b60006080828403121561447057600080fd5b50919050565b60006060828403121561447057600080fd5b600080600060a0848603121561449d57600080fd5b83356001600160401b03808211156144b457600080fd5b6144c08783880161445e565b945060208601359150808211156144d657600080fd5b506144e386828701614476565b92505061350c8560408601614476565b60008082840361010081121561450857600080fd5b83356001600160401b0381111561451e57600080fd5b61452a8682870161445e565b93505060e0601f198201121561453f57600080fd5b506020830190509250929050565b80356001600160a01b038116811461456457600080fd5b919050565b6000806040838503121561457c57600080fd5b6145858361454d565b91506020830135801515811461459a57600080fd5b809150509250929050565b80356001600160601b03198116811461456457600080fd5b6000602082840312156145cf57600080fd5b6128b7826145a5565b60008060008060c085870312156145ee57600080fd5b84356001600160401b038082111561460557600080fd5b6146118883890161445e565b9550602087013591508082111561462757600080fd5b5061463487828801614476565b9350506146448660408701614476565b915061465260a086016145a5565b905092959194509250565b80356001600160401b038116811461456457600080fd5b600080600080600060c0868803121561468c57600080fd5b614695866145a5565b94506146a48760208801614476565b935060808601356001600160401b03808211156146c057600080fd5b818801915088601f8301126146d457600080fd5b8135818111156146e357600080fd5b8960208285010111156146f557600080fd5b60208301955080945050505061470d60a0870161465d565b90509295509295909350565b60006020828403121561472b57600080fd5b6128b78261454d565b634e487b7160e01b600052602160045260246000fd5b604081016005841061476c57634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e1984360301811261479b57600080fd5b8301803591506001600160401b038211156147b557600080fd5b602001915036819003821315613ca557600080fd5b803563ffffffff8116811461456457600080fd5b6000602082840312156147f057600080fd5b6128b7826147ca565b60006020828403121561480b57600080fd5b6128b78261465d565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561483c57600080fd5b604051606081018181106001600160401b038211171561486c57634e487b7160e01b600052604160045260246000fd5b6040528235815261487f602084016147ca565b60208201526148906040840161465d565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156148c4576148c461489c565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826148ee576148ee6148c9565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561491d5761491d61489c565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156149665781516001600160a01b031684529284019290840190600101614941565b5050508381038285015284518082528583019183019060005b8181101561499b5783518352928401929184019160010161497f565b5090979650505050505050565b6000602082840312156149ba57600080fd5b81356001600160c01b0319811681146128b757600080fd5b6000602082840312156149e457600080fd5b81356001600160e01b0319811681146128b757600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614ad0614ac3614a9a602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614b8f614ac3614a9a614a71614b66601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614c65614c3c60068301614b3d565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614c925760208185018101518683015201614c78565b81811115614ca1576000828601525b509290920192915050565b60006128b78284614c71565b600060208284031215614cca57600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60006001600160401b0383811690831681811015614d3357614d3361489c565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b03808316818516808303821115614da557614da561489c565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b60008219821115614e3857614e3861489c565b500190565b600060ff821660ff84168060ff03821115614e5a57614e5a61489c565b019392505050565b600060ff821660ff841680821015614e7c57614e7c61489c565b90039392505050565b6001600160601b03198316815260006126db6014830184614c71565b6000816000190483118215151615614ebb57614ebb61489c565b500290565b600082614ecf57614ecf6148c9565b500690565b600181815b80851115614f0f578160001904821115614ef557614ef561489c565b80851615614f0257918102915b93841c9390800290614ed9565b509250929050565b600082614f2657506001611e25565b81614f3357506000611e25565b8160018114614f495760028114614f5357614f6f565b6001915050611e25565b60ff841115614f6457614f6461489c565b50506001821b611e25565b5060208310610133831016604e8410600b8410161715614f92575081810a611e25565b614f9c8383614ed4565b8060001904821115614fb057614fb061489c565b029392505050565b60006128b78383614f1756fea2646970667358221220fbeb226bb6c3042ac1dff331dba4a7e03ab2989029a5ecf8abe0dbdb1bc5aef164736f6c63430008090033",
|
|
833
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063bdf9fca91161008c578063e65e19d511610066578063e65e19d514610517578063f2fde38b14610558578063f3cc53481461056b57600080fd5b8063bdf9fca9146104b7578063d6eccdf0146104d1578063e53c0b55146104e457600080fd5b8063b02c43d0116100bd578063b02c43d0146103db578063b34b32161461047d578063b59589d11461049057600080fd5b80638da5cb5b14610398578063a588f059146103a957600080fd5b80635c0b48121161013a578063715018a611610114578063715018a61461034957806376cdb03b1461035157806383a434281461037857600080fd5b80635c0b4812146102e457806360d712fc146102f757806361d027b31461030a57600080fd5b80631fff4e701161016b5780631fff4e70146102915780632bb818c2146102a857806359a9d90a146102cf57600080fd5b806303d952f7146101875780630b6ba19d14610232575b600080fd5b6101e6610195366004614445565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6101e6610240366004614445565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61029a60025481565b604051908152602001610229565b61029a7f000000000000000000000000000000000000000000000000000000000000000081565b6102e26102dd366004614488565b61057e565b005b6102e26102f23660046144f3565b6108f3565b6102e2610305366004614569565b610f12565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610229565b6102e2610fcb565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b61029a6103863660046145bd565b60056020526000908152604090205481565b6000546001600160a01b0316610331565b6001546103c390600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610229565b6104396103e9366004614445565b600460205260009081526040902080546001909101546001600160a01b0380831692600160a01b8082046001600160401b031693600160e01b90920463ffffffff90811693831692919091041685565b604080516001600160a01b0396871681526001600160401b03909516602086015263ffffffff9384169085015293166060830152909116608082015260a001610229565b6102e261048b3660046145d8565b611031565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6000546103c390600160a01b90046001600160401b031681565b6102e26104df366004614674565b611466565b6105076104f2366004614719565b60036020526000908152604090205460ff1681565b6040519015158152602001610229565b61054a6105253660046145bd565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161022992919061474a565b6102e2610566366004614719565b611bcf565b6001546103c3906001600160401b031681565b600061058a8484611cb1565b90506000806105d961059f6040880188614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e2b92505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156106f35780863561062c6040890160208a016147de565b61063c60608a0160408b016147f9565b6040516020016106799392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146106e15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6106f03687900387018761482a565b91505b6000808061074361070760208d018d614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611f5e915050565b91945092509050600061075f6001600160401b038816856148b2565b9050600082518261077091906148df565b905060005b83518110156107ba5781848281518110610791576107916148f3565b602002602001018181516107a591906148b2565b905250806107b281614909565b915050610775565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198d1660008181526005845284902091909155835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a16040517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063266a123a906108b29087908790600401614924565b600060405180830381600087803b1580156108cc57600080fd5b505af11580156108e0573d6000803e3d6000fd5b5050505050505050505050505050505050565b600061090560e0830160c08401614719565b6001600160a01b0316148061094757506003600061092960e0840160c08501614719565b6001600160a01b0316815260208101919091526040016000205460ff165b6109935760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016106d8565b60006109a56040830160208401614719565b6109b560608401604085016149a8565b6109c560808501606086016145bd565b6109d560a08601608087016145bd565b6109e560c0870160a088016149d2565b6040516020016109f99594939291906149fc565b60408051601f1981840301815291905290506000610a6d610a1d60208501856147de565b63ffffffff16610a306040870187614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506124109050565b90506000610a7a826125db565b9050805160141415610b0057610a8f83612881565b6001600160601b031916610aa48260006128a8565b6001600160601b03191614610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016106d8565b610bf8565b805160201415610bb057600283604051610b1a9190614cac565b602060405180830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b5a9190614cb8565b610b63826128be565b14610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016106d8565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016106d8565b6000610c5d610c0a60208801886149d2565b610c176020890189614784565b610c2460408b018b614784565b610c3460808d0160608e016149d2565b604051602001610c4996959493929190614cd1565b6040516020818303038152906040526128da565b9050600060048183610c7260208a018a6147de565b604051602001610c9992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610d1d5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016106d8565b6000610d2885612901565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610d716040880160208901614719565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610dc060e0880160c08901614719565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583610e1e60208a018a6147de565b610e2e60408b0160208c01614719565b84610e3f60608d0160408e016149a8565b610e4f60808e0160608f016145bd565b8d6080016020810190610e6291906145bd565b8e60a0016020810190610e7591906149d2565b8f60c0016020810190610e889190614719565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b03163314610f6c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146110255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b61102f6000612977565b565b600061103d8585611cb1565b905061108d61104f6020870187614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792508691506129d49050565b6001600160601b0319821660009081526008602052604090205460ff1660018160048111156110be576110be614734565b14806110db575060028160048111156110d9576110d9614734565b145b61114d5760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016106d8565b600061119b61115f6040890189614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612bd9915050565b60608101519091506001600160401b03161561122e5782816040015182606001516040516020016111f99392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526005909352912055611249565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061128290849061010090046001600160401b0316614d13565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516112ec9291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561149657611496614734565b146114e35760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016106d8565b6001600160601b03198516600090815260056020526040902054806115705760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b80853561158360408801602089016147de565b6115936060890160408a016147f9565b6040516020016115d09392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146116335760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b6000611665600060c01b868660405160200161165193929190614d3b565b6040516020818303038152906040526125db565b905060008151116116de5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016106d8565b80805190602001208760405160200161170791906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156117915760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016106d8565b6000546001600160401b03600160a01b909104811690841610156117f75760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016106d8565b600087868660405160200161180e93929190614d5f565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156118df5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016106d8565b6001546001600160401b0380821691600160401b9004166119008287614d13565b6001600160601b03198b166000908152600860205260409020805460019061193790849061010090046001600160401b0316614d83565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d16600090815260086020526040908190205491909104909116915061198d9060608c01908c016147f9565b6001600160401b031610156119e45760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016106d8565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611b14918d918c918c91908c9089908990614dae565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611bab57600080fd5b505af1158015611bbf573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611c295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038116611ca55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d8565b611cae81612977565b50565b6000611cfd611cc36020850185614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131fa92505050565b611d495760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016106d8565b611d93611d596040850185614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132aa92505050565b611ddf5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016106d8565b611e19611def60208501856149d2565b611dfc6020860186614784565b611e096040880188614784565b610c3460808a0160608b016149d2565b9050611e25818361334d565b92915050565b6000806000611e39846134a6565b91505080600114611eb25760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016106d8565b6000611ebe8582612410565b9050611ec981612901565b92506000611ed6826125db565b90508051601414611f4f5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016106d8565b60208101519450505050915091565b805160009060609081901515838080611f76896134a6565b90925090506000611f88836001614e25565b90508415611fa057611f9b6001836148b2565b611fa2565b815b6001600160401b03811115611fb957611fb9614814565b604051908082528060200260200182016040528015611fe2578160200160208202803683370190505b50965086516001600160401b03811115611ffe57611ffe614814565b604051908082528060200260200182016040528015612027578160200160208202803683370190505b5095506000805b838110156123135760008060006120458f876134bd565b925092509250600060046000858560405160200161207a92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff161561226c576001810154600160a01b900463ffffffff16156121155760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016106d8565b8c5186141561218c5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b6001810180547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b4263ffffffff160217905580548d516001600160a01b03909116908e90889081106121e6576121e66148f3565b6001600160a01b03929092166020928302919091019091015280548c51600160a01b9091046001600160401b0316908d9088908110612227576122276148f3565b6020026020010181815250508b8681518110612245576122456148f3565b60200260200101518e6122589190614e25565b9d508561226481614909565b9650506122f0565b8915158b15151415801561228057508e5184145b156122a85760408f015161229d906001600160401b03168f614e25565b9d50600199506122f0565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016106d8565b6122fa8288614e25565b965050505050808061230b90614909565b91505061202e565b506000811161238a5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016106d8565b841515861515146124035760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b5050505050509250925092565b606060008061241e856134a6565b90925090506000198214156124805760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b8084106124cf5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016106d8565b6000806124dd846001614e25565b905060005b86811015612566576124f48883613515565b92506000198314156125485760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125528383614e25565b91508061255e81614909565b9150506124e2565b506125718782613515565b91506000198214156125c55760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125d0878284613584565b979650505050505050565b60606000826008815181106125f2576125f26148f3565b0160200151835160f89190911c915061260c826009614e3d565b60ff161461262a575050604080516020810190915260008152919050565b8260098151811061263d5761263d6148f3565b016020015160f81c6126e35760028160ff16101561266b575050604080516020810190915260008152919050565b600083600a81518110612680576126806148f3565b016020015160f81c9050612695600283614e62565b60ff16811415806126b35750806020141580156126b3575080601414155b156126cf57505060408051602081019091526000815292915050565b6126db84600b83613584565b949350505050565b60006126f08460086128a8565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156127cd5783600b8151811061274f5761274f6148f3565b60209101015160f81c60141415806127a4575061277a6002855161277391906148b2565b85906128a8565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b156127c057505060408051602081019091526000815292915050565b6126db84600c6014613584565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561286a57836001855161282691906148b2565b81518110612836576128366148f3565b60209101015160f81c60871461285d57505060408051602081019091526000815292915050565b6126db84600b6014613584565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006128b78383016020015190565b9392505050565b60008151600014156128d257506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60008061290d8361364e565b60c01c905060006126db8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612a3b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016106d8565b808335612a4e60408601602087016147de565b612a5e60608701604088016147f9565b604051602001612a9b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612afe5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600080612b0a8661365a565b9092509050843582148015612b39575063ffffffff8116612b3160408701602088016147de565b63ffffffff16145b612bd15760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016106d8565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612c07856134a6565b90925090506000612c19836001614e25565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b85811015613177576000612cdb8b87613515565b90506000612cea8c8884613584565b90506000612cf782612901565b90506000612d156008808551612d0d91906148b2565b859190613584565b90508b606001516001600160401b03166000148015612d48575080516020820120881480612d4857508051602082012087145b8015612d5d57506000826001600160401b0316115b15612d825763ffffffff851660408d01526001600160401b03821660608d0152613154565b60008d82604051602001612d97929190614e85565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615612fa157600081815260066020526040812060018101548154919291612e09916001600160401b0390811691600160a01b900416614d13565b60018301549091506001600160401b0380871691612e3091600160401b9091041683614d13565b6001600160401b031611158015612e595750806001600160401b0316856001600160401b031611155b612ef15760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016106d8565b808f600001818151612f039190614d83565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151612f479190614d83565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff1916905588612f9781614909565b9950505050613152565b60008181526007602052604090206001810154600160801b900463ffffffff166130325760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016106d8565b6001810154815460009161305a916001600160401b0391821691600160a01b90910416614d13565b60018301549091506001600160401b038087169161308191600160401b9091041683614d13565b6001600160401b0316111580156130aa5750806001600160401b0316856001600160401b031611155b6131425760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016106d8565b8861314c81614909565b99505050505b505b61315e848a614e25565b985050505050808061316f90614909565b915050612cc7565b50600081116131ee5760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016106d8565b50505050505092915050565b6000806000613208846134a6565b909250905080158061321b575060001982145b1561322a575060009392505050565b6000613237836001614e25565b905060005b8281101561329d57855182106132585750600095945050505050565b6000613264878461370f565b905060001981141561327d575060009695505050505050565b6132878184614e25565b925050808061329590614909565b91505061323c565b5093519093149392505050565b60008060006132b8846134a6565b90925090508015806132cb575060001982145b156132da575060009392505050565b60006132e7836001614e25565b905060005b8281101561329d57855182106133085750600095945050505050565b60006133148784613515565b905060001981141561332d575060009695505050505050565b6133378184614e25565b925050808061334590614909565b9150506132ec565b6133e661339a6133606040840184614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375a92505050565b6133a48380614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613767565b6134585760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016106d8565b6134a26134686040830183614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061379a92505050565b5050565b6000806134b4836000613b30565b91509150915091565b600080806134cb85856128a8565b92506135006134da8686613cac565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b915061350c858561370f565b90509250925092565b6000613522826009614e25565b835110156135335750600019611e25565b60008061354a85613545866008614e25565b613b30565b90925090506000198214156135655760001992505050611e25565b80613571836009614e25565b61357b9190614e25565b95945050505050565b6060816135a057506040805160208101909152600081526128b7565b60006135ac8385614e25565b905083811180156135be575080855110155b61360a5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b604051915082604083010160405282825283850182038460208701018481015b808210156136435781518383015260208201915061362a565b505050509392505050565b6000611e2582826128a8565b6000806000613668846134a6565b915050806001146136e15760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016106d8565b60006136ed8582613cc3565b90506136f881613e78565b93506137066134da82613e85565b92505050915091565b600080600061371e8585613e92565b90925090506000198214156137395760001992505050611e25565b80613745836025614e25565b61374f9190614e25565b61357b906004614e25565b6044810151600090611e25565b60008385148015613776575081155b801561378157508251155b1561378e575060016126db565b61357b85848685613ed4565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156137f657600080fd5b505afa15801561380a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382e9190614cb8565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561388b57600080fd5b505afa15801561389f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c39190614cb8565b905060006138d86138d386613f7c565b614011565b9050828114156138ea57829350613968565b818114156138fa57819350613968565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016106d8565b600061397386614039565b90506000198114156139ed5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b600119811415613a3f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016106d8565b600219811415613a915760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016106d8565b613abb7f000000000000000000000000000000000000000000000000000000000000000086614ea1565b811015612bd15760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016106d8565b6000806000613b3f8585614240565b905060ff8116613b71576000858581518110613b5d57613b5d6148f3565b016020015190935060f81c9150613ca59050565b83613b7d826001614e3d565b60ff16613b8a9190614e25565b85511015613ba15760001960009250925050613ca5565b60008160ff1660021415613be657613bdb613bc7613bc0876001614e25565b88906128a8565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613c9b565b8160ff1660041415613c1057613c036134da613bc0876001614e25565b63ffffffff169050613c9b565b8160ff1660081415613c9b57613c8f613c2d613bc0876001614e25565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b60006128b7613cbc836020614e25565b84906128a8565b6060600080613cd1856134a6565b9092509050600019821415613d335760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b808410613d825760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016106d8565b600080613d90846001614e25565b905060005b86811015613e1957613da7888361370f565b9250600019831415613dfb5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b613e058383614e25565b915080613e1181614909565b915050613d95565b50613e24878261370f565b91506000198214156125c55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b6020810151600090611e25565b6000611e258260206128a8565b600080613ea0836025614e25565b84511015613eb5575060001990506000613ca5565b600080613ec786613545876024614e25565b9097909650945050505050565b600060208451613ee49190614ec0565b15613ef1575060006126db565b8351613eff575060006126db565b818560005b8651811015613f6f57613f18600284614ec0565b60011415613f3d57613f36613f308883016020015190565b836142cc565b9150613f56565b613f5382613f4e8984016020015190565b6142cc565b91505b60019290921c91613f68602082614e25565b9050613f04565b5090931495945050505050565b600080613f8a8360486128a8565b60e81c9050600083604b81518110613fa457613fa46148f3565b016020015160f81c90506000613fd883600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000613fec600384614e62565b60ff169050613ffd81610100614fb8565b6140079083614ea1565b9695505050505050565b6000611e257bffff0000000000000000000000000000000000000000000000000000836142d8565b6000605082516140499190614ec0565b156140575750600019919050565b506040805160808101909152605081526000908190815b8451811015614238576140828583836142e4565b80156140a2576140928284614383565b6140a25750600119949350505050565b60006140ad83613f7c565b90506140b8836128da565b9350806141fc8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b111561420f575060021995945050505050565b61422261421b82614011565b86906143ac565b94506142319050605082614e25565b905061406e565b505050919050565b6000828281518110614254576142546148f3565b60209101015160f81c60ff141561426d57506008611e25565b82828151811061427f5761427f6148f3565b60209101015160f81c60fe141561429857506004611e25565b8282815181106142aa576142aa6148f3565b60209101015160f81c60fd14156142c357506002611e25565b50600092915050565b60006128b7838361440a565b60006128b782846148df565b815160006142f28284614e25565b90508281118015614304575080855110155b6143505760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b826020860101602085018382015b8083101561437957825182526020928301929091019061435e565b5050505050505050565b60008061438f84614438565b90508281146143a2576000915050611e25565b5060019392505050565b60006143b88284614e25565b905082811015611e255760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016106d8565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611e25565b60006020828403121561445757600080fd5b5035919050565b60006080828403121561447057600080fd5b50919050565b60006060828403121561447057600080fd5b600080600060a0848603121561449d57600080fd5b83356001600160401b03808211156144b457600080fd5b6144c08783880161445e565b945060208601359150808211156144d657600080fd5b506144e386828701614476565b92505061350c8560408601614476565b60008082840361010081121561450857600080fd5b83356001600160401b0381111561451e57600080fd5b61452a8682870161445e565b93505060e0601f198201121561453f57600080fd5b506020830190509250929050565b80356001600160a01b038116811461456457600080fd5b919050565b6000806040838503121561457c57600080fd5b6145858361454d565b91506020830135801515811461459a57600080fd5b809150509250929050565b80356001600160601b03198116811461456457600080fd5b6000602082840312156145cf57600080fd5b6128b7826145a5565b60008060008060c085870312156145ee57600080fd5b84356001600160401b038082111561460557600080fd5b6146118883890161445e565b9550602087013591508082111561462757600080fd5b5061463487828801614476565b9350506146448660408701614476565b915061465260a086016145a5565b905092959194509250565b80356001600160401b038116811461456457600080fd5b600080600080600060c0868803121561468c57600080fd5b614695866145a5565b94506146a48760208801614476565b935060808601356001600160401b03808211156146c057600080fd5b818801915088601f8301126146d457600080fd5b8135818111156146e357600080fd5b8960208285010111156146f557600080fd5b60208301955080945050505061470d60a0870161465d565b90509295509295909350565b60006020828403121561472b57600080fd5b6128b78261454d565b634e487b7160e01b600052602160045260246000fd5b604081016005841061476c57634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e1984360301811261479b57600080fd5b8301803591506001600160401b038211156147b557600080fd5b602001915036819003821315613ca557600080fd5b803563ffffffff8116811461456457600080fd5b6000602082840312156147f057600080fd5b6128b7826147ca565b60006020828403121561480b57600080fd5b6128b78261465d565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561483c57600080fd5b604051606081018181106001600160401b038211171561486c57634e487b7160e01b600052604160045260246000fd5b6040528235815261487f602084016147ca565b60208201526148906040840161465d565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156148c4576148c461489c565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826148ee576148ee6148c9565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561491d5761491d61489c565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156149665781516001600160a01b031684529284019290840190600101614941565b5050508381038285015284518082528583019183019060005b8181101561499b5783518352928401929184019160010161497f565b5090979650505050505050565b6000602082840312156149ba57600080fd5b81356001600160c01b0319811681146128b757600080fd5b6000602082840312156149e457600080fd5b81356001600160e01b0319811681146128b757600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614ad0614ac3614a9a602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614b8f614ac3614a9a614a71614b66601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614c65614c3c60068301614b3d565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614c925760208185018101518683015201614c78565b81811115614ca1576000828601525b509290920192915050565b60006128b78284614c71565b600060208284031215614cca57600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60006001600160401b0383811690831681811015614d3357614d3361489c565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b03808316818516808303821115614da557614da561489c565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b60008219821115614e3857614e3861489c565b500190565b600060ff821660ff84168060ff03821115614e5a57614e5a61489c565b019392505050565b600060ff821660ff841680821015614e7c57614e7c61489c565b90039392505050565b6001600160601b03198316815260006126db6014830184614c71565b6000816000190483118215151615614ebb57614ebb61489c565b500290565b600082614ecf57614ecf6148c9565b500690565b600181815b80851115614f0f578160001904821115614ef557614ef561489c565b80851615614f0257918102915b93841c9390800290614ed9565b509250929050565b600082614f2657506001611e25565b81614f3357506000611e25565b8160018114614f495760028114614f5357614f6f565b6001915050611e25565b60ff841115614f6457614f6461489c565b50506001821b611e25565b5060208310610133831016604e8410600b8410161715614f92575081810a611e25565b614f9c8383614ed4565b8060001904821115614fb057614fb061489c565b029392505050565b60006128b78383614f1756fea2646970667358221220fbeb226bb6c3042ac1dff331dba4a7e03ab2989029a5ecf8abe0dbdb1bc5aef164736f6c63430008090033",
|
|
832
|
+
"bytecode": "0x6101006040523480156200001257600080fd5b506040516200532f3803806200532f83398101604081905262000035916200021c565b6200004033620001af565b6001600160a01b0384166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660a0528316620000fa5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160a01b0380841660c0528216620001585760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b6001600160a01b039190911660e052608052505060008054600160a01b600160e01b031916613d0960a61b179055600180546001600160801b0319166903e800000000000007d01790556202a3006002556200026e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021757600080fd5b919050565b600080600080608085870312156200023357600080fd5b6200023e85620001ff565b93506200024e60208601620001ff565b92506200025e60408601620001ff565b6060959095015193969295505050565b60805160a05160c05160e05161504f620002e06000396000818161030f01526113c7015260008181610495015281816137ce01526138630152600081816103560152818161087b0152818161132e015281816113ff0152611b8e0152600081816102ad0152613ac5015261504f6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063bdf9fca91161008c578063e65e19d511610066578063e65e19d514610517578063e95eb7a814610558578063f2fde38b1461056b57600080fd5b8063bdf9fca9146104b7578063d6eccdf0146104d1578063e53c0b55146104e457600080fd5b8063b02c43d0116100bd578063b02c43d0146103db578063b34b32161461047d578063b59589d11461049057600080fd5b80638da5cb5b14610398578063a588f059146103a957600080fd5b80635c0b48121161013a578063715018a611610114578063715018a61461034957806376cdb03b1461035157806383a434281461037857600080fd5b80635c0b4812146102e457806360d712fc146102f757806361d027b31461030a57600080fd5b80631fff4e701161016b5780631fff4e70146102915780632bb818c2146102a857806359a9d90a146102cf57600080fd5b806303d952f7146101875780630b6ba19d14610232575b600080fd5b6101e6610195366004614474565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6101e6610240366004614474565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61029a60025481565b604051908152602001610229565b61029a7f000000000000000000000000000000000000000000000000000000000000000081565b6102e26102dd3660046144b7565b61057e565b005b6102e26102f2366004614522565b6108f3565b6102e2610305366004614598565b610f12565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610229565b6102e2610fcb565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b61029a6103863660046145ec565b60056020526000908152604090205481565b6000546001600160a01b0316610331565b6001546103c390600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610229565b6104396103e9366004614474565b600460205260009081526040902080546001909101546001600160a01b0380831692600160a01b8082046001600160401b031693600160e01b90920463ffffffff90811693831692919091041685565b604080516001600160a01b0396871681526001600160401b03909516602086015263ffffffff9384169085015293166060830152909116608082015260a001610229565b6102e261048b366004614607565b611031565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6000546103c390600160a01b90046001600160401b031681565b6102e26104df3660046146a3565b611466565b6105076104f2366004614748565b60036020526000908152604090205460ff1681565b6040519015158152602001610229565b61054a6105253660046145ec565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b604051610229929190614779565b6001546103c3906001600160401b031681565b6102e2610579366004614748565b611bfe565b600061058a8484611ce0565b90506000806105d961059f60408801886147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e5a92505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156106f35780863561062c6040890160208a0161480d565b61063c60608a0160408b01614828565b6040516020016106799392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146106e15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6106f036879003870187614859565b91505b6000808061074361070760208d018d6147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611f8d915050565b91945092509050600061075f6001600160401b038816856148e1565b90506000825182610770919061490e565b905060005b83518110156107ba578184828151811061079157610791614922565b602002602001018181516107a591906148e1565b905250806107b281614938565b915050610775565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198d1660008181526005845284902091909155835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a16040517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063266a123a906108b29087908790600401614953565b600060405180830381600087803b1580156108cc57600080fd5b505af11580156108e0573d6000803e3d6000fd5b5050505050505050505050505050505050565b600061090560e0830160c08401614748565b6001600160a01b0316148061094757506003600061092960e0840160c08501614748565b6001600160a01b0316815260208101919091526040016000205460ff165b6109935760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016106d8565b60006109a56040830160208401614748565b6109b560608401604085016149d7565b6109c560808501606086016145ec565b6109d560a08601608087016145ec565b6109e560c0870160a08801614a01565b6040516020016109f9959493929190614a2b565b60408051601f1981840301815291905290506000610a6d610a1d602085018561480d565b63ffffffff16610a3060408701876147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061243f9050565b90506000610a7a8261260a565b9050805160141415610b0057610a8f836128b0565b6001600160601b031916610aa48260006128d7565b6001600160601b03191614610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016106d8565b610bf8565b805160201415610bb057600283604051610b1a9190614cdb565b602060405180830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b5a9190614ce7565b610b63826128ed565b14610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016106d8565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016106d8565b6000610c5d610c0a6020880188614a01565b610c1760208901896147b3565b610c2460408b018b6147b3565b610c3460808d0160608e01614a01565b604051602001610c4996959493929190614d00565b604051602081830303815290604052612909565b9050600060048183610c7260208a018a61480d565b604051602001610c9992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610d1d5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016106d8565b6000610d2885612930565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610d716040880160208901614748565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610dc060e0880160c08901614748565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583610e1e60208a018a61480d565b610e2e60408b0160208c01614748565b84610e3f60608d0160408e016149d7565b610e4f60808e0160608f016145ec565b8d6080016020810190610e6291906145ec565b8e60a0016020810190610e759190614a01565b8f60c0016020810190610e889190614748565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b03163314610f6c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146110255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b61102f60006129a6565b565b600061103d8585611ce0565b905061108d61104f60208701876147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612a039050565b6001600160601b0319821660009081526008602052604090205460ff1660018160048111156110be576110be614763565b14806110db575060028160048111156110d9576110d9614763565b145b61114d5760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016106d8565b600061119b61115f60408901896147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612c08915050565b60608101519091506001600160401b03161561122e5782816040015182606001516040516020016111f99392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526005909352912055611249565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061128290849061010090046001600160401b0316614d42565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516112ec9291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561149657611496614763565b146114e35760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016106d8565b6001600160601b03198516600090815260056020526040902054806115705760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b808535611583604088016020890161480d565b6115936060890160408a01614828565b6040516020016115d09392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146116335760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b6000611665600060c01b868660405160200161165193929190614d6a565b60405160208183030381529060405261260a565b905060008151116116de5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016106d8565b80805190602001208760405160200161170791906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156117915760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016106d8565b6000546001600160401b03600160a01b909104811690841610156117f75760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016106d8565b600087868660405160200161180e93929190614d8e565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156118df5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016106d8565b6001546000906001600160401b03166118f957600061190f565b60015461190f906001600160401b031686614db2565b600154909150600160401b90046001600160401b031661192f8287614d42565b6001600160601b03198b166000908152600860205260409020805460019061196690849061010090046001600160401b0316614dd8565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d1660009081526008602052604090819020549190910490911691506119bc9060608c01908c01614828565b6001600160401b03161015611a135760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016106d8565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611b43918d918c918c91908c9089908990614e03565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611bda57600080fd5b505af1158015611bee573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611c585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038116611cd45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d8565b611cdd816129a6565b50565b6000611d2c611cf260208501856147b3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061322992505050565b611d785760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016106d8565b611dc2611d8860408501856147b3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132d992505050565b611e0e5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016106d8565b611e48611e1e6020850185614a01565b611e2b60208601866147b3565b611e3860408801886147b3565b610c3460808a0160608b01614a01565b9050611e54818361337c565b92915050565b6000806000611e68846134d5565b91505080600114611ee15760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016106d8565b6000611eed858261243f565b9050611ef881612930565b92506000611f058261260a565b90508051601414611f7e5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016106d8565b60208101519450505050915091565b805160009060609081901515838080611fa5896134d5565b90925090506000611fb7836001614e7a565b90508415611fcf57611fca6001836148e1565b611fd1565b815b6001600160401b03811115611fe857611fe8614843565b604051908082528060200260200182016040528015612011578160200160208202803683370190505b50965086516001600160401b0381111561202d5761202d614843565b604051908082528060200260200182016040528015612056578160200160208202803683370190505b5095506000805b838110156123425760008060006120748f876134ec565b92509250925060006004600085856040516020016120a992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff161561229b576001810154600160a01b900463ffffffff16156121445760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016106d8565b8c518614156121bb5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b6001810180547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b4263ffffffff160217905580548d516001600160a01b03909116908e908890811061221557612215614922565b6001600160a01b03929092166020928302919091019091015280548c51600160a01b9091046001600160401b0316908d908890811061225657612256614922565b6020026020010181815250508b868151811061227457612274614922565b60200260200101518e6122879190614e7a565b9d508561229381614938565b96505061231f565b8915158b1515141580156122af57508e5184145b156122d75760408f01516122cc906001600160401b03168f614e7a565b9d506001995061231f565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016106d8565b6123298288614e7a565b965050505050808061233a90614938565b91505061205d565b50600081116123b95760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016106d8565b841515861515146124325760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b5050505050509250925092565b606060008061244d856134d5565b90925090506000198214156124af5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b8084106124fe5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016106d8565b60008061250c846001614e7a565b905060005b86811015612595576125238883613544565b92506000198314156125775760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125818383614e7a565b91508061258d81614938565b915050612511565b506125a08782613544565b91506000198214156125f45760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125ff8782846135b3565b979650505050505050565b606060008260088151811061262157612621614922565b0160200151835160f89190911c915061263b826009614e92565b60ff1614612659575050604080516020810190915260008152919050565b8260098151811061266c5761266c614922565b016020015160f81c6127125760028160ff16101561269a575050604080516020810190915260008152919050565b600083600a815181106126af576126af614922565b016020015160f81c90506126c4600283614eb7565b60ff16811415806126e25750806020141580156126e2575080601414155b156126fe57505060408051602081019091526000815292915050565b61270a84600b836135b3565b949350505050565b600061271f8460086128d7565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156127fc5783600b8151811061277e5761277e614922565b60209101015160f81c60141415806127d357506127a9600285516127a291906148e1565b85906128d7565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b156127ef57505060408051602081019091526000815292915050565b61270a84600c60146135b3565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561289957836001855161285591906148e1565b8151811061286557612865614922565b60209101015160f81c60871461288c57505060408051602081019091526000815292915050565b61270a84600b60146135b3565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006128e68383016020015190565b9392505050565b600081516000141561290157506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60008061293c8361367d565b60c01c9050600061270a8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612a6a5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016106d8565b808335612a7d604086016020870161480d565b612a8d6060870160408801614828565b604051602001612aca9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612b2d5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600080612b3986613689565b9092509050843582148015612b68575063ffffffff8116612b60604087016020880161480d565b63ffffffff16145b612c005760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016106d8565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612c36856134d5565b90925090506000612c48836001614e7a565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156131a6576000612d0a8b87613544565b90506000612d198c88846135b3565b90506000612d2682612930565b90506000612d446008808551612d3c91906148e1565b8591906135b3565b90508b606001516001600160401b03166000148015612d77575080516020820120881480612d7757508051602082012087145b8015612d8c57506000826001600160401b0316115b15612db15763ffffffff851660408d01526001600160401b03821660608d0152613183565b60008d82604051602001612dc6929190614eda565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615612fd057600081815260066020526040812060018101548154919291612e38916001600160401b0390811691600160a01b900416614d42565b60018301549091506001600160401b0380871691612e5f91600160401b9091041683614d42565b6001600160401b031611158015612e885750806001600160401b0316856001600160401b031611155b612f205760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016106d8565b808f600001818151612f329190614dd8565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151612f769190614dd8565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff1916905588612fc681614938565b9950505050613181565b60008181526007602052604090206001810154600160801b900463ffffffff166130615760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016106d8565b60018101548154600091613089916001600160401b0391821691600160a01b90910416614d42565b60018301549091506001600160401b03808716916130b091600160401b9091041683614d42565b6001600160401b0316111580156130d95750806001600160401b0316856001600160401b031611155b6131715760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016106d8565b8861317b81614938565b99505050505b505b61318d848a614e7a565b985050505050808061319e90614938565b915050612cf6565b506000811161321d5760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016106d8565b50505050505092915050565b6000806000613237846134d5565b909250905080158061324a575060001982145b15613259575060009392505050565b6000613266836001614e7a565b905060005b828110156132cc57855182106132875750600095945050505050565b6000613293878461373e565b90506000198114156132ac575060009695505050505050565b6132b68184614e7a565b92505080806132c490614938565b91505061326b565b5093519093149392505050565b60008060006132e7846134d5565b90925090508015806132fa575060001982145b15613309575060009392505050565b6000613316836001614e7a565b905060005b828110156132cc57855182106133375750600095945050505050565b60006133438784613544565b905060001981141561335c575060009695505050505050565b6133668184614e7a565b925050808061337490614938565b91505061331b565b6134156133c961338f60408401846147b3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378992505050565b6133d383806147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613796565b6134875760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016106d8565b6134d161349760408301836147b3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506137c992505050565b5050565b6000806134e3836000613b5f565b91509150915091565b600080806134fa85856128d7565b925061352f6135098686613cdb565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b915061353b858561373e565b90509250925092565b6000613551826009614e7a565b835110156135625750600019611e54565b60008061357985613574866008614e7a565b613b5f565b90925090506000198214156135945760001992505050611e54565b806135a0836009614e7a565b6135aa9190614e7a565b95945050505050565b6060816135cf57506040805160208101909152600081526128e6565b60006135db8385614e7a565b905083811180156135ed575080855110155b6136395760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b604051915082604083010160405282825283850182038460208701018481015b8082101561367257815183830152602082019150613659565b505050509392505050565b6000611e5482826128d7565b6000806000613697846134d5565b915050806001146137105760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016106d8565b600061371c8582613cf2565b905061372781613ea7565b935061373561350982613eb4565b92505050915091565b600080600061374d8585613ec1565b90925090506000198214156137685760001992505050611e54565b80613774836025614e7a565b61377e9190614e7a565b6135aa906004614e7a565b6044810151600090611e54565b600083851480156137a5575081155b80156137b057508251155b156137bd5750600161270a565b6135aa85848685613f03565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561382557600080fd5b505afa158015613839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385d9190614ce7565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ba57600080fd5b505afa1580156138ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f29190614ce7565b9050600061390761390286613fab565b614040565b90508281141561391957829350613997565b8181141561392957819350613997565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016106d8565b60006139a286614068565b9050600019811415613a1c5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b600119811415613a6e5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016106d8565b600219811415613ac05760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016106d8565b613aea7f000000000000000000000000000000000000000000000000000000000000000086614ef6565b811015612c005760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016106d8565b6000806000613b6e858561426f565b905060ff8116613ba0576000858581518110613b8c57613b8c614922565b016020015190935060f81c9150613cd49050565b83613bac826001614e92565b60ff16613bb99190614e7a565b85511015613bd05760001960009250925050613cd4565b60008160ff1660021415613c1557613c0a613bf6613bef876001614e7a565b88906128d7565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613cca565b8160ff1660041415613c3f57613c32613509613bef876001614e7a565b63ffffffff169050613cca565b8160ff1660081415613cca57613cbe613c5c613bef876001614e7a565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b60006128e6613ceb836020614e7a565b84906128d7565b6060600080613d00856134d5565b9092509050600019821415613d625760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b808410613db15760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016106d8565b600080613dbf846001614e7a565b905060005b86811015613e4857613dd6888361373e565b9250600019831415613e2a5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b613e348383614e7a565b915080613e4081614938565b915050613dc4565b50613e53878261373e565b91506000198214156125f45760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b6020810151600090611e54565b6000611e548260206128d7565b600080613ecf836025614e7a565b84511015613ee4575060001990506000613cd4565b600080613ef686613574876024614e7a565b9097909650945050505050565b600060208451613f139190614f15565b15613f205750600061270a565b8351613f2e5750600061270a565b818560005b8651811015613f9e57613f47600284614f15565b60011415613f6c57613f65613f5f8883016020015190565b836142fb565b9150613f85565b613f8282613f7d8984016020015190565b6142fb565b91505b60019290921c91613f97602082614e7a565b9050613f33565b5090931495945050505050565b600080613fb98360486128d7565b60e81c9050600083604b81518110613fd357613fd3614922565b016020015160f81c9050600061400783600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff169050600061401b600384614eb7565b60ff16905061402c8161010061500d565b6140369083614ef6565b9695505050505050565b6000611e547bffff000000000000000000000000000000000000000000000000000083614307565b6000605082516140789190614f15565b156140865750600019919050565b506040805160808101909152605081526000908190815b8451811015614267576140b1858383614313565b80156140d1576140c182846143b2565b6140d15750600119949350505050565b60006140dc83613fab565b90506140e783612909565b93508061422b8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b111561423e575060021995945050505050565b61425161424a82614040565b86906143db565b94506142609050605082614e7a565b905061409d565b505050919050565b600082828151811061428357614283614922565b60209101015160f81c60ff141561429c57506008611e54565b8282815181106142ae576142ae614922565b60209101015160f81c60fe14156142c757506004611e54565b8282815181106142d9576142d9614922565b60209101015160f81c60fd14156142f257506002611e54565b50600092915050565b60006128e68383614439565b60006128e6828461490e565b815160006143218284614e7a565b90508281118015614333575080855110155b61437f5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b826020860101602085018382015b808310156143a857825182526020928301929091019061438d565b5050505050505050565b6000806143be84614467565b90508281146143d1576000915050611e54565b5060019392505050565b60006143e78284614e7a565b905082811015611e545760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016106d8565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611e54565b60006020828403121561448657600080fd5b5035919050565b60006080828403121561449f57600080fd5b50919050565b60006060828403121561449f57600080fd5b600080600060a084860312156144cc57600080fd5b83356001600160401b03808211156144e357600080fd5b6144ef8783880161448d565b9450602086013591508082111561450557600080fd5b50614512868287016144a5565b92505061353b85604086016144a5565b60008082840361010081121561453757600080fd5b83356001600160401b0381111561454d57600080fd5b6145598682870161448d565b93505060e0601f198201121561456e57600080fd5b506020830190509250929050565b80356001600160a01b038116811461459357600080fd5b919050565b600080604083850312156145ab57600080fd5b6145b48361457c565b9150602083013580151581146145c957600080fd5b809150509250929050565b80356001600160601b03198116811461459357600080fd5b6000602082840312156145fe57600080fd5b6128e6826145d4565b60008060008060c0858703121561461d57600080fd5b84356001600160401b038082111561463457600080fd5b6146408883890161448d565b9550602087013591508082111561465657600080fd5b50614663878288016144a5565b93505061467386604087016144a5565b915061468160a086016145d4565b905092959194509250565b80356001600160401b038116811461459357600080fd5b600080600080600060c086880312156146bb57600080fd5b6146c4866145d4565b94506146d387602088016144a5565b935060808601356001600160401b03808211156146ef57600080fd5b818801915088601f83011261470357600080fd5b81358181111561471257600080fd5b89602082850101111561472457600080fd5b60208301955080945050505061473c60a0870161468c565b90509295509295909350565b60006020828403121561475a57600080fd5b6128e68261457c565b634e487b7160e01b600052602160045260246000fd5b604081016005841061479b57634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e198436030181126147ca57600080fd5b8301803591506001600160401b038211156147e457600080fd5b602001915036819003821315613cd457600080fd5b803563ffffffff8116811461459357600080fd5b60006020828403121561481f57600080fd5b6128e6826147f9565b60006020828403121561483a57600080fd5b6128e68261468c565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561486b57600080fd5b604051606081018181106001600160401b038211171561489b57634e487b7160e01b600052604160045260246000fd5b604052823581526148ae602084016147f9565b60208201526148bf6040840161468c565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156148f3576148f36148cb565b500390565b634e487b7160e01b600052601260045260246000fd5b60008261491d5761491d6148f8565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561494c5761494c6148cb565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156149955781516001600160a01b031684529284019290840190600101614970565b5050508381038285015284518082528583019183019060005b818110156149ca578351835292840192918401916001016149ae565b5090979650505050505050565b6000602082840312156149e957600080fd5b81356001600160c01b0319811681146128e657600080fd5b600060208284031215614a1357600080fd5b81356001600160e01b0319811681146128e657600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614aff614af2614ac9602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614bbe614af2614ac9614aa0614b95601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614c94614c6b60068301614b6c565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614cc15760208185018101518683015201614ca7565b81811115614cd0576000828601525b509290920192915050565b60006128e68284614ca0565b600060208284031215614cf957600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60006001600160401b0383811690831681811015614d6257614d626148cb565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b0380841680614dcc57614dcc6148f8565b92169190910492915050565b60006001600160401b03808316818516808303821115614dfa57614dfa6148cb565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b60008219821115614e8d57614e8d6148cb565b500190565b600060ff821660ff84168060ff03821115614eaf57614eaf6148cb565b019392505050565b600060ff821660ff841680821015614ed157614ed16148cb565b90039392505050565b6001600160601b031983168152600061270a6014830184614ca0565b6000816000190483118215151615614f1057614f106148cb565b500290565b600082614f2457614f246148f8565b500690565b600181815b80851115614f64578160001904821115614f4a57614f4a6148cb565b80851615614f5757918102915b93841c9390800290614f2e565b509250929050565b600082614f7b57506001611e54565b81614f8857506000611e54565b8160018114614f9e5760028114614fa857614fc4565b6001915050611e54565b60ff841115614fb957614fb96148cb565b50506001821b611e54565b5060208310610133831016604e8410600b8410161715614fe7575081810a611e54565b614ff18383614f29565b8060001904821115615005576150056148cb565b029392505050565b60006128e68383614f6c56fea26469706673582212200881736302b14978be19c368c6446c3395867c82dc3c9f1e8e0825e7e8293e6264736f6c63430008090033",
|
|
833
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063bdf9fca91161008c578063e65e19d511610066578063e65e19d514610517578063e95eb7a814610558578063f2fde38b1461056b57600080fd5b8063bdf9fca9146104b7578063d6eccdf0146104d1578063e53c0b55146104e457600080fd5b8063b02c43d0116100bd578063b02c43d0146103db578063b34b32161461047d578063b59589d11461049057600080fd5b80638da5cb5b14610398578063a588f059146103a957600080fd5b80635c0b48121161013a578063715018a611610114578063715018a61461034957806376cdb03b1461035157806383a434281461037857600080fd5b80635c0b4812146102e457806360d712fc146102f757806361d027b31461030a57600080fd5b80631fff4e701161016b5780631fff4e70146102915780632bb818c2146102a857806359a9d90a146102cf57600080fd5b806303d952f7146101875780630b6ba19d14610232575b600080fd5b6101e6610195366004614474565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6101e6610240366004614474565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61029a60025481565b604051908152602001610229565b61029a7f000000000000000000000000000000000000000000000000000000000000000081565b6102e26102dd3660046144b7565b61057e565b005b6102e26102f2366004614522565b6108f3565b6102e2610305366004614598565b610f12565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610229565b6102e2610fcb565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b61029a6103863660046145ec565b60056020526000908152604090205481565b6000546001600160a01b0316610331565b6001546103c390600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610229565b6104396103e9366004614474565b600460205260009081526040902080546001909101546001600160a01b0380831692600160a01b8082046001600160401b031693600160e01b90920463ffffffff90811693831692919091041685565b604080516001600160a01b0396871681526001600160401b03909516602086015263ffffffff9384169085015293166060830152909116608082015260a001610229565b6102e261048b366004614607565b611031565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6000546103c390600160a01b90046001600160401b031681565b6102e26104df3660046146a3565b611466565b6105076104f2366004614748565b60036020526000908152604090205460ff1681565b6040519015158152602001610229565b61054a6105253660046145ec565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b604051610229929190614779565b6001546103c3906001600160401b031681565b6102e2610579366004614748565b611bfe565b600061058a8484611ce0565b90506000806105d961059f60408801886147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e5a92505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156106f35780863561062c6040890160208a0161480d565b61063c60608a0160408b01614828565b6040516020016106799392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146106e15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6106f036879003870187614859565b91505b6000808061074361070760208d018d6147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611f8d915050565b91945092509050600061075f6001600160401b038816856148e1565b90506000825182610770919061490e565b905060005b83518110156107ba578184828151811061079157610791614922565b602002602001018181516107a591906148e1565b905250806107b281614938565b915050610775565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198d1660008181526005845284902091909155835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a16040517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063266a123a906108b29087908790600401614953565b600060405180830381600087803b1580156108cc57600080fd5b505af11580156108e0573d6000803e3d6000fd5b5050505050505050505050505050505050565b600061090560e0830160c08401614748565b6001600160a01b0316148061094757506003600061092960e0840160c08501614748565b6001600160a01b0316815260208101919091526040016000205460ff165b6109935760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016106d8565b60006109a56040830160208401614748565b6109b560608401604085016149d7565b6109c560808501606086016145ec565b6109d560a08601608087016145ec565b6109e560c0870160a08801614a01565b6040516020016109f9959493929190614a2b565b60408051601f1981840301815291905290506000610a6d610a1d602085018561480d565b63ffffffff16610a3060408701876147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061243f9050565b90506000610a7a8261260a565b9050805160141415610b0057610a8f836128b0565b6001600160601b031916610aa48260006128d7565b6001600160601b03191614610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016106d8565b610bf8565b805160201415610bb057600283604051610b1a9190614cdb565b602060405180830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b5a9190614ce7565b610b63826128ed565b14610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016106d8565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016106d8565b6000610c5d610c0a6020880188614a01565b610c1760208901896147b3565b610c2460408b018b6147b3565b610c3460808d0160608e01614a01565b604051602001610c4996959493929190614d00565b604051602081830303815290604052612909565b9050600060048183610c7260208a018a61480d565b604051602001610c9992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610d1d5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016106d8565b6000610d2885612930565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610d716040880160208901614748565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610dc060e0880160c08901614748565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583610e1e60208a018a61480d565b610e2e60408b0160208c01614748565b84610e3f60608d0160408e016149d7565b610e4f60808e0160608f016145ec565b8d6080016020810190610e6291906145ec565b8e60a0016020810190610e759190614a01565b8f60c0016020810190610e889190614748565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b03163314610f6c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146110255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b61102f60006129a6565b565b600061103d8585611ce0565b905061108d61104f60208701876147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250869150612a039050565b6001600160601b0319821660009081526008602052604090205460ff1660018160048111156110be576110be614763565b14806110db575060028160048111156110d9576110d9614763565b145b61114d5760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016106d8565b600061119b61115f60408901896147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612c08915050565b60608101519091506001600160401b03161561122e5782816040015182606001516040516020016111f99392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526005909352912055611249565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061128290849061010090046001600160401b0316614d42565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516112ec9291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561149657611496614763565b146114e35760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016106d8565b6001600160601b03198516600090815260056020526040902054806115705760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b808535611583604088016020890161480d565b6115936060890160408a01614828565b6040516020016115d09392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146116335760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b6000611665600060c01b868660405160200161165193929190614d6a565b60405160208183030381529060405261260a565b905060008151116116de5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016106d8565b80805190602001208760405160200161170791906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156117915760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016106d8565b6000546001600160401b03600160a01b909104811690841610156117f75760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016106d8565b600087868660405160200161180e93929190614d8e565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156118df5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016106d8565b6001546000906001600160401b03166118f957600061190f565b60015461190f906001600160401b031686614db2565b600154909150600160401b90046001600160401b031661192f8287614d42565b6001600160601b03198b166000908152600860205260409020805460019061196690849061010090046001600160401b0316614dd8565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d1660009081526008602052604090819020549190910490911691506119bc9060608c01908c01614828565b6001600160401b03161015611a135760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016106d8565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611b43918d918c918c91908c9089908990614e03565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611bda57600080fd5b505af1158015611bee573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611c585760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038116611cd45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d8565b611cdd816129a6565b50565b6000611d2c611cf260208501856147b3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061322992505050565b611d785760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016106d8565b611dc2611d8860408501856147b3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132d992505050565b611e0e5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016106d8565b611e48611e1e6020850185614a01565b611e2b60208601866147b3565b611e3860408801886147b3565b610c3460808a0160608b01614a01565b9050611e54818361337c565b92915050565b6000806000611e68846134d5565b91505080600114611ee15760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016106d8565b6000611eed858261243f565b9050611ef881612930565b92506000611f058261260a565b90508051601414611f7e5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016106d8565b60208101519450505050915091565b805160009060609081901515838080611fa5896134d5565b90925090506000611fb7836001614e7a565b90508415611fcf57611fca6001836148e1565b611fd1565b815b6001600160401b03811115611fe857611fe8614843565b604051908082528060200260200182016040528015612011578160200160208202803683370190505b50965086516001600160401b0381111561202d5761202d614843565b604051908082528060200260200182016040528015612056578160200160208202803683370190505b5095506000805b838110156123425760008060006120748f876134ec565b92509250925060006004600085856040516020016120a992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff161561229b576001810154600160a01b900463ffffffff16156121445760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016106d8565b8c518614156121bb5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b6001810180547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b4263ffffffff160217905580548d516001600160a01b03909116908e908890811061221557612215614922565b6001600160a01b03929092166020928302919091019091015280548c51600160a01b9091046001600160401b0316908d908890811061225657612256614922565b6020026020010181815250508b868151811061227457612274614922565b60200260200101518e6122879190614e7a565b9d508561229381614938565b96505061231f565b8915158b1515141580156122af57508e5184145b156122d75760408f01516122cc906001600160401b03168f614e7a565b9d506001995061231f565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016106d8565b6123298288614e7a565b965050505050808061233a90614938565b91505061205d565b50600081116123b95760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016106d8565b841515861515146124325760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b5050505050509250925092565b606060008061244d856134d5565b90925090506000198214156124af5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b8084106124fe5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016106d8565b60008061250c846001614e7a565b905060005b86811015612595576125238883613544565b92506000198314156125775760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125818383614e7a565b91508061258d81614938565b915050612511565b506125a08782613544565b91506000198214156125f45760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125ff8782846135b3565b979650505050505050565b606060008260088151811061262157612621614922565b0160200151835160f89190911c915061263b826009614e92565b60ff1614612659575050604080516020810190915260008152919050565b8260098151811061266c5761266c614922565b016020015160f81c6127125760028160ff16101561269a575050604080516020810190915260008152919050565b600083600a815181106126af576126af614922565b016020015160f81c90506126c4600283614eb7565b60ff16811415806126e25750806020141580156126e2575080601414155b156126fe57505060408051602081019091526000815292915050565b61270a84600b836135b3565b949350505050565b600061271f8460086128d7565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156127fc5783600b8151811061277e5761277e614922565b60209101015160f81c60141415806127d357506127a9600285516127a291906148e1565b85906128d7565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b156127ef57505060408051602081019091526000815292915050565b61270a84600c60146135b3565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561289957836001855161285591906148e1565b8151811061286557612865614922565b60209101015160f81c60871461288c57505060408051602081019091526000815292915050565b61270a84600b60146135b3565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006128e68383016020015190565b9392505050565b600081516000141561290157506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60008061293c8361367d565b60c01c9050600061270a8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612a6a5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016106d8565b808335612a7d604086016020870161480d565b612a8d6060870160408801614828565b604051602001612aca9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612b2d5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600080612b3986613689565b9092509050843582148015612b68575063ffffffff8116612b60604087016020880161480d565b63ffffffff16145b612c005760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016106d8565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612c36856134d5565b90925090506000612c48836001614e7a565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b858110156131a6576000612d0a8b87613544565b90506000612d198c88846135b3565b90506000612d2682612930565b90506000612d446008808551612d3c91906148e1565b8591906135b3565b90508b606001516001600160401b03166000148015612d77575080516020820120881480612d7757508051602082012087145b8015612d8c57506000826001600160401b0316115b15612db15763ffffffff851660408d01526001600160401b03821660608d0152613183565b60008d82604051602001612dc6929190614eda565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615612fd057600081815260066020526040812060018101548154919291612e38916001600160401b0390811691600160a01b900416614d42565b60018301549091506001600160401b0380871691612e5f91600160401b9091041683614d42565b6001600160401b031611158015612e885750806001600160401b0316856001600160401b031611155b612f205760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016106d8565b808f600001818151612f329190614dd8565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151612f769190614dd8565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff1916905588612fc681614938565b9950505050613181565b60008181526007602052604090206001810154600160801b900463ffffffff166130615760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016106d8565b60018101548154600091613089916001600160401b0391821691600160a01b90910416614d42565b60018301549091506001600160401b03808716916130b091600160401b9091041683614d42565b6001600160401b0316111580156130d95750806001600160401b0316856001600160401b031611155b6131715760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016106d8565b8861317b81614938565b99505050505b505b61318d848a614e7a565b985050505050808061319e90614938565b915050612cf6565b506000811161321d5760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016106d8565b50505050505092915050565b6000806000613237846134d5565b909250905080158061324a575060001982145b15613259575060009392505050565b6000613266836001614e7a565b905060005b828110156132cc57855182106132875750600095945050505050565b6000613293878461373e565b90506000198114156132ac575060009695505050505050565b6132b68184614e7a565b92505080806132c490614938565b91505061326b565b5093519093149392505050565b60008060006132e7846134d5565b90925090508015806132fa575060001982145b15613309575060009392505050565b6000613316836001614e7a565b905060005b828110156132cc57855182106133375750600095945050505050565b60006133438784613544565b905060001981141561335c575060009695505050505050565b6133668184614e7a565b925050808061337490614938565b91505061331b565b6134156133c961338f60408401846147b3565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061378992505050565b6133d383806147b3565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613796565b6134875760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016106d8565b6134d161349760408301836147b3565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506137c992505050565b5050565b6000806134e3836000613b5f565b91509150915091565b600080806134fa85856128d7565b925061352f6135098686613cdb565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b915061353b858561373e565b90509250925092565b6000613551826009614e7a565b835110156135625750600019611e54565b60008061357985613574866008614e7a565b613b5f565b90925090506000198214156135945760001992505050611e54565b806135a0836009614e7a565b6135aa9190614e7a565b95945050505050565b6060816135cf57506040805160208101909152600081526128e6565b60006135db8385614e7a565b905083811180156135ed575080855110155b6136395760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b604051915082604083010160405282825283850182038460208701018481015b8082101561367257815183830152602082019150613659565b505050509392505050565b6000611e5482826128d7565b6000806000613697846134d5565b915050806001146137105760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016106d8565b600061371c8582613cf2565b905061372781613ea7565b935061373561350982613eb4565b92505050915091565b600080600061374d8585613ec1565b90925090506000198214156137685760001992505050611e54565b80613774836025614e7a565b61377e9190614e7a565b6135aa906004614e7a565b6044810151600090611e54565b600083851480156137a5575081155b80156137b057508251155b156137bd5750600161270a565b6135aa85848685613f03565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561382557600080fd5b505afa158015613839573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061385d9190614ce7565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b1580156138ba57600080fd5b505afa1580156138ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138f29190614ce7565b9050600061390761390286613fab565b614040565b90508281141561391957829350613997565b8181141561392957819350613997565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016106d8565b60006139a286614068565b9050600019811415613a1c5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b600119811415613a6e5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016106d8565b600219811415613ac05760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016106d8565b613aea7f000000000000000000000000000000000000000000000000000000000000000086614ef6565b811015612c005760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016106d8565b6000806000613b6e858561426f565b905060ff8116613ba0576000858581518110613b8c57613b8c614922565b016020015190935060f81c9150613cd49050565b83613bac826001614e92565b60ff16613bb99190614e7a565b85511015613bd05760001960009250925050613cd4565b60008160ff1660021415613c1557613c0a613bf6613bef876001614e7a565b88906128d7565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613cca565b8160ff1660041415613c3f57613c32613509613bef876001614e7a565b63ffffffff169050613cca565b8160ff1660081415613cca57613cbe613c5c613bef876001614e7a565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b60006128e6613ceb836020614e7a565b84906128d7565b6060600080613d00856134d5565b9092509050600019821415613d625760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b808410613db15760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016106d8565b600080613dbf846001614e7a565b905060005b86811015613e4857613dd6888361373e565b9250600019831415613e2a5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b613e348383614e7a565b915080613e4081614938565b915050613dc4565b50613e53878261373e565b91506000198214156125f45760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b6020810151600090611e54565b6000611e548260206128d7565b600080613ecf836025614e7a565b84511015613ee4575060001990506000613cd4565b600080613ef686613574876024614e7a565b9097909650945050505050565b600060208451613f139190614f15565b15613f205750600061270a565b8351613f2e5750600061270a565b818560005b8651811015613f9e57613f47600284614f15565b60011415613f6c57613f65613f5f8883016020015190565b836142fb565b9150613f85565b613f8282613f7d8984016020015190565b6142fb565b91505b60019290921c91613f97602082614e7a565b9050613f33565b5090931495945050505050565b600080613fb98360486128d7565b60e81c9050600083604b81518110613fd357613fd3614922565b016020015160f81c9050600061400783600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff169050600061401b600384614eb7565b60ff16905061402c8161010061500d565b6140369083614ef6565b9695505050505050565b6000611e547bffff000000000000000000000000000000000000000000000000000083614307565b6000605082516140789190614f15565b156140865750600019919050565b506040805160808101909152605081526000908190815b8451811015614267576140b1858383614313565b80156140d1576140c182846143b2565b6140d15750600119949350505050565b60006140dc83613fab565b90506140e783612909565b93508061422b8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b111561423e575060021995945050505050565b61425161424a82614040565b86906143db565b94506142609050605082614e7a565b905061409d565b505050919050565b600082828151811061428357614283614922565b60209101015160f81c60ff141561429c57506008611e54565b8282815181106142ae576142ae614922565b60209101015160f81c60fe14156142c757506004611e54565b8282815181106142d9576142d9614922565b60209101015160f81c60fd14156142f257506002611e54565b50600092915050565b60006128e68383614439565b60006128e6828461490e565b815160006143218284614e7a565b90508281118015614333575080855110155b61437f5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b826020860101602085018382015b808310156143a857825182526020928301929091019061438d565b5050505050505050565b6000806143be84614467565b90508281146143d1576000915050611e54565b5060019392505050565b60006143e78284614e7a565b905082811015611e545760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016106d8565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611e54565b60006020828403121561448657600080fd5b5035919050565b60006080828403121561449f57600080fd5b50919050565b60006060828403121561449f57600080fd5b600080600060a084860312156144cc57600080fd5b83356001600160401b03808211156144e357600080fd5b6144ef8783880161448d565b9450602086013591508082111561450557600080fd5b50614512868287016144a5565b92505061353b85604086016144a5565b60008082840361010081121561453757600080fd5b83356001600160401b0381111561454d57600080fd5b6145598682870161448d565b93505060e0601f198201121561456e57600080fd5b506020830190509250929050565b80356001600160a01b038116811461459357600080fd5b919050565b600080604083850312156145ab57600080fd5b6145b48361457c565b9150602083013580151581146145c957600080fd5b809150509250929050565b80356001600160601b03198116811461459357600080fd5b6000602082840312156145fe57600080fd5b6128e6826145d4565b60008060008060c0858703121561461d57600080fd5b84356001600160401b038082111561463457600080fd5b6146408883890161448d565b9550602087013591508082111561465657600080fd5b50614663878288016144a5565b93505061467386604087016144a5565b915061468160a086016145d4565b905092959194509250565b80356001600160401b038116811461459357600080fd5b600080600080600060c086880312156146bb57600080fd5b6146c4866145d4565b94506146d387602088016144a5565b935060808601356001600160401b03808211156146ef57600080fd5b818801915088601f83011261470357600080fd5b81358181111561471257600080fd5b89602082850101111561472457600080fd5b60208301955080945050505061473c60a0870161468c565b90509295509295909350565b60006020828403121561475a57600080fd5b6128e68261457c565b634e487b7160e01b600052602160045260246000fd5b604081016005841061479b57634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e198436030181126147ca57600080fd5b8301803591506001600160401b038211156147e457600080fd5b602001915036819003821315613cd457600080fd5b803563ffffffff8116811461459357600080fd5b60006020828403121561481f57600080fd5b6128e6826147f9565b60006020828403121561483a57600080fd5b6128e68261468c565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561486b57600080fd5b604051606081018181106001600160401b038211171561489b57634e487b7160e01b600052604160045260246000fd5b604052823581526148ae602084016147f9565b60208201526148bf6040840161468c565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156148f3576148f36148cb565b500390565b634e487b7160e01b600052601260045260246000fd5b60008261491d5761491d6148f8565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561494c5761494c6148cb565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156149955781516001600160a01b031684529284019290840190600101614970565b5050508381038285015284518082528583019183019060005b818110156149ca578351835292840192918401916001016149ae565b5090979650505050505050565b6000602082840312156149e957600080fd5b81356001600160c01b0319811681146128e657600080fd5b600060208284031215614a1357600080fd5b81356001600160e01b0319811681146128e657600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614aff614af2614ac9602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614bbe614af2614ac9614aa0614b95601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614c94614c6b60068301614b6c565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614cc15760208185018101518683015201614ca7565b81811115614cd0576000828601525b509290920192915050565b60006128e68284614ca0565b600060208284031215614cf957600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60006001600160401b0383811690831681811015614d6257614d626148cb565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b0380841680614dcc57614dcc6148f8565b92169190910492915050565b60006001600160401b03808316818516808303821115614dfa57614dfa6148cb565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b60008219821115614e8d57614e8d6148cb565b500190565b600060ff821660ff84168060ff03821115614eaf57614eaf6148cb565b019392505050565b600060ff821660ff841680821015614ed157614ed16148cb565b90039392505050565b6001600160601b031983168152600061270a6014830184614ca0565b6000816000190483118215151615614f1057614f106148cb565b500290565b600082614f2457614f246148f8565b500690565b600181815b80851115614f64578160001904821115614f4a57614f4a6148cb565b80851615614f5757918102915b93841c9390800290614f2e565b509250929050565b600082614f7b57506001611e54565b81614f8857506000611e54565b8160018114614f9e5760028114614fa857614fc4565b6001915050611e54565b60ff841115614fb957614fb96148cb565b50506001821b611e54565b5060208310610133831016604e8410600b8410161715614fe7575081810a611e54565b614ff18383614f29565b8060001904821115615005576150056148cb565b029392505050565b60006128e68383614f6c56fea26469706673582212200881736302b14978be19c368c6446c3395867c82dc3c9f1e8e0825e7e8293e6264736f6c63430008090033",
|
|
834
834
|
"linkReferences": {},
|
|
835
835
|
"deployedLinkReferences": {}
|
|
836
836
|
}
|
|
@@ -189,15 +189,21 @@ contract Bridge is Ownable {
|
|
|
189
189
|
|
|
190
190
|
/// TODO: Make it governable.
|
|
191
191
|
/// @notice The minimal amount that can be requested for redemption.
|
|
192
|
-
/// Value of this parameter
|
|
193
|
-
///
|
|
194
|
-
///
|
|
192
|
+
/// Value of this parameter must take into account the value of
|
|
193
|
+
/// `redemptionTreasuryFeeDivisor` and `redemptionTxMaxFee`
|
|
194
|
+
/// parameters in order to make requests that can incur the
|
|
195
|
+
/// treasury and transaction fee and still satisfy the redeemer.
|
|
195
196
|
uint64 public redemptionDustThreshold;
|
|
196
197
|
|
|
197
198
|
/// TODO: Make it governable.
|
|
198
|
-
/// @notice
|
|
199
|
-
/// transferred to the treasury upon
|
|
200
|
-
|
|
199
|
+
/// @notice Divisor used to compute the treasury fee taken from each
|
|
200
|
+
/// redemption request and transferred to the treasury upon
|
|
201
|
+
/// successful request finalization. That fee is computed as follows:
|
|
202
|
+
/// `treasuryFee = requestedAmount / redemptionTreasuryFeeDivisor`
|
|
203
|
+
/// For example, if the treasury fee needs to be 2% of each
|
|
204
|
+
/// redemption request, the `redemptionTreasuryFeeDivisor` should
|
|
205
|
+
/// be set to `50` because `1/50 = 0.02 = 2%`.
|
|
206
|
+
uint64 public redemptionTreasuryFeeDivisor;
|
|
201
207
|
|
|
202
208
|
/// TODO: Make it governable.
|
|
203
209
|
/// @notice Maximum amount of BTC transaction fee that can be incurred by
|
|
@@ -334,7 +340,7 @@ contract Bridge is Ownable {
|
|
|
334
340
|
|
|
335
341
|
// TODO: Revisit initial values.
|
|
336
342
|
redemptionDustThreshold = 1000000; // 1000000 satoshi = 0.01 BTC
|
|
337
|
-
|
|
343
|
+
redemptionTreasuryFeeDivisor = 2000; // 1/2000 == 5bps == 0.05% == 0.0005
|
|
338
344
|
redemptionTxMaxFee = 1000; // 1000 satoshi
|
|
339
345
|
redemptionTimeout = 172800; // 48 hours
|
|
340
346
|
}
|
|
@@ -970,7 +976,7 @@ contract Bridge is Ownable {
|
|
|
970
976
|
/// on the redeemer output script will be always lower than this value
|
|
971
977
|
/// since the treasury and Bitcoin transaction fees must be incurred.
|
|
972
978
|
/// The minimal amount satisfying the request can be computed as:
|
|
973
|
-
/// `amount -
|
|
979
|
+
/// `amount - (amount / redemptionTreasuryFeeDivisor) - redemptionTxMaxFee`.
|
|
974
980
|
/// Fees values are taken at the moment of request creation.
|
|
975
981
|
/// @dev Requirements:
|
|
976
982
|
/// - Wallet behind `walletPubKeyHash` must be active
|
|
@@ -1065,7 +1071,12 @@ contract Bridge is Ownable {
|
|
|
1065
1071
|
"There is a pending redemption request from this wallet to the same address"
|
|
1066
1072
|
);
|
|
1067
1073
|
|
|
1068
|
-
|
|
1074
|
+
// No need to check whether `amount - treasuryFee - txMaxFee > 0`
|
|
1075
|
+
// since the `redemptionDustThreshold` should force that condition
|
|
1076
|
+
// to be always true.
|
|
1077
|
+
uint64 treasuryFee = redemptionTreasuryFeeDivisor > 0
|
|
1078
|
+
? amount / redemptionTreasuryFeeDivisor
|
|
1079
|
+
: 0;
|
|
1069
1080
|
uint64 txMaxFee = redemptionTxMaxFee;
|
|
1070
1081
|
|
|
1071
1082
|
// The main wallet UTXO's value doesn't include all pending redemptions.
|