{
  "_format": "hh-sol-artifact-1",
  "contractName": "ValidationLogic",
  "sourceName": "contracts/protocol/libraries/logic/ValidationLogic.sol",
  "abi": [
    {
      "inputs": [],
      "name": "REBALANCE_UP_LIQUIDITY_RATE_THRESHOLD",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "REBALANCE_UP_USAGE_RATIO_THRESHOLD",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x61229c610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063721a92f911610070578063721a92f9146100fb578063a8695b1d1461010e578063abfcc86a14610121578063d09db04a14610129578063fa0c21491461013c5761009d565b80630eca322b146100a2578063548cad09146100b75780635494eb8a146100ca5780635fa297e5146100e8575b600080fd5b6100b56100b0366004612040565b61014f565b005b6100b56100c5366004611f98565b610217565b6100d261050d565b6040516100df9190612237565b60405180910390f35b6100b56100f6366004611f2e565b61051d565b6100b5610109366004611dfc565b6106c2565b6100b561011c366004611fff565b610cb9565b6100d2610f8c565b6100b5610137366004611ea0565b610f92565b6100b561014a366004612061565b611130565b60008061015b84611276565b50506040805180820190915260018152603160f81b60208201529193509150836101a15760405162461bcd60e51b8152600401610198919061216c565b60405180910390fd5b506040805180820190915260018152601960f91b6020820152826101d85760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603360f81b602082015281156102105760405162461bcd60e51b8152600401610198919061216c565b5050505050565b600061022286611276565b505050905080604051806040016040528060018152602001601960f91b815250906102605760405162461bcd60e51b8152600401610198919061216c565b506000610356610351856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102a257600080fd5b505afa1580156102b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102da91906120bf565b876001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561031357600080fd5b505afa158015610327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034b91906120bf565b906112ae565b6112dc565b905060006103d9876001600160a01b03166370a08231866040518263ffffffff1660e01b815260040161038991906120d7565b60206040518083038186803b1580156103a157600080fd5b505afa1580156103b5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035191906120bf565b9050600082156103fc576103f76103f083856112ae565b849061132e565b6103ff565b60005b60028a015460078b0154604080516380031e3760e01b815290519394506fffffffffffffffffffffffffffffffff909216926000926001600160a01b03909216916380031e37916004808301926020929190829003018186803b15801561046557600080fd5b505afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d91906120bf565b90506b0311d253316c79d37600000083101580156104c657506104c281610fa06113d9565b8211155b60405180604001604052806002815260200161191960f11b815250906104ff5760405162461bcd60e51b8152600401610198919061216c565b505050505050505050505050565b6b0311d253316c79d37600000081565b6004808901546040516370a0823160e01b81526000926001600160a01b03909216916370a0823191610551913391016120d7565b60206040518083038186803b15801561056957600080fd5b505afa15801561057d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a191906120bf565b90506000811160405180604001604052806002815260200161313960f01b815250906105e05760405162461bcd60e51b8152600401610198919061216c565b50868061067d5750604051633985c10960e21b815273__$52a8a86ab43135662ff256bbc95497e8e3$__9063e61704249061062d908b90339086908c908c908c908c908c906004016120eb565b60206040518083038186803b15801561064557600080fd5b505af4158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190611f12565b60405180604001604052806002815260200161032360f41b815250906106b65760405162461bcd60e51b8152600401610198919061216c565b50505050505050505050565b6106ca611d00565b6106d38c611276565b151561014085015215156101208401521515610100830152151560e082018190526040805180820190915260018152601960f91b60208201529061072a5760405162461bcd60e51b8152600401610198919061216c565b5080610100015115604051806040016040528060018152602001603360f81b8152509061076a5760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603160f81b60208201528a6107a15760405162461bcd60e51b8152600401610198919061216c565b50806101200151604051806040016040528060018152602001603760f81b815250906107e05760405162461bcd60e51b8152600401610198919061216c565b5087600214806107f05750876001145b604051806040016040528060018152602001600760fb1b815250906108285760405162461bcd60e51b8152600401610198919061216c565b506040805160808101825261087c918d9189918990829081018260028282826020028201915b81548152602001906001019080831161084e575050505050815260200160028201548152505087878761144b565b60c08601526020808601919091529084526080840191909152606083018290526040805180820190915260018152603960f81b91810191909152906108d45760405162461bcd60e51b8152600401610198919061216c565b50604080516080810180835261091e9288918391820190839060029082845b8154815260200190600101908083116108f35750505050508152602001600282015481525050611912565b6040805180820190915260028152611c1960f11b6020820152906109555760405162461bcd60e51b8152600401610198919061216c565b506040805160808101808352875492820192835261099e928891839190839060029060018301606086018083116108f35750505050508152602001600282015481525050611912565b8160c001511160405180604001604052806002815260200161031360f41b815250906109dd5760405162461bcd60e51b8152600401610198919061216c565b50805160808201516109fa91906109f4908c6112ae565b90611919565b6040808301829052606083015181518083019092526002825261313160f01b602083015290911115610a3f5760405162461bcd60e51b8152600401610198919061216c565b506001881415610caa5780610140015160405180604001604052806002815260200161189960f11b81525090610a885760405162461bcd60e51b8152600401610198919061216c565b5060078c01546040805160808101808352610aeb93600160a01b900460ff169289918391820190839060029082845b815481526020019060010190808311610ab757505050505081526020016002820154815250506119a790919063ffffffff16565b1580610afd5750610afb8c611a21565b155b80610b8757506004808d01546040516370a0823160e01b81526001600160a01b03909116916370a0823191610b34918f91016120d7565b60206040518083038186803b158015610b4c57600080fd5b505afa158015610b60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8491906120bf565b8a115b60405180604001604052806002815260200161313360f01b81525090610bc05760405162461bcd60e51b8152600401610198919061216c565b508c6001600160a01b03166370a082318d60040160009054906101000a90046001600160a01b03166040518263ffffffff1660e01b8152600401610c0491906120d7565b60206040518083038186803b158015610c1c57600080fd5b505afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5491906120bf565b60a08201819052600090610c6890896113d9565b9050808b1115604051806040016040528060028152602001610c4d60f21b81525090610ca75760405162461bcd60e51b8152600401610198919061216c565b50505b50505050505050505050505050565b60008080610cc688611276565b9350509250925082604051806040016040528060018152602001601960f91b81525090610d065760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603360f81b60208201528215610d3e5760405162461bcd60e51b8152600401610198919061216c565b506001846002811115610d4d57fe5b1415610d9057604080518082019091526002815261313760f01b602082015286610d8a5760405162461bcd60e51b8152600401610198919061216c565b50610f82565b6002846002811115610d9e57fe5b1415610f5357604080518082019091526002815261062760f31b602082015285610ddb5760405162461bcd60e51b8152600401610198919061216c565b50604080518082019091526002815261189960f11b602082015281610e135760405162461bcd60e51b8152600401610198919061216c565b50600788015460408051608081018083528a54928201928352610e7593600160a01b900460ff16928b9183919083906002906001830160608601808311610ab757505050505081526020016002820154815250506119a790919063ffffffff16565b1580610e875750610e8588611a21565b155b80610f1a57506004808901546040516370a0823160e01b81526001600160a01b03909116916370a0823191610ebe913391016120d7565b60206040518083038186803b158015610ed657600080fd5b505afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e91906120bf565b610f1887876112ae565b115b60405180604001604052806002815260200161313360f01b81525090610d8a5760405162461bcd60e51b8152600401610198919061216c565b60408051808201825260018152600760fb1b6020820152905162461bcd60e51b8152610198919060040161216c565b5050505050505050565b610fa081565b6040805180820190915260018152603160f81b602082015287610fc85760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603560f81b6020820152868811156110025760405162461bcd60e51b8152600401610198919061216c565b506001600160a01b038816600090815260208690526040812061102490611276565b505050905080604051806040016040528060018152602001601960f91b815250906110625760405162461bcd60e51b8152600401610198919061216c565b50604051633985c10960e21b815273__$52a8a86ab43135662ff256bbc95497e8e3$__9063e6170424906110a8908c9033908d908c908c908c908c908c906004016120eb565b60206040518083038186803b1580156110c057600080fd5b505af41580156110d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f89190611f12565b604051806040016040528060018152602001601b60f91b815250906106b65760405162461bcd60e51b8152600401610198919061216c565b600061113b87611a29565b905080604051806040016040528060018152602001601960f91b815250906111765760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603160f81b6020820152866111ad5760405162461bcd60e51b8152600401610198919061216c565b506000831180156111c9575060018560028111156111c757fe5b145b806111ea57506000821180156111ea575060028560028111156111e857fe5b145b60405180604001604052806002815260200161313560f01b815250906112235760405162461bcd60e51b8152600401610198919061216c565b506000198614158061123d5750336001600160a01b038516145b60405180604001604052806002815260200161189b60f11b81525090610f825760405162461bcd60e51b8152600401610198919061216c565b54600160381b811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b6000828201838110156112d35760405162461bcd60e51b8152600401610198906121bf565b90505b92915050565b6000633b9aca0082810290839082041460405180604001604052806002815260200161068760f31b815250906113255760405162461bcd60e51b8152600401610198919061216c565b5090505b919050565b604080518082019091526002815261035360f41b6020820152600090826113685760405162461bcd60e51b8152600401610198919061216c565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156113b65760405162461bcd60e51b8152600401610198919061216c565b5082816b033b2e3c9fd0803ce8000000860201816113d057fe5b04949350505050565b60008215806113e6575081155b156113f3575060006112d6565b8161138819816113ff57fe5b0483111560405180604001604052806002815260200161068760f31b8152509061143c5760405162461bcd60e51b8152600401610198919061216c565b50506127109102611388010490565b600080600080600061145b611d62565b6114648a611a35565b15611482576000806000806000199550955095509550955050611904565b600060e08201525b878160e0015110156118635760e08101516114a6908b90611a8a565b6114af57611853565b60e0810151600090815260208a81526040808320546001600160a01b03166101e085018190528352908d905290206114e681611afc565b506080860181905260c08601929092525060a0840191909152600a0a60208301526101e082015160405163b3596f0760e01b81526001600160a01b038a169163b3596f079161153891906004016120d7565b60206040518083038186803b15801561155057600080fd5b505afa158015611564573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158891906120bf565b825260c0820151158015906115a8575060e08201516115a8908c906119a7565b156116cc578060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016115f091906120d7565b60206040518083038186803b15801561160857600080fd5b505afa15801561161c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164091906120bf565b6040830181905260208301518351600092611665929161165f91611b27565b90611b61565b61012084015190915061167890826112ae565b61012084015260a083015161169e90611692908390611b27565b610160850151906112ae565b61016084015260c08301516116c4906116b8908390611b27565b610180850151906112ae565b610180840152505b60e08201516116dc908c90611ba3565b15611851578060050160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040161172491906120d7565b60206040518083038186803b15801561173c57600080fd5b505afa158015611750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177491906120bf565b82606001818152505061181e8160060160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b81526004016117c391906120d7565b60206040518083038186803b1580156117db57600080fd5b505afa1580156117ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181391906120bf565b6060840151906112ae565b606083018190526020830151835161184a9261183e929161165f91611b27565b610140840151906112ae565b6101408301525b505b60e081018051600101905261148a565b60008161012001511161187757600061188c565b61012081015161016082015161188c91611b61565b6101608201526101208101516118a35760006118b8565b6101208101516101808201516118b891611b61565b61018082018190526101208201516101408301516118d592611c01565b610100820181905261012082015161014083015161016084015161018090940151919850965091945090925090505b965096509650965096915050565b6020015190565b604080518082019091526002815261035360f41b6020820152600090826119535760405162461bcd60e51b8152600401610198919061216c565b5060408051808201909152600280825261068760f31b60208301528304906127108219048511156119975760405162461bcd60e51b8152600401610198919061216c565b508281612710860201816113d057fe5b6000610100821060405180604001604052806002815260200161373760f01b815250906119e75760405162461bcd60e51b8152600401610198919061216c565b5060006080830490506080830692508260020260010184600001518260028110611a0d57fe5b6020020151901c6001161515949350505050565b5461ffff1690565b54600160381b16151590565b6000805b600260ff82161015611a8157825160ff821660028110611a5557fe5b6020020151151580611a6a5750602083015115155b15611a79576000915050611329565b600101611a39565b50600192915050565b6000610100821060405180604001604052806002815260200161373760f01b81525090611aca5760405162461bcd60e51b8152600401610198919061216c565b508251607f83169260809004906002808502919083908110611ae857fe5b6020020151901c6003161515949350505050565b5461ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b600082611b36575060006112d6565b82820282848281611b4357fe5b04146112d35760405162461bcd60e51b8152600401610198906121f6565b60006112d383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c2f565b6000610100821060405180604001604052806002815260200161373760f01b81525090611be35760405162461bcd60e51b8152600401610198919061216c565b508251607f83169260809004906002808502919083908110611a0d57fe5b600082611c115750600019611c28565b611c2583611c1f86856113d9565b90611c66565b90505b9392505050565b60008183611c505760405162461bcd60e51b8152600401610198919061216c565b506000838581611c5c57fe5b0495945050505050565b604080518082019091526002815261035360f41b602082015260009082611ca05760405162461bcd60e51b8152600401610198919061216c565b5060408051808201909152600280825261068760f31b6020830152830490670de0b6b3a7640000821904851115611cea5760405162461bcd60e51b8152600401610198919061216c565b508281670de0b6b3a7640000860201816113d057fe5b604051806101600160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581526020016000151581526020016000151581525090565b604051806102400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b031681526020016000151581526020016000151581525090565b6000806000806000806000806000806000806101808d8f031215611e1e578788fd5b8c35611e2981612240565b9b5060208d01359a5060408d0135611e4081612240565b995060608d0135985060808d0135975060a08d0135965060c08d0135955060e08d013594506101008d013593506101208d013592506101408d013591506101608d0135611e8c81612240565b809150509295989b509295989b509295989b565b600080600080600080600080610100898b031215611ebc578384fd5b8835611ec781612240565b97506020890135965060408901359550606089013594506080890135935060a0890135925060c0890135915060e0890135611f0181612240565b809150509295985092959890939650565b600060208284031215611f23578081fd5b81516112d381612258565b600080600080600080600080610100898b031215611f4a578384fd5b883597506020890135611f5c81612240565b96506040890135611f6c81612258565b9550606089013594506080890135935060a0890135925060c0890135915060e0890135611f0181612240565b600080600080600060a08688031215611faf578081fd5b853594506020860135611fc181612240565b93506040860135611fd181612240565b92506060860135611fe181612240565b91506080860135611ff181612240565b809150509295509295909350565b600080600080600060a08688031215612016578081fd5b85359450602086013593506040860135925060608601359150608086013560038110611ff1578182fd5b60008060408385031215612052578182fd5b50508035926020909101359150565b60008060008060008060c08789031215612079578384fd5b8635955060208701359450604087013560038110612095578485fd5b935060608701356120a581612240565b9598949750929560808101359460a0909101359350915050565b6000602082840312156120d0578081fd5b5051919050565b6001600160a01b0391909116815260200190565b60006101408201905060018060a01b03808b1683526020818b1681850152896040850152886060850152608084018860005b600281101561213a5781548352918301916001918201910161211d565b50505050600287015460c08401528560e084015284610100840152808416610120840152509998505050505050505050565b6000602080835283518082850152825b818110156121985785810183015185820160400152820161217c565b818111156121a95783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6001600160a01b038116811461225557600080fd5b50565b801515811461225557600080fdfea2646970667358221220191864fbe487548b844cf5a4fa5c324ad3642f53bd64eb6535749e6c27080d6464736f6c634300060c0033",
  "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061009d5760003560e01c8063721a92f911610070578063721a92f9146100fb578063a8695b1d1461010e578063abfcc86a14610121578063d09db04a14610129578063fa0c21491461013c5761009d565b80630eca322b146100a2578063548cad09146100b75780635494eb8a146100ca5780635fa297e5146100e8575b600080fd5b6100b56100b0366004612040565b61014f565b005b6100b56100c5366004611f98565b610217565b6100d261050d565b6040516100df9190612237565b60405180910390f35b6100b56100f6366004611f2e565b61051d565b6100b5610109366004611dfc565b6106c2565b6100b561011c366004611fff565b610cb9565b6100d2610f8c565b6100b5610137366004611ea0565b610f92565b6100b561014a366004612061565b611130565b60008061015b84611276565b50506040805180820190915260018152603160f81b60208201529193509150836101a15760405162461bcd60e51b8152600401610198919061216c565b60405180910390fd5b506040805180820190915260018152601960f91b6020820152826101d85760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603360f81b602082015281156102105760405162461bcd60e51b8152600401610198919061216c565b5050505050565b600061022286611276565b505050905080604051806040016040528060018152602001601960f91b815250906102605760405162461bcd60e51b8152600401610198919061216c565b506000610356610351856001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102a257600080fd5b505afa1580156102b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102da91906120bf565b876001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561031357600080fd5b505afa158015610327573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034b91906120bf565b906112ae565b6112dc565b905060006103d9876001600160a01b03166370a08231866040518263ffffffff1660e01b815260040161038991906120d7565b60206040518083038186803b1580156103a157600080fd5b505afa1580156103b5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061035191906120bf565b9050600082156103fc576103f76103f083856112ae565b849061132e565b6103ff565b60005b60028a015460078b0154604080516380031e3760e01b815290519394506fffffffffffffffffffffffffffffffff909216926000926001600160a01b03909216916380031e37916004808301926020929190829003018186803b15801561046557600080fd5b505afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d91906120bf565b90506b0311d253316c79d37600000083101580156104c657506104c281610fa06113d9565b8211155b60405180604001604052806002815260200161191960f11b815250906104ff5760405162461bcd60e51b8152600401610198919061216c565b505050505050505050505050565b6b0311d253316c79d37600000081565b6004808901546040516370a0823160e01b81526000926001600160a01b03909216916370a0823191610551913391016120d7565b60206040518083038186803b15801561056957600080fd5b505afa15801561057d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a191906120bf565b90506000811160405180604001604052806002815260200161313960f01b815250906105e05760405162461bcd60e51b8152600401610198919061216c565b50868061067d5750604051633985c10960e21b815273__$52a8a86ab43135662ff256bbc95497e8e3$__9063e61704249061062d908b90339086908c908c908c908c908c906004016120eb565b60206040518083038186803b15801561064557600080fd5b505af4158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190611f12565b60405180604001604052806002815260200161032360f41b815250906106b65760405162461bcd60e51b8152600401610198919061216c565b50505050505050505050565b6106ca611d00565b6106d38c611276565b151561014085015215156101208401521515610100830152151560e082018190526040805180820190915260018152601960f91b60208201529061072a5760405162461bcd60e51b8152600401610198919061216c565b5080610100015115604051806040016040528060018152602001603360f81b8152509061076a5760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603160f81b60208201528a6107a15760405162461bcd60e51b8152600401610198919061216c565b50806101200151604051806040016040528060018152602001603760f81b815250906107e05760405162461bcd60e51b8152600401610198919061216c565b5087600214806107f05750876001145b604051806040016040528060018152602001600760fb1b815250906108285760405162461bcd60e51b8152600401610198919061216c565b506040805160808101825261087c918d9189918990829081018260028282826020028201915b81548152602001906001019080831161084e575050505050815260200160028201548152505087878761144b565b60c08601526020808601919091529084526080840191909152606083018290526040805180820190915260018152603960f81b91810191909152906108d45760405162461bcd60e51b8152600401610198919061216c565b50604080516080810180835261091e9288918391820190839060029082845b8154815260200190600101908083116108f35750505050508152602001600282015481525050611912565b6040805180820190915260028152611c1960f11b6020820152906109555760405162461bcd60e51b8152600401610198919061216c565b506040805160808101808352875492820192835261099e928891839190839060029060018301606086018083116108f35750505050508152602001600282015481525050611912565b8160c001511160405180604001604052806002815260200161031360f41b815250906109dd5760405162461bcd60e51b8152600401610198919061216c565b50805160808201516109fa91906109f4908c6112ae565b90611919565b6040808301829052606083015181518083019092526002825261313160f01b602083015290911115610a3f5760405162461bcd60e51b8152600401610198919061216c565b506001881415610caa5780610140015160405180604001604052806002815260200161189960f11b81525090610a885760405162461bcd60e51b8152600401610198919061216c565b5060078c01546040805160808101808352610aeb93600160a01b900460ff169289918391820190839060029082845b815481526020019060010190808311610ab757505050505081526020016002820154815250506119a790919063ffffffff16565b1580610afd5750610afb8c611a21565b155b80610b8757506004808d01546040516370a0823160e01b81526001600160a01b03909116916370a0823191610b34918f91016120d7565b60206040518083038186803b158015610b4c57600080fd5b505afa158015610b60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8491906120bf565b8a115b60405180604001604052806002815260200161313360f01b81525090610bc05760405162461bcd60e51b8152600401610198919061216c565b508c6001600160a01b03166370a082318d60040160009054906101000a90046001600160a01b03166040518263ffffffff1660e01b8152600401610c0491906120d7565b60206040518083038186803b158015610c1c57600080fd5b505afa158015610c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5491906120bf565b60a08201819052600090610c6890896113d9565b9050808b1115604051806040016040528060028152602001610c4d60f21b81525090610ca75760405162461bcd60e51b8152600401610198919061216c565b50505b50505050505050505050505050565b60008080610cc688611276565b9350509250925082604051806040016040528060018152602001601960f91b81525090610d065760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603360f81b60208201528215610d3e5760405162461bcd60e51b8152600401610198919061216c565b506001846002811115610d4d57fe5b1415610d9057604080518082019091526002815261313760f01b602082015286610d8a5760405162461bcd60e51b8152600401610198919061216c565b50610f82565b6002846002811115610d9e57fe5b1415610f5357604080518082019091526002815261062760f31b602082015285610ddb5760405162461bcd60e51b8152600401610198919061216c565b50604080518082019091526002815261189960f11b602082015281610e135760405162461bcd60e51b8152600401610198919061216c565b50600788015460408051608081018083528a54928201928352610e7593600160a01b900460ff16928b9183919083906002906001830160608601808311610ab757505050505081526020016002820154815250506119a790919063ffffffff16565b1580610e875750610e8588611a21565b155b80610f1a57506004808901546040516370a0823160e01b81526001600160a01b03909116916370a0823191610ebe913391016120d7565b60206040518083038186803b158015610ed657600080fd5b505afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e91906120bf565b610f1887876112ae565b115b60405180604001604052806002815260200161313360f01b81525090610d8a5760405162461bcd60e51b8152600401610198919061216c565b60408051808201825260018152600760fb1b6020820152905162461bcd60e51b8152610198919060040161216c565b5050505050505050565b610fa081565b6040805180820190915260018152603160f81b602082015287610fc85760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603560f81b6020820152868811156110025760405162461bcd60e51b8152600401610198919061216c565b506001600160a01b038816600090815260208690526040812061102490611276565b505050905080604051806040016040528060018152602001601960f91b815250906110625760405162461bcd60e51b8152600401610198919061216c565b50604051633985c10960e21b815273__$52a8a86ab43135662ff256bbc95497e8e3$__9063e6170424906110a8908c9033908d908c908c908c908c908c906004016120eb565b60206040518083038186803b1580156110c057600080fd5b505af41580156110d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110f89190611f12565b604051806040016040528060018152602001601b60f91b815250906106b65760405162461bcd60e51b8152600401610198919061216c565b600061113b87611a29565b905080604051806040016040528060018152602001601960f91b815250906111765760405162461bcd60e51b8152600401610198919061216c565b506040805180820190915260018152603160f81b6020820152866111ad5760405162461bcd60e51b8152600401610198919061216c565b506000831180156111c9575060018560028111156111c757fe5b145b806111ea57506000821180156111ea575060028560028111156111e857fe5b145b60405180604001604052806002815260200161313560f01b815250906112235760405162461bcd60e51b8152600401610198919061216c565b506000198614158061123d5750336001600160a01b038516145b60405180604001604052806002815260200161189b60f11b81525090610f825760405162461bcd60e51b8152600401610198919061216c565b54600160381b811615159167020000000000000082161515916704000000000000008116151591670800000000000000909116151590565b6000828201838110156112d35760405162461bcd60e51b8152600401610198906121bf565b90505b92915050565b6000633b9aca0082810290839082041460405180604001604052806002815260200161068760f31b815250906113255760405162461bcd60e51b8152600401610198919061216c565b5090505b919050565b604080518082019091526002815261035360f41b6020820152600090826113685760405162461bcd60e51b8152600401610198919061216c565b5060408051808201909152600280825261068760f31b60208301528304906b033b2e3c9fd0803ce80000008219048511156113b65760405162461bcd60e51b8152600401610198919061216c565b5082816b033b2e3c9fd0803ce8000000860201816113d057fe5b04949350505050565b60008215806113e6575081155b156113f3575060006112d6565b8161138819816113ff57fe5b0483111560405180604001604052806002815260200161068760f31b8152509061143c5760405162461bcd60e51b8152600401610198919061216c565b50506127109102611388010490565b600080600080600061145b611d62565b6114648a611a35565b15611482576000806000806000199550955095509550955050611904565b600060e08201525b878160e0015110156118635760e08101516114a6908b90611a8a565b6114af57611853565b60e0810151600090815260208a81526040808320546001600160a01b03166101e085018190528352908d905290206114e681611afc565b506080860181905260c08601929092525060a0840191909152600a0a60208301526101e082015160405163b3596f0760e01b81526001600160a01b038a169163b3596f079161153891906004016120d7565b60206040518083038186803b15801561155057600080fd5b505afa158015611564573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158891906120bf565b825260c0820151158015906115a8575060e08201516115a8908c906119a7565b156116cc578060040160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b81526004016115f091906120d7565b60206040518083038186803b15801561160857600080fd5b505afa15801561161c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164091906120bf565b6040830181905260208301518351600092611665929161165f91611b27565b90611b61565b61012084015190915061167890826112ae565b61012084015260a083015161169e90611692908390611b27565b610160850151906112ae565b61016084015260c08301516116c4906116b8908390611b27565b610180850151906112ae565b610180840152505b60e08201516116dc908c90611ba3565b15611851578060050160009054906101000a90046001600160a01b03166001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040161172491906120d7565b60206040518083038186803b15801561173c57600080fd5b505afa158015611750573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177491906120bf565b82606001818152505061181e8160060160009054906101000a90046001600160a01b03166001600160a01b03166370a082318f6040518263ffffffff1660e01b81526004016117c391906120d7565b60206040518083038186803b1580156117db57600080fd5b505afa1580156117ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181391906120bf565b6060840151906112ae565b606083018190526020830151835161184a9261183e929161165f91611b27565b610140840151906112ae565b6101408301525b505b60e081018051600101905261148a565b60008161012001511161187757600061188c565b61012081015161016082015161188c91611b61565b6101608201526101208101516118a35760006118b8565b6101208101516101808201516118b891611b61565b61018082018190526101208201516101408301516118d592611c01565b610100820181905261012082015161014083015161016084015161018090940151919850965091945090925090505b965096509650965096915050565b6020015190565b604080518082019091526002815261035360f41b6020820152600090826119535760405162461bcd60e51b8152600401610198919061216c565b5060408051808201909152600280825261068760f31b60208301528304906127108219048511156119975760405162461bcd60e51b8152600401610198919061216c565b508281612710860201816113d057fe5b6000610100821060405180604001604052806002815260200161373760f01b815250906119e75760405162461bcd60e51b8152600401610198919061216c565b5060006080830490506080830692508260020260010184600001518260028110611a0d57fe5b6020020151901c6001161515949350505050565b5461ffff1690565b54600160381b16151590565b6000805b600260ff82161015611a8157825160ff821660028110611a5557fe5b6020020151151580611a6a5750602083015115155b15611a79576000915050611329565b600101611a39565b50600192915050565b6000610100821060405180604001604052806002815260200161373760f01b81525090611aca5760405162461bcd60e51b8152600401610198919061216c565b508251607f83169260809004906002808502919083908110611ae857fe5b6020020151901c6003161515949350505050565b5461ffff80821692601083901c821692602081901c831692603082901c60ff169260409290921c1690565b600082611b36575060006112d6565b82820282848281611b4357fe5b04146112d35760405162461bcd60e51b8152600401610198906121f6565b60006112d383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c2f565b6000610100821060405180604001604052806002815260200161373760f01b81525090611be35760405162461bcd60e51b8152600401610198919061216c565b508251607f83169260809004906002808502919083908110611a0d57fe5b600082611c115750600019611c28565b611c2583611c1f86856113d9565b90611c66565b90505b9392505050565b60008183611c505760405162461bcd60e51b8152600401610198919061216c565b506000838581611c5c57fe5b0495945050505050565b604080518082019091526002815261035360f41b602082015260009082611ca05760405162461bcd60e51b8152600401610198919061216c565b5060408051808201909152600280825261068760f31b6020830152830490670de0b6b3a7640000821904851115611cea5760405162461bcd60e51b8152600401610198919061216c565b508281670de0b6b3a7640000860201816113d057fe5b604051806101600160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000151581526020016000151581526020016000151581526020016000151581525090565b604051806102400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160006001600160a01b031681526020016000151581526020016000151581525090565b6000806000806000806000806000806000806101808d8f031215611e1e578788fd5b8c35611e2981612240565b9b5060208d01359a5060408d0135611e4081612240565b995060608d0135985060808d0135975060a08d0135965060c08d0135955060e08d013594506101008d013593506101208d013592506101408d013591506101608d0135611e8c81612240565b809150509295989b509295989b509295989b565b600080600080600080600080610100898b031215611ebc578384fd5b8835611ec781612240565b97506020890135965060408901359550606089013594506080890135935060a0890135925060c0890135915060e0890135611f0181612240565b809150509295985092959890939650565b600060208284031215611f23578081fd5b81516112d381612258565b600080600080600080600080610100898b031215611f4a578384fd5b883597506020890135611f5c81612240565b96506040890135611f6c81612258565b9550606089013594506080890135935060a0890135925060c0890135915060e0890135611f0181612240565b600080600080600060a08688031215611faf578081fd5b853594506020860135611fc181612240565b93506040860135611fd181612240565b92506060860135611fe181612240565b91506080860135611ff181612240565b809150509295509295909350565b600080600080600060a08688031215612016578081fd5b85359450602086013593506040860135925060608601359150608086013560038110611ff1578182fd5b60008060408385031215612052578182fd5b50508035926020909101359150565b60008060008060008060c08789031215612079578384fd5b8635955060208701359450604087013560038110612095578485fd5b935060608701356120a581612240565b9598949750929560808101359460a0909101359350915050565b6000602082840312156120d0578081fd5b5051919050565b6001600160a01b0391909116815260200190565b60006101408201905060018060a01b03808b1683526020818b1681850152896040850152886060850152608084018860005b600281101561213a5781548352918301916001918201910161211d565b50505050600287015460c08401528560e084015284610100840152808416610120840152509998505050505050505050565b6000602080835283518082850152825b818110156121985785810183015185820160400152820161217c565b818111156121a95783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6001600160a01b038116811461225557600080fd5b50565b801515811461225557600080fdfea2646970667358221220191864fbe487548b844cf5a4fa5c324ad3642f53bd64eb6535749e6c27080d6464736f6c634300060c0033",
  "linkReferences": {
    "contracts/protocol/libraries/logic/GenericLogic.sol": {
      "GenericLogic": [
        {
          "length": 20,
          "start": 1565
        },
        {
          "length": 20,
          "start": 4248
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "contracts/protocol/libraries/logic/GenericLogic.sol": {
      "GenericLogic": [
        {
          "length": 20,
          "start": 1527
        },
        {
          "length": 20,
          "start": 4210
        }
      ]
    }
  }
}
