6080604052683635c9adc5dea000006000196200001d91906200052a565b6000196200002c919062000591565b60075560016009556009600a55600954600b55600a54600c5561dead600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360006101000a81548160ff0219169083151502179055506000601360016101000a81548160ff0219169083151502179055506000601360026101000a81548160ff021916908315150217905550348015620000e657600080fd5b5062000107620000fb620003fc60201b60201c565b6200040460201b60201c565b600754600160006200011e620003fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620001ca620004c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000620002ab620004c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000386620003fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003ee9190620005dd565b60405180910390a3620005fa565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200053782620004f1565b91506200054483620004f1565b925082620005575762000556620004fb565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200059e82620004f1565b9150620005ab83620004f1565b925082821015620005c157620005c062000562565b5b828203905092915050565b620005d781620004f1565b82525050565b6000602082019050620005f46000830184620005cc565b92915050565b61455b806200060a6000396000f3fe6080604052600436106101d15760003560e01c80637d459db3116100f7578063c4081a4c11610095578063d89135cd11610064578063d89135cd14610691578063dd62ed3e146106bc578063e6ec64ec146106f9578063f2fde38b14610722576101d8565b8063c4081a4c146105eb578063cf0848f714610614578063cf9d4afa1461063d578063d35d331c14610666576101d8565b806395d89b41116100d157806395d89b411461052f578063a6de1aaf1461055a578063a9059cbb14610585578063b515566a146105c2576101d8565b80637d459db31461049e5780638da5cb5b146104db57806390d49b9d14610506576101d8565b80633bbac5791161016f5780635342acb41161013e5780635342acb4146103d0578063562904e91461040d57806370a082311461044a578063715018a614610487576101d8565b80633bbac5791461031857806342966c6814610355578063437823ec1461037e5780634b740b16146103a7576101d8565b806323b872dd116101ab57806323b872dd14610270578063313ce567146102ad57806331c2d847146102d857806334948bfa14610301576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261074b565b6040516101ff91906133b1565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a919061347b565b610788565b60405161023c91906134d6565b60405180910390f35b34801561025157600080fd5b5061025a6107a6565b6040516102679190613500565b60405180910390f35b34801561027c57600080fd5b506102976004803603810190610292919061351b565b6107b7565b6040516102a491906134d6565b60405180910390f35b3480156102b957600080fd5b506102c2610890565b6040516102cf919061358a565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906136ed565b610899565b005b34801561030d57600080fd5b506103166109aa565b005b34801561032457600080fd5b5061033f600480360381019061033a9190613736565b610a4e565b60405161034c91906134d6565b60405180910390f35b34801561036157600080fd5b5061037c60048036038101906103779190613763565b610aa4565b005b34801561038a57600080fd5b506103a560048036038101906103a091906137ce565b610ccf565b005b3480156103b357600080fd5b506103ce60048036038101906103c99190613827565b610dfe565b005b3480156103dc57600080fd5b506103f760048036038101906103f29190613736565b610e97565b60405161040491906134d6565b60405180910390f35b34801561041957600080fd5b50610434600480360381019061042f9190613736565b610eed565b6040516104419190613500565b60405180910390f35b34801561045657600080fd5b50610471600480360381019061046c9190613736565b610fc1565b60405161047e9190613500565b60405180910390f35b34801561049357600080fd5b5061049c611012565b005b3480156104aa57600080fd5b506104c560048036038101906104c09190613736565b61109a565b6040516104d291906134d6565b60405180910390f35b3480156104e757600080fd5b506104f06110f0565b6040516104fd9190613863565b60405180910390f35b34801561051257600080fd5b5061052d600480360381019061052891906137ce565b611119565b005b34801561053b57600080fd5b506105446113c1565b60405161055191906133b1565b60405180910390f35b34801561056657600080fd5b5061056f6113fe565b60405161057c919061393c565b60405180910390f35b34801561059157600080fd5b506105ac60048036038101906105a7919061347b565b611456565b6040516105b991906134d6565b60405180910390f35b3480156105ce57600080fd5b506105e960048036038101906105e491906136ed565b611474565b005b3480156105f757600080fd5b50610612600480360381019061060d9190613763565b61166b565b005b34801561062057600080fd5b5061063b600480360381019061063691906137ce565b6116ff565b005b34801561064957600080fd5b50610664600480360381019061065f91906137ce565b61182e565b005b34801561067257600080fd5b5061067b611c5f565b6040516106889190613a1c565b60405180910390f35b34801561069d57600080fd5b506106a6611ced565b6040516106b39190613500565b60405180910390f35b3480156106c857600080fd5b506106e360048036038101906106de9190613a3e565b611d1f565b6040516106f09190613500565b60405180910390f35b34801561070557600080fd5b50610720600480360381019061071b9190613763565b611da6565b005b34801561072e57600080fd5b5061074960048036038101906107449190613736565b611e3a565b005b60606040518060400160405280600981526020017f506978696520496e750000000000000000000000000000000000000000000000815250905090565b600061079c610795611f32565b8484611f3a565b6001905092915050565b6000683635c9adc5dea00000905090565b60006107c4848484612105565b610885846107d0611f32565b610880856040518060600160405280602881526020016144fe60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610836611f32565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127759092919063ffffffff16565b611f3a565b600190509392505050565b60006009905090565b6108a1611f32565b73ffffffffffffffffffffffffffffffffffffffff166108bf6110f0565b73ffffffffffffffffffffffffffffffffffffffff1614610915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090c90613aca565b60405180910390fd5b60005b81518110156109a65760006006600084848151811061093a57610939613aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061099e90613b48565b915050610918565b5050565b6109b2611f32565b73ffffffffffffffffffffffffffffffffffffffff166109d06110f0565b73ffffffffffffffffffffffffffffffffffffffff1614610a26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1d90613aca565b60405180910390fd5b6000610a3130610fc1565b9050610a3c816127d9565b6000479050610a4a81612a52565b5050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610ad0600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611456565b5060005b601180549050811015610c3e57600060118281548110610af757610af6613aea565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600060128381548110610b3a57610b39613aea565b5b90600052602060002001549050600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90613bdd565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c2857610bfe8482612abe90919063ffffffff16565b60128481548110610c1257610c11613aea565b5b9060005260206000200181905550505050610ccc565b5050600181610c379190613bfd565b9050610ad4565b506011339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060128190806001815401808255809150506001900390600052602060002001600090919091909150555b50565b610cd7611f32565b73ffffffffffffffffffffffffffffffffffffffff16610cf56110f0565b73ffffffffffffffffffffffffffffffffffffffff1614610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4290613aca565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e06611f32565b73ffffffffffffffffffffffffffffffffffffffff16610e246110f0565b73ffffffffffffffffffffffffffffffffffffffff1614610e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7190613aca565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080600090505b601180549050811015610fb657600060118281548110610f1857610f17613aea565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fa15760128281548110610f8d57610f8c613aea565b5b906000526020600020015492505050610fbc565b50600181610faf9190613bfd565b9050610ef5565b50600090505b919050565b600061100b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b1c565b9050919050565b61101a611f32565b73ffffffffffffffffffffffffffffffffffffffff166110386110f0565b73ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590613aca565b60405180910390fd5b6110986000612b8a565b565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611121611f32565b73ffffffffffffffffffffffffffffffffffffffff1661113f6110f0565b73ffffffffffffffffffffffffffffffffffffffff1614611195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118c90613aca565b60405180910390fd5b600060046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600060056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600581526020017f5049584945000000000000000000000000000000000000000000000000000000815250905090565b6060601280548060200260200160405190810160405280929190818152602001828054801561144c57602002820191906000526020600020905b815481526020019060010190808311611438575b5050505050905090565b600061146a611463611f32565b8484612105565b6001905092915050565b61147c611f32565b73ffffffffffffffffffffffffffffffffffffffff1661149a6110f0565b73ffffffffffffffffffffffffffffffffffffffff16146114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790613aca565b60405180910390fd5b60005b815181101561166757601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061154857611547613aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156115dc5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106115bb576115ba613aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611654576001600660008484815181106115fa576115f9613aea565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061165f90613b48565b9150506114f3565b5050565b611673611f32565b73ffffffffffffffffffffffffffffffffffffffff166116916110f0565b73ffffffffffffffffffffffffffffffffffffffff16146116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613aca565b60405180910390fd5b60018111156116f557600080fd5b8060098190555050565b611707611f32565b73ffffffffffffffffffffffffffffffffffffffff166117256110f0565b73ffffffffffffffffffffffffffffffffffffffff161461177b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177290613aca565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611836611f32565b73ffffffffffffffffffffffffffffffffffffffff166118546110f0565b73ffffffffffffffffffffffffffffffffffffffff16146118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a190613aca565b60405180910390fd5b601360009054906101000a900460ff16156118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f190613cc5565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561195e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119829190613cfa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0d9190613cfa565b6040518363ffffffff1660e01b8152600401611a2a929190613d27565b6020604051808303816000875af1158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d9190613cfa565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601360006101000a81548160ff02191690831515021790555042601481905550610e10601454611c559190613bfd565b6015819055505050565b60606011805480602002602001604051908101604052809291908181526020018280548015611ce357602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611c99575b5050505050905090565b6000611d1a600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fc1565b905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611dae611f32565b73ffffffffffffffffffffffffffffffffffffffff16611dcc6110f0565b73ffffffffffffffffffffffffffffffffffffffff1614611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1990613aca565b60405180910390fd5b6009811115611e3057600080fd5b80600a8190555050565b611e42611f32565b73ffffffffffffffffffffffffffffffffffffffff16611e606110f0565b73ffffffffffffffffffffffffffffffffffffffff1614611eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ead90613aca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613dc2565b60405180910390fd5b611f2f81612b8a565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa190613e54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561201a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201190613ee6565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120f89190613500565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c90613f78565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121dc9061400a565b60405180910390fd5b60008111612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f9061409c565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156122b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ac90614154565b60405180910390fd5b601360009054906101000a900460ff16612304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122fb906141c0565b60405180910390fd5b601454421415612367576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561240b5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124245750601360019054906101000a900460ff16155b1561269b57601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124d45750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156124e1575042601554115b156125435760006124f183610fc1565b905061252360646125156002683635c9adc5dea00000612c4e90919063ffffffff16565b612cc990919063ffffffff16565b6125368284612abe90919063ffffffff16565b111561254157600080fd5b505b600061254e30610fc1565b9050601360029054906101000a900460ff161580156125bb5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561269957600081111561267f5761261a606461260c60056125fe601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fc1565b612c4e90919063ffffffff16565b612cc990919063ffffffff16565b8111156126755761267260646126646005612656601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610fc1565b612c4e90919063ffffffff16565b612cc990919063ffffffff16565b90505b61267e816127d9565b5b600047905060008111156126975761269647612a52565b5b505b505b600060019050600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127425750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806127595750601360019054906101000a900460ff165b1561276357600090505b61276f84848484612d13565b50505050565b60008383111582906127bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b491906133b1565b60405180910390fd5b50600083856127cc91906141e0565b9050809150509392505050565b6001601360026101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612811576128106135aa565b5b60405190808252806020026020018201604052801561283f5781602001602082028036833780820191505090505b509050308160008151811061285757612856613aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129229190613cfa565b8160018151811061293657612935613aea565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061299d30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f3a565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a01959493929190614259565b600060405180830381600087803b158015612a1b57600080fd5b505af1158015612a2f573d6000803e3d6000fd5b50505050506000601360026101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612aba573d6000803e3d6000fd5b5050565b6000808284612acd9190613bfd565b905083811015612b12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b09906142ff565b60405180910390fd5b8091505092915050565b6000600754821115612b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5a90614391565b60405180910390fd5b6000612b6d612d40565b9050612b828184612cc990919063ffffffff16565b915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080831415612c615760009050612cc3565b60008284612c6f91906143b1565b9050828482612c7e919061443a565b14612cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cb5906144dd565b60405180910390fd5b809150505b92915050565b6000612d0b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612d6b565b905092915050565b80612d2157612d20612dce565b5b612d2c848484612e0f565b80612d3a57612d39612fda565b5b50505050565b6000806000612d4d612fee565b91509150612d648183612cc990919063ffffffff16565b9250505090565b60008083118290612db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612da991906133b1565b60405180910390fd5b5060008385612dc1919061443a565b9050809150509392505050565b6000600954118015612de257506000600a54115b612deb57600080fd5b600954600b81905550600a54600c8190555060006009819055506000600a81905550565b600080600080600080612e2187613050565b955095509550955095509550612e7f86600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130b890919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f1485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612abe90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f6081613102565b612f6a84836131bf565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612fc79190613500565b60405180910390a3505050505050505050565b600b54600981905550600c54600a81905550565b600080600060075490506000683635c9adc5dea000009050613024683635c9adc5dea00000600754612cc990919063ffffffff16565b82101561304357600754683635c9adc5dea0000093509350505061304c565b81819350935050505b9091565b600080600080600080600080600061306d8a600954600a546131f9565b925092509250600061307d612d40565b905060008060006130908e87878761328f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006130fa83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612775565b905092915050565b600061310c612d40565b905060006131238284612c4e90919063ffffffff16565b905061317781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612abe90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6131d4826007546130b890919063ffffffff16565b6007819055506131ef81600854612abe90919063ffffffff16565b6008819055505050565b6000806000806132256064613217888a612c4e90919063ffffffff16565b612cc990919063ffffffff16565b9050600061324f6064613241888b612c4e90919063ffffffff16565b612cc990919063ffffffff16565b905060006132788261326a858c6130b890919063ffffffff16565b6130b890919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806132a88589612c4e90919063ffffffff16565b905060006132bf8689612c4e90919063ffffffff16565b905060006132d68789612c4e90919063ffffffff16565b905060006132ff826132f185876130b890919063ffffffff16565b6130b890919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613352578082015181840152602081019050613337565b83811115613361576000848401525b50505050565b6000601f19601f8301169050919050565b600061338382613318565b61338d8185613323565b935061339d818560208601613334565b6133a681613367565b840191505092915050565b600060208201905081810360008301526133cb8184613378565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613412826133e7565b9050919050565b61342281613407565b811461342d57600080fd5b50565b60008135905061343f81613419565b92915050565b6000819050919050565b61345881613445565b811461346357600080fd5b50565b6000813590506134758161344f565b92915050565b60008060408385031215613492576134916133dd565b5b60006134a085828601613430565b92505060206134b185828601613466565b9150509250929050565b60008115159050919050565b6134d0816134bb565b82525050565b60006020820190506134eb60008301846134c7565b92915050565b6134fa81613445565b82525050565b600060208201905061351560008301846134f1565b92915050565b600080600060608486031215613534576135336133dd565b5b600061354286828701613430565b935050602061355386828701613430565b925050604061356486828701613466565b9150509250925092565b600060ff82169050919050565b6135848161356e565b82525050565b600060208201905061359f600083018461357b565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6135e282613367565b810181811067ffffffffffffffff82111715613601576136006135aa565b5b80604052505050565b60006136146133d3565b905061362082826135d9565b919050565b600067ffffffffffffffff8211156136405761363f6135aa565b5b602082029050602081019050919050565b600080fd5b600061366961366484613625565b61360a565b9050808382526020820190506020840283018581111561368c5761368b613651565b5b835b818110156136b557806136a18882613430565b84526020840193505060208101905061368e565b5050509392505050565b600082601f8301126136d4576136d36135a5565b5b81356136e4848260208601613656565b91505092915050565b600060208284031215613703576137026133dd565b5b600082013567ffffffffffffffff811115613721576137206133e2565b5b61372d848285016136bf565b91505092915050565b60006020828403121561374c5761374b6133dd565b5b600061375a84828501613430565b91505092915050565b600060208284031215613779576137786133dd565b5b600061378784828501613466565b91505092915050565b600061379b826133e7565b9050919050565b6137ab81613790565b81146137b657600080fd5b50565b6000813590506137c8816137a2565b92915050565b6000602082840312156137e4576137e36133dd565b5b60006137f2848285016137b9565b91505092915050565b613804816134bb565b811461380f57600080fd5b50565b600081359050613821816137fb565b92915050565b60006020828403121561383d5761383c6133dd565b5b600061384b84828501613812565b91505092915050565b61385d81613407565b82525050565b60006020820190506138786000830184613854565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6138b381613445565b82525050565b60006138c583836138aa565b60208301905092915050565b6000602082019050919050565b60006138e98261387e565b6138f38185613889565b93506138fe8361389a565b8060005b8381101561392f57815161391688826138b9565b9750613921836138d1565b925050600181019050613902565b5085935050505092915050565b6000602082019050818103600083015261395681846138de565b905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61399381613407565b82525050565b60006139a5838361398a565b60208301905092915050565b6000602082019050919050565b60006139c98261395e565b6139d38185613969565b93506139de8361397a565b8060005b83811015613a0f5781516139f68882613999565b9750613a01836139b1565b9250506001810190506139e2565b5085935050505092915050565b60006020820190508181036000830152613a3681846139be565b905092915050565b60008060408385031215613a5557613a546133dd565b5b6000613a6385828601613430565b9250506020613a7485828601613430565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613ab4602083613323565b9150613abf82613a7e565b602082019050919050565b60006020820190508181036000830152613ae381613aa7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b5382613445565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613b8657613b85613b19565b5b600182019050919050565b7f4164647265737320696e76616c69640000000000000000000000000000000000600082015250565b6000613bc7600f83613323565b9150613bd282613b91565b602082019050919050565b60006020820190508181036000830152613bf681613bba565b9050919050565b6000613c0882613445565b9150613c1383613445565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c4857613c47613b19565b5b828201905092915050565b7f436f6e74726163742068617320616c7265616479206265656e20696e6974696160008201527f6c697a6564000000000000000000000000000000000000000000000000000000602082015250565b6000613caf602583613323565b9150613cba82613c53565b604082019050919050565b60006020820190508181036000830152613cde81613ca2565b9050919050565b600081519050613cf481613419565b92915050565b600060208284031215613d1057613d0f6133dd565b5b6000613d1e84828501613ce5565b91505092915050565b6000604082019050613d3c6000830185613854565b613d496020830184613854565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613dac602683613323565b9150613db782613d50565b604082019050919050565b60006020820190508181036000830152613ddb81613d9f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613e3e602483613323565b9150613e4982613de2565b604082019050919050565b60006020820190508181036000830152613e6d81613e31565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ed0602283613323565b9150613edb82613e74565b604082019050919050565b60006020820190508181036000830152613eff81613ec3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613f62602583613323565b9150613f6d82613f06565b604082019050919050565b60006020820190508181036000830152613f9181613f55565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613ff4602383613323565b9150613fff82613f98565b604082019050919050565b6000602082019050818103600083015261402381613fe7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000614086602983613323565b91506140918261402a565b604082019050919050565b600060208201905081810360008301526140b581614079565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742c20706c6561736520636f6e7461637420737461666620746f206160208201527f707065616c20796f757220636173652e00000000000000000000000000000000604082015250565b600061413e605083613323565b9150614149826140bc565b606082019050919050565b6000602082019050818103600083015261416d81614131565b9050919050565b7f436f6e7472616374206e6f742079657420696e697469616c697a656400000000600082015250565b60006141aa601c83613323565b91506141b582614174565b602082019050919050565b600060208201905081810360008301526141d98161419d565b9050919050565b60006141eb82613445565b91506141f683613445565b92508282101561420957614208613b19565b5b828203905092915050565b6000819050919050565b6000819050919050565b600061424361423e61423984614214565b61421e565b613445565b9050919050565b61425381614228565b82525050565b600060a08201905061426e60008301886134f1565b61427b602083018761424a565b818103604083015261428d81866139be565b905061429c6060830185613854565b6142a960808301846134f1565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006142e9601b83613323565b91506142f4826142b3565b602082019050919050565b60006020820190508181036000830152614318816142dc565b9050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061437b602a83613323565b91506143868261431f565b604082019050919050565b600060208201905081810360008301526143aa8161436e565b9050919050565b60006143bc82613445565b91506143c783613445565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614400576143ff613b19565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061444582613445565b915061445083613445565b9250826144605761445f61440b565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006144c7602183613323565b91506144d28261446b565b604082019050919050565b600060208201905081810360008301526144f6816144ba565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122057b59b7795ecf333c9738879f9044924bbc29836a92a923e2797d820fac25e5764736f6c634300080a0033