@keep-network/tbtc-v2 0.1.1-dev.3 → 0.1.1-dev.30

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.
Files changed (42) hide show
  1. package/README.adoc +12 -0
  2. package/artifacts/TBTC.json +19 -18
  3. package/artifacts/TBTCToken.json +19 -18
  4. package/artifacts/VendingMachine.json +20 -19
  5. package/artifacts/solcInputs/087a7a27c8cd210b7c63e594263dfed9.json +197 -0
  6. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  7. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
  8. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  9. package/build/contracts/bank/Bank.sol/Bank.json +43 -2
  10. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +4 -0
  11. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +96 -0
  12. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  13. package/build/contracts/bridge/Bridge.sol/Bridge.json +1598 -71
  14. package/build/contracts/bridge/Bridge.sol/IRelay.dbg.json +4 -0
  15. package/build/contracts/bridge/Bridge.sol/IRelay.json +37 -0
  16. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
  17. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
  18. package/build/contracts/bridge/Frauds.sol/Frauds.dbg.json +4 -0
  19. package/build/contracts/bridge/Frauds.sol/Frauds.json +138 -0
  20. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  21. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
  22. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
  23. package/build/contracts/bridge/Wallets.sol/Wallets.json +138 -0
  24. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  25. package/build/contracts/token/TBTC.sol/TBTC.json +2 -2
  26. package/build/contracts/vault/IVault.sol/IVault.dbg.json +4 -0
  27. package/build/contracts/vault/IVault.sol/IVault.json +47 -0
  28. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  29. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +38 -2
  30. package/contracts/GovernanceUtils.sol +1 -1
  31. package/contracts/bank/Bank.sol +69 -18
  32. package/contracts/bridge/BitcoinTx.sol +241 -0
  33. package/contracts/bridge/Bridge.sol +1956 -104
  34. package/contracts/bridge/EcdsaLib.sol +30 -0
  35. package/contracts/bridge/Frauds.sol +531 -0
  36. package/contracts/bridge/VendingMachine.sol +1 -1
  37. package/contracts/bridge/Wallets.sol +521 -0
  38. package/contracts/token/TBTC.sol +1 -1
  39. package/contracts/vault/IVault.sol +60 -0
  40. package/contracts/vault/TBTCVault.sol +50 -8
  41. package/package.json +28 -24
  42. package/artifacts/solcInputs/cebfa5efa019cb9c8c5e23e38703b883.json +0 -113
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/b41d78db29c15518d81aced0093ae76c.json"
3
+ "buildInfo": "../../build-info/5c1940e1952bbf0794a8df67d0f763e2.json"
4
4
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "GovernanceUtils",
4
4
  "sourceName": "contracts/GovernanceUtils.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200508e4ac33f9b16a4b0b5d3e0b4331fe3460bec133684812a5a410a07988436e64736f6c63430008040033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200508e4ac33f9b16a4b0b5d3e0b4331fe3460bec133684812a5a410a07988436e64736f6c63430008040033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202b749070d1b15d59740778165ba1eb70233da83082518e42f2a24673d22ea81664736f6c63430008090033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202b749070d1b15d59740778165ba1eb70233da83082518e42f2a24673d22ea81664736f6c63430008090033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/b41d78db29c15518d81aced0093ae76c.json"
3
+ "buildInfo": "../../../build-info/5c1940e1952bbf0794a8df67d0f763e2.json"
4
4
  }
@@ -196,6 +196,24 @@
196
196
  "stateMutability": "nonpayable",
197
197
  "type": "function"
198
198
  },
