@gainsnetwork/sdk 0.0.28-rc1 → 0.0.30-rc1

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 (26) hide show
  1. package/lib/contracts/index.js +2 -2
  2. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +14 -14
  3. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +1058 -0
  4. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +2 -0
  5. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +821 -0
  6. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +2 -0
  7. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +1 -1
  8. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +9 -9
  9. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +113 -0
  10. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +1742 -0
  11. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +1 -1
  12. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +1 -1
  13. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +82 -0
  14. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +1326 -0
  15. package/lib/contracts/types/generated/factories/index.d.ts +2 -2
  16. package/lib/contracts/types/generated/factories/index.js +5 -5
  17. package/lib/contracts/types/generated/index.d.ts +4 -4
  18. package/lib/contracts/types/generated/index.js +5 -5
  19. package/lib/contracts/types/index.d.ts +3 -3
  20. package/lib/contracts/utils/openLimitOrders.js +12 -1
  21. package/lib/trade/fees/borrowing/index.d.ts +4 -10
  22. package/lib/trade/fees/borrowing/index.js +24 -31
  23. package/lib/trade/fees/borrowing/types.d.ts +3 -0
  24. package/lib/trade/openLimitOrder.js +2 -2
  25. package/lib/trade/types.d.ts +2 -0
  26. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -13,7 +13,7 @@ export declare class GNSBorrowingFeesV6_3_2__factory extends ContractFactory {
13
13
  }): TransactionRequest;
14
14
  attach(address: string): GNSBorrowingFeesV6_3_2;
15
15
  connect(signer: Signer): GNSBorrowingFeesV6_3_2__factory;
