solc-0.8.36-fakeopcode 0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d optimized-low-runs
9674 bytes
6080604052600436106101a9575f3560e01c8063018a2c37146101ad57806301ffc9a7146101ce57806306fdde031461021b578063081812fc1461023c578063095ea7b314610273578063109695231461029257806318160ddd146102b157806318e20a38146102d357806323b872dd146102e85780632f745c591461030757806334918dfd146103265780633ccfd60b1461033a57806342842e0e1461034e5780634f6ccce71461036d57806355f804b31461038c578063571dff3b146103ab578063607e20e3146103bf5780636352211e146103d35780636c0360eb146103f257806370a0823114610406578063715018a6146104255780637a3f451e146104395780637d17fcbe146104545780638da5cb5b1461046857806395d89b411461047c578063a22cb46514610490578063a723533e146104af578063b0f67427146104c2578063b88d4fde146104d6578063bb8a16bd146104f5578063c87b56dd1461050a578063cb774d4714610529578063e36d64981461053e578063e985e9c514610553578063e986655014610572578063eb8d244414610586578063f2fde38b1461059f575b5f5ffd5b3480156101b8575f5ffd5b506101cc6101c7366004611e9e565b6105be565b005b3480156101d9575f5ffd5b506102066101e8366004611eca565b6001600160e01b0319165f9081526020819052604090205460ff1690565b60405190151581526020015b60405180910390f35b348015610226575f5ffd5b5061022f6105fb565b6040516102129190611f13565b348015610247575f5ffd5b5061025b610256366004611e9e565b61068b565b6040516001600160a01b039091168152602001610212565b34801561027e575f5ffd5b506101cc61028d366004611f40565b610711565b34801561029d575f5ffd5b506101cc6102ac366004611ff1565b61081a565b3480156102bc575f5ffd5b506102c5610859565b604051908152602001610212565b3480156102de575f5ffd5b506102c560105481565b3480156102f3575f5ffd5b506101cc610302366004612035565b610869565b348015610312575f5ffd5b506102c5610321366004611f40565b61089a565b348015610331575f5ffd5b506101cc6108c4565b348015610345575f5ffd5b506101cc610907565b348015610359575f5ffd5b506101cc610368366004612035565b610962565b348015610378575f5ffd5b506102c5610387366004611e9e565b61097c565b348015610397575f5ffd5b506101cc6103a6366004611ff1565b610991565b3480156103b6575f5ffd5b506102c5601481565b3480156103ca575f5ffd5b5061022f6109cc565b3480156103de575f5ffd5b5061025b6103ed366004611e9e565b610a58565b3480156103fd575f5ffd5b5061022f610a7f565b348015610411575f5ffd5b506102c561042036600461206f565b610a8e565b348015610430575f5ffd5b506101cc610b18565b348015610444575f5ffd5b506102c567011c37937e08000081565b34801561045f575f5ffd5b506101cc610b7d565b348015610473575f5ffd5b5061025b610bd2565b348015610487575f5ffd5b5061022f610be1565b34801561049b575f5ffd5b506101cc6104aa366004612088565b610bf0565b6101cc6104bd366004611e9e565b610caf565b3480156104cd575f5ffd5b506101cc610e9b565b3480156104e1575f5ffd5b506101cc6104f03660046120c1565b610efb565b348015610500575f5ffd5b506102c5600e5481565b348015610515575f5ffd5b5061022f610524366004611e9e565b610f33565b348015610534575f5ffd5b506102c5600d5481565b348015610549575f5ffd5b506102c5600c5481565b34801561055e575f5ffd5b5061020661056d366004612137565b61109f565b34801561057d575f5ffd5b506101cc6110cc565b348015610591575f5ffd5b50600f546102069060ff1681565b3480156105aa575f5ffd5b506101cc6105b936600461206f565b6111a2565b336105c7610bd2565b6001600160a01b0316146105f65760405162461bcd60e51b81526004016105ed90612168565b60405180910390fd5b601055565b60606006805461060a9061219d565b80601f01602080910402602001604051908101604052809291908181526020018280546106369061219d565b80156106815780601f1061065857610100808354040283529160200191610681565b820191905f5260205f20905b81548152906001019060200180831161066457829003601f168201915b5050505050905090565b5f6106958261127e565b6106f65760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016105ed565b505f908152600460205260409020546001600160a01b031690565b5f61071b82610a58565b90506001600160a01b03808216908416036107825760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084016105ed565b336001600160a01b038216148061079e575061079e813361109f565b61080b5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776044820152771b995c881b9bdc88185c1c1c9bdd995908199bdc88185b1b60421b60648201526084016105ed565b610815838361128a565b505050565b33610823610bd2565b6001600160a01b0316146108495760405162461bcd60e51b81526004016105ed90612168565b600b610855828261222b565b5050565b5f61086460026112f6565b905090565b61087333826112ff565b61088f5760405162461bcd60e51b81526004016105ed906122e9565b6108158383836113c1565b6001600160a01b0382165f9081526001602052604081206108bb9083611525565b90505b92915050565b336108cd610bd2565b6001600160a01b0316146108f35760405162461bcd60e51b81526004016105ed90612168565b600f805460ff19811660ff90911615179055565b33610910610bd2565b6001600160a01b0316146109365760405162461bcd60e51b81526004016105ed90612168565b6040514790339082156108fc029083905f818181858888f19350505050158015610855573d5f5f3e3d5ffd5b61081583838360405180602001604052805f815250610efb565b5f80610989600284611530565b509392505050565b3361099a610bd2565b6001600160a01b0316146109c05760405162461bcd60e51b81526004016105ed90612168565b6109c98161154b565b50565b600b80546109d99061219d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a059061219d565b8015610a505780601f10610a2757610100808354040283529160200191610a50565b820191905f5260205f20905b815481529060010190602001808311610a3357829003601f168201915b505050505081565b5f6108be826040518060600160405280602981526020016125616029913960029190611557565b60606009805461060a9061219d565b5f6001600160a01b038216610af85760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b60648201526084016105ed565b6001600160a01b0382165f9081526001602052604090206108be906112f6565b33610b21610bd2565b6001600160a01b031614610b475760405162461bcd60e51b81526004016105ed90612168565b600a546040515f916001600160a01b0316905f51602061258a5f395f51905f52908390a3600a80546001600160a01b0319169055565b33610b86610bd2565b6001600160a01b031614610bac5760405162461bcd60e51b81526004016105ed90612168565b600d5415610bcc5760405162461bcd60e51b81526004016105ed9061233a565b43600c55565b600a546001600160a01b031690565b60606007805461060a9061219d565b336001600160a01b03831603610c445760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b60448201526064016105ed565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600f5460ff16610d015760405162461bcd60e51b815260206004820152601f60248201527f53616c65206d7573742062652061637469766520746f206d696e74204170650060448201526064016105ed565b6014811115610d5c5760405162461bcd60e51b815260206004820152602160248201527f43616e206f6e6c79206d696e7420323020746f6b656e7320617420612074696d6044820152606560f81b60648201526084016105ed565b600e54610d7182610d6b610859565b9061156d565b1115610dd05760405162461bcd60e51b815260206004820152602860248201527f507572636861736520776f756c6420657863656564206d617820737570706c79604482015267206f66204170657360c01b60648201526084016105ed565b34610de367011c37937e080000836115c9565b1115610e315760405162461bcd60e51b815260206004820152601f60248201527f45746865722076616c75652073656e74206973206e6f7420636f72726563740060448201526064016105ed565b5f5b81811015610e6a575f610e44610859565b9050600e54610e51610859565b1015610e6157610e613382611647565b50600101610e33565b50600c54158015610e8f5750600e54610e81610859565b1480610e8f57506010544210155b156109c95743600c5550565b33610ea4610bd2565b6001600160a01b031614610eca5760405162461bcd60e51b81526004016105ed90612168565b5f610ed3610859565b90505f5b601e81101561085557610ef333610eee8385612385565b611647565b600101610ed7565b610f0533836112ff565b610f215760405162461bcd60e51b81526004016105ed906122e9565b610f2d84848484611660565b50505050565b6060610f3e8261127e565b610fa25760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b60648201526084016105ed565b5f8281526008602052604081208054610fba9061219d565b80601f0160208091040260200160405190810160405280929190818152602001828054610fe69061219d565b80156110315780601f1061100857610100808354040283529160200191611031565b820191905f5260205f20905b81548152906001019060200180831161101457829003601f168201915b505050505090505f611041610a7f565b905080515f03611052575092915050565b81511561108457808260405160200161106c9291906123af565b60405160208183030381529060405292505050919050565b8061108e85611693565b60405160200161106c9291906123af565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205460ff1690565b600d54156110ec5760405162461bcd60e51b81526004016105ed9061233a565b600c545f0361113d5760405162461bcd60e51b815260206004820181905260248201527f5374617274696e6720696e64657820626c6f636b206d7573742062652073657460448201526064016105ed565b600e54600c5461114e9190406123d7565b600d55600c5460ff906111629043906117a9565b111561118557600e546111766001436123ea565b6111819190406123d7565b600d555b600d545f036111a057600d5461119c90600161156d565b600d555b565b336111ab610bd2565b6001600160a01b0316146111d15760405162461bcd60e51b81526004016105ed90612168565b6001600160a01b0381166112365760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105ed565b600a546040516001600160a01b038084169216905f51602061258a5f395f51905f52905f90a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b5f6108be600283611804565b5f81815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906112be82610a58565b6040516001600160a01b03909116907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925905f90a45050565b5f6108be825490565b5f6113098261127e565b61136a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084016105ed565b5f61137483610a58565b90506001600160a01b0384811690821614806113a957506001600160a01b03841661139e8461068b565b6001600160a01b0316145b806113b957506113b9818561109f565b949350505050565b6001600160a01b0383166113d482610a58565b6001600160a01b03161461143c5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b60648201526084016105ed565b6001600160a01b03821661149e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016105ed565b6114a85f8261128a565b6001600160a01b0383165f9081526001602052604090206114c9908261180f565b506001600160a01b0382165f9081526001602052604090206114eb908261181a565b506114f860028284611825565b5060405181906001600160a01b0380851691908616905f5160206125aa5f395f51905f52905f90a4505050565b5f6108bb838361183a565b5f80808061153e86866118bc565b9097909650945050505050565b6009610855828261222b565b5f611563848484611953565b90505b9392505050565b5f806115798385612385565b9050838110156108bb5760405162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b60448201526064016105ed565b5f825f036115d857505f6108be565b5f6115e383856123fd565b9050826115f08583612414565b146108bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016105ed565b610855828260405180602001604052805f8152506119b9565b61166b8484846113c1565b611677848484846119eb565b610f2d5760405162461bcd60e51b81526004016105ed90612427565b6060815f036116b95750506040805180820190915260018152600360fc1b602082015290565b815f5b81156116e257806116cc81612479565b91506116db9050600a83612414565b91506116bc565b5f816001600160401b038111156116fb576116fb611f68565b6040519080825280601f01601f191660200182016040528015611725576020820181803683370190505b5090505f6117346001846123ea565b90508593505b83156117a05761174b600a856123d7565b611756906030612385565b60f81b828261176481612491565b935081518110611776576117766124a6565b6001600160f81b0319909216915f83901a91016020015350611799600a85612414565b935061173a565b50949350505050565b5f828211156117fa5760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f77000060448201526064016105ed565b6108bb82846123ea565b5f6108bb8383611abb565b5f6108bb8383611ad2565b5f6108bb8383611bb4565b5f61156384846001600160a01b038516611bfb565b81545f9082106118975760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016105ed565b825f0182815481106118ab576118ab6124a6565b905f5260205f200154905092915050565b81545f908190831061191b5760405162461bcd60e51b815260206004820152602260248201527f456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e604482015261647360f01b60648201526084016105ed565b5f845f018481548110611930576119306124a6565b905f5260205f2090600202019050805f0154816001015492509250509250929050565b5f82815260018401602052604081205482816119825760405162461bcd60e51b81526004016105ed9190611f13565b508461198f6001836123ea565b8154811061199f5761199f6124a6565b905f5260205f209060020201600101549150509392505050565b6119c38383611c99565b6119cf5f8484846119eb565b6108155760405162461bcd60e51b81526004016105ed90612427565b5f6001600160a01b0384163b611a03575060016113b9565b5f611a85630a85bd0160e11b33888787604051602401611a2694939291906124ba565b6040516020818303038152906040529060e01c63ffffffff1660e01b6020820180516001600160e01b03838183161783525050505060405180606001604052806032815260200161252f603291396001600160a01b0388169190611d9b565b90505f81806020019051810190611a9c91906124f4565b6001600160e01b031916630a85bd0160e11b1492505050949350505050565b5f9081526001919091016020526040902054151590565b5f8181526001830160205260408120548015611bab575f611af46001836123ea565b85549091505f90611b07906001906123ea565b90505f865f018281548110611b1e57611b1e6124a6565b905f5260205f200154905080875f018481548110611b3e57611b3e6124a6565b5f91825260209091200155611b54836001612385565b5f8281526001890160205260409020558654879080611b7557611b7561250f565b600190038181905f5260205f20015f90559055866001015f8781526020019081526020015f205f905560019450505050506108be565b5f9150506108be565b5f611bbf8383611abb565b611bf457508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556108be565b505f6108be565b5f828152600184016020526040812054808203611c6057505060408051808201825283815260208082018481528654600181810189555f8981528481209551600290930290950191825591519082015586548684528188019092529290912055611566565b8285611c6d6001846123ea565b81548110611c7d57611c7d6124a6565b905f5260205f209060020201600101819055505f915050611566565b6001600160a01b038216611cef5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016105ed565b611cf88161127e565b15611d445760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b60448201526064016105ed565b6001600160a01b0382165f908152600160205260409020611d65908261181a565b50611d7260028284611825565b5060405181906001600160a01b038416905f905f5160206125aa5f395f51905f52908290a45050565b606061156384845f8585843b611df35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105ed565b5f5f8660601b60601c8587604051611e0b9190612523565b5f6040518083038185875af1925050503d805f8114611e45576040519150601f19603f3d011682016040523d82523d5f602084013e611e4a565b606091505b5091509150611e5a828286611e65565b979650505050505050565b60608315611e74575081611566565b825115611e845782518084602001fd5b8160405162461bcd60e51b81526004016105ed9190611f13565b5f60208284031215611eae575f5ffd5b5035919050565b6001600160e01b0319811681146109c9575f5ffd5b5f60208284031215611eda575f5ffd5b81356108bb81611eb5565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6108bb6020830184611ee5565b80356001600160a01b0381168114611f3b575f5ffd5b919050565b5f5f60408385031215611f51575f5ffd5b611f5a83611f25565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f806001600160401b03841115611f9557611f95611f68565b50604051601f19601f85018116603f011681018181106001600160401b0382111715611fc357611fc3611f68565b604052838152905080828401851015611fda575f5ffd5b838360208301375f60208583010152509392505050565b5f60208284031215612001575f5ffd5b81356001600160401b03811115612016575f5ffd5b8201601f81018413612026575f5ffd5b6113b984823560208401611f7c565b5f5f5f60608486031215612047575f5ffd5b61205084611f25565b925061205e60208501611f25565b929592945050506040919091013590565b5f6020828403121561207f575f5ffd5b6108bb82611f25565b5f5f60408385031215612099575f5ffd5b6120a283611f25565b9150602083013580151581146120b6575f5ffd5b809150509250929050565b5f5f5f5f608085870312156120d4575f5ffd5b6120dd85611f25565b93506120eb60208601611f25565b92506040850135915060608501356001600160401b0381111561210c575f5ffd5b8501601f8101871361211c575f5ffd5b61212b87823560208401611f7c565b91505092959194509250565b5f5f60408385031215612148575f5ffd5b61215183611f25565b915061215f60208401611f25565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c908216806121b157607f821691505b6020821081036121cf57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610815578282111561081557805f5260205f20601f840160051c602085101561220057505f5b90810190601f840160051c035f5b81811015612223575f8382015560010161220e565b505050505050565b81516001600160401b0381111561224457612244611f68565b61225881612252845461219d565b846121d5565b6020601f82116001811461228a575f83156122735750848201515b5f19600385901b1c1916600184901b1784556122e2565b5f84815260208120601f198516915b828110156122b95787850151825560209485019460019092019101612299565b50848210156122d657868401515f19600387901b60f8161c191681555b505060018360011b0184555b5050505050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601d908201527f5374617274696e6720696e64657820697320616c726561647920736574000000604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156108be576108be612371565b5f81518060208401855e5f93019283525090919050565b5f6115636123bd8386612398565b84612398565b634e487b7160e01b5f52601260045260245ffd5b5f826123e5576123e56123c3565b500690565b818103818111156108be576108be612371565b80820281158282048414176108be576108be612371565b5f82612422576124226123c3565b500490565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b5f6001820161248a5761248a612371565b5060010190565b5f8161249f5761249f612371565b505f190190565b634e487b7160e01b5f52603260045260245ffd5b8460601b60601c81528360601b60601c6020820152826040820152608060608201525f6124ea6080830184611ee5565b9695505050505050565b5f60208284031215612504575f5ffd5b81516108bb81611eb5565b634e487b7160e01b5f52603160045260245ffd5b5f6108bb828461239856fe4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef