@keep-network/tbtc-v2 0.1.1-dev.72 → 0.1.1-dev.75

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 (89) hide show
  1. package/artifacts/Bank.json +15 -15
  2. package/artifacts/Bridge.json +14 -1
  3. package/artifacts/DefaultProxyAdmin.json +5 -5
  4. package/artifacts/Deposit.json +10 -10
  5. package/artifacts/DepositSweep.json +11 -11
  6. package/artifacts/EcdsaDkgValidator.json +9 -9
  7. package/artifacts/EcdsaInactivity.json +8 -8
  8. package/artifacts/Fraud.json +21 -21
  9. package/artifacts/KeepRegistry.json +1 -1
  10. package/artifacts/KeepStake.json +2 -2
  11. package/artifacts/KeepToken.json +2 -2
  12. package/artifacts/KeepTokenStaking.json +1 -1
  13. package/artifacts/MovingFunds.json +33 -33
  14. package/artifacts/NuCypherStakingEscrow.json +1 -1
  15. package/artifacts/NuCypherToken.json +2 -2
  16. package/artifacts/RandomBeaconStub.json +5 -5
  17. package/artifacts/Redemption.json +22 -22
  18. package/artifacts/ReimbursementPool.json +5 -5
  19. package/artifacts/Relay.json +9 -9
  20. package/artifacts/SortitionPool.json +9 -9
  21. package/artifacts/T.json +2 -2
  22. package/artifacts/TBTC.json +17 -17
  23. package/artifacts/TBTCToken.json +15 -15
  24. package/artifacts/TokenStaking.json +1 -1
  25. package/artifacts/TokenholderGovernor.json +9 -9
  26. package/artifacts/TokenholderTimelock.json +8 -8
  27. package/artifacts/VendingMachine.json +18 -18
  28. package/artifacts/VendingMachineKeep.json +1 -1
  29. package/artifacts/VendingMachineNuCypher.json +1 -1
  30. package/artifacts/WalletRegistry.json +17 -17
  31. package/artifacts/WalletRegistry_Implementation.json +73 -73
  32. package/artifacts/WalletRegistry_Proxy.json +17 -17
  33. package/artifacts/Wallets.json +12 -12
  34. package/artifacts/solcInputs/49c80d59bf0ae61f27a8bb5db19af68a.json +272 -0
  35. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  36. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
  37. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  38. package/build/contracts/bank/Bank.sol/Bank.json +2 -2
  39. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  40. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +2 -2
  41. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  42. package/build/contracts/bridge/Bridge.sol/Bridge.json +58 -42
  43. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  44. package/build/contracts/bridge/BridgeState.sol/BridgeState.json +8 -2
  45. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  46. package/build/contracts/bridge/Deposit.sol/Deposit.json +2 -2
  47. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  48. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +2 -2
  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/Fraud.sol/Fraud.json +2 -2
  52. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  53. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.json +2 -2
  54. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  55. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  56. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +2 -2
  57. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  58. package/build/contracts/bridge/Redemption.sol/OutboundTx.json +2 -2
  59. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  60. package/build/contracts/bridge/Redemption.sol/Redemption.json +2 -2
  61. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  62. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
  63. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  64. package/build/contracts/bridge/Wallets.sol/Wallets.json +2 -2
  65. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  66. package/build/contracts/token/TBTC.sol/TBTC.json +2 -2
  67. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  68. package/build/contracts/vault/DonationVault.sol/DonationVault.json +2 -2
  69. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  70. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  71. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +2 -2
  72. package/contracts/GovernanceUtils.sol +3 -3
  73. package/contracts/bank/Bank.sol +2 -2
  74. package/contracts/bridge/BitcoinTx.sol +7 -7
  75. package/contracts/bridge/Bridge.sol +221 -203
  76. package/contracts/bridge/BridgeState.sol +75 -49
  77. package/contracts/bridge/Deposit.sol +5 -5
  78. package/contracts/bridge/DepositSweep.sol +12 -12
  79. package/contracts/bridge/Fraud.sol +25 -25
  80. package/contracts/bridge/Heartbeat.sol +1 -1
  81. package/contracts/bridge/MovingFunds.sol +81 -72
  82. package/contracts/bridge/Redemption.sol +32 -31
  83. package/contracts/bridge/Wallets.sol +29 -29
  84. package/contracts/vault/DonationVault.sol +9 -9
  85. package/contracts/vault/IVault.sol +4 -4
  86. package/contracts/vault/TBTCVault.sol +14 -14
  87. package/export.json +13 -0
  88. package/package.json +3 -3
  89. package/artifacts/solcInputs/55df7785455cbf6ded1b912686e91d3f.json +0 -269
@@ -526,8 +526,8 @@
526
526
  "type": "function"
527
527
  }
528
528
  ],