16
- static readonly bytecode = "0x608060405234801561001057600080fd5b5061455f806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a55760003560e01c80638ee1caa7116100ef578063bdf391cc11610092578063bdf391cc146106b1578063ca90cda5146106d1578063ce67edfb146106e4578063cee4fa5a146106f7578063d62745051461070a578063e4d668671461072d578063f800ece914610740578063ff933fc41461075557600080fd5b80638ee1caa7146104cd5780638f694238146104e057806390895ff114610506578063979b0895146105af5780639d1798cb146105c2578063a4e95196146105d5578063b91ac788146105e8578063bcb788711461069e57600080fd5b80633d17a5d0116101575780633d17a5d014610391578063485cc955146103a65780634c67cfa0146103b9578063706faf3a146103e15780637b64112b146103f45780637cbd3c9814610407578063826616b514610481578063876ffd97146104ba57600080fd5b80630f8df7e0146101aa5780631346b0ff146101ea57806316fff074146102155780631ab5911a1461022e57806322005202146102595780632d28a817146102795780633979324d1461029a575b600080fd5b6101bd6101b83660046138fa565b610775565b604080516001600160401b0394851681529390921660208401521515908201526060015b60405180910390f35b6001546101fd906001600160a01b031681565b6040516001600160a01b0390911681526020016101e1565b6000546101fd906201000090046001600160a01b031681565b61024161023c366004613a8a565b6108f5565b6040516001600160401b0390911681526020016101e1565b61026c610267366004613b15565b610920565b6040516101e19190613bdc565b61028c610287366004613c40565b610a89565b6040519081526020016101e1565b6103266102a8366004613cca565b60026020819052600091825260409091208054600182015491909201546001600160701b0380841693600160701b810490911692600160e01b90910463ffffffff16916001600160401b0380831692600160401b810490911691600160801b820465ffffffffffff1691600160b01b90046001600160501b03169088565b604080516001600160701b03998a16815298909716602089015263ffffffff909516958701959095526001600160401b0392831660608701529116608085015265ffffffffffff1660a08401526001600160501b0390911660c083015260e0820152610100016101e1565b6103a461039f366004613cfd565b610d99565b005b6103a46103b4366004613d31565b610e57565b6103cc6103c7366004613d6a565b610ffe565b604080519283526020830191909152016101e1565b61028c6103ef366004613d83565b6110fb565b610241610402366004613d95565b611397565b61041a610415366004613dc3565b6113a6565b6040805183516001600160401b039081168252602080860151909116818301528483015165ffffffffffff16828401526060948501516001600160501b031694820194909452825160808201529282015160a08401520151151560c082015260e0016101e1565b61049461048f366004613e0c565b6114db565b604080516001600160401b039485168152939092166020840152908201526060016101e1565b61028c6104c8366004613e7e565b6115ce565b6104946104db366004613e7e565b611752565b6104f36104ee366004613d6a565b611902565b60405161ffff90911681526020016101e1565b61056e610514366004613dc3565b60046020908152600093845260408085208252928452828420905282529020546001600160401b0380821691600160401b810490911690600160801b810465ffffffffffff1690600160b01b90046001600160501b031684565b604080516001600160401b03958616815294909316602085015265ffffffffffff909116918301919091526001600160501b031660608201526080016101e1565b61028c6105bd366004613d6a565b611a25565b6103a46105d0366004613ea0565b611aca565b61028c6105e3366004613ec4565b611b7b565b6106526105f6366004613d6a565b6003602052600090815260409020600181015460029091015463ffffffff8216916001600160401b03600160201b8204811692600160601b83049091169165ffffffffffff600160a01b8204811692600160d01b909204169086565b6040805163ffffffff9790971687526001600160401b039586166020880152939094169285019290925265ffffffffffff908116606085015216608083015260a082015260c0016101e1565b6104946106ac366004613ec4565b611c49565b6106c46106bf366004613d6a565b611d93565b6040516101e19190614025565b6103a46106df36600461407c565b611ef3565b6103a46106f23660046140e7565b61201c565b6103a461070536600461407c565b61236e565b61071d61071836600461414e565b612481565b60405190151581526020016101e1565b61028c61073b366004614186565b6125a7565b6107486125e6565b6040516101e191906141b2565b610768610763366004613cca565b612905565b6040516101e19190614214565b600080600080888a8151811061078d5761078d614223565b60200260200101519050876040015165ffffffffffff16816020015165ffffffffffff16109150600189516107c2919061424f565b8a036107e95780516107d59086886108f5565b93506107e2878688611397565b9250610879565b6000896107f78c6001614262565b8151811061080757610807614223565b602002602001015190508280156108365750886040015165ffffffffffff16816020015165ffffffffffff1611155b15610849576000809450945050506108e9565b86610858578060a0015161085e565b80608001515b94508661086f578060e00151610875565b8060c001515b9350505b81156108a457602088015161088e9085614275565b885190945061089d9084614275565b92506108e7565b856108b35780606001516108b9565b80604001515b6108c39085614275565b9350856108d4578060e001516108da565b8060c001515b6108e49084614275565b92505b505b96509650969350505050565b60008060006109048686611c49565b5091509150836109145780610916565b815b9695505050505050565b60606000826001600160401b0381111561093c5761093c613795565b60405190808252806020026020018201604052801561097557816020015b610962613715565b81526020019060019003908161095a5790505b5090508260005b81811015610a7d576002600087878481811061099a5761099a614223565b90506020020160208101906109af9190613cca565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301526002015460e08201528351849083908110610a6a57610a6a614223565b602090810291909101015260010161097c565b50909150505b92915050565b80516001600160a01b03166000908152600460209081526040808320828501805185529083528184208286015185528352818420825160808101845290546001600160401b038082168352600160401b82041682860152600160801b810465ffffffffffff1682850152600160b01b90046001600160501b0316606082015290518452600383528184208054835181860281018601909452808452919385939290849084015b82821015610be0576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101610b2f565b5050505090506000610bf06129b6565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152909150825115610c615782600081518110610c5657610c56614223565b602002602001015190505b82511580610c865750836040015165ffffffffffff16816020015165ffffffffffff16115b15610cda578351835115610cb1578660600151610ca7578160e00151610cc4565b8160c00151610cc4565b610cc48760200151848960600151611397565b610cce9190614275565b6001600160401b031694505b82515b8015610d5d5760008080610d07610cf560018661424f565b888a8d602001518e606001518b610775565b925092509250816001600160401b0316836001600160401b031611610d2c5781610d2e565b825b610d41906001600160401b03168a614262565b98508015610d5157505050610d5d565b50505060001901610cdd565b5060646402540be400868860a001518960800151610d7b9190614295565b610d859190614295565b610d8f91906142c2565b61091691906142c2565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1091906142d6565b6001600160a01b0316336001600160a01b031614610e495760405162461bcd60e51b8152600401610e40906142f3565b60405180910390fd5b610e538282612a3c565b5050565b600054610100900460ff1615808015610e775750600054600160ff909116105b80610e915750303b158015610e91575060005460ff166001145b610ef45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e40565b6000805460ff191660011790558015610f17576000805461ff0019166101001790555b6001600160a01b03831615801590610f3757506001600160a01b03821615155b610f725760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f504152414d5360a01b6044820152606401610e40565b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b0319169184169190911790558015610ff9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b600080546040516328daca2160e01b8152600481018490526024810183905282916201000090046001600160a01b0316906328daca2190604401602060405180830381865afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110799190614319565b6000546040516328daca2160e01b81526004810186905260016024820152620100009091046001600160a01b0316906328daca2190604401602060405180830381865afa1580156110ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190614319565b91509150915091565b6001546000906001600160a01b0316636bcbe860606084013561112460a0860160808701614332565b8560a001358660c0013561119f6040518060c001604052808a600001602081019061114f919061434f565b6001600160a01b0316815260208b810135908201526040808c01359082015260600161118160a08c0160808d01614332565b151581526020018a60a0013581526020018a60c00135815250610a89565b6001546001600160a01b03166358f796bc6111bd60208c018c61434f565b604080516001600160e01b031960e085901b1681526001600160a01b03909216600483015260208d013560248301528c0135604482015260a08c01356064820152608401602060405180830381865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190614319565b61124c9190614262565b6001546001600160a01b031663f6c50efe61126a60208c018c61434f565b8b602001358c604001358d60800160208101906112879190614332565b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152602484019290925260448301521515606482015260a08c0135608482015260c08c013560a482015260c401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113179190614319565b6040516001600160e01b031960e089901b1681526004810196909652931515602486015260448501929092526064840152608483015260a482015260c4015b602060405180830381865afa158015611373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a839190614319565b60008060006109048686611752565b604080516080810182526000808252602080830182905282840182905260608084018390528451908101855282815290810182905292830152906001600160a01b0385811660008181526004602081815260408084208a85528252808420898552825292839020835160808101855290546001600160401b038082168352600160401b82041692820192909252600160801b820465ffffffffffff1681850152600160b01b9091046001600160501b031660608201526001549251632f6ac02760e11b815291820193909352602481018890526044810187905291945090911690635ed5804e90606401606060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d1919061436c565b9050935093915050565b60008060008486101561151e5760405162461bcd60e51b815260206004820152600b60248201526a212627a1a5afa7a92222a960a91b6044820152606401610e40565b83611529868861424f565b63ffffffff891661153a8b8d6143cd565b61154491906143ed565b61154e91906143ed565b611558919061441d565b905060008082121561158657611570826000196143ed565b8c9450905061157f818c61444b565b9250611598565b5080611592818d61444b565b93508a92505b6001600160401b038111156115bf5760405162461bcd60e51b8152600401610e409061446b565b50985098509895505050505050565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152859491938492849190879085015b828210156116b6576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611605565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c090910152905061174a61172e84611a25565b60c0830151608084015161073b9065ffffffffffff168761424f565b949350505050565b60008060008061176286866115ce565b6000878152600360209081526040808320815181546101009481028201850190935260e081018381529596509394909284928491879085015b8282101561184c576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161179b565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015290506000806118c489610ffe565b915091506118f083604001518460600151848487602001518d896080015165ffffffffffff168b6114db565b919b909a509098509650505050505050565b600081815260036020908152604080832080548251818502810185019093528083528493849084015b828210156119dc576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161192b565b5050505090508051600014611a1b5780600182516119fa919061424f565b81518110611a0a57611a0a614223565b602002602001015160000151611a1e565b60005b9392505050565b60008060029054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9d91906142d6565b6001600160a01b031663979b0895836040518263ffffffff1660e01b815260040161135691815260200190565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4191906142d6565b6001600160a01b0316336001600160a01b031614611b715760405162461bcd60e51b8152600401610e40906142f3565b610e538282612b8d565b61ffff8216600090815260026020818152604080842081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301529091015460e082015261174a611c2d84611a25565b60e083015160a084015161073b9065ffffffffffff168761424f565b600080600080611c598686611b7b565b61ffff871660009081526002602081815260409283902083516101008101855281546001600160701b03808216808452600160701b830490911694830194909452600160e01b900463ffffffff169481019490945260018101546001600160401b0380821660608701819052600160401b830490911660808701819052600160801b830465ffffffffffff1660a0880152600160b01b9092046001600160501b031660c0870152919093015460e08501529394509192611d83929091906402540be40090611d2f90670de0b6b3a7640000614295565b611d3991906142c2565b6402540be40085602001516001600160701b0316670de0b6b3a7640000611d609190614295565b611d6a91906142c2565b85604001518b8760a0015165ffffffffffff16896114db565b9199909850909650945050505050565b611d9b613759565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b82821015611e83576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611dd2565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015292915050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6a91906142d6565b6001600160a01b0316336001600160a01b031614611f9a5760405162461bcd60e51b8152600401610e40906142f3565b82818114611fba5760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761200c868683818110611fda57611fda614223565b9050602002016020810190611fef9190613cca565b85858481811061200157612001614223565b905060400201612a3c565b600101611fbd565b505050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906142d6565b6001600160a01b0316336001600160a01b0316146120e35760405162461bcd60e51b815260206004820152600e60248201526d43414c4c4241434b535f4f4e4c5960901b6044820152606401610e40565b60006120ee86611902565b905060006120fa6129b6565b905060008061210989846132c5565b9150915060008061211a86866133e4565b9150915061212a86888a8c6134e9565b8715612300576000604051806080016040528089612148578561214a565b865b6001600160401b03168152602001896121635783612165565b845b6001600160401b0316815260200161217c886136e9565b65ffffffffffff16815260200160006001600160501b0316815250905080600460008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008e815260200190815260200160002060008d815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555060608201518160000160166101000a8154816001600160501b0302191690836001600160501b031602179055509050508b8d6001600160a01b03167faa00ca5c6f282cb9f35953ecb0eaf8e39c95b7c8df114efac12162a85c085e608d846000015185602001516040516122f6939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a3505b8a8c6001600160a01b03167f66baa1848f5d4d14567e9bc527e5608778c86e512490d413cfafc9250327308f8c8b8b8e6040516123589493929190938452911515602084015215156040830152606082015260800190565b60405180910390a3505050505050505050505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e591906142d6565b6001600160a01b0316336001600160a01b0316146124155760405162461bcd60e51b8152600401610e40906142f3565b828181146124355760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761247986868381811061245557612455614223565b9050602002013585858481811061246e5761246e614223565b905060400201612b8d565b600101612438565b6000806002600061249187611902565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c0830181905260029091015460e0830152909150158061259e575060c08101516001600160501b0316670de0b6b3a764000061256c6402540be40086614295565b61257691906142c2565b85612585578260200151612588565b82515b6001600160701b031661259b9190614262565b11155b95945050505050565b60008082116125b757600161174a565b6125c1838561424f565b6125dc701d6329f1c35ca4bfabb9f561000000000084614295565b61174a91906142c2565b606060008060029054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906142d6565b6001600160a01b03166335b03c176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c191906142d6565b6001600160a01b031663b81b2b716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127229190614319565b90506000816001600160401b0381111561273e5761273e613795565b60405190808252806020026020018201604052801561277757816020015b612764613759565b81526020019060019003908161275c5790505b50905060005b828110156128fe576000818152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b8282101561286d576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e0860152920490911661010083015290835290920191016127bc565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015282518390839081106128eb576128eb614223565b602090810291909101015260010161277d565b5092915050565b61290d613715565b5061ffff1660009081526002602081815260409283902083516101008101855281546001600160701b038082168352600160701b82041693820193909352600160e01b90920463ffffffff169382019390935260018301546001600160401b038082166060840152600160401b8204166080830152600160801b810465ffffffffffff1660a0830152600160b01b90046001600160501b031660c082015291015460e082015290565b600061a4b14614806129ca575062066eed46145b15612a375760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a329190614319565b905090565b504390565b60008261ffff1611612a7a5760405162461bcd60e51b8152602060048201526007602482015266047524f55505f360cc1b6044820152606401610e40565b612a8b82612a866129b6565b6133e4565b50612a9b905060208201826144b3565b61ffff8316600090815260026020908152604091829020805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255612ae4919083019083016144ce565b61ffff8316600081815260026020908152604090912060010180546001600160501b0394909416600160b01b026001600160b01b0390941693909317909255907f13ca6bc9fec3180d22cd2b93572ce25b32400866cf7b0ac72d30dd699add054d90612b52908401846144b3565b612b6260408501602086016144ce565b6040805163ffffffff90931683526001600160501b0390911660208301520160405180910390a25050565b600082815260036020526040812090612ba584611902565b90506000612bb16129b6565b9050612bbd85826132c5565b505061ffff8216612bd16020860186613cca565b61ffff161461323757612be482826133e4565b50612bfd9050612bf76020860186613cca565b826133e4565b5050600080612c0b87610ffe565b91509150612c1d8460016000856134e9565b612c2a84600080846134e9565b612c43612c3a6020880188613cca565b600180856134e9565b612c5d612c536020880188613cca565b60006001846134e9565b6000600281612c6f60208a018a613cca565b61ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b0316815260200160028201548152505090506000600260008761ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b031681526020016002820154815250509050866000016040518061012001604052808a6000016020810190612f6f9190613cca565b61ffff168152602001612f81886136e9565b65ffffffffffff16815260200184606001516001600160401b0316815260200184608001516001600160401b0316815260200183606001516001600160401b0316815260200183608001516001600160401b031681526020018960010160049054906101000a90046001600160401b03166001600160401b0316815260200189600101600c9054906101000a90046001600160401b03166001600160401b0316815260200160006001600160401b0316815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548165ffffffffffff021916908365ffffffffffff16021790555060408201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160010160106101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160010160186101000a8154816001600160401b0302191690836001600160401b0316021790555050508760000160208101906131fc9190613cca565b61ffff168661ffff168a7fb101b018b2e391e04f2bf604b456a94e1586dbc9b45f9fe964dd24c82a61365860405160405180910390a4505050505b61324760408501602086016144b3565b60018401805463ffffffff191663ffffffff929092169190911790556132706020850185613cca565b61ffff16857fb952776dd028b221fddb797daabb4b4fde763e8273080fec7183df71ab84507b6132a660408801602089016144b3565b60405163ffffffff909116815260200160405180910390a35050505050565b60008060006132d48585611752565b60008881526003602052604090206001810180546001600160401b03808716600160201b026bffffffffffffffff0000000019918716600160601b0291909116640100000000600160a01b031990921691909117179055929550909350915061333c856136e9565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061336b85611a25565b600282018190556001820154604080518881526001600160401b03600160201b840481166020830152600160601b90930490921690820152606081019190915286907fdfb420060d958fae05b55542f1db8397c379c7b40461f5ccc47df0df8ecf0551906080015b60405180910390a250509250929050565b60008060006133f38585611c49565b61ffff881660009081526002602052604090206001810180546001600160801b031916600160401b6001600160401b038681169190910267ffffffffffffffff1916919091179086161790559295509093509150613450856136e9565b8160010160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555061347f85611a25565b600282018190556001820154604080518881526001600160401b038084166020830152600160401b90930490921690820152606081019190915261ffff8716907f7672014c79d6eb7b66523664177345f0729875e37653757b1cc1f70ba0f15798906080016133d3565b61ffff84166000818152600260205260408120911561367c57670de0b6b3a764000061351a6402540be40085614295565b61352491906142c2565b92506001600160701b0383111561354d5760405162461bcd60e51b8152600401610e409061446b565b508184156135d7578361359a5781546001600160701b0380831691161161357e5781546001600160701b0316613580565b805b825461359591906001600160701b03166144e9565b6135b0565b81546135b09082906001600160701b0316614509565b82546dffffffffffffffffffffffffffff19166001600160701b039190911617825561367c565b836136315781546001600160701b03808316600160701b909204161161360e578154600160701b90046001600160701b0316613610565b805b825461362c9190600160701b90046001600160701b03166144e9565b61364e565b815461364e908290600160701b90046001600160701b0316614509565b82546001600160701b0391909116600160701b026dffffffffffffffffffffffffffff60701b199091161782555b8154604080516001600160701b0380851682528084166020830152600160701b90930490921690820152841515908615159061ffff8916907fa1cf9ebd9d97fa9ed417a17269efd2afcf5e3a71f507b5d46a1de8311cf2ee3a9060600160405180910390a4505050505050565b600065ffffffffffff8211156137115760405162461bcd60e51b8152600401610e409061446b565b5090565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6040805160e081018252606080825260006020830181905292820183905281018290526080810182905260a0810182905260c081019190915290565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156137ce576137ce613795565b60405290565b604051601f8201601f191681016001600160401b03811182821017156137fc576137fc613795565b604052919050565b803561ffff8116811461381657600080fd5b919050565b803565ffffffffffff8116811461381657600080fd5b80356001600160401b038116811461381657600080fd5b80356001600160501b038116811461381657600080fd5b60006080828403121561387157600080fd5b604051608081018181106001600160401b038211171561389357613893613795565b6040529050806138a283613831565b81526138b060208401613831565b60208201526138c16040840161381b565b60408201526138d260608401613848565b60608201525092915050565b80151581146138ec57600080fd5b50565b8035613816816138de565b60008060008060008061012080888a03121561391557600080fd5b873596506020808901356001600160401b038082111561393457600080fd5b818b0191508b601f83011261394857600080fd5b81358181111561395a5761395a613795565b613968848260051b016137d4565b818152848101925090850283018401908d82111561398557600080fd5b928401925b81841015613a4b5785848f0312156139a25760008081fd5b6139aa6137ab565b6139b385613804565b81526139c086860161381b565b8682015260406139d1818701613831565b9082015260606139e2868201613831565b9082015260806139f3868201613831565b9082015260a0613a04868201613831565b9082015260c0613a15868201613831565b9082015260e0613a26868201613831565b90820152610100613a38868201613831565b908201528352928501929184019161398a565b809a50505050505050613a61886040890161385f565b935060c08701359250613a7660e088016138ef565b915061010087013590509295509295509295565b600080600060608486031215613a9f57600080fd5b613aa884613804565b9250602084013591506040840135613abf816138de565b809150509250925092565b60008083601f840112613adc57600080fd5b5081356001600160401b03811115613af357600080fd5b6020830191508360208260051b8501011115613b0e57600080fd5b9250929050565b60008060208385031215613b2857600080fd5b82356001600160401b03811115613b3e57600080fd5b613b4a85828601613aca565b90969095509350505050565b6001600160701b038082511683528060208301511660208401525063ffffffff604082015116604083015260608101516001600160401b038082166060850152806080840151166080850152505065ffffffffffff60a08201511660a083015260c0810151613bd060c08401826001600160501b03169052565b5060e090810151910152565b6020808252825182820181905260009190848201906040850190845b81811015613c1f57613c0b838551613b56565b928401926101009290920191600101613bf8565b50909695505050505050565b6001600160a01b03811681146138ec57600080fd5b600060c08284031215613c5257600080fd5b60405160c081018181106001600160401b0382111715613c7457613c74613795565b6040528235613c8281613c2b565b8082525060208301356020820152604083013560408201526060830135613ca8816138de565b60608201526080838101359082015260a0928301359281019290925250919050565b600060208284031215613cdc57600080fd5b611a1e82613804565b600060408284031215613cf757600080fd5b50919050565b60008060608385031215613d1057600080fd5b613d1983613804565b9150613d288460208501613ce5565b90509250929050565b60008060408385031215613d4457600080fd5b8235613d4f81613c2b565b91506020830135613d5f81613c2b565b809150509250929050565b600060208284031215613d7c57600080fd5b5035919050565b600060e08284031215613cf757600080fd5b600080600060608486031215613daa57600080fd5b83359250602084013591506040840135613abf816138de565b600080600060608486031215613dd857600080fd5b8335613de381613c2b565b95602085013595506040909401359392505050565b803563ffffffff8116811461381657600080fd5b600080600080600080600080610100898b031215613e2957600080fd5b613e3289613831565b9750613e4060208a01613831565b96506040890135955060608901359450613e5c60808a01613df8565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60008060408385031215613e9157600080fd5b50508035926020909101359150565b60008060608385031215613eb357600080fd5b82359150613d288460208501613ce5565b60008060408385031215613ed757600080fd5b613ee083613804565b946020939093013593505050565b805160e08084528151848201819052600092610100916020918201918388019190865b82811015613fa1578451805161ffff1685528281015165ffffffffffff16838601526040808201516001600160401b039081169187019190915260608083015182169087015260808083015182169087015260a08083015182169087015260c080830151821690870152888201518116898701529087015116868501529381019361012090930192600101613f11565b508781015163ffffffff1690890152506040808701516001600160401b039081169189019190915260608088015191821690890152935060808601519350613ff3608088018565ffffffffffff169052565b60a0860151935061400e60a088018565ffffffffffff169052565b60c086015160c08801528094505050505092915050565b602081526000611a1e6020830184613eee565b60008083601f84011261404a57600080fd5b5081356001600160401b0381111561406157600080fd5b6020830191508360208260061b8501011115613b0e57600080fd5b6000806000806040858703121561409257600080fd5b84356001600160401b03808211156140a957600080fd5b6140b588838901613aca565b909650945060208701359150808211156140ce57600080fd5b506140db87828801614038565b95989497509550505050565b60008060008060008060c0878903121561410057600080fd5b863561410b81613c2b565b95506020870135945060408701359350606087013592506080870135614130816138de565b915060a0870135614140816138de565b809150509295509295509295565b60008060006060848603121561416357600080fd5b833592506020840135614175816138de565b929592945050506040919091013590565b60008060006060848603121561419b57600080fd5b505081359360208301359350604090920135919050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561420757603f198886030184526141f5858351613eee565b945092850192908501906001016141d9565b5092979650505050505050565b6101008101610a838284613b56565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610a8357610a83614239565b80820180821115610a8357610a83614239565b6001600160401b038281168282160390808211156128fe576128fe614239565b8082028115828204841417610a8357610a83614239565b634e487b7160e01b600052601260045260246000fd5b6000826142d1576142d16142ac565b500490565b6000602082840312156142e857600080fd5b8151611a1e81613c2b565b6020808252600c908201526b4d414e414745525f4f4e4c5960a01b604082015260600190565b60006020828403121561432b57600080fd5b5051919050565b60006020828403121561434457600080fd5b8135611a1e816138de565b60006020828403121561436157600080fd5b8135611a1e81613c2b565b60006060828403121561437e57600080fd5b604051606081018181106001600160401b03821117156143a0576143a0613795565b8060405250825181526020830151602082015260408301516143c1816138de565b60408201529392505050565b81810360008312801583831316838312821617156128fe576128fe614239565b80820260008212600160ff1b8414161561440957614409614239565b8181058314821517610a8357610a83614239565b60008261442c5761442c6142ac565b600160ff1b82146000198414161561444657614446614239565b500590565b6001600160401b038181168382160190808211156128fe576128fe614239565b6020808252600890820152674f564552464c4f5760c01b604082015260600190565b6020808252600c908201526b0aea49e9c8ebe988a9c8ea8960a31b604082015260600190565b6000602082840312156144c557600080fd5b611a1e82613df8565b6000602082840312156144e057600080fd5b611a1e82613848565b6001600160701b038281168282160390808211156128fe576128fe614239565b6001600160701b038181168382160190808211156128fe576128fe61423956fea2646970667358221220d2221ebc29ff72b765f360775b7741c20b08902603256fb6b5a5178f4f81bb0464736f6c63430008110033";
16
+ static readonly bytecode = "0x608060405234801561001057600080fd5b5061455f806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a55760003560e01c80638ee1caa7116100ef578063bdf391cc11610092578063bdf391cc146106b1578063ca90cda5146106d1578063ce67edfb146106e4578063cee4fa5a146106f7578063d62745051461070a578063e4d668671461072d578063f800ece914610740578063ff933fc41461075557600080fd5b80638ee1caa7146104cd5780638f694238146104e057806390895ff114610506578063979b0895146105af5780639d1798cb146105c2578063a4e95196146105d5578063b91ac788146105e8578063bcb788711461069e57600080fd5b80633d17a5d0116101575780633d17a5d014610391578063485cc955146103a65780634c67cfa0146103b9578063706faf3a146103e15780637b64112b146103f45780637cbd3c9814610407578063826616b514610481578063876ffd97146104ba57600080fd5b80630f8df7e0146101aa5780631346b0ff146101ea57806316fff074146102155780631ab5911a1461022e57806322005202146102595780632d28a817146102795780633979324d1461029a575b600080fd5b6101bd6101b83660046138fa565b610775565b604080516001600160401b0394851681529390921660208401521515908201526060015b60405180910390f35b6001546101fd906001600160a01b031681565b6040516001600160a01b0390911681526020016101e1565b6000546101fd906201000090046001600160a01b031681565b61024161023c366004613a8a565b6108f5565b6040516001600160401b0390911681526020016101e1565b61026c610267366004613b15565b610920565b6040516101e19190613bdc565b61028c610287366004613c40565b610a89565b6040519081526020016101e1565b6103266102a8366004613cca565b60026020819052600091825260409091208054600182015491909201546001600160701b0380841693600160701b810490911692600160e01b90910463ffffffff16916001600160401b0380831692600160401b810490911691600160801b820465ffffffffffff1691600160b01b90046001600160501b03169088565b604080516001600160701b03998a16815298909716602089015263ffffffff909516958701959095526001600160401b0392831660608701529116608085015265ffffffffffff1660a08401526001600160501b0390911660c083015260e0820152610100016101e1565b6103a461039f366004613cfd565b610d99565b005b6103a46103b4366004613d31565b610e57565b6103cc6103c7366004613d6a565b610ffe565b604080519283526020830191909152016101e1565b61028c6103ef366004613d83565b6110fb565b610241610402366004613d95565b611397565b61041a610415366004613dc3565b6113a6565b6040805183516001600160401b039081168252602080860151909116818301528483015165ffffffffffff16828401526060948501516001600160501b031694820194909452825160808201529282015160a08401520151151560c082015260e0016101e1565b61049461048f366004613e0c565b6114db565b604080516001600160401b039485168152939092166020840152908201526060016101e1565b61028c6104c8366004613e7e565b6115ce565b6104946104db366004613e7e565b611752565b6104f36104ee366004613d6a565b611902565b60405161ffff90911681526020016101e1565b61056e610514366004613dc3565b60046020908152600093845260408085208252928452828420905282529020546001600160401b0380821691600160401b810490911690600160801b810465ffffffffffff1690600160b01b90046001600160501b031684565b604080516001600160401b03958616815294909316602085015265ffffffffffff909116918301919091526001600160501b031660608201526080016101e1565b61028c6105bd366004613d6a565b611a25565b6103a46105d0366004613ea0565b611aca565b61028c6105e3366004613ec4565b611b7b565b6106526105f6366004613d6a565b6003602052600090815260409020600181015460029091015463ffffffff8216916001600160401b03600160201b8204811692600160601b83049091169165ffffffffffff600160a01b8204811692600160d01b909204169086565b6040805163ffffffff9790971687526001600160401b039586166020880152939094169285019290925265ffffffffffff908116606085015216608083015260a082015260c0016101e1565b6104946106ac366004613ec4565b611c49565b6106c46106bf366004613d6a565b611d93565b6040516101e19190614025565b6103a46106df36600461407c565b611ef3565b6103a46106f23660046140e7565b61201c565b6103a461070536600461407c565b61236e565b61071d61071836600461414e565b612481565b60405190151581526020016101e1565b61028c61073b366004614186565b6125a7565b6107486125e6565b6040516101e191906141b2565b610768610763366004613cca565b612905565b6040516101e19190614214565b600080600080888a8151811061078d5761078d614223565b60200260200101519050876040015165ffffffffffff16816020015165ffffffffffff16109150600189516107c2919061424f565b8a036107e95780516107d59086886108f5565b93506107e2878688611397565b9250610879565b6000896107f78c6001614262565b8151811061080757610807614223565b602002602001015190508280156108365750886040015165ffffffffffff16816020015165ffffffffffff1611155b15610849576000809450945050506108e9565b86610858578060a0015161085e565b80608001515b94508661086f578060e00151610875565b8060c001515b9350505b81156108a457602088015161088e9085614275565b885190945061089d9084614275565b92506108e7565b856108b35780606001516108b9565b80604001515b6108c39085614275565b9350856108d4578060e001516108da565b8060c001515b6108e49084614275565b92505b505b96509650969350505050565b60008060006109048686611c49565b5091509150836109145780610916565b815b9695505050505050565b60606000826001600160401b0381111561093c5761093c613795565b60405190808252806020026020018201604052801561097557816020015b610962613715565b81526020019060019003908161095a5790505b5090508260005b81811015610a7d576002600087878481811061099a5761099a614223565b90506020020160208101906109af9190613cca565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301526002015460e08201528351849083908110610a6a57610a6a614223565b602090810291909101015260010161097c565b50909150505b92915050565b80516001600160a01b03166000908152600460209081526040808320828501805185529083528184208286015185528352818420825160808101845290546001600160401b038082168352600160401b82041682860152600160801b810465ffffffffffff1682850152600160b01b90046001600160501b0316606082015290518452600383528184208054835181860281018601909452808452919385939290849084015b82821015610be0576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101610b2f565b5050505090506000610bf06129b6565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152909150825115610c615782600081518110610c5657610c56614223565b602002602001015190505b82511580610c865750836040015165ffffffffffff16816020015165ffffffffffff16115b15610cda578351835115610cb1578660600151610ca7578160e00151610cc4565b8160c00151610cc4565b610cc48760200151848960600151611397565b610cce9190614275565b6001600160401b031694505b82515b8015610d5d5760008080610d07610cf560018661424f565b888a8d602001518e606001518b610775565b925092509250816001600160401b0316836001600160401b031611610d2c5781610d2e565b825b610d41906001600160401b03168a614262565b98508015610d5157505050610d5d565b50505060001901610cdd565b5060646402540be400868860a001518960800151610d7b9190614295565b610d859190614295565b610d8f91906142c2565b61091691906142c2565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1091906142d6565b6001600160a01b0316336001600160a01b031614610e495760405162461bcd60e51b8152600401610e40906142f3565b60405180910390fd5b610e538282612a3c565b5050565b600054610100900460ff1615808015610e775750600054600160ff909116105b80610e915750303b158015610e91575060005460ff166001145b610ef45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e40565b6000805460ff191660011790558015610f17576000805461ff0019166101001790555b6001600160a01b03831615801590610f3757506001600160a01b03821615155b610f725760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f504152414d5360a01b6044820152606401610e40565b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b0319169184169190911790558015610ff9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b600080546040516328daca2160e01b8152600481018490526024810183905282916201000090046001600160a01b0316906328daca2190604401602060405180830381865afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110799190614319565b6000546040516328daca2160e01b81526004810186905260016024820152620100009091046001600160a01b0316906328daca2190604401602060405180830381865afa1580156110ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190614319565b91509150915091565b6001546000906001600160a01b0316636bcbe860606084013561112460a0860160808701614332565b8560a001358660c0013561119f6040518060c001604052808a600001602081019061114f919061434f565b6001600160a01b0316815260208b810135908201526040808c01359082015260600161118160a08c0160808d01614332565b151581526020018a60a0013581526020018a60c00135815250610a89565b6001546001600160a01b03166358f796bc6111bd60208c018c61434f565b604080516001600160e01b031960e085901b1681526001600160a01b03909216600483015260208d013560248301528c0135604482015260a08c01356064820152608401602060405180830381865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190614319565b61124c9190614262565b6001546001600160a01b031663f6c50efe61126a60208c018c61434f565b8b602001358c604001358d60800160208101906112879190614332565b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152602484019290925260448301521515606482015260a08c0135608482015260c08c013560a482015260c401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113179190614319565b6040516001600160e01b031960e089901b1681526004810196909652931515602486015260448501929092526064840152608483015260a482015260c4015b602060405180830381865afa158015611373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a839190614319565b60008060006109048686611752565b604080516080810182526000808252602080830182905282840182905260608084018390528451908101855282815290810182905292830152906001600160a01b0385811660008181526004602081815260408084208a85528252808420898552825292839020835160808101855290546001600160401b038082168352600160401b82041692820192909252600160801b820465ffffffffffff1681850152600160b01b9091046001600160501b031660608201526001549251632f6ac02760e11b815291820193909352602481018890526044810187905291945090911690635ed5804e90606401606060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d1919061436c565b9050935093915050565b60008060008486101561151e5760405162461bcd60e51b815260206004820152600b60248201526a212627a1a5afa7a92222a960a91b6044820152606401610e40565b83611529868861424f565b63ffffffff891661153a8b8d6143cd565b61154491906143ed565b61154e91906143ed565b611558919061441d565b905060008082121561158657611570826000196143ed565b8c9450905061157f818c61444b565b9250611598565b5080611592818d61444b565b93508a92505b6001600160401b038111156115bf5760405162461bcd60e51b8152600401610e409061446b565b50985098509895505050505050565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152859491938492849190879085015b828210156116b6576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611605565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c090910152905061174a61172e84611a25565b60c0830151608084015161073b9065ffffffffffff168761424f565b949350505050565b60008060008061176286866115ce565b6000878152600360209081526040808320815181546101009481028201850190935260e081018381529596509394909284928491879085015b8282101561184c576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161179b565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015290506000806118c489610ffe565b915091506118f083604001518460600151848487602001518d896080015165ffffffffffff168b6114db565b919b909a509098509650505050505050565b600081815260036020908152604080832080548251818502810185019093528083528493849084015b828210156119dc576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161192b565b5050505090508051600014611a1b5780600182516119fa919061424f565b81518110611a0a57611a0a614223565b602002602001015160000151611a1e565b60005b9392505050565b60008060029054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9d91906142d6565b6001600160a01b031663979b0895836040518263ffffffff1660e01b815260040161135691815260200190565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4191906142d6565b6001600160a01b0316336001600160a01b031614611b715760405162461bcd60e51b8152600401610e40906142f3565b610e538282612b8d565b61ffff8216600090815260026020818152604080842081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301529091015460e082015261174a611c2d84611a25565b60e083015160a084015161073b9065ffffffffffff168761424f565b600080600080611c598686611b7b565b61ffff871660009081526002602081815260409283902083516101008101855281546001600160701b03808216808452600160701b830490911694830194909452600160e01b900463ffffffff169481019490945260018101546001600160401b0380821660608701819052600160401b830490911660808701819052600160801b830465ffffffffffff1660a0880152600160b01b9092046001600160501b031660c0870152919093015460e08501529394509192611d83929091906402540be40090611d2f90670de0b6b3a7640000614295565b611d3991906142c2565b6402540be40085602001516001600160701b0316670de0b6b3a7640000611d609190614295565b611d6a91906142c2565b85604001518b8760a0015165ffffffffffff16896114db565b9199909850909650945050505050565b611d9b613759565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b82821015611e83576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611dd2565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015292915050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6a91906142d6565b6001600160a01b0316336001600160a01b031614611f9a5760405162461bcd60e51b8152600401610e40906142f3565b82818114611fba5760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761200c868683818110611fda57611fda614223565b9050602002016020810190611fef9190613cca565b85858481811061200157612001614223565b905060400201612a3c565b600101611fbd565b505050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906142d6565b6001600160a01b0316336001600160a01b0316146120e35760405162461bcd60e51b815260206004820152600e60248201526d43414c4c4241434b535f4f4e4c5960901b6044820152606401610e40565b60006120ee86611902565b905060006120fa6129b6565b905060008061210989846132c5565b9150915060008061211a86866133e4565b9150915061212a86888a8c6134e9565b8715612300576000604051806080016040528089612148578561214a565b865b6001600160401b03168152602001896121635783612165565b845b6001600160401b0316815260200161217c886136e9565b65ffffffffffff16815260200160006001600160501b0316815250905080600460008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008e815260200190815260200160002060008d815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555060608201518160000160166101000a8154816001600160501b0302191690836001600160501b031602179055509050508b8d6001600160a01b03167faa00ca5c6f282cb9f35953ecb0eaf8e39c95b7c8df114efac12162a85c085e608d846000015185602001516040516122f6939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a3505b8a8c6001600160a01b03167f66baa1848f5d4d14567e9bc527e5608778c86e512490d413cfafc9250327308f8c8b8b8e6040516123589493929190938452911515602084015215156040830152606082015260800190565b60405180910390a3505050505050505050505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e591906142d6565b6001600160a01b0316336001600160a01b0316146124155760405162461bcd60e51b8152600401610e40906142f3565b828181146124355760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761247986868381811061245557612455614223565b9050602002013585858481811061246e5761246e614223565b905060400201612b8d565b600101612438565b6000806002600061249187611902565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c0830181905260029091015460e0830152909150158061259e575060c08101516001600160501b0316670de0b6b3a764000061256c6402540be40086614295565b61257691906142c2565b85612585578260200151612588565b82515b6001600160701b031661259b9190614262565b11155b95945050505050565b60008082116125b757600161174a565b6125c1838561424f565b6125dc701d6329f1c35ca4bfabb9f561000000000084614295565b61174a91906142c2565b606060008060029054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906142d6565b6001600160a01b03166335b03c176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c191906142d6565b6001600160a01b031663b81b2b716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127229190614319565b90506000816001600160401b0381111561273e5761273e613795565b60405190808252806020026020018201604052801561277757816020015b612764613759565b81526020019060019003908161275c5790505b50905060005b828110156128fe576000818152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b8282101561286d576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e0860152920490911661010083015290835290920191016127bc565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015282518390839081106128eb576128eb614223565b602090810291909101015260010161277d565b5092915050565b61290d613715565b5061ffff1660009081526002602081815260409283902083516101008101855281546001600160701b038082168352600160701b82041693820193909352600160e01b90920463ffffffff169382019390935260018301546001600160401b038082166060840152600160401b8204166080830152600160801b810465ffffffffffff1660a0830152600160b01b90046001600160501b031660c082015291015460e082015290565b600061a4b14614806129ca575062066eed46145b15612a375760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a329190614319565b905090565b504390565b60008261ffff1611612a7a5760405162461bcd60e51b8152602060048201526007602482015266047524f55505f360cc1b6044820152606401610e40565b612a8b82612a866129b6565b6133e4565b50612a9b905060208201826144b3565b61ffff8316600090815260026020908152604091829020805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255612ae4919083019083016144ce565b61ffff8316600081815260026020908152604090912060010180546001600160501b0394909416600160b01b026001600160b01b0390941693909317909255907f88d808712bd68b7f7473d7173bcddf46451c2122e6b14ff487edb7384a063a0a90612b52908401846144b3565b612b6260408501602086016144ce565b6040805163ffffffff90931683526001600160501b0390911660208301520160405180910390a25050565b600082815260036020526040812090612ba584611902565b90506000612bb16129b6565b9050612bbd85826132c5565b505061ffff8216612bd16020860186613cca565b61ffff161461323757612be482826133e4565b50612bfd9050612bf76020860186613cca565b826133e4565b5050600080612c0b87610ffe565b91509150612c1d8460016000856134e9565b612c2a84600080846134e9565b612c43612c3a6020880188613cca565b600180856134e9565b612c5d612c536020880188613cca565b60006001846134e9565b6000600281612c6f60208a018a613cca565b61ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b0316815260200160028201548152505090506000600260008761ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b031681526020016002820154815250509050866000016040518061012001604052808a6000016020810190612f6f9190613cca565b61ffff168152602001612f81886136e9565b65ffffffffffff16815260200184606001516001600160401b0316815260200184608001516001600160401b0316815260200183606001516001600160401b0316815260200183608001516001600160401b031681526020018960010160049054906101000a90046001600160401b03166001600160401b0316815260200189600101600c9054906101000a90046001600160401b03166001600160401b0316815260200160006001600160401b0316815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548165ffffffffffff021916908365ffffffffffff16021790555060408201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160010160106101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160010160186101000a8154816001600160401b0302191690836001600160401b0316021790555050508760000160208101906131fc9190613cca565b61ffff168661ffff168a7f5beb7d73e1c3cd532d47c9e896931df26d9be450a833bd5fe1ace6bf5690d46860405160405180910390a4505050505b61324760408501602086016144b3565b60018401805463ffffffff191663ffffffff929092169190911790556132706020850185613cca565b61ffff16857fb952776dd028b221fddb797daabb4b4fde763e8273080fec7183df71ab84507b6132a660408801602089016144b3565b60405163ffffffff909116815260200160405180910390a35050505050565b60008060006132d48585611752565b60008881526003602052604090206001810180546001600160401b03808716600160201b026bffffffffffffffff0000000019918716600160601b0291909116640100000000600160a01b031990921691909117179055929550909350915061333c856136e9565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061336b85611a25565b600282018190556001820154604080518881526001600160401b03600160201b840481166020830152600160601b90930490921690820152606081019190915286907fdfb420060d958fae05b55542f1db8397c379c7b40461f5ccc47df0df8ecf0551906080015b60405180910390a250509250929050565b60008060006133f38585611c49565b61ffff881660009081526002602052604090206001810180546001600160801b031916600160401b6001600160401b038681169190910267ffffffffffffffff1916919091179086161790559295509093509150613450856136e9565b8160010160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555061347f85611a25565b600282018190556001820154604080518881526001600160401b038084166020830152600160401b90930490921690820152606081019190915261ffff8716907f7672014c79d6eb7b66523664177345f0729875e37653757b1cc1f70ba0f15798906080016133d3565b61ffff84166000818152600260205260408120911561367c57670de0b6b3a764000061351a6402540be40085614295565b61352491906142c2565b92506001600160701b0383111561354d5760405162461bcd60e51b8152600401610e409061446b565b508184156135d7578361359a5781546001600160701b0380831691161161357e5781546001600160701b0316613580565b805b825461359591906001600160701b03166144e9565b6135b0565b81546135b09082906001600160701b0316614509565b82546dffffffffffffffffffffffffffff19166001600160701b039190911617825561367c565b836136315781546001600160701b03808316600160701b909204161161360e578154600160701b90046001600160701b0316613610565b805b825461362c9190600160701b90046001600160701b03166144e9565b61364e565b815461364e908290600160701b90046001600160701b0316614509565b82546001600160701b0391909116600160701b026dffffffffffffffffffffffffffff60701b199091161782555b8154604080516001600160701b0380851682528084166020830152600160701b90930490921690820152841515908615159061ffff8916907f946036ec838a96db6089510038e2de4a934fb985f2ba9ef85dd4166f622db2339060600160405180910390a4505050505050565b600065ffffffffffff8211156137115760405162461bcd60e51b8152600401610e409061446b565b5090565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6040805160e081018252606080825260006020830181905292820183905281018290526080810182905260a0810182905260c081019190915290565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156137ce576137ce613795565b60405290565b604051601f8201601f191681016001600160401b03811182821017156137fc576137fc613795565b604052919050565b803561ffff8116811461381657600080fd5b919050565b803565ffffffffffff8116811461381657600080fd5b80356001600160401b038116811461381657600080fd5b80356001600160501b038116811461381657600080fd5b60006080828403121561387157600080fd5b604051608081018181106001600160401b038211171561389357613893613795565b6040529050806138a283613831565b81526138b060208401613831565b60208201526138c16040840161381b565b60408201526138d260608401613848565b60608201525092915050565b80151581146138ec57600080fd5b50565b8035613816816138de565b60008060008060008061012080888a03121561391557600080fd5b873596506020808901356001600160401b038082111561393457600080fd5b818b0191508b601f83011261394857600080fd5b81358181111561395a5761395a613795565b613968848260051b016137d4565b818152848101925090850283018401908d82111561398557600080fd5b928401925b81841015613a4b5785848f0312156139a25760008081fd5b6139aa6137ab565b6139b385613804565b81526139c086860161381b565b8682015260406139d1818701613831565b9082015260606139e2868201613831565b9082015260806139f3868201613831565b9082015260a0613a04868201613831565b9082015260c0613a15868201613831565b9082015260e0613a26868201613831565b90820152610100613a38868201613831565b908201528352928501929184019161398a565b809a50505050505050613a61886040890161385f565b935060c08701359250613a7660e088016138ef565b915061010087013590509295509295509295565b600080600060608486031215613a9f57600080fd5b613aa884613804565b9250602084013591506040840135613abf816138de565b809150509250925092565b60008083601f840112613adc57600080fd5b5081356001600160401b03811115613af357600080fd5b6020830191508360208260051b8501011115613b0e57600080fd5b9250929050565b60008060208385031215613b2857600080fd5b82356001600160401b03811115613b3e57600080fd5b613b4a85828601613aca565b90969095509350505050565b6001600160701b038082511683528060208301511660208401525063ffffffff604082015116604083015260608101516001600160401b038082166060850152806080840151166080850152505065ffffffffffff60a08201511660a083015260c0810151613bd060c08401826001600160501b03169052565b5060e090810151910152565b6020808252825182820181905260009190848201906040850190845b81811015613c1f57613c0b838551613b56565b928401926101009290920191600101613bf8565b50909695505050505050565b6001600160a01b03811681146138ec57600080fd5b600060c08284031215613c5257600080fd5b60405160c081018181106001600160401b0382111715613c7457613c74613795565b6040528235613c8281613c2b565b8082525060208301356020820152604083013560408201526060830135613ca8816138de565b60608201526080838101359082015260a0928301359281019290925250919050565b600060208284031215613cdc57600080fd5b611a1e82613804565b600060408284031215613cf757600080fd5b50919050565b60008060608385031215613d1057600080fd5b613d1983613804565b9150613d288460208501613ce5565b90509250929050565b60008060408385031215613d4457600080fd5b8235613d4f81613c2b565b91506020830135613d5f81613c2b565b809150509250929050565b600060208284031215613d7c57600080fd5b5035919050565b600060e08284031215613cf757600080fd5b600080600060608486031215613daa57600080fd5b83359250602084013591506040840135613abf816138de565b600080600060608486031215613dd857600080fd5b8335613de381613c2b565b95602085013595506040909401359392505050565b803563ffffffff8116811461381657600080fd5b600080600080600080600080610100898b031215613e2957600080fd5b613e3289613831565b9750613e4060208a01613831565b96506040890135955060608901359450613e5c60808a01613df8565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60008060408385031215613e9157600080fd5b50508035926020909101359150565b60008060608385031215613eb357600080fd5b82359150613d288460208501613ce5565b60008060408385031215613ed757600080fd5b613ee083613804565b946020939093013593505050565b805160e08084528151848201819052600092610100916020918201918388019190865b82811015613fa1578451805161ffff1685528281015165ffffffffffff16838601526040808201516001600160401b039081169187019190915260608083015182169087015260808083015182169087015260a08083015182169087015260c080830151821690870152888201518116898701529087015116868501529381019361012090930192600101613f11565b508781015163ffffffff1690890152506040808701516001600160401b039081169189019190915260608088015191821690890152935060808601519350613ff3608088018565ffffffffffff169052565b60a0860151935061400e60a088018565ffffffffffff169052565b60c086015160c08801528094505050505092915050565b602081526000611a1e6020830184613eee565b60008083601f84011261404a57600080fd5b5081356001600160401b0381111561406157600080fd5b6020830191508360208260061b8501011115613b0e57600080fd5b6000806000806040858703121561409257600080fd5b84356001600160401b03808211156140a957600080fd5b6140b588838901613aca565b909650945060208701359150808211156140ce57600080fd5b506140db87828801614038565b95989497509550505050565b60008060008060008060c0878903121561410057600080fd5b863561410b81613c2b565b95506020870135945060408701359350606087013592506080870135614130816138de565b915060a0870135614140816138de565b809150509295509295509295565b60008060006060848603121561416357600080fd5b833592506020840135614175816138de565b929592945050506040919091013590565b60008060006060848603121561419b57600080fd5b505081359360208301359350604090920135919050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561420757603f198886030184526141f5858351613eee565b945092850192908501906001016141d9565b5092979650505050505050565b6101008101610a838284613b56565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610a8357610a83614239565b80820180821115610a8357610a83614239565b6001600160401b038281168282160390808211156128fe576128fe614239565b8082028115828204841417610a8357610a83614239565b634e487b7160e01b600052601260045260246000fd5b6000826142d1576142d16142ac565b500490565b6000602082840312156142e857600080fd5b8151611a1e81613c2b565b6020808252600c908201526b4d414e414745525f4f4e4c5960a01b604082015260600190565b60006020828403121561432b57600080fd5b5051919050565b60006020828403121561434457600080fd5b8135611a1e816138de565b60006020828403121561436157600080fd5b8135611a1e81613c2b565b60006060828403121561437e57600080fd5b604051606081018181106001600160401b03821117156143a0576143a0613795565b8060405250825181526020830151602082015260408301516143c1816138de565b60408201529392505050565b81810360008312801583831316838312821617156128fe576128fe614239565b80820260008212600160ff1b8414161561440957614409614239565b8181058314821517610a8357610a83614239565b60008261442c5761442c6142ac565b600160ff1b82146000198414161561444657614446614239565b500590565b6001600160401b038181168382160190808211156128fe576128fe614239565b6020808252600890820152674f564552464c4f5760c01b604082015260600190565b6020808252600c908201526b0aea49e9c8ebe988a9c8ea8960a31b604082015260600190565b6000602082840312156144c557600080fd5b611a1e82613df8565b6000602082840312156144e057600080fd5b611a1e82613848565b6001600160701b038281168282160390808211156128fe576128fe614239565b6001600160701b038181168382160190808211156128fe576128fe61423956fea2646970667358221220455741ae1c097709f1a140a9bf7b2af337ce8f6034fa8f2aba6abd687682e4fa64736f6c63430008110033";
17
17
  static readonly abi: ({
18
18
  anonymous: boolean;
19
19
  inputs: {
@@ -48,9 +48,9 @@ const _abi = [
48
48
  inputs: [
49
49
  {
50
50
  indexed: true,
51
- internalType: "uint256",
51
+ internalType: "uint16",
52
52
  name: "groupIndex",
53
- type: "uint256",
53
+ type: "uint16",
54
54
  },
55
55
  {
56
56
  indexed: true,
@@ -91,9 +91,9 @@ const _abi = [
91
91
  inputs: [
92
92
  {
93
93
  indexed: true,
94
- internalType: "uint256",
94
+ internalType: "uint16",
95
95
  name: "groupIndex",
96
- type: "uint256",
96
+ type: "uint16",
97
97
  },
98
98
  {
99
99
  indexed: false,
@@ -172,15 +172,15 @@ const _abi = [
172
172
  },
173
173
  {
174
174
  indexed: true,
175
- internalType: "uint256",
175
+ internalType: "uint16",
176
176
  name: "prevGroupIndex",
177
- type: "uint256",
177
+ type: "uint16",
178
178
  },
179
179
  {
180
180
  indexed: true,
181
- internalType: "uint256",
181
+ internalType: "uint16",
182
182
  name: "newGroupIndex",
183
- type: "uint256",
183
+ type: "uint16",
184
184
  },
185
185
  ],
186
186
  name: "PairGroupUpdated",
@@ -1619,7 +1619,7 @@ const _abi = [
1619
1619
  type: "function",
1620
1620
  },
1621
1621
  ];
1622
- const _bytecode = "0x608060405234801561001057600080fd5b5061455f806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a55760003560e01c80638ee1caa7116100ef578063bdf391cc11610092578063bdf391cc146106b1578063ca90cda5146106d1578063ce67edfb146106e4578063cee4fa5a146106f7578063d62745051461070a578063e4d668671461072d578063f800ece914610740578063ff933fc41461075557600080fd5b80638ee1caa7146104cd5780638f694238146104e057806390895ff114610506578063979b0895146105af5780639d1798cb146105c2578063a4e95196146105d5578063b91ac788146105e8578063bcb788711461069e57600080fd5b80633d17a5d0116101575780633d17a5d014610391578063485cc955146103a65780634c67cfa0146103b9578063706faf3a146103e15780637b64112b146103f45780637cbd3c9814610407578063826616b514610481578063876ffd97146104ba57600080fd5b80630f8df7e0146101aa5780631346b0ff146101ea57806316fff074146102155780631ab5911a1461022e57806322005202146102595780632d28a817146102795780633979324d1461029a575b600080fd5b6101bd6101b83660046138fa565b610775565b604080516001600160401b0394851681529390921660208401521515908201526060015b60405180910390f35b6001546101fd906001600160a01b031681565b6040516001600160a01b0390911681526020016101e1565b6000546101fd906201000090046001600160a01b031681565b61024161023c366004613a8a565b6108f5565b6040516001600160401b0390911681526020016101e1565b61026c610267366004613b15565b610920565b6040516101e19190613bdc565b61028c610287366004613c40565b610a89565b6040519081526020016101e1565b6103266102a8366004613cca565b60026020819052600091825260409091208054600182015491909201546001600160701b0380841693600160701b810490911692600160e01b90910463ffffffff16916001600160401b0380831692600160401b810490911691600160801b820465ffffffffffff1691600160b01b90046001600160501b03169088565b604080516001600160701b03998a16815298909716602089015263ffffffff909516958701959095526001600160401b0392831660608701529116608085015265ffffffffffff1660a08401526001600160501b0390911660c083015260e0820152610100016101e1565b6103a461039f366004613cfd565b610d99565b005b6103a46103b4366004613d31565b610e57565b6103cc6103c7366004613d6a565b610ffe565b604080519283526020830191909152016101e1565b61028c6103ef366004613d83565b6110fb565b610241610402366004613d95565b611397565b61041a610415366004613dc3565b6113a6565b6040805183516001600160401b039081168252602080860151909116818301528483015165ffffffffffff16828401526060948501516001600160501b031694820194909452825160808201529282015160a08401520151151560c082015260e0016101e1565b61049461048f366004613e0c565b6114db565b604080516001600160401b039485168152939092166020840152908201526060016101e1565b61028c6104c8366004613e7e565b6115ce565b6104946104db366004613e7e565b611752565b6104f36104ee366004613d6a565b611902565b60405161ffff90911681526020016101e1565b61056e610514366004613dc3565b60046020908152600093845260408085208252928452828420905282529020546001600160401b0380821691600160401b810490911690600160801b810465ffffffffffff1690600160b01b90046001600160501b031684565b604080516001600160401b03958616815294909316602085015265ffffffffffff909116918301919091526001600160501b031660608201526080016101e1565b61028c6105bd366004613d6a565b611a25565b6103a46105d0366004613ea0565b611aca565b61028c6105e3366004613ec4565b611b7b565b6106526105f6366004613d6a565b6003602052600090815260409020600181015460029091015463ffffffff8216916001600160401b03600160201b8204811692600160601b83049091169165ffffffffffff600160a01b8204811692600160d01b909204169086565b6040805163ffffffff9790971687526001600160401b039586166020880152939094169285019290925265ffffffffffff908116606085015216608083015260a082015260c0016101e1565b6104946106ac366004613ec4565b611c49565b6106c46106bf366004613d6a565b611d93565b6040516101e19190614025565b6103a46106df36600461407c565b611ef3565b6103a46106f23660046140e7565b61201c565b6103a461070536600461407c565b61236e565b61071d61071836600461414e565b612481565b60405190151581526020016101e1565b61028c61073b366004614186565b6125a7565b6107486125e6565b6040516101e191906141b2565b610768610763366004613cca565b612905565b6040516101e19190614214565b600080600080888a8151811061078d5761078d614223565b60200260200101519050876040015165ffffffffffff16816020015165ffffffffffff16109150600189516107c2919061424f565b8a036107e95780516107d59086886108f5565b93506107e2878688611397565b9250610879565b6000896107f78c6001614262565b8151811061080757610807614223565b602002602001015190508280156108365750886040015165ffffffffffff16816020015165ffffffffffff1611155b15610849576000809450945050506108e9565b86610858578060a0015161085e565b80608001515b94508661086f578060e00151610875565b8060c001515b9350505b81156108a457602088015161088e9085614275565b885190945061089d9084614275565b92506108e7565b856108b35780606001516108b9565b80604001515b6108c39085614275565b9350856108d4578060e001516108da565b8060c001515b6108e49084614275565b92505b505b96509650969350505050565b60008060006109048686611c49565b5091509150836109145780610916565b815b9695505050505050565b60606000826001600160401b0381111561093c5761093c613795565b60405190808252806020026020018201604052801561097557816020015b610962613715565b81526020019060019003908161095a5790505b5090508260005b81811015610a7d576002600087878481811061099a5761099a614223565b90506020020160208101906109af9190613cca565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301526002015460e08201528351849083908110610a6a57610a6a614223565b602090810291909101015260010161097c565b50909150505b92915050565b80516001600160a01b03166000908152600460209081526040808320828501805185529083528184208286015185528352818420825160808101845290546001600160401b038082168352600160401b82041682860152600160801b810465ffffffffffff1682850152600160b01b90046001600160501b0316606082015290518452600383528184208054835181860281018601909452808452919385939290849084015b82821015610be0576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101610b2f565b5050505090506000610bf06129b6565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152909150825115610c615782600081518110610c5657610c56614223565b602002602001015190505b82511580610c865750836040015165ffffffffffff16816020015165ffffffffffff16115b15610cda578351835115610cb1578660600151610ca7578160e00151610cc4565b8160c00151610cc4565b610cc48760200151848960600151611397565b610cce9190614275565b6001600160401b031694505b82515b8015610d5d5760008080610d07610cf560018661424f565b888a8d602001518e606001518b610775565b925092509250816001600160401b0316836001600160401b031611610d2c5781610d2e565b825b610d41906001600160401b03168a614262565b98508015610d5157505050610d5d565b50505060001901610cdd565b5060646402540be400868860a001518960800151610d7b9190614295565b610d859190614295565b610d8f91906142c2565b61091691906142c2565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1091906142d6565b6001600160a01b0316336001600160a01b031614610e495760405162461bcd60e51b8152600401610e40906142f3565b60405180910390fd5b610e538282612a3c565b5050565b600054610100900460ff1615808015610e775750600054600160ff909116105b80610e915750303b158015610e91575060005460ff166001145b610ef45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e40565b6000805460ff191660011790558015610f17576000805461ff0019166101001790555b6001600160a01b03831615801590610f3757506001600160a01b03821615155b610f725760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f504152414d5360a01b6044820152606401610e40565b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b0319169184169190911790558015610ff9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b600080546040516328daca2160e01b8152600481018490526024810183905282916201000090046001600160a01b0316906328daca2190604401602060405180830381865afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110799190614319565b6000546040516328daca2160e01b81526004810186905260016024820152620100009091046001600160a01b0316906328daca2190604401602060405180830381865afa1580156110ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190614319565b91509150915091565b6001546000906001600160a01b0316636bcbe860606084013561112460a0860160808701614332565b8560a001358660c0013561119f6040518060c001604052808a600001602081019061114f919061434f565b6001600160a01b0316815260208b810135908201526040808c01359082015260600161118160a08c0160808d01614332565b151581526020018a60a0013581526020018a60c00135815250610a89565b6001546001600160a01b03166358f796bc6111bd60208c018c61434f565b604080516001600160e01b031960e085901b1681526001600160a01b03909216600483015260208d013560248301528c0135604482015260a08c01356064820152608401602060405180830381865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190614319565b61124c9190614262565b6001546001600160a01b031663f6c50efe61126a60208c018c61434f565b8b602001358c604001358d60800160208101906112879190614332565b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152602484019290925260448301521515606482015260a08c0135608482015260c08c013560a482015260c401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113179190614319565b6040516001600160e01b031960e089901b1681526004810196909652931515602486015260448501929092526064840152608483015260a482015260c4015b602060405180830381865afa158015611373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a839190614319565b60008060006109048686611752565b604080516080810182526000808252602080830182905282840182905260608084018390528451908101855282815290810182905292830152906001600160a01b0385811660008181526004602081815260408084208a85528252808420898552825292839020835160808101855290546001600160401b038082168352600160401b82041692820192909252600160801b820465ffffffffffff1681850152600160b01b9091046001600160501b031660608201526001549251632f6ac02760e11b815291820193909352602481018890526044810187905291945090911690635ed5804e90606401606060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d1919061436c565b9050935093915050565b60008060008486101561151e5760405162461bcd60e51b815260206004820152600b60248201526a212627a1a5afa7a92222a960a91b6044820152606401610e40565b83611529868861424f565b63ffffffff891661153a8b8d6143cd565b61154491906143ed565b61154e91906143ed565b611558919061441d565b905060008082121561158657611570826000196143ed565b8c9450905061157f818c61444b565b9250611598565b5080611592818d61444b565b93508a92505b6001600160401b038111156115bf5760405162461bcd60e51b8152600401610e409061446b565b50985098509895505050505050565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152859491938492849190879085015b828210156116b6576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611605565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c090910152905061174a61172e84611a25565b60c0830151608084015161073b9065ffffffffffff168761424f565b949350505050565b60008060008061176286866115ce565b6000878152600360209081526040808320815181546101009481028201850190935260e081018381529596509394909284928491879085015b8282101561184c576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161179b565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015290506000806118c489610ffe565b915091506118f083604001518460600151848487602001518d896080015165ffffffffffff168b6114db565b919b909a509098509650505050505050565b600081815260036020908152604080832080548251818502810185019093528083528493849084015b828210156119dc576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161192b565b5050505090508051600014611a1b5780600182516119fa919061424f565b81518110611a0a57611a0a614223565b602002602001015160000151611a1e565b60005b9392505050565b60008060029054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9d91906142d6565b6001600160a01b031663979b0895836040518263ffffffff1660e01b815260040161135691815260200190565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4191906142d6565b6001600160a01b0316336001600160a01b031614611b715760405162461bcd60e51b8152600401610e40906142f3565b610e538282612b8d565b61ffff8216600090815260026020818152604080842081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301529091015460e082015261174a611c2d84611a25565b60e083015160a084015161073b9065ffffffffffff168761424f565b600080600080611c598686611b7b565b61ffff871660009081526002602081815260409283902083516101008101855281546001600160701b03808216808452600160701b830490911694830194909452600160e01b900463ffffffff169481019490945260018101546001600160401b0380821660608701819052600160401b830490911660808701819052600160801b830465ffffffffffff1660a0880152600160b01b9092046001600160501b031660c0870152919093015460e08501529394509192611d83929091906402540be40090611d2f90670de0b6b3a7640000614295565b611d3991906142c2565b6402540be40085602001516001600160701b0316670de0b6b3a7640000611d609190614295565b611d6a91906142c2565b85604001518b8760a0015165ffffffffffff16896114db565b9199909850909650945050505050565b611d9b613759565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b82821015611e83576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611dd2565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015292915050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6a91906142d6565b6001600160a01b0316336001600160a01b031614611f9a5760405162461bcd60e51b8152600401610e40906142f3565b82818114611fba5760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761200c868683818110611fda57611fda614223565b9050602002016020810190611fef9190613cca565b85858481811061200157612001614223565b905060400201612a3c565b600101611fbd565b505050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906142d6565b6001600160a01b0316336001600160a01b0316146120e35760405162461bcd60e51b815260206004820152600e60248201526d43414c4c4241434b535f4f4e4c5960901b6044820152606401610e40565b60006120ee86611902565b905060006120fa6129b6565b905060008061210989846132c5565b9150915060008061211a86866133e4565b9150915061212a86888a8c6134e9565b8715612300576000604051806080016040528089612148578561214a565b865b6001600160401b03168152602001896121635783612165565b845b6001600160401b0316815260200161217c886136e9565b65ffffffffffff16815260200160006001600160501b0316815250905080600460008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008e815260200190815260200160002060008d815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555060608201518160000160166101000a8154816001600160501b0302191690836001600160501b031602179055509050508b8d6001600160a01b03167faa00ca5c6f282cb9f35953ecb0eaf8e39c95b7c8df114efac12162a85c085e608d846000015185602001516040516122f6939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a3505b8a8c6001600160a01b03167f66baa1848f5d4d14567e9bc527e5608778c86e512490d413cfafc9250327308f8c8b8b8e6040516123589493929190938452911515602084015215156040830152606082015260800190565b60405180910390a3505050505050505050505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e591906142d6565b6001600160a01b0316336001600160a01b0316146124155760405162461bcd60e51b8152600401610e40906142f3565b828181146124355760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761247986868381811061245557612455614223565b9050602002013585858481811061246e5761246e614223565b905060400201612b8d565b600101612438565b6000806002600061249187611902565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c0830181905260029091015460e0830152909150158061259e575060c08101516001600160501b0316670de0b6b3a764000061256c6402540be40086614295565b61257691906142c2565b85612585578260200151612588565b82515b6001600160701b031661259b9190614262565b11155b95945050505050565b60008082116125b757600161174a565b6125c1838561424f565b6125dc701d6329f1c35ca4bfabb9f561000000000084614295565b61174a91906142c2565b606060008060029054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906142d6565b6001600160a01b03166335b03c176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c191906142d6565b6001600160a01b031663b81b2b716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127229190614319565b90506000816001600160401b0381111561273e5761273e613795565b60405190808252806020026020018201604052801561277757816020015b612764613759565b81526020019060019003908161275c5790505b50905060005b828110156128fe576000818152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b8282101561286d576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e0860152920490911661010083015290835290920191016127bc565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015282518390839081106128eb576128eb614223565b602090810291909101015260010161277d565b5092915050565b61290d613715565b5061ffff1660009081526002602081815260409283902083516101008101855281546001600160701b038082168352600160701b82041693820193909352600160e01b90920463ffffffff169382019390935260018301546001600160401b038082166060840152600160401b8204166080830152600160801b810465ffffffffffff1660a0830152600160b01b90046001600160501b031660c082015291015460e082015290565b600061a4b14614806129ca575062066eed46145b15612a375760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a329190614319565b905090565b504390565b60008261ffff1611612a7a5760405162461bcd60e51b8152602060048201526007602482015266047524f55505f360cc1b6044820152606401610e40565b612a8b82612a866129b6565b6133e4565b50612a9b905060208201826144b3565b61ffff8316600090815260026020908152604091829020805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255612ae4919083019083016144ce565b61ffff8316600081815260026020908152604090912060010180546001600160501b0394909416600160b01b026001600160b01b0390941693909317909255907f13ca6bc9fec3180d22cd2b93572ce25b32400866cf7b0ac72d30dd699add054d90612b52908401846144b3565b612b6260408501602086016144ce565b6040805163ffffffff90931683526001600160501b0390911660208301520160405180910390a25050565b600082815260036020526040812090612ba584611902565b90506000612bb16129b6565b9050612bbd85826132c5565b505061ffff8216612bd16020860186613cca565b61ffff161461323757612be482826133e4565b50612bfd9050612bf76020860186613cca565b826133e4565b5050600080612c0b87610ffe565b91509150612c1d8460016000856134e9565b612c2a84600080846134e9565b612c43612c3a6020880188613cca565b600180856134e9565b612c5d612c536020880188613cca565b60006001846134e9565b6000600281612c6f60208a018a613cca565b61ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b0316815260200160028201548152505090506000600260008761ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b031681526020016002820154815250509050866000016040518061012001604052808a6000016020810190612f6f9190613cca565b61ffff168152602001612f81886136e9565b65ffffffffffff16815260200184606001516001600160401b0316815260200184608001516001600160401b0316815260200183606001516001600160401b0316815260200183608001516001600160401b031681526020018960010160049054906101000a90046001600160401b03166001600160401b0316815260200189600101600c9054906101000a90046001600160401b03166001600160401b0316815260200160006001600160401b0316815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548165ffffffffffff021916908365ffffffffffff16021790555060408201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160010160106101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160010160186101000a8154816001600160401b0302191690836001600160401b0316021790555050508760000160208101906131fc9190613cca565b61ffff168661ffff168a7fb101b018b2e391e04f2bf604b456a94e1586dbc9b45f9fe964dd24c82a61365860405160405180910390a4505050505b61324760408501602086016144b3565b60018401805463ffffffff191663ffffffff929092169190911790556132706020850185613cca565b61ffff16857fb952776dd028b221fddb797daabb4b4fde763e8273080fec7183df71ab84507b6132a660408801602089016144b3565b60405163ffffffff909116815260200160405180910390a35050505050565b60008060006132d48585611752565b60008881526003602052604090206001810180546001600160401b03808716600160201b026bffffffffffffffff0000000019918716600160601b0291909116640100000000600160a01b031990921691909117179055929550909350915061333c856136e9565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061336b85611a25565b600282018190556001820154604080518881526001600160401b03600160201b840481166020830152600160601b90930490921690820152606081019190915286907fdfb420060d958fae05b55542f1db8397c379c7b40461f5ccc47df0df8ecf0551906080015b60405180910390a250509250929050565b60008060006133f38585611c49565b61ffff881660009081526002602052604090206001810180546001600160801b031916600160401b6001600160401b038681169190910267ffffffffffffffff1916919091179086161790559295509093509150613450856136e9565b8160010160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555061347f85611a25565b600282018190556001820154604080518881526001600160401b038084166020830152600160401b90930490921690820152606081019190915261ffff8716907f7672014c79d6eb7b66523664177345f0729875e37653757b1cc1f70ba0f15798906080016133d3565b61ffff84166000818152600260205260408120911561367c57670de0b6b3a764000061351a6402540be40085614295565b61352491906142c2565b92506001600160701b0383111561354d5760405162461bcd60e51b8152600401610e409061446b565b508184156135d7578361359a5781546001600160701b0380831691161161357e5781546001600160701b0316613580565b805b825461359591906001600160701b03166144e9565b6135b0565b81546135b09082906001600160701b0316614509565b82546dffffffffffffffffffffffffffff19166001600160701b039190911617825561367c565b836136315781546001600160701b03808316600160701b909204161161360e578154600160701b90046001600160701b0316613610565b805b825461362c9190600160701b90046001600160701b03166144e9565b61364e565b815461364e908290600160701b90046001600160701b0316614509565b82546001600160701b0391909116600160701b026dffffffffffffffffffffffffffff60701b199091161782555b8154604080516001600160701b0380851682528084166020830152600160701b90930490921690820152841515908615159061ffff8916907fa1cf9ebd9d97fa9ed417a17269efd2afcf5e3a71f507b5d46a1de8311cf2ee3a9060600160405180910390a4505050505050565b600065ffffffffffff8211156137115760405162461bcd60e51b8152600401610e409061446b565b5090565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6040805160e081018252606080825260006020830181905292820183905281018290526080810182905260a0810182905260c081019190915290565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156137ce576137ce613795565b60405290565b604051601f8201601f191681016001600160401b03811182821017156137fc576137fc613795565b604052919050565b803561ffff8116811461381657600080fd5b919050565b803565ffffffffffff8116811461381657600080fd5b80356001600160401b038116811461381657600080fd5b80356001600160501b038116811461381657600080fd5b60006080828403121561387157600080fd5b604051608081018181106001600160401b038211171561389357613893613795565b6040529050806138a283613831565b81526138b060208401613831565b60208201526138c16040840161381b565b60408201526138d260608401613848565b60608201525092915050565b80151581146138ec57600080fd5b50565b8035613816816138de565b60008060008060008061012080888a03121561391557600080fd5b873596506020808901356001600160401b038082111561393457600080fd5b818b0191508b601f83011261394857600080fd5b81358181111561395a5761395a613795565b613968848260051b016137d4565b818152848101925090850283018401908d82111561398557600080fd5b928401925b81841015613a4b5785848f0312156139a25760008081fd5b6139aa6137ab565b6139b385613804565b81526139c086860161381b565b8682015260406139d1818701613831565b9082015260606139e2868201613831565b9082015260806139f3868201613831565b9082015260a0613a04868201613831565b9082015260c0613a15868201613831565b9082015260e0613a26868201613831565b90820152610100613a38868201613831565b908201528352928501929184019161398a565b809a50505050505050613a61886040890161385f565b935060c08701359250613a7660e088016138ef565b915061010087013590509295509295509295565b600080600060608486031215613a9f57600080fd5b613aa884613804565b9250602084013591506040840135613abf816138de565b809150509250925092565b60008083601f840112613adc57600080fd5b5081356001600160401b03811115613af357600080fd5b6020830191508360208260051b8501011115613b0e57600080fd5b9250929050565b60008060208385031215613b2857600080fd5b82356001600160401b03811115613b3e57600080fd5b613b4a85828601613aca565b90969095509350505050565b6001600160701b038082511683528060208301511660208401525063ffffffff604082015116604083015260608101516001600160401b038082166060850152806080840151166080850152505065ffffffffffff60a08201511660a083015260c0810151613bd060c08401826001600160501b03169052565b5060e090810151910152565b6020808252825182820181905260009190848201906040850190845b81811015613c1f57613c0b838551613b56565b928401926101009290920191600101613bf8565b50909695505050505050565b6001600160a01b03811681146138ec57600080fd5b600060c08284031215613c5257600080fd5b60405160c081018181106001600160401b0382111715613c7457613c74613795565b6040528235613c8281613c2b565b8082525060208301356020820152604083013560408201526060830135613ca8816138de565b60608201526080838101359082015260a0928301359281019290925250919050565b600060208284031215613cdc57600080fd5b611a1e82613804565b600060408284031215613cf757600080fd5b50919050565b60008060608385031215613d1057600080fd5b613d1983613804565b9150613d288460208501613ce5565b90509250929050565b60008060408385031215613d4457600080fd5b8235613d4f81613c2b565b91506020830135613d5f81613c2b565b809150509250929050565b600060208284031215613d7c57600080fd5b5035919050565b600060e08284031215613cf757600080fd5b600080600060608486031215613daa57600080fd5b83359250602084013591506040840135613abf816138de565b600080600060608486031215613dd857600080fd5b8335613de381613c2b565b95602085013595506040909401359392505050565b803563ffffffff8116811461381657600080fd5b600080600080600080600080610100898b031215613e2957600080fd5b613e3289613831565b9750613e4060208a01613831565b96506040890135955060608901359450613e5c60808a01613df8565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60008060408385031215613e9157600080fd5b50508035926020909101359150565b60008060608385031215613eb357600080fd5b82359150613d288460208501613ce5565b60008060408385031215613ed757600080fd5b613ee083613804565b946020939093013593505050565b805160e08084528151848201819052600092610100916020918201918388019190865b82811015613fa1578451805161ffff1685528281015165ffffffffffff16838601526040808201516001600160401b039081169187019190915260608083015182169087015260808083015182169087015260a08083015182169087015260c080830151821690870152888201518116898701529087015116868501529381019361012090930192600101613f11565b508781015163ffffffff1690890152506040808701516001600160401b039081169189019190915260608088015191821690890152935060808601519350613ff3608088018565ffffffffffff169052565b60a0860151935061400e60a088018565ffffffffffff169052565b60c086015160c08801528094505050505092915050565b602081526000611a1e6020830184613eee565b60008083601f84011261404a57600080fd5b5081356001600160401b0381111561406157600080fd5b6020830191508360208260061b8501011115613b0e57600080fd5b6000806000806040858703121561409257600080fd5b84356001600160401b03808211156140a957600080fd5b6140b588838901613aca565b909650945060208701359150808211156140ce57600080fd5b506140db87828801614038565b95989497509550505050565b60008060008060008060c0878903121561410057600080fd5b863561410b81613c2b565b95506020870135945060408701359350606087013592506080870135614130816138de565b915060a0870135614140816138de565b809150509295509295509295565b60008060006060848603121561416357600080fd5b833592506020840135614175816138de565b929592945050506040919091013590565b60008060006060848603121561419b57600080fd5b505081359360208301359350604090920135919050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561420757603f198886030184526141f5858351613eee565b945092850192908501906001016141d9565b5092979650505050505050565b6101008101610a838284613b56565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610a8357610a83614239565b80820180821115610a8357610a83614239565b6001600160401b038281168282160390808211156128fe576128fe614239565b8082028115828204841417610a8357610a83614239565b634e487b7160e01b600052601260045260246000fd5b6000826142d1576142d16142ac565b500490565b6000602082840312156142e857600080fd5b8151611a1e81613c2b565b6020808252600c908201526b4d414e414745525f4f4e4c5960a01b604082015260600190565b60006020828403121561432b57600080fd5b5051919050565b60006020828403121561434457600080fd5b8135611a1e816138de565b60006020828403121561436157600080fd5b8135611a1e81613c2b565b60006060828403121561437e57600080fd5b604051606081018181106001600160401b03821117156143a0576143a0613795565b8060405250825181526020830151602082015260408301516143c1816138de565b60408201529392505050565b81810360008312801583831316838312821617156128fe576128fe614239565b80820260008212600160ff1b8414161561440957614409614239565b8181058314821517610a8357610a83614239565b60008261442c5761442c6142ac565b600160ff1b82146000198414161561444657614446614239565b500590565b6001600160401b038181168382160190808211156128fe576128fe614239565b6020808252600890820152674f564552464c4f5760c01b604082015260600190565b6020808252600c908201526b0aea49e9c8ebe988a9c8ea8960a31b604082015260600190565b6000602082840312156144c557600080fd5b611a1e82613df8565b6000602082840312156144e057600080fd5b611a1e82613848565b6001600160701b038281168282160390808211156128fe576128fe614239565b6001600160701b038181168382160190808211156128fe576128fe61423956fea2646970667358221220d2221ebc29ff72b765f360775b7741c20b08902603256fb6b5a5178f4f81bb0464736f6c63430008110033";
1622
+ const _bytecode = "0x608060405234801561001057600080fd5b5061455f806100206000396000f3fe608060405234801561001057600080fd5b50600436106101a55760003560e01c80638ee1caa7116100ef578063bdf391cc11610092578063bdf391cc146106b1578063ca90cda5146106d1578063ce67edfb146106e4578063cee4fa5a146106f7578063d62745051461070a578063e4d668671461072d578063f800ece914610740578063ff933fc41461075557600080fd5b80638ee1caa7146104cd5780638f694238146104e057806390895ff114610506578063979b0895146105af5780639d1798cb146105c2578063a4e95196146105d5578063b91ac788146105e8578063bcb788711461069e57600080fd5b80633d17a5d0116101575780633d17a5d014610391578063485cc955146103a65780634c67cfa0146103b9578063706faf3a146103e15780637b64112b146103f45780637cbd3c9814610407578063826616b514610481578063876ffd97146104ba57600080fd5b80630f8df7e0146101aa5780631346b0ff146101ea57806316fff074146102155780631ab5911a1461022e57806322005202146102595780632d28a817146102795780633979324d1461029a575b600080fd5b6101bd6101b83660046138fa565b610775565b604080516001600160401b0394851681529390921660208401521515908201526060015b60405180910390f35b6001546101fd906001600160a01b031681565b6040516001600160a01b0390911681526020016101e1565b6000546101fd906201000090046001600160a01b031681565b61024161023c366004613a8a565b6108f5565b6040516001600160401b0390911681526020016101e1565b61026c610267366004613b15565b610920565b6040516101e19190613bdc565b61028c610287366004613c40565b610a89565b6040519081526020016101e1565b6103266102a8366004613cca565b60026020819052600091825260409091208054600182015491909201546001600160701b0380841693600160701b810490911692600160e01b90910463ffffffff16916001600160401b0380831692600160401b810490911691600160801b820465ffffffffffff1691600160b01b90046001600160501b03169088565b604080516001600160701b03998a16815298909716602089015263ffffffff909516958701959095526001600160401b0392831660608701529116608085015265ffffffffffff1660a08401526001600160501b0390911660c083015260e0820152610100016101e1565b6103a461039f366004613cfd565b610d99565b005b6103a46103b4366004613d31565b610e57565b6103cc6103c7366004613d6a565b610ffe565b604080519283526020830191909152016101e1565b61028c6103ef366004613d83565b6110fb565b610241610402366004613d95565b611397565b61041a610415366004613dc3565b6113a6565b6040805183516001600160401b039081168252602080860151909116818301528483015165ffffffffffff16828401526060948501516001600160501b031694820194909452825160808201529282015160a08401520151151560c082015260e0016101e1565b61049461048f366004613e0c565b6114db565b604080516001600160401b039485168152939092166020840152908201526060016101e1565b61028c6104c8366004613e7e565b6115ce565b6104946104db366004613e7e565b611752565b6104f36104ee366004613d6a565b611902565b60405161ffff90911681526020016101e1565b61056e610514366004613dc3565b60046020908152600093845260408085208252928452828420905282529020546001600160401b0380821691600160401b810490911690600160801b810465ffffffffffff1690600160b01b90046001600160501b031684565b604080516001600160401b03958616815294909316602085015265ffffffffffff909116918301919091526001600160501b031660608201526080016101e1565b61028c6105bd366004613d6a565b611a25565b6103a46105d0366004613ea0565b611aca565b61028c6105e3366004613ec4565b611b7b565b6106526105f6366004613d6a565b6003602052600090815260409020600181015460029091015463ffffffff8216916001600160401b03600160201b8204811692600160601b83049091169165ffffffffffff600160a01b8204811692600160d01b909204169086565b6040805163ffffffff9790971687526001600160401b039586166020880152939094169285019290925265ffffffffffff908116606085015216608083015260a082015260c0016101e1565b6104946106ac366004613ec4565b611c49565b6106c46106bf366004613d6a565b611d93565b6040516101e19190614025565b6103a46106df36600461407c565b611ef3565b6103a46106f23660046140e7565b61201c565b6103a461070536600461407c565b61236e565b61071d61071836600461414e565b612481565b60405190151581526020016101e1565b61028c61073b366004614186565b6125a7565b6107486125e6565b6040516101e191906141b2565b610768610763366004613cca565b612905565b6040516101e19190614214565b600080600080888a8151811061078d5761078d614223565b60200260200101519050876040015165ffffffffffff16816020015165ffffffffffff16109150600189516107c2919061424f565b8a036107e95780516107d59086886108f5565b93506107e2878688611397565b9250610879565b6000896107f78c6001614262565b8151811061080757610807614223565b602002602001015190508280156108365750886040015165ffffffffffff16816020015165ffffffffffff1611155b15610849576000809450945050506108e9565b86610858578060a0015161085e565b80608001515b94508661086f578060e00151610875565b8060c001515b9350505b81156108a457602088015161088e9085614275565b885190945061089d9084614275565b92506108e7565b856108b35780606001516108b9565b80604001515b6108c39085614275565b9350856108d4578060e001516108da565b8060c001515b6108e49084614275565b92505b505b96509650969350505050565b60008060006109048686611c49565b5091509150836109145780610916565b815b9695505050505050565b60606000826001600160401b0381111561093c5761093c613795565b60405190808252806020026020018201604052801561097557816020015b610962613715565b81526020019060019003908161095a5790505b5090508260005b81811015610a7d576002600087878481811061099a5761099a614223565b90506020020160208101906109af9190613cca565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301526002015460e08201528351849083908110610a6a57610a6a614223565b602090810291909101015260010161097c565b50909150505b92915050565b80516001600160a01b03166000908152600460209081526040808320828501805185529083528184208286015185528352818420825160808101845290546001600160401b038082168352600160401b82041682860152600160801b810465ffffffffffff1682850152600160b01b90046001600160501b0316606082015290518452600383528184208054835181860281018601909452808452919385939290849084015b82821015610be0576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101610b2f565b5050505090506000610bf06129b6565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152909150825115610c615782600081518110610c5657610c56614223565b602002602001015190505b82511580610c865750836040015165ffffffffffff16816020015165ffffffffffff16115b15610cda578351835115610cb1578660600151610ca7578160e00151610cc4565b8160c00151610cc4565b610cc48760200151848960600151611397565b610cce9190614275565b6001600160401b031694505b82515b8015610d5d5760008080610d07610cf560018661424f565b888a8d602001518e606001518b610775565b925092509250816001600160401b0316836001600160401b031611610d2c5781610d2e565b825b610d41906001600160401b03168a614262565b98508015610d5157505050610d5d565b50505060001901610cdd565b5060646402540be400868860a001518960800151610d7b9190614295565b610d859190614295565b610d8f91906142c2565b61091691906142c2565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1091906142d6565b6001600160a01b0316336001600160a01b031614610e495760405162461bcd60e51b8152600401610e40906142f3565b60405180910390fd5b610e538282612a3c565b5050565b600054610100900460ff1615808015610e775750600054600160ff909116105b80610e915750303b158015610e91575060005460ff166001145b610ef45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e40565b6000805460ff191660011790558015610f17576000805461ff0019166101001790555b6001600160a01b03831615801590610f3757506001600160a01b03821615155b610f725760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f504152414d5360a01b6044820152606401610e40565b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b0319169184169190911790558015610ff9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b600080546040516328daca2160e01b8152600481018490526024810183905282916201000090046001600160a01b0316906328daca2190604401602060405180830381865afa158015611055573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110799190614319565b6000546040516328daca2160e01b81526004810186905260016024820152620100009091046001600160a01b0316906328daca2190604401602060405180830381865afa1580156110ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f29190614319565b91509150915091565b6001546000906001600160a01b0316636bcbe860606084013561112460a0860160808701614332565b8560a001358660c0013561119f6040518060c001604052808a600001602081019061114f919061434f565b6001600160a01b0316815260208b810135908201526040808c01359082015260600161118160a08c0160808d01614332565b151581526020018a60a0013581526020018a60c00135815250610a89565b6001546001600160a01b03166358f796bc6111bd60208c018c61434f565b604080516001600160e01b031960e085901b1681526001600160a01b03909216600483015260208d013560248301528c0135604482015260a08c01356064820152608401602060405180830381865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190614319565b61124c9190614262565b6001546001600160a01b031663f6c50efe61126a60208c018c61434f565b8b602001358c604001358d60800160208101906112879190614332565b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152602484019290925260448301521515606482015260a08c0135608482015260c08c013560a482015260c401602060405180830381865afa1580156112f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113179190614319565b6040516001600160e01b031960e089901b1681526004810196909652931515602486015260448501929092526064840152608483015260a482015260c4015b602060405180830381865afa158015611373573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a839190614319565b60008060006109048686611752565b604080516080810182526000808252602080830182905282840182905260608084018390528451908101855282815290810182905292830152906001600160a01b0385811660008181526004602081815260408084208a85528252808420898552825292839020835160808101855290546001600160401b038082168352600160401b82041692820192909252600160801b820465ffffffffffff1681850152600160b01b9091046001600160501b031660608201526001549251632f6ac02760e11b815291820193909352602481018890526044810187905291945090911690635ed5804e90606401606060405180830381865afa1580156114ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d1919061436c565b9050935093915050565b60008060008486101561151e5760405162461bcd60e51b815260206004820152600b60248201526a212627a1a5afa7a92222a960a91b6044820152606401610e40565b83611529868861424f565b63ffffffff891661153a8b8d6143cd565b61154491906143ed565b61154e91906143ed565b611558919061441d565b905060008082121561158657611570826000196143ed565b8c9450905061157f818c61444b565b9250611598565b5080611592818d61444b565b93508a92505b6001600160401b038111156115bf5760405162461bcd60e51b8152600401610e409061446b565b50985098509895505050505050565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152859491938492849190879085015b828210156116b6576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611605565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c090910152905061174a61172e84611a25565b60c0830151608084015161073b9065ffffffffffff168761424f565b949350505050565b60008060008061176286866115ce565b6000878152600360209081526040808320815181546101009481028201850190935260e081018381529596509394909284928491879085015b8282101561184c576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161179b565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015290506000806118c489610ffe565b915091506118f083604001518460600151848487602001518d896080015165ffffffffffff168b6114db565b919b909a509098509650505050505050565b600081815260036020908152604080832080548251818502810185019093528083528493849084015b828210156119dc576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161192b565b5050505090508051600014611a1b5780600182516119fa919061424f565b81518110611a0a57611a0a614223565b602002602001015160000151611a1e565b60005b9392505050565b60008060029054906101000a90046001600160a01b03166001600160a01b031663fbfa77cf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9d91906142d6565b6001600160a01b031663979b0895836040518263ffffffff1660e01b815260040161135691815260200190565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4191906142d6565b6001600160a01b0316336001600160a01b031614611b715760405162461bcd60e51b8152600401610e40906142f3565b610e538282612b8d565b61ffff8216600090815260026020818152604080842081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301529091015460e082015261174a611c2d84611a25565b60e083015160a084015161073b9065ffffffffffff168761424f565b600080600080611c598686611b7b565b61ffff871660009081526002602081815260409283902083516101008101855281546001600160701b03808216808452600160701b830490911694830194909452600160e01b900463ffffffff169481019490945260018101546001600160401b0380821660608701819052600160401b830490911660808701819052600160801b830465ffffffffffff1660a0880152600160b01b9092046001600160501b031660c0870152919093015460e08501529394509192611d83929091906402540be40090611d2f90670de0b6b3a7640000614295565b611d3991906142c2565b6402540be40085602001516001600160701b0316670de0b6b3a7640000611d609190614295565b611d6a91906142c2565b85604001518b8760a0015165ffffffffffff16896114db565b9199909850909650945050505050565b611d9b613759565b6000828152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b82821015611e83576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101611dd2565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015292915050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6a91906142d6565b6001600160a01b0316336001600160a01b031614611f9a5760405162461bcd60e51b8152600401610e40906142f3565b82818114611fba5760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761200c868683818110611fda57611fda614223565b9050602002016020810190611fef9190613cca565b85858481811061200157612001614223565b905060400201612a3c565b600101611fbd565b505050505050565b600060029054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa15801561206e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209291906142d6565b6001600160a01b0316336001600160a01b0316146120e35760405162461bcd60e51b815260206004820152600e60248201526d43414c4c4241434b535f4f4e4c5960901b6044820152606401610e40565b60006120ee86611902565b905060006120fa6129b6565b905060008061210989846132c5565b9150915060008061211a86866133e4565b9150915061212a86888a8c6134e9565b8715612300576000604051806080016040528089612148578561214a565b865b6001600160401b03168152602001896121635783612165565b845b6001600160401b0316815260200161217c886136e9565b65ffffffffffff16815260200160006001600160501b0316815250905080600460008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008e815260200190815260200160002060008d815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555060608201518160000160166101000a8154816001600160501b0302191690836001600160501b031602179055509050508b8d6001600160a01b03167faa00ca5c6f282cb9f35953ecb0eaf8e39c95b7c8df114efac12162a85c085e608d846000015185602001516040516122f6939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a3505b8a8c6001600160a01b03167f66baa1848f5d4d14567e9bc527e5608778c86e512490d413cfafc9250327308f8c8b8b8e6040516123589493929190938452911515602084015215156040830152606082015260800190565b60405180910390a3505050505050505050505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e591906142d6565b6001600160a01b0316336001600160a01b0316146124155760405162461bcd60e51b8152600401610e40906142f3565b828181146124355760405162461bcd60e51b8152600401610e409061448d565b60005b818110156120145761247986868381811061245557612455614223565b9050602002013585858481811061246e5761246e614223565b905060400201612b8d565b600101612438565b6000806002600061249187611902565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c0830181905260029091015460e0830152909150158061259e575060c08101516001600160501b0316670de0b6b3a764000061256c6402540be40086614295565b61257691906142c2565b85612585578260200151612588565b82515b6001600160701b031661259b9190614262565b11155b95945050505050565b60008082116125b757600161174a565b6125c1838561424f565b6125dc701d6329f1c35ca4bfabb9f561000000000084614295565b61174a91906142c2565b606060008060029054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa15801561263c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061266091906142d6565b6001600160a01b03166335b03c176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126c191906142d6565b6001600160a01b031663b81b2b716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127229190614319565b90506000816001600160401b0381111561273e5761273e613795565b60405190808252806020026020018201604052801561277757816020015b612764613759565b81526020019060019003908161275c5790505b50905060005b828110156128fe576000818152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b8282101561286d576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e0860152920490911661010083015290835290920191016127bc565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015282518390839081106128eb576128eb614223565b602090810291909101015260010161277d565b5092915050565b61290d613715565b5061ffff1660009081526002602081815260409283902083516101008101855281546001600160701b038082168352600160701b82041693820193909352600160e01b90920463ffffffff169382019390935260018301546001600160401b038082166060840152600160401b8204166080830152600160801b810465ffffffffffff1660a0830152600160b01b90046001600160501b031660c082015291015460e082015290565b600061a4b14614806129ca575062066eed46145b15612a375760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a329190614319565b905090565b504390565b60008261ffff1611612a7a5760405162461bcd60e51b8152602060048201526007602482015266047524f55505f360cc1b6044820152606401610e40565b612a8b82612a866129b6565b6133e4565b50612a9b905060208201826144b3565b61ffff8316600090815260026020908152604091829020805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255612ae4919083019083016144ce565b61ffff8316600081815260026020908152604090912060010180546001600160501b0394909416600160b01b026001600160b01b0390941693909317909255907f88d808712bd68b7f7473d7173bcddf46451c2122e6b14ff487edb7384a063a0a90612b52908401846144b3565b612b6260408501602086016144ce565b6040805163ffffffff90931683526001600160501b0390911660208301520160405180910390a25050565b600082815260036020526040812090612ba584611902565b90506000612bb16129b6565b9050612bbd85826132c5565b505061ffff8216612bd16020860186613cca565b61ffff161461323757612be482826133e4565b50612bfd9050612bf76020860186613cca565b826133e4565b5050600080612c0b87610ffe565b91509150612c1d8460016000856134e9565b612c2a84600080846134e9565b612c43612c3a6020880188613cca565b600180856134e9565b612c5d612c536020880188613cca565b60006001846134e9565b6000600281612c6f60208a018a613cca565b61ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b0316815260200160028201548152505090506000600260008761ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b031681526020016002820154815250509050866000016040518061012001604052808a6000016020810190612f6f9190613cca565b61ffff168152602001612f81886136e9565b65ffffffffffff16815260200184606001516001600160401b0316815260200184608001516001600160401b0316815260200183606001516001600160401b0316815260200183608001516001600160401b031681526020018960010160049054906101000a90046001600160401b03166001600160401b0316815260200189600101600c9054906101000a90046001600160401b03166001600160401b0316815260200160006001600160401b0316815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548165ffffffffffff021916908365ffffffffffff16021790555060408201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160010160106101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160010160186101000a8154816001600160401b0302191690836001600160401b0316021790555050508760000160208101906131fc9190613cca565b61ffff168661ffff168a7f5beb7d73e1c3cd532d47c9e896931df26d9be450a833bd5fe1ace6bf5690d46860405160405180910390a4505050505b61324760408501602086016144b3565b60018401805463ffffffff191663ffffffff929092169190911790556132706020850185613cca565b61ffff16857fb952776dd028b221fddb797daabb4b4fde763e8273080fec7183df71ab84507b6132a660408801602089016144b3565b60405163ffffffff909116815260200160405180910390a35050505050565b60008060006132d48585611752565b60008881526003602052604090206001810180546001600160401b03808716600160201b026bffffffffffffffff0000000019918716600160601b0291909116640100000000600160a01b031990921691909117179055929550909350915061333c856136e9565b8160010160146101000a81548165ffffffffffff021916908365ffffffffffff16021790555061336b85611a25565b600282018190556001820154604080518881526001600160401b03600160201b840481166020830152600160601b90930490921690820152606081019190915286907fdfb420060d958fae05b55542f1db8397c379c7b40461f5ccc47df0df8ecf0551906080015b60405180910390a250509250929050565b60008060006133f38585611c49565b61ffff881660009081526002602052604090206001810180546001600160801b031916600160401b6001600160401b038681169190910267ffffffffffffffff1916919091179086161790559295509093509150613450856136e9565b8160010160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555061347f85611a25565b600282018190556001820154604080518881526001600160401b038084166020830152600160401b90930490921690820152606081019190915261ffff8716907f7672014c79d6eb7b66523664177345f0729875e37653757b1cc1f70ba0f15798906080016133d3565b61ffff84166000818152600260205260408120911561367c57670de0b6b3a764000061351a6402540be40085614295565b61352491906142c2565b92506001600160701b0383111561354d5760405162461bcd60e51b8152600401610e409061446b565b508184156135d7578361359a5781546001600160701b0380831691161161357e5781546001600160701b0316613580565b805b825461359591906001600160701b03166144e9565b6135b0565b81546135b09082906001600160701b0316614509565b82546dffffffffffffffffffffffffffff19166001600160701b039190911617825561367c565b836136315781546001600160701b03808316600160701b909204161161360e578154600160701b90046001600160701b0316613610565b805b825461362c9190600160701b90046001600160701b03166144e9565b61364e565b815461364e908290600160701b90046001600160701b0316614509565b82546001600160701b0391909116600160701b026dffffffffffffffffffffffffffff60701b199091161782555b8154604080516001600160701b0380851682528084166020830152600160701b90930490921690820152841515908615159061ffff8916907f946036ec838a96db6089510038e2de4a934fb985f2ba9ef85dd4166f622db2339060600160405180910390a4505050505050565b600065ffffffffffff8211156137115760405162461bcd60e51b8152600401610e409061446b565b5090565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6040805160e081018252606080825260006020830181905292820183905281018290526080810182905260a0810182905260c081019190915290565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156137ce576137ce613795565b60405290565b604051601f8201601f191681016001600160401b03811182821017156137fc576137fc613795565b604052919050565b803561ffff8116811461381657600080fd5b919050565b803565ffffffffffff8116811461381657600080fd5b80356001600160401b038116811461381657600080fd5b80356001600160501b038116811461381657600080fd5b60006080828403121561387157600080fd5b604051608081018181106001600160401b038211171561389357613893613795565b6040529050806138a283613831565b81526138b060208401613831565b60208201526138c16040840161381b565b60408201526138d260608401613848565b60608201525092915050565b80151581146138ec57600080fd5b50565b8035613816816138de565b60008060008060008061012080888a03121561391557600080fd5b873596506020808901356001600160401b038082111561393457600080fd5b818b0191508b601f83011261394857600080fd5b81358181111561395a5761395a613795565b613968848260051b016137d4565b818152848101925090850283018401908d82111561398557600080fd5b928401925b81841015613a4b5785848f0312156139a25760008081fd5b6139aa6137ab565b6139b385613804565b81526139c086860161381b565b8682015260406139d1818701613831565b9082015260606139e2868201613831565b9082015260806139f3868201613831565b9082015260a0613a04868201613831565b9082015260c0613a15868201613831565b9082015260e0613a26868201613831565b90820152610100613a38868201613831565b908201528352928501929184019161398a565b809a50505050505050613a61886040890161385f565b935060c08701359250613a7660e088016138ef565b915061010087013590509295509295509295565b600080600060608486031215613a9f57600080fd5b613aa884613804565b9250602084013591506040840135613abf816138de565b809150509250925092565b60008083601f840112613adc57600080fd5b5081356001600160401b03811115613af357600080fd5b6020830191508360208260051b8501011115613b0e57600080fd5b9250929050565b60008060208385031215613b2857600080fd5b82356001600160401b03811115613b3e57600080fd5b613b4a85828601613aca565b90969095509350505050565b6001600160701b038082511683528060208301511660208401525063ffffffff604082015116604083015260608101516001600160401b038082166060850152806080840151166080850152505065ffffffffffff60a08201511660a083015260c0810151613bd060c08401826001600160501b03169052565b5060e090810151910152565b6020808252825182820181905260009190848201906040850190845b81811015613c1f57613c0b838551613b56565b928401926101009290920191600101613bf8565b50909695505050505050565b6001600160a01b03811681146138ec57600080fd5b600060c08284031215613c5257600080fd5b60405160c081018181106001600160401b0382111715613c7457613c74613795565b6040528235613c8281613c2b565b8082525060208301356020820152604083013560408201526060830135613ca8816138de565b60608201526080838101359082015260a0928301359281019290925250919050565b600060208284031215613cdc57600080fd5b611a1e82613804565b600060408284031215613cf757600080fd5b50919050565b60008060608385031215613d1057600080fd5b613d1983613804565b9150613d288460208501613ce5565b90509250929050565b60008060408385031215613d4457600080fd5b8235613d4f81613c2b565b91506020830135613d5f81613c2b565b809150509250929050565b600060208284031215613d7c57600080fd5b5035919050565b600060e08284031215613cf757600080fd5b600080600060608486031215613daa57600080fd5b83359250602084013591506040840135613abf816138de565b600080600060608486031215613dd857600080fd5b8335613de381613c2b565b95602085013595506040909401359392505050565b803563ffffffff8116811461381657600080fd5b600080600080600080600080610100898b031215613e2957600080fd5b613e3289613831565b9750613e4060208a01613831565b96506040890135955060608901359450613e5c60808a01613df8565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60008060408385031215613e9157600080fd5b50508035926020909101359150565b60008060608385031215613eb357600080fd5b82359150613d288460208501613ce5565b60008060408385031215613ed757600080fd5b613ee083613804565b946020939093013593505050565b805160e08084528151848201819052600092610100916020918201918388019190865b82811015613fa1578451805161ffff1685528281015165ffffffffffff16838601526040808201516001600160401b039081169187019190915260608083015182169087015260808083015182169087015260a08083015182169087015260c080830151821690870152888201518116898701529087015116868501529381019361012090930192600101613f11565b508781015163ffffffff1690890152506040808701516001600160401b039081169189019190915260608088015191821690890152935060808601519350613ff3608088018565ffffffffffff169052565b60a0860151935061400e60a088018565ffffffffffff169052565b60c086015160c08801528094505050505092915050565b602081526000611a1e6020830184613eee565b60008083601f84011261404a57600080fd5b5081356001600160401b0381111561406157600080fd5b6020830191508360208260061b8501011115613b0e57600080fd5b6000806000806040858703121561409257600080fd5b84356001600160401b03808211156140a957600080fd5b6140b588838901613aca565b909650945060208701359150808211156140ce57600080fd5b506140db87828801614038565b95989497509550505050565b60008060008060008060c0878903121561410057600080fd5b863561410b81613c2b565b95506020870135945060408701359350606087013592506080870135614130816138de565b915060a0870135614140816138de565b809150509295509295509295565b60008060006060848603121561416357600080fd5b833592506020840135614175816138de565b929592945050506040919091013590565b60008060006060848603121561419b57600080fd5b505081359360208301359350604090920135919050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561420757603f198886030184526141f5858351613eee565b945092850192908501906001016141d9565b5092979650505050505050565b6101008101610a838284613b56565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610a8357610a83614239565b80820180821115610a8357610a83614239565b6001600160401b038281168282160390808211156128fe576128fe614239565b8082028115828204841417610a8357610a83614239565b634e487b7160e01b600052601260045260246000fd5b6000826142d1576142d16142ac565b500490565b6000602082840312156142e857600080fd5b8151611a1e81613c2b565b6020808252600c908201526b4d414e414745525f4f4e4c5960a01b604082015260600190565b60006020828403121561432b57600080fd5b5051919050565b60006020828403121561434457600080fd5b8135611a1e816138de565b60006020828403121561436157600080fd5b8135611a1e81613c2b565b60006060828403121561437e57600080fd5b604051606081018181106001600160401b03821117156143a0576143a0613795565b8060405250825181526020830151602082015260408301516143c1816138de565b60408201529392505050565b81810360008312801583831316838312821617156128fe576128fe614239565b80820260008212600160ff1b8414161561440957614409614239565b8181058314821517610a8357610a83614239565b60008261442c5761442c6142ac565b600160ff1b82146000198414161561444657614446614239565b500590565b6001600160401b038181168382160190808211156128fe576128fe614239565b6020808252600890820152674f564552464c4f5760c01b604082015260600190565b6020808252600c908201526b0aea49e9c8ebe988a9c8ea8960a31b604082015260600190565b6000602082840312156144c557600080fd5b611a1e82613df8565b6000602082840312156144e057600080fd5b611a1e82613848565b6001600160701b038281168282160390808211156128fe576128fe614239565b6001600160701b038181168382160190808211156128fe576128fe61423956fea2646970667358221220455741ae1c097709f1a140a9bf7b2af337ce8f6034fa8f2aba6abd687682e4fa64736f6c63430008110033";
1623
1623
  const isSuperArgs = (xs) => xs.length > 1;
1624
1624
  class GNSBorrowingFeesV6_3_2__factory extends ethers_1.ContractFactory {
1625
1625
  constructor(...args) {
@@ -0,0 +1,113 @@
1
+ import { Signer, ContractFactory, Overrides } from "ethers";
2
+ import type { Provider, TransactionRequest } from "@ethersproject/providers";
3
+ import type { PromiseOrValue } from "../common";
4
+ import type { GNSBorrowingFeesV6_4, GNSBorrowingFeesV6_4Interface } from "../GNSBorrowingFeesV6_4";
5
+ type GNSBorrowingFeesV6_4ConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
6
+ export declare class GNSBorrowingFeesV6_4__factory extends ContractFactory {
7
+ constructor(...args: GNSBorrowingFeesV6_4ConstructorParams);
8
+ deploy(overrides?: Overrides & {
9
+ from?: PromiseOrValue<string>;
10
+ }): Promise<GNSBorrowingFeesV6_4>;
11
+ getDeployTransaction(overrides?: Overrides & {
12
+ from?: PromiseOrValue<string>;
13
+ }): TransactionRequest;
14
+ attach(address: string): GNSBorrowingFeesV6_4;
15
+ connect(signer: Signer): GNSBorrowingFeesV6_4__factory;
16
+ static readonly bytecode = "0x608060405234801561001057600080fd5b50614a6d806100206000396000f3fe608060405234801561001057600080fd5b506004361061019a5760003560e01c806390895ff1116100e4578063bb219c7511610092578063bb219c75146106b5578063bcb7887114610739578063bdf391cc1461074c578063ce67edfb1461076d578063d627450514610780578063e3e98a75146107a3578063f800ece9146107e2578063ff933fc4146107f857600080fd5b806390895ff1146104da578063930842aa1461058357806393e0e53314610596578063b0baf5d4146105a9578063b2c9dd8b146105bc578063b91ac788146105cf578063b94ffa1c1461068557600080fd5b8063485cc9551161014c578063485cc955146103875780634c67cfa01461039c578063651501b5146103c4578063706faf3a146103d75780637b64112b146103ea5780637cbd3c98146103fd5780638ee1caa7146104775780638f694238146104b457600080fd5b80630f8df7e01461019f5780631346b0ff146101df57806316fff0741461020a5780631ab5911a14610223578063220052021461024e5780632d28a8171461026f5780633979324d14610290575b600080fd5b6101b26101ad366004613bea565b610819565b604080516001600160401b0394851681529390921660208401521515908201526060015b60405180910390f35b6001546101f2906001600160a01b031681565b6040516001600160a01b0390911681526020016101d6565b6000546101f2906201000090046001600160a01b031681565b610236610231366004613d7a565b610999565b6040516001600160401b0390911681526020016101d6565b61026161025c366004613dfe565b6109c6565b6040516101d6929190613ec5565b61028261027d366004613f68565b610bf2565b6040519081526020016101d6565b61031c61029e366004613ff2565b60026020819052600091825260409091208054600182015491909201546001600160701b0380841693600160701b810490911692600160e01b90910463ffffffff16916001600160401b0380831692600160401b810490911691600160801b820465ffffffffffff1691600160b01b90046001600160501b03169088565b604080516001600160701b03998a16815298909716602089015263ffffffff909516958701959095526001600160401b0392831660608701529116608085015265ffffffffffff1660a08401526001600160501b0390911660c083015260e0820152610100016101d6565b61039a61039536600461400d565b610f0c565b005b6103af6103aa366004614046565b6110b8565b604080519283526020830191909152016101d6565b61039a6103d236600461405f565b6111b5565b6102826103e53660046140f8565b6112d0565b6102366103f8366004614110565b611571565b61041061040b36600461413e565b611580565b6040805183516001600160401b039081168252602080860151909116818301528483015165ffffffffffff16828401526060948501516001600160501b031694820194909452825160808201529282015160a08401520151151560c082015260e0016101d6565b61048a610485366004614173565b6116b5565b604080516001600160401b03948516815292841660208401529216918101919091526060016101d6565b6104c76104c2366004614046565b6118e4565b60405161ffff90911681526020016101d6565b6105426104e836600461413e565b60046020908152600093845260408085208252928452828420905282529020546001600160401b0380821691600160401b810490911690600160801b810465ffffffffffff1690600160b01b90046001600160501b031684565b604080516001600160401b03958616815294909316602085015265ffffffffffff909116918301919091526001600160501b031660608201526080016101d6565b61039a610591366004614195565b611a06565b61048a6105a43660046141ff565b611abb565b61039a6105b7366004614299565b611c7c565b61039a6105ca3660046142c3565b611d2d565b6106396105dd366004614046565b6003602052600090815260409020600181015460029091015463ffffffff8216916001600160401b03600160201b8204811692600160601b83049091169165ffffffffffff600160a01b8204811692600160d01b909204169086565b6040805163ffffffff9790971687526001600160401b039586166020880152939094169285019290925265ffffffffffff908116606085015216608083015260a082015260c0016101d6565b610282610693366004614046565b600090815260056020526040902054600160901b90046001600160481b031690565b6107026106c3366004614046565b6005602052600090815260409020546001600160481b0380821691600160481b8104821691600160901b82041690600160d81b900464ffffffffff1684565b604080516001600160481b0395861681529385166020850152919093169082015264ffffffffff90911660608201526080016101d6565b61048a61074736600461434d565b611e4e565b61075f61075a366004614046565b611fed565b6040516101d69291906144ea565b61039a61077b36600461450c565b6121da565b61079361078e366004614573565b61252c565b60405190151581526020016101d6565b6107cb6107b1366004614046565b60066020526000908152604090205465ffffffffffff1681565b60405165ffffffffffff90911681526020016101d6565b6107ea612652565b6040516101d69291906145ab565b61080b610806366004613ff2565b612a63565b6040516101d6929190614650565b600080600080888a8151811061083157610831614675565b60200260200101519050876040015165ffffffffffff16816020015165ffffffffffff161091506001895161086691906146a1565b8a0361088d578051610879908688610999565b9350610886878688611571565b925061091d565b60008961089b8c60016146b4565b815181106108ab576108ab614675565b602002602001015190508280156108da5750886040015165ffffffffffff16816020015165ffffffffffff1611155b156108ed5760008094509450505061098d565b866108fc578060a00151610902565b80608001515b945086610913578060e00151610919565b8060c001515b9350505b811561094857602088015161093290856146c7565b885190945061094190846146c7565b925061098b565b8561095757806060015161095d565b80604001515b61096790856146c7565b935085610978578060e0015161097e565b8060c001515b61098890846146c7565b92505b505b96509650969350505050565b60008060006109a88686611e4e565b5091509150836109b857806109ba565b815b925050505b9392505050565b6060806000836001600160401b038111156109e3576109e3613a8d565b604051908082528060200260200182016040528015610a1c57816020015b610a09613a0d565b815260200190600190039081610a015790505b5090506000846001600160401b03811115610a3957610a39613a8d565b604051908082528060200260200182016040528015610a62578160200160208202803683370190505b5090508460005b81811015610be35760026000898984818110610a8757610a87614675565b9050602002016020810190610a9c9190613ff2565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c08301526002015460e08201528451859083908110610b5757610b57614675565b602002602001018190525060066000898984818110610b7857610b78614675565b9050602002016020810190610b8d9190613ff2565b61ffff16815260200190815260200160002060009054906101000a900465ffffffffffff16838281518110610bc457610bc4614675565b65ffffffffffff90921660209283029190910190910152600101610a69565b509193509150505b9250929050565b80516001600160a01b03166000908152600460209081526040808320828501805185529083528184208286015185528352818420825160808101845290546001600160401b038082168352600160401b82041682860152600160801b810465ffffffffffff1682850152600160b01b90046001600160501b0316606082015290518452600383528184208054835181860281018601909452808452919385939290849084015b82821015610d49576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101610c98565b5050505090506000610d59612b23565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152909150825115610dca5782600081518110610dbf57610dbf614675565b602002602001015190505b82511580610def5750836040015165ffffffffffff16816020015165ffffffffffff16115b15610e43578351835115610e1a578660600151610e10578160e00151610e2d565b8160c00151610e2d565b610e2d8760200151848960600151611571565b610e3791906146c7565b6001600160401b031694505b82515b8015610ec65760008080610e70610e5e6001866146a1565b888a8d602001518e606001518b610819565b925092509250816001600160401b0316836001600160401b031611610e955781610e97565b825b610eaa906001600160401b03168a6146b4565b98508015610eba57505050610ec6565b50505060001901610e46565b5060646402540be400868860a001518960800151610ee491906146ee565b610eee91906146ee565b610ef89190614705565b610f029190614705565b9695505050505050565b600054610100900460ff1615808015610f2c5750600054600160ff909116105b80610f465750303b158015610f46575060005460ff166001145b610fae5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610fd1576000805461ff0019166101001790555b6001600160a01b03831615801590610ff157506001600160a01b03821615155b61102c5760405162461bcd60e51b815260206004820152600c60248201526b57524f4e475f504152414d5360a01b6044820152606401610fa5565b6000805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600180546001600160a01b03191691841691909117905580156110b3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b600080546040516328daca2160e01b8152600481018490526024810183905282916201000090046001600160a01b0316906328daca2190604401602060405180830381865afa15801561110f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111339190614727565b6000546040516328daca2160e01b81526004810186905260016024820152620100009091046001600160a01b0316906328daca2190604401602060405180830381865afa158015611188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ac9190614727565b91509150915091565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611208573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122c9190614740565b6001600160a01b0316336001600160a01b03161461125c5760405162461bcd60e51b8152600401610fa59061475d565b8281811461127c5760405162461bcd60e51b8152600401610fa590614783565b60005b818110156112c8576112c086868381811061129c5761129c614675565b905060200201358585848181106112b5576112b5614675565b905060800201612ba9565b60010161127f565b505050505050565b6001546000906001600160a01b0316636bcbe86060608401356112f960a08601608087016147a9565b8560a001358660c001356113746040518060c001604052808a600001602081019061132491906147c6565b6001600160a01b0316815260208b810135908201526040808c01359082015260600161135660a08c0160808d016147a9565b151581526020018a60a0013581526020018a60c00135815250610bf2565b6001546001600160a01b03166358f796bc61139260208c018c6147c6565b604080516001600160e01b031960e085901b1681526001600160a01b03909216600483015260208d013560248301528c0135604482015260a08c01356064820152608401602060405180830381865afa1580156113f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114179190614727565b61142191906146b4565b6001546001600160a01b031663f6c50efe61143f60208c018c6147c6565b8b602001358c604001358d608001602081019061145c91906147a9565b6040516001600160e01b031960e087901b1681526001600160a01b039094166004850152602484019290925260448301521515606482015260a08c0135608482015260c08c013560a482015260c401602060405180830381865afa1580156114c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ec9190614727565b6040516001600160e01b031960e089901b1681526004810196909652931515602486015260448501929092526064840152608483015260a482015260c401602060405180830381865afa158015611547573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061156b9190614727565b92915050565b60008060006109a886866116b5565b604080516080810182526000808252602080830182905282840182905260608084018390528451908101855282815290810182905292830152906001600160a01b0385811660008181526004602081815260408084208a85528252808420898552825292839020835160808101855290546001600160401b038082168352600160401b82041692820192909252600160801b820465ffffffffffff1681850152600160b01b9091046001600160501b031660608201526001549251632f6ac02760e11b815291820193909352602481018890526044810187905291945090911690635ed5804e90606401606060405180830381865afa158015611687573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ab91906147e3565b9050935093915050565b6000828152600360209081526040808320815181546101009481028201850190935260e0810183815285948594859492849290918491879085015b828210156117a1576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e0860152920490911661010083015290835290920191016116f0565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c0909101529050600080611819886110b8565b915091506118d360405180610120016040528085604001516001600160401b0316815260200185606001516001600160401b03168152602001848152602001838152602001856020015163ffffffff168152602001898152602001856080015165ffffffffffff168152602001600560008c815260200190815260200160002060000160129054906101000a90046001600160481b03166001600160481b031681526020018560a0015165ffffffffffff16815250611abb565b919a90995090975095505050505050565b600081815260036020908152604080832080548251818502810185019093528083528493849084015b828210156119be576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e08601529204909116610100830152908352909201910161190d565b50505050905080516000146119fd5780600182516119dc91906146a1565b815181106119ec576119ec614675565b6020026020010151600001516109bf565b60009392505050565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a7d9190614740565b6001600160a01b0316336001600160a01b031614611aad5760405162461bcd60e51b8152600401610fa59061475d565b611ab782826133fe565b5050565b60008060008360c001518460a001511015611b065760405162461bcd60e51b815260206004820152600b60248201526a212627a1a5afa7a92222a960a91b6044820152606401610fa5565b6060840151604085015110600081611b315785606001518660400151611b2c91906146a1565b611b45565b85604001518660600151611b4591906146a1565b90506000808760e001516001600160481b0316118015611b725750600087610100015165ffffffffffff16115b611b7d576000611c09565b610100870151611b9590670de0b6b3a7640000614928565b61010088015160e08901516001600160481b0316611bb8856402540be4006146ee565b611bc29190614705565b611bcc9190614928565b886080015163ffffffff168960c001518a60a00151611beb91906146a1565b611bf591906146ee565b611bff91906146ee565b611c099190614705565b90506001600160401b03811115611c325760405162461bcd60e51b8152600401610fa59061493c565b80935082611c4c578651611c4790859061495e565b611c4f565b86515b955082611c60578660200151611c70565b838760200151611c70919061495e565b94505050509193909250565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ccf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf39190614740565b6001600160a01b0316336001600160a01b031614611d235760405162461bcd60e51b8152600401610fa59061475d565b611ab78282612ba9565b600160009054906101000a90046001600160a01b03166001600160a01b031663481c6a756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da49190614740565b6001600160a01b0316336001600160a01b031614611dd45760405162461bcd60e51b8152600401610fa59061475d565b82818114611df45760405162461bcd60e51b8152600401610fa590614783565b60005b818110156112c857611e46868683818110611e1457611e14614675565b9050602002016020810190611e299190613ff2565b858584818110611e3b57611e3b614675565b9050606002016133fe565b600101611df7565b61ffff8216600090815260026020818152604080842081516101008101835281546001600160701b038082168352600160701b8204811683870152600160e01b90910463ffffffff168285015260018301546001600160401b0380821660608501908152600160401b8304821660808601908152600160801b840465ffffffffffff1660a0870152600160b01b9093046001600160501b031660c0860152949097015460e0840152845161012081018652935187168452519095169382019390935282518594859493611fde9392908301916402540be40091611f3a9116670de0b6b3a76400006146ee565b611f449190614705565b81526020016402540be40084602001516001600160701b0316670de0b6b3a7640000611f7091906146ee565b611f7a9190614705565b815260408085015163ffffffff166020808401919091528183018a905260a08087015165ffffffffffff908116606086015260c08801516001600160481b0316608086015261ffff8d16600090815260069093529290912054909116910152611abb565b91989097509095509350505050565b611ff5613a51565b6040805160808101825260008082526020808301829052828401829052606083018290528582526003815283822060058252848320855182546101009481028201850190975260e0810187815295969295919490938693859392859285015b82821015612105576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101612054565b50505090825250600182015463ffffffff8116602080840191909152600160201b82046001600160401b03908116604080860191909152600160601b8404909116606080860191909152600160a01b840465ffffffffffff908116608080880191909152600160d01b9095041660a086015260029095015460c0909401939093528251918201835294546001600160481b038082168352600160481b8204811696830196909652600160901b810490951691810191909152600160d81b90930464ffffffffff16908301529590945092505050565b600060029054906101000a90046001600160a01b03166001600160a01b031662b127836040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122509190614740565b6001600160a01b0316336001600160a01b0316146122a15760405162461bcd60e51b815260206004820152600e60248201526d43414c4c4241434b535f4f4e4c5960901b6044820152606401610fa5565b60006122ac866118e4565b905060006122b8612b23565b90506000806122c789846135f0565b915091506000806122d886866136f4565b915091506122e886888a8c6137e1565b87156124be5760006040518060800160405280896123065785612308565b865b6001600160401b03168152602001896123215783612323565b845b6001600160401b0316815260200161233a886139e1565b65ffffffffffff16815260200160006001600160501b0316815250905080600460008f6001600160a01b03166001600160a01b0316815260200190815260200160002060008e815260200190815260200160002060008d815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160106101000a81548165ffffffffffff021916908365ffffffffffff16021790555060608201518160000160166101000a8154816001600160501b0302191690836001600160501b031602179055509050508b8d6001600160a01b03167faa00ca5c6f282cb9f35953ecb0eaf8e39c95b7c8df114efac12162a85c085e608d846000015185602001516040516124b4939291909283526001600160401b03918216602084015216604082015260600190565b60405180910390a3505b8a8c6001600160a01b03167f66baa1848f5d4d14567e9bc527e5608778c86e512490d413cfafc9250327308f8c8b8b8e6040516125169493929190938452911515602084015215156040830152606082015260800190565b60405180910390a3505050505050505050505050565b6000806002600061253c876118e4565b61ffff168152602080820192909252604090810160002081516101008101835281546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018101546001600160401b038082166060850152600160401b8204166080840152600160801b810465ffffffffffff1660a0840152600160b01b90046001600160501b031660c0830181905260029091015460e08301529091501580612649575060c08101516001600160501b0316670de0b6b3a76400006126176402540be400866146ee565b6126219190614705565b85612630578260200151612633565b82515b6001600160701b031661264691906146b4565b11155b95945050505050565b60608060008060029054906101000a90046001600160a01b03166001600160a01b0316633078fff56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126cd9190614740565b6001600160a01b03166335b03c176040518163ffffffff1660e01b8152600401602060405180830381865afa15801561270a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272e9190614740565b6001600160a01b031663b81b2b716040518163ffffffff1660e01b8152600401602060405180830381865afa15801561276b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278f9190614727565b90506000816001600160401b038111156127ab576127ab613a8d565b6040519080825280602002602001820160405280156127e457816020015b6127d1613a51565b8152602001906001900390816127c95790505b5090506000826001600160401b0381111561280157612801613a8d565b60405190808252806020026020018201604052801561285357816020015b60408051608081018252600080825260208083018290529282018190526060820152825260001990920191018161281f5790505b50905060005b83811015612a58576000818152600360209081526040808320815181546101009481028201850190935260e08101838152909491938593919285929185015b82821015612949576000848152602090819020604080516101208101825260028602909201805461ffff8116845265ffffffffffff62010000820416848601526001600160401b03600160401b808304821694860194909452600160801b80830482166060870152600160c01b928390048216608087015260019384015480831660a0880152948504821660c08701528404811660e086015292049091166101008301529083529092019101612898565b50505090825250600182015463ffffffff811660208301526001600160401b03600160201b820481166040840152600160601b820416606083015265ffffffffffff600160a01b820481166080840152600160d01b9091041660a082015260029091015460c09091015283518490839081106129c7576129c7614675565b602090810291909101810191909152600082815260058252604090819020815160808101835290546001600160481b038082168352600160481b8204811694830194909452600160901b810490931691810191909152600160d81b90910464ffffffffff1660608201528251839083908110612a4557612a45614675565b6020908102919091010152600101612859565b509094909350915050565b612a6b613a0d565b5061ffff16600090815260026020818152604080842060068352938190205481516101008101835285546001600160701b038082168352600160701b82041694820194909452600160e01b90930463ffffffff169183019190915260018401546001600160401b038082166060850152600160401b820416608084015265ffffffffffff600160801b8204811660a0850152600160b01b9091046001600160501b031660c0840152939092015460e082015292911690565b600061a4b1461480612b37575062066eed46145b15612ba45760646001600160a01b031663a3b1b31d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9f9190614727565b905090565b504390565b6001612bbb606083016040840161497e565b65ffffffffffff1610158015612be957506003612bde606083016040840161497e565b65ffffffffffff1611155b612c055760405162461bcd60e51b8152600401610fa590614999565b600082815260036020526040812090612c1d846118e4565b90506000612c29612b23565b9050612c3585826135f0565b505061ffff8216612c496020860186613ff2565b61ffff16146132af57612c5c82826136f4565b50612c759050612c6f6020860186613ff2565b826136f4565b5050600080612c83876110b8565b91509150612c958460016000856137e1565b612ca284600080846137e1565b612cbb612cb26020880188613ff2565b600180856137e1565b612cd5612ccb6020880188613ff2565b60006001846137e1565b6000600281612ce760208a018a613ff2565b61ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b0316815260200160028201548152505090506000600260008761ffff1661ffff168152602001908152602001600020604051806101000160405290816000820160009054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201600e9054906101000a90046001600160701b03166001600160701b03166001600160701b0316815260200160008201601c9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160009054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160089054906101000a90046001600160401b03166001600160401b03166001600160401b031681526020016001820160109054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160169054906101000a90046001600160501b03166001600160501b03166001600160501b031681526020016002820154815250509050866000016040518061012001604052808a6000016020810190612fe79190613ff2565b61ffff168152602001612ff9886139e1565b65ffffffffffff16815260200184606001516001600160401b0316815260200184608001516001600160401b0316815260200183606001516001600160401b0316815260200183608001516001600160401b031681526020018960010160049054906101000a90046001600160401b03166001600160401b0316815260200189600101600c9054906101000a90046001600160401b03166001600160401b0316815260200160006001600160401b0316815250908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160000160026101000a81548165ffffffffffff021916908365ffffffffffff16021790555060408201518160000160086101000a8154816001600160401b0302191690836001600160401b0316021790555060608201518160000160106101000a8154816001600160401b0302191690836001600160401b0316021790555060808201518160000160186101000a8154816001600160401b0302191690836001600160401b0316021790555060a08201518160010160006101000a8154816001600160401b0302191690836001600160401b0316021790555060c08201518160010160086101000a8154816001600160401b0302191690836001600160401b0316021790555060e08201518160010160106101000a8154816001600160401b0302191690836001600160401b031602179055506101008201518160010160186101000a8154816001600160401b0302191690836001600160401b0316021790555050508760000160208101906132749190613ff2565b61ffff168661ffff168a7f5beb7d73e1c3cd532d47c9e896931df26d9be450a833bd5fe1ace6bf5690d46860405160405180910390a4505050505b6132bf60408501602086016149c1565b60018401805463ffffffff191663ffffffff929092169190911790556132eb606085016040860161497e565b60018401805465ffffffffffff92909216600160d01b026001600160d01b0390921691909117905561332360808501606086016149dc565b600086815260056020908152604090912080546001600160481b0393909316600160901b0268ffffffffffffffffff60901b199093169290921790915561336c90850185613ff2565b61ffff16857f1caa8de744ea74fb9e0c2f32b7fed3b30ea426105a6b73926010be6372458ef46133a260408801602089016149c1565b6133b26060890160408a0161497e565b6133c260808a0160608b016149dc565b6040805163ffffffff909416845265ffffffffffff90921660208401526001600160481b03169082015260600160405180910390a35050505050565b60008261ffff161161343c5760405162461bcd60e51b8152602060048201526007602482015266047524f55505f360cc1b6044820152606401610fa5565b600161344e606083016040840161497e565b65ffffffffffff161015801561347c57506003613471606083016040840161497e565b65ffffffffffff1611155b6134985760405162461bcd60e51b8152600401610fa590614999565b6134a9826134a4612b23565b6136f4565b505061ffff82166000908152600260209081526040909120906134ce908301836149c1565b815463ffffffff91909116600160e01b026001600160e01b039091161781556134fd60408301602084016149dc565b6001820180546001600160b01b03166001600160481b0392909216600160b01b02919091179055613534606083016040840161497e565b61ffff84166000818152600660209081526040909120805465ffffffffffff191665ffffffffffff9490941693909317909255907ffe3f382c07994321b091a508fb27d2cec41f6dfa9f52b97a01af5b992fdc168190613596908501856149c1565b6135a660408601602087016149dc565b6135b6606087016040880161497e565b6040805163ffffffff90941684526001600160481b03909216602084015265ffffffffffff169082015260600160405180910390a2505050565b6000806135fd84846116b5565b5060008681526003602052604090206001810180546001600160401b03808616600160201b026bffffffffffffffff0000000019918616600160601b0291909116640100000000600160a01b0319909216919091171790559193509150613663846139e1565b60018201805465ffffffffffff92909216600160a01b0265ffffffffffff60a01b199092169190911790819055604080518681526001600160401b03600160201b840481166020830152600160601b9093049092169082015285907ffc346088168e874385f54275cfc143d52a459a0fdc016c1bb6c237097ef27bf4906060015b60405180910390a2509250929050565b6000806137018484611e4e565b5061ffff861660009081526002602052604090206001810180546001600160801b031916600160401b6001600160401b038581169190910267ffffffffffffffff191691909117908516179055919350915061375c846139e1565b60018201805465ffffffffffff92909216600160801b0265ffffffffffff60801b198316811791829055604080518881526001600160401b03928316948316949094176020850152600160401b909204169082015261ffff8616907fd246da22fc6064e2fae4f4affdb9425eac12bebcf4f08fb3892f08480513752e906060016136e4565b61ffff84166000818152600260205260408120911561397457670de0b6b3a76400006138126402540be400856146ee565b61381c9190614705565b92506001600160701b038311156138455760405162461bcd60e51b8152600401610fa59061493c565b508184156138cf57836138925781546001600160701b038083169116116138765781546001600160701b0316613878565b805b825461388d91906001600160701b03166149f7565b6138a8565b81546138a89082906001600160701b0316614a17565b82546dffffffffffffffffffffffffffff19166001600160701b0391909116178255613974565b836139295781546001600160701b03808316600160701b9092041611613906578154600160701b90046001600160701b0316613908565b805b82546139249190600160701b90046001600160701b03166149f7565b613946565b8154613946908290600160701b90046001600160701b0316614a17565b82546001600160701b0391909116600160701b026dffffffffffffffffffffffffffff60701b199091161782555b8154604080516001600160701b0380851682528084166020830152600160701b90930490921690820152841515908615159061ffff8916907f946036ec838a96db6089510038e2de4a934fb985f2ba9ef85dd4166f622db2339060600160405180910390a4505050505050565b600065ffffffffffff821115613a095760405162461bcd60e51b8152600401610fa59061493c565b5090565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b6040805160e081018252606080825260006020830181905292820183905281018290526080810182905260a0810182905260c081019190915290565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715613ac657613ac6613a8d565b60405290565b604051601f8201601f191681016001600160401b0381118282101715613af457613af4613a8d565b604052919050565b803561ffff81168114613b0e57600080fd5b919050565b803565ffffffffffff81168114613b0e57600080fd5b80356001600160401b0381168114613b0e57600080fd5b600060808284031215613b5257600080fd5b604051608081018181106001600160401b0382111715613b7457613b74613a8d565b604052905080613b8383613b29565b8152613b9160208401613b29565b6020820152613ba260408401613b13565b604082015260608301356001600160501b0381168114613bc157600080fd5b6060919091015292915050565b8015158114613bdc57600080fd5b50565b8035613b0e81613bce565b60008060008060008061012080888a031215613c0557600080fd5b873596506020808901356001600160401b0380821115613c2457600080fd5b818b0191508b601f830112613c3857600080fd5b813581811115613c4a57613c4a613a8d565b613c58848260051b01613acc565b818152848101925090850283018401908d821115613c7557600080fd5b928401925b81841015613d3b5785848f031215613c925760008081fd5b613c9a613aa3565b613ca385613afc565b8152613cb0868601613b13565b868201526040613cc1818701613b29565b908201526060613cd2868201613b29565b908201526080613ce3868201613b29565b9082015260a0613cf4868201613b29565b9082015260c0613d05868201613b29565b9082015260e0613d16868201613b29565b90820152610100613d28868201613b29565b9082015283529285019291840191613c7a565b809a50505050505050613d518860408901613b40565b935060c08701359250613d6660e08801613bdf565b915061010087013590509295509295509295565b600080600060608486031215613d8f57600080fd5b613d9884613afc565b9250602084013591506040840135613daf81613bce565b809150509250925092565b60008083601f840112613dcc57600080fd5b5081356001600160401b03811115613de357600080fd5b6020830191508360208260051b8501011115610beb57600080fd5b60008060208385031215613e1157600080fd5b82356001600160401b03811115613e2757600080fd5b613e3385828601613dba565b90969095509350505050565b6001600160701b038082511683528060208301511660208401525063ffffffff604082015116604083015260608101516001600160401b038082166060850152806080840151166080850152505065ffffffffffff60a08201511660a083015260c0810151613eb960c08401826001600160501b03169052565b5060e090810151910152565b604080825283519082018190526000906020906060840190828701845b82811015613f0957613ef5848351613e3f565b610100939093019290840190600101613ee2565b5050508381038285015284518082528583019183019060005b81811015613f4657835165ffffffffffff1683529284019291840191600101613f22565b5090979650505050505050565b6001600160a01b0381168114613bdc57600080fd5b600060c08284031215613f7a57600080fd5b60405160c081018181106001600160401b0382111715613f9c57613f9c613a8d565b6040528235613faa81613f53565b8082525060208301356020820152604083013560408201526060830135613fd081613bce565b60608201526080838101359082015260a0928301359281019290925250919050565b60006020828403121561400457600080fd5b6109bf82613afc565b6000806040838503121561402057600080fd5b823561402b81613f53565b9150602083013561403b81613f53565b809150509250929050565b60006020828403121561405857600080fd5b5035919050565b6000806000806040858703121561407557600080fd5b84356001600160401b038082111561408c57600080fd5b61409888838901613dba565b909650945060208701359150808211156140b157600080fd5b818701915087601f8301126140c557600080fd5b8135818111156140d457600080fd5b8860208260071b85010111156140e957600080fd5b95989497505060200194505050565b600060e0828403121561410a57600080fd5b50919050565b60008060006060848603121561412557600080fd5b83359250602084013591506040840135613daf81613bce565b60008060006060848603121561415357600080fd5b833561415e81613f53565b95602085013595506040909401359392505050565b6000806040838503121561418657600080fd5b50508035926020909101359150565b60008082840360808112156141a957600080fd5b6141b284613afc565b92506060601f19820112156141c657600080fd5b506020830190509250929050565b803563ffffffff81168114613b0e57600080fd5b80356001600160481b0381168114613b0e57600080fd5b6000610120828403121561421257600080fd5b61421a613aa3565b61422383613b29565b815261423160208401613b29565b60208201526040830135604082015260608301356060820152614256608084016141d4565b608082015260a083013560a082015260c083013560c082015261427b60e084016141e8565b60e082015261010061428e818501613b13565b908201529392505050565b60008082840360a08112156142ad57600080fd5b833592506080601f19820112156141c657600080fd5b600080600080604085870312156142d957600080fd5b84356001600160401b03808211156142f057600080fd5b6142fc88838901613dba565b9096509450602087013591508082111561431557600080fd5b818701915087601f83011261432957600080fd5b81358181111561433857600080fd5b8860206060830285010111156140e957600080fd5b6000806040838503121561436057600080fd5b61436983613afc565b946020939093013593505050565b805160e08084528151848201819052600092610100916020918201918388019190865b8281101561442a578451805161ffff1685528281015165ffffffffffff16838601526040808201516001600160401b039081169187019190915260608083015182169087015260808083015182169087015260a08083015182169087015260c08083015182169087015288820151811689870152908701511686850152938101936101209093019260010161439a565b508781015163ffffffff1690890152506040808701516001600160401b03908116918901919091526060808801519182169089015293506080860151935061447c608088018565ffffffffffff169052565b60a0860151935061449760a088018565ffffffffffff169052565b60c086015160c08801528094505050505092915050565b6001600160481b038082511683528060208301511660208401528060408301511660408401525064ffffffffff60608201511660608301525050565b60a0815260006144fd60a0830185614377565b90506109bf60208301846144ae565b60008060008060008060c0878903121561452557600080fd5b863561453081613f53565b9550602087013594506040870135935060608701359250608087013561455581613bce565b915060a087013561456581613bce565b809150509295509295509295565b60008060006060848603121561458857600080fd5b83359250602084013561459a81613bce565b929592945050506040919091013590565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b8381101561460257605f198887030185526145f0868351614377565b955093820193908201906001016145d4565b50508584038187015286518085528782019482019350915060005b82811015614643576146308486516144ae565b938101936080939093019260010161461d565b5091979650505050505050565b610120810161465f8285613e3f565b65ffffffffffff83166101008301529392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561156b5761156b61468b565b8082018082111561156b5761156b61468b565b6001600160401b038281168282160390808211156146e7576146e761468b565b5092915050565b808202811582820484141761156b5761156b61468b565b60008261472257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561473957600080fd5b5051919050565b60006020828403121561475257600080fd5b81516109bf81613f53565b6020808252600c908201526b4d414e414745525f4f4e4c5960a01b604082015260600190565b6020808252600c908201526b0aea49e9c8ebe988a9c8ea8960a31b604082015260600190565b6000602082840312156147bb57600080fd5b81356109bf81613bce565b6000602082840312156147d857600080fd5b81356109bf81613f53565b6000606082840312156147f557600080fd5b604051606081018181106001600160401b038211171561481757614817613a8d565b80604052508251815260208301516020820152604083015161483881613bce565b60408201529392505050565b600181815b8085111561487f5781600019048211156148655761486561468b565b8085161561487257918102915b93841c9390800290614849565b509250929050565b6000826148965750600161156b565b816148a35750600061156b565b81600181146148b957600281146148c3576148df565b600191505061156b565b60ff8411156148d4576148d461468b565b50506001821b61156b565b5060208310610133831016604e8410600b8410161715614902575081810a61156b565b61490c8383614844565b80600019048211156149205761492061468b565b029392505050565b60006109bf65ffffffffffff841683614887565b6020808252600890820152674f564552464c4f5760c01b604082015260600190565b6001600160401b038181168382160190808211156146e7576146e761468b565b60006020828403121561499057600080fd5b6109bf82613b13565b6020808252600e908201526d15d493d391d7d1561413d391539560921b604082015260600190565b6000602082840312156149d357600080fd5b6109bf826141d4565b6000602082840312156149ee57600080fd5b6109bf826141e8565b6001600160701b038281168282160390808211156146e7576146e761468b565b6001600160701b038181168382160190808211156146e7576146e761468b56fea264697066735822122018e3a014af62a0889c3a0ad72185fb8833a6b7bc905aedfa641f4741620525ac64736f6c63430008110033";
17
+ static readonly abi: ({
18
+ anonymous: boolean;
19
+ inputs: {
20
+ indexed: boolean;
21
+ internalType: string;
22
+ name: string;
23
+ type: string;
24
+ }[];
25
+ name: string;
26
+ type: string;
27
+ outputs?: undefined;
28
+ stateMutability?: undefined;
29
+ } | {
30
+ inputs: {
31
+ internalType: string;
32
+ name: string;
33
+ type: string;
34
+ }[];
35
+ name: string;
36
+ outputs: ({
37
+ components: {
38
+ internalType: string;
39
+ name: string;
40
+ type: string;
41
+ }[];
42
+ internalType: string;
43
+ name: string;
44
+ type: string;
45
+ } | {
46
+ internalType: string;
47
+ name: string;
48
+ type: string;
49
+ components?: undefined;
50
+ })[];
51
+ stateMutability: string;
52
+ type: string;
53
+ anonymous?: undefined;
54
+ } | {
55
+ inputs: {
56
+ internalType: string;
57
+ name: string;
58
+ type: string;
59
+ }[];
60
+ name: string;
61
+ outputs: {
62
+ components: ({
63
+ components: {
64
+ internalType: string;
65
+ name: string;
66
+ type: string;
67
+ }[];
68
+ internalType: string;
69
+ name: string;
70
+ type: string;
71
+ } | {
72
+ internalType: string;
73
+ name: string;
74
+ type: string;
75
+ components?: undefined;
76
+ })[];
77
+ internalType: string;
78
+ name: string;
79
+ type: string;
80
+ }[];
81
+ stateMutability: string;
82
+ type: string;
83
+ anonymous?: undefined;
84
+ } | {
85
+ inputs: ({
86
+ internalType: string;
87
+ name: string;
88
+ type: string;
89
+ components?: undefined;
90
+ } | {
91
+ components: {
92
+ internalType: string;
93
+ name: string;
94
+ type: string;
95
+ }[];
96
+ internalType: string;
97
+ name: string;
98
+ type: string;
99
+ })[];
100
+ name: string;
101
+ outputs: {
102
+ internalType: string;
103
+ name: string;
104
+ type: string;
105
+ }[];
106
+ stateMutability: string;
107
+ type: string;
108
+ anonymous?: undefined;
109
+ })[];
110
+ static createInterface(): GNSBorrowingFeesV6_4Interface;
111
+ static connect(address: string, signerOrProvider: Signer | Provider): GNSBorrowingFeesV6_4;
112
+ }
113
+ export {};