@keep-network/tbtc-v2 0.1.1-dev.105 → 0.1.1-dev.108

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 (74) hide show
  1. package/artifacts/Bank.json +3 -3
  2. package/artifacts/Bridge.json +10 -5
  3. package/artifacts/BridgeGovernance.json +92 -92
  4. package/artifacts/BridgeGovernanceParameters.json +2 -2
  5. package/artifacts/Deposit.json +2 -2
  6. package/artifacts/DepositSweep.json +2 -2
  7. package/artifacts/EcdsaDkgValidator.json +1 -1
  8. package/artifacts/EcdsaInactivity.json +1 -1
  9. package/artifacts/EcdsaSortitionPool.json +2 -2
  10. package/artifacts/Fraud.json +2 -2
  11. package/artifacts/KeepRegistry.json +1 -1
  12. package/artifacts/KeepStake.json +2 -2
  13. package/artifacts/KeepToken.json +2 -2
  14. package/artifacts/KeepTokenStaking.json +1 -1
  15. package/artifacts/MaintainerProxy.json +26 -26
  16. package/artifacts/MovingFunds.json +2 -2
  17. package/artifacts/NuCypherStakingEscrow.json +1 -1
  18. package/artifacts/NuCypherToken.json +2 -2
  19. package/artifacts/RandomBeaconStub.json +1 -1
  20. package/artifacts/Redemption.json +2 -2
  21. package/artifacts/ReimbursementPool.json +2 -2
  22. package/artifacts/Relay.json +9 -9
  23. package/artifacts/T.json +2 -2
  24. package/artifacts/TBTC.json +3 -3
  25. package/artifacts/TBTCToken.json +3 -3
  26. package/artifacts/TBTCVault.json +9 -9
  27. package/artifacts/TokenStaking.json +1 -1
  28. package/artifacts/TokenholderGovernor.json +9 -9
  29. package/artifacts/TokenholderTimelock.json +8 -8
  30. package/artifacts/VendingMachine.json +10 -10
  31. package/artifacts/VendingMachineKeep.json +1 -1
  32. package/artifacts/VendingMachineNuCypher.json +1 -1
  33. package/artifacts/WalletRegistry.json +5 -5
  34. package/artifacts/WalletRegistryGovernance.json +2 -2
  35. package/artifacts/Wallets.json +2 -2
  36. package/artifacts/solcInputs/{994d332a7e2e8231d02a8a41da7ec393.json → ca06d7336565753de6867fd69d3e145d.json} +13 -7
  37. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  38. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  39. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
  40. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  41. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  42. package/build/contracts/bridge/Bridge.sol/Bridge.json +28 -23
  43. package/build/contracts/bridge/BridgeGovernance.sol/BridgeGovernance.dbg.json +1 -1
  44. package/build/contracts/bridge/BridgeGovernance.sol/BridgeGovernance.json +2 -2
  45. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
  46. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  47. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  48. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  49. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
  50. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
  51. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  52. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  53. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  54. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  55. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  56. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  57. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  58. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
  59. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +2 -2
  60. package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +4 -0
  61. package/build/contracts/relay/LightRelay.sol/ILightRelay.json +214 -0
  62. package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +4 -0
  63. package/build/contracts/relay/LightRelay.sol/LightRelay.json +443 -0
  64. package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +4 -0
  65. package/build/contracts/relay/LightRelay.sol/RelayUtils.json +10 -0
  66. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  67. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  68. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  69. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  70. package/contracts/bridge/Bridge.sol +5 -0
  71. package/contracts/relay/LightRelay.sol +606 -0
  72. package/deploy/03_transfer_vending_machine_roles.ts +0 -3
  73. package/export.json +5 -0
  74. package/package.json +1 -1
@@ -1104,8 +1104,8 @@
1104
1104
  "type": "function"
1105
1105
  }
1106
1106
  ],