529
- "bytecode": "0x60c06040523480156200001157600080fd5b50604051806040016040528060078152602001663a212a21903b1960c91b815250604051806040016040528060048152602001637442544360e01b8152506200006962000063620000af60201b60201c565b620000b3565b81516200007e906005906020850190620001b4565b50805162000094906006906020840190620001b4565b5046608052620000a362000103565b60a052506200033b9050565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600560405162000137919062000297565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b828054620001c2906200025a565b90600052602060002090601f016020900481019282620001e6576000855562000231565b82601f106200020157805160ff191683800117855562000231565b8280016001018555821562000231579182015b828111156200023157825182559160200191906001019062000214565b506200023f92915062000243565b5090565b5b808211156200023f576000815560010162000244565b600181811c908216806200026f57607f821691505b602082108114156200029157634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680620002b457607f831692505b6020808410821415620002d557634e487b7160e01b86526022600452602486fd5b818015620002ec5760018114620002fe576200032d565b60ff198616895284890196506200032d565b60008a81526020902060005b86811015620003255781548b8201529085019083016200030a565b505084890196505b509498975050505050505050565b60805160a051611b9f6200036f6000396000818161034901526105fa0152600081816102d901526105d10152611b9f6000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c8063715018a6116100e3578063b4f94b2e1161008c578063dd62ed3e11610066578063dd62ed3e14610391578063f2fde38b146103bc578063fc4e51f6146103cf57600080fd5b8063b4f94b2e14610344578063cae9ca511461036b578063d505accf1461037e57600080fd5b80638da5cb5b116100bd5780638da5cb5b1461030e57806395d89b4114610329578063a9059cbb1461033157600080fd5b8063715018a6146102cc578063771da5c5146102d457806379cc6790146102fb57600080fd5b8063313ce5671161014557806342966c681161011f57806342966c681461027957806370a082311461028c57806370ae92d2146102ac57600080fd5b8063313ce567146102445780633644e5151461025e57806340c10f191461026657600080fd5b806318160ddd1161017657806318160ddd146101f357806323b872dd1461020a57806330adf81f1461021d57600080fd5b806306fdde031461019d578063095ea7b3146101bb5780631171bda9146101de575b600080fd5b6101a56103e2565b6040516101b29190611667565b60405180910390f35b6101ce6101c936600461168f565b610470565b60405190151581526020016101b2565b6101f16101ec3660046116bb565b610486565b005b6101fc60045481565b6040519081526020016101b2565b6101ce6102183660046116bb565b6104fe565b6101fc7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b61024c601281565b60405160ff90911681526020016101b2565b6101fc6105cd565b6101f161027436600461168f565b610629565b6101f16102873660046116fc565b610762565b6101fc61029a366004611715565b60016020526000908152604090205481565b6101fc6102ba366004611715565b60036020526000908152604090205481565b6101f161076f565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101f161030936600461168f565b6107d5565b6000546040516001600160a01b0390911681526020016101b2565b6101a561086b565b6101ce61033f36600461168f565b610878565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101ce610379366004611748565b610885565b6101f161038c366004611815565b610926565b6101fc61039f36600461188c565b600260209081526000928352604080842090915290825290205481565b6101f16103ca366004611715565b610c36565b6101f16103dd3660046118c5565b610d15565b600580546103ef90611964565b80601f016020809104026020016040519081016040528092919081815260200182805461041b90611964565b80156104685780601f1061043d57610100808354040283529160200191610468565b820191906000526020600020905b81548152906001019060200180831161044b57829003601f168201915b505050505081565b600061047d338484610dea565b50600192915050565b6000546001600160a01b031633146104e55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6104f96001600160a01b0384168383610ef8565b505050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001981146105b557828110156105a15760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016104dc565b6105b585336105b086856119b5565b610dea565b6105c0858585610f78565b60019150505b9392505050565b60007f000000000000000000000000000000000000000000000000000000000000000046141561061c57507f000000000000000000000000000000000000000000000000000000000000000090565b610624611180565b905090565b6000546001600160a01b031633146106835760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6001600160a01b0382166106d95760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f2061646472657373000000000000000060448201526064016104dc565b80600460008282546106eb91906119cc565b90915550506001600160a01b038216600090815260016020526040812080548392906107189084906119cc565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b61076c338261124b565b50565b6000546001600160a01b031633146107c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6107d3600061132f565b565b6001600160a01b0382166000908152600260209081526040808320338452909152902054600019811461086157818110156108525760405162461bcd60e51b815260206004820152601d60248201527f4275726e20616d6f756e74206578636565647320616c6c6f77616e636500000060448201526064016104dc565b61086183336105b085856119b5565b6104f9838361124b565b600680546103ef90611964565b600061047d338484610f78565b60006108918484610470565b1561091c576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638f4ffcb1906108e19033908790309088906004016119e4565b600060405180830381600087803b1580156108fb57600080fd5b505af115801561090f573d6000803e3d6000fd5b50505050600190506105c6565b5060009392505050565b428410156109765760405162461bcd60e51b815260206004820152601260248201527f5065726d697373696f6e2065787069726564000000000000000000000000000060448201526064016104dc565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08111156109e65760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202773272076616c7565000000000060448201526064016104dc565b8260ff16601b14806109fb57508260ff16601c145b610a475760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202776272076616c7565000000000060448201526064016104dc565b6000610a516105cd565b6001600160a01b038916600090815260036020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92909190610a9f83611a20565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610b339291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610b9e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610bd45750886001600160a01b0316816001600160a01b0316145b610c205760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016104dc565b610c2b898989610dea565b505050505050505050565b6000546001600160a01b03163314610c905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6001600160a01b038116610d0c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104dc565b61076c8161132f565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6040517fb88d4fde0000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063b88d4fde90610dbc9030908890889088908890600401611a3b565b600060405180830381600087803b158015610dd657600080fd5b505af1158015610c2b573d6000803e3d6000fd5b6001600160a01b038316610e405760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f206164647265737300000060448201526064016104dc565b6001600160a01b038216610e965760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f2061646472657373000000000060448201526064016104dc565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f9908490611397565b6001600160a01b038316610fce5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064016104dc565b6001600160a01b0382166110245760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016104dc565b6001600160a01b03821630141561107d5760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220746f2074686520746f6b656e206164647265737300000060448201526064016104dc565b6001600160a01b038316600090815260016020526040902054818110156110e65760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016104dc565b6110f082826119b5565b6001600160a01b0380861660009081526001602052604080822093909355908516815290812080548492906111269084906119cc565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117291815260200190565b60405180910390a350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60056040516111b29190611a8f565b604080519182900382208282018252600183527f31000000000000000000000000000000000000000000000000000000000000006020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038216600090815260016020526040902054818110156112b45760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e6365000000000060448201526064016104dc565b6112be82826119b5565b6001600160a01b038416600090815260016020526040812091909155600480548492906112ec9084906119b5565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610eeb565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006113ec826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661147c9092919063ffffffff16565b8051909150156104f9578080602001905181019061140a9190611b2b565b6104f95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104dc565b606061148b8484600085611493565b949350505050565b60608247101561150b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104dc565b843b6115595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104dc565b600080866001600160a01b031685876040516115759190611b4d565b60006040518083038185875af1925050503d80600081146115b2576040519150601f19603f3d011682016040523d82523d6000602084013e6115b7565b606091505b50915091506115c78282866115d2565b979650505050505050565b606083156115e15750816105c6565b8251156115f15782518084602001fd5b8160405162461bcd60e51b81526004016104dc9190611667565b60005b8381101561162657818101518382015260200161160e565b83811115611635576000848401525b50505050565b6000815180845261165381602086016020860161160b565b601f01601f19169290920160200192915050565b6020815260006105c6602083018461163b565b6001600160a01b038116811461076c57600080fd5b600080604083850312156116a257600080fd5b82356116ad8161167a565b946020939093013593505050565b6000806000606084860312156116d057600080fd5b83356116db8161167a565b925060208401356116eb8161167a565b929592945050506040919091013590565b60006020828403121561170e57600080fd5b5035919050565b60006020828403121561172757600080fd5b81356105c68161167a565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561175d57600080fd5b83356117688161167a565b925060208401359150604084013567ffffffffffffffff8082111561178c57600080fd5b818601915086601f8301126117a057600080fd5b8135818111156117b2576117b2611732565b604051601f8201601f19908116603f011681019083821181831017156117da576117da611732565b816040528281528960208487010111156117f357600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080600080600080600060e0888a03121561183057600080fd5b873561183b8161167a565b9650602088013561184b8161167a565b95506040880135945060608801359350608088013560ff8116811461186f57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561189f57600080fd5b82356118aa8161167a565b915060208301356118ba8161167a565b809150509250929050565b6000806000806000608086880312156118dd57600080fd5b85356118e88161167a565b945060208601356118f88161167a565b935060408601359250606086013567ffffffffffffffff8082111561191c57600080fd5b818801915088601f83011261193057600080fd5b81358181111561193f57600080fd5b89602082850101111561195157600080fd5b9699959850939650602001949392505050565b600181811c9082168061197857607f821691505b6020821081141561199957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119c7576119c761199f565b500390565b600082198211156119df576119df61199f565b500190565b60006001600160a01b03808716835285602084015280851660408401525060806060830152611a16608083018461163b565b9695505050505050565b6000600019821415611a3457611a3461199f565b5060010190565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b600080835481600182811c915080831680611aab57607f831692505b6020808410821415611acb57634e487b7160e01b86526022600452602486fd5b818015611adf5760018114611af057611b1d565b60ff19861689528489019650611b1d565b60008a81526020902060005b86811015611b155781548b820152908501908301611afc565b505084890196505b509498975050505050505050565b600060208284031215611b3d57600080fd5b815180151581146105c657600080fd5b60008251611b5f81846020870161160b565b919091019291505056fea264697066735822122015aa14a90768c9a31ae2481c3bae0e01c7b4bca70d7462b79f0f8063c003ff0664736f6c63430008090033",
530
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101985760003560e01c8063715018a6116100e3578063b4f94b2e1161008c578063dd62ed3e11610066578063dd62ed3e14610391578063f2fde38b146103bc578063fc4e51f6146103cf57600080fd5b8063b4f94b2e14610344578063cae9ca511461036b578063d505accf1461037e57600080fd5b80638da5cb5b116100bd5780638da5cb5b1461030e57806395d89b4114610329578063a9059cbb1461033157600080fd5b8063715018a6146102cc578063771da5c5146102d457806379cc6790146102fb57600080fd5b8063313ce5671161014557806342966c681161011f57806342966c681461027957806370a082311461028c57806370ae92d2146102ac57600080fd5b8063313ce567146102445780633644e5151461025e57806340c10f191461026657600080fd5b806318160ddd1161017657806318160ddd146101f357806323b872dd1461020a57806330adf81f1461021d57600080fd5b806306fdde031461019d578063095ea7b3146101bb5780631171bda9146101de575b600080fd5b6101a56103e2565b6040516101b29190611667565b60405180910390f35b6101ce6101c936600461168f565b610470565b60405190151581526020016101b2565b6101f16101ec3660046116bb565b610486565b005b6101fc60045481565b6040519081526020016101b2565b6101ce6102183660046116bb565b6104fe565b6101fc7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b61024c601281565b60405160ff90911681526020016101b2565b6101fc6105cd565b6101f161027436600461168f565b610629565b6101f16102873660046116fc565b610762565b6101fc61029a366004611715565b60016020526000908152604090205481565b6101fc6102ba366004611715565b60036020526000908152604090205481565b6101f161076f565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101f161030936600461168f565b6107d5565b6000546040516001600160a01b0390911681526020016101b2565b6101a561086b565b6101ce61033f36600461168f565b610878565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101ce610379366004611748565b610885565b6101f161038c366004611815565b610926565b6101fc61039f36600461188c565b600260209081526000928352604080842090915290825290205481565b6101f16103ca366004611715565b610c36565b6101f16103dd3660046118c5565b610d15565b600580546103ef90611964565b80601f016020809104026020016040519081016040528092919081815260200182805461041b90611964565b80156104685780601f1061043d57610100808354040283529160200191610468565b820191906000526020600020905b81548152906001019060200180831161044b57829003601f168201915b505050505081565b600061047d338484610dea565b50600192915050565b6000546001600160a01b031633146104e55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6104f96001600160a01b0384168383610ef8565b505050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001981146105b557828110156105a15760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016104dc565b6105b585336105b086856119b5565b610dea565b6105c0858585610f78565b60019150505b9392505050565b60007f000000000000000000000000000000000000000000000000000000000000000046141561061c57507f000000000000000000000000000000000000000000000000000000000000000090565b610624611180565b905090565b6000546001600160a01b031633146106835760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6001600160a01b0382166106d95760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f2061646472657373000000000000000060448201526064016104dc565b80600460008282546106eb91906119cc565b90915550506001600160a01b038216600090815260016020526040812080548392906107189084906119cc565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b61076c338261124b565b50565b6000546001600160a01b031633146107c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6107d3600061132f565b565b6001600160a01b0382166000908152600260209081526040808320338452909152902054600019811461086157818110156108525760405162461bcd60e51b815260206004820152601d60248201527f4275726e20616d6f756e74206578636565647320616c6c6f77616e636500000060448201526064016104dc565b61086183336105b085856119b5565b6104f9838361124b565b600680546103ef90611964565b600061047d338484610f78565b60006108918484610470565b1561091c576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638f4ffcb1906108e19033908790309088906004016119e4565b600060405180830381600087803b1580156108fb57600080fd5b505af115801561090f573d6000803e3d6000fd5b50505050600190506105c6565b5060009392505050565b428410156109765760405162461bcd60e51b815260206004820152601260248201527f5065726d697373696f6e2065787069726564000000000000000000000000000060448201526064016104dc565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08111156109e65760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202773272076616c7565000000000060448201526064016104dc565b8260ff16601b14806109fb57508260ff16601c145b610a475760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202776272076616c7565000000000060448201526064016104dc565b6000610a516105cd565b6001600160a01b038916600090815260036020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92909190610a9f83611a20565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610b339291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610b9e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610bd45750886001600160a01b0316816001600160a01b0316145b610c205760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016104dc565b610c2b898989610dea565b505050505050505050565b6000546001600160a01b03163314610c905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6001600160a01b038116610d0c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104dc565b61076c8161132f565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6040517fb88d4fde0000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063b88d4fde90610dbc9030908890889088908890600401611a3b565b600060405180830381600087803b158015610dd657600080fd5b505af1158015610c2b573d6000803e3d6000fd5b6001600160a01b038316610e405760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f206164647265737300000060448201526064016104dc565b6001600160a01b038216610e965760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f2061646472657373000000000060448201526064016104dc565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f9908490611397565b6001600160a01b038316610fce5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064016104dc565b6001600160a01b0382166110245760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016104dc565b6001600160a01b03821630141561107d5760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220746f2074686520746f6b656e206164647265737300000060448201526064016104dc565b6001600160a01b038316600090815260016020526040902054818110156110e65760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016104dc565b6110f082826119b5565b6001600160a01b0380861660009081526001602052604080822093909355908516815290812080548492906111269084906119cc565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117291815260200190565b60405180910390a350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60056040516111b29190611a8f565b604080519182900382208282018252600183527f31000000000000000000000000000000000000000000000000000000000000006020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038216600090815260016020526040902054818110156112b45760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e6365000000000060448201526064016104dc565b6112be82826119b5565b6001600160a01b038416600090815260016020526040812091909155600480548492906112ec9084906119b5565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610eeb565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006113ec826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661147c9092919063ffffffff16565b8051909150156104f9578080602001905181019061140a9190611b2b565b6104f95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104dc565b606061148b8484600085611493565b949350505050565b60608247101561150b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104dc565b843b6115595760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104dc565b600080866001600160a01b031685876040516115759190611b4d565b60006040518083038185875af1925050503d80600081146115b2576040519150601f19603f3d011682016040523d82523d6000602084013e6115b7565b606091505b50915091506115c78282866115d2565b979650505050505050565b606083156115e15750816105c6565b8251156115f15782518084602001fd5b8160405162461bcd60e51b81526004016104dc9190611667565b60005b8381101561162657818101518382015260200161160e565b83811115611635576000848401525b50505050565b6000815180845261165381602086016020860161160b565b601f01601f19169290920160200192915050565b6020815260006105c6602083018461163b565b6001600160a01b038116811461076c57600080fd5b600080604083850312156116a257600080fd5b82356116ad8161167a565b946020939093013593505050565b6000806000606084860312156116d057600080fd5b83356116db8161167a565b925060208401356116eb8161167a565b929592945050506040919091013590565b60006020828403121561170e57600080fd5b5035919050565b60006020828403121561172757600080fd5b81356105c68161167a565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561175d57600080fd5b83356117688161167a565b925060208401359150604084013567ffffffffffffffff8082111561178c57600080fd5b818601915086601f8301126117a057600080fd5b8135818111156117b2576117b2611732565b604051601f8201601f19908116603f011681019083821181831017156117da576117da611732565b816040528281528960208487010111156117f357600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080600080600080600060e0888a03121561183057600080fd5b873561183b8161167a565b9650602088013561184b8161167a565b95506040880135945060608801359350608088013560ff8116811461186f57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b6000806040838503121561189f57600080fd5b82356118aa8161167a565b915060208301356118ba8161167a565b809150509250929050565b6000806000806000608086880312156118dd57600080fd5b85356118e88161167a565b945060208601356118f88161167a565b935060408601359250606086013567ffffffffffffffff8082111561191c57600080fd5b818801915088601f83011261193057600080fd5b81358181111561193f57600080fd5b89602082850101111561195157600080fd5b9699959850939650602001949392505050565b600181811c9082168061197857607f821691505b6020821081141561199957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119c7576119c761199f565b500390565b600082198211156119df576119df61199f565b500190565b60006001600160a01b03808716835285602084015280851660408401525060806060830152611a16608083018461163b565b9695505050505050565b6000600019821415611a3457611a3461199f565b5060010190565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b600080835481600182811c915080831680611aab57607f831692505b6020808410821415611acb57634e487b7160e01b86526022600452602486fd5b818015611adf5760018114611af057611b1d565b60ff19861689528489019650611b1d565b60008a81526020902060005b86811015611b155781548b820152908501908301611afc565b505084890196505b509498975050505050505050565b600060208284031215611b3d57600080fd5b815180151581146105c657600080fd5b60008251611b5f81846020870161160b565b919091019291505056fea264697066735822122015aa14a90768c9a31ae2481c3bae0e01c7b4bca70d7462b79f0f8063c003ff0664736f6c63430008090033",
529
+ "bytecode": "0x60c06040523480156200001157600080fd5b50604051806040016040528060078152602001663a212a21903b1960c91b815250604051806040016040528060048152602001637442544360e01b8152506200006962000063620000af60201b60201c565b620000b3565b81516200007e906005906020850190620001b4565b50805162000094906006906020840190620001b4565b5046608052620000a362000103565b60a052506200033b9050565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600560405162000137919062000297565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b828054620001c2906200025a565b90600052602060002090601f016020900481019282620001e6576000855562000231565b82601f106200020157805160ff191683800117855562000231565b8280016001018555821562000231579182015b828111156200023157825182559160200191906001019062000214565b506200023f92915062000243565b5090565b5b808211156200023f576000815560010162000244565b600181811c908216806200026f57607f821691505b602082108114156200029157634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680620002b457607f831692505b6020808410821415620002d557634e487b7160e01b86526022600452602486fd5b818015620002ec5760018114620002fe576200032d565b60ff198616895284890196506200032d565b60008a81526020902060005b86811015620003255781548b8201529085019083016200030a565b505084890196505b509498975050505050505050565b60805160a051611ba86200036f6000396000818161034901526105fa0152600081816102d901526105d10152611ba86000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c8063715018a6116100e3578063b4f94b2e1161008c578063dd62ed3e11610066578063dd62ed3e14610391578063f2fde38b146103bc578063fc4e51f6146103cf57600080fd5b8063b4f94b2e14610344578063cae9ca511461036b578063d505accf1461037e57600080fd5b80638da5cb5b116100bd5780638da5cb5b1461030e57806395d89b4114610329578063a9059cbb1461033157600080fd5b8063715018a6146102cc578063771da5c5146102d457806379cc6790146102fb57600080fd5b8063313ce5671161014557806342966c681161011f57806342966c681461027957806370a082311461028c57806370ae92d2146102ac57600080fd5b8063313ce567146102445780633644e5151461025e57806340c10f191461026657600080fd5b806318160ddd1161017657806318160ddd146101f357806323b872dd1461020a57806330adf81f1461021d57600080fd5b806306fdde031461019d578063095ea7b3146101bb5780631171bda9146101de575b600080fd5b6101a56103e2565b6040516101b29190611670565b60405180910390f35b6101ce6101c9366004611698565b610470565b60405190151581526020016101b2565b6101f16101ec3660046116c4565b610486565b005b6101fc60045481565b6040519081526020016101b2565b6101ce6102183660046116c4565b6104fe565b6101fc7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b61024c601281565b60405160ff90911681526020016101b2565b6101fc6105cd565b6101f1610274366004611698565b610629565b6101f1610287366004611705565b610762565b6101fc61029a36600461171e565b60016020526000908152604090205481565b6101fc6102ba36600461171e565b60036020526000908152604090205481565b6101f161076f565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101f1610309366004611698565b6107d5565b6000546040516001600160a01b0390911681526020016101b2565b6101a561086b565b6101ce61033f366004611698565b610878565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101ce610379366004611751565b610885565b6101f161038c36600461181e565b610926565b6101fc61039f366004611895565b600260209081526000928352604080842090915290825290205481565b6101f16103ca36600461171e565b610c36565b6101f16103dd3660046118ce565b610d15565b600580546103ef9061196d565b80601f016020809104026020016040519081016040528092919081815260200182805461041b9061196d565b80156104685780601f1061043d57610100808354040283529160200191610468565b820191906000526020600020905b81548152906001019060200180831161044b57829003601f168201915b505050505081565b600061047d338484610dea565b50600192915050565b6000546001600160a01b031633146104e55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6104f96001600160a01b0384168383610ef8565b505050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001981146105b557828110156105a15760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016104dc565b6105b585336105b086856119be565b610dea565b6105c0858585610f78565b60019150505b9392505050565b60007f000000000000000000000000000000000000000000000000000000000000000046141561061c57507f000000000000000000000000000000000000000000000000000000000000000090565b610624611180565b905090565b6000546001600160a01b031633146106835760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6001600160a01b0382166106d95760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f2061646472657373000000000000000060448201526064016104dc565b80600460008282546106eb91906119d5565b90915550506001600160a01b038216600090815260016020526040812080548392906107189084906119d5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b61076c338261124b565b50565b6000546001600160a01b031633146107c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6107d3600061132f565b565b6001600160a01b0382166000908152600260209081526040808320338452909152902054600019811461086157818110156108525760405162461bcd60e51b815260206004820152601d60248201527f4275726e20616d6f756e74206578636565647320616c6c6f77616e636500000060448201526064016104dc565b61086183336105b085856119be565b6104f9838361124b565b600680546103ef9061196d565b600061047d338484610f78565b60006108918484610470565b1561091c576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638f4ffcb1906108e19033908790309088906004016119ed565b600060405180830381600087803b1580156108fb57600080fd5b505af115801561090f573d6000803e3d6000fd5b50505050600190506105c6565b5060009392505050565b428410156109765760405162461bcd60e51b815260206004820152601260248201527f5065726d697373696f6e2065787069726564000000000000000000000000000060448201526064016104dc565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08111156109e65760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202773272076616c7565000000000060448201526064016104dc565b8260ff16601b14806109fb57508260ff16601c145b610a475760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202776272076616c7565000000000060448201526064016104dc565b6000610a516105cd565b6001600160a01b038916600090815260036020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92909190610a9f83611a29565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610b339291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610b9e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610bd45750886001600160a01b0316816001600160a01b0316145b610c205760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016104dc565b610c2b898989610dea565b505050505050505050565b6000546001600160a01b03163314610c905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6001600160a01b038116610d0c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104dc565b61076c8161132f565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6040517fb88d4fde0000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063b88d4fde90610dbc9030908890889088908890600401611a44565b600060405180830381600087803b158015610dd657600080fd5b505af1158015610c2b573d6000803e3d6000fd5b6001600160a01b038316610e405760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f206164647265737300000060448201526064016104dc565b6001600160a01b038216610e965760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f2061646472657373000000000060448201526064016104dc565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f9908490611397565b6001600160a01b038316610fce5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064016104dc565b6001600160a01b0382166110245760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016104dc565b6001600160a01b03821630141561107d5760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220746f2074686520746f6b656e206164647265737300000060448201526064016104dc565b6001600160a01b038316600090815260016020526040902054818110156110e65760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016104dc565b6110f082826119be565b6001600160a01b0380861660009081526001602052604080822093909355908516815290812080548492906111269084906119d5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117291815260200190565b60405180910390a350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60056040516111b29190611a98565b604080519182900382208282018252600183527f31000000000000000000000000000000000000000000000000000000000000006020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038216600090815260016020526040902054818110156112b45760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e6365000000000060448201526064016104dc565b6112be82826119be565b6001600160a01b038416600090815260016020526040812091909155600480548492906112ec9084906119be565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610eeb565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006113ec826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661147c9092919063ffffffff16565b8051909150156104f9578080602001905181019061140a9190611b34565b6104f95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104dc565b606061148b8484600085611493565b949350505050565b60608247101561150b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104dc565b6001600160a01b0385163b6115625760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104dc565b600080866001600160a01b0316858760405161157e9190611b56565b60006040518083038185875af1925050503d80600081146115bb576040519150601f19603f3d011682016040523d82523d6000602084013e6115c0565b606091505b50915091506115d08282866115db565b979650505050505050565b606083156115ea5750816105c6565b8251156115fa5782518084602001fd5b8160405162461bcd60e51b81526004016104dc9190611670565b60005b8381101561162f578181015183820152602001611617565b8381111561163e576000848401525b50505050565b6000815180845261165c816020860160208601611614565b601f01601f19169290920160200192915050565b6020815260006105c66020830184611644565b6001600160a01b038116811461076c57600080fd5b600080604083850312156116ab57600080fd5b82356116b681611683565b946020939093013593505050565b6000806000606084860312156116d957600080fd5b83356116e481611683565b925060208401356116f481611683565b929592945050506040919091013590565b60006020828403121561171757600080fd5b5035919050565b60006020828403121561173057600080fd5b81356105c681611683565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561176657600080fd5b833561177181611683565b925060208401359150604084013567ffffffffffffffff8082111561179557600080fd5b818601915086601f8301126117a957600080fd5b8135818111156117bb576117bb61173b565b604051601f8201601f19908116603f011681019083821181831017156117e3576117e361173b565b816040528281528960208487010111156117fc57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080600080600080600060e0888a03121561183957600080fd5b873561184481611683565b9650602088013561185481611683565b95506040880135945060608801359350608088013560ff8116811461187857600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156118a857600080fd5b82356118b381611683565b915060208301356118c381611683565b809150509250929050565b6000806000806000608086880312156118e657600080fd5b85356118f181611683565b9450602086013561190181611683565b935060408601359250606086013567ffffffffffffffff8082111561192557600080fd5b818801915088601f83011261193957600080fd5b81358181111561194857600080fd5b89602082850101111561195a57600080fd5b9699959850939650602001949392505050565b600181811c9082168061198157607f821691505b602082108114156119a257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119d0576119d06119a8565b500390565b600082198211156119e8576119e86119a8565b500190565b60006001600160a01b03808716835285602084015280851660408401525060806060830152611a1f6080830184611644565b9695505050505050565b6000600019821415611a3d57611a3d6119a8565b5060010190565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b600080835481600182811c915080831680611ab457607f831692505b6020808410821415611ad457634e487b7160e01b86526022600452602486fd5b818015611ae85760018114611af957611b26565b60ff19861689528489019650611b26565b60008a81526020902060005b86811015611b1e5781548b820152908501908301611b05565b505084890196505b509498975050505050505050565b600060208284031215611b4657600080fd5b815180151581146105c657600080fd5b60008251611b68818460208701611614565b919091019291505056fea26469706673582212200696cd3256db0b36223a5700e6cea3fffa743482f615567d8b7e36aa30fb943a64736f6c63430008090033",
530
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101985760003560e01c8063715018a6116100e3578063b4f94b2e1161008c578063dd62ed3e11610066578063dd62ed3e14610391578063f2fde38b146103bc578063fc4e51f6146103cf57600080fd5b8063b4f94b2e14610344578063cae9ca511461036b578063d505accf1461037e57600080fd5b80638da5cb5b116100bd5780638da5cb5b1461030e57806395d89b4114610329578063a9059cbb1461033157600080fd5b8063715018a6146102cc578063771da5c5146102d457806379cc6790146102fb57600080fd5b8063313ce5671161014557806342966c681161011f57806342966c681461027957806370a082311461028c57806370ae92d2146102ac57600080fd5b8063313ce567146102445780633644e5151461025e57806340c10f191461026657600080fd5b806318160ddd1161017657806318160ddd146101f357806323b872dd1461020a57806330adf81f1461021d57600080fd5b806306fdde031461019d578063095ea7b3146101bb5780631171bda9146101de575b600080fd5b6101a56103e2565b6040516101b29190611670565b60405180910390f35b6101ce6101c9366004611698565b610470565b60405190151581526020016101b2565b6101f16101ec3660046116c4565b610486565b005b6101fc60045481565b6040519081526020016101b2565b6101ce6102183660046116c4565b6104fe565b6101fc7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b61024c601281565b60405160ff90911681526020016101b2565b6101fc6105cd565b6101f1610274366004611698565b610629565b6101f1610287366004611705565b610762565b6101fc61029a36600461171e565b60016020526000908152604090205481565b6101fc6102ba36600461171e565b60036020526000908152604090205481565b6101f161076f565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101f1610309366004611698565b6107d5565b6000546040516001600160a01b0390911681526020016101b2565b6101a561086b565b6101ce61033f366004611698565b610878565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101ce610379366004611751565b610885565b6101f161038c36600461181e565b610926565b6101fc61039f366004611895565b600260209081526000928352604080842090915290825290205481565b6101f16103ca36600461171e565b610c36565b6101f16103dd3660046118ce565b610d15565b600580546103ef9061196d565b80601f016020809104026020016040519081016040528092919081815260200182805461041b9061196d565b80156104685780601f1061043d57610100808354040283529160200191610468565b820191906000526020600020905b81548152906001019060200180831161044b57829003601f168201915b505050505081565b600061047d338484610dea565b50600192915050565b6000546001600160a01b031633146104e55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6104f96001600160a01b0384168383610ef8565b505050565b6001600160a01b038316600090815260026020908152604080832033845290915281205460001981146105b557828110156105a15760405162461bcd60e51b815260206004820152602160248201527f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360448201527f650000000000000000000000000000000000000000000000000000000000000060648201526084016104dc565b6105b585336105b086856119be565b610dea565b6105c0858585610f78565b60019150505b9392505050565b60007f000000000000000000000000000000000000000000000000000000000000000046141561061c57507f000000000000000000000000000000000000000000000000000000000000000090565b610624611180565b905090565b6000546001600160a01b031633146106835760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6001600160a01b0382166106d95760405162461bcd60e51b815260206004820152601860248201527f4d696e7420746f20746865207a65726f2061646472657373000000000000000060448201526064016104dc565b80600460008282546106eb91906119d5565b90915550506001600160a01b038216600090815260016020526040812080548392906107189084906119d5565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b61076c338261124b565b50565b6000546001600160a01b031633146107c95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6107d3600061132f565b565b6001600160a01b0382166000908152600260209081526040808320338452909152902054600019811461086157818110156108525760405162461bcd60e51b815260206004820152601d60248201527f4275726e20616d6f756e74206578636565647320616c6c6f77616e636500000060448201526064016104dc565b61086183336105b085856119be565b6104f9838361124b565b600680546103ef9061196d565b600061047d338484610f78565b60006108918484610470565b1561091c576040517f8f4ffcb10000000000000000000000000000000000000000000000000000000081526001600160a01b03851690638f4ffcb1906108e19033908790309088906004016119ed565b600060405180830381600087803b1580156108fb57600080fd5b505af115801561090f573d6000803e3d6000fd5b50505050600190506105c6565b5060009392505050565b428410156109765760405162461bcd60e51b815260206004820152601260248201527f5065726d697373696f6e2065787069726564000000000000000000000000000060448201526064016104dc565b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08111156109e65760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202773272076616c7565000000000060448201526064016104dc565b8260ff16601b14806109fb57508260ff16601c145b610a475760405162461bcd60e51b815260206004820152601b60248201527f496e76616c6964207369676e6174757265202776272076616c7565000000000060448201526064016104dc565b6000610a516105cd565b6001600160a01b038916600090815260036020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928c928c928c92909190610a9f83611a29565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001610b339291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015610b9e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590610bd45750886001600160a01b0316816001600160a01b0316145b610c205760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016104dc565b610c2b898989610dea565b505050505050505050565b6000546001600160a01b03163314610c905760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6001600160a01b038116610d0c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104dc565b61076c8161132f565b6000546001600160a01b03163314610d6f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dc565b6040517fb88d4fde0000000000000000000000000000000000000000000000000000000081526001600160a01b0386169063b88d4fde90610dbc9030908890889088908890600401611a44565b600060405180830381600087803b158015610dd657600080fd5b505af1158015610c2b573d6000803e3d6000fd5b6001600160a01b038316610e405760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f206164647265737300000060448201526064016104dc565b6001600160a01b038216610e965760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f2061646472657373000000000060448201526064016104dc565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104f9908490611397565b6001600160a01b038316610fce5760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f2061646472657373000060448201526064016104dc565b6001600160a01b0382166110245760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f20616464726573730000000060448201526064016104dc565b6001600160a01b03821630141561107d5760405162461bcd60e51b815260206004820152601d60248201527f5472616e7366657220746f2074686520746f6b656e206164647265737300000060448201526064016104dc565b6001600160a01b038316600090815260016020526040902054818110156110e65760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657220616d6f756e7420657863656564732062616c616e63650060448201526064016104dc565b6110f082826119be565b6001600160a01b0380861660009081526001602052604080822093909355908516815290812080548492906111269084906119d5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161117291815260200190565b60405180910390a350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60056040516111b29190611a98565b604080519182900382208282018252600183527f31000000000000000000000000000000000000000000000000000000000000006020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6001600160a01b038216600090815260016020526040902054818110156112b45760405162461bcd60e51b815260206004820152601b60248201527f4275726e20616d6f756e7420657863656564732062616c616e6365000000000060448201526064016104dc565b6112be82826119be565b6001600160a01b038416600090815260016020526040812091909155600480548492906112ec9084906119be565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610eeb565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006113ec826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661147c9092919063ffffffff16565b8051909150156104f9578080602001905181019061140a9190611b34565b6104f95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104dc565b606061148b8484600085611493565b949350505050565b60608247101561150b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104dc565b6001600160a01b0385163b6115625760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104dc565b600080866001600160a01b0316858760405161157e9190611b56565b60006040518083038185875af1925050503d80600081146115bb576040519150601f19603f3d011682016040523d82523d6000602084013e6115c0565b606091505b50915091506115d08282866115db565b979650505050505050565b606083156115ea5750816105c6565b8251156115fa5782518084602001fd5b8160405162461bcd60e51b81526004016104dc9190611670565b60005b8381101561162f578181015183820152602001611617565b8381111561163e576000848401525b50505050565b6000815180845261165c816020860160208601611614565b601f01601f19169290920160200192915050565b6020815260006105c66020830184611644565b6001600160a01b038116811461076c57600080fd5b600080604083850312156116ab57600080fd5b82356116b681611683565b946020939093013593505050565b6000806000606084860312156116d957600080fd5b83356116e481611683565b925060208401356116f481611683565b929592945050506040919091013590565b60006020828403121561171757600080fd5b5035919050565b60006020828403121561173057600080fd5b81356105c681611683565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561176657600080fd5b833561177181611683565b925060208401359150604084013567ffffffffffffffff8082111561179557600080fd5b818601915086601f8301126117a957600080fd5b8135818111156117bb576117bb61173b565b604051601f8201601f19908116603f011681019083821181831017156117e3576117e361173b565b816040528281528960208487010111156117fc57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600080600080600080600060e0888a03121561183957600080fd5b873561184481611683565b9650602088013561185481611683565b95506040880135945060608801359350608088013560ff8116811461187857600080fd5b9699959850939692959460a0840135945060c09093013592915050565b600080604083850312156118a857600080fd5b82356118b381611683565b915060208301356118c381611683565b809150509250929050565b6000806000806000608086880312156118e657600080fd5b85356118f181611683565b9450602086013561190181611683565b935060408601359250606086013567ffffffffffffffff8082111561192557600080fd5b818801915088601f83011261193957600080fd5b81358181111561194857600080fd5b89602082850101111561195a57600080fd5b9699959850939650602001949392505050565b600181811c9082168061198157607f821691505b602082108114156119a257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000828210156119d0576119d06119a8565b500390565b600082198211156119e8576119e86119a8565b500190565b60006001600160a01b03808716835285602084015280851660408401525060806060830152611a1f6080830184611644565b9695505050505050565b6000600019821415611a3d57611a3d6119a8565b5060010190565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b600080835481600182811c915080831680611ab457607f831692505b6020808410821415611ad457634e487b7160e01b86526022600452602486fd5b818015611ae85760018114611af957611b26565b60ff19861689528489019650611b26565b60008a81526020902060005b86811015611b1e5781548b820152908501908301611b05565b505084890196505b509498975050505050505050565b600060208284031215611b4657600080fd5b815180151581146105c657600080fd5b60008251611b68818460208701611614565b919091019291505056fea26469706673582212200696cd3256db0b36223a5700e6cea3fffa743482f615567d8b7e36aa30fb943a64736f6c63430008090033",
531
531
  "linkReferences": {},
