0x608060405260016000806101000a81548160ff0219169083151502179055503480156200002b57600080fd5b506040518060400160405280601181526020017f534f592046696e616e636520746f6b656e0000000000000000000000000000008152506040518060400160405280600381526020017f534f5900000000000000000000000000000000000000000000000000000000008152508160059080519060200190620000b092919062000984565b508060069080519060200190620000c992919062000984565b506012600760006101000a81548160ff021916908360ff16021790555050506000620000fa6200023a60201b60201c565b905033600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200015a336a6342fd08f00f63780000006200024260201b60201c565b620001d86000600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a6342fd08f00f6378000000620003a860201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000d7d565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002b5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002ac9062000aec565b60405180910390fd5b620002c9600083836200066960201b60201c565b8060046000828254620002dd919062000b74565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000335919062000b74565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200039c919062000b0e565b60405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015620003e55750600081115b156200066457600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000527576000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116200048c576000620004fb565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184620004dc919062000c4d565b63ffffffff1663ffffffff168152602001908152602001600020600101545b9050600083826200050d919062000c12565b905062000523868484846200066e60201b60201c565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000663576000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611620005c857600062000637565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018462000618919062000c4d565b63ffffffff1663ffffffff168152602001908152602001600020600101545b90506000838262000649919062000b74565b90506200065f858484846200066e60201b60201c565b5050505b5b505050565b505050565b60006200069b4360405180606001604052806033815260200162004d43603391396200092b60201b60201c565b905060008463ffffffff161180156200073c57508063ffffffff16600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018762000706919062000c4d565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15620007ba5781600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018762000793919062000c4d565b63ffffffff1663ffffffff16815260200190815260200160002060010181905550620008d2565b60405180604001604052808263ffffffff16815260200183815250600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff1602179055506020820151816001015590505060018462000874919062000bd1565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72484846040516200091c92919062000b2b565b60405180910390a25050505050565b6000640100000000831082906200097a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000971919062000ac8565b60405180910390fd5b5082905092915050565b828054620009929062000cd8565b90600052602060002090601f016020900481019282620009b6576000855562000a02565b82601f10620009d157805160ff191683800117855562000a02565b8280016001018555821562000a02579182015b8281111562000a01578251825591602001919060010190620009e4565b5b50905062000a11919062000a15565b5090565b5b8082111562000a3057600081600090555060010162000a16565b5090565b600062000a418262000b58565b62000a4d818562000b63565b935062000a5f81856020860162000ca2565b62000a6a8162000d6c565b840191505092915050565b600062000a84601f8362000b63565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b62000ac28162000c88565b82525050565b6000602082019050818103600083015262000ae4818462000a34565b905092915050565b6000602082019050818103600083015262000b078162000a75565b9050919050565b600060208201905062000b25600083018462000ab7565b92915050565b600060408201905062000b42600083018562000ab7565b62000b51602083018462000ab7565b9392505050565b600081519050919050565b600082825260208201905092915050565b600062000b818262000c88565b915062000b8e8362000c88565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000bc65762000bc562000d0e565b5b828201905092915050565b600062000bde8262000c92565b915062000beb8362000c92565b92508263ffffffff0382111562000c075762000c0662000d0e565b5b828201905092915050565b600062000c1f8262000c88565b915062000c2c8362000c88565b92508282101562000c425762000c4162000d0e565b5b828203905092915050565b600062000c5a8262000c92565b915062000c678362000c92565b92508282101562000c7d5762000c7c62000d0e565b5b828203905092915050565b6000819050919050565b600063ffffffff82169050919050565b60005b8381101562000cc257808201518184015260208101905062000ca5565b8381111562000cd2576000848401525b50505050565b6000600282049050600182168062000cf157607f821691505b6020821081141562000d085762000d0762000d3d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b613fb68062000d8d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063782d6fe11161010f578063b4b5ea57116100a2578063e7a324dc11610071578063e7a324dc146105f5578063f1127ed814610613578063f2fde38b14610644578063f46eccc414610660576101f0565b8063b4b5ea5714610549578063be45fd6214610579578063c3cda520146105a9578063dd62ed3e146105c5576101f0565b8063a457c2d7116100de578063a457c2d7146104c1578063a9059cbb146104f1578063a9b9cd1e14610521578063b28fc6a31461052b576101f0565b8063782d6fe1146104255780637ecebe00146104555780638da5cb5b1461048557806395d89b41146104a3576101f0565b8063557a2b9d116101875780635d799f87116101565780635d799f871461039f5780636fcfff45146103bb57806370a08231146103eb578063715018a61461041b576101f0565b8063557a2b9d14610319578063587cde1e146103355780635a3b7e42146103655780635c19a95c14610383576101f0565b806323b872dd116101c357806323b872dd1461027f578063313ce567146102af57806339509351146102cd57806340c10f19146102fd576101f0565b806306fdde03146101f5578063095ea7b31461021357806318160ddd1461024357806320606b7014610261575b600080fd5b6101fd610690565b60405161020a919061392d565b60405180910390f35b61022d60048036038101906102289190612f60565b610722565b60405161023a9190613806565b60405180910390f35b61024b610740565b6040516102589190613aef565b60405180910390f35b61026961074a565b6040516102769190613821565b60405180910390f35b61029960048036038101906102949190612ed5565b61076e565b6040516102a69190613806565b60405180910390f35b6102b7610826565b6040516102c49190613b77565b60405180910390f35b6102e760048036038101906102e29190612f60565b61083d565b6040516102f49190613806565b60405180910390f35b61031760048036038101906103129190612f60565b6108e9565b005b610333600480360381019061032e9190612f24565b6109ee565b005b61034f600480360381019061034a9190612e70565b610b66565b60405161035c919061375b565b60405180910390f35b61036d610bcf565b60405161037a919061392d565b60405180910390f35b61039d60048036038101906103989190612e70565b610c0c565b005b6103b960048036038101906103b49190612e99565b610c19565b005b6103d560048036038101906103d09190612e70565b610dd0565b6040516103e29190613b33565b60405180910390f35b61040560048036038101906104009190612e70565b610df3565b6040516104129190613aef565b60405180910390f35b610423610e3c565b005b61043f600480360381019061043a9190612f60565b610f94565b60405161044c9190613aef565b60405180910390f35b61046f600480360381019061046a9190612e70565b61136b565b60405161047c9190613aef565b60405180910390f35b61048d611383565b60405161049a919061375b565b60405180910390f35b6104ab6113ad565b6040516104b8919061392d565b60405180910390f35b6104db60048036038101906104d69190612f60565b61143f565b6040516104e89190613806565b60405180910390f35b61050b60048036038101906105069190612f60565b6114eb565b6040516105189190613806565b60405180910390f35b61052961157d565b005b61053361167d565b6040516105409190613806565b60405180910390f35b610563600480360381019061055e9190612e70565b61168e565b6040516105709190613aef565b60405180910390f35b610593600480360381019061058e9190612f9c565b61176d565b6040516105a09190613806565b60405180910390f35b6105c360048036038101906105be9190613008565b6117d2565b005b6105df60048036038101906105da9190612e99565b611a67565b6040516105ec9190613aef565b60405180910390f35b6105fd611aee565b60405161060a9190613821565b60405180910390f35b61062d60048036038101906106289190613091565b611b12565b60405161063b929190613b4e565b60405180910390f35b61065e60048036038101906106599190612e70565b611b53565b005b61067a60048036038101906106759190612e70565b611d1a565b6040516106879190613806565b60405180910390f35b60606005805461069f90613da0565b80601f01602080910402602001604051908101604052809291908181526020018280546106cb90613da0565b80156107185780601f106106ed57610100808354040283529160200191610718565b820191906000526020600020905b8154815290600101906020018083116106fb57829003601f168201915b5050505050905090565b600061073661072f611d3a565b8484611d42565b6001905092915050565b6000600454905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b600061077b848484611f0d565b61081b84610787611d3a565b84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107d1611d3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108169190613c96565b611d42565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006108df61084a611d3a565b848460036000610858611d3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108da9190613bd5565b611d42565b6001905092915050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096c90613a4f565b60405180910390fd5b61097f828261217e565b6109ea6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836122d3565b5050565b6109f6611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90613a0f565b60405180910390fd5b60008054906101000a900460ff16610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906139cf565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc0683d49b30b07504a325a45406936546070e67d5d75ab8bff33edc236d327628282604051610b5a929190613776565b60405180910390a15050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60606040518060400160405280600681526020017f6572633232330000000000000000000000000000000000000000000000000000815250905090565b610c163382612574565b50565b610c21611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca790613a0f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ceb919061375b565b60206040518083038186803b158015610d0357600080fd5b505afa158015610d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3b91906130f6565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d7892919061379f565b602060405180830381600087803b158015610d9257600080fd5b505af1158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca91906130cd565b50505050565b600a6020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e44611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90613a0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000438210610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90613aaf565b60405180910390fd5b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415611045576000915050611365565b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001846110949190613cca565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161161114157600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018361111b9190613cca565b63ffffffff1663ffffffff16815260200190815260200160002060010154915050611365565b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611156111c2576000915050611365565b6000806001836111d29190613cca565b90505b8163ffffffff168163ffffffff1611156112ff576000600283836111f99190613cca565b6112039190613c65565b8261120e9190613cca565b90506000600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff1614156112ce57806020015195505050505050611365565b86816000015163ffffffff1610156112e8578193506112f8565b6001826112f59190613cca565b92505b50506111d5565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b600b6020528060005260406000206000915090505481565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546113bc90613da0565b80601f01602080910402602001604051908101604052809291908181526020018280546113e890613da0565b80156114355780601f1061140a57610100808354040283529160200191611435565b820191906000526020600020905b81548152906001019060200180831161141857829003601f168201915b5050505050905090565b60006114e161144c611d3a565b84846003600061145a611d3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114dc9190613c96565b611d42565b6001905092915050565b60006115736114f8611d3a565b8484600067ffffffffffffffff81111561153b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561156d5781602001600182028036833780820191505090505b506126e5565b6001905092915050565b611585611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b90613a0f565b60405180910390fd5b60008054906101000a900460ff16611661576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611658906139cf565b60405180910390fd5b60008060006101000a81548160ff021916908315150217905550565b60008054906101000a900460ff1681565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16116116f8576000611765565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001836117469190613cca565b63ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b60006117c661177a611d3a565b868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506126e5565b60019050949350505050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666117fd610690565b8051906020012061180c612a22565b306040516020016118209493929190613881565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf888888604051602001611871949392919061383c565b6040516020818303038152906040528051906020012090506000828260405160200161189e929190613724565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516118db94939291906138c6565b6020604051602081039080840390855afa1580156118fd573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611979576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119709061394f565b60405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906119c990613dd2565b919050558914611a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a05906139ef565b60405180910390fd5b87421115611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890613a8f565b60405180910390fd5b611a5b818b612574565b50505050505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6009602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b611b5b611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be190613a0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c519061396f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60016020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da990613a6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e199061398f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f009190613aef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7490613a2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe4906139af565b60405180910390fd5b611ff8838383612a2f565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120439190613c96565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d19190613bd5565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121719190613aef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e590613acf565b60405180910390fd5b6121fa60008383612a2f565b806004600082825461220c9190613bd5565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122629190613bd5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122c79190613aef565b60405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561230f5750600081115b1561256f57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612441576000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116123b257600061241f565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001846124009190613cca565b63ffffffff1663ffffffff168152602001908152602001600020600101545b90506000838261242f9190613c96565b905061243d86848484612a34565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461256e576000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116124df57600061254c565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018461252d9190613cca565b63ffffffff1663ffffffff168152602001908152602001600020600101545b90506000838261255c9190613bd5565b905061256a85848484612a34565b5050505b5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006125e384610df3565b905082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46126df8284836122d3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274c90613a2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bc906139af565b60405180910390fd5b6127d0848484612a2f565b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b9190613c96565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a99190613bd5565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290b8373ffffffffffffffffffffffffffffffffffffffff16612cdd565b15612980578273ffffffffffffffffffffffffffffffffffffffff16638943ec028584846040518463ffffffff1660e01b815260040161294d939291906137c8565b600060405180830381600087803b15801561296757600080fd5b505af115801561297b573d6000803e3d6000fd5b505050505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129dd9190613aef565b60405180910390a37f3ba9136826ac751de05d770d8d34fa4440ada49a5fb0e9aa1678aece66dad97681604051612a14919061390b565b60405180910390a150505050565b6000804690508091505090565b505050565b6000612a5843604051806060016040528060338152602001613f4e60339139612d28565b905060008463ffffffff16118015612af657508063ffffffff16600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187612ac09190613cca565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15612b705781600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187612b4a9190613cca565b63ffffffff1663ffffffff16815260200190815260200160002060010181905550612c86565b60405180604001604052808263ffffffff16815260200183815250600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160010155905050600184612c289190613c2b565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612cce929190613b0a565b60405180910390a25050505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015612d1f57506000801b8214155b92505050919050565b600064010000000083108290612d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6b919061392d565b60405180910390fd5b5082905092915050565b600081359050612d8d81613ec3565b92915050565b600081359050612da281613eda565b92915050565b600081519050612db781613eda565b92915050565b600081359050612dcc81613ef1565b92915050565b60008083601f840112612de457600080fd5b8235905067ffffffffffffffff811115612dfd57600080fd5b602083019150836001820283011115612e1557600080fd5b9250929050565b600081359050612e2b81613f08565b92915050565b600081519050612e4081613f08565b92915050565b600081359050612e5581613f1f565b92915050565b600081359050612e6a81613f36565b92915050565b600060208284031215612e8257600080fd5b6000612e9084828501612d7e565b91505092915050565b60008060408385031215612eac57600080fd5b6000612eba85828601612d7e565b9250506020612ecb85828601612d7e565b9150509250929050565b600080600060608486031215612eea57600080fd5b6000612ef886828701612d7e565b9350506020612f0986828701612d7e565b9250506040612f1a86828701612e1c565b9150509250925092565b60008060408385031215612f3757600080fd5b6000612f4585828601612d7e565b9250506020612f5685828601612d93565b9150509250929050565b60008060408385031215612f7357600080fd5b6000612f8185828601612d7e565b9250506020612f9285828601612e1c565b9150509250929050565b60008060008060608587031215612fb257600080fd5b6000612fc087828801612d7e565b9450506020612fd187828801612e1c565b935050604085013567ffffffffffffffff811115612fee57600080fd5b612ffa87828801612dd2565b925092505092959194509250565b60008060008060008060c0878903121561302157600080fd5b600061302f89828a01612d7e565b965050602061304089828a01612e1c565b955050604061305189828a01612e1c565b945050606061306289828a01612e5b565b935050608061307389828a01612dbd565b92505060a061308489828a01612dbd565b9150509295509295509295565b600080604083850312156130a457600080fd5b60006130b285828601612d7e565b92505060206130c385828601612e46565b9150509250929050565b6000602082840312156130df57600080fd5b60006130ed84828501612da8565b91505092915050565b60006020828403121561310857600080fd5b600061311684828501612e31565b91505092915050565b61312881613cfe565b82525050565b61313781613d10565b82525050565b61314681613d1c565b82525050565b61315d61315882613d1c565b613e1b565b82525050565b600061316e82613b92565b6131788185613ba8565b9350613188818560208601613d6d565b61319181613eb2565b840191505092915050565b60006131a782613b9d565b6131b18185613bb9565b93506131c1818560208601613d6d565b6131ca81613eb2565b840191505092915050565b60006131e2602583613bb9565b91507f534f593a3a64656c656761746542795369673a20696e76616c6964207369676e60008301527f61747572650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613248602683613bb9565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132ae602283613bb9565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613314600283613bca565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000613354602483613bb9565b91507f4552433232333a207472616e7366657220746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133ba602283613bb9565b91507f54686973206973206f6e6c7920616c6c6f77656420696e207365747570206d6f60008301527f64650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613420602183613bb9565b91507f534f593a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613486602083613bb9565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006134c6602683613bb9565b91507f4552433232333a207472616e736665722066726f6d20746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061352c602183613bb9565b91507f4f6e6c79206d696e74657220697320616c6c6f77656420746f20646f2074686960008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613592602483613bb9565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135f8602583613bb9565b91507f534f593a3a64656c656761746542795369673a207369676e617475726520657860008301527f70697265640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061365e602683613bb9565b91507f534f593a3a6765745072696f72566f7465733a206e6f7420796574206465746560008301527f726d696e656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136c4601f83613bb9565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b61370081613d46565b82525050565b61370f81613d50565b82525050565b61371e81613d60565b82525050565b600061372f82613307565b915061373b828561314c565b60208201915061374b828461314c565b6020820191508190509392505050565b6000602082019050613770600083018461311f565b92915050565b600060408201905061378b600083018561311f565b613798602083018461312e565b9392505050565b60006040820190506137b4600083018561311f565b6137c160208301846136f7565b9392505050565b60006060820190506137dd600083018661311f565b6137ea60208301856136f7565b81810360408301526137fc8184613163565b9050949350505050565b600060208201905061381b600083018461312e565b92915050565b6000602082019050613836600083018461313d565b92915050565b6000608082019050613851600083018761313d565b61385e602083018661311f565b61386b60408301856136f7565b61387860608301846136f7565b95945050505050565b6000608082019050613896600083018761313d565b6138a3602083018661313d565b6138b060408301856136f7565b6138bd606083018461311f565b95945050505050565b60006080820190506138db600083018761313d565b6138e86020830186613715565b6138f5604083018561313d565b613902606083018461313d565b95945050505050565b600060208201905081810360008301526139258184613163565b905092915050565b60006020820190508181036000830152613947818461319c565b905092915050565b60006020820190508181036000830152613968816131d5565b9050919050565b600060208201905081810360008301526139888161323b565b9050919050565b600060208201905081810360008301526139a8816132a1565b9050919050565b600060208201905081810360008301526139c881613347565b9050919050565b600060208201905081810360008301526139e8816133ad565b9050919050565b60006020820190508181036000830152613a0881613413565b9050919050565b60006020820190508181036000830152613a2881613479565b9050919050565b60006020820190508181036000830152613a48816134b9565b9050919050565b60006020820190508181036000830152613a688161351f565b9050919050565b60006020820190508181036000830152613a8881613585565b9050919050565b60006020820190508181036000830152613aa8816135eb565b9050919050565b60006020820190508181036000830152613ac881613651565b9050919050565b60006020820190508181036000830152613ae8816136b7565b9050919050565b6000602082019050613b0460008301846136f7565b92915050565b6000604082019050613b1f60008301856136f7565b613b2c60208301846136f7565b9392505050565b6000602082019050613b486000830184613706565b92915050565b6000604082019050613b636000830185613706565b613b7060208301846136f7565b9392505050565b6000602082019050613b8c6000830184613715565b92915050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613be082613d46565b9150613beb83613d46565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c2057613c1f613e25565b5b828201905092915050565b6000613c3682613d50565b9150613c4183613d50565b92508263ffffffff03821115613c5a57613c59613e25565b5b828201905092915050565b6000613c7082613d50565b9150613c7b83613d50565b925082613c8b57613c8a613e54565b5b828204905092915050565b6000613ca182613d46565b9150613cac83613d46565b925082821015613cbf57613cbe613e25565b5b828203905092915050565b6000613cd582613d50565b9150613ce083613d50565b925082821015613cf357613cf2613e25565b5b828203905092915050565b6000613d0982613d26565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b83811015613d8b578082015181840152602081019050613d70565b83811115613d9a576000848401525b50505050565b60006002820490506001821680613db857607f821691505b60208210811415613dcc57613dcb613e83565b5b50919050565b6000613ddd82613d46565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e1057613e0f613e25565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b613ecc81613cfe565b8114613ed757600080fd5b50565b613ee381613d10565b8114613eee57600080fd5b50565b613efa81613d1c565b8114613f0557600080fd5b50565b613f1181613d46565b8114613f1c57600080fd5b50565b613f2881613d50565b8114613f3357600080fd5b50565b613f3f81613d60565b8114613f4a57600080fd5b5056fe534f593a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212205584dae9f7aa5cc0957633ee7cc7f09b55aca47f1595fe1b5e48c73615ae3aa864736f6c63430008000033534f593a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063782d6fe11161010f578063b4b5ea57116100a2578063e7a324dc11610071578063e7a324dc146105f5578063f1127ed814610613578063f2fde38b14610644578063f46eccc414610660576101f0565b8063b4b5ea5714610549578063be45fd6214610579578063c3cda520146105a9578063dd62ed3e146105c5576101f0565b8063a457c2d7116100de578063a457c2d7146104c1578063a9059cbb146104f1578063a9b9cd1e14610521578063b28fc6a31461052b576101f0565b8063782d6fe1146104255780637ecebe00146104555780638da5cb5b1461048557806395d89b41146104a3576101f0565b8063557a2b9d116101875780635d799f87116101565780635d799f871461039f5780636fcfff45146103bb57806370a08231146103eb578063715018a61461041b576101f0565b8063557a2b9d14610319578063587cde1e146103355780635a3b7e42146103655780635c19a95c14610383576101f0565b806323b872dd116101c357806323b872dd1461027f578063313ce567146102af57806339509351146102cd57806340c10f19146102fd576101f0565b806306fdde03146101f5578063095ea7b31461021357806318160ddd1461024357806320606b7014610261575b600080fd5b6101fd610690565b60405161020a919061392d565b60405180910390f35b61022d60048036038101906102289190612f60565b610722565b60405161023a9190613806565b60405180910390f35b61024b610740565b6040516102589190613aef565b60405180910390f35b61026961074a565b6040516102769190613821565b60405180910390f35b61029960048036038101906102949190612ed5565b61076e565b6040516102a69190613806565b60405180910390f35b6102b7610826565b6040516102c49190613b77565b60405180910390f35b6102e760048036038101906102e29190612f60565b61083d565b6040516102f49190613806565b60405180910390f35b61031760048036038101906103129190612f60565b6108e9565b005b610333600480360381019061032e9190612f24565b6109ee565b005b61034f600480360381019061034a9190612e70565b610b66565b60405161035c919061375b565b60405180910390f35b61036d610bcf565b60405161037a919061392d565b60405180910390f35b61039d60048036038101906103989190612e70565b610c0c565b005b6103b960048036038101906103b49190612e99565b610c19565b005b6103d560048036038101906103d09190612e70565b610dd0565b6040516103e29190613b33565b60405180910390f35b61040560048036038101906104009190612e70565b610df3565b6040516104129190613aef565b60405180910390f35b610423610e3c565b005b61043f600480360381019061043a9190612f60565b610f94565b60405161044c9190613aef565b60405180910390f35b61046f600480360381019061046a9190612e70565b61136b565b60405161047c9190613aef565b60405180910390f35b61048d611383565b60405161049a919061375b565b60405180910390f35b6104ab6113ad565b6040516104b8919061392d565b60405180910390f35b6104db60048036038101906104d69190612f60565b61143f565b6040516104e89190613806565b60405180910390f35b61050b60048036038101906105069190612f60565b6114eb565b6040516105189190613806565b60405180910390f35b61052961157d565b005b61053361167d565b6040516105409190613806565b60405180910390f35b610563600480360381019061055e9190612e70565b61168e565b6040516105709190613aef565b60405180910390f35b610593600480360381019061058e9190612f9c565b61176d565b6040516105a09190613806565b60405180910390f35b6105c360048036038101906105be9190613008565b6117d2565b005b6105df60048036038101906105da9190612e99565b611a67565b6040516105ec9190613aef565b60405180910390f35b6105fd611aee565b60405161060a9190613821565b60405180910390f35b61062d60048036038101906106289190613091565b611b12565b60405161063b929190613b4e565b60405180910390f35b61065e60048036038101906106599190612e70565b611b53565b005b61067a60048036038101906106759190612e70565b611d1a565b6040516106879190613806565b60405180910390f35b60606005805461069f90613da0565b80601f01602080910402602001604051908101604052809291908181526020018280546106cb90613da0565b80156107185780601f106106ed57610100808354040283529160200191610718565b820191906000526020600020905b8154815290600101906020018083116106fb57829003601f168201915b5050505050905090565b600061073661072f611d3a565b8484611d42565b6001905092915050565b6000600454905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b600061077b848484611f0d565b61081b84610787611d3a565b84600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107d1611d3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108169190613c96565b611d42565b600190509392505050565b6000600760009054906101000a900460ff16905090565b60006108df61084a611d3a565b848460036000610858611d3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546108da9190613bd5565b611d42565b6001905092915050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096c90613a4f565b60405180910390fd5b61097f828261217e565b6109ea6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836122d3565b5050565b6109f6611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7c90613a0f565b60405180910390fd5b60008054906101000a900460ff16610ad2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac9906139cf565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507fc0683d49b30b07504a325a45406936546070e67d5d75ab8bff33edc236d327628282604051610b5a929190613776565b60405180910390a15050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60606040518060400160405280600681526020017f6572633232330000000000000000000000000000000000000000000000000000815250905090565b610c163382612574565b50565b610c21611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca790613a0f565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610ceb919061375b565b60206040518083038186803b158015610d0357600080fd5b505afa158015610d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3b91906130f6565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401610d7892919061379f565b602060405180830381600087803b158015610d9257600080fd5b505af1158015610da6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dca91906130cd565b50505050565b600a6020528060005260406000206000915054906101000a900463ffffffff1681565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e44611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90613a0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000438210610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90613aaf565b60405180910390fd5b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415611045576000915050611365565b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001846110949190613cca565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161161114157600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018361111b9190613cca565b63ffffffff1663ffffffff16815260200190815260200160002060010154915050611365565b82600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611156111c2576000915050611365565b6000806001836111d29190613cca565b90505b8163ffffffff168163ffffffff1611156112ff576000600283836111f99190613cca565b6112039190613c65565b8261120e9190613cca565b90506000600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff1614156112ce57806020015195505050505050611365565b86816000015163ffffffff1610156112e8578193506112f8565b6001826112f59190613cca565b92505b50506111d5565b600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b600b6020528060005260406000206000915090505481565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546113bc90613da0565b80601f01602080910402602001604051908101604052809291908181526020018280546113e890613da0565b80156114355780601f1061140a57610100808354040283529160200191611435565b820191906000526020600020905b81548152906001019060200180831161141857829003601f168201915b5050505050905090565b60006114e161144c611d3a565b84846003600061145a611d3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114dc9190613c96565b611d42565b6001905092915050565b60006115736114f8611d3a565b8484600067ffffffffffffffff81111561153b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561156d5781602001600182028036833780820191505090505b506126e5565b6001905092915050565b611585611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160b90613a0f565b60405180910390fd5b60008054906101000a900460ff16611661576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611658906139cf565b60405180910390fd5b60008060006101000a81548160ff021916908315150217905550565b60008054906101000a900460ff1681565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16116116f8576000611765565b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001836117469190613cca565b63ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b60006117c661177a611d3a565b868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506126e5565b60019050949350505050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666117fd610690565b8051906020012061180c612a22565b306040516020016118209493929190613881565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf888888604051602001611871949392919061383c565b6040516020818303038152906040528051906020012090506000828260405160200161189e929190613724565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516118db94939291906138c6565b6020604051602081039080840390855afa1580156118fd573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611979576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119709061394f565b60405180910390fd5b600b60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906119c990613dd2565b919050558914611a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a05906139ef565b60405180910390fd5b87421115611a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4890613a8f565b60405180910390fd5b611a5b818b612574565b50505050505050505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6009602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b611b5b611d3a565b73ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be190613a0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c519061396f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60016020528060005260406000206000915054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da990613a6f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e199061398f565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611f009190613aef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7490613a2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611fed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe4906139af565b60405180910390fd5b611ff8838383612a2f565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120439190613c96565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120d19190613bd5565b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121719190613aef565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e590613acf565b60405180910390fd5b6121fa60008383612a2f565b806004600082825461220c9190613bd5565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122629190613bd5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122c79190613aef565b60405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561230f5750600081115b1561256f57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612441576000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116123b257600061241f565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001846124009190613cca565b63ffffffff1663ffffffff168152602001908152602001600020600101545b90506000838261242f9190613c96565b905061243d86848484612a34565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461256e576000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116124df57600061254c565b600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018461252d9190613cca565b63ffffffff1663ffffffff168152602001908152602001600020600101545b90506000838261255c9190613bd5565b905061256a85848484612a34565b5050505b5b505050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060006125e384610df3565b905082600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46126df8284836122d3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274c90613a2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bc906139af565b60405180910390fd5b6127d0848484612a2f565b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b9190613c96565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a99190613bd5565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290b8373ffffffffffffffffffffffffffffffffffffffff16612cdd565b15612980578273ffffffffffffffffffffffffffffffffffffffff16638943ec028584846040518463ffffffff1660e01b815260040161294d939291906137c8565b600060405180830381600087803b15801561296757600080fd5b505af115801561297b573d6000803e3d6000fd5b505050505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516129dd9190613aef565b60405180910390a37f3ba9136826ac751de05d770d8d34fa4440ada49a5fb0e9aa1678aece66dad97681604051612a14919061390b565b60405180910390a150505050565b6000804690508091505090565b505050565b6000612a5843604051806060016040528060338152602001613f4e60339139612d28565b905060008463ffffffff16118015612af657508063ffffffff16600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187612ac09190613cca565b63ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15612b705781600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600187612b4a9190613cca565b63ffffffff1663ffffffff16815260200190815260200160002060010181905550612c86565b60405180604001604052808263ffffffff16815260200183815250600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160010155905050600184612c289190613c2b565b600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051612cce929190613b0a565b60405180910390a25050505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f9150808214158015612d1f57506000801b8214155b92505050919050565b600064010000000083108290612d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6b919061392d565b60405180910390fd5b5082905092915050565b600081359050612d8d81613ec3565b92915050565b600081359050612da281613eda565b92915050565b600081519050612db781613eda565b92915050565b600081359050612dcc81613ef1565b92915050565b60008083601f840112612de457600080fd5b8235905067ffffffffffffffff811115612dfd57600080fd5b602083019150836001820283011115612e1557600080fd5b9250929050565b600081359050612e2b81613f08565b92915050565b600081519050612e4081613f08565b92915050565b600081359050612e5581613f1f565b92915050565b600081359050612e6a81613f36565b92915050565b600060208284031215612e8257600080fd5b6000612e9084828501612d7e565b91505092915050565b60008060408385031215612eac57600080fd5b6000612eba85828601612d7e565b9250506020612ecb85828601612d7e565b9150509250929050565b600080600060608486031215612eea57600080fd5b6000612ef886828701612d7e565b9350506020612f0986828701612d7e565b9250506040612f1a86828701612e1c565b9150509250925092565b60008060408385031215612f3757600080fd5b6000612f4585828601612d7e565b9250506020612f5685828601612d93565b9150509250929050565b60008060408385031215612f7357600080fd5b6000612f8185828601612d7e565b9250506020612f9285828601612e1c565b9150509250929050565b60008060008060608587031215612fb257600080fd5b6000612fc087828801612d7e565b9450506020612fd187828801612e1c565b935050604085013567ffffffffffffffff811115612fee57600080fd5b612ffa87828801612dd2565b925092505092959194509250565b60008060008060008060c0878903121561302157600080fd5b600061302f89828a01612d7e565b965050602061304089828a01612e1c565b955050604061305189828a01612e1c565b945050606061306289828a01612e5b565b935050608061307389828a01612dbd565b92505060a061308489828a01612dbd565b9150509295509295509295565b600080604083850312156130a457600080fd5b60006130b285828601612d7e565b92505060206130c385828601612e46565b9150509250929050565b6000602082840312156130df57600080fd5b60006130ed84828501612da8565b91505092915050565b60006020828403121561310857600080fd5b600061311684828501612e31565b91505092915050565b61312881613cfe565b82525050565b61313781613d10565b82525050565b61314681613d1c565b82525050565b61315d61315882613d1c565b613e1b565b82525050565b600061316e82613b92565b6131788185613ba8565b9350613188818560208601613d6d565b61319181613eb2565b840191505092915050565b60006131a782613b9d565b6131b18185613bb9565b93506131c1818560208601613d6d565b6131ca81613eb2565b840191505092915050565b60006131e2602583613bb9565b91507f534f593a3a64656c656761746542795369673a20696e76616c6964207369676e60008301527f61747572650000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613248602683613bb9565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006132ae602283613bb9565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613314600283613bca565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000613354602483613bb9565b91507f4552433232333a207472616e7366657220746f20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133ba602283613bb9565b91507f54686973206973206f6e6c7920616c6c6f77656420696e207365747570206d6f60008301527f64650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613420602183613bb9565b91507f534f593a3a64656c656761746542795369673a20696e76616c6964206e6f6e6360008301527f65000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613486602083613bb9565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006134c6602683613bb9565b91507f4552433232333a207472616e736665722066726f6d20746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061352c602183613bb9565b91507f4f6e6c79206d696e74657220697320616c6c6f77656420746f20646f2074686960008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613592602483613bb9565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006135f8602583613bb9565b91507f534f593a3a64656c656761746542795369673a207369676e617475726520657860008301527f70697265640000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061365e602683613bb9565b91507f534f593a3a6765745072696f72566f7465733a206e6f7420796574206465746560008301527f726d696e656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006136c4601f83613bb9565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b61370081613d46565b82525050565b61370f81613d50565b82525050565b61371e81613d60565b82525050565b600061372f82613307565b915061373b828561314c565b60208201915061374b828461314c565b6020820191508190509392505050565b6000602082019050613770600083018461311f565b92915050565b600060408201905061378b600083018561311f565b613798602083018461312e565b9392505050565b60006040820190506137b4600083018561311f565b6137c160208301846136f7565b9392505050565b60006060820190506137dd600083018661311f565b6137ea60208301856136f7565b81810360408301526137fc8184613163565b9050949350505050565b600060208201905061381b600083018461312e565b92915050565b6000602082019050613836600083018461313d565b92915050565b6000608082019050613851600083018761313d565b61385e602083018661311f565b61386b60408301856136f7565b61387860608301846136f7565b95945050505050565b6000608082019050613896600083018761313d565b6138a3602083018661313d565b6138b060408301856136f7565b6138bd606083018461311f565b95945050505050565b60006080820190506138db600083018761313d565b6138e86020830186613715565b6138f5604083018561313d565b613902606083018461313d565b95945050505050565b600060208201905081810360008301526139258184613163565b905092915050565b60006020820190508181036000830152613947818461319c565b905092915050565b60006020820190508181036000830152613968816131d5565b9050919050565b600060208201905081810360008301526139888161323b565b9050919050565b600060208201905081810360008301526139a8816132a1565b9050919050565b600060208201905081810360008301526139c881613347565b9050919050565b600060208201905081810360008301526139e8816133ad565b9050919050565b60006020820190508181036000830152613a0881613413565b9050919050565b60006020820190508181036000830152613a2881613479565b9050919050565b60006020820190508181036000830152613a48816134b9565b9050919050565b60006020820190508181036000830152613a688161351f565b9050919050565b60006020820190508181036000830152613a8881613585565b9050919050565b60006020820190508181036000830152613aa8816135eb565b9050919050565b60006020820190508181036000830152613ac881613651565b9050919050565b60006020820190508181036000830152613ae8816136b7565b9050919050565b6000602082019050613b0460008301846136f7565b92915050565b6000604082019050613b1f60008301856136f7565b613b2c60208301846136f7565b9392505050565b6000602082019050613b486000830184613706565b92915050565b6000604082019050613b636000830185613706565b613b7060208301846136f7565b9392505050565b6000602082019050613b8c6000830184613715565b92915050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613be082613d46565b9150613beb83613d46565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c2057613c1f613e25565b5b828201905092915050565b6000613c3682613d50565b9150613c4183613d50565b92508263ffffffff03821115613c5a57613c59613e25565b5b828201905092915050565b6000613c7082613d50565b9150613c7b83613d50565b925082613c8b57613c8a613e54565b5b828204905092915050565b6000613ca182613d46565b9150613cac83613d46565b925082821015613cbf57613cbe613e25565b5b828203905092915050565b6000613cd582613d50565b9150613ce083613d50565b925082821015613cf357613cf2613e25565b5b828203905092915050565b6000613d0982613d26565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b83811015613d8b578082015181840152602081019050613d70565b83811115613d9a576000848401525b50505050565b60006002820490506001821680613db857607f821691505b60208210811415613dcc57613dcb613e83565b5b50919050565b6000613ddd82613d46565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613e1057613e0f613e25565b5b600182019050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b613ecc81613cfe565b8114613ed757600080fd5b50565b613ee381613d10565b8114613eee57600080fd5b50565b613efa81613d1c565b8114613f0557600080fd5b50565b613f1181613d46565b8114613f1c57600080fd5b50565b613f2881613d50565b8114613f3357600080fd5b50565b613f3f81613d60565b8114613f4a57600080fd5b5056fe534f593a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473a26469706673582212205584dae9f7aa5cc0957633ee7cc7f09b55aca47f1595fe1b5e48c73615ae3aa864736f6c63430008000033