1107
- "bytecode": "0x60806040523480156200001157600080fd5b50604051620024e2380380620024e2833981016040819052620000349162000121565b6200003f33620000b8565b603380546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055616978603655612616603755611f406038556103e8603955613a98603a55610dac603b8190556155f0603c55603d55610fa0603e55610bb8603f5561271060405561138860415562000160565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200011e57600080fd5b50565b600080604083850312156200013557600080fd5b8251620001428162000108565b6020840151909250620001558162000108565b809150509250929050565b61237280620001706000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c806393b743bd11610160578063ddd23f5e116100d8578063e78cea921161008c578063f0b37c0411610071578063f0b37c04146104ac578063f2fde38b146104bf578063fe9fbb80146104d257600080fd5b8063e78cea9214610486578063ee1dd3ea1461049957600080fd5b8063e3cfecd1116100bd578063e3cfecd114610461578063e44bdd311461046a578063e46e6eda1461047d57600080fd5b8063ddd23f5e1461044f578063e12bad861461045857600080fd5b8063b34b32161161012f578063b7d372a411610114578063b7d372a414610416578063c09975cd14610429578063c8b5d2db1461043c57600080fd5b8063b34b3216146103f0578063b6a5d7de1461040357600080fd5b806393b743bd146103ac5780639cbbcc7d146103b5578063a145e2d5146103ca578063abaeed8f146103dd57600080fd5b806355e19036116101f357806377145f21116101c257806384862c19116101a757806384862c191461038957806389065e60146103925780638da5cb5b1461039b57600080fd5b806377145f21146103635780637b35b4e61461037657600080fd5b806355e19036146103145780636eb382121461031d578063715018a61461033057806372d66e301461033857600080fd5b806319fd5c451161024a5780632f429b641161022f5780632f429b64146102ef578063391f7170146103025780634147907c1461030b57600080fd5b806319fd5c45146102ca5780631fde93b9146102e657600080fd5b80630674f2661461027c57806307d187071461029157806307f7d223146102a4578063133cafc8146102b7575b600080fd5b61028f61028a3660046119b6565b6104f2565b005b61028f61029f366004611a22565b610602565b61028f6102b2366004611ad7565b61072e565b61028f6102c5366004611b32565b61088f565b6102d3603d5481565b6040519081526020015b60405180910390f35b6102d360385481565b61028f6102fd366004611bba565b61098e565b6102d360395481565b6102d360375481565b6102d360365481565b61028f61032b366004611c40565b610a8d565b61028f610b3b565b61034b610346366004611c64565b610ba1565b6040516001600160a01b0390911681526020016102dd565b61028f610371366004611c7d565b610bcb565b61028f610384366004611c40565b610cde565b6102d360415481565b6102d360405481565b6000546001600160a01b031661034b565b6102d3603f5481565b6103bd610da5565b6040516102dd9190611d06565b61028f6103d8366004611d53565b610e07565b61028f6103eb366004611db4565b610f65565b61028f6103fe366004611bba565b61107e565b61028f610411366004611c40565b61117d565b61028f610424366004611e50565b61125d565b60015461034b906001600160a01b031681565b61028f61044a366004611ec5565b6113c1565b6102d3603a5481565b6102d3603c5481565b6102d3603b5481565b61028f610478366004611ad7565b6114c4565b6102d3603e5481565b60335461034b906001600160a01b031681565b61028f6104a7366004611ec5565b6115bf565b61028f6104ba366004611c40565b61166b565b61028f6104cd366004611c40565b61183b565b6102d36104e0366004611c40565b60346020526000908152604090205481565b60005a6033546040517f0674f2660000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690630674f26690610545908890889088908890600401611f09565b600060405180830381600087803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b50506001546041546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6105a49190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b031633146106615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60368c905560378b905560388a90556039899055603a889055603b879055603c869055603d859055603e849055603f8390556040828155604182905580518d8152602081018d90529081018b9052606081018a90526080810189905260a0810188905260c0810187905260e0810186905261010081018590526101208101849052610140810183905261016081018290527fd4f23cc9b2a39ae7cdfd84be8c3d588eb1b7a6537d021589c18078ecfd8bb25e906101800160405180910390a1505050505050505050505050565b336000908152603460205260409020546107855760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f07f7d2230000000000000000000000000000000000000000000000000000000081529192506001600160a01b0316906307f7d223906107d49086908690600401611fd7565b600060405180830381600087803b1580156107ee57600080fd5b505af1158015610802573d6000803e3d6000fd5b5050600154603b546001600160a01b039091169250637ad226dc91505a6108299085611f51565b6108339190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561087257600080fd5b505af1158015610886573d6000803e3d6000fd5b50505050505050565b336000908152603460205260409020546108e65760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f133cafc80000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063133cafc89061093990889088908890889060040161212c565b600060405180830381600087803b15801561095357600080fd5b505af1158015610967573d6000803e3d6000fd5b50506001546036546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b336000908152603460205260409020546109e55760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f2f429b640000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690632f429b6490610a38908890889088908890600401612179565b600060405180830381600087803b158015610a5257600080fd5b505af1158015610a66573d6000803e3d6000fd5b5050600154603a546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6000546001600160a01b03163314610ae75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b603380546001600160a01b0319166001600160a01b0383169081179091556040519081527fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a9060200160405180910390a150565b6000546001600160a01b03163314610b955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b610b9f600061191d565b565b60358181548110610bb157600080fd5b6000918252602090912001546001600160a01b0316905081565b60005a6033546040517f77145f210000000000000000000000000000000000000000000000000000000081529192506001600160a01b0316906377145f2190610c2090899089908990899089906004016121cc565b600060405180830381600087803b158015610c3a57600080fd5b505af1158015610c4e573d6000803e3d6000fd5b50506001546040546001600160a01b039091169250637ad226dc91505a610c759085611f51565b610c7f9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015610cbe57600080fd5b505af1158015610cd2573d6000803e3d6000fd5b50505050505050505050565b33610cf16000546001600160a01b031690565b6001600160a01b031614610d475760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610658565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b60606035805480602002602001604051908101604052809291908181526020018280548015610dfd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ddf575b5050505050905090565b33600090815260346020526040902054610e5e5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fa145e2d50000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063a145e2d590610eab908590600401612208565b600060405180830381600087803b158015610ec557600080fd5b505af1158015610ed9573d6000803e3d6000fd5b5050600154603d546001600160a01b039091169250637ad226dc91505a610f009085611f51565b610f0a9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050505050565b60005a6033546040517fabaeed8f0000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063abaeed8f90610fbe908b908b908b908b908b908b908b9060040161221c565b600060405180830381600087803b158015610fd857600080fd5b505af1158015610fec573d6000803e3d6000fd5b50506001546038546001600160a01b039091169250637ad226dc91505a6110139085611f51565b61101d9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561105c57600080fd5b505af1158015611070573d6000803e3d6000fd5b505050505050505050505050565b336000908152603460205260409020546110d55760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fb34b32160000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063b34b321690611128908890889088908890600401612179565b600060405180830381600087803b15801561114257600080fd5b505af1158015611156573d6000803e3d6000fd5b50506001546037546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6000546001600160a01b031633146111d75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b603580546001810182557fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d0180546001600160a01b0319166001600160a01b03841690811790915590546000828152603460205260408082209290925590517fd47aed730622d4816ba8c667c5644d30d0042568ce573955dfa5cafd60ecba4b9190a250565b336000908152603460205260409020546112b45760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fb7d372a40000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063b7d372a490611305908790879087906004016122d3565b600060405180830381600087803b15801561131f57600080fd5b505af1158015611333573d6000803e3d6000fd5b5050600154603c546001600160a01b039091169250637ad226dc91505a61135a9085611f51565b6113649190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156113a357600080fd5b505af11580156113b7573d6000803e3d6000fd5b5050505050505050565b336000908152603460205260409020546114185760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fc8b5d2db0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19851660048201529192506001600160a01b03169063c8b5d2db90602401600060405180830381600087803b15801561148957600080fd5b505af115801561149d573d6000803e3d6000fd5b5050600154603f546001600160a01b039091169250637ad226dc91505a610f009085611f51565b3360009081526034602052604090205461151b5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fe44bdd310000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e44bdd319061156a9086908690600401611fd7565b600060405180830381600087803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b5050600154603e546001600160a01b039091169250637ad226dc91505a6108299085611f51565b60005a6033546040517fee1dd3ea0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19851660048201529192506001600160a01b03169063ee1dd3ea90602401600060405180830381600087803b15801561163057600080fd5b505af1158015611644573d6000803e3d6000fd5b50506001546039546001600160a01b039091169250637ad226dc91505a610f009085611f51565b6000546001600160a01b031633146116c55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b6001600160a01b0381166000908152603460205260409020548061172b5760405162461bcd60e51b815260206004820152601c60248201527f4e6f206d61696e7461696e657220746f20756e617574686f72697a65000000006044820152606401610658565b603580546000919061173f90600190611f51565b8154811061174f5761174f612310565b6000918252602090912001546001600160a01b03169050806035611774600185611f51565b8154811061178457611784612310565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060358054806117c3576117c3612326565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03838116835260349091526040808320859055908516808352818320839055905190917f7aadb0decacd5d4973caa586e997ed7087be9d354b66bb7f88ba988818dd9ee691a2505050565b6000546001600160a01b031633146118955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b6001600160a01b0381166119115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610658565b61191a8161191d565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f84011261197f57600080fd5b50813567ffffffffffffffff81111561199757600080fd5b6020830191508360208285010111156119af57600080fd5b9250929050565b600080600080604085870312156119cc57600080fd5b843567ffffffffffffffff808211156119e457600080fd5b6119f08883890161196d565b90965094506020870135915080821115611a0957600080fd5b50611a168782880161196d565b95989497509550505050565b6000806000806000806000806000806000806101808d8f031215611a4557600080fd5b50508a359c60208c01359c5060408c01359b60608101359b5060808101359a5060a0810135995060c0810135985060e08101359750610100810135965061012081013595506101408101359450610160013592509050565b80356bffffffffffffffffffffffff1981168114611aba57600080fd5b919050565b600060608284031215611ad157600080fd5b50919050565b60008060808385031215611aea57600080fd5b611af383611a9d565b9150611b028460208501611abf565b90509250929050565b600060808284031215611ad157600080fd5b6001600160a01b038116811461191a57600080fd5b60008060008060c08587031215611b4857600080fd5b843567ffffffffffffffff80821115611b6057600080fd5b611b6c88838901611b0b565b95506020870135915080821115611b8257600080fd5b50611b8f87828801611abf565b935050611b9f8660408701611abf565b915060a0850135611baf81611b1d565b939692955090935050565b60008060008060c08587031215611bd057600080fd5b843567ffffffffffffffff80821115611be857600080fd5b611bf488838901611b0b565b95506020870135915080821115611c0a57600080fd5b50611c1787828801611abf565b935050611c278660408701611abf565b9150611c3560a08601611a9d565b905092959194509250565b600060208284031215611c5257600080fd5b8135611c5d81611b1d565b9392505050565b600060208284031215611c7657600080fd5b5035919050565b600080600080600060608688031215611c9557600080fd5b853567ffffffffffffffff80821115611cad57600080fd5b611cb989838a0161196d565b90975095506020880135915080821115611cd257600080fd5b50611cdf8882890161196d565b90945092505060408601358015158114611cf857600080fd5b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b81811015611d475783516001600160a01b031683529284019291840191600101611d22565b50909695505050505050565b600060608284031215611d6557600080fd5b611c5d8383611abf565b60008083601f840112611d8157600080fd5b50813567ffffffffffffffff811115611d9957600080fd5b6020830191508360208260051b85010111156119af57600080fd5b600080600080600080600060e0888a031215611dcf57600080fd5b611dd888611a9d565b9650611de78960208a01611abf565b9550608088013567ffffffffffffffff80821115611e0457600080fd5b611e108b838c01611d6f565b909750955060a08a0135945060c08a0135915080821115611e3057600080fd5b50611e3d8a828b01611d6f565b989b979a50959850939692959293505050565b600080600060a08486031215611e6557600080fd5b833567ffffffffffffffff80821115611e7d57600080fd5b611e8987838801611b0b565b94506020860135915080821115611e9f57600080fd5b50611eac86828701611abf565b925050611ebc8560408601611abf565b90509250925092565b600060208284031215611ed757600080fd5b611c5d82611a9d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000611f1d604083018688611ee0565b8281036020840152611f30818587611ee0565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611f6357611f63611f3b565b500390565b60008219821115611f7b57611f7b611f3b565b500190565b803563ffffffff81168114611aba57600080fd5b8035825263ffffffff611fa960208301611f80565b166020830152604081013567ffffffffffffffff8116808214611fcb57600080fd5b80604085015250505050565b6bffffffffffffffffffffffff198316815260808101611c5d6020830184611f94565b80356001600160e01b031981168114611aba57600080fd5b6000808335601e1984360301811261202957600080fd5b830160208101925035905067ffffffffffffffff81111561204957600080fd5b8036038313156119af57600080fd5b60006001600160e01b03198061206d84611ffa565b16845261207d6020840184612012565b60806020870152612092608087018284611ee0565b9150506120a26040850185612012565b86830360408801526120b5838284611ee0565b92505050816120c660608601611ffa565b166060860152809250505092915050565b60006120e38283612012565b606085526120f5606086018284611ee0565b9150506020830135602085015261210f6040840184612012565b8583036040870152612122838284611ee0565b9695505050505050565b60c08152600061213f60c0830187612058565b828103602084015261215181876120d7565b9150506121616040830185611f94565b6001600160a01b03831660a083015295945050505050565b60c08152600061218c60c0830187612058565b828103602084015261219e81876120d7565b9150506121ae6040830185611f94565b6bffffffffffffffffffffffff19831660a083015295945050505050565b6060815260006121e0606083018789611ee0565b82810360208401526121f3818688611ee0565b91505082151560408301529695505050505050565b606081016122168284611f94565b92915050565b600060e082016bffffffffffffffffffffffff19808b16845260206122438186018c611f94565b60e06080860152918890528891610100850160005b8a8110156122815763ffffffff61226e86611f80565b1682529382019390820190600101612258565b5060a0860189905285810360c0870152868152810192508660005b878110156122c157836122ae83611a9d565b168552938201939082019060010161229c565b50929c9b505050505050505050505050565b60a0815260006122e660a0830186612058565b82810360208401526122f881866120d7565b9150506123086040830184611f94565b949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d22092c0a8df356d9ed6195a86df7c7a0c2f3554ac3de7b9f2ed9b0ead8105ad64736f6c63430008090033",
1108
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102775760003560e01c806393b743bd11610160578063ddd23f5e116100d8578063e78cea921161008c578063f0b37c0411610071578063f0b37c04146104ac578063f2fde38b146104bf578063fe9fbb80146104d257600080fd5b8063e78cea9214610486578063ee1dd3ea1461049957600080fd5b8063e3cfecd1116100bd578063e3cfecd114610461578063e44bdd311461046a578063e46e6eda1461047d57600080fd5b8063ddd23f5e1461044f578063e12bad861461045857600080fd5b8063b34b32161161012f578063b7d372a411610114578063b7d372a414610416578063c09975cd14610429578063c8b5d2db1461043c57600080fd5b8063b34b3216146103f0578063b6a5d7de1461040357600080fd5b806393b743bd146103ac5780639cbbcc7d146103b5578063a145e2d5146103ca578063abaeed8f146103dd57600080fd5b806355e19036116101f357806377145f21116101c257806384862c19116101a757806384862c191461038957806389065e60146103925780638da5cb5b1461039b57600080fd5b806377145f21146103635780637b35b4e61461037657600080fd5b806355e19036146103145780636eb382121461031d578063715018a61461033057806372d66e301461033857600080fd5b806319fd5c451161024a5780632f429b641161022f5780632f429b64146102ef578063391f7170146103025780634147907c1461030b57600080fd5b806319fd5c45146102ca5780631fde93b9146102e657600080fd5b80630674f2661461027c57806307d187071461029157806307f7d223146102a4578063133cafc8146102b7575b600080fd5b61028f61028a3660046119b6565b6104f2565b005b61028f61029f366004611a22565b610602565b61028f6102b2366004611ad7565b61072e565b61028f6102c5366004611b32565b61088f565b6102d3603d5481565b6040519081526020015b60405180910390f35b6102d360385481565b61028f6102fd366004611bba565b61098e565b6102d360395481565b6102d360375481565b6102d360365481565b61028f61032b366004611c40565b610a8d565b61028f610b3b565b61034b610346366004611c64565b610ba1565b6040516001600160a01b0390911681526020016102dd565b61028f610371366004611c7d565b610bcb565b61028f610384366004611c40565b610cde565b6102d360415481565b6102d360405481565b6000546001600160a01b031661034b565b6102d3603f5481565b6103bd610da5565b6040516102dd9190611d06565b61028f6103d8366004611d53565b610e07565b61028f6103eb366004611db4565b610f65565b61028f6103fe366004611bba565b61107e565b61028f610411366004611c40565b61117d565b61028f610424366004611e50565b61125d565b60015461034b906001600160a01b031681565b61028f61044a366004611ec5565b6113c1565b6102d3603a5481565b6102d3603c5481565b6102d3603b5481565b61028f610478366004611ad7565b6114c4565b6102d3603e5481565b60335461034b906001600160a01b031681565b61028f6104a7366004611ec5565b6115bf565b61028f6104ba366004611c40565b61166b565b61028f6104cd366004611c40565b61183b565b6102d36104e0366004611c40565b60346020526000908152604090205481565b60005a6033546040517f0674f2660000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690630674f26690610545908890889088908890600401611f09565b600060405180830381600087803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b50506001546041546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6105a49190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b031633146106615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60368c905560378b905560388a90556039899055603a889055603b879055603c869055603d859055603e849055603f8390556040828155604182905580518d8152602081018d90529081018b9052606081018a90526080810189905260a0810188905260c0810187905260e0810186905261010081018590526101208101849052610140810183905261016081018290527fd4f23cc9b2a39ae7cdfd84be8c3d588eb1b7a6537d021589c18078ecfd8bb25e906101800160405180910390a1505050505050505050505050565b336000908152603460205260409020546107855760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f07f7d2230000000000000000000000000000000000000000000000000000000081529192506001600160a01b0316906307f7d223906107d49086908690600401611fd7565b600060405180830381600087803b1580156107ee57600080fd5b505af1158015610802573d6000803e3d6000fd5b5050600154603b546001600160a01b039091169250637ad226dc91505a6108299085611f51565b6108339190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561087257600080fd5b505af1158015610886573d6000803e3d6000fd5b50505050505050565b336000908152603460205260409020546108e65760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f133cafc80000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063133cafc89061093990889088908890889060040161212c565b600060405180830381600087803b15801561095357600080fd5b505af1158015610967573d6000803e3d6000fd5b50506001546036546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b336000908152603460205260409020546109e55760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f2f429b640000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690632f429b6490610a38908890889088908890600401612179565b600060405180830381600087803b158015610a5257600080fd5b505af1158015610a66573d6000803e3d6000fd5b5050600154603a546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6000546001600160a01b03163314610ae75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b603380546001600160a01b0319166001600160a01b0383169081179091556040519081527fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a9060200160405180910390a150565b6000546001600160a01b03163314610b955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b610b9f600061191d565b565b60358181548110610bb157600080fd5b6000918252602090912001546001600160a01b0316905081565b60005a6033546040517f77145f210000000000000000000000000000000000000000000000000000000081529192506001600160a01b0316906377145f2190610c2090899089908990899089906004016121cc565b600060405180830381600087803b158015610c3a57600080fd5b505af1158015610c4e573d6000803e3d6000fd5b50506001546040546001600160a01b039091169250637ad226dc91505a610c759085611f51565b610c7f9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015610cbe57600080fd5b505af1158015610cd2573d6000803e3d6000fd5b50505050505050505050565b33610cf16000546001600160a01b031690565b6001600160a01b031614610d475760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610658565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b60606035805480602002602001604051908101604052809291908181526020018280548015610dfd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ddf575b5050505050905090565b33600090815260346020526040902054610e5e5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fa145e2d50000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063a145e2d590610eab908590600401612208565b600060405180830381600087803b158015610ec557600080fd5b505af1158015610ed9573d6000803e3d6000fd5b5050600154603d546001600160a01b039091169250637ad226dc91505a610f009085611f51565b610f0a9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050505050565b60005a6033546040517fabaeed8f0000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063abaeed8f90610fbe908b908b908b908b908b908b908b9060040161221c565b600060405180830381600087803b158015610fd857600080fd5b505af1158015610fec573d6000803e3d6000fd5b50506001546038546001600160a01b039091169250637ad226dc91505a6110139085611f51565b61101d9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561105c57600080fd5b505af1158015611070573d6000803e3d6000fd5b505050505050505050505050565b336000908152603460205260409020546110d55760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fb34b32160000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063b34b321690611128908890889088908890600401612179565b600060405180830381600087803b15801561114257600080fd5b505af1158015611156573d6000803e3d6000fd5b50506001546037546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6000546001600160a01b031633146111d75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b603580546001810182557fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d0180546001600160a01b0319166001600160a01b03841690811790915590546000828152603460205260408082209290925590517fd47aed730622d4816ba8c667c5644d30d0042568ce573955dfa5cafd60ecba4b9190a250565b336000908152603460205260409020546112b45760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fb7d372a40000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063b7d372a490611305908790879087906004016122d3565b600060405180830381600087803b15801561131f57600080fd5b505af1158015611333573d6000803e3d6000fd5b5050600154603c546001600160a01b039091169250637ad226dc91505a61135a9085611f51565b6113649190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156113a357600080fd5b505af11580156113b7573d6000803e3d6000fd5b5050505050505050565b336000908152603460205260409020546114185760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fc8b5d2db0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19851660048201529192506001600160a01b03169063c8b5d2db90602401600060405180830381600087803b15801561148957600080fd5b505af115801561149d573d6000803e3d6000fd5b5050600154603f546001600160a01b039091169250637ad226dc91505a610f009085611f51565b3360009081526034602052604090205461151b5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fe44bdd310000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e44bdd319061156a9086908690600401611fd7565b600060405180830381600087803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b5050600154603e546001600160a01b039091169250637ad226dc91505a6108299085611f51565b60005a6033546040517fee1dd3ea0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19851660048201529192506001600160a01b03169063ee1dd3ea90602401600060405180830381600087803b15801561163057600080fd5b505af1158015611644573d6000803e3d6000fd5b50506001546039546001600160a01b039091169250637ad226dc91505a610f009085611f51565b6000546001600160a01b031633146116c55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b6001600160a01b0381166000908152603460205260409020548061172b5760405162461bcd60e51b815260206004820152601c60248201527f4e6f206d61696e7461696e657220746f20756e617574686f72697a65000000006044820152606401610658565b603580546000919061173f90600190611f51565b8154811061174f5761174f612310565b6000918252602090912001546001600160a01b03169050806035611774600185611f51565b8154811061178457611784612310565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060358054806117c3576117c3612326565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03838116835260349091526040808320859055908516808352818320839055905190917f7aadb0decacd5d4973caa586e997ed7087be9d354b66bb7f88ba988818dd9ee691a2505050565b6000546001600160a01b031633146118955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b6001600160a01b0381166119115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610658565b61191a8161191d565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f84011261197f57600080fd5b50813567ffffffffffffffff81111561199757600080fd5b6020830191508360208285010111156119af57600080fd5b9250929050565b600080600080604085870312156119cc57600080fd5b843567ffffffffffffffff808211156119e457600080fd5b6119f08883890161196d565b90965094506020870135915080821115611a0957600080fd5b50611a168782880161196d565b95989497509550505050565b6000806000806000806000806000806000806101808d8f031215611a4557600080fd5b50508a359c60208c01359c5060408c01359b60608101359b5060808101359a5060a0810135995060c0810135985060e08101359750610100810135965061012081013595506101408101359450610160013592509050565b80356bffffffffffffffffffffffff1981168114611aba57600080fd5b919050565b600060608284031215611ad157600080fd5b50919050565b60008060808385031215611aea57600080fd5b611af383611a9d565b9150611b028460208501611abf565b90509250929050565b600060808284031215611ad157600080fd5b6001600160a01b038116811461191a57600080fd5b60008060008060c08587031215611b4857600080fd5b843567ffffffffffffffff80821115611b6057600080fd5b611b6c88838901611b0b565b95506020870135915080821115611b8257600080fd5b50611b8f87828801611abf565b935050611b9f8660408701611abf565b915060a0850135611baf81611b1d565b939692955090935050565b60008060008060c08587031215611bd057600080fd5b843567ffffffffffffffff80821115611be857600080fd5b611bf488838901611b0b565b95506020870135915080821115611c0a57600080fd5b50611c1787828801611abf565b935050611c278660408701611abf565b9150611c3560a08601611a9d565b905092959194509250565b600060208284031215611c5257600080fd5b8135611c5d81611b1d565b9392505050565b600060208284031215611c7657600080fd5b5035919050565b600080600080600060608688031215611c9557600080fd5b853567ffffffffffffffff80821115611cad57600080fd5b611cb989838a0161196d565b90975095506020880135915080821115611cd257600080fd5b50611cdf8882890161196d565b90945092505060408601358015158114611cf857600080fd5b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b81811015611d475783516001600160a01b031683529284019291840191600101611d22565b50909695505050505050565b600060608284031215611d6557600080fd5b611c5d8383611abf565b60008083601f840112611d8157600080fd5b50813567ffffffffffffffff811115611d9957600080fd5b6020830191508360208260051b85010111156119af57600080fd5b600080600080600080600060e0888a031215611dcf57600080fd5b611dd888611a9d565b9650611de78960208a01611abf565b9550608088013567ffffffffffffffff80821115611e0457600080fd5b611e108b838c01611d6f565b909750955060a08a0135945060c08a0135915080821115611e3057600080fd5b50611e3d8a828b01611d6f565b989b979a50959850939692959293505050565b600080600060a08486031215611e6557600080fd5b833567ffffffffffffffff80821115611e7d57600080fd5b611e8987838801611b0b565b94506020860135915080821115611e9f57600080fd5b50611eac86828701611abf565b925050611ebc8560408601611abf565b90509250925092565b600060208284031215611ed757600080fd5b611c5d82611a9d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000611f1d604083018688611ee0565b8281036020840152611f30818587611ee0565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611f6357611f63611f3b565b500390565b60008219821115611f7b57611f7b611f3b565b500190565b803563ffffffff81168114611aba57600080fd5b8035825263ffffffff611fa960208301611f80565b166020830152604081013567ffffffffffffffff8116808214611fcb57600080fd5b80604085015250505050565b6bffffffffffffffffffffffff198316815260808101611c5d6020830184611f94565b80356001600160e01b031981168114611aba57600080fd5b6000808335601e1984360301811261202957600080fd5b830160208101925035905067ffffffffffffffff81111561204957600080fd5b8036038313156119af57600080fd5b60006001600160e01b03198061206d84611ffa565b16845261207d6020840184612012565b60806020870152612092608087018284611ee0565b9150506120a26040850185612012565b86830360408801526120b5838284611ee0565b92505050816120c660608601611ffa565b166060860152809250505092915050565b60006120e38283612012565b606085526120f5606086018284611ee0565b9150506020830135602085015261210f6040840184612012565b8583036040870152612122838284611ee0565b9695505050505050565b60c08152600061213f60c0830187612058565b828103602084015261215181876120d7565b9150506121616040830185611f94565b6001600160a01b03831660a083015295945050505050565b60c08152600061218c60c0830187612058565b828103602084015261219e81876120d7565b9150506121ae6040830185611f94565b6bffffffffffffffffffffffff19831660a083015295945050505050565b6060815260006121e0606083018789611ee0565b82810360208401526121f3818688611ee0565b91505082151560408301529695505050505050565b606081016122168284611f94565b92915050565b600060e082016bffffffffffffffffffffffff19808b16845260206122438186018c611f94565b60e06080860152918890528891610100850160005b8a8110156122815763ffffffff61226e86611f80565b1682529382019390820190600101612258565b5060a0860189905285810360c0870152868152810192508660005b878110156122c157836122ae83611a9d565b168552938201939082019060010161229c565b50929c9b505050505050505050505050565b60a0815260006122e660a0830186612058565b82810360208401526122f881866120d7565b9150506123086040830184611f94565b949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d22092c0a8df356d9ed6195a86df7c7a0c2f3554ac3de7b9f2ed9b0ead8105ad64736f6c63430008090033",
1107
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051620024e2380380620024e2833981016040819052620000349162000121565b6200003f33620000b8565b603380546001600160a01b039384166001600160a01b03199182161790915560018054929093169116179055616978603655612616603755611f406038556103e8603955613a98603a55610dac603b8190556155f0603c55603d55610fa0603e55610bb8603f5561271060405561138860415562000160565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200011e57600080fd5b50565b600080604083850312156200013557600080fd5b8251620001428162000108565b6020840151909250620001558162000108565b809150509250929050565b61237280620001706000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c806393b743bd11610160578063ddd23f5e116100d8578063e78cea921161008c578063f0b37c0411610071578063f0b37c04146104ac578063f2fde38b146104bf578063fe9fbb80146104d257600080fd5b8063e78cea9214610486578063ee1dd3ea1461049957600080fd5b8063e3cfecd1116100bd578063e3cfecd114610461578063e44bdd311461046a578063e46e6eda1461047d57600080fd5b8063ddd23f5e1461044f578063e12bad861461045857600080fd5b8063b34b32161161012f578063b7d372a411610114578063b7d372a414610416578063c09975cd14610429578063c8b5d2db1461043c57600080fd5b8063b34b3216146103f0578063b6a5d7de1461040357600080fd5b806393b743bd146103ac5780639cbbcc7d146103b5578063a145e2d5146103ca578063abaeed8f146103dd57600080fd5b806355e19036116101f357806377145f21116101c257806384862c19116101a757806384862c191461038957806389065e60146103925780638da5cb5b1461039b57600080fd5b806377145f21146103635780637b35b4e61461037657600080fd5b806355e19036146103145780636eb382121461031d578063715018a61461033057806372d66e301461033857600080fd5b806319fd5c451161024a5780632f429b641161022f5780632f429b64146102ef578063391f7170146103025780634147907c1461030b57600080fd5b806319fd5c45146102ca5780631fde93b9146102e657600080fd5b80630674f2661461027c57806307d187071461029157806307f7d223146102a4578063133cafc8146102b7575b600080fd5b61028f61028a3660046119b6565b6104f2565b005b61028f61029f366004611a22565b610602565b61028f6102b2366004611ad7565b61072e565b61028f6102c5366004611b32565b61088f565b6102d3603d5481565b6040519081526020015b60405180910390f35b6102d360385481565b61028f6102fd366004611bba565b61098e565b6102d360395481565b6102d360375481565b6102d360365481565b61028f61032b366004611c40565b610a8d565b61028f610b3b565b61034b610346366004611c64565b610ba1565b6040516001600160a01b0390911681526020016102dd565b61028f610371366004611c7d565b610bcb565b61028f610384366004611c40565b610cde565b6102d360415481565b6102d360405481565b6000546001600160a01b031661034b565b6102d3603f5481565b6103bd610da5565b6040516102dd9190611d06565b61028f6103d8366004611d53565b610e07565b61028f6103eb366004611db4565b610f65565b61028f6103fe366004611bba565b61107e565b61028f610411366004611c40565b61117d565b61028f610424366004611e50565b61125d565b60015461034b906001600160a01b031681565b61028f61044a366004611ec5565b6113c1565b6102d3603a5481565b6102d3603c5481565b6102d3603b5481565b61028f610478366004611ad7565b6114c4565b6102d3603e5481565b60335461034b906001600160a01b031681565b61028f6104a7366004611ec5565b6115bf565b61028f6104ba366004611c40565b61166b565b61028f6104cd366004611c40565b61183b565b6102d36104e0366004611c40565b60346020526000908152604090205481565b60005a6033546040517f0674f2660000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690630674f26690610545908890889088908890600401611f09565b600060405180830381600087803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b50506001546041546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6105a49190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b031633146106615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60368c905560378b905560388a90556039899055603a889055603b879055603c869055603d859055603e849055603f8390556040828155604182905580518d8152602081018d90529081018b9052606081018a90526080810189905260a0810188905260c0810187905260e0810186905261010081018590526101208101849052610140810183905261016081018290527fd4f23cc9b2a39ae7cdfd84be8c3d588eb1b7a6537d021589c18078ecfd8bb25e906101800160405180910390a1505050505050505050505050565b336000908152603460205260409020546107855760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f07f7d2230000000000000000000000000000000000000000000000000000000081529192506001600160a01b0316906307f7d223906107d49086908690600401611fd7565b600060405180830381600087803b1580156107ee57600080fd5b505af1158015610802573d6000803e3d6000fd5b5050600154603b546001600160a01b039091169250637ad226dc91505a6108299085611f51565b6108339190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561087257600080fd5b505af1158015610886573d6000803e3d6000fd5b50505050505050565b336000908152603460205260409020546108e65760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f133cafc80000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063133cafc89061093990889088908890889060040161212c565b600060405180830381600087803b15801561095357600080fd5b505af1158015610967573d6000803e3d6000fd5b50506001546036546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b336000908152603460205260409020546109e55760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f2f429b640000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690632f429b6490610a38908890889088908890600401612179565b600060405180830381600087803b158015610a5257600080fd5b505af1158015610a66573d6000803e3d6000fd5b5050600154603a546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6000546001600160a01b03163314610ae75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b603380546001600160a01b0319166001600160a01b0383169081179091556040519081527fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a9060200160405180910390a150565b6000546001600160a01b03163314610b955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b610b9f600061191d565b565b60358181548110610bb157600080fd5b6000918252602090912001546001600160a01b0316905081565b60005a6033546040517f77145f210000000000000000000000000000000000000000000000000000000081529192506001600160a01b0316906377145f2190610c2090899089908990899089906004016121cc565b600060405180830381600087803b158015610c3a57600080fd5b505af1158015610c4e573d6000803e3d6000fd5b50506001546040546001600160a01b039091169250637ad226dc91505a610c759085611f51565b610c7f9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015610cbe57600080fd5b505af1158015610cd2573d6000803e3d6000fd5b50505050505050505050565b33610cf16000546001600160a01b031690565b6001600160a01b031614610d475760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610658565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b60606035805480602002602001604051908101604052809291908181526020018280548015610dfd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ddf575b5050505050905090565b33600090815260346020526040902054610e5e5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fa145e2d50000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063a145e2d590610eab908590600401612208565b600060405180830381600087803b158015610ec557600080fd5b505af1158015610ed9573d6000803e3d6000fd5b5050600154603d546001600160a01b039091169250637ad226dc91505a610f009085611f51565b610f0a9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050505050565b60005a6033546040517fabaeed8f0000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063abaeed8f90610fbe908b908b908b908b908b908b908b9060040161221c565b600060405180830381600087803b158015610fd857600080fd5b505af1158015610fec573d6000803e3d6000fd5b50506001546038546001600160a01b039091169250637ad226dc91505a6110139085611f51565b61101d9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561105c57600080fd5b505af1158015611070573d6000803e3d6000fd5b505050505050505050505050565b336000908152603460205260409020546110d55760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fb34b32160000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063b34b321690611128908890889088908890600401612179565b600060405180830381600087803b15801561114257600080fd5b505af1158015611156573d6000803e3d6000fd5b50506001546037546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6000546001600160a01b031633146111d75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b603580546001810182557fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d0180546001600160a01b0319166001600160a01b03841690811790915590546000828152603460205260408082209290925590517fd47aed730622d4816ba8c667c5644d30d0042568ce573955dfa5cafd60ecba4b9190a250565b336000908152603460205260409020546112b45760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fb7d372a40000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063b7d372a490611305908790879087906004016122d3565b600060405180830381600087803b15801561131f57600080fd5b505af1158015611333573d6000803e3d6000fd5b5050600154603c546001600160a01b039091169250637ad226dc91505a61135a9085611f51565b6113649190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156113a357600080fd5b505af11580156113b7573d6000803e3d6000fd5b5050505050505050565b336000908152603460205260409020546114185760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fc8b5d2db0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19851660048201529192506001600160a01b03169063c8b5d2db90602401600060405180830381600087803b15801561148957600080fd5b505af115801561149d573d6000803e3d6000fd5b5050600154603f546001600160a01b039091169250637ad226dc91505a610f009085611f51565b3360009081526034602052604090205461151b5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fe44bdd310000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e44bdd319061156a9086908690600401611fd7565b600060405180830381600087803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b5050600154603e546001600160a01b039091169250637ad226dc91505a6108299085611f51565b60005a6033546040517fee1dd3ea0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19851660048201529192506001600160a01b03169063ee1dd3ea90602401600060405180830381600087803b15801561163057600080fd5b505af1158015611644573d6000803e3d6000fd5b50506001546039546001600160a01b039091169250637ad226dc91505a610f009085611f51565b6000546001600160a01b031633146116c55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b6001600160a01b0381166000908152603460205260409020548061172b5760405162461bcd60e51b815260206004820152601c60248201527f4e6f206d61696e7461696e657220746f20756e617574686f72697a65000000006044820152606401610658565b603580546000919061173f90600190611f51565b8154811061174f5761174f612310565b6000918252602090912001546001600160a01b03169050806035611774600185611f51565b8154811061178457611784612310565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060358054806117c3576117c3612326565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03838116835260349091526040808320859055908516808352818320839055905190917f7aadb0decacd5d4973caa586e997ed7087be9d354b66bb7f88ba988818dd9ee691a2505050565b6000546001600160a01b031633146118955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b6001600160a01b0381166119115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610658565b61191a8161191d565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f84011261197f57600080fd5b50813567ffffffffffffffff81111561199757600080fd5b6020830191508360208285010111156119af57600080fd5b9250929050565b600080600080604085870312156119cc57600080fd5b843567ffffffffffffffff808211156119e457600080fd5b6119f08883890161196d565b90965094506020870135915080821115611a0957600080fd5b50611a168782880161196d565b95989497509550505050565b6000806000806000806000806000806000806101808d8f031215611a4557600080fd5b50508a359c60208c01359c5060408c01359b60608101359b5060808101359a5060a0810135995060c0810135985060e08101359750610100810135965061012081013595506101408101359450610160013592509050565b80356bffffffffffffffffffffffff1981168114611aba57600080fd5b919050565b600060608284031215611ad157600080fd5b50919050565b60008060808385031215611aea57600080fd5b611af383611a9d565b9150611b028460208501611abf565b90509250929050565b600060808284031215611ad157600080fd5b6001600160a01b038116811461191a57600080fd5b60008060008060c08587031215611b4857600080fd5b843567ffffffffffffffff80821115611b6057600080fd5b611b6c88838901611b0b565b95506020870135915080821115611b8257600080fd5b50611b8f87828801611abf565b935050611b9f8660408701611abf565b915060a0850135611baf81611b1d565b939692955090935050565b60008060008060c08587031215611bd057600080fd5b843567ffffffffffffffff80821115611be857600080fd5b611bf488838901611b0b565b95506020870135915080821115611c0a57600080fd5b50611c1787828801611abf565b935050611c278660408701611abf565b9150611c3560a08601611a9d565b905092959194509250565b600060208284031215611c5257600080fd5b8135611c5d81611b1d565b9392505050565b600060208284031215611c7657600080fd5b5035919050565b600080600080600060608688031215611c9557600080fd5b853567ffffffffffffffff80821115611cad57600080fd5b611cb989838a0161196d565b90975095506020880135915080821115611cd257600080fd5b50611cdf8882890161196d565b90945092505060408601358015158114611cf857600080fd5b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b81811015611d475783516001600160a01b031683529284019291840191600101611d22565b50909695505050505050565b600060608284031215611d6557600080fd5b611c5d8383611abf565b60008083601f840112611d8157600080fd5b50813567ffffffffffffffff811115611d9957600080fd5b6020830191508360208260051b85010111156119af57600080fd5b600080600080600080600060e0888a031215611dcf57600080fd5b611dd888611a9d565b9650611de78960208a01611abf565b9550608088013567ffffffffffffffff80821115611e0457600080fd5b611e108b838c01611d6f565b909750955060a08a0135945060c08a0135915080821115611e3057600080fd5b50611e3d8a828b01611d6f565b989b979a50959850939692959293505050565b600080600060a08486031215611e6557600080fd5b833567ffffffffffffffff80821115611e7d57600080fd5b611e8987838801611b0b565b94506020860135915080821115611e9f57600080fd5b50611eac86828701611abf565b925050611ebc8560408601611abf565b90509250925092565b600060208284031215611ed757600080fd5b611c5d82611a9d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000611f1d604083018688611ee0565b8281036020840152611f30818587611ee0565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611f6357611f63611f3b565b500390565b60008219821115611f7b57611f7b611f3b565b500190565b803563ffffffff81168114611aba57600080fd5b8035825263ffffffff611fa960208301611f80565b166020830152604081013567ffffffffffffffff8116808214611fcb57600080fd5b80604085015250505050565b6bffffffffffffffffffffffff198316815260808101611c5d6020830184611f94565b80356001600160e01b031981168114611aba57600080fd5b6000808335601e1984360301811261202957600080fd5b830160208101925035905067ffffffffffffffff81111561204957600080fd5b8036038313156119af57600080fd5b60006001600160e01b03198061206d84611ffa565b16845261207d6020840184612012565b60806020870152612092608087018284611ee0565b9150506120a26040850185612012565b86830360408801526120b5838284611ee0565b92505050816120c660608601611ffa565b166060860152809250505092915050565b60006120e38283612012565b606085526120f5606086018284611ee0565b9150506020830135602085015261210f6040840184612012565b8583036040870152612122838284611ee0565b9695505050505050565b60c08152600061213f60c0830187612058565b828103602084015261215181876120d7565b9150506121616040830185611f94565b6001600160a01b03831660a083015295945050505050565b60c08152600061218c60c0830187612058565b828103602084015261219e81876120d7565b9150506121ae6040830185611f94565b6bffffffffffffffffffffffff19831660a083015295945050505050565b6060815260006121e0606083018789611ee0565b82810360208401526121f3818688611ee0565b91505082151560408301529695505050505050565b606081016122168284611f94565b92915050565b600060e082016bffffffffffffffffffffffff19808b16845260206122438186018c611f94565b60e06080860152918890528891610100850160005b8a8110156122815763ffffffff61226e86611f80565b1682529382019390820190600101612258565b5060a0860189905285810360c0870152868152810192508660005b878110156122c157836122ae83611a9d565b168552938201939082019060010161229c565b50929c9b505050505050505050505050565b60a0815260006122e660a0830186612058565b82810360208401526122f881866120d7565b9150506123086040830184611f94565b949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220dbd26d1412f88b1907aba0211e4a3b2322034abad81841a93bae247af30ed4bb64736f6c63430008090033",
1108
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102775760003560e01c806393b743bd11610160578063ddd23f5e116100d8578063e78cea921161008c578063f0b37c0411610071578063f0b37c04146104ac578063f2fde38b146104bf578063fe9fbb80146104d257600080fd5b8063e78cea9214610486578063ee1dd3ea1461049957600080fd5b8063e3cfecd1116100bd578063e3cfecd114610461578063e44bdd311461046a578063e46e6eda1461047d57600080fd5b8063ddd23f5e1461044f578063e12bad861461045857600080fd5b8063b34b32161161012f578063b7d372a411610114578063b7d372a414610416578063c09975cd14610429578063c8b5d2db1461043c57600080fd5b8063b34b3216146103f0578063b6a5d7de1461040357600080fd5b806393b743bd146103ac5780639cbbcc7d146103b5578063a145e2d5146103ca578063abaeed8f146103dd57600080fd5b806355e19036116101f357806377145f21116101c257806384862c19116101a757806384862c191461038957806389065e60146103925780638da5cb5b1461039b57600080fd5b806377145f21146103635780637b35b4e61461037657600080fd5b806355e19036146103145780636eb382121461031d578063715018a61461033057806372d66e301461033857600080fd5b806319fd5c451161024a5780632f429b641161022f5780632f429b64146102ef578063391f7170146103025780634147907c1461030b57600080fd5b806319fd5c45146102ca5780631fde93b9146102e657600080fd5b80630674f2661461027c57806307d187071461029157806307f7d223146102a4578063133cafc8146102b7575b600080fd5b61028f61028a3660046119b6565b6104f2565b005b61028f61029f366004611a22565b610602565b61028f6102b2366004611ad7565b61072e565b61028f6102c5366004611b32565b61088f565b6102d3603d5481565b6040519081526020015b60405180910390f35b6102d360385481565b61028f6102fd366004611bba565b61098e565b6102d360395481565b6102d360375481565b6102d360365481565b61028f61032b366004611c40565b610a8d565b61028f610b3b565b61034b610346366004611c64565b610ba1565b6040516001600160a01b0390911681526020016102dd565b61028f610371366004611c7d565b610bcb565b61028f610384366004611c40565b610cde565b6102d360415481565b6102d360405481565b6000546001600160a01b031661034b565b6102d3603f5481565b6103bd610da5565b6040516102dd9190611d06565b61028f6103d8366004611d53565b610e07565b61028f6103eb366004611db4565b610f65565b61028f6103fe366004611bba565b61107e565b61028f610411366004611c40565b61117d565b61028f610424366004611e50565b61125d565b60015461034b906001600160a01b031681565b61028f61044a366004611ec5565b6113c1565b6102d3603a5481565b6102d3603c5481565b6102d3603b5481565b61028f610478366004611ad7565b6114c4565b6102d3603e5481565b60335461034b906001600160a01b031681565b61028f6104a7366004611ec5565b6115bf565b61028f6104ba366004611c40565b61166b565b61028f6104cd366004611c40565b61183b565b6102d36104e0366004611c40565b60346020526000908152604090205481565b60005a6033546040517f0674f2660000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690630674f26690610545908890889088908890600401611f09565b600060405180830381600087803b15801561055f57600080fd5b505af1158015610573573d6000803e3d6000fd5b50506001546041546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6105a49190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156105e357600080fd5b505af11580156105f7573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b031633146106615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60368c905560378b905560388a90556039899055603a889055603b879055603c869055603d859055603e849055603f8390556040828155604182905580518d8152602081018d90529081018b9052606081018a90526080810189905260a0810188905260c0810187905260e0810186905261010081018590526101208101849052610140810183905261016081018290527fd4f23cc9b2a39ae7cdfd84be8c3d588eb1b7a6537d021589c18078ecfd8bb25e906101800160405180910390a1505050505050505050505050565b336000908152603460205260409020546107855760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f07f7d2230000000000000000000000000000000000000000000000000000000081529192506001600160a01b0316906307f7d223906107d49086908690600401611fd7565b600060405180830381600087803b1580156107ee57600080fd5b505af1158015610802573d6000803e3d6000fd5b5050600154603b546001600160a01b039091169250637ad226dc91505a6108299085611f51565b6108339190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561087257600080fd5b505af1158015610886573d6000803e3d6000fd5b50505050505050565b336000908152603460205260409020546108e65760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f133cafc80000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063133cafc89061093990889088908890889060040161212c565b600060405180830381600087803b15801561095357600080fd5b505af1158015610967573d6000803e3d6000fd5b50506001546036546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b336000908152603460205260409020546109e55760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517f2f429b640000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690632f429b6490610a38908890889088908890600401612179565b600060405180830381600087803b158015610a5257600080fd5b505af1158015610a66573d6000803e3d6000fd5b5050600154603a546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6000546001600160a01b03163314610ae75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b603380546001600160a01b0319166001600160a01b0383169081179091556040519081527fe1694c0b21fdceff6411daed547c7463c2341b9695387bc82595b5b9b1851d4a9060200160405180910390a150565b6000546001600160a01b03163314610b955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b610b9f600061191d565b565b60358181548110610bb157600080fd5b6000918252602090912001546001600160a01b0316905081565b60005a6033546040517f77145f210000000000000000000000000000000000000000000000000000000081529192506001600160a01b0316906377145f2190610c2090899089908990899089906004016121cc565b600060405180830381600087803b158015610c3a57600080fd5b505af1158015610c4e573d6000803e3d6000fd5b50506001546040546001600160a01b039091169250637ad226dc91505a610c759085611f51565b610c7f9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015610cbe57600080fd5b505af1158015610cd2573d6000803e3d6000fd5b50505050505050505050565b33610cf16000546001600160a01b031690565b6001600160a01b031614610d475760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610658565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b60606035805480602002602001604051908101604052809291908181526020018280548015610dfd57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610ddf575b5050505050905090565b33600090815260346020526040902054610e5e5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fa145e2d50000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063a145e2d590610eab908590600401612208565b600060405180830381600087803b158015610ec557600080fd5b505af1158015610ed9573d6000803e3d6000fd5b5050600154603d546001600160a01b039091169250637ad226dc91505a610f009085611f51565b610f0a9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015610f4957600080fd5b505af1158015610f5d573d6000803e3d6000fd5b505050505050565b60005a6033546040517fabaeed8f0000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063abaeed8f90610fbe908b908b908b908b908b908b908b9060040161221c565b600060405180830381600087803b158015610fd857600080fd5b505af1158015610fec573d6000803e3d6000fd5b50506001546038546001600160a01b039091169250637ad226dc91505a6110139085611f51565b61101d9190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561105c57600080fd5b505af1158015611070573d6000803e3d6000fd5b505050505050505050505050565b336000908152603460205260409020546110d55760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fb34b32160000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063b34b321690611128908890889088908890600401612179565b600060405180830381600087803b15801561114257600080fd5b505af1158015611156573d6000803e3d6000fd5b50506001546037546001600160a01b039091169250637ad226dc91505a61059a9085611f51565b6000546001600160a01b031633146111d75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b603580546001810182557fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d0180546001600160a01b0319166001600160a01b03841690811790915590546000828152603460205260408082209290925590517fd47aed730622d4816ba8c667c5644d30d0042568ce573955dfa5cafd60ecba4b9190a250565b336000908152603460205260409020546112b45760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fb7d372a40000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063b7d372a490611305908790879087906004016122d3565b600060405180830381600087803b15801561131f57600080fd5b505af1158015611333573d6000803e3d6000fd5b5050600154603c546001600160a01b039091169250637ad226dc91505a61135a9085611f51565b6113649190611f68565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156113a357600080fd5b505af11580156113b7573d6000803e3d6000fd5b5050505050505050565b336000908152603460205260409020546114185760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fc8b5d2db0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19851660048201529192506001600160a01b03169063c8b5d2db90602401600060405180830381600087803b15801561148957600080fd5b505af115801561149d573d6000803e3d6000fd5b5050600154603f546001600160a01b039091169250637ad226dc91505a610f009085611f51565b3360009081526034602052604090205461151b5760405162461bcd60e51b815260206004820152601860248201527710d85b1b195c881a5cc81b9bdd08185d5d1a1bdc9a5e995960421b6044820152606401610658565b60005a6033546040517fe44bdd310000000000000000000000000000000000000000000000000000000081529192506001600160a01b03169063e44bdd319061156a9086908690600401611fd7565b600060405180830381600087803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b5050600154603e546001600160a01b039091169250637ad226dc91505a6108299085611f51565b60005a6033546040517fee1dd3ea0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19851660048201529192506001600160a01b03169063ee1dd3ea90602401600060405180830381600087803b15801561163057600080fd5b505af1158015611644573d6000803e3d6000fd5b50506001546039546001600160a01b039091169250637ad226dc91505a610f009085611f51565b6000546001600160a01b031633146116c55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b6001600160a01b0381166000908152603460205260409020548061172b5760405162461bcd60e51b815260206004820152601c60248201527f4e6f206d61696e7461696e657220746f20756e617574686f72697a65000000006044820152606401610658565b603580546000919061173f90600190611f51565b8154811061174f5761174f612310565b6000918252602090912001546001600160a01b03169050806035611774600185611f51565b8154811061178457611784612310565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060358054806117c3576117c3612326565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03838116835260349091526040808320859055908516808352818320839055905190917f7aadb0decacd5d4973caa586e997ed7087be9d354b66bb7f88ba988818dd9ee691a2505050565b6000546001600160a01b031633146118955760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610658565b6001600160a01b0381166119115760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610658565b61191a8161191d565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f84011261197f57600080fd5b50813567ffffffffffffffff81111561199757600080fd5b6020830191508360208285010111156119af57600080fd5b9250929050565b600080600080604085870312156119cc57600080fd5b843567ffffffffffffffff808211156119e457600080fd5b6119f08883890161196d565b90965094506020870135915080821115611a0957600080fd5b50611a168782880161196d565b95989497509550505050565b6000806000806000806000806000806000806101808d8f031215611a4557600080fd5b50508a359c60208c01359c5060408c01359b60608101359b5060808101359a5060a0810135995060c0810135985060e08101359750610100810135965061012081013595506101408101359450610160013592509050565b80356bffffffffffffffffffffffff1981168114611aba57600080fd5b919050565b600060608284031215611ad157600080fd5b50919050565b60008060808385031215611aea57600080fd5b611af383611a9d565b9150611b028460208501611abf565b90509250929050565b600060808284031215611ad157600080fd5b6001600160a01b038116811461191a57600080fd5b60008060008060c08587031215611b4857600080fd5b843567ffffffffffffffff80821115611b6057600080fd5b611b6c88838901611b0b565b95506020870135915080821115611b8257600080fd5b50611b8f87828801611abf565b935050611b9f8660408701611abf565b915060a0850135611baf81611b1d565b939692955090935050565b60008060008060c08587031215611bd057600080fd5b843567ffffffffffffffff80821115611be857600080fd5b611bf488838901611b0b565b95506020870135915080821115611c0a57600080fd5b50611c1787828801611abf565b935050611c278660408701611abf565b9150611c3560a08601611a9d565b905092959194509250565b600060208284031215611c5257600080fd5b8135611c5d81611b1d565b9392505050565b600060208284031215611c7657600080fd5b5035919050565b600080600080600060608688031215611c9557600080fd5b853567ffffffffffffffff80821115611cad57600080fd5b611cb989838a0161196d565b90975095506020880135915080821115611cd257600080fd5b50611cdf8882890161196d565b90945092505060408601358015158114611cf857600080fd5b809150509295509295909350565b6020808252825182820181905260009190848201906040850190845b81811015611d475783516001600160a01b031683529284019291840191600101611d22565b50909695505050505050565b600060608284031215611d6557600080fd5b611c5d8383611abf565b60008083601f840112611d8157600080fd5b50813567ffffffffffffffff811115611d9957600080fd5b6020830191508360208260051b85010111156119af57600080fd5b600080600080600080600060e0888a031215611dcf57600080fd5b611dd888611a9d565b9650611de78960208a01611abf565b9550608088013567ffffffffffffffff80821115611e0457600080fd5b611e108b838c01611d6f565b909750955060a08a0135945060c08a0135915080821115611e3057600080fd5b50611e3d8a828b01611d6f565b989b979a50959850939692959293505050565b600080600060a08486031215611e6557600080fd5b833567ffffffffffffffff80821115611e7d57600080fd5b611e8987838801611b0b565b94506020860135915080821115611e9f57600080fd5b50611eac86828701611abf565b925050611ebc8560408601611abf565b90509250925092565b600060208284031215611ed757600080fd5b611c5d82611a9d565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000611f1d604083018688611ee0565b8281036020840152611f30818587611ee0565b979650505050505050565b634e487b7160e01b600052601160045260246000fd5b600082821015611f6357611f63611f3b565b500390565b60008219821115611f7b57611f7b611f3b565b500190565b803563ffffffff81168114611aba57600080fd5b8035825263ffffffff611fa960208301611f80565b166020830152604081013567ffffffffffffffff8116808214611fcb57600080fd5b80604085015250505050565b6bffffffffffffffffffffffff198316815260808101611c5d6020830184611f94565b80356001600160e01b031981168114611aba57600080fd5b6000808335601e1984360301811261202957600080fd5b830160208101925035905067ffffffffffffffff81111561204957600080fd5b8036038313156119af57600080fd5b60006001600160e01b03198061206d84611ffa565b16845261207d6020840184612012565b60806020870152612092608087018284611ee0565b9150506120a26040850185612012565b86830360408801526120b5838284611ee0565b92505050816120c660608601611ffa565b166060860152809250505092915050565b60006120e38283612012565b606085526120f5606086018284611ee0565b9150506020830135602085015261210f6040840184612012565b8583036040870152612122838284611ee0565b9695505050505050565b60c08152600061213f60c0830187612058565b828103602084015261215181876120d7565b9150506121616040830185611f94565b6001600160a01b03831660a083015295945050505050565b60c08152600061218c60c0830187612058565b828103602084015261219e81876120d7565b9150506121ae6040830185611f94565b6bffffffffffffffffffffffff19831660a083015295945050505050565b6060815260006121e0606083018789611ee0565b82810360208401526121f3818688611ee0565b91505082151560408301529695505050505050565b606081016122168284611f94565b92915050565b600060e082016bffffffffffffffffffffffff19808b16845260206122438186018c611f94565b60e06080860152918890528891610100850160005b8a8110156122815763ffffffff61226e86611f80565b1682529382019390820190600101612258565b5060a0860189905285810360c0870152868152810192508660005b878110156122c157836122ae83611a9d565b168552938201939082019060010161229c565b50929c9b505050505050505050505050565b60a0815260006122e660a0830186612058565b82810360208401526122f881866120d7565b9150506123086040830184611f94565b949350505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fdfea2646970667358221220dbd26d1412f88b1907aba0211e4a3b2322034abad81841a93bae247af30ed4bb64736f6c63430008090033",
1109
1109
  "linkReferences": {},