532
532
  "deployedLinkReferences": {}
533
533
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/ae46f61b8ab8e36377cb2d2fde3d9624.json"
3
+ "buildInfo": "../../../build-info/c9ab4c6393c7a894330d3af2b5aa3289.json"
4
4
  }
@@ -96,8 +96,8 @@
96
96
  "type": "function"
97
97
  }
98
98
  ],
99
- "bytecode": "0x608060405234801561001057600080fd5b5060405161096138038061096183398101604081905261002f916100ae565b6001600160a01b0381166100895760405162461bcd60e51b815260206004820181905260248201527f42616e6b2063616e206e6f7420626520746865207a65726f2061646472657373604482015260640160405180910390fd5b600080546001600160a01b0319166001600160a01b03929092169190911790556100de565b6000602082840312156100c057600080fd5b81516001600160a01b03811681146100d757600080fd5b9392505050565b610874806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063461c637314610051578063537941371461006657806376cdb03b14610079578063f14faf6f146100a8575b600080fd5b61006461005f3660046106d9565b6100bb565b005b610064610074366004610761565b610294565b60005461008c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100646100b636600461078b565b6104d5565b6000546001600160a01b0316331461011a5760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b0000000000000000000060448201526064015b60405180910390fd5b826101675760405162461bcd60e51b815260206004820152601760248201527f4e6f206465706f7369746f7273207370656369666965640000000000000000006044820152606401610111565b6000805b8481101561022e57838382818110610185576101856107a4565b905060200201358261019791906107d0565b91507f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c528686838181106101cc576101cc6107a4565b90506020020160208101906101e191906107e8565b8585848181106101f3576101f36107a4565b604080516001600160a01b0390951685526020918202939093013590840152500160405180910390a1806102268161080a565b91505061016b565b5060005460405163392aee4360e01b8152600481018390526001600160a01b039091169063392aee4390602401600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b031633146102ee5760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610111565b6000546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801561033357600080fd5b505afa158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b9190610825565b10156103c45760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610111565b604080516001600160a01b0384168152602081018390527f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c52910160405180910390a1600054604051631f1b6d2760e21b81526001600160a01b0384811660048301523060248301526044820184905290911690637c6db49c90606401600060405180830381600087803b15801561045a57600080fd5b505af115801561046e573d6000803e3d6000fd5b505060005460405163392aee4360e01b8152600481018590526001600160a01b03909116925063392aee4391506024015b600060405180830381600087803b1580156104b957600080fd5b505af11580156104cd573d6000803e3d6000fd5b505050505050565b6000546040516370a0823160e01b815233600482018190529183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561051d57600080fd5b505afa158015610531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105559190610825565b10156105ae5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610111565b604080516001600160a01b0383168152602081018490527f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c52910160405180910390a1600054604051631f1b6d2760e21b81526001600160a01b0383811660048301523060248301526044820185905290911690637c6db49c90606401600060405180830381600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b505060005460405163392aee4360e01b8152600481018690526001600160a01b03909116925063392aee43915060240161049f565b60008083601f84011261069f57600080fd5b50813567ffffffffffffffff8111156106b757600080fd5b6020830191508360208260051b85010111156106d257600080fd5b9250929050565b600080600080604085870312156106ef57600080fd5b843567ffffffffffffffff8082111561070757600080fd5b6107138883890161068d565b9096509450602087013591508082111561072c57600080fd5b506107398782880161068d565b95989497509550505050565b80356001600160a01b038116811461075c57600080fd5b919050565b6000806040838503121561077457600080fd5b61077d83610745565b946020939093013593505050565b60006020828403121561079d57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156107e3576107e36107ba565b500190565b6000602082840312156107fa57600080fd5b61080382610745565b9392505050565b600060001982141561081e5761081e6107ba565b5060010190565b60006020828403121561083757600080fd5b505191905056fea2646970667358221220dc957cd9c5732cf06b6dbed9d89b94ba301340cb0f0b126392378c58fdeae32e64736f6c63430008090033",
100
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063461c637314610051578063537941371461006657806376cdb03b14610079578063f14faf6f146100a8575b600080fd5b61006461005f3660046106d9565b6100bb565b005b610064610074366004610761565b610294565b60005461008c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100646100b636600461078b565b6104d5565b6000546001600160a01b0316331461011a5760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b0000000000000000000060448201526064015b60405180910390fd5b826101675760405162461bcd60e51b815260206004820152601760248201527f4e6f206465706f7369746f7273207370656369666965640000000000000000006044820152606401610111565b6000805b8481101561022e57838382818110610185576101856107a4565b905060200201358261019791906107d0565b91507f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c528686838181106101cc576101cc6107a4565b90506020020160208101906101e191906107e8565b8585848181106101f3576101f36107a4565b604080516001600160a01b0390951685526020918202939093013590840152500160405180910390a1806102268161080a565b91505061016b565b5060005460405163392aee4360e01b8152600481018390526001600160a01b039091169063392aee4390602401600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b031633146102ee5760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610111565b6000546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801561033357600080fd5b505afa158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b9190610825565b10156103c45760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610111565b604080516001600160a01b0384168152602081018390527f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c52910160405180910390a1600054604051631f1b6d2760e21b81526001600160a01b0384811660048301523060248301526044820184905290911690637c6db49c90606401600060405180830381600087803b15801561045a57600080fd5b505af115801561046e573d6000803e3d6000fd5b505060005460405163392aee4360e01b8152600481018590526001600160a01b03909116925063392aee4391506024015b600060405180830381600087803b1580156104b957600080fd5b505af11580156104cd573d6000803e3d6000fd5b505050505050565b6000546040516370a0823160e01b815233600482018190529183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561051d57600080fd5b505afa158015610531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105559190610825565b10156105ae5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610111565b604080516001600160a01b0383168152602081018490527f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c52910160405180910390a1600054604051631f1b6d2760e21b81526001600160a01b0383811660048301523060248301526044820185905290911690637c6db49c90606401600060405180830381600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b505060005460405163392aee4360e01b8152600481018690526001600160a01b03909116925063392aee43915060240161049f565b60008083601f84011261069f57600080fd5b50813567ffffffffffffffff8111156106b757600080fd5b6020830191508360208260051b85010111156106d257600080fd5b9250929050565b600080600080604085870312156106ef57600080fd5b843567ffffffffffffffff8082111561070757600080fd5b6107138883890161068d565b9096509450602087013591508082111561072c57600080fd5b506107398782880161068d565b95989497509550505050565b80356001600160a01b038116811461075c57600080fd5b919050565b6000806040838503121561077457600080fd5b61077d83610745565b946020939093013593505050565b60006020828403121561079d57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156107e3576107e36107ba565b500190565b6000602082840312156107fa57600080fd5b61080382610745565b9392505050565b600060001982141561081e5761081e6107ba565b5060010190565b60006020828403121561083757600080fd5b505191905056fea2646970667358221220dc957cd9c5732cf06b6dbed9d89b94ba301340cb0f0b126392378c58fdeae32e64736f6c63430008090033",
99
+ "bytecode": "0x608060405234801561001057600080fd5b5060405161096138038061096183398101604081905261002f916100ae565b6001600160a01b0381166100895760405162461bcd60e51b815260206004820181905260248201527f42616e6b2063616e206e6f7420626520746865207a65726f2061646472657373604482015260640160405180910390fd5b600080546001600160a01b0319166001600160a01b03929092169190911790556100de565b6000602082840312156100c057600080fd5b81516001600160a01b03811681146100d757600080fd5b9392505050565b610874806100ed6000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063461c637314610051578063537941371461006657806376cdb03b14610079578063f14faf6f146100a8575b600080fd5b61006461005f3660046106d9565b6100bb565b005b610064610074366004610761565b610294565b60005461008c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100646100b636600461078b565b6104d5565b6000546001600160a01b0316331461011a5760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b0000000000000000000060448201526064015b60405180910390fd5b826101675760405162461bcd60e51b815260206004820152601760248201527f4e6f206465706f7369746f7273207370656369666965640000000000000000006044820152606401610111565b6000805b8481101561022e57838382818110610185576101856107a4565b905060200201358261019791906107d0565b91507f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c528686838181106101cc576101cc6107a4565b90506020020160208101906101e191906107e8565b8585848181106101f3576101f36107a4565b604080516001600160a01b0390951685526020918202939093013590840152500160405180910390a1806102268161080a565b91505061016b565b5060005460405163392aee4360e01b8152600481018390526001600160a01b039091169063392aee4390602401600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b031633146102ee5760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610111565b6000546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801561033357600080fd5b505afa158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b9190610825565b10156103c45760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610111565b604080516001600160a01b0384168152602081018390527f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c52910160405180910390a1600054604051631f1b6d2760e21b81526001600160a01b0384811660048301523060248301526044820184905290911690637c6db49c90606401600060405180830381600087803b15801561045a57600080fd5b505af115801561046e573d6000803e3d6000fd5b505060005460405163392aee4360e01b8152600481018590526001600160a01b03909116925063392aee4391506024015b600060405180830381600087803b1580156104b957600080fd5b505af11580156104cd573d6000803e3d6000fd5b505050505050565b6000546040516370a0823160e01b815233600482018190529183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561051d57600080fd5b505afa158015610531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105559190610825565b10156105ae5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610111565b604080516001600160a01b0383168152602081018490527f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c52910160405180910390a1600054604051631f1b6d2760e21b81526001600160a01b0383811660048301523060248301526044820185905290911690637c6db49c90606401600060405180830381600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b505060005460405163392aee4360e01b8152600481018690526001600160a01b03909116925063392aee43915060240161049f565b60008083601f84011261069f57600080fd5b50813567ffffffffffffffff8111156106b757600080fd5b6020830191508360208260051b85010111156106d257600080fd5b9250929050565b600080600080604085870312156106ef57600080fd5b843567ffffffffffffffff8082111561070757600080fd5b6107138883890161068d565b9096509450602087013591508082111561072c57600080fd5b506107398782880161068d565b95989497509550505050565b80356001600160a01b038116811461075c57600080fd5b919050565b6000806040838503121561077457600080fd5b61077d83610745565b946020939093013593505050565b60006020828403121561079d57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156107e3576107e36107ba565b500190565b6000602082840312156107fa57600080fd5b61080382610745565b9392505050565b600060001982141561081e5761081e6107ba565b5060010190565b60006020828403121561083757600080fd5b505191905056fea26469706673582212202d6bf409d06ffccc2606dfe25dfa490a22315237cb7e494a4ca980db4bea40ce64736f6c63430008090033",
100
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063461c637314610051578063537941371461006657806376cdb03b14610079578063f14faf6f146100a8575b600080fd5b61006461005f3660046106d9565b6100bb565b005b610064610074366004610761565b610294565b60005461008c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100646100b636600461078b565b6104d5565b6000546001600160a01b0316331461011a5760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b0000000000000000000060448201526064015b60405180910390fd5b826101675760405162461bcd60e51b815260206004820152601760248201527f4e6f206465706f7369746f7273207370656369666965640000000000000000006044820152606401610111565b6000805b8481101561022e57838382818110610185576101856107a4565b905060200201358261019791906107d0565b91507f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c528686838181106101cc576101cc6107a4565b90506020020160208101906101e191906107e8565b8585848181106101f3576101f36107a4565b604080516001600160a01b0390951685526020918202939093013590840152500160405180910390a1806102268161080a565b91505061016b565b5060005460405163392aee4360e01b8152600481018390526001600160a01b039091169063392aee4390602401600060405180830381600087803b15801561027557600080fd5b505af1158015610289573d6000803e3d6000fd5b505050505050505050565b6000546001600160a01b031633146102ee5760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610111565b6000546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801561033357600080fd5b505afa158015610347573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036b9190610825565b10156103c45760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610111565b604080516001600160a01b0384168152602081018390527f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c52910160405180910390a1600054604051631f1b6d2760e21b81526001600160a01b0384811660048301523060248301526044820184905290911690637c6db49c90606401600060405180830381600087803b15801561045a57600080fd5b505af115801561046e573d6000803e3d6000fd5b505060005460405163392aee4360e01b8152600481018590526001600160a01b03909116925063392aee4391506024015b600060405180830381600087803b1580156104b957600080fd5b505af11580156104cd573d6000803e3d6000fd5b505050505050565b6000546040516370a0823160e01b815233600482018190529183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561051d57600080fd5b505afa158015610531573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105559190610825565b10156105ae5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610111565b604080516001600160a01b0383168152602081018490527f264f630d9efa0d07053a31163641d9fcc0adafc9d9e76f1c37c2ce3a558d2c52910160405180910390a1600054604051631f1b6d2760e21b81526001600160a01b0383811660048301523060248301526044820185905290911690637c6db49c90606401600060405180830381600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b505060005460405163392aee4360e01b8152600481018690526001600160a01b03909116925063392aee43915060240161049f565b60008083601f84011261069f57600080fd5b50813567ffffffffffffffff8111156106b757600080fd5b6020830191508360208260051b85010111156106d257600080fd5b9250929050565b600080600080604085870312156106ef57600080fd5b843567ffffffffffffffff8082111561070757600080fd5b6107138883890161068d565b9096509450602087013591508082111561072c57600080fd5b506107398782880161068d565b95989497509550505050565b80356001600160a01b038116811461075c57600080fd5b919050565b6000806040838503121561077457600080fd5b61077d83610745565b946020939093013593505050565b60006020828403121561079d57600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156107e3576107e36107ba565b500190565b6000602082840312156107fa57600080fd5b61080382610745565b9392505050565b600060001982141561081e5761081e6107ba565b5060010190565b60006020828403121561083757600080fd5b505191905056fea26469706673582212202d6bf409d06ffccc2606dfe25dfa490a22315237cb7e494a4ca980db4bea40ce64736f6c63430008090033",
101
101
  "linkReferences": {},
102
102
  "deployedLinkReferences": {}
103
103
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/ae46f61b8ab8e36377cb2d2fde3d9624.json"
3
+ "buildInfo": "../../../build-info/c9ab4c6393c7a894330d3af2b5aa3289.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/ae46f61b8ab8e36377cb2d2fde3d9624.json"
3
+ "buildInfo": "../../../build-info/c9ab4c6393c7a894330d3af2b5aa3289.json"
4
4
  }
@@ -270,8 +270,8 @@
270
270
  "type": "function"
271
271
  }
272
272
  ],
273
- "bytecode": "0x608060405234801561001057600080fd5b5060405161108e38038061108e83398101604081905261002f916101a8565b6001600160a01b03821661008a5760405162461bcd60e51b815260206004820181905260248201527f42616e6b2063616e206e6f7420626520746865207a65726f206164647265737360448201526064015b60405180910390fd5b6001600160a01b0381166100ef5760405162461bcd60e51b815260206004820152602660248201527f5442544320746f6b656e2063616e206e6f7420626520746865207a65726f206160448201526564647265737360d01b6064820152608401610081565b603280546001600160a01b038085166001600160a01b03199283161790925560338054928416929091169190911790556101283361012f565b50506101e2565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b6001600160a01b03811681146101a557600080fd5b50565b600080604083850312156101bb57600080fd5b82516101c681610190565b60208401519092506101d781610190565b809150509250929050565b610e9d806101f16000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638f4ffcb111610081578063db006a751161005b578063db006a7514610184578063e5d3d71414610197578063fc4e51f6146101aa57600080fd5b80638f4ffcb11461014b578063a0712d681461015e578063d38bfff41461017157600080fd5b806353794137116100b257806353794137146100f65780635aa6e6751461010957806376cdb03b1461013857600080fd5b80631171bda9146100ce578063461c6373146100e3575b600080fd5b6100e16100dc366004610b4e565b6101bd565b005b6100e16100f1366004610bdb565b6102a8565b6100e1610104366004610c47565b6103bb565b60005461011c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b60325461011c906001600160a01b031681565b6100e1610159366004610cb5565b610566565b6100e161016c366004610d28565b610625565b6100e161017f366004610d41565b610747565b6100e1610192366004610d28565b610829565b60335461011c906001600160a01b031681565b6100e16101b8366004610d65565b610833565b6000546001600160a01b0316331461021c5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b6033546040517f1171bda90000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015284811660248301526044820184905290911690631171bda990606401600060405180830381600087803b15801561028b57600080fd5b505af115801561029f573d6000803e3d6000fd5b50505050505050565b6032546001600160a01b031633146103025760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610213565b8261034f5760405162461bcd60e51b815260206004820152601760248201527f4e6f206465706f7369746f7273207370656369666965640000000000000000006044820152606401610213565b60005b838110156103b4576103a285858381811061036f5761036f610dbb565b90506020020160208101906103849190610d41565b84848481811061039657610396610dbb565b90506020020135610917565b806103ac81610dd1565b915050610352565b5050505050565b6032546001600160a01b031633146104155760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610213565b6032546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801561045a57600080fd5b505afa15801561046e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104929190610dfa565b10156104eb5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610213565b6104f58282610917565b603254604051631f1b6d2760e21b81526001600160a01b0384811660048301523060248301526044820184905290911690637c6db49c906064015b600060405180830381600087803b15801561054a57600080fd5b505af115801561055e573d6000803e3d6000fd5b505050505050565b6033546001600160a01b038481169116146105c35760405162461bcd60e51b815260206004820152601160248201527f546f6b656e206973206e6f7420544254430000000000000000000000000000006044820152606401610213565b336001600160a01b0384161461061b5760405162461bcd60e51b815260206004820152601860248201527f4f6e6c7920544254432063616c6c657220616c6c6f77656400000000000000006044820152606401610213565b6103b485856109ac565b6032546040516370a0823160e01b815233600482018190529183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561066d57600080fd5b505afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190610dfa565b10156106fe5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610213565b6107088183610917565b603254604051631f1b6d2760e21b81526001600160a01b0383811660048301523060248301526044820185905290911690637c6db49c90606401610530565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e6365000000006044820152606401610213565b6001600160a01b03811661081d5760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610213565b61082681610ac0565b50565b61082633826109ac565b6000546001600160a01b0316331461088d5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e6365000000006044820152606401610213565b6033546040517ffc4e51f60000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fc4e51f6906108de9088908890889088908890600401610e13565b600060405180830381600087803b1580156108f857600080fd5b505af115801561090c573d6000803e3d6000fd5b505050505050505050565b816001600160a01b03167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe8260405161095291815260200190565b60405180910390a26033546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052909116906340c10f1990604401610530565b816001600160a01b03167f4896181ff8f4543cc00db9fe9b6fb7e6f032b7eb772c72ab1ec1b4d2e03b9369826040516109e791815260200190565b60405180910390a26033546040517f79cc67900000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052909116906379cc679090604401600060405180830381600087803b158015610a5657600080fd5b505af1158015610a6a573d6000803e3d6000fd5b50506032546040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905290911692506356a6d9ef9150604401610530565b600080546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b6001600160a01b038116811461082657600080fd5b600080600060608486031215610b6357600080fd5b8335610b6e81610b39565b92506020840135610b7e81610b39565b929592945050506040919091013590565b60008083601f840112610ba157600080fd5b50813567ffffffffffffffff811115610bb957600080fd5b6020830191508360208260051b8501011115610bd457600080fd5b9250929050565b60008060008060408587031215610bf157600080fd5b843567ffffffffffffffff80821115610c0957600080fd5b610c1588838901610b8f565b90965094506020870135915080821115610c2e57600080fd5b50610c3b87828801610b8f565b95989497509550505050565b60008060408385031215610c5a57600080fd5b8235610c6581610b39565b946020939093013593505050565b60008083601f840112610c8557600080fd5b50813567ffffffffffffffff811115610c9d57600080fd5b602083019150836020828501011115610bd457600080fd5b600080600080600060808688031215610ccd57600080fd5b8535610cd881610b39565b9450602086013593506040860135610cef81610b39565b9250606086013567ffffffffffffffff811115610d0b57600080fd5b610d1788828901610c73565b969995985093965092949392505050565b600060208284031215610d3a57600080fd5b5035919050565b600060208284031215610d5357600080fd5b8135610d5e81610b39565b9392505050565b600080600080600060808688031215610d7d57600080fd5b8535610d8881610b39565b94506020860135610d9881610b39565b935060408601359250606086013567ffffffffffffffff811115610d0b57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600019821415610df357634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610e0c57600080fd5b5051919050565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f8501168301019050969550505050505056fea2646970667358221220ad1a8a2443526a3d896fd71d0a84753f3b464f49a3759597071b64bf74b8406964736f6c63430008090033",
274
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638f4ffcb111610081578063db006a751161005b578063db006a7514610184578063e5d3d71414610197578063fc4e51f6146101aa57600080fd5b80638f4ffcb11461014b578063a0712d681461015e578063d38bfff41461017157600080fd5b806353794137116100b257806353794137146100f65780635aa6e6751461010957806376cdb03b1461013857600080fd5b80631171bda9146100ce578063461c6373146100e3575b600080fd5b6100e16100dc366004610b4e565b6101bd565b005b6100e16100f1366004610bdb565b6102a8565b6100e1610104366004610c47565b6103bb565b60005461011c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b60325461011c906001600160a01b031681565b6100e1610159366004610cb5565b610566565b6100e161016c366004610d28565b610625565b6100e161017f366004610d41565b610747565b6100e1610192366004610d28565b610829565b60335461011c906001600160a01b031681565b6100e16101b8366004610d65565b610833565b6000546001600160a01b0316331461021c5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b6033546040517f1171bda90000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015284811660248301526044820184905290911690631171bda990606401600060405180830381600087803b15801561028b57600080fd5b505af115801561029f573d6000803e3d6000fd5b50505050505050565b6032546001600160a01b031633146103025760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610213565b8261034f5760405162461bcd60e51b815260206004820152601760248201527f4e6f206465706f7369746f7273207370656369666965640000000000000000006044820152606401610213565b60005b838110156103b4576103a285858381811061036f5761036f610dbb565b90506020020160208101906103849190610d41565b84848481811061039657610396610dbb565b90506020020135610917565b806103ac81610dd1565b915050610352565b5050505050565b6032546001600160a01b031633146104155760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610213565b6032546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801561045a57600080fd5b505afa15801561046e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104929190610dfa565b10156104eb5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610213565b6104f58282610917565b603254604051631f1b6d2760e21b81526001600160a01b0384811660048301523060248301526044820184905290911690637c6db49c906064015b600060405180830381600087803b15801561054a57600080fd5b505af115801561055e573d6000803e3d6000fd5b505050505050565b6033546001600160a01b038481169116146105c35760405162461bcd60e51b815260206004820152601160248201527f546f6b656e206973206e6f7420544254430000000000000000000000000000006044820152606401610213565b336001600160a01b0384161461061b5760405162461bcd60e51b815260206004820152601860248201527f4f6e6c7920544254432063616c6c657220616c6c6f77656400000000000000006044820152606401610213565b6103b485856109ac565b6032546040516370a0823160e01b815233600482018190529183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561066d57600080fd5b505afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190610dfa565b10156106fe5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610213565b6107088183610917565b603254604051631f1b6d2760e21b81526001600160a01b0383811660048301523060248301526044820185905290911690637c6db49c90606401610530565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e6365000000006044820152606401610213565b6001600160a01b03811661081d5760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610213565b61082681610ac0565b50565b61082633826109ac565b6000546001600160a01b0316331461088d5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e6365000000006044820152606401610213565b6033546040517ffc4e51f60000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fc4e51f6906108de9088908890889088908890600401610e13565b600060405180830381600087803b1580156108f857600080fd5b505af115801561090c573d6000803e3d6000fd5b505050505050505050565b816001600160a01b03167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe8260405161095291815260200190565b60405180910390a26033546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052909116906340c10f1990604401610530565b816001600160a01b03167f4896181ff8f4543cc00db9fe9b6fb7e6f032b7eb772c72ab1ec1b4d2e03b9369826040516109e791815260200190565b60405180910390a26033546040517f79cc67900000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052909116906379cc679090604401600060405180830381600087803b158015610a5657600080fd5b505af1158015610a6a573d6000803e3d6000fd5b50506032546040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905290911692506356a6d9ef9150604401610530565b600080546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b6001600160a01b038116811461082657600080fd5b600080600060608486031215610b6357600080fd5b8335610b6e81610b39565b92506020840135610b7e81610b39565b929592945050506040919091013590565b60008083601f840112610ba157600080fd5b50813567ffffffffffffffff811115610bb957600080fd5b6020830191508360208260051b8501011115610bd457600080fd5b9250929050565b60008060008060408587031215610bf157600080fd5b843567ffffffffffffffff80821115610c0957600080fd5b610c1588838901610b8f565b90965094506020870135915080821115610c2e57600080fd5b50610c3b87828801610b8f565b95989497509550505050565b60008060408385031215610c5a57600080fd5b8235610c6581610b39565b946020939093013593505050565b60008083601f840112610c8557600080fd5b50813567ffffffffffffffff811115610c9d57600080fd5b602083019150836020828501011115610bd457600080fd5b600080600080600060808688031215610ccd57600080fd5b8535610cd881610b39565b9450602086013593506040860135610cef81610b39565b9250606086013567ffffffffffffffff811115610d0b57600080fd5b610d1788828901610c73565b969995985093965092949392505050565b600060208284031215610d3a57600080fd5b5035919050565b600060208284031215610d5357600080fd5b8135610d5e81610b39565b9392505050565b600080600080600060808688031215610d7d57600080fd5b8535610d8881610b39565b94506020860135610d9881610b39565b935060408601359250606086013567ffffffffffffffff811115610d0b57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600019821415610df357634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610e0c57600080fd5b5051919050565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f8501168301019050969550505050505056fea2646970667358221220ad1a8a2443526a3d896fd71d0a84753f3b464f49a3759597071b64bf74b8406964736f6c63430008090033",
273
+ "bytecode": "0x608060405234801561001057600080fd5b5060405161108e38038061108e83398101604081905261002f916101a8565b6001600160a01b03821661008a5760405162461bcd60e51b815260206004820181905260248201527f42616e6b2063616e206e6f7420626520746865207a65726f206164647265737360448201526064015b60405180910390fd5b6001600160a01b0381166100ef5760405162461bcd60e51b815260206004820152602660248201527f5442544320746f6b656e2063616e206e6f7420626520746865207a65726f206160448201526564647265737360d01b6064820152608401610081565b603280546001600160a01b038085166001600160a01b03199283161790925560338054928416929091169190911790556101283361012f565b50506101e2565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b6001600160a01b03811681146101a557600080fd5b50565b600080604083850312156101bb57600080fd5b82516101c681610190565b60208401519092506101d781610190565b809150509250929050565b610e9d806101f16000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638f4ffcb111610081578063db006a751161005b578063db006a7514610184578063e5d3d71414610197578063fc4e51f6146101aa57600080fd5b80638f4ffcb11461014b578063a0712d681461015e578063d38bfff41461017157600080fd5b806353794137116100b257806353794137146100f65780635aa6e6751461010957806376cdb03b1461013857600080fd5b80631171bda9146100ce578063461c6373146100e3575b600080fd5b6100e16100dc366004610b4e565b6101bd565b005b6100e16100f1366004610bdb565b6102a8565b6100e1610104366004610c47565b6103bb565b60005461011c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b60325461011c906001600160a01b031681565b6100e1610159366004610cb5565b610566565b6100e161016c366004610d28565b610625565b6100e161017f366004610d41565b610747565b6100e1610192366004610d28565b610829565b60335461011c906001600160a01b031681565b6100e16101b8366004610d65565b610833565b6000546001600160a01b0316331461021c5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b6033546040517f1171bda90000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015284811660248301526044820184905290911690631171bda990606401600060405180830381600087803b15801561028b57600080fd5b505af115801561029f573d6000803e3d6000fd5b50505050505050565b6032546001600160a01b031633146103025760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610213565b8261034f5760405162461bcd60e51b815260206004820152601760248201527f4e6f206465706f7369746f7273207370656369666965640000000000000000006044820152606401610213565b60005b838110156103b4576103a285858381811061036f5761036f610dbb565b90506020020160208101906103849190610d41565b84848481811061039657610396610dbb565b90506020020135610917565b806103ac81610dd1565b915050610352565b5050505050565b6032546001600160a01b031633146104155760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610213565b6032546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801561045a57600080fd5b505afa15801561046e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104929190610dfa565b10156104eb5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610213565b6104f58282610917565b603254604051631f1b6d2760e21b81526001600160a01b0384811660048301523060248301526044820184905290911690637c6db49c906064015b600060405180830381600087803b15801561054a57600080fd5b505af115801561055e573d6000803e3d6000fd5b505050505050565b6033546001600160a01b038481169116146105c35760405162461bcd60e51b815260206004820152601160248201527f546f6b656e206973206e6f7420544254430000000000000000000000000000006044820152606401610213565b336001600160a01b0384161461061b5760405162461bcd60e51b815260206004820152601860248201527f4f6e6c7920544254432063616c6c657220616c6c6f77656400000000000000006044820152606401610213565b6103b485856109ac565b6032546040516370a0823160e01b815233600482018190529183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561066d57600080fd5b505afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190610dfa565b10156106fe5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610213565b6107088183610917565b603254604051631f1b6d2760e21b81526001600160a01b0383811660048301523060248301526044820185905290911690637c6db49c90606401610530565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e6365000000006044820152606401610213565b6001600160a01b03811661081d5760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610213565b61082681610ac0565b50565b61082633826109ac565b6000546001600160a01b0316331461088d5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e6365000000006044820152606401610213565b6033546040517ffc4e51f60000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fc4e51f6906108de9088908890889088908890600401610e13565b600060405180830381600087803b1580156108f857600080fd5b505af115801561090c573d6000803e3d6000fd5b505050505050505050565b816001600160a01b03167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe8260405161095291815260200190565b60405180910390a26033546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052909116906340c10f1990604401610530565b816001600160a01b03167f4896181ff8f4543cc00db9fe9b6fb7e6f032b7eb772c72ab1ec1b4d2e03b9369826040516109e791815260200190565b60405180910390a26033546040517f79cc67900000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052909116906379cc679090604401600060405180830381600087803b158015610a5657600080fd5b505af1158015610a6a573d6000803e3d6000fd5b50506032546040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905290911692506356a6d9ef9150604401610530565b600080546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b6001600160a01b038116811461082657600080fd5b600080600060608486031215610b6357600080fd5b8335610b6e81610b39565b92506020840135610b7e81610b39565b929592945050506040919091013590565b60008083601f840112610ba157600080fd5b50813567ffffffffffffffff811115610bb957600080fd5b6020830191508360208260051b8501011115610bd457600080fd5b9250929050565b60008060008060408587031215610bf157600080fd5b843567ffffffffffffffff80821115610c0957600080fd5b610c1588838901610b8f565b90965094506020870135915080821115610c2e57600080fd5b50610c3b87828801610b8f565b95989497509550505050565b60008060408385031215610c5a57600080fd5b8235610c6581610b39565b946020939093013593505050565b60008083601f840112610c8557600080fd5b50813567ffffffffffffffff811115610c9d57600080fd5b602083019150836020828501011115610bd457600080fd5b600080600080600060808688031215610ccd57600080fd5b8535610cd881610b39565b9450602086013593506040860135610cef81610b39565b9250606086013567ffffffffffffffff811115610d0b57600080fd5b610d1788828901610c73565b969995985093965092949392505050565b600060208284031215610d3a57600080fd5b5035919050565b600060208284031215610d5357600080fd5b8135610d5e81610b39565b9392505050565b600080600080600060808688031215610d7d57600080fd5b8535610d8881610b39565b94506020860135610d9881610b39565b935060408601359250606086013567ffffffffffffffff811115610d0b57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600019821415610df357634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610e0c57600080fd5b5051919050565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f8501168301019050969550505050505056fea2646970667358221220c3faaf275fd556461e80831cdb96300ab8f282188592dba4e6a3ffa202915d3b64736f6c63430008090033",
274
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638f4ffcb111610081578063db006a751161005b578063db006a7514610184578063e5d3d71414610197578063fc4e51f6146101aa57600080fd5b80638f4ffcb11461014b578063a0712d681461015e578063d38bfff41461017157600080fd5b806353794137116100b257806353794137146100f65780635aa6e6751461010957806376cdb03b1461013857600080fd5b80631171bda9146100ce578063461c6373146100e3575b600080fd5b6100e16100dc366004610b4e565b6101bd565b005b6100e16100f1366004610bdb565b6102a8565b6100e1610104366004610c47565b6103bb565b60005461011c906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b60325461011c906001600160a01b031681565b6100e1610159366004610cb5565b610566565b6100e161016c366004610d28565b610625565b6100e161017f366004610d41565b610747565b6100e1610192366004610d28565b610829565b60335461011c906001600160a01b031681565b6100e16101b8366004610d65565b610833565b6000546001600160a01b0316331461021c5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b6033546040517f1171bda90000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015284811660248301526044820184905290911690631171bda990606401600060405180830381600087803b15801561028b57600080fd5b505af115801561029f573d6000803e3d6000fd5b50505050505050565b6032546001600160a01b031633146103025760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610213565b8261034f5760405162461bcd60e51b815260206004820152601760248201527f4e6f206465706f7369746f7273207370656369666965640000000000000000006044820152606401610213565b60005b838110156103b4576103a285858381811061036f5761036f610dbb565b90506020020160208101906103849190610d41565b84848481811061039657610396610dbb565b90506020020135610917565b806103ac81610dd1565b915050610352565b5050505050565b6032546001600160a01b031633146104155760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652042616e6b000000000000000000006044820152606401610213565b6032546040516370a0823160e01b81526001600160a01b038481166004830152839216906370a082319060240160206040518083038186803b15801561045a57600080fd5b505afa15801561046e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104929190610dfa565b10156104eb5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610213565b6104f58282610917565b603254604051631f1b6d2760e21b81526001600160a01b0384811660048301523060248301526044820184905290911690637c6db49c906064015b600060405180830381600087803b15801561054a57600080fd5b505af115801561055e573d6000803e3d6000fd5b505050505050565b6033546001600160a01b038481169116146105c35760405162461bcd60e51b815260206004820152601160248201527f546f6b656e206973206e6f7420544254430000000000000000000000000000006044820152606401610213565b336001600160a01b0384161461061b5760405162461bcd60e51b815260206004820152601860248201527f4f6e6c7920544254432063616c6c657220616c6c6f77656400000000000000006044820152606401610213565b6103b485856109ac565b6032546040516370a0823160e01b815233600482018190529183916001600160a01b03909116906370a082319060240160206040518083038186803b15801561066d57600080fd5b505afa158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190610dfa565b10156106fe5760405162461bcd60e51b815260206004820152602260248201527f416d6f756e7420657863656564732062616c616e636520696e207468652062616044820152616e6b60f01b6064820152608401610213565b6107088183610917565b603254604051631f1b6d2760e21b81526001600160a01b0383811660048301523060248301526044820185905290911690637c6db49c90606401610530565b6000546001600160a01b031633146107a15760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e6365000000006044820152606401610213565b6001600160a01b03811661081d5760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f73730000000000000000000000000000000000000000000000000000000000006064820152608401610213565b61082681610ac0565b50565b61082633826109ac565b6000546001600160a01b0316331461088d5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e6365000000006044820152606401610213565b6033546040517ffc4e51f60000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fc4e51f6906108de9088908890889088908890600401610e13565b600060405180830381600087803b1580156108f857600080fd5b505af115801561090c573d6000803e3d6000fd5b505050505050505050565b816001600160a01b03167f30385c845b448a36257a6a1716e6ad2e1bc2cbe333cde1e69fe849ad6511adfe8260405161095291815260200190565b60405180910390a26033546040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052909116906340c10f1990604401610530565b816001600160a01b03167f4896181ff8f4543cc00db9fe9b6fb7e6f032b7eb772c72ab1ec1b4d2e03b9369826040516109e791815260200190565b60405180910390a26033546040517f79cc67900000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015260248201849052909116906379cc679090604401600060405180830381600087803b158015610a5657600080fd5b505af1158015610a6a573d6000803e3d6000fd5b50506032546040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526024820186905290911692506356a6d9ef9150604401610530565b600080546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b6001600160a01b038116811461082657600080fd5b600080600060608486031215610b6357600080fd5b8335610b6e81610b39565b92506020840135610b7e81610b39565b929592945050506040919091013590565b60008083601f840112610ba157600080fd5b50813567ffffffffffffffff811115610bb957600080fd5b6020830191508360208260051b8501011115610bd457600080fd5b9250929050565b60008060008060408587031215610bf157600080fd5b843567ffffffffffffffff80821115610c0957600080fd5b610c1588838901610b8f565b90965094506020870135915080821115610c2e57600080fd5b50610c3b87828801610b8f565b95989497509550505050565b60008060408385031215610c5a57600080fd5b8235610c6581610b39565b946020939093013593505050565b60008083601f840112610c8557600080fd5b50813567ffffffffffffffff811115610c9d57600080fd5b602083019150836020828501011115610bd457600080fd5b600080600080600060808688031215610ccd57600080fd5b8535610cd881610b39565b9450602086013593506040860135610cef81610b39565b9250606086013567ffffffffffffffff811115610d0b57600080fd5b610d1788828901610c73565b969995985093965092949392505050565b600060208284031215610d3a57600080fd5b5035919050565b600060208284031215610d5357600080fd5b8135610d5e81610b39565b9392505050565b600080600080600060808688031215610d7d57600080fd5b8535610d8881610b39565b94506020860135610d9881610b39565b935060408601359250606086013567ffffffffffffffff811115610d0b57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600019821415610df357634e487b7160e01b600052601160045260246000fd5b5060010190565b600060208284031215610e0c57600080fd5b5051919050565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a0601f19601f8501168301019050969550505050505056fea2646970667358221220c3faaf275fd556461e80831cdb96300ab8f282188592dba4e6a3ffa202915d3b64736f6c63430008090033",
275
275
  "linkReferences": {},
