6080604052683635c9adc5dea000006000196200001d919062000760565b6000196200002c9190620007c7565b600655600060085560006009556000600a55601e600b55600a54600c55600b54600d55600c54600e55600d54600f557344ce980f00d38ed0fd5d1e31f19397c1a1a4cf2c601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507344ce980f00d38ed0fd5d1e31f19397c1a1a4cf2c601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506801e5b8fa8fe2ac00006016556801e5b8fa8fe2ac000060175566038d7ea4c680006018553480156200018757600080fd5b5060006200019a620006f660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200024f620006f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200032e57600080fd5b505afa15801562000343573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036991906200086c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003cc57600080fd5b505afa158015620003e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040791906200086c565b6040518363ffffffff1660e01b815260040162000426929190620008af565b602060405180830381600087803b1580156200044157600080fd5b505af115801562000456573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200047c91906200086c565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004d2620006fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200067f620006f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620006e79190620008ed565b60405180910390a3506200090a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200076d8262000727565b91506200077a8362000727565b9250826200078d576200078c62000731565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007d48262000727565b9150620007e18362000727565b925082821015620007f757620007f662000798565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008348262000807565b9050919050565b620008468162000827565b81146200085257600080fd5b50565b60008151905062000866816200083b565b92915050565b60006020828403121562000885576200088462000802565b5b6000620008958482850162000855565b91505092915050565b620008a98162000827565b82525050565b6000604082019050620008c660008301856200089e565b620008d560208301846200089e565b9392505050565b620008e78162000727565b82525050565b6000602082019050620009046000830184620008dc565b92915050565b613de5806200091a6000396000f3fe6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063c492f04611610064578063c492f0461461065d578063dd62ed3e14610686578063ea1644d5146106c3578063f2fde38b146106ec576101d8565b8063a2a957bb146105a3578063a9059cbb146105cc578063bfd7928414610609578063c3c8cd8014610646576101d8565b80638f70ccf7116100d15780638f70ccf7146104fb5780638f9a55c01461052457806395d89b411461054f57806398a5c3151461057a576101d8565b80637d1db4a5146104685780637f2feddc146104935780638da5cb5b146104d0576101d8565b80633c0fc6ea1161016f57806370a082311161013e57806370a08231146103c2578063715018a6146103ff57806372356c061461041657806374010ece1461043f576101d8565b80633c0fc6ea1461032e57806349bd5a5e146103575780636d8aa8f8146103825780636fc3eaec146103ab576101d8565b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461029b5780632fd689e3146102d8578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610715565b6040516101ff9190612c3f565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612d09565b610752565b60405161023c9190612d64565b60405180910390f35b34801561025157600080fd5b5061025a610770565b6040516102679190612dde565b60405180910390f35b34801561027c57600080fd5b50610285610796565b6040516102929190612e08565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612e23565b6107a7565b6040516102cf9190612d64565b60405180910390f35b3480156102e457600080fd5b506102ed610880565b6040516102fa9190612e08565b60405180910390f35b34801561030f57600080fd5b50610318610886565b6040516103259190612e92565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612ff5565b61088f565b005b34801561036357600080fd5b5061036c6109b9565b604051610379919061304d565b60405180910390f35b34801561038e57600080fd5b506103a960048036038101906103a49190613094565b6109df565b005b3480156103b757600080fd5b506103c0610a91565b005b3480156103ce57600080fd5b506103e960048036038101906103e491906130c1565b610b62565b6040516103f69190612e08565b60405180910390f35b34801561040b57600080fd5b50610414610bb3565b005b34801561042257600080fd5b5061043d600480360381019061043891906130c1565b610d06565b005b34801561044b57600080fd5b50610466600480360381019061046191906130ee565b610df6565b005b34801561047457600080fd5b5061047d610e95565b60405161048a9190612e08565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b591906130c1565b610e9b565b6040516104c79190612e08565b60405180910390f35b3480156104dc57600080fd5b506104e5610eb3565b6040516104f2919061304d565b60405180910390f35b34801561050757600080fd5b50610522600480360381019061051d9190613094565b610edc565b005b34801561053057600080fd5b50610539610f8e565b6040516105469190612e08565b60405180910390f35b34801561055b57600080fd5b50610564610f94565b6040516105719190612c3f565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c91906130ee565b610fd1565b005b3480156105af57600080fd5b506105ca60048036038101906105c5919061311b565b611070565b005b3480156105d857600080fd5b506105f360048036038101906105ee9190612d09565b611127565b6040516106009190612d64565b60405180910390f35b34801561061557600080fd5b50610630600480360381019061062b91906130c1565b611145565b60405161063d9190612d64565b60405180910390f35b34801561065257600080fd5b5061065b611165565b005b34801561066957600080fd5b50610684600480360381019061067f91906131dd565b61123e565b005b34801561069257600080fd5b506106ad60048036038101906106a8919061323d565b611378565b6040516106ba9190612e08565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e591906130ee565b6113ff565b005b3480156106f857600080fd5b50610713600480360381019061070e91906130c1565b61149e565b005b60606040518060400160405280600e81526020017f4f7264696e616c205473756b6120000000000000000000000000000000000000815250905090565b600061076661075f611660565b8484611668565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b60006107b4848484611833565b610875846107c0611660565b61087085604051806060016040528060288152602001613d8860289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610826611660565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b89092919063ffffffff16565b611668565b600190509392505050565b60185481565b60006009905090565b610897611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b906132c9565b60405180910390fd5b60005b81518110156109b557600160106000848481518110610949576109486132e9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806109ad90613347565b915050610927565b5050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e7611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6b906132c9565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ad2611660565b73ffffffffffffffffffffffffffffffffffffffff161480610b485750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b30611660565b73ffffffffffffffffffffffffffffffffffffffff16145b610b5157600080fd5b6000479050610b5f8161211c565b50565b6000610bac600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612188565b9050919050565b610bbb611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f906132c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d0e611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d92906132c9565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610dfe611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e82906132c9565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ee4611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f68906132c9565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600781526020017f246f5453554b4100000000000000000000000000000000000000000000000000815250905090565b610fd9611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d906132c9565b60405180910390fd5b8060188190555050565b611078611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc906132c9565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061113b611134611660565b8484611833565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111a6611660565b73ffffffffffffffffffffffffffffffffffffffff16148061121c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611204611660565b73ffffffffffffffffffffffffffffffffffffffff16145b61122557600080fd5b600061123030610b62565b905061123b816121f6565b50565b611246611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca906132c9565b60405180910390fd5b60005b838390508110156113725781600560008686858181106112f9576112f86132e9565b5b905060200201602081019061130e91906130c1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061136a90613347565b9150506112d6565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611407611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b906132c9565b60405180910390fd5b8060178190555050565b6114a6611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a906132c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90613402565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156116d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cf90613494565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611748576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173f90613526565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118269190612e08565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a906135b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a9061364a565b60405180910390fd5b60008111611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d906136dc565b60405180910390fd5b61195e610eb3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119cc575061199c610eb3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611db757601560149054906101000a900460ff16611a5b576119ed610eb3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a519061376e565b60405180910390fd5b5b601654811115611aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a97906137da565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b445750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7a9061386c565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c305760175481611be584610b62565b611bef919061388c565b10611c2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2690613954565b60405180910390fd5b5b6000611c3b30610b62565b9050600060185482101590506016548210611c565760165491505b808015611c6e575060158054906101000a900460ff16155b8015611cc85750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce05750601560169054906101000a900460ff165b8015611d365750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d8c5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611db457611d9a826121f6565b60004790506000811115611db257611db14761211c565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e5e5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f115750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f105750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f1f57600090506120a6565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fca5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fe257600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561208d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120a557600a54600c81905550600b54600d819055505b5b6120b28484848461247c565b50505050565b6000838311158290612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f79190612c3f565b60405180910390fd5b506000838561210f9190613974565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612184573d6000803e3d6000fd5b5050565b60006006548211156121cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c690613a1a565b60405180910390fd5b60006121d96124a9565b90506121ee81846124d490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561222d5761222c612eb2565b5b60405190808252806020026020018201604052801561225b5781602001602082028036833780820191505090505b5090503081600081518110612273576122726132e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561231557600080fd5b505afa158015612329573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061234d9190613a4f565b81600181518110612361576123606132e9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123c830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611668565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161242c959493929190613b75565b600060405180830381600087803b15801561244657600080fd5b505af115801561245a573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061248a5761248961251e565b5b612495848484612561565b806124a3576124a261272c565b5b50505050565b60008060006124b6612740565b915091506124cd81836124d490919063ffffffff16565b9250505090565b600061251683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506127a2565b905092915050565b6000600c5414801561253257506000600d54145b1561253c5761255f565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061257387612805565b9550955095509550955095506125d186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286d90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061266685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b790919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b281612915565b6126bc84836129d2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127199190612e08565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000683635c9adc5dea000009050612776683635c9adc5dea000006006546124d490919063ffffffff16565b82101561279557600654683635c9adc5dea0000093509350505061279e565b81819350935050505b9091565b600080831182906127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e09190612c3f565b60405180910390fd5b50600083856127f89190613bfe565b9050809150509392505050565b60008060008060008060008060006128228a600c54600d54612a0c565b92509250925060006128326124a9565b905060008060006128458e878787612aa2565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006128af83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120b8565b905092915050565b60008082846128c6919061388c565b90508381101561290b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161290290613c7b565b60405180910390fd5b8091505092915050565b600061291f6124a9565b905060006129368284612b2b90919063ffffffff16565b905061298a81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128b790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129e78260065461286d90919063ffffffff16565b600681905550612a02816007546128b790919063ffffffff16565b6007819055505050565b600080600080612a386064612a2a888a612b2b90919063ffffffff16565b6124d490919063ffffffff16565b90506000612a626064612a54888b612b2b90919063ffffffff16565b6124d490919063ffffffff16565b90506000612a8b82612a7d858c61286d90919063ffffffff16565b61286d90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612abb8589612b2b90919063ffffffff16565b90506000612ad28689612b2b90919063ffffffff16565b90506000612ae98789612b2b90919063ffffffff16565b90506000612b1282612b04858761286d90919063ffffffff16565b61286d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612b3e5760009050612ba0565b60008284612b4c9190613c9b565b9050828482612b5b9190613bfe565b14612b9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b9290613d67565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612be0578082015181840152602081019050612bc5565b83811115612bef576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c1182612ba6565b612c1b8185612bb1565b9350612c2b818560208601612bc2565b612c3481612bf5565b840191505092915050565b60006020820190508181036000830152612c598184612c06565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ca082612c75565b9050919050565b612cb081612c95565b8114612cbb57600080fd5b50565b600081359050612ccd81612ca7565b92915050565b6000819050919050565b612ce681612cd3565b8114612cf157600080fd5b50565b600081359050612d0381612cdd565b92915050565b60008060408385031215612d2057612d1f612c6b565b5b6000612d2e85828601612cbe565b9250506020612d3f85828601612cf4565b9150509250929050565b60008115159050919050565b612d5e81612d49565b82525050565b6000602082019050612d796000830184612d55565b92915050565b6000819050919050565b6000612da4612d9f612d9a84612c75565b612d7f565b612c75565b9050919050565b6000612db682612d89565b9050919050565b6000612dc882612dab565b9050919050565b612dd881612dbd565b82525050565b6000602082019050612df36000830184612dcf565b92915050565b612e0281612cd3565b82525050565b6000602082019050612e1d6000830184612df9565b92915050565b600080600060608486031215612e3c57612e3b612c6b565b5b6000612e4a86828701612cbe565b9350506020612e5b86828701612cbe565b9250506040612e6c86828701612cf4565b9150509250925092565b600060ff82169050919050565b612e8c81612e76565b82525050565b6000602082019050612ea76000830184612e83565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612eea82612bf5565b810181811067ffffffffffffffff82111715612f0957612f08612eb2565b5b80604052505050565b6000612f1c612c61565b9050612f288282612ee1565b919050565b600067ffffffffffffffff821115612f4857612f47612eb2565b5b602082029050602081019050919050565b600080fd5b6000612f71612f6c84612f2d565b612f12565b90508083825260208201905060208402830185811115612f9457612f93612f59565b5b835b81811015612fbd5780612fa98882612cbe565b845260208401935050602081019050612f96565b5050509392505050565b600082601f830112612fdc57612fdb612ead565b5b8135612fec848260208601612f5e565b91505092915050565b60006020828403121561300b5761300a612c6b565b5b600082013567ffffffffffffffff81111561302957613028612c70565b5b61303584828501612fc7565b91505092915050565b61304781612c95565b82525050565b6000602082019050613062600083018461303e565b92915050565b61307181612d49565b811461307c57600080fd5b50565b60008135905061308e81613068565b92915050565b6000602082840312156130aa576130a9612c6b565b5b60006130b88482850161307f565b91505092915050565b6000602082840312156130d7576130d6612c6b565b5b60006130e584828501612cbe565b91505092915050565b60006020828403121561310457613103612c6b565b5b600061311284828501612cf4565b91505092915050565b6000806000806080858703121561313557613134612c6b565b5b600061314387828801612cf4565b945050602061315487828801612cf4565b935050604061316587828801612cf4565b925050606061317687828801612cf4565b91505092959194509250565b600080fd5b60008083601f84011261319d5761319c612ead565b5b8235905067ffffffffffffffff8111156131ba576131b9613182565b5b6020830191508360208202830111156131d6576131d5612f59565b5b9250929050565b6000806000604084860312156131f6576131f5612c6b565b5b600084013567ffffffffffffffff81111561321457613213612c70565b5b61322086828701613187565b935093505060206132338682870161307f565b9150509250925092565b6000806040838503121561325457613253612c6b565b5b600061326285828601612cbe565b925050602061327385828601612cbe565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006132b3602083612bb1565b91506132be8261327d565b602082019050919050565b600060208201905081810360008301526132e2816132a6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061335282612cd3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561338557613384613318565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133ec602683612bb1565b91506133f782613390565b604082019050919050565b6000602082019050818103600083015261341b816133df565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061347e602483612bb1565b915061348982613422565b604082019050919050565b600060208201905081810360008301526134ad81613471565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613510602283612bb1565b915061351b826134b4565b604082019050919050565b6000602082019050818103600083015261353f81613503565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006135a2602583612bb1565b91506135ad82613546565b604082019050919050565b600060208201905081810360008301526135d181613595565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613634602383612bb1565b915061363f826135d8565b604082019050919050565b6000602082019050818103600083015261366381613627565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136c6602983612bb1565b91506136d18261366a565b604082019050919050565b600060208201905081810360008301526136f5816136b9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613758603f83612bb1565b9150613763826136fc565b604082019050919050565b600060208201905081810360008301526137878161374b565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006137c4601c83612bb1565b91506137cf8261378e565b602082019050919050565b600060208201905081810360008301526137f3816137b7565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613856602383612bb1565b9150613861826137fa565b604082019050919050565b6000602082019050818103600083015261388581613849565b9050919050565b600061389782612cd3565b91506138a283612cd3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138d7576138d6613318565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061393e602383612bb1565b9150613949826138e2565b604082019050919050565b6000602082019050818103600083015261396d81613931565b9050919050565b600061397f82612cd3565b915061398a83612cd3565b92508282101561399d5761399c613318565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613a04602a83612bb1565b9150613a0f826139a8565b604082019050919050565b60006020820190508181036000830152613a33816139f7565b9050919050565b600081519050613a4981612ca7565b92915050565b600060208284031215613a6557613a64612c6b565b5b6000613a7384828501613a3a565b91505092915050565b6000819050919050565b6000613aa1613a9c613a9784613a7c565b612d7f565b612cd3565b9050919050565b613ab181613a86565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613aec81612c95565b82525050565b6000613afe8383613ae3565b60208301905092915050565b6000602082019050919050565b6000613b2282613ab7565b613b2c8185613ac2565b9350613b3783613ad3565b8060005b83811015613b68578151613b4f8882613af2565b9750613b5a83613b0a565b925050600181019050613b3b565b5085935050505092915050565b600060a082019050613b8a6000830188612df9565b613b976020830187613aa8565b8181036040830152613ba98186613b17565b9050613bb8606083018561303e565b613bc56080830184612df9565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c0982612cd3565b9150613c1483612cd3565b925082613c2457613c23613bcf565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c65601b83612bb1565b9150613c7082613c2f565b602082019050919050565b60006020820190508181036000830152613c9481613c58565b9050919050565b6000613ca682612cd3565b9150613cb183612cd3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cea57613ce9613318565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d51602183612bb1565b9150613d5c82613cf5565b604082019050919050565b60006020820190508181036000830152613d8081613d44565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f6c9fdde916c0818090e815efeaa34b6d61575abfba62171e66fceb91c7a447064736f6c63430008090033