Files
mev-beta/orig/tests/out/FlashLoanReceiverSecure.sol/FlashLoanReceiverSecure.json
Administrator c54c569f30 refactor: move all remaining files to orig/ directory
Completed clean root directory structure:
- Root now contains only: .git, .env, docs/, orig/
- Moved all remaining files and directories to orig/:
  - Config files (.claude, .dockerignore, .drone.yml, etc.)
  - All .env variants (except active .env)
  - Git config (.gitconfig, .github, .gitignore, etc.)
  - Tool configs (.golangci.yml, .revive.toml, etc.)
  - Documentation (*.md files, @prompts)
  - Build files (Dockerfiles, Makefile, go.mod, go.sum)
  - Docker compose files
  - All source directories (scripts, tests, tools, etc.)
  - Runtime directories (logs, monitoring, reports)
  - Dependency files (node_modules, lib, cache)
  - Special files (--delete)

- Removed empty runtime directories (bin/, data/)

V2 structure is now clean:
- docs/planning/ - V2 planning documents
- orig/ - Complete V1 codebase preserved
- .env - Active environment config (not in git)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-10 10:53:05 +01:00

1 line
75 KiB
JSON

{"abi":[{"type":"constructor","inputs":[{"name":"_vault","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"BASIS_POINTS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_PATH_LENGTH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_SLIPPAGE_BPS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"emergencyWithdraw","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeArbitrage","inputs":[{"name":"tokens","type":"address[]","internalType":"contract IERC20[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"path","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getBalance","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"receiveFlashLoan","inputs":[{"name":"tokens","type":"address[]","internalType":"contract IERC20[]"},{"name":"amounts","type":"uint256[]","internalType":"uint256[]"},{"name":"feeAmounts","type":"uint256[]","internalType":"uint256[]"},{"name":"userData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IBalancerVault"}],"stateMutability":"view"},{"type":"function","name":"withdrawProfit","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ArbitrageExecuted","inputs":[{"name":"initiator","type":"address","indexed":true,"internalType":"address"},{"name":"profit","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pathLength","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"FlashLoanInitiated","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"SlippageProtectionTriggered","inputs":[{"name":"expectedMin","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"actualReceived","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a060405234801561000f575f5ffd5b50604051611e4b380380611e4b83398101604081905261002e916100af565b60015f556001600160a01b03811661008c5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964207661756c7420616464726573730000000000000000000000604482015260640160405180910390fd5b600180546001600160a01b031916331790556001600160a01b03166080526100dc565b5f602082840312156100bf575f5ffd5b81516001600160a01b03811681146100d5575f5ffd5b9392505050565b608051611d426101095f395f81816101fc015281816103e1015281816107b80152610c960152611d425ff3fe60806040526004361061009d575f3560e01c8063e229cd7611610062578063e229cd7614610166578063ec52303b1461017a578063f04f27071461018e578063f2fde38b146101ad578063f8b2cb4f146101cc578063fbfa77cf146101eb575f5ffd5b8063176243c4146100a85780636ff1c9bc146100c95780638da5cb5b146100e8578063d35c9a0714610124578063e1f1c4a714610143575f5ffd5b366100a457005b5f5ffd5b3480156100b3575f5ffd5b506100c76100c2366004611644565b61021e565b005b3480156100d4575f5ffd5b506100c76100e33660046116cf565b610463565b3480156100f3575f5ffd5b50600154610107906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561012f575f5ffd5b506100c761013e3660046116ea565b6105fd565b34801561014e575f5ffd5b5061015861271081565b60405190815260200161011b565b348015610171575f5ffd5b50610158603281565b348015610185575f5ffd5b50610158600581565b348015610199575f5ffd5b506100c76101a8366004611714565b6107a5565b3480156101b8575f5ffd5b506100c76101c73660046116cf565b610d91565b3480156101d7575f5ffd5b506101586101e63660046116cf565b610e75565b3480156101f6575f5ffd5b506101077f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031633146102515760405162461bcd60e51b8152600401610248906117c9565b60405180910390fd5b610259610ee3565b5f83511161029f5760405162461bcd60e51b8152602060048201526013602482015272139bc81d1bdad95b9cc81cdc1958da599a5959606a1b6044820152606401610248565b81518351146102e85760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606401610248565b600154600160a01b900460ff16156103425760405162461bcd60e51b815260206004820152601960248201527f466c617368206c6f616e20616c726561647920616374697665000000000000006044820152606401610248565b6001805460ff60a01b1916600160a01b179055825183905f90610367576103676117ec565b60200260200101516001600160a01b03167f591ad3206c771ad9f89e5fce3ba3fd39fe164da7093471fce70eaf468c495f3c835f815181106103ab576103ab6117ec565b60200260200101516040516103c291815260200190565b60405180910390a2604051632e1c224f60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635c38449e9061041c90309087908790879060040161182e565b5f604051808303815f87803b158015610433575f5ffd5b505af1158015610445573d5f5f3e3d5ffd5b50506001805460ff60a01b191681555f555061045e9050565b505050565b6001546001600160a01b0316331461048d5760405162461bcd60e51b8152600401610248906117c9565b610495610ee3565b6001600160a01b0381166105245747806104e65760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b6044820152606401610248565b6001546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051d573d5f5f3e3d5ffd5b50506105f1565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610568573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058c91906118dd565b90505f81116105d55760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b6044820152606401610248565b6001546105ef906001600160a01b03848116911683610f0b565b505b6105fa60015f55565b50565b6001546001600160a01b031633146106275760405162461bcd60e51b8152600401610248906117c9565b61062f610ee3565b6001600160a01b03821661067d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610248565b5f81116106cc5760405162461bcd60e51b815260206004820152601760248201527f416d6f756e74206d75737420626520706f7369746976650000000000000000006044820152606401610248565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610710573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073491906118dd565b90508181101561077d5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610248565b600154610797906001600160a01b03858116911684610f0b565b506107a160015f55565b5050565b6107ad610ee3565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461081b5760405162461bcd60e51b815260206004820152601360248201527213db9b1e481d985d5b1d0818d85b8818d85b1b606a1b6044820152606401610248565b600154600160a01b900460ff166108805760405162461bcd60e51b8152602060048201526024808201527f466c617368206c6f616e206e6f7420696e6974696174656420627920636f6e746044820152631c9858dd60e21b6064820152608401610248565b5f818060200190518101906108959190611a2b565b90506002815f01515110156108dd5760405162461bcd60e51b815260206004820152600e60248201526d14185d1a081d1bdbc81cda1bdc9d60921b6044820152606401610248565b805151600510156109305760405162461bcd60e51b815260206004820152601b60248201527f506174682065786365656473206d6178696d756d206c656e67746800000000006044820152606401610248565b602081015151610941906001611b3d565b8151511461098a5760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420706174682073747275637475726560501b6044820152606401610248565b60328160a0015111156109df5760405162461bcd60e51b815260206004820152601b60248201527f536c69707061676520746f6c6572616e636520746f6f206869676800000000006044820152606401610248565b5f845f815181106109f2576109f26117ec565b602002602001015190505f865f81518110610a0f57610a0f6117ec565b602002602001015190505f5f90505b835151610a2d90600190611b50565b811015610b8f575f845f01518281518110610a4a57610a4a6117ec565b602002602001015190505f855f0151836001610a669190611b3d565b81518110610a7657610a766117ec565b602002602001015190505f86602001518481518110610a9757610a976117ec565b602002602001015190505f6001600160a01b0316816001600160a01b031603610b025760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642065786368616e6765206164647265737300000000000000006044820152606401610248565b610b166001600160a01b0384168288610f6a565b86606001518481518110610b2c57610b2c6117ec565b602002602001015115610b6f57610b68838383898b604001518981518110610b5657610b566117ec565b60200260200101518c60a00151610ff9565b9550610b83565b610b80838383898b60a0015161117d565b95505b50925050600101610a1e565b505f865f81518110610ba357610ba36117ec565b602002602001015190505f865f81518110610bc057610bc06117ec565b602002602001015182610bd39190611b3d565b905080841015610c255760405162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742066756e647320666f722072657061796d656e746044820152606401610248565b5f610c308286611b50565b90508560800151811015610c865760405162461bcd60e51b815260206004820152601e60248201527f50726f6669742062656c6f77206d696e696d756d207468726573686f6c6400006044820152606401610248565b5f5b8a51811015610d2d57610d257f00000000000000000000000000000000000000000000000000000000000000008a8381518110610cc757610cc76117ec565b60200260200101518c8481518110610ce157610ce16117ec565b6020026020010151610cf39190611b3d565b8d8481518110610d0557610d056117ec565b60200260200101516001600160a01b0316610f0b9092919063ffffffff16565b600101610c88565b506001548651516040805184815260ff90921660208301526001600160a01b03909216917ffac37cdddfd7f291801e7d8107a709cf227f494d3c10c42194ad1fdfb2d9ef6e910160405180910390a2505050505050610d8b60015f55565b50505050565b6001546001600160a01b03163314610dbb5760405162461bcd60e51b8152600401610248906117c9565b6001600160a01b038116610e055760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103732bb9037bbb732b960791b6044820152606401610248565b6001546001600160a01b0390811690821603610e535760405162461bcd60e51b815260206004820152600d60248201526c20b63932b0b23c9037bbb732b960991b6044820152606401610248565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610eb9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edd91906118dd565b92915050565b60025f5403610f0557604051633ee5aeb560e01b815260040160405180910390fd5b60025f55565b6040516001600160a01b0383811660248301526044820183905261045e91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611346565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610fbb84826113b2565b610d8b576040516001600160a01b0384811660248301525f6044830152610fef91869182169063095ea7b390606401610f38565b610d8b8482611346565b5f5f61100585846113fb565b90505f6040518061010001604052808a6001600160a01b03168152602001896001600160a01b031681526020018662ffffff168152602001306001600160a01b031681526020014261012c61105a9190611b3d565b81526020018781526020018381526020015f6001600160a01b03168152509050866001600160a01b031663414bf389826040518263ffffffff1660e01b81526004016110a69190611b63565b6020604051808303815f875af11580156110c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e691906118dd565b9250818310156111385760405162461bcd60e51b815260206004820152601b60248201527f536c69707061676520746f6c6572616e636520657863656564656400000000006044820152606401610248565b60408051838152602081018590527fb6094abf4e604ae0f85e37ab40510f093f6857d01c802ec39d20a3d67ec8f44d910160405180910390a150509695505050505050565b5f5f61118984846113fb565b6040805160028082526060820183529293505f92909160208301908036833701905050905087815f815181106111c1576111c16117ec565b60200260200101906001600160a01b031690816001600160a01b03168152505086816001815181106111f5576111f56117ec565b6001600160a01b0392831660209182029290920101525f9087166338ed1739878585306112244261012c611b3d565b6040518663ffffffff1660e01b8152600401611244959493929190611be0565b5f604051808303815f875af115801561125f573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112869190810190611c50565b905080600182516112979190611b50565b815181106112a7576112a76117ec565b60200260200101519350828410156113015760405162461bcd60e51b815260206004820152601b60248201527f536c69707061676520746f6c6572616e636520657863656564656400000000006044820152606401610248565b60408051848152602081018690527fb6094abf4e604ae0f85e37ab40510f093f6857d01c802ec39d20a3d67ec8f44d910160405180910390a150505095945050505050565b5f5f60205f8451602086015f885af180611365576040513d5f823e3d81fd5b50505f513d9150811561137c578060011415611389565b6001600160a01b0384163b155b15610d8b57604051635274afe760e01b81526001600160a01b0385166004820152602401610248565b5f5f5f5f60205f8651602088015f8a5af192503d91505f5190508280156113f1575081156113e357806001146113f1565b5f866001600160a01b03163b115b9695505050505050565b5f60328211156114415760405162461bcd60e51b81526020600482015260116024820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b6044820152606401610248565b61271061144e8382611b50565b6114589085611cd6565b6114629190611ced565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b038111828210171561149f5761149f611469565b60405290565b604051601f8201601f191681016001600160401b03811182821017156114cd576114cd611469565b604052919050565b5f6001600160401b038211156114ed576114ed611469565b5060051b60200190565b6001600160a01b03811681146105fa575f5ffd5b5f82601f83011261151a575f5ffd5b813561152d611528826114d5565b6114a5565b8082825260208201915060208360051b86010192508583111561154e575f5ffd5b602085015b83811015611574578035611566816114f7565b835260209283019201611553565b5095945050505050565b5f82601f83011261158d575f5ffd5b813561159b611528826114d5565b8082825260208201915060208360051b8601019250858311156115bc575f5ffd5b602085015b838110156115745780358352602092830192016115c1565b5f82601f8301126115e8575f5ffd5b81356001600160401b0381111561160157611601611469565b611614601f8201601f19166020016114a5565b818152846020838601011115611628575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f60608486031215611656575f5ffd5b83356001600160401b0381111561166b575f5ffd5b6116778682870161150b565b93505060208401356001600160401b03811115611692575f5ffd5b61169e8682870161157e565b92505060408401356001600160401b038111156116b9575f5ffd5b6116c5868287016115d9565b9150509250925092565b5f602082840312156116df575f5ffd5b8135611462816114f7565b5f5f604083850312156116fb575f5ffd5b8235611706816114f7565b946020939093013593505050565b5f5f5f5f60808587031215611727575f5ffd5b84356001600160401b0381111561173c575f5ffd5b6117488782880161150b565b94505060208501356001600160401b03811115611763575f5ffd5b61176f8782880161157e565b93505060408501356001600160401b0381111561178a575f5ffd5b6117968782880161157e565b92505060608501356001600160401b038111156117b1575f5ffd5b6117bd878288016115d9565b91505092959194509250565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03851681526080602080830182905285519183018290525f919086019060a0840190835b818110156118805783516001600160a01b0316835260209384019390920191600101611859565b50508381036040850152855180825260209182019250908601905f90815b818110156118bc57835185526020948501949093019260010161189e565b5050505082810360608401526118d28185611800565b979650505050505050565b5f602082840312156118ed575f5ffd5b5051919050565b5f82601f830112611903575f5ffd5b8151611911611528826114d5565b8082825260208201915060208360051b860101925085831115611932575f5ffd5b602085015b8381101561157457805161194a816114f7565b835260209283019201611937565b5f82601f830112611967575f5ffd5b8151611975611528826114d5565b8082825260208201915060208360051b860101925085831115611996575f5ffd5b602085015b8381101561157457805162ffffff811681146119b5575f5ffd5b83526020928301920161199b565b5f82601f8301126119d2575f5ffd5b81516119e0611528826114d5565b8082825260208201915060208360051b860101925085831115611a01575f5ffd5b602085015b838110156115745780518015158114611a1d575f5ffd5b835260209283019201611a06565b5f60208284031215611a3b575f5ffd5b81516001600160401b03811115611a50575f5ffd5b820160c08185031215611a61575f5ffd5b611a6961147d565b81516001600160401b03811115611a7e575f5ffd5b611a8a868285016118f4565b82525060208201516001600160401b03811115611aa5575f5ffd5b611ab1868285016118f4565b60208301525060408201516001600160401b03811115611acf575f5ffd5b611adb86828501611958565b60408301525060608201516001600160401b03811115611af9575f5ffd5b611b05868285016119c3565b6060830152506080828101519082015260a091820151918101919091529392505050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610edd57610edd611b29565b81810381811115610edd57610edd611b29565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff169083015260608084015191821690830152610100820190506080830151608083015260a083015160a083015260c083015160c083015260e0830151611bd960e08401826001600160a01b03169052565b5092915050565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611c305783516001600160a01b0316835260209384019390920191600101611c09565b50506001600160a01b039590951660608401525050608001529392505050565b5f60208284031215611c60575f5ffd5b81516001600160401b03811115611c75575f5ffd5b8201601f81018413611c85575f5ffd5b8051611c93611528826114d5565b8082825260208201915060208360051b850101925086831115611cb4575f5ffd5b6020840193505b828410156113f1578351825260209384019390910190611cbb565b8082028115828204841417610edd57610edd611b29565b5f82611d0757634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212208ec4c5e728e5492fb182da1318cd974daf44eedbfbc1e6fa4080c5a827ecf4a864736f6c634300081e0033","sourceMap":"1374:11002:0:-:0;;;2721:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1857:1:21;2061:7;:21;-1:-1:-1;;;;;2767:20:0;;2759:54;;;;-1:-1:-1;;;2759:54:0;;511:2:24;2759:54:0;;;493:21:24;550:2;530:18;;;523:30;589:23;569:18;;;562:51;630:18;;2759:54:0;;;;;;;;2823:5;:18;;-1:-1:-1;;;;;;2823:18:0;2831:10;2823:18;;;-1:-1:-1;;;;;2851:30:0;;;1374:11002;;14:290:24;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:24;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:24:o;309:345::-;1374:11002:0;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061009d575f3560e01c8063e229cd7611610062578063e229cd7614610166578063ec52303b1461017a578063f04f27071461018e578063f2fde38b146101ad578063f8b2cb4f146101cc578063fbfa77cf146101eb575f5ffd5b8063176243c4146100a85780636ff1c9bc146100c95780638da5cb5b146100e8578063d35c9a0714610124578063e1f1c4a714610143575f5ffd5b366100a457005b5f5ffd5b3480156100b3575f5ffd5b506100c76100c2366004611644565b61021e565b005b3480156100d4575f5ffd5b506100c76100e33660046116cf565b610463565b3480156100f3575f5ffd5b50600154610107906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561012f575f5ffd5b506100c761013e3660046116ea565b6105fd565b34801561014e575f5ffd5b5061015861271081565b60405190815260200161011b565b348015610171575f5ffd5b50610158603281565b348015610185575f5ffd5b50610158600581565b348015610199575f5ffd5b506100c76101a8366004611714565b6107a5565b3480156101b8575f5ffd5b506100c76101c73660046116cf565b610d91565b3480156101d7575f5ffd5b506101586101e63660046116cf565b610e75565b3480156101f6575f5ffd5b506101077f000000000000000000000000000000000000000000000000000000000000000081565b6001546001600160a01b031633146102515760405162461bcd60e51b8152600401610248906117c9565b60405180910390fd5b610259610ee3565b5f83511161029f5760405162461bcd60e51b8152602060048201526013602482015272139bc81d1bdad95b9cc81cdc1958da599a5959606a1b6044820152606401610248565b81518351146102e85760405162461bcd60e51b8152602060048201526015602482015274082e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606401610248565b600154600160a01b900460ff16156103425760405162461bcd60e51b815260206004820152601960248201527f466c617368206c6f616e20616c726561647920616374697665000000000000006044820152606401610248565b6001805460ff60a01b1916600160a01b179055825183905f90610367576103676117ec565b60200260200101516001600160a01b03167f591ad3206c771ad9f89e5fce3ba3fd39fe164da7093471fce70eaf468c495f3c835f815181106103ab576103ab6117ec565b60200260200101516040516103c291815260200190565b60405180910390a2604051632e1c224f60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635c38449e9061041c90309087908790879060040161182e565b5f604051808303815f87803b158015610433575f5ffd5b505af1158015610445573d5f5f3e3d5ffd5b50506001805460ff60a01b191681555f555061045e9050565b505050565b6001546001600160a01b0316331461048d5760405162461bcd60e51b8152600401610248906117c9565b610495610ee3565b6001600160a01b0381166105245747806104e65760405162461bcd60e51b81526020600482015260126024820152714e6f2045544820746f20776974686472617760701b6044820152606401610248565b6001546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051d573d5f5f3e3d5ffd5b50506105f1565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610568573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061058c91906118dd565b90505f81116105d55760405162461bcd60e51b81526020600482015260156024820152744e6f20746f6b656e7320746f20776974686472617760581b6044820152606401610248565b6001546105ef906001600160a01b03848116911683610f0b565b505b6105fa60015f55565b50565b6001546001600160a01b031633146106275760405162461bcd60e51b8152600401610248906117c9565b61062f610ee3565b6001600160a01b03821661067d5760405162461bcd60e51b8152602060048201526015602482015274496e76616c696420746f6b656e206164647265737360581b6044820152606401610248565b5f81116106cc5760405162461bcd60e51b815260206004820152601760248201527f416d6f756e74206d75737420626520706f7369746976650000000000000000006044820152606401610248565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610710573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061073491906118dd565b90508181101561077d5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610248565b600154610797906001600160a01b03858116911684610f0b565b506107a160015f55565b5050565b6107ad610ee3565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461081b5760405162461bcd60e51b815260206004820152601360248201527213db9b1e481d985d5b1d0818d85b8818d85b1b606a1b6044820152606401610248565b600154600160a01b900460ff166108805760405162461bcd60e51b8152602060048201526024808201527f466c617368206c6f616e206e6f7420696e6974696174656420627920636f6e746044820152631c9858dd60e21b6064820152608401610248565b5f818060200190518101906108959190611a2b565b90506002815f01515110156108dd5760405162461bcd60e51b815260206004820152600e60248201526d14185d1a081d1bdbc81cda1bdc9d60921b6044820152606401610248565b805151600510156109305760405162461bcd60e51b815260206004820152601b60248201527f506174682065786365656473206d6178696d756d206c656e67746800000000006044820152606401610248565b602081015151610941906001611b3d565b8151511461098a5760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420706174682073747275637475726560501b6044820152606401610248565b60328160a0015111156109df5760405162461bcd60e51b815260206004820152601b60248201527f536c69707061676520746f6c6572616e636520746f6f206869676800000000006044820152606401610248565b5f845f815181106109f2576109f26117ec565b602002602001015190505f865f81518110610a0f57610a0f6117ec565b602002602001015190505f5f90505b835151610a2d90600190611b50565b811015610b8f575f845f01518281518110610a4a57610a4a6117ec565b602002602001015190505f855f0151836001610a669190611b3d565b81518110610a7657610a766117ec565b602002602001015190505f86602001518481518110610a9757610a976117ec565b602002602001015190505f6001600160a01b0316816001600160a01b031603610b025760405162461bcd60e51b815260206004820152601860248201527f496e76616c69642065786368616e6765206164647265737300000000000000006044820152606401610248565b610b166001600160a01b0384168288610f6a565b86606001518481518110610b2c57610b2c6117ec565b602002602001015115610b6f57610b68838383898b604001518981518110610b5657610b566117ec565b60200260200101518c60a00151610ff9565b9550610b83565b610b80838383898b60a0015161117d565b95505b50925050600101610a1e565b505f865f81518110610ba357610ba36117ec565b602002602001015190505f865f81518110610bc057610bc06117ec565b602002602001015182610bd39190611b3d565b905080841015610c255760405162461bcd60e51b815260206004820181905260248201527f496e73756666696369656e742066756e647320666f722072657061796d656e746044820152606401610248565b5f610c308286611b50565b90508560800151811015610c865760405162461bcd60e51b815260206004820152601e60248201527f50726f6669742062656c6f77206d696e696d756d207468726573686f6c6400006044820152606401610248565b5f5b8a51811015610d2d57610d257f00000000000000000000000000000000000000000000000000000000000000008a8381518110610cc757610cc76117ec565b60200260200101518c8481518110610ce157610ce16117ec565b6020026020010151610cf39190611b3d565b8d8481518110610d0557610d056117ec565b60200260200101516001600160a01b0316610f0b9092919063ffffffff16565b600101610c88565b506001548651516040805184815260ff90921660208301526001600160a01b03909216917ffac37cdddfd7f291801e7d8107a709cf227f494d3c10c42194ad1fdfb2d9ef6e910160405180910390a2505050505050610d8b60015f55565b50505050565b6001546001600160a01b03163314610dbb5760405162461bcd60e51b8152600401610248906117c9565b6001600160a01b038116610e055760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b2103732bb9037bbb732b960791b6044820152606401610248565b6001546001600160a01b0390811690821603610e535760405162461bcd60e51b815260206004820152600d60248201526c20b63932b0b23c9037bbb732b960991b6044820152606401610248565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6040516370a0823160e01b81523060048201525f906001600160a01b038316906370a0823190602401602060405180830381865afa158015610eb9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edd91906118dd565b92915050565b60025f5403610f0557604051633ee5aeb560e01b815260040160405180910390fd5b60025f55565b6040516001600160a01b0383811660248301526044820183905261045e91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611346565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052610fbb84826113b2565b610d8b576040516001600160a01b0384811660248301525f6044830152610fef91869182169063095ea7b390606401610f38565b610d8b8482611346565b5f5f61100585846113fb565b90505f6040518061010001604052808a6001600160a01b03168152602001896001600160a01b031681526020018662ffffff168152602001306001600160a01b031681526020014261012c61105a9190611b3d565b81526020018781526020018381526020015f6001600160a01b03168152509050866001600160a01b031663414bf389826040518263ffffffff1660e01b81526004016110a69190611b63565b6020604051808303815f875af11580156110c2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e691906118dd565b9250818310156111385760405162461bcd60e51b815260206004820152601b60248201527f536c69707061676520746f6c6572616e636520657863656564656400000000006044820152606401610248565b60408051838152602081018590527fb6094abf4e604ae0f85e37ab40510f093f6857d01c802ec39d20a3d67ec8f44d910160405180910390a150509695505050505050565b5f5f61118984846113fb565b6040805160028082526060820183529293505f92909160208301908036833701905050905087815f815181106111c1576111c16117ec565b60200260200101906001600160a01b031690816001600160a01b03168152505086816001815181106111f5576111f56117ec565b6001600160a01b0392831660209182029290920101525f9087166338ed1739878585306112244261012c611b3d565b6040518663ffffffff1660e01b8152600401611244959493929190611be0565b5f604051808303815f875af115801561125f573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526112869190810190611c50565b905080600182516112979190611b50565b815181106112a7576112a76117ec565b60200260200101519350828410156113015760405162461bcd60e51b815260206004820152601b60248201527f536c69707061676520746f6c6572616e636520657863656564656400000000006044820152606401610248565b60408051848152602081018690527fb6094abf4e604ae0f85e37ab40510f093f6857d01c802ec39d20a3d67ec8f44d910160405180910390a150505095945050505050565b5f5f60205f8451602086015f885af180611365576040513d5f823e3d81fd5b50505f513d9150811561137c578060011415611389565b6001600160a01b0384163b155b15610d8b57604051635274afe760e01b81526001600160a01b0385166004820152602401610248565b5f5f5f5f60205f8651602088015f8a5af192503d91505f5190508280156113f1575081156113e357806001146113f1565b5f866001600160a01b03163b115b9695505050505050565b5f60328211156114415760405162461bcd60e51b81526020600482015260116024820152700a6d8d2e0e0c2ceca40e8dede40d0d2ced607b1b6044820152606401610248565b61271061144e8382611b50565b6114589085611cd6565b6114629190611ced565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b038111828210171561149f5761149f611469565b60405290565b604051601f8201601f191681016001600160401b03811182821017156114cd576114cd611469565b604052919050565b5f6001600160401b038211156114ed576114ed611469565b5060051b60200190565b6001600160a01b03811681146105fa575f5ffd5b5f82601f83011261151a575f5ffd5b813561152d611528826114d5565b6114a5565b8082825260208201915060208360051b86010192508583111561154e575f5ffd5b602085015b83811015611574578035611566816114f7565b835260209283019201611553565b5095945050505050565b5f82601f83011261158d575f5ffd5b813561159b611528826114d5565b8082825260208201915060208360051b8601019250858311156115bc575f5ffd5b602085015b838110156115745780358352602092830192016115c1565b5f82601f8301126115e8575f5ffd5b81356001600160401b0381111561160157611601611469565b611614601f8201601f19166020016114a5565b818152846020838601011115611628575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f60608486031215611656575f5ffd5b83356001600160401b0381111561166b575f5ffd5b6116778682870161150b565b93505060208401356001600160401b03811115611692575f5ffd5b61169e8682870161157e565b92505060408401356001600160401b038111156116b9575f5ffd5b6116c5868287016115d9565b9150509250925092565b5f602082840312156116df575f5ffd5b8135611462816114f7565b5f5f604083850312156116fb575f5ffd5b8235611706816114f7565b946020939093013593505050565b5f5f5f5f60808587031215611727575f5ffd5b84356001600160401b0381111561173c575f5ffd5b6117488782880161150b565b94505060208501356001600160401b03811115611763575f5ffd5b61176f8782880161157e565b93505060408501356001600160401b0381111561178a575f5ffd5b6117968782880161157e565b92505060608501356001600160401b038111156117b1575f5ffd5b6117bd878288016115d9565b91505092959194509250565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03851681526080602080830182905285519183018290525f919086019060a0840190835b818110156118805783516001600160a01b0316835260209384019390920191600101611859565b50508381036040850152855180825260209182019250908601905f90815b818110156118bc57835185526020948501949093019260010161189e565b5050505082810360608401526118d28185611800565b979650505050505050565b5f602082840312156118ed575f5ffd5b5051919050565b5f82601f830112611903575f5ffd5b8151611911611528826114d5565b8082825260208201915060208360051b860101925085831115611932575f5ffd5b602085015b8381101561157457805161194a816114f7565b835260209283019201611937565b5f82601f830112611967575f5ffd5b8151611975611528826114d5565b8082825260208201915060208360051b860101925085831115611996575f5ffd5b602085015b8381101561157457805162ffffff811681146119b5575f5ffd5b83526020928301920161199b565b5f82601f8301126119d2575f5ffd5b81516119e0611528826114d5565b8082825260208201915060208360051b860101925085831115611a01575f5ffd5b602085015b838110156115745780518015158114611a1d575f5ffd5b835260209283019201611a06565b5f60208284031215611a3b575f5ffd5b81516001600160401b03811115611a50575f5ffd5b820160c08185031215611a61575f5ffd5b611a6961147d565b81516001600160401b03811115611a7e575f5ffd5b611a8a868285016118f4565b82525060208201516001600160401b03811115611aa5575f5ffd5b611ab1868285016118f4565b60208301525060408201516001600160401b03811115611acf575f5ffd5b611adb86828501611958565b60408301525060608201516001600160401b03811115611af9575f5ffd5b611b05868285016119c3565b6060830152506080828101519082015260a091820151918101919091529392505050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610edd57610edd611b29565b81810381811115610edd57610edd611b29565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff169083015260608084015191821690830152610100820190506080830151608083015260a083015160a083015260c083015160c083015260e0830151611bd960e08401826001600160a01b03169052565b5092915050565b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611c305783516001600160a01b0316835260209384019390920191600101611c09565b50506001600160a01b039590951660608401525050608001529392505050565b5f60208284031215611c60575f5ffd5b81516001600160401b03811115611c75575f5ffd5b8201601f81018413611c85575f5ffd5b8051611c93611528826114d5565b8082825260208201915060208360051b850101925086831115611cb4575f5ffd5b6020840193505b828410156113f1578351825260209384019390910190611cbb565b8082028115828204841417610edd57610edd611b29565b5f82611d0757634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212208ec4c5e728e5492fb182da1318cd974daf44eedbfbc1e6fa4080c5a827ecf4a864736f6c634300081e0033","sourceMap":"1374:11002:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3206:724;;;;;;;;;;-1:-1:-1;3206:724:0;;;;;:::i;:::-;;:::i;:::-;;11171:588;;;;;;;;;;-1:-1:-1;11171:588:0;;;;;:::i;:::-;;:::i;1465:20::-;;;;;;;;;;-1:-1:-1;1465:20:0;;;;-1:-1:-1;;;;;1465:20:0;;;;;;-1:-1:-1;;;;;4462:32:24;;;4444:51;;4432:2;4417:18;1465:20:0;;;;;;;;10586:434;;;;;;;;;;-1:-1:-1;10586:434:0;;;;;:::i;:::-;;:::i;1865:44::-;;;;;;;;;;;;1904:5;1865:44;;;;;5032:25:24;;;5020:2;5005:18;1865:44:0;4886:177:24;1814:45:0;;;;;;;;;;;;1857:2;1814:45;;1691:43;;;;;;;;;;;;1733:1;1691:43;;4325:2984;;;;;;;;;;-1:-1:-1;4325:2984:0;;;;;:::i;:::-;;:::i;11842:212::-;;;;;;;;;;-1:-1:-1;11842:212:0;;;;;:::i;:::-;;:::i;12199:140::-;;;;;;;;;;-1:-1:-1;12199:140:0;;;;;:::i;:::-;;:::i;1491:37::-;;;;;;;;;;;;;;;3206:724;2678:5;;-1:-1:-1;;;;;2678:5:0;2664:10;:19;2656:41;;;;-1:-1:-1;;;2656:41:0;;;;;;;:::i;:::-;;;;;;;;;2500:21:21::1;:19;:21::i;:::-;3397:1:0::2;3381:6;:13;:17;3373:49;;;::::0;-1:-1:-1;;;3373:49:0;;6912:2:24;3373:49:0::2;::::0;::::2;6894:21:24::0;6951:2;6931:18;;;6924:30;-1:-1:-1;;;6970:18:24;;;6963:49;7029:18;;3373:49:0::2;6710:343:24::0;3373:49:0::2;3457:7;:14;3440:6;:13;:31;3432:65;;;::::0;-1:-1:-1;;;3432:65:0;;7260:2:24;3432:65:0::2;::::0;::::2;7242:21:24::0;7299:2;7279:18;;;7272:30;-1:-1:-1;;;7318:18:24;;;7311:51;7379:18;;3432:65:0::2;7058:345:24::0;3432:65:0::2;3516:16;::::0;-1:-1:-1;;;3516:16:0;::::2;;;3515:17;3507:55;;;::::0;-1:-1:-1;;;3507:55:0;;7610:2:24;3507:55:0::2;::::0;::::2;7592:21:24::0;7649:2;7629:18;;;7622:30;7688:27;7668:18;;;7661:55;7733:18;;3507:55:0::2;7408:349:24::0;3507:55:0::2;3647:4;3628:23:::0;;-1:-1:-1;;;;3628:23:0::2;-1:-1:-1::0;;;3628:23:0::2;::::0;;3694:9;;:6;;3628:23;;3694:9:::2;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;3667:50:0::2;;3706:7;3714:1;3706:10;;;;;;;;:::i;:::-;;;;;;;3667:50;;;;5032:25:24::0;;5020:2;5005:18;;4886:177;3667:50:0::2;;;;;;;;3778:53;::::0;-1:-1:-1;;;3778:53:0;;-1:-1:-1;;;;;3778:5:0::2;:15;::::0;::::2;::::0;:53:::2;::::0;3802:4:::2;::::0;3809:6;;3817:7;;3826:4;;3778:53:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;3899:16:0::2;:24:::0;;-1:-1:-1;;;;3899:24:0::2;::::0;;-1:-1:-1;3068:21:21;-1:-1:-1;2542:20:21::1;::::0;-1:-1:-1;2888:208:21;2542:20:::1;3206:724:0::0;;;:::o;11171:588::-;2678:5;;-1:-1:-1;;;;;2678:5:0;2664:10;:19;2656:41;;;;-1:-1:-1;;;2656:41:0;;;;;;;:::i;:::-;2500:21:21::1;:19;:21::i;:::-;-1:-1:-1::0;;;;;11259:19:0;::::2;11255:498;;11340:21;11383:11:::0;11375:42:::2;;;::::0;-1:-1:-1;;;11375:42:0;;9845:2:24;11375:42:0::2;::::0;::::2;9827:21:24::0;9884:2;9864:18;;;9857:30;-1:-1:-1;;;9903:18:24;;;9896:48;9961:18;;11375:42:0::2;9643:342:24::0;11375:42:0::2;11439:5;::::0;11431:32:::2;::::0;-1:-1:-1;;;;;11439:5:0;;::::2;::::0;11431:32;::::2;;;::::0;11455:7;;11439:5:::2;11431:32:::0;11439:5;11431:32;11455:7;11439:5;11431:32;::::2;;;;;;;;;;;;;;;;;;;;11280:194;11255:498;;;11542:38;::::0;-1:-1:-1;;;11542:38:0;;11574:4:::2;11542:38;::::0;::::2;4444:51:24::0;11524:15:0::2;::::0;-1:-1:-1;;;;;11542:23:0;::::2;::::0;::::2;::::0;4417:18:24;;11542:38:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11524:56;;11612:1;11602:7;:11;11594:45;;;::::0;-1:-1:-1;;;11594:45:0;;10427:2:24;11594:45:0::2;::::0;::::2;10409:21:24::0;10466:2;10446:18;;;10439:30;-1:-1:-1;;;10485:18:24;;;10478:51;10546:18;;11594:45:0::2;10225:345:24::0;11594:45:0::2;11727:5;::::0;11700:42:::2;::::0;-1:-1:-1;;;;;11700:26:0;;::::2;::::0;11727:5:::2;11734:7:::0;11700:26:::2;:42::i;:::-;11480:273;11255:498;2542:20:21::1;1857:1:::0;3068:7;:21;2888:208;2542:20:::1;11171:588:0::0;:::o;10586:434::-;2678:5;;-1:-1:-1;;;;;2678:5:0;2664:10;:19;2656:41;;;;-1:-1:-1;;;2656:41:0;;;;;;;:::i;:::-;2500:21:21::1;:19;:21::i;:::-;-1:-1:-1::0;;;;;10691:19:0;::::2;10683:53;;;::::0;-1:-1:-1;;;10683:53:0;;10777:2:24;10683:53:0::2;::::0;::::2;10759:21:24::0;10816:2;10796:18;;;10789:30;-1:-1:-1;;;10835:18:24;;;10828:51;10896:18;;10683:53:0::2;10575:345:24::0;10683:53:0::2;10763:1;10754:6;:10;10746:46;;;::::0;-1:-1:-1;;;10746:46:0;;11127:2:24;10746:46:0::2;::::0;::::2;11109:21:24::0;11166:2;11146:18;;;11139:30;11205:25;11185:18;;;11178:53;11248:18;;10746:46:0::2;10925:347:24::0;10746:46:0::2;10821:38;::::0;-1:-1:-1;;;10821:38:0;;10853:4:::2;10821:38;::::0;::::2;4444:51:24::0;10803:15:0::2;::::0;-1:-1:-1;;;;;10821:23:0;::::2;::::0;::::2;::::0;4417:18:24;;10821:38:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10803:56;;10888:6;10877:7;:17;;10869:50;;;::::0;-1:-1:-1;;;10869:50:0;;11479:2:24;10869:50:0::2;::::0;::::2;11461:21:24::0;11518:2;11498:18;;;11491:30;-1:-1:-1;;;11537:18:24;;;11530:50;11597:18;;10869:50:0::2;11277:344:24::0;10869:50:0::2;10999:5;::::0;10972:41:::2;::::0;-1:-1:-1;;;;;10972:26:0;;::::2;::::0;10999:5:::2;11006:6:::0;10972:26:::2;:41::i;:::-;10673:347;2542:20:21::1;1857:1:::0;3068:7;:21;2888:208;2542:20:::1;10586:434:0::0;;:::o;4325:2984::-;2500:21:21;:19;:21::i;:::-;4574:10:0::1;-1:-1:-1::0;;;;;4596:5:0::1;4574:28;;4566:60;;;::::0;-1:-1:-1;;;4566:60:0;;11828:2:24;4566:60:0::1;::::0;::::1;11810:21:24::0;11867:2;11847:18;;;11840:30;-1:-1:-1;;;11886:18:24;;;11879:49;11945:18;;4566:60:0::1;11626:343:24::0;4566:60:0::1;4724:16;::::0;-1:-1:-1;;;4724:16:0;::::1;;;4716:65;;;::::0;-1:-1:-1;;;4716:65:0;;12176:2:24;4716:65:0::1;::::0;::::1;12158:21:24::0;12215:2;12195:18;;;12188:30;12254:34;12234:18;;;12227:62;-1:-1:-1;;;12305:18:24;;;12298:34;12349:19;;4716:65:0::1;11974:400:24::0;4716:65:0::1;4825:25;4864:8;4853:37;;;;;;;;;;;;:::i;:::-;4825:65;;4980:1;4958:4;:11;;;:18;:23;;4950:50;;;::::0;-1:-1:-1;;;4950:50:0;;16355:2:24;4950:50:0::1;::::0;::::1;16337:21:24::0;16394:2;16374:18;;;16367:30;-1:-1:-1;;;16413:18:24;;;16406:44;16467:18;;4950:50:0::1;16153:338:24::0;4950:50:0::1;5018:11:::0;;:18;1733:1:::1;-1:-1:-1::0;5018:37:0::1;5010:77;;;::::0;-1:-1:-1;;;5010:77:0;;16698:2:24;5010:77:0::1;::::0;::::1;16680:21:24::0;16737:2;16717:18;;;16710:30;16776:29;16756:18;;;16749:57;16823:18;;5010:77:0::1;16496:351:24::0;5010:77:0::1;5127:14;::::0;::::1;::::0;:21;:25:::1;::::0;5151:1:::1;5127:25;:::i;:::-;5105:11:::0;;:18;:47:::1;5097:82;;;::::0;-1:-1:-1;;;5097:82:0;;17316:2:24;5097:82:0::1;::::0;::::1;17298:21:24::0;17355:2;17335:18;;;17328:30;-1:-1:-1;;;17374:18:24;;;17367:52;17436:18;;5097:82:0::1;17114:346:24::0;5097:82:0::1;1857:2;5254:4;:16;;;:36;;5246:76;;;::::0;-1:-1:-1;;;5246:76:0;;17667:2:24;5246:76:0::1;::::0;::::1;17649:21:24::0;17706:2;17686:18;;;17679:30;17745:29;17725:18;;;17718:57;17792:18;;5246:76:0::1;17465:351:24::0;5246:76:0::1;5368:21;5392:7;5400:1;5392:10;;;;;;;;:::i;:::-;;;;;;;5368:34;;5412:20;5443:6;5450:1;5443:9;;;;;;;;:::i;:::-;;;;;;;5412:41;;5469:9;5481:1;5469:13;;5464:1103;5488:11:::0;;:18;:22:::1;::::0;5509:1:::1;::::0;5488:22:::1;:::i;:::-;5484:1;:26;5464:1103;;;5531:15;5549:4;:11;;;5561:1;5549:14;;;;;;;;:::i;:::-;;;;;;;5531:32;;5577:16;5596:4;:11;;;5608:1;5612;5608:5;;;;:::i;:::-;5596:18;;;;;;;;:::i;:::-;;;;;;;5577:37;;5628:16;5647:4;:14;;;5662:1;5647:17;;;;;;;;:::i;:::-;;;;;;;5628:36;;5707:1;-1:-1:-1::0;;;;;5687:22:0::1;:8;-1:-1:-1::0;;;;;5687:22:0::1;::::0;5679:59:::1;;;::::0;-1:-1:-1;;;5679:59:0;;18156:2:24;5679:59:0::1;::::0;::::1;18138:21:24::0;18195:2;18175:18;;;18168:30;18234:26;18214:18;;;18207:54;18278:18;;5679:59:0::1;17954:348:24::0;5679:59:0::1;5837:53;-1:-1:-1::0;;;;;5837:28:0;::::1;5866:8:::0;5876:13;5837:28:::1;:53::i;:::-;5909:4;:9;;;5919:1;5909:12;;;;;;;;:::i;:::-;;;;;;;5905:614;;;5992:228;6028:7;6057:8;6087;6117:13;6152:4;:9;;;6162:1;6152:12;;;;;;;;:::i;:::-;;;;;;;6186:4;:16;;;5992:14;:228::i;:::-;5976:244;;5905:614;;;6310:194;6346:7;6375:8;6405;6435:13;6470:4;:16;;;6310:14;:194::i;:::-;6294:210;;5905:614;-1:-1:-1::0;6548:8:0;-1:-1:-1;;5512:3:0::1;;5464:1103;;;;6605:18;6626:7;6634:1;6626:10;;;;;;;;:::i;:::-;;;;;;;6605:31;;6646:22;6684:10;6695:1;6684:13;;;;;;;;:::i;:::-;;;;;;;6671:10;:26;;;;:::i;:::-;6646:51;;6764:14;6747:13;:31;;6739:76;;;::::0;-1:-1:-1;;;6739:76:0;;18509:2:24;6739:76:0::1;::::0;::::1;18491:21:24::0;;;18528:18;;;18521:30;18587:34;18567:18;;;18560:62;18639:18;;6739:76:0::1;18307:356:24::0;6739:76:0::1;6826:14;6843:30;6859:14:::0;6843:13;:30:::1;:::i;:::-;6826:47;;6901:4;:14;;;6891:6;:24;;6883:67;;;::::0;-1:-1:-1;;;6883:67:0;;18870:2:24;6883:67:0::1;::::0;::::1;18852:21:24::0;18909:2;18889:18;;;18882:30;18948:32;18928:18;;;18921:60;18998:18;;6883:67:0::1;18668:354:24::0;6883:67:0::1;7022:9;7017:135;7041:6;:13;7037:1;:17;7017:135;;;7075:66;7106:5;7127:10;7138:1;7127:13;;;;;;;;:::i;:::-;;;;;;;7114:7;7122:1;7114:10;;;;;;;;:::i;:::-;;;;;;;:26;;;;:::i;:::-;7075:6;7082:1;7075:9;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;7075:22:0::1;;;:66;;;;;:::i;:::-;7056:3;;7017:135;;;-1:-1:-1::0;7207:5:0::1;::::0;7228:11;;:18;7189:59:::1;::::0;;19197:25:24;;;19270:4;19258:17;;;19253:2;19238:18;;19231:45;-1:-1:-1;;;;;7207:5:0;;::::1;::::0;7189:59:::1;::::0;19170:18:24;7189:59:0::1;;;;;;;4513:2796;;;;;;2542:20:21::0;1857:1;3068:7;:21;2888:208;2542:20;4325:2984:0;;;;:::o;11842:212::-;2678:5;;-1:-1:-1;;;;;2678:5:0;2664:10;:19;2656:41;;;;-1:-1:-1;;;2656:41:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11924:22:0;::::1;11916:52;;;::::0;-1:-1:-1;;;11916:52:0;;19489:2:24;11916:52:0::1;::::0;::::1;19471:21:24::0;19528:2;19508:18;;;19501:30;-1:-1:-1;;;19547:18:24;;;19540:47;19604:18;;11916:52:0::1;19287:341:24::0;11916:52:0::1;11998:5;::::0;-1:-1:-1;;;;;11998:5:0;;::::1;11986:17:::0;;::::1;::::0;11978:43:::1;;;::::0;-1:-1:-1;;;11978:43:0;;19835:2:24;11978:43:0::1;::::0;::::1;19817:21:24::0;19874:2;19854:18;;;19847:30;-1:-1:-1;;;19893:18:24;;;19886:43;19946:18;;11978:43:0::1;19633:337:24::0;11978:43:0::1;12031:5;:16:::0;;-1:-1:-1;;;;;;12031:16:0::1;-1:-1:-1::0;;;;;12031:16:0;;;::::1;::::0;;;::::1;::::0;;11842:212::o;12199:140::-;12294:38;;-1:-1:-1;;;12294:38:0;;12326:4;12294:38;;;4444:51:24;12257:15:0;;-1:-1:-1;;;;;12294:23:0;;;;;4417:18:24;;12294:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12284:48;12199:140;-1:-1:-1;;12199:140:0:o;2575:307:21:-;1899:1;2702:7;;:18;2698:86;;2743:30;;-1:-1:-1;;;2743:30:21;;;;;;;;;;;2698:86;1899:1;2858:7;:17;2575:307::o;1219:160:20:-;1328:43;;-1:-1:-1;;;;;20167:32:24;;;1328:43:20;;;20149:51:24;20216:18;;;20209:34;;;1301:71:20;;1321:5;;1343:14;;;;;20122:18:24;;1328:43:20;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1328:43:20;;;;;;;;;;;1301:19;:71::i;5084:380::-;5199:47;;;-1:-1:-1;;;;;20167:32:24;;5199:47:20;;;20149:51:24;20216:18;;;;20209:34;;;5199:47:20;;;;;;;;;;20122:18:24;;;;5199:47:20;;;;;;;;-1:-1:-1;;;;;5199:47:20;-1:-1:-1;;;5199:47:20;;;5262:44;5214:13;5199:47;5262:23;:44::i;:::-;5257:201;;5349:43;;-1:-1:-1;;;;;20167:32:24;;;5349:43:20;;;20149:51:24;5389:1:20;20216:18:24;;;20209:34;5322:71:20;;5342:5;;5364:13;;;;;20122:18:24;;5349:43:20;19975:274:24;5322:71:20;5407:40;5427:5;5434:12;5407:19;:40::i;7448:1118:0:-;7647:17;7740:20;7763:45;7786:8;7796:11;7763:22;:45::i;:::-;7740:68;;7819:53;7875:425;;;;;;;;7955:7;-1:-1:-1;;;;;7875:425:0;;;;;7990:8;-1:-1:-1;;;;;7875:425:0;;;;;8021:3;7875:425;;;;;;8061:4;-1:-1:-1;;;;;7875:425:0;;;;;8094:15;8112:3;8094:21;;;;:::i;:::-;7875:425;;;;8164:8;7875:425;;;;8208:12;7875:425;;;;8284:1;-1:-1:-1;;;;;7875:425:0;;;;7819:481;;8340:8;-1:-1:-1;;;;;8323:43:0;;8367:6;8323:51;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8311:63;;8447:12;8434:9;:25;;8426:65;;;;-1:-1:-1;;;8426:65:0;;21627:2:24;8426:65:0;;;21609:21:24;21666:2;21646:18;;;21639:30;21705:29;21685:18;;;21678:57;21752:18;;8426:65:0;21425:351:24;8426:65:0;8507:52;;;21955:25:24;;;22011:2;21996:18;;21989:34;;;8507:52:0;;21928:18:24;8507:52:0;;;;;;;7666:900;;7448:1118;;;;;;;;:::o;8705:1028::-;8884:17;8977:20;9000:45;9023:8;9033:11;9000:22;:45::i;:::-;9084:16;;;9098:1;9084:16;;;;;;;;8977:68;;-1:-1:-1;9056:25:0;;9084:16;;;;;;;;;;;;-1:-1:-1;9084:16:0;9056:44;;9124:7;9110:8;9119:1;9110:11;;;;;;;;:::i;:::-;;;;;;:21;-1:-1:-1;;;;;9110:21:0;;;-1:-1:-1;;;;;9110:21:0;;;;;9155:8;9141;9150:1;9141:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9141:22:0;;;:11;;;;;;;;;:22;9174:28;;9205:64;;;9287:8;9313:12;9370:8;9404:4;9427:21;:15;9445:3;9427:21;:::i;:::-;9205:278;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9205:278:0;;;;;;;;;;;;:::i;:::-;9174:309;;9506:11;9539:1;9518:11;:18;:22;;;;:::i;:::-;9506:35;;;;;;;;:::i;:::-;;;;;;;9494:47;;9614:12;9601:9;:25;;9593:65;;;;-1:-1:-1;;;9593:65:0;;21627:2:24;9593:65:0;;;21609:21:24;21666:2;21646:18;;;21639:30;21705:29;21685:18;;;21678:57;21752:18;;9593:65:0;21425:351:24;9593:65:0;9674:52;;;21955:25:24;;;22011:2;21996:18;;21989:34;;;9674:52:0;;21928:18:24;9674:52:0;;;;;;;8903:830;;;8705:1028;;;;;;;:::o;8370:720:20:-;8450:18;8478:19;8616:4;8613:1;8606:4;8600:11;8593:4;8587;8583:15;8580:1;8573:5;8566;8561:60;8673:7;8663:176;;8717:4;8711:11;8762:16;8759:1;8754:3;8739:40;8808:16;8803:3;8796:29;8663:176;-1:-1:-1;;8916:1:20;8910:8;8866:16;;-1:-1:-1;8942:15:20;;:68;;8994:11;9009:1;8994:16;;8942:68;;;-1:-1:-1;;;;;8960:26:20;;;:31;8942:68;8938:146;;;9033:40;;-1:-1:-1;;;9033:40:20;;-1:-1:-1;;;;;4462:32:24;;9033:40:20;;;4444:51:24;4417:18;;9033:40:20;4298:203:24;9592:480:20;9675:4;9691:12;9713:18;9741:19;9875:4;9872:1;9865:4;9859:11;9852:4;9846;9842:15;9839:1;9832:5;9825;9820:60;9809:71;;9907:16;9893:30;;9957:1;9951:8;9936:23;;9985:7;:80;;;;-1:-1:-1;9997:15:20;;:67;;10048:11;10063:1;10048:16;9997:67;;;10044:1;10023:5;-1:-1:-1;;;;;10015:26:20;;:30;9997:67;9978:87;9592:480;-1:-1:-1;;;;;;9592:480:20:o;10056:353:0:-;10171:17;1857:2;10208:11;:31;;10200:61;;;;-1:-1:-1;;;10200:61:0;;24135:2:24;10200:61:0;;;24117:21:24;24174:2;24154:18;;;24147:30;-1:-1:-1;;;24193:18:24;;;24186:47;24250:18;;10200:61:0;23933:341:24;10200:61:0;1904:5;10359:26;10374:11;1904:5;10359:26;:::i;:::-;10347:39;;:8;:39;:::i;:::-;10346:56;;;;:::i;:::-;10334:68;10056:353;-1:-1:-1;;;10056:353:0:o;14:127:24:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:253;218:2;212:9;260:4;248:17;;-1:-1:-1;;;;;280:34:24;;316:22;;;277:62;274:88;;;342:18;;:::i;:::-;378:2;371:22;146:253;:::o;404:275::-;475:2;469:9;540:2;521:13;;-1:-1:-1;;517:27:24;505:40;;-1:-1:-1;;;;;560:34:24;;596:22;;;557:62;554:88;;;622:18;;:::i;:::-;658:2;651:22;404:275;;-1:-1:-1;404:275:24:o;684:191::-;752:4;-1:-1:-1;;;;;777:6:24;774:30;771:56;;;807:18;;:::i;:::-;-1:-1:-1;852:1:24;848:14;864:4;844:25;;684:191::o;880:139::-;-1:-1:-1;;;;;963:31:24;;953:42;;943:70;;1009:1;1006;999:12;1024:768;1086:5;1139:3;1132:4;1124:6;1120:17;1116:27;1106:55;;1157:1;1154;1147:12;1106:55;1197:6;1184:20;1224:72;1240:55;1288:6;1240:55;:::i;:::-;1224:72;:::i;:::-;1320:3;1344:6;1339:3;1332:19;1376:4;1371:3;1367:14;1360:21;;1437:4;1427:6;1424:1;1420:14;1412:6;1408:27;1404:38;1390:52;;1465:3;1457:6;1454:15;1451:35;;;1482:1;1479;1472:12;1451:35;1518:4;1510:6;1506:17;1532:229;1548:6;1543:3;1540:15;1532:229;;;1630:3;1617:17;1647:39;1680:5;1647:39;:::i;:::-;1699:18;;1746:4;1737:14;;;;1565;1532:229;;;-1:-1:-1;1779:7:24;1024:768;-1:-1:-1;;;;;1024:768:24:o;1797:731::-;1851:5;1904:3;1897:4;1889:6;1885:17;1881:27;1871:55;;1922:1;1919;1912:12;1871:55;1962:6;1949:20;1989:72;2005:55;2053:6;2005:55;:::i;1989:72::-;2085:3;2109:6;2104:3;2097:19;2141:4;2136:3;2132:14;2125:21;;2202:4;2192:6;2189:1;2185:14;2177:6;2173:27;2169:38;2155:52;;2230:3;2222:6;2219:15;2216:35;;;2247:1;2244;2237:12;2216:35;2283:4;2275:6;2271:17;2297:200;2313:6;2308:3;2305:15;2297:200;;;2405:17;;2435:18;;2482:4;2473:14;;;;2330;2297:200;;2533:558;2575:5;2628:3;2621:4;2613:6;2609:17;2605:27;2595:55;;2646:1;2643;2636:12;2595:55;2686:6;2673:20;-1:-1:-1;;;;;2708:6:24;2705:30;2702:56;;;2738:18;;:::i;:::-;2782:59;2829:2;2806:17;;-1:-1:-1;;2802:31:24;2835:4;2798:42;2782:59;:::i;:::-;2866:6;2857:7;2850:23;2920:3;2913:4;2904:6;2896;2892:19;2888:30;2885:39;2882:59;;;2937:1;2934;2927:12;2882:59;3002:6;2995:4;2987:6;2983:17;2976:4;2967:7;2963:18;2950:59;3058:1;3029:20;;;3051:4;3025:31;3018:42;;;;3033:7;2533:558;-1:-1:-1;;;2533:558:24:o;3096:828::-;3248:6;3256;3264;3317:2;3305:9;3296:7;3292:23;3288:32;3285:52;;;3333:1;3330;3323:12;3285:52;3373:9;3360:23;-1:-1:-1;;;;;3398:6:24;3395:30;3392:50;;;3438:1;3435;3428:12;3392:50;3461:69;3522:7;3513:6;3502:9;3498:22;3461:69;:::i;:::-;3451:79;;;3583:2;3572:9;3568:18;3555:32;-1:-1:-1;;;;;3602:8:24;3599:32;3596:52;;;3644:1;3641;3634:12;3596:52;3667:63;3722:7;3711:8;3700:9;3696:24;3667:63;:::i;:::-;3657:73;;;3783:2;3772:9;3768:18;3755:32;-1:-1:-1;;;;;3802:8:24;3799:32;3796:52;;;3844:1;3841;3834:12;3796:52;3867:51;3910:7;3899:8;3888:9;3884:24;3867:51;:::i;:::-;3857:61;;;3096:828;;;;;:::o;3929:255::-;3988:6;4041:2;4029:9;4020:7;4016:23;4012:32;4009:52;;;4057:1;4054;4047:12;4009:52;4096:9;4083:23;4115:39;4148:5;4115:39;:::i;4506:375::-;4574:6;4582;4635:2;4623:9;4614:7;4610:23;4606:32;4603:52;;;4651:1;4648;4641:12;4603:52;4690:9;4677:23;4709:39;4742:5;4709:39;:::i;:::-;4767:5;4845:2;4830:18;;;;4817:32;;-1:-1:-1;;;4506:375:24:o;5068:1071::-;5254:6;5262;5270;5278;5331:3;5319:9;5310:7;5306:23;5302:33;5299:53;;;5348:1;5345;5338:12;5299:53;5388:9;5375:23;-1:-1:-1;;;;;5413:6:24;5410:30;5407:50;;;5453:1;5450;5443:12;5407:50;5476:69;5537:7;5528:6;5517:9;5513:22;5476:69;:::i;:::-;5466:79;;;5598:2;5587:9;5583:18;5570:32;-1:-1:-1;;;;;5617:8:24;5614:32;5611:52;;;5659:1;5656;5649:12;5611:52;5682:63;5737:7;5726:8;5715:9;5711:24;5682:63;:::i;:::-;5672:73;;;5798:2;5787:9;5783:18;5770:32;-1:-1:-1;;;;;5817:8:24;5814:32;5811:52;;;5859:1;5856;5849:12;5811:52;5882:63;5937:7;5926:8;5915:9;5911:24;5882:63;:::i;:::-;5872:73;;;5998:2;5987:9;5983:18;5970:32;-1:-1:-1;;;;;6017:8:24;6014:32;6011:52;;;6059:1;6056;6049:12;6011:52;6082:51;6125:7;6114:8;6103:9;6099:24;6082:51;:::i;:::-;6072:61;;;5068:1071;;;;;;;:::o;6373:332::-;6575:2;6557:21;;;6614:1;6594:18;;;6587:29;-1:-1:-1;;;6647:2:24;6632:18;;6625:39;6696:2;6681:18;;6373:332::o;7762:127::-;7823:10;7818:3;7814:20;7811:1;7804:31;7854:4;7851:1;7844:15;7878:4;7875:1;7868:15;7894:288;7935:3;7973:5;7967:12;8000:6;7995:3;7988:19;8056:6;8049:4;8042:5;8038:16;8031:4;8026:3;8022:14;8016:47;8108:1;8101:4;8092:6;8087:3;8083:16;8079:27;8072:38;8171:4;8164:2;8160:7;8155:2;8147:6;8143:15;8139:29;8134:3;8130:39;8126:50;8119:57;;;7894:288;;;;:::o;8187:1451::-;-1:-1:-1;;;;;8576:32:24;;8558:51;;8545:3;8640:2;8625:18;;;8618:31;;;8698:13;;8530:19;;;8720:22;;;8497:4;;8800:15;;;;8596:3;8758:19;;;8497:4;8843:195;8857:6;8854:1;8851:13;8843:195;;;8922:13;;-1:-1:-1;;;;;8918:39:24;8906:52;;8987:2;9013:15;;;;8978:12;;;;8954:1;8872:9;8843:195;;;-1:-1:-1;;9074:19:24;;;9069:2;9054:18;;9047:47;9165:13;;9187:21;;;9235:4;9226:14;;;;-1:-1:-1;9265:17:24;;;;9139:1;;;9312:193;9328:8;9323:3;9320:17;9312:193;;;9397:15;;9383:30;;9446:4;9435:16;;;;9476:19;;;;9356:1;9347:11;9312:193;;;-1:-1:-1;;;;9562:21:24;;;9557:2;9542:18;;9535:49;9601:31;9521:5;9618:6;9601:31;:::i;:::-;9593:39;8187:1451;-1:-1:-1;;;;;;;8187:1451:24:o;9990:230::-;10060:6;10113:2;10101:9;10092:7;10088:23;10084:32;10081:52;;;10129:1;10126;10119:12;10081:52;-1:-1:-1;10174:16:24;;9990:230;-1:-1:-1;9990:230:24:o;12379:757::-;12444:5;12497:3;12490:4;12482:6;12478:17;12474:27;12464:55;;12515:1;12512;12505:12;12464:55;12548:6;12542:13;12575:72;12591:55;12639:6;12591:55;:::i;12575:72::-;12671:3;12695:6;12690:3;12683:19;12727:4;12722:3;12718:14;12711:21;;12788:4;12778:6;12775:1;12771:14;12763:6;12759:27;12755:38;12741:52;;12816:3;12808:6;12805:15;12802:35;;;12833:1;12830;12823:12;12802:35;12869:4;12861:6;12857:17;12883:222;12899:6;12894:3;12891:15;12883:222;;;12974:3;12968:10;12991:39;13024:5;12991:39;:::i;:::-;13043:18;;13090:4;13081:14;;;;12916;12883:222;;13141:776;13205:5;13258:3;13251:4;13243:6;13239:17;13235:27;13225:55;;13276:1;13273;13266:12;13225:55;13309:6;13303:13;13336:72;13352:55;13400:6;13352:55;:::i;13336:72::-;13432:3;13456:6;13451:3;13444:19;13488:4;13483:3;13479:14;13472:21;;13549:4;13539:6;13536:1;13532:14;13524:6;13520:27;13516:38;13502:52;;13577:3;13569:6;13566:15;13563:35;;;13594:1;13591;13584:12;13563:35;13630:4;13622:6;13618:17;13644:242;13660:6;13655:3;13652:15;13644:242;;;13735:3;13729:10;13783:8;13776:5;13772:20;13765:5;13762:31;13752:59;;13807:1;13804;13797:12;13752:59;13824:18;;13871:4;13862:14;;;;13677;13644:242;;13922:775;13984:5;14037:3;14030:4;14022:6;14018:17;14014:27;14004:55;;14055:1;14052;14045:12;14004:55;14088:6;14082:13;14115:72;14131:55;14179:6;14131:55;:::i;14115:72::-;14211:3;14235:6;14230:3;14223:19;14267:4;14262:3;14258:14;14251:21;;14328:4;14318:6;14315:1;14311:14;14303:6;14299:27;14295:38;14281:52;;14356:3;14348:6;14345:15;14342:35;;;14373:1;14370;14363:12;14342:35;14409:4;14401:6;14397:17;14423:243;14439:6;14434:3;14431:15;14423:243;;;14514:3;14508:10;14565:5;14558:13;14551:21;14544:5;14541:32;14531:60;;14587:1;14584;14577:12;14531:60;14604:18;;14651:4;14642:14;;;;14456;14423:243;;14702:1446;14802:6;14855:2;14843:9;14834:7;14830:23;14826:32;14823:52;;;14871:1;14868;14861:12;14823:52;14904:9;14898:16;-1:-1:-1;;;;;14929:6:24;14926:30;14923:50;;;14969:1;14966;14959:12;14923:50;14992:22;;15048:4;15030:16;;;15026:27;15023:47;;;15066:1;15063;15056:12;15023:47;15092:22;;:::i;:::-;15145:2;15139:9;-1:-1:-1;;;;;15163:8:24;15160:32;15157:52;;;15205:1;15202;15195:12;15157:52;15232:67;15291:7;15280:8;15276:2;15272:17;15232:67;:::i;:::-;15225:5;15218:82;;15339:2;15335;15331:11;15325:18;-1:-1:-1;;;;;15358:8:24;15355:32;15352:52;;;15400:1;15397;15390:12;15352:52;15436:67;15495:7;15484:8;15480:2;15476:17;15436:67;:::i;:::-;15431:2;15424:5;15420:14;15413:91;;15543:2;15539;15535:11;15529:18;-1:-1:-1;;;;;15562:8:24;15559:32;15556:52;;;15604:1;15601;15594:12;15556:52;15640:66;15698:7;15687:8;15683:2;15679:17;15640:66;:::i;:::-;15635:2;15628:5;15624:14;15617:90;;15746:2;15742;15738:11;15732:18;-1:-1:-1;;;;;15765:8:24;15762:32;15759:52;;;15807:1;15804;15797:12;15759:52;15843:64;15899:7;15888:8;15884:2;15880:17;15843:64;:::i;:::-;15838:2;15827:14;;15820:88;-1:-1:-1;15967:3:24;15959:12;;;15953:19;15988:15;;;15981:32;16072:3;16064:12;;;16058:19;16093:15;;;16086:32;;;;15831:5;14702:1446;-1:-1:-1;;;14702:1446:24:o;16852:127::-;16913:10;16908:3;16904:20;16901:1;16894:31;16944:4;16941:1;16934:15;16968:4;16965:1;16958:15;16984:125;17049:9;;;17070:10;;;17067:36;;;17083:18;;:::i;17821:128::-;17888:9;;;17909:11;;;17906:37;;;17923:18;;:::i;20541:879::-;20786:13;;-1:-1:-1;;;;;20782:39:24;;;20764:58;;20882:4;20870:17;;;20864:24;20860:50;;20838:20;;;20831:80;20971:4;20959:17;;;20953:24;20979:8;20949:39;20927:20;;;20920:69;21036:4;21024:17;;;21018:24;4255:31;;;21084:20;;;4243:44;20751:3;20736:19;;;21051:54;21161:4;21153:6;21149:17;21143:24;21136:4;21125:9;21121:20;21114:54;21224:4;21216:6;21212:17;21206:24;21199:4;21188:9;21184:20;21177:54;21287:4;21279:6;21275:17;21269:24;21262:4;21251:9;21247:20;21240:54;21343:4;21335:6;21331:17;21325:24;21358:56;21408:4;21397:9;21393:20;21377:14;-1:-1:-1;;;;;4255:31:24;4243:44;;4189:104;21358:56;;20541:879;;;;:::o;22034:951::-;22288:4;22336:3;22325:9;22321:19;22367:6;22356:9;22349:25;22410:6;22405:2;22394:9;22390:18;22383:34;22453:3;22448:2;22437:9;22433:18;22426:31;22477:6;22512;22506:13;22543:6;22535;22528:22;22581:3;22570:9;22566:19;22559:26;;22620:2;22612:6;22608:15;22594:29;;22641:1;22651:195;22665:6;22662:1;22659:13;22651:195;;;22730:13;;-1:-1:-1;;;;;22726:39:24;22714:52;;22795:2;22821:15;;;;22786:12;;;;22762:1;22680:9;22651:195;;;-1:-1:-1;;;;;;;22902:32:24;;;;22897:2;22882:18;;22875:60;-1:-1:-1;;22966:3:24;22951:19;22944:35;22863:3;22034:951;-1:-1:-1;;;22034:951:24:o;22990:938::-;23085:6;23138:2;23126:9;23117:7;23113:23;23109:32;23106:52;;;23154:1;23151;23144:12;23106:52;23187:9;23181:16;-1:-1:-1;;;;;23212:6:24;23209:30;23206:50;;;23252:1;23249;23242:12;23206:50;23275:22;;23328:4;23320:13;;23316:27;-1:-1:-1;23306:55:24;;23357:1;23354;23347:12;23306:55;23390:2;23384:9;23413:72;23429:55;23477:6;23429:55;:::i;23413:72::-;23507:3;23531:6;23526:3;23519:19;23563:2;23558:3;23554:12;23547:19;;23618:2;23608:6;23605:1;23601:14;23597:2;23593:23;23589:32;23575:46;;23644:7;23636:6;23633:19;23630:39;;;23665:1;23662;23655:12;23630:39;23697:2;23693;23689:11;23678:22;;23709:189;23725:6;23720:3;23717:15;23709:189;;;23815:10;;23838:18;;23885:2;23742:12;;;;23876;;;;23709:189;;24279:168;24352:9;;;24383;;24400:15;;;24394:22;;24380:37;24370:71;;24421:18;;:::i;24452:217::-;24492:1;24518;24508:132;;24562:10;24557:3;24553:20;24550:1;24543:31;24597:4;24594:1;24587:15;24625:4;24622:1;24615:15;24508:132;-1:-1:-1;24654:9:24;;24452:217::o","linkReferences":{},"immutableReferences":{"75":[{"start":508,"length":32},{"start":993,"length":32},{"start":1976,"length":32},{"start":3222,"length":32}]}},"methodIdentifiers":{"BASIS_POINTS()":"e1f1c4a7","MAX_PATH_LENGTH()":"ec52303b","MAX_SLIPPAGE_BPS()":"e229cd76","emergencyWithdraw(address)":"6ff1c9bc","executeArbitrage(address[],uint256[],bytes)":"176243c4","getBalance(address)":"f8b2cb4f","owner()":"8da5cb5b","receiveFlashLoan(address[],uint256[],uint256[],bytes)":"f04f2707","transferOwnership(address)":"f2fde38b","vault()":"fbfa77cf","withdrawProfit(address,uint256)":"d35c9a07"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"profit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"pathLength\",\"type\":\"uint8\"}],\"name\":\"ArbitrageExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"FlashLoanInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expectedMin\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"actualReceived\",\"type\":\"uint256\"}],\"name\":\"SlippageProtectionTriggered\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BASIS_POINTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_PATH_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_SLIPPAGE_BPS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"emergencyWithdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"path\",\"type\":\"bytes\"}],\"name\":\"executeArbitrage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"feeAmounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"receiveFlashLoan\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"contract IBalancerVault\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawProfit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"details\":\"FIXED: All critical security vulnerabilities from audit\",\"errors\":{\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"emergencyWithdraw(address)\":{\"details\":\"SECURITY FIX #3: Use SafeERC20 for transfers\",\"params\":{\"token\":\"Token address (or 0x0 for ETH)\"}},\"executeArbitrage(address[],uint256[],bytes)\":{\"details\":\"SECURITY FIX #2: Added nonReentrant modifierSECURITY FIX #4: Sets flash loan initiation flag\",\"params\":{\"amounts\":\"Amounts to borrow\",\"path\":\"Encoded arbitrage path\",\"tokens\":\"Token addresses to borrow\"}},\"getBalance(address)\":{\"params\":{\"token\":\"Token address\"},\"returns\":{\"balance\":\"Token balance of this contract\"}},\"receiveFlashLoan(address[],uint256[],uint256[],bytes)\":{\"details\":\"SECURITY FIX #2: Added nonReentrant modifierSECURITY FIX #4: Validates flash loan was initiated by this contract\",\"params\":{\"amounts\":\"Amounts received\",\"feeAmounts\":\"Fee amounts (always 0 for Balancer)\",\"tokens\":\"Tokens received\",\"userData\":\"Encoded arbitrage path\"}},\"transferOwnership(address)\":{\"params\":{\"newOwner\":\"New owner address\"}},\"withdrawProfit(address,uint256)\":{\"details\":\"SECURITY FIX #3: Use SafeERC20 for transfers\",\"params\":{\"amount\":\"Amount to withdraw\",\"token\":\"Token to withdraw\"}}},\"title\":\"Balancer Flash Loan Receiver for Arbitrage Execution (SECURE VERSION)\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"emergencyWithdraw(address)\":{\"notice\":\"Emergency withdraw\"},\"executeArbitrage(address[],uint256[],bytes)\":{\"notice\":\"Execute arbitrage using Balancer flash loan\"},\"getBalance(address)\":{\"notice\":\"Get contract balance for a token\"},\"receiveFlashLoan(address[],uint256[],uint256[],bytes)\":{\"notice\":\"Callback from Balancer Vault after flash loan\"},\"transferOwnership(address)\":{\"notice\":\"Transfer ownership\"},\"withdrawProfit(address,uint256)\":{\"notice\":\"Withdraw profits\"}},\"notice\":\"Receives flash loans from Balancer and executes arbitrage paths with comprehensive security\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/balancer/FlashLoanReceiverSecure.sol\":\"FlashLoanReceiverSecure\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/=lib/openzeppelin-contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"contracts/balancer/FlashLoanReceiverSecure.sol\":{\"keccak256\":\"0x0fce6a56d36f528232b049416a54e922e5b6875d8772001ea42101a0313a7a73\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://431552cc7357e6246f15a3e00dd161e0f985175002dbd59300b061188e425d1c\",\"dweb:/ipfs/QmQUe2GK85PmeR6A2bTa6edET1HW276KfEJFt8Um1Z577d\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_vault","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"initiator","type":"address","indexed":true},{"internalType":"uint256","name":"profit","type":"uint256","indexed":false},{"internalType":"uint8","name":"pathLength","type":"uint8","indexed":false}],"type":"event","name":"ArbitrageExecuted","anonymous":false},{"inputs":[{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"FlashLoanInitiated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"expectedMin","type":"uint256","indexed":false},{"internalType":"uint256","name":"actualReceived","type":"uint256","indexed":false}],"type":"event","name":"SlippageProtectionTriggered","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BASIS_POINTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_PATH_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_SLIPPAGE_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"emergencyWithdraw"},{"inputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"path","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"executeArbitrage"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IERC20[]","name":"tokens","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"uint256[]","name":"feeAmounts","type":"uint256[]"},{"internalType":"bytes","name":"userData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"receiveFlashLoan"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"contract IBalancerVault","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawProfit"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"emergencyWithdraw(address)":{"details":"SECURITY FIX #3: Use SafeERC20 for transfers","params":{"token":"Token address (or 0x0 for ETH)"}},"executeArbitrage(address[],uint256[],bytes)":{"details":"SECURITY FIX #2: Added nonReentrant modifierSECURITY FIX #4: Sets flash loan initiation flag","params":{"amounts":"Amounts to borrow","path":"Encoded arbitrage path","tokens":"Token addresses to borrow"}},"getBalance(address)":{"params":{"token":"Token address"},"returns":{"balance":"Token balance of this contract"}},"receiveFlashLoan(address[],uint256[],uint256[],bytes)":{"details":"SECURITY FIX #2: Added nonReentrant modifierSECURITY FIX #4: Validates flash loan was initiated by this contract","params":{"amounts":"Amounts received","feeAmounts":"Fee amounts (always 0 for Balancer)","tokens":"Tokens received","userData":"Encoded arbitrage path"}},"transferOwnership(address)":{"params":{"newOwner":"New owner address"}},"withdrawProfit(address,uint256)":{"details":"SECURITY FIX #3: Use SafeERC20 for transfers","params":{"amount":"Amount to withdraw","token":"Token to withdraw"}}},"version":1},"userdoc":{"kind":"user","methods":{"emergencyWithdraw(address)":{"notice":"Emergency withdraw"},"executeArbitrage(address[],uint256[],bytes)":{"notice":"Execute arbitrage using Balancer flash loan"},"getBalance(address)":{"notice":"Get contract balance for a token"},"receiveFlashLoan(address[],uint256[],uint256[],bytes)":{"notice":"Callback from Balancer Vault after flash loan"},"transferOwnership(address)":{"notice":"Transfer ownership"},"withdrawProfit(address,uint256)":{"notice":"Withdraw profits"}},"version":1}},"settings":{"remappings":["@openzeppelin/=lib/openzeppelin-contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/balancer/FlashLoanReceiverSecure.sol":"FlashLoanReceiverSecure"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/balancer/FlashLoanReceiverSecure.sol":{"keccak256":"0x0fce6a56d36f528232b049416a54e922e5b6875d8772001ea42101a0313a7a73","urls":["bzz-raw://431552cc7357e6246f15a3e00dd161e0f985175002dbd59300b061188e425d1c","dweb:/ipfs/QmQUe2GK85PmeR6A2bTa6edET1HW276KfEJFt8Um1Z577d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"}},"version":1},"id":0}