276
276
  "deployedLinkReferences": {}
277
277
  }
@@ -24,9 +24,9 @@ library GovernanceUtils {
24
24
  /// @notice Gets the time remaining until the governable parameter update
25
25
  /// can be committed.
26
26
  /// @param changeInitiatedTimestamp Timestamp indicating the beginning of
27
- /// the change
28
- /// @param delay Governance delay
29
- /// @return Remaining time in seconds
27
+ /// the change.
28
+ /// @param delay Governance delay.
29
+ /// @return Remaining time in seconds.
30
30
  function getRemainingGovernanceDelay(
31
31
  uint256 changeInitiatedTimestamp,
32
32
  uint256 delay
@@ -281,8 +281,8 @@ contract Bank is Ownable {
281
281
  /// @dev Requirements:
282
282
  /// - `vault` must implement `IVault` interface,
283
283
  /// - length of `depositors` and `depositedAmounts` must be the same.
284
- /// @param vault Address of `IVault` recipient contract
285
- /// @param depositors Addresses of depositors whose deposits have been swept
284
+ /// @param vault Address of `IVault` recipient contract.
285
+ /// @param depositors Addresses of depositors whose deposits have been swept.
286
286
  /// @param depositedAmounts Amounts deposited by individual depositors and
287
287
  /// swept. The `vault`'s balance in the Bank will be increased by the
288
288
  /// sum of all elements in this array.
@@ -98,7 +98,7 @@ library BitcoinTx {
98
98
 
99
99
  /// @notice Represents Bitcoin transaction data.
100
100
  struct Info {
101
- /// @notice Bitcoin transaction version
101
+ /// @notice Bitcoin transaction version.
102
102
  /// @dev `version` from raw Bitcoin transaction data.
103
103
  /// Encoded as 4-bytes signed integer, little endian.
104
104
  bytes4 version;
@@ -170,8 +170,8 @@ library BitcoinTx {
170
170
 
171
171
  /// @notice Validates the SPV proof of the Bitcoin transaction.
172
172
  /// Reverts in case the validation or proof verification fail.
173
- /// @param txInfo Bitcoin transaction data
174
- /// @param proof Bitcoin proof data
173
+ /// @param txInfo Bitcoin transaction data.
174
+ /// @param proof Bitcoin proof data.
175
175
  /// @return txHash Proven 32-byte transaction hash.
176
176
  function validateProof(
177
177
  BridgeState.Storage storage self,
@@ -214,7 +214,7 @@ library BitcoinTx {
214
214
  /// Bitcoin chain difficulty provided by the relay oracle.
215
215
  /// Reverts in case the evaluation fails.
216
216
  /// @param bitcoinHeaders Bitcoin headers chain being part of the SPV
217
- /// proof. Used to extract the observed proof difficulty
217
+ /// proof. Used to extract the observed proof difficulty.
218
218
  function evaluateProofDifficulty(
219
219
  BridgeState.Storage storage self,
220
220
  bytes memory bitcoinHeaders
@@ -259,11 +259,11 @@ library BitcoinTx {
259
259
 
260
260
  /// @notice Extracts public key hash from the provided P2PKH or P2WPKH output.
261
261
  /// Reverts if the validation fails.
262
- /// @param output The transaction output
263
- /// @return pubKeyHash 20-byte public key hash the output locks funds on
262
+ /// @param output The transaction output.
263
+ /// @return pubKeyHash 20-byte public key hash the output locks funds on.
264
264
  /// @dev Requirements:
265
265
  /// - The output must be of P2PKH or P2WPKH type and lock the funds
266
- /// on a 20-byte public key hash
266
+ /// on a 20-byte public key hash.
267
267
  function extractPubKeyHash(BridgeState.Storage storage, bytes memory output)
268
268
  internal
269
269
  view