1110
1110
  "deployedLinkReferences": {}
1111
1111
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/d3aced5967a0e5e403699bddc677bfd5.json"
4
+ }
@@ -0,0 +1,214 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ILightRelay",
4
+ "sourceName": "contracts/relay/LightRelay.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "bool",
12
+ "name": "newStatus",
13
+ "type": "bool"
14
+ }
15
+ ],
16
+ "name": "AuthorizationRequirementChanged",
17
+ "type": "event"
18
+ },
19
+ {
20
+ "anonymous": false,
21
+ "inputs": [
22
+ {
23
+ "indexed": false,
24
+ "internalType": "uint256",
25
+ "name": "blockHeight",
26
+ "type": "uint256"
27
+ }
28
+ ],
29
+ "name": "Genesis",
30
+ "type": "event"
31
+ },
32
+ {
33
+ "anonymous": false,
34
+ "inputs": [
35
+ {
36
+ "indexed": false,
37
+ "internalType": "uint256",
38
+ "name": "newLength",
39
+ "type": "uint256"
40
+ }
41
+ ],
42
+ "name": "ProofLengthChanged",
43
+ "type": "event"
44
+ },
45
+ {
46
+ "anonymous": false,
47
+ "inputs": [
48
+ {
49
+ "indexed": false,
50
+ "internalType": "uint256",
51
+ "name": "oldDifficulty",
52
+ "type": "uint256"
53
+ },
54
+ {
55
+ "indexed": false,
56
+ "internalType": "uint256",
57
+ "name": "newDifficulty",
58
+ "type": "uint256"
59
+ }
60
+ ],
61
+ "name": "Retarget",
62
+ "type": "event"
63
+ },
64
+ {
65
+ "anonymous": false,
66
+ "inputs": [
67
+ {
68
+ "indexed": false,
69
+ "internalType": "address",
70
+ "name": "submitter",
71
+ "type": "address"
72
+ }
73
+ ],
74
+ "name": "SubmitterAuthorized",
75
+ "type": "event"
76
+ },
77
+ {
78
+ "anonymous": false,
79
+ "inputs": [
80
+ {
81
+ "indexed": false,
82
+ "internalType": "address",
83
+ "name": "submitter",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "name": "SubmitterDeauthorized",
88
+ "type": "event"
89
+ },
90
+ {
91
+ "inputs": [
92
+ {
93
+ "internalType": "uint256",
94
+ "name": "blockNumber",
95
+ "type": "uint256"
96
+ }
97
+ ],
98
+ "name": "getBlockDifficulty",
99
+ "outputs": [
100
+ {
101
+ "internalType": "uint256",
102
+ "name": "",
103
+ "type": "uint256"
104
+ }
105
+ ],
106
+ "stateMutability": "view",
107
+ "type": "function"
108
+ },
109
+ {
110
+ "inputs": [],
111
+ "name": "getCurrentEpochDifficulty",
112
+ "outputs": [
113
+ {
114
+ "internalType": "uint256",
115
+ "name": "",
116
+ "type": "uint256"
117
+ }
118
+ ],
119
+ "stateMutability": "view",
120
+ "type": "function"
121
+ },
122
+ {
123
+ "inputs": [
124
+ {
125
+ "internalType": "uint256",
126
+ "name": "epochNumber",
127
+ "type": "uint256"
128
+ }
129
+ ],
130
+ "name": "getEpochDifficulty",
131
+ "outputs": [
132
+ {
133
+ "internalType": "uint256",
134
+ "name": "",
135
+ "type": "uint256"
136
+ }
137
+ ],
138
+ "stateMutability": "view",
139
+ "type": "function"
140
+ },
141
+ {
142
+ "inputs": [],
143
+ "name": "getPrevEpochDifficulty",
144
+ "outputs": [
145
+ {
146
+ "internalType": "uint256",
147
+ "name": "",
148
+ "type": "uint256"
149
+ }
150
+ ],
151
+ "stateMutability": "view",
152
+ "type": "function"
153
+ },
154
+ {
155
+ "inputs": [],
156
+ "name": "getRelayRange",
157
+ "outputs": [
158
+ {
159
+ "internalType": "uint256",
160
+ "name": "relayGenesis",
161
+ "type": "uint256"
162
+ },
163
+ {
164
+ "internalType": "uint256",
165
+ "name": "currentEpochEnd",
166
+ "type": "uint256"
167
+ }
168
+ ],
169
+ "stateMutability": "view",
170
+ "type": "function"
171
+ },
172
+ {
173
+ "inputs": [
174
+ {
175
+ "internalType": "bytes",
176
+ "name": "headers",
177
+ "type": "bytes"
178
+ }
179
+ ],
180
+ "name": "retarget",
181
+ "outputs": [],
182
+ "stateMutability": "nonpayable",
183
+ "type": "function"
184
+ },
185
+ {
186
+ "inputs": [
187
+ {
188
+ "internalType": "bytes",
189
+ "name": "headers",
190
+ "type": "bytes"
191
+ }
192
+ ],
193
+ "name": "validateChain",
194
+ "outputs": [
195
+ {
196
+ "internalType": "uint256",
197
+ "name": "startingHeaderTimestamp",
198
+ "type": "uint256"
199
+ },
200
+ {
201
+ "internalType": "uint256",
202
+ "name": "headerCount",
203
+ "type": "uint256"
204
+ }
205
+ ],
206
+ "stateMutability": "view",
207
+ "type": "function"
208
+ }
209
+ ],
210
+ "bytecode": "0x",
211
+ "deployedBytecode": "0x",
212
+ "linkReferences": {},
213
+ "deployedLinkReferences": {}
214
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/d3aced5967a0e5e403699bddc677bfd5.json"
4
+ }