solc-0.8.36-doubleshift20 0x00000000000c2e074ec69a0dfb2997ba6c7d2e1e optimized-high-runs
3574 bytes
608060405234801561000f575f5ffd5b50600436106100da575f3560e01c80635b0fc9c311610088578063b83f866311610063578063b83f8663146101dc578063cf408823146101fc578063e985e9c51461020f578063f79fe53814610267575f5ffd5b80635b0fc9c3146101a35780635ef2c7f0146101b6578063a22cb465146101c9575f5ffd5b806314ab9038116100b857806314ab90381461014f57806316a25cbd146101645780631896f70a14610190575f5ffd5b80630178b8bf146100de57806302571be31461011b57806306ab59231461012e575b5f5ffd5b6100f16100ec366004610bdb565b61029e565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100f1610129366004610bdb565b61038a565b61014161013c366004610c16565b610412565b604051908152602001610112565b61016261015d366004610c61565b610506565b005b610177610172366004610bdb565b610614565b60405167ffffffffffffffff9091168152602001610112565b61016261019e366004610c8f565b610705565b6101626101b1366004610c8f565b610812565b6101626101c4366004610cb2565b6108d8565b6101626101d7366004610d0d565b6108f9565b6002546100f19073ffffffffffffffffffffffffffffffffffffffff1681565b61016261020a366004610d3d565b61098f565b61025761021d366004610d8d565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260016020908152604080832093909416825291909152205460ff1690565b6040519015158152602001610112565b610257610275366004610bdb565b5f9081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff16151590565b5f8181526020819052604081205473ffffffffffffffffffffffffffffffffffffffff1661035e576002546040517f0178b8bf0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff90911690630178b8bf906024015b602060405180830381865afa158015610334573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103589190610db9565b92915050565b5f8281526020819052604090206001015473ffffffffffffffffffffffffffffffffffffffff16610358565b5f8181526020819052604081205473ffffffffffffffffffffffffffffffffffffffff16610409576002546040517f02571be30000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff909116906302571be390602401610319565b610358826109aa565b5f83815260208190526040812054849073ffffffffffffffffffffffffffffffffffffffff1633811480610475575073ffffffffffffffffffffffffffffffffffffffff81165f90815260016020908152604080832033845290915290205460ff165b61047d575f5ffd5b604080516020808201899052818301889052825180830384018152606090920190925280519101206104af81866109dd565b60405173ffffffffffffffffffffffffffffffffffffffff86168152869088907fce0457fe73731f824cc272376169235128c118b49d344817417c6d108d155e829060200160405180910390a39695505050505050565b5f82815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff1633811480610569575073ffffffffffffffffffffffffffffffffffffffff81165f90815260016020908152604080832033845290915290205460ff165b610571575f5ffd5b60405167ffffffffffffffff8416815284907f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa689060200160405180910390a250505f91825260208290526040909120600101805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b5f8181526020819052604081205473ffffffffffffffffffffffffffffffffffffffff166106cd576002546040517f16a25cbd0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff909116906316a25cbd90602401602060405180830381865afa1580156106a9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103589190610ddb565b5f8281526020819052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff16610358565b5f82815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff1633811480610768575073ffffffffffffffffffffffffffffffffffffffff81165f90815260016020908152604080832033845290915290205460ff165b610770575f5ffd5b60405173ffffffffffffffffffffffffffffffffffffffff8416815284907f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a09060200160405180910390a250505f9182526020829052604090912060010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b5f82815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff1633811480610875575073ffffffffffffffffffffffffffffffffffffffff81165f90815260016020908152604080832033845290915290205460ff165b61087d575f5ffd5b61088784846109dd565b60405173ffffffffffffffffffffffffffffffffffffffff8416815284907fd4735d920b0f87494915f556dd9b54c8f309026070caea5c737245152564d2669060200160405180910390a250505050565b5f6108e4868686610412565b90506108f1818484610a51565b505050505050565b335f81815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6109998484610812565b6109a4848383610a51565b50505050565b5f8181526020819052604081205473ffffffffffffffffffffffffffffffffffffffff1630810361035857505f92915050565b8073ffffffffffffffffffffffffffffffffffffffff81166109fc5750305b5f83815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055505050565b505050565b5f8381526020819052604090206001015473ffffffffffffffffffffffffffffffffffffffff838116911614610b07575f838152602081815260409182902060010180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8616908117909155915191825284917f335721b01866dc23fbee8b6b2c7b1e14d6f05c28cd35a2c934239f94095602a0910160405180910390a25b5f8381526020819052604090206001015467ffffffffffffffff828116740100000000000000000000000000000000000000009092041614610a4c575f838152602081815260409182902060010180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000067ffffffffffffffff861690810291909117909155915191825284917f1d4f9bbfc9cab89d66e1a1562f2233ccbf1308cb4f63de2ead5787adddb8fa68910160405180910390a2505050565b5f60208284031215610beb575f5ffd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c13575f5ffd5b50565b5f5f5f60608486031215610c28575f5ffd5b83359250602084013591506040840135610c4181610bf2565b809150509250925092565b67ffffffffffffffff81168114610c13575f5ffd5b5f5f60408385031215610c72575f5ffd5b823591506020830135610c8481610c4c565b809150509250929050565b5f5f60408385031215610ca0575f5ffd5b823591506020830135610c8481610bf2565b5f5f5f5f5f60a08688031215610cc6575f5ffd5b85359450602086013593506040860135610cdf81610bf2565b92506060860135610cef81610bf2565b91506080860135610cff81610c4c565b809150509295509295909350565b5f5f60408385031215610d1e575f5ffd5b8235610d2981610bf2565b915060208301358015158114610c84575f5ffd5b5f5f5f5f60808587031215610d50575f5ffd5b843593506020850135610d6281610bf2565b92506040850135610d7281610bf2565b91506060850135610d8281610c4c565b939692955090935050565b5f5f60408385031215610d9e575f5ffd5b8235610da981610bf2565b91506020830135610c8481610bf2565b5f60208284031215610dc9575f5ffd5b8151610dd481610bf2565b9392505050565b5f60208284031215610deb575f5ffd5b8151610dd481610c4c56