199
+ {
200
+ "inputs": [
201
+ {
202
+ "internalType": "address",
203
+ "name": "vault",
204
+ "type": "address"
205
+ },
206
+ {
207
+ "internalType": "uint256",
208
+ "name": "amount",
209
+ "type": "uint256"
210
+ }
211
+ ],
212
+ "name": "approveBalanceAndCall",
213
+ "outputs": [],
214
+ "stateMutability": "nonpayable",
215
+ "type": "function"
216
+ },
199
217
  {
200
218
  "inputs": [
201
219
  {
@@ -321,6 +339,29 @@
321
339
  "stateMutability": "nonpayable",
322
340
  "type": "function"
323
341
  },
342
+ {
343
+ "inputs": [
344
+ {
345
+ "internalType": "address",
346
+ "name": "vault",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "internalType": "address[]",
351
+ "name": "depositors",
352
+ "type": "address[]"
353
+ },
354
+ {
355
+ "internalType": "uint256[]",
356
+ "name": "depositedAmounts",
357
+ "type": "uint256[]"
358
+ }
359
+ ],
360
+ "name": "increaseBalanceAndCall",
361
+ "outputs": [],
362
+ "stateMutability": "nonpayable",
363
+ "type": "function"
364
+ },
324
365
  {
325
366
  "inputs": [
326
367
  {
@@ -489,8 +530,8 @@
489
530
  "type": "function"
490
531
  }
491
532
  ],
492
- "bytecode": "0x60c06040523480156200001157600080fd5b5062000032620000266200005760201b60201c565b6200005f60201b60201c565b46608081815250506200004a6200012360201b60201c565b60a08181525050620002cb565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600981526020017f544254432042616e6b0000000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250805190602001204630604051602001620001d895949392919062000226565b60405160208183030381529060405280519060200120905090565b620001fe8162000283565b82525050565b6200020f8162000297565b82525050565b6200022081620002c1565b82525050565b600060a0820190506200023d600083018862000204565b6200024c602083018762000204565b6200025b604083018662000204565b6200026a606083018562000215565b620002796080830184620001f3565b9695505050505050565b60006200029082620002a1565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60805160a0516125ec620002ff6000396000818161067a0152610c1f0152600081816106520152610ac801526125ec6000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780638da5cb5b1161007c5780638da5cb5b146102fc578063b4f94b2e1461031a578063d505accf14610338578063dd62ed3e14610354578063e78cea9214610384578063f2fde38b146103a257610137565b806370a082311461025857806370ae92d214610288578063715018a6146102b8578063771da5c5146102c25780637c6db49c146102e057610137565b806346b05e09116100ff57806346b05e09146101cc57806356a6d9ef146101e85780635b86f599146102045780635bfd99b9146102205780636eb382121461023c57610137565b80630b6d324c1461013c578063266a123a1461015857806330adf81f146101745780633644e51514610192578063392aee43146101b0575b600080fd5b6101566004803603810190610151919061191b565b6103be565b005b610172600480360381019061016d9190611957565b610494565b005b61017c61062a565b6040516101899190611ced565b60405180910390f35b61019a61064e565b6040516101a79190611ced565b60405180910390f35b6101ca60048036038101906101c591906119cc565b6106ae565b005b6101e660048036038101906101e1919061191b565b610755565b005b61020260048036038101906101fd919061191b565b610764565b005b61021e6004803603810190610219919061191b565b610773565b005b61023a6004803603810190610235919061191b565b610811565b005b610256600480360381019061025191906117c9565b6108a7565b005b610272600480360381019061026d91906117c9565b610a0e565b60405161027f9190612001565b60405180910390f35b6102a2600480360381019061029d91906117c9565b610a26565b6040516102af9190612001565b60405180910390f35b6102c0610a3e565b005b6102ca610ac6565b6040516102d79190612001565b60405180910390f35b6102fa60048036038101906102f5919061182e565b610aea565b005b610304610bf4565b6040516103119190611cd2565b60405180910390f35b610322610c1d565b60405161032f9190611ced565b60405180910390f35b610352600480360381019061034d919061187d565b610c41565b005b61036e600480360381019061036991906117f2565b610f25565b60405161037b9190612001565b60405180910390f35b61038c610f4a565b6040516103999190611cd2565b60405180910390f35b6103bc60048036038101906103b791906117c9565b610f70565b005b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990611fe1565b60405180910390fd5b61048f3384848403611068565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051b90611fa1565b60405180910390fd5b81819050848490501461056c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056390611e01565b60405180910390fd5b60005b84849050811015610623576106108585838181106105b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906105cb91906117c9565b848484818110610604577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356111c3565b808061061b90612115565b91505061056f565b5050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60007f00000000000000000000000000000000000000000000000000000000000000004614156106a0577f000000000000000000000000000000000000000000000000000000000000000090506106ab565b6106a86112da565b90505b90565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106fd919061208e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f9c6be7c4260e52ea2e41d7f17932147ab78756f1bb2247a2554796d969741aff8260405161074a9190612001565b60405180910390a250565b610760338383611068565b5050565b61076f3383836113a8565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa90611fa1565b60405180910390fd5b61080d82826111c3565b5050565b6108a3338383600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461089e9190612038565b611068565b5050565b6108af611615565b73ffffffffffffffffffffffffffffffffffffffff166108cd610bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a90611f01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90611f21565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a81604051610a039190611cd2565b60405180910390a150565b60026020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b610a46611615565b73ffffffffffffffffffffffffffffffffffffffff16610a64610bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190611f01565b60405180910390fd5b610ac4600061161d565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610be35781811015610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc90611e41565b60405180910390fd5b610be28433848403611068565b5b610bee8484846113a8565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b42841015610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90611f61565b60405180910390fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08160001c1115610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce190611f81565b60405180910390fd5b601b8360ff161480610cff5750601c8360ff16145b610d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3590611e61565b60405180910390fd5b6000610d4861064e565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610dbc90612115565b919050558a604051602001610dd696959493929190611d08565b60405160208183030381529060405280519060200120604051602001610dfd929190611c9b565b604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051610e3a9493929190611dbc565b6020604051602081039080840390855afa158015610e5c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610ed057508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0690611ea1565b60405180910390fd5b610f1a898989611068565b505050505050505050565b6003602052816000526040600020602052806000526040600020600091509150505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f78611615565b73ffffffffffffffffffffffffffffffffffffffff16610f96610bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390611f01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390611e21565b60405180910390fd5b6110658161161d565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90611ec1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f2fe5e8e7796010737e636f63b35a0383dc160b68483984f2df987c78e842b405836040516111b69190612001565b60405180910390a3505050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122990611fc1565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112819190612038565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f7a702e80a9c183a6ce9d6732991df2e914555ba35a364a70aed2433984e7544b826040516112ce9190612001565b60405180910390a25050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600981526020017f544254432042616e6b0000000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525080519060200120463060405160200161138d959493929190611d69565b60405160208183030381529060405280519060200120905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90611f41565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e90611e81565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590611ee1565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115a39190612038565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f4163d0b06696468b3d7903f482bcd0097bd38a9a9086157479fd6c6561d24261846040516116079190612001565b60405180910390a350505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000813590506116f08161255a565b92915050565b60008083601f84011261170857600080fd5b8235905067ffffffffffffffff81111561172157600080fd5b60208301915083602082028301111561173957600080fd5b9250929050565b60008083601f84011261175257600080fd5b8235905067ffffffffffffffff81111561176b57600080fd5b60208301915083602082028301111561178357600080fd5b9250929050565b60008135905061179981612571565b92915050565b6000813590506117ae81612588565b92915050565b6000813590506117c38161259f565b92915050565b6000602082840312156117db57600080fd5b60006117e9848285016116e1565b91505092915050565b6000806040838503121561180557600080fd5b6000611813858286016116e1565b9250506020611824858286016116e1565b9150509250929050565b60008060006060848603121561184357600080fd5b6000611851868287016116e1565b9350506020611862868287016116e1565b92505060406118738682870161179f565b9150509250925092565b600080600080600080600060e0888a03121561189857600080fd5b60006118a68a828b016116e1565b97505060206118b78a828b016116e1565b96505060406118c88a828b0161179f565b95505060606118d98a828b0161179f565b94505060806118ea8a828b016117b4565b93505060a06118fb8a828b0161178a565b92505060c061190c8a828b0161178a565b91505092959891949750929550565b6000806040838503121561192e57600080fd5b600061193c858286016116e1565b925050602061194d8582860161179f565b9150509250929050565b6000806000806040858703121561196d57600080fd5b600085013567ffffffffffffffff81111561198757600080fd5b611993878288016116f6565b9450945050602085013567ffffffffffffffff8111156119b257600080fd5b6119be87828801611740565b925092505092959194509250565b6000602082840312156119de57600080fd5b60006119ec8482850161179f565b91505092915050565b6119fe816120c2565b82525050565b611a0d816120d4565b82525050565b611a24611a1f826120d4565b61215e565b82525050565b6000611a3760208361201c565b9150611a4282612197565b602082019050919050565b6000611a5a60268361201c565b9150611a65826121c0565b604082019050919050565b6000611a7d60218361201c565b9150611a888261220f565b604082019050919050565b6000611aa060028361202d565b9150611aab8261225e565b600282019050919050565b6000611ac3601b8361201c565b9150611ace82612287565b602082019050919050565b6000611ae660248361201c565b9150611af1826122b0565b604082019050919050565b6000611b0960118361201c565b9150611b14826122ff565b602082019050919050565b6000611b2c60238361201c565b9150611b3782612328565b604082019050919050565b6000611b4f601f8361201c565b9150611b5a82612377565b602082019050919050565b6000611b7260208361201c565b9150611b7d826123a0565b602082019050919050565b6000611b95601e8361201c565b9150611ba0826123c9565b602082019050919050565b6000611bb860248361201c565b9150611bc3826123f2565b604082019050919050565b6000611bdb60128361201c565b9150611be682612441565b602082019050919050565b6000611bfe601b8361201c565b9150611c098261246a565b602082019050919050565b6000611c2160188361201c565b9150611c2c82612493565b602082019050919050565b6000611c4460218361201c565b9150611c4f826124bc565b604082019050919050565b6000611c67602d8361201c565b9150611c728261250b565b604082019050919050565b611c86816120fe565b82525050565b611c9581612108565b82525050565b6000611ca682611a93565b9150611cb28285611a13565b602082019150611cc28284611a13565b6020820191508190509392505050565b6000602082019050611ce760008301846119f5565b92915050565b6000602082019050611d026000830184611a04565b92915050565b600060c082019050611d1d6000830189611a04565b611d2a60208301886119f5565b611d3760408301876119f5565b611d446060830186611c7d565b611d516080830185611c7d565b611d5e60a0830184611c7d565b979650505050505050565b600060a082019050611d7e6000830188611a04565b611d8b6020830187611a04565b611d986040830186611a04565b611da56060830185611c7d565b611db260808301846119f5565b9695505050505050565b6000608082019050611dd16000830187611a04565b611dde6020830186611c8c565b611deb6040830185611a04565b611df86060830184611a04565b95945050505050565b60006020820190508181036000830152611e1a81611a2a565b9050919050565b60006020820190508181036000830152611e3a81611a4d565b9050919050565b60006020820190508181036000830152611e5a81611a70565b9050919050565b60006020820190508181036000830152611e7a81611ab6565b9050919050565b60006020820190508181036000830152611e9a81611ad9565b9050919050565b60006020820190508181036000830152611eba81611afc565b9050919050565b60006020820190508181036000830152611eda81611b1f565b9050919050565b60006020820190508181036000830152611efa81611b42565b9050919050565b60006020820190508181036000830152611f1a81611b65565b9050919050565b60006020820190508181036000830152611f3a81611b88565b9050919050565b60006020820190508181036000830152611f5a81611bab565b9050919050565b60006020820190508181036000830152611f7a81611bce565b9050919050565b60006020820190508181036000830152611f9a81611bf1565b9050919050565b60006020820190508181036000830152611fba81611c14565b9050919050565b60006020820190508181036000830152611fda81611c37565b9050919050565b60006020820190508181036000830152611ffa81611c5a565b9050919050565b60006020820190506120166000830184611c7d565b92915050565b600082825260208201905092915050565b600081905092915050565b6000612043826120fe565b915061204e836120fe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561208357612082612168565b5b828201905092915050565b6000612099826120fe565b91506120a4836120fe565b9250828210156120b7576120b6612168565b5b828203905092915050565b60006120cd826120de565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612120826120fe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561215357612152612168565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f417272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e76616c6964207369676e6174757265202776272076616c75650000000000600082015250565b7f43616e206e6f74207472616e7366657220746f207468652042616e6b2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b7f43616e206e6f7420617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4272696467652061646472657373206d757374206e6f74206265203078300000600082015250565b7f43616e206e6f74207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5065726d697373696f6e20657870697265640000000000000000000000000000600082015250565b7f496e76616c6964207369676e6174757265202773272076616c75650000000000600082015250565b7f43616c6c6572206973206e6f7420746865206272696467650000000000000000600082015250565b7f43616e206e6f7420696e6372656173652062616c616e636520666f722042616e60008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e206e6f742064656372656173652062616c616e636520616c6c6f77616e60008201527f63652062656c6f77207a65726f00000000000000000000000000000000000000602082015250565b612563816120c2565b811461256e57600080fd5b50565b61257a816120d4565b811461258557600080fd5b50565b612591816120fe565b811461259c57600080fd5b50565b6125a881612108565b81146125b357600080fd5b5056fea2646970667358221220fca3107c371e45c65fe6a7a44602d781f6a5e3650ff49462df38c125e34a7c3e64736f6c63430008040033",
493
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780638da5cb5b1161007c5780638da5cb5b146102fc578063b4f94b2e1461031a578063d505accf14610338578063dd62ed3e14610354578063e78cea9214610384578063f2fde38b146103a257610137565b806370a082311461025857806370ae92d214610288578063715018a6146102b8578063771da5c5146102c25780637c6db49c146102e057610137565b806346b05e09116100ff57806346b05e09146101cc57806356a6d9ef146101e85780635b86f599146102045780635bfd99b9146102205780636eb382121461023c57610137565b80630b6d324c1461013c578063266a123a1461015857806330adf81f146101745780633644e51514610192578063392aee43146101b0575b600080fd5b6101566004803603810190610151919061191b565b6103be565b005b610172600480360381019061016d9190611957565b610494565b005b61017c61062a565b6040516101899190611ced565b60405180910390f35b61019a61064e565b6040516101a79190611ced565b60405180910390f35b6101ca60048036038101906101c591906119cc565b6106ae565b005b6101e660048036038101906101e1919061191b565b610755565b005b61020260048036038101906101fd919061191b565b610764565b005b61021e6004803603810190610219919061191b565b610773565b005b61023a6004803603810190610235919061191b565b610811565b005b610256600480360381019061025191906117c9565b6108a7565b005b610272600480360381019061026d91906117c9565b610a0e565b60405161027f9190612001565b60405180910390f35b6102a2600480360381019061029d91906117c9565b610a26565b6040516102af9190612001565b60405180910390f35b6102c0610a3e565b005b6102ca610ac6565b6040516102d79190612001565b60405180910390f35b6102fa60048036038101906102f5919061182e565b610aea565b005b610304610bf4565b6040516103119190611cd2565b60405180910390f35b610322610c1d565b60405161032f9190611ced565b60405180910390f35b610352600480360381019061034d919061187d565b610c41565b005b61036e600480360381019061036991906117f2565b610f25565b60405161037b9190612001565b60405180910390f35b61038c610f4a565b6040516103999190611cd2565b60405180910390f35b6103bc60048036038101906103b791906117c9565b610f70565b005b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161047990611fe1565b60405180910390fd5b61048f3384848403611068565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161051b90611fa1565b60405180910390fd5b81819050848490501461056c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056390611e01565b60405180910390fd5b60005b84849050811015610623576106108585838181106105b6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906105cb91906117c9565b848484818110610604577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356111c3565b808061061b90612115565b91505061056f565b5050505050565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60007f00000000000000000000000000000000000000000000000000000000000000004614156106a0577f000000000000000000000000000000000000000000000000000000000000000090506106ab565b6106a86112da565b90505b90565b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106fd919061208e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff167f9c6be7c4260e52ea2e41d7f17932147ab78756f1bb2247a2554796d969741aff8260405161074a9190612001565b60405180910390a250565b610760338383611068565b5050565b61076f3383836113a8565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa90611fa1565b60405180910390fd5b61080d82826111c3565b5050565b6108a3338383600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461089e9190612038565b611068565b5050565b6108af611615565b73ffffffffffffffffffffffffffffffffffffffff166108cd610bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091a90611f01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90611f21565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a81604051610a039190611cd2565b60405180910390a150565b60026020528060005260406000206000915090505481565b60046020528060005260406000206000915090505481565b610a46611615565b73ffffffffffffffffffffffffffffffffffffffff16610a64610bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610aba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab190611f01565b60405180910390fd5b610ac4600061161d565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610be35781811015610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc90611e41565b60405180910390fd5b610be28433848403611068565b5b610bee8484846113a8565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b42841015610c84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7b90611f61565b60405180910390fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08160001c1115610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce190611f81565b60405180910390fd5b601b8360ff161480610cff5750601c8360ff16145b610d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3590611e61565b60405180910390fd5b6000610d4861064e565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9898989600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190610dbc90612115565b919050558a604051602001610dd696959493929190611d08565b60405160208183030381529060405280519060200120604051602001610dfd929190611c9b565b604051602081830303815290604052805190602001209050600060018286868660405160008152602001604052604051610e3a9493929190611dbc565b6020604051602081039080840390855afa158015610e5c573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614158015610ed057508873ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610f0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0690611ea1565b60405180910390fd5b610f1a898989611068565b505050505050505050565b6003602052816000526040600020602052806000526040600020600091509150505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f78611615565b73ffffffffffffffffffffffffffffffffffffffff16610f96610bf4565b73ffffffffffffffffffffffffffffffffffffffff1614610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390611f01565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561105c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105390611e21565b60405180910390fd5b6110658161161d565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90611ec1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f2fe5e8e7796010737e636f63b35a0383dc160b68483984f2df987c78e842b405836040516111b69190612001565b60405180910390a3505050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122990611fc1565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112819190612038565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f7a702e80a9c183a6ce9d6732991df2e914555ba35a364a70aed2433984e7544b826040516112ce9190612001565b60405180910390a25050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6040518060400160405280600981526020017f544254432042616e6b0000000000000000000000000000000000000000000000815250805190602001206040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525080519060200120463060405160200161138d959493929190611d69565b60405160208183030381529060405280519060200120905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90611f41565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611487576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147e90611e81565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561150e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150590611ee1565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115a39190612038565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f4163d0b06696468b3d7903f482bcd0097bd38a9a9086157479fd6c6561d24261846040516116079190612001565b60405180910390a350505050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000813590506116f08161255a565b92915050565b60008083601f84011261170857600080fd5b8235905067ffffffffffffffff81111561172157600080fd5b60208301915083602082028301111561173957600080fd5b9250929050565b60008083601f84011261175257600080fd5b8235905067ffffffffffffffff81111561176b57600080fd5b60208301915083602082028301111561178357600080fd5b9250929050565b60008135905061179981612571565b92915050565b6000813590506117ae81612588565b92915050565b6000813590506117c38161259f565b92915050565b6000602082840312156117db57600080fd5b60006117e9848285016116e1565b91505092915050565b6000806040838503121561180557600080fd5b6000611813858286016116e1565b9250506020611824858286016116e1565b9150509250929050565b60008060006060848603121561184357600080fd5b6000611851868287016116e1565b9350506020611862868287016116e1565b92505060406118738682870161179f565b9150509250925092565b600080600080600080600060e0888a03121561189857600080fd5b60006118a68a828b016116e1565b97505060206118b78a828b016116e1565b96505060406118c88a828b0161179f565b95505060606118d98a828b0161179f565b94505060806118ea8a828b016117b4565b93505060a06118fb8a828b0161178a565b92505060c061190c8a828b0161178a565b91505092959891949750929550565b6000806040838503121561192e57600080fd5b600061193c858286016116e1565b925050602061194d8582860161179f565b9150509250929050565b6000806000806040858703121561196d57600080fd5b600085013567ffffffffffffffff81111561198757600080fd5b611993878288016116f6565b9450945050602085013567ffffffffffffffff8111156119b257600080fd5b6119be87828801611740565b925092505092959194509250565b6000602082840312156119de57600080fd5b60006119ec8482850161179f565b91505092915050565b6119fe816120c2565b82525050565b611a0d816120d4565b82525050565b611a24611a1f826120d4565b61215e565b82525050565b6000611a3760208361201c565b9150611a4282612197565b602082019050919050565b6000611a5a60268361201c565b9150611a65826121c0565b604082019050919050565b6000611a7d60218361201c565b9150611a888261220f565b604082019050919050565b6000611aa060028361202d565b9150611aab8261225e565b600282019050919050565b6000611ac3601b8361201c565b9150611ace82612287565b602082019050919050565b6000611ae660248361201c565b9150611af1826122b0565b604082019050919050565b6000611b0960118361201c565b9150611b14826122ff565b602082019050919050565b6000611b2c60238361201c565b9150611b3782612328565b604082019050919050565b6000611b4f601f8361201c565b9150611b5a82612377565b602082019050919050565b6000611b7260208361201c565b9150611b7d826123a0565b602082019050919050565b6000611b95601e8361201c565b9150611ba0826123c9565b602082019050919050565b6000611bb860248361201c565b9150611bc3826123f2565b604082019050919050565b6000611bdb60128361201c565b9150611be682612441565b602082019050919050565b6000611bfe601b8361201c565b9150611c098261246a565b602082019050919050565b6000611c2160188361201c565b9150611c2c82612493565b602082019050919050565b6000611c4460218361201c565b9150611c4f826124bc565b604082019050919050565b6000611c67602d8361201c565b9150611c728261250b565b604082019050919050565b611c86816120fe565b82525050565b611c9581612108565b82525050565b6000611ca682611a93565b9150611cb28285611a13565b602082019150611cc28284611a13565b6020820191508190509392505050565b6000602082019050611ce760008301846119f5565b92915050565b6000602082019050611d026000830184611a04565b92915050565b600060c082019050611d1d6000830189611a04565b611d2a60208301886119f5565b611d3760408301876119f5565b611d446060830186611c7d565b611d516080830185611c7d565b611d5e60a0830184611c7d565b979650505050505050565b600060a082019050611d7e6000830188611a04565b611d8b6020830187611a04565b611d986040830186611a04565b611da56060830185611c7d565b611db260808301846119f5565b9695505050505050565b6000608082019050611dd16000830187611a04565b611dde6020830186611c8c565b611deb6040830185611a04565b611df86060830184611a04565b95945050505050565b60006020820190508181036000830152611e1a81611a2a565b9050919050565b60006020820190508181036000830152611e3a81611a4d565b9050919050565b60006020820190508181036000830152611e5a81611a70565b9050919050565b60006020820190508181036000830152611e7a81611ab6565b9050919050565b60006020820190508181036000830152611e9a81611ad9565b9050919050565b60006020820190508181036000830152611eba81611afc565b9050919050565b60006020820190508181036000830152611eda81611b1f565b9050919050565b60006020820190508181036000830152611efa81611b42565b9050919050565b60006020820190508181036000830152611f1a81611b65565b9050919050565b60006020820190508181036000830152611f3a81611b88565b9050919050565b60006020820190508181036000830152611f5a81611bab565b9050919050565b60006020820190508181036000830152611f7a81611bce565b9050919050565b60006020820190508181036000830152611f9a81611bf1565b9050919050565b60006020820190508181036000830152611fba81611c14565b9050919050565b60006020820190508181036000830152611fda81611c37565b9050919050565b60006020820190508181036000830152611ffa81611c5a565b9050919050565b60006020820190506120166000830184611c7d565b92915050565b600082825260208201905092915050565b600081905092915050565b6000612043826120fe565b915061204e836120fe565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561208357612082612168565b5b828201905092915050565b6000612099826120fe565b91506120a4836120fe565b9250828210156120b7576120b6612168565b5b828203905092915050565b60006120cd826120de565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612120826120fe565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561215357612152612168565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f417272617973206d7573742068617665207468652073616d65206c656e677468600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e76616c6964207369676e6174757265202776272076616c75650000000000600082015250565b7f43616e206e6f74207472616e7366657220746f207468652042616e6b2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964207369676e6174757265000000000000000000000000000000600082015250565b7f43616e206e6f7420617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4272696467652061646472657373206d757374206e6f74206265203078300000600082015250565b7f43616e206e6f74207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f5065726d697373696f6e20657870697265640000000000000000000000000000600082015250565b7f496e76616c6964207369676e6174757265202773272076616c75650000000000600082015250565b7f43616c6c6572206973206e6f7420746865206272696467650000000000000000600082015250565b7f43616e206e6f7420696e6372656173652062616c616e636520666f722042616e60008201527f6b00000000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e206e6f742064656372656173652062616c616e636520616c6c6f77616e60008201527f63652062656c6f77207a65726f00000000000000000000000000000000000000602082015250565b612563816120c2565b811461256e57600080fd5b50565b61257a816120d4565b811461258557600080fd5b50565b612591816120fe565b811461259c57600080fd5b50565b6125a881612108565b81146125b357600080fd5b5056fea2646970667358221220fca3107c371e45c65fe6a7a44602d781f6a5e3650ff49462df38c125e34a7c3e64736f6c63430008040033",
533
+ "bytecode": "0x60c060405234801561001057600080fd5b5061001a336100f9565b466080526100f16040805180820182526009815268544254432042616e6b60b81b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fa1cc9cffb2f2444066e5c95caef7925ee7ef97efc6002db29d3637e98e2f0dd2818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012090565b60a052610149565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60805160a0516117ec61017c6000396000818161032d01526106410152600081816102ce015261061801526117ec6000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806370a08231116100e3578063b4f94b2e1161008c578063dd62ed3e11610066578063dd62ed3e14610375578063e78cea92146103a0578063f2fde38b146103b357600080fd5b8063b4f94b2e14610328578063bb7e61bc1461034f578063d505accf1461036257600080fd5b8063771da5c5116100bd578063771da5c5146102c95780637c6db49c146102f05780638da5cb5b1461030357600080fd5b806370a082311461028157806370ae92d2146102a1578063715018a6146102c157600080fd5b8063392aee43116101455780635b86f5991161011f5780635b86f599146102485780635bfd99b91461025b5780636eb382121461026e57600080fd5b8063392aee431461020f57806346b05e091461022257806356a6d9ef1461023557600080fd5b8063266a123a11610176578063266a123a146101ba57806330adf81f146101cd5780633644e5151461020757600080fd5b80630b6d324c1461019257806315b9b92a146101a7575b600080fd5b6101a56101a0366004611425565b6103c6565b005b6101a56101b5366004611425565b610477565b6101a56101c836600461149b565b6104ff565b6101f47f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6040519081526020015b60405180910390f35b6101f4610614565b6101a561021d366004611507565b610764565b6101a5610230366004611425565b6107c0565b6101a5610243366004611425565b6107cf565b6101a5610256366004611425565b6107da565b6101a5610269366004611425565b61083e565b6101a561027c366004611520565b610879565b6101f461028f366004611520565b60026020526000908152604090205481565b6101f46102af366004611520565b60046020526000908152604090205481565b6101a561098a565b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b6101a56102fe366004611542565b6109f0565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b6101a561035d36600461157e565b610ab1565b6101a56103703660046115ff565b610c2e565b6101f4610383366004611672565b600360209081526000928352604080842090915290825290205481565b600154610310906001600160a01b031681565b6101a56103c1366004611520565b610f3e565b3360009081526003602090815260408083206001600160a01b0386168452909152902054818110156104655760405162461bcd60e51b815260206004820152602d60248201527f43616e206e6f742064656372656173652062616c616e636520616c6c6f77616e60448201527f63652062656c6f77207a65726f0000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104723384848403611020565b505050565b610482338383611020565b6040517f53794137000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b03831690635379413790604401600060405180830381600087803b1580156104e357600080fd5b505af11580156104f7573d6000803e3d6000fd5b505050505050565b6001546001600160a01b031633146105595760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b8281146105a85760405162461bcd60e51b815260206004820181905260248201527f417272617973206d7573742068617665207468652073616d65206c656e677468604482015260640161045c565b60005b8381101561060d576105fb8585838181106105c8576105c86116a5565b90506020020160208101906105dd9190611520565b8484848181106105ef576105ef6116a5565b905060200201356110fd565b80610605816116d1565b9150506105ab565b5050505050565b60007f000000000000000000000000000000000000000000000000000000000000000046141561066357507f000000000000000000000000000000000000000000000000000000000000000090565b50604080518082018252600981527f544254432042616e6b000000000000000000000000000000000000000000000060209182015281518083018352600181527f31000000000000000000000000000000000000000000000000000000000000009082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fa1cc9cffb2f2444066e5c95caef7925ee7ef97efc6002db29d3637e98e2f0dd2818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012090565b33600090815260026020526040812080548392906107839084906116ec565b909155505060405181815233907f9c6be7c4260e52ea2e41d7f17932147ab78756f1bb2247a2554796d969741aff9060200160405180910390a250565b6107cb338383611020565b5050565b6107cb3383836111eb565b6001546001600160a01b031633146108345760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b6107cb82826110fd565b3360008181526003602090815260408083206001600160a01b03871684529091529020546107cb91908490610874908590611703565b611020565b6000546001600160a01b031633146108d35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6001600160a01b0381166109295760405162461bcd60e51b815260206004820152601e60248201527f4272696467652061646472657373206d757374206e6f74206265203078300000604482015260640161045c565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a9060200160405180910390a150565b6000546001600160a01b031633146109e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6109ee60006113ac565b565b6001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610aa05781811015610a935760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360448201527f6500000000000000000000000000000000000000000000000000000000000000606482015260840161045c565b610aa08433848403611020565b610aab8484846111eb565b50505050565b6001546001600160a01b03163314610b0b5760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b828114610b5a5760405162461bcd60e51b815260206004820181905260248201527f417272617973206d7573742068617665207468652073616d65206c656e677468604482015260640161045c565b6000805b82811015610b9e57838382818110610b7857610b786116a5565b9050602002013582610b8a9190611703565b915080610b96816116d1565b915050610b5e565b50610ba986826110fd565b6040517f461c63730000000000000000000000000000000000000000000000000000000081526001600160a01b0387169063461c637390610bf490889088908890889060040161171b565b600060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b50505050505050505050565b42841015610c7e5760405162461bcd60e51b815260206004820152601260248201527f5065726d697373696f6e20657870697265640000000000000000000000000000604482015260640161045c565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0811115610cee5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202773272076616c75650000000000604482015260640161045c565b8260ff16601b1480610d0357508260ff16601c145b610d4f5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202776272076616c75650000000000604482015260640161045c565b6000610d59610614565b6001600160a01b038916600090815260046020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92909190610da7836116d1565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610e3b9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610ea6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610edc5750886001600160a01b0316816001600160a01b0316145b610f285760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015260640161045c565b610f33898989611020565b505050505050505050565b6000546001600160a01b03163314610f985760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6001600160a01b0381166110145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161045c565b61101d816113ac565b50565b6001600160a01b03821661109c5760405162461bcd60e51b815260206004820152602360248201527f43616e206e6f7420617070726f766520746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161045c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f2fe5e8e7796010737e636f63b35a0383dc160b68483984f2df987c78e842b405910160405180910390a3505050565b6001600160a01b03821630141561117c5760405162461bcd60e51b815260206004820152602160248201527f43616e206e6f7420696e6372656173652062616c616e636520666f722042616e60448201527f6b00000000000000000000000000000000000000000000000000000000000000606482015260840161045c565b6001600160a01b038216600090815260026020526040812080548392906111a4908490611703565b90915550506040518181526001600160a01b038316907f7a702e80a9c183a6ce9d6732991df2e914555ba35a364a70aed2433984e7544b9060200160405180910390a25050565b6001600160a01b03821661124d5760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b0382163014156112b25760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f207468652042616e6b206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b0383166000908152600260205260409020548181101561131b5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161045c565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290611352908490611703565b92505081905550826001600160a01b0316846001600160a01b03167f4163d0b06696468b3d7903f482bcd0097bd38a9a9086157479fd6c6561d242618460405161139e91815260200190565b60405180910390a350505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461142057600080fd5b919050565b6000806040838503121561143857600080fd5b61144183611409565b946020939093013593505050565b60008083601f84011261146157600080fd5b50813567ffffffffffffffff81111561147957600080fd5b6020830191508360208260051b850101111561149457600080fd5b9250929050565b600080600080604085870312156114b157600080fd5b843567ffffffffffffffff808211156114c957600080fd5b6114d58883890161144f565b909650945060208701359150808211156114ee57600080fd5b506114fb8782880161144f565b95989497509550505050565b60006020828403121561151957600080fd5b5035919050565b60006020828403121561153257600080fd5b61153b82611409565b9392505050565b60008060006060848603121561155757600080fd5b61156084611409565b925061156e60208501611409565b9150604084013590509250925092565b60008060008060006060868803121561159657600080fd5b61159f86611409565b9450602086013567ffffffffffffffff808211156115bc57600080fd5b6115c889838a0161144f565b909650945060408801359150808211156115e157600080fd5b506115ee8882890161144f565b969995985093965092949392505050565b600080600080600080600060e0888a03121561161a57600080fd5b61162388611409565b965061163160208901611409565b95506040880135945060608801359350608088013560ff8116811461165557600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561168557600080fd5b61168e83611409565b915061169c60208401611409565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156116e5576116e56116bb565b5060010190565b6000828210156116fe576116fe6116bb565b500390565b60008219821115611716576117166116bb565b500190565b6040808252810184905260008560608301825b8781101561175c576001600160a01b0361174784611409565b1682526020928301929091019060010161172e565b5083810360208501528481527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85111561179557600080fd5b8460051b91508186602083013760009101602001908152969550505050505056fea2646970667358221220daf90923e6ffe597897a90cd5fa71070c3b533a871798a2d54abb364a3dc1af064736f6c63430008090033",
534
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018d5760003560e01c806370a08231116100e3578063b4f94b2e1161008c578063dd62ed3e11610066578063dd62ed3e14610375578063e78cea92146103a0578063f2fde38b146103b357600080fd5b8063b4f94b2e14610328578063bb7e61bc1461034f578063d505accf1461036257600080fd5b8063771da5c5116100bd578063771da5c5146102c95780637c6db49c146102f05780638da5cb5b1461030357600080fd5b806370a082311461028157806370ae92d2146102a1578063715018a6146102c157600080fd5b8063392aee43116101455780635b86f5991161011f5780635b86f599146102485780635bfd99b91461025b5780636eb382121461026e57600080fd5b8063392aee431461020f57806346b05e091461022257806356a6d9ef1461023557600080fd5b8063266a123a11610176578063266a123a146101ba57806330adf81f146101cd5780633644e5151461020757600080fd5b80630b6d324c1461019257806315b9b92a146101a7575b600080fd5b6101a56101a0366004611425565b6103c6565b005b6101a56101b5366004611425565b610477565b6101a56101c836600461149b565b6104ff565b6101f47f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6040519081526020015b60405180910390f35b6101f4610614565b6101a561021d366004611507565b610764565b6101a5610230366004611425565b6107c0565b6101a5610243366004611425565b6107cf565b6101a5610256366004611425565b6107da565b6101a5610269366004611425565b61083e565b6101a561027c366004611520565b610879565b6101f461028f366004611520565b60026020526000908152604090205481565b6101f46102af366004611520565b60046020526000908152604090205481565b6101a561098a565b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b6101a56102fe366004611542565b6109f0565b6000546001600160a01b03165b6040516001600160a01b0390911681526020016101fe565b6101f47f000000000000000000000000000000000000000000000000000000000000000081565b6101a561035d36600461157e565b610ab1565b6101a56103703660046115ff565b610c2e565b6101f4610383366004611672565b600360209081526000928352604080842090915290825290205481565b600154610310906001600160a01b031681565b6101a56103c1366004611520565b610f3e565b3360009081526003602090815260408083206001600160a01b0386168452909152902054818110156104655760405162461bcd60e51b815260206004820152602d60248201527f43616e206e6f742064656372656173652062616c616e636520616c6c6f77616e60448201527f63652062656c6f77207a65726f0000000000000000000000000000000000000060648201526084015b60405180910390fd5b6104723384848403611020565b505050565b610482338383611020565b6040517f53794137000000000000000000000000000000000000000000000000000000008152336004820152602481018290526001600160a01b03831690635379413790604401600060405180830381600087803b1580156104e357600080fd5b505af11580156104f7573d6000803e3d6000fd5b505050505050565b6001546001600160a01b031633146105595760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b8281146105a85760405162461bcd60e51b815260206004820181905260248201527f417272617973206d7573742068617665207468652073616d65206c656e677468604482015260640161045c565b60005b8381101561060d576105fb8585838181106105c8576105c86116a5565b90506020020160208101906105dd9190611520565b8484848181106105ef576105ef6116a5565b905060200201356110fd565b80610605816116d1565b9150506105ab565b5050505050565b60007f000000000000000000000000000000000000000000000000000000000000000046141561066357507f000000000000000000000000000000000000000000000000000000000000000090565b50604080518082018252600981527f544254432042616e6b000000000000000000000000000000000000000000000060209182015281518083018352600181527f31000000000000000000000000000000000000000000000000000000000000009082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f818301527fa1cc9cffb2f2444066e5c95caef7925ee7ef97efc6002db29d3637e98e2f0dd2818401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a0808301919091528351808303909101815260c0909101909252815191012090565b33600090815260026020526040812080548392906107839084906116ec565b909155505060405181815233907f9c6be7c4260e52ea2e41d7f17932147ab78756f1bb2247a2554796d969741aff9060200160405180910390a250565b6107cb338383611020565b5050565b6107cb3383836111eb565b6001546001600160a01b031633146108345760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b6107cb82826110fd565b3360008181526003602090815260408083206001600160a01b03871684529091529020546107cb91908490610874908590611703565b611020565b6000546001600160a01b031633146108d35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6001600160a01b0381166109295760405162461bcd60e51b815260206004820152601e60248201527f4272696467652061646472657373206d757374206e6f74206265203078300000604482015260640161045c565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a9060200160405180910390a150565b6000546001600160a01b031633146109e45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6109ee60006113ac565b565b6001600160a01b03831660009081526003602090815260408083203384529091529020546000198114610aa05781811015610a935760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360448201527f6500000000000000000000000000000000000000000000000000000000000000606482015260840161045c565b610aa08433848403611020565b610aab8484846111eb565b50505050565b6001546001600160a01b03163314610b0b5760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420746865206272696467650000000000000000604482015260640161045c565b828114610b5a5760405162461bcd60e51b815260206004820181905260248201527f417272617973206d7573742068617665207468652073616d65206c656e677468604482015260640161045c565b6000805b82811015610b9e57838382818110610b7857610b786116a5565b9050602002013582610b8a9190611703565b915080610b96816116d1565b915050610b5e565b50610ba986826110fd565b6040517f461c63730000000000000000000000000000000000000000000000000000000081526001600160a01b0387169063461c637390610bf490889088908890889060040161171b565b600060405180830381600087803b158015610c0e57600080fd5b505af1158015610c22573d6000803e3d6000fd5b50505050505050505050565b42841015610c7e5760405162461bcd60e51b815260206004820152601260248201527f5065726d697373696f6e20657870697265640000000000000000000000000000604482015260640161045c565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0811115610cee5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202773272076616c75650000000000604482015260640161045c565b8260ff16601b1480610d0357508260ff16601c145b610d4f5760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202776272076616c75650000000000604482015260640161045c565b6000610d59610614565b6001600160a01b038916600090815260046020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92909190610da7836116d1565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610e3b9291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610ea6573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610edc5750886001600160a01b0316816001600160a01b0316145b610f285760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e6174757265000000000000000000000000000000604482015260640161045c565b610f33898989611020565b505050505050505050565b6000546001600160a01b03163314610f985760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161045c565b6001600160a01b0381166110145760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161045c565b61101d816113ac565b50565b6001600160a01b03821661109c5760405162461bcd60e51b815260206004820152602360248201527f43616e206e6f7420617070726f766520746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161045c565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f2fe5e8e7796010737e636f63b35a0383dc160b68483984f2df987c78e842b405910160405180910390a3505050565b6001600160a01b03821630141561117c5760405162461bcd60e51b815260206004820152602160248201527f43616e206e6f7420696e6372656173652062616c616e636520666f722042616e60448201527f6b00000000000000000000000000000000000000000000000000000000000000606482015260840161045c565b6001600160a01b038216600090815260026020526040812080548392906111a4908490611703565b90915550506040518181526001600160a01b038316907f7a702e80a9c183a6ce9d6732991df2e914555ba35a364a70aed2433984e7544b9060200160405180910390a25050565b6001600160a01b03821661124d5760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b0382163014156112b25760405162461bcd60e51b8152602060048201526024808201527f43616e206e6f74207472616e7366657220746f207468652042616e6b206164646044820152637265737360e01b606482015260840161045c565b6001600160a01b0383166000908152600260205260409020548181101561131b5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e636500604482015260640161045c565b6001600160a01b03808516600090815260026020526040808220858503905591851681529081208054849290611352908490611703565b92505081905550826001600160a01b0316846001600160a01b03167f4163d0b06696468b3d7903f482bcd0097bd38a9a9086157479fd6c6561d242618460405161139e91815260200190565b60405180910390a350505050565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461142057600080fd5b919050565b6000806040838503121561143857600080fd5b61144183611409565b946020939093013593505050565b60008083601f84011261146157600080fd5b50813567ffffffffffffffff81111561147957600080fd5b6020830191508360208260051b850101111561149457600080fd5b9250929050565b600080600080604085870312156114b157600080fd5b843567ffffffffffffffff808211156114c957600080fd5b6114d58883890161144f565b909650945060208701359150808211156114ee57600080fd5b506114fb8782880161144f565b95989497509550505050565b60006020828403121561151957600080fd5b5035919050565b60006020828403121561153257600080fd5b61153b82611409565b9392505050565b60008060006060848603121561155757600080fd5b61156084611409565b925061156e60208501611409565b9150604084013590509250925092565b60008060008060006060868803121561159657600080fd5b61159f86611409565b9450602086013567ffffffffffffffff808211156115bc57600080fd5b6115c889838a0161144f565b909650945060408801359150808211156115e157600080fd5b506115ee8882890161144f565b969995985093965092949392505050565b600080600080600080600060e0888a03121561161a57600080fd5b61162388611409565b965061163160208901611409565b95506040880135945060608801359350608088013560ff8116811461165557600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561168557600080fd5b61168e83611409565b915061169c60208401611409565b90509250929050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156116e5576116e56116bb565b5060010190565b6000828210156116fe576116fe6116bb565b500390565b60008219821115611716576117166116bb565b500190565b6040808252810184905260008560608301825b8781101561175c576001600160a01b0361174784611409565b1682526020928301929091019060010161172e565b5083810360208501528481527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85111561179557600080fd5b8460051b91508186602083013760009101602001908152969550505050505056fea2646970667358221220daf90923e6ffe597897a90cd5fa71070c3b533a871798a2d54abb364a3dc1af064736f6c63430008090033",
494
535
  "linkReferences": {},
495
536
  "deployedLinkReferences": {}
496
537
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/5c1940e1952bbf0794a8df67d0f763e2.json"
4
+ }
@@ -0,0 +1,96 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "BitcoinTx",
4
+ "sourceName": "contracts/bridge/BitcoinTx.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "components": [
10
+ {
11
+ "internalType": "bytes4",
12
+ "name": "version",
13
+ "type": "bytes4"
14
+ },
15
+ {
16
+ "internalType": "bytes",
17
+ "name": "inputVector",
18
+ "type": "bytes"
19
+ },
20
+ {
21
+ "internalType": "bytes",
22
+ "name": "outputVector",
23
+ "type": "bytes"
24
+ },
25
+ {
26
+ "internalType": "bytes4",
27
+ "name": "locktime",
28
+ "type": "bytes4"
29
+ }
30
+ ],
31
+ "internalType": "struct BitcoinTx.Info",
32
+ "name": "txInfo",
33
+ "type": "tuple"
34
+ },
35
+ {
36
+ "components": [
37
+ {
38
+ "internalType": "bytes",
39
+ "name": "merkleProof",
40
+ "type": "bytes"
41
+ },
42
+ {
43
+ "internalType": "uint256",
44
+ "name": "txIndexInBlock",
45
+ "type": "uint256"
46
+ },
47
+ {
48
+ "internalType": "bytes",
49
+ "name": "bitcoinHeaders",
50
+ "type": "bytes"
51
+ }
52
+ ],
53
+ "internalType": "struct BitcoinTx.Proof",
54
+ "name": "proof",
55
+ "type": "tuple"
56
+ },
57
+ {
58
+ "components": [
59
+ {
60
+ "internalType": "uint256",
61
+ "name": "currentEpochDifficulty",
62
+ "type": "uint256"
63
+ },
64
+ {
65
+ "internalType": "uint256",
66
+ "name": "previousEpochDifficulty",
67
+ "type": "uint256"
68
+ },
69
+ {
70
+ "internalType": "uint256",
71
+ "name": "difficultyFactor",
72
+ "type": "uint256"
73
+ }
74
+ ],
75
+ "internalType": "struct BitcoinTx.ProofDifficulty",
76
+ "name": "proofDifficulty",
77
+ "type": "tuple"
78
+ }
79
+ ],
80
+ "name": "validateProof",
81
+ "outputs": [
82
+ {
83
+ "internalType": "bytes32",
84
+ "name": "txHash",
85
+ "type": "bytes32"
86
+ }
87
+ ],
88
+ "stateMutability": "view",
89
+ "type": "function"
90
+ }
91
+ ],
92
+ "bytecode": "0x61135661003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80639d7ae1341461003a575b600080fd5b61004d610048366004610fcc565b61005f565b60405190815260200160405180910390f35b60006100ab6100716020860186611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061035592505050565b6100fc5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064015b60405180910390fd5b61014661010c6040860186611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061040592505050565b6101925760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016100f3565b6101f56101a26020860186611090565b6101af6020870187611049565b6101bc6040890189611049565b6101cc60808b0160608c01611090565b6040516020016101e1969594939291906110d2565b6040516020818303038152906040526104a8565b905061029061024461020a6040860186611049565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104cf92505050565b61024e8580611049565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508694939250505060208701356104de565b6103025760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016100f3565b61034e6103126040850185611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061051c915050565b9392505050565b60008060006103638461077d565b9092509050801580610376575060001982145b15610385575060009392505050565b6000610392836001611142565b905060005b828110156103f857855182106103b35750600095945050505050565b60006103bf8784610794565b90506000198114156103d8575060009695505050505050565b6103e28184611142565b92505080806103f09061115a565b915050610397565b5093519093149392505050565b60008060006104138461077d565b9092509050801580610426575060001982145b15610435575060009392505050565b6000610442836001611142565b905060005b828110156103f857855182106104635750600095945050505050565b600061046f87846107e8565b9050600019811415610488575060009695505050505050565b6104928184611142565b92505080806104a09061115a565b915050610447565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b600083851480156104ed575081155b80156104f857508251155b1561050557506001610514565b6105118584868561084e565b90505b949350505050565b60008061053061052b856108f6565b61098b565b9050823581141561054457823591506105ca565b826020013581141561055c57826020013591506105ca565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016100f3565b60006105d5856109b3565b905060001981141561064f5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016100f3565b6001198114156106a15760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016100f3565b6002198114156106f35760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016100f3565b610701604085013584611175565b8110156107765760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016100f3565b5050505050565b60008061078b836000610bba565b91509150915091565b60008060006107a38585610d5e565b90925090506000198214156107be57600019925050506104d8565b806107ca836025611142565b6107d49190611142565b6107df906004611142565b95945050505050565b60006107f5826009611142565b8351101561080657506000196104d8565b60008061081d85610818866008611142565b610bba565b909250905060001982141561083857600019925050506104d8565b80610844836009611142565b6107df9190611142565b60006020845161085e91906111aa565b1561086b57506000610514565b835161087957506000610514565b818560005b86518110156108e9576108926002846111aa565b600114156108b7576108b06108aa8883016020015190565b83610da0565b91506108d0565b6108cd826108c88984016020015190565b610da0565b91505b60019290921c916108e2602082611142565b905061087e565b5090931495945050505050565b600080610904836048610dac565b60e81c9050600083604b8151811061091e5761091e6111be565b016020015160f81c9050600061095283600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006109666003846111d4565b60ff169050610977816101006112db565b6109819083611175565b9695505050505050565b60006104d87bffff000000000000000000000000000000000000000000000000000083610dbb565b6000605082516109c391906111aa565b156109d15750600019919050565b506040805160808101909152605081526000908190815b8451811015610bb2576109fc858383610dc7565b8015610a1c57610a0c8284610e66565b610a1c5750600119949350505050565b6000610a27836108f6565b9050610a32836104a8565b935080610b768560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115610b89575060021995945050505050565b610b9c610b958261098b565b8690610e8f565b9450610bab9050605082611142565b90506109e8565b505050919050565b6000806000610bc98585610eed565b905060ff8116610bfb576000858581518110610be757610be76111be565b016020015190935060f81c9150610d579050565b83610c078260016112e7565b60ff16610c149190611142565b85511015610c2b5760001960009250925050610d57565b60008160ff1660021415610c7057610c65610c51610c4a876001611142565b8890610dac565b62ffff0060e882901c1660f89190911c1790565b61ffff169050610d4d565b8160ff1660041415610cc057610cb3610c8d610c4a876001611142565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050610d4d565b8160ff1660081415610d4d57610d40610cdd610c4a876001611142565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600080610d6c836025611142565b84511015610d81575060001990506000610d57565b600080610d9386610818876024611142565b9097909650945050505050565b600061034e8383610f79565b600061034e8383016020015190565b600061034e828461130c565b81516000610dd58284611142565b90508281118015610de7575080855110155b610e335760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016100f3565b826020860101602085018382015b80831015610e5c578251825260209283019290910190610e41565b5050505050505050565b600080610e7284610fa7565b9050828114610e855760009150506104d8565b5060019392505050565b6000610e9b8284611142565b9050828110156104d85760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016100f3565b6000828281518110610f0157610f016111be565b60209101015160f81c60ff1415610f1a575060086104d8565b828281518110610f2c57610f2c6111be565b60209101015160f81c60fe1415610f45575060046104d8565b828281518110610f5757610f576111be565b60209101015160f81c60fd1415610f70575060026104d8565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906104d8565b600060608284031215610fc657600080fd5b50919050565b600080600060a08486031215610fe157600080fd5b833567ffffffffffffffff80821115610ff957600080fd5b908501906080828803121561100d57600080fd5b9093506020850135908082111561102357600080fd5b5061103086828701610fb4565b9250506110408560408601610fb4565b90509250925092565b6000808335601e1984360301811261106057600080fd5b83018035915067ffffffffffffffff82111561107b57600080fd5b602001915036819003821315610d5757600080fd5b6000602082840312156110a257600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461034e57600080fd5b60007fffffffff000000000000000000000000000000000000000000000000000000008089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156111555761115561112c565b500190565b600060001982141561116e5761116e61112c565b5060010190565b600081600019048311821515161561118f5761118f61112c565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826111b9576111b9611194565b500690565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff8416808210156111ee576111ee61112c565b90039392505050565b600181815b808511156112325781600019048211156112185761121861112c565b8085161561122557918102915b93841c93908002906111fc565b509250929050565b600082611249575060016104d8565b81611256575060006104d8565b816001811461126c576002811461127657611292565b60019150506104d8565b60ff8411156112875761128761112c565b50506001821b6104d8565b5060208310610133831016604e8410600b84101617156112b5575081810a6104d8565b6112bf83836111f7565b80600019048211156112d3576112d361112c565b029392505050565b600061034e838361123a565b600060ff821660ff84168060ff038211156113045761130461112c565b019392505050565b60008261131b5761131b611194565b50049056fea2646970667358221220940b4680c373a6d88bd5d26ab1f32a64cd6cf5620045c347743adaf6ee2161ce64736f6c63430008090033",
93
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c80639d7ae1341461003a575b600080fd5b61004d610048366004610fcc565b61005f565b60405190815260200160405180910390f35b60006100ab6100716020860186611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061035592505050565b6100fc5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064015b60405180910390fd5b61014661010c6040860186611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061040592505050565b6101925760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016100f3565b6101f56101a26020860186611090565b6101af6020870187611049565b6101bc6040890189611049565b6101cc60808b0160608c01611090565b6040516020016101e1969594939291906110d2565b6040516020818303038152906040526104a8565b905061029061024461020a6040860186611049565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104cf92505050565b61024e8580611049565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508694939250505060208701356104de565b6103025760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016100f3565b61034e6103126040850185611049565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061051c915050565b9392505050565b60008060006103638461077d565b9092509050801580610376575060001982145b15610385575060009392505050565b6000610392836001611142565b905060005b828110156103f857855182106103b35750600095945050505050565b60006103bf8784610794565b90506000198114156103d8575060009695505050505050565b6103e28184611142565b92505080806103f09061115a565b915050610397565b5093519093149392505050565b60008060006104138461077d565b9092509050801580610426575060001982145b15610435575060009392505050565b6000610442836001611142565b905060005b828110156103f857855182106104635750600095945050505050565b600061046f87846107e8565b9050600019811415610488575060009695505050505050565b6104928184611142565b92505080806104a09061115a565b915050610447565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b600083851480156104ed575081155b80156104f857508251155b1561050557506001610514565b6105118584868561084e565b90505b949350505050565b60008061053061052b856108f6565b61098b565b9050823581141561054457823591506105ca565b826020013581141561055c57826020013591506105ca565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016100f3565b60006105d5856109b3565b905060001981141561064f5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016100f3565b6001198114156106a15760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016100f3565b6002198114156106f35760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016100f3565b610701604085013584611175565b8110156107765760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016100f3565b5050505050565b60008061078b836000610bba565b91509150915091565b60008060006107a38585610d5e565b90925090506000198214156107be57600019925050506104d8565b806107ca836025611142565b6107d49190611142565b6107df906004611142565b95945050505050565b60006107f5826009611142565b8351101561080657506000196104d8565b60008061081d85610818866008611142565b610bba565b909250905060001982141561083857600019925050506104d8565b80610844836009611142565b6107df9190611142565b60006020845161085e91906111aa565b1561086b57506000610514565b835161087957506000610514565b818560005b86518110156108e9576108926002846111aa565b600114156108b7576108b06108aa8883016020015190565b83610da0565b91506108d0565b6108cd826108c88984016020015190565b610da0565b91505b60019290921c916108e2602082611142565b905061087e565b5090931495945050505050565b600080610904836048610dac565b60e81c9050600083604b8151811061091e5761091e6111be565b016020015160f81c9050600061095283600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff16905060006109666003846111d4565b60ff169050610977816101006112db565b6109819083611175565b9695505050505050565b60006104d87bffff000000000000000000000000000000000000000000000000000083610dbb565b6000605082516109c391906111aa565b156109d15750600019919050565b506040805160808101909152605081526000908190815b8451811015610bb2576109fc858383610dc7565b8015610a1c57610a0c8284610e66565b610a1c5750600119949350505050565b6000610a27836108f6565b9050610a32836104a8565b935080610b768560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115610b89575060021995945050505050565b610b9c610b958261098b565b8690610e8f565b9450610bab9050605082611142565b90506109e8565b505050919050565b6000806000610bc98585610eed565b905060ff8116610bfb576000858581518110610be757610be76111be565b016020015190935060f81c9150610d579050565b83610c078260016112e7565b60ff16610c149190611142565b85511015610c2b5760001960009250925050610d57565b60008160ff1660021415610c7057610c65610c51610c4a876001611142565b8890610dac565b62ffff0060e882901c1660f89190911c1790565b61ffff169050610d4d565b8160ff1660041415610cc057610cb3610c8d610c4a876001611142565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050610d4d565b8160ff1660081415610d4d57610d40610cdd610c4a876001611142565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600080610d6c836025611142565b84511015610d81575060001990506000610d57565b600080610d9386610818876024611142565b9097909650945050505050565b600061034e8383610f79565b600061034e8383016020015190565b600061034e828461130c565b81516000610dd58284611142565b90508281118015610de7575080855110155b610e335760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016100f3565b826020860101602085018382015b80831015610e5c578251825260209283019290910190610e41565b5050505050505050565b600080610e7284610fa7565b9050828114610e855760009150506104d8565b5060019392505050565b6000610e9b8284611142565b9050828110156104d85760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016100f3565b6000828281518110610f0157610f016111be565b60209101015160f81c60ff1415610f1a575060086104d8565b828281518110610f2c57610f2c6111be565b60209101015160f81c60fe1415610f45575060046104d8565b828281518110610f5757610f576111be565b60209101015160f81c60fd1415610f70575060026104d8565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906104d8565b600060608284031215610fc657600080fd5b50919050565b600080600060a08486031215610fe157600080fd5b833567ffffffffffffffff80821115610ff957600080fd5b908501906080828803121561100d57600080fd5b9093506020850135908082111561102357600080fd5b5061103086828701610fb4565b9250506110408560408601610fb4565b90509250925092565b6000808335601e1984360301811261106057600080fd5b83018035915067ffffffffffffffff82111561107b57600080fd5b602001915036819003821315610d5757600080fd5b6000602082840312156110a257600080fd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461034e57600080fd5b60007fffffffff000000000000000000000000000000000000000000000000000000008089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052601160045260246000fd5b600082198211156111555761115561112c565b500190565b600060001982141561116e5761116e61112c565b5060010190565b600081600019048311821515161561118f5761118f61112c565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826111b9576111b9611194565b500690565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff8416808210156111ee576111ee61112c565b90039392505050565b600181815b808511156112325781600019048211156112185761121861112c565b8085161561122557918102915b93841c93908002906111fc565b509250929050565b600082611249575060016104d8565b81611256575060006104d8565b816001811461126c576002811461127657611292565b60019150506104d8565b60ff8411156112875761128761112c565b50506001821b6104d8565b5060208310610133831016604e8410600b84101617156112b5575081810a6104d8565b6112bf83836111f7565b80600019048211156112d3576112d361112c565b029392505050565b600061034e838361123a565b600060ff821660ff84168060ff038211156113045761130461112c565b019392505050565b60008261131b5761131b611194565b50049056fea2646970667358221220940b4680c373a6d88bd5d26ab1f32a64cd6cf5620045c347743adaf6ee2161ce64736f6c63430008090033",
94
+ "linkReferences": {},
95
+ "deployedLinkReferences": {}
96
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/b41d78db29c15518d81aced0093ae76c.json"
3
+ "buildInfo": "../../../build-info/5c1940e1952bbf0794a8df67d0f763e2.json"
4
4
  }