6080604052670de0b6b3a76400006000196200001c919062000524565b6000196200002b9190620004df565b6009556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000601060176101000a81548160ff021916908315150217905550670de0b6b3a76400006011553480156200009857600080fd5b506000620000ab6200048060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737455818d0c7ab6d71493f966cfab14ee302ae2d7600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737455818d0c7ab6d71493f966cfab14ee302ae2d7600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600260006200020a6200048060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600660006200025e6200048860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040b6200048060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620004729190620004c2565b60405180910390a3620005ba565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004bc816200051a565b82525050565b6000602082019050620004d96000830184620004b1565b92915050565b6000620004ec826200051a565b9150620004f9836200051a565b9250828210156200050f576200050e6200055c565b5b828203905092915050565b6000819050919050565b600062000531826200051a565b91506200053e836200051a565b9250826200055157620005506200058b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61374d80620005ca6000396000f3fe60806040526004361061012e5760003560e01c80638da5cb5b116100ab578063c2d0ffca1161006f578063c2d0ffca146103d7578063c3c8cd8014610400578063c9567bf914610417578063cc653b441461042e578063dd62ed3e1461046b578063ff872602146104a857610135565b80638da5cb5b146102f257806395d89b411461031d578063a9059cbb14610348578063b515566a14610385578063bc337182146103ae57610135565b8063313ce567116100f2578063313ce567146102335780635932ead11461025e5780636fc3eaec1461028757806370a082311461029e578063715018a6146102db57610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063273123b71461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104bf565b60405161015c9190612ea7565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612a10565b6104fc565b6040516101999190612e8c565b60405180910390f35b3480156101ae57600080fd5b506101b761051a565b6040516101c49190613009565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef91906129c1565b61052a565b6040516102019190612e8c565b60405180910390f35b34801561021657600080fd5b50610231600480360381019061022c9190612933565b610603565b005b34801561023f57600080fd5b506102486106f3565b604051610255919061307e565b60405180910390f35b34801561026a57600080fd5b5061028560048036038101906102809190612a8d565b6106fc565b005b34801561029357600080fd5b5061029c6107ae565b005b3480156102aa57600080fd5b506102c560048036038101906102c09190612933565b610820565b6040516102d29190613009565b60405180910390f35b3480156102e757600080fd5b506102f0610871565b005b3480156102fe57600080fd5b506103076109c4565b6040516103149190612dbe565b60405180910390f35b34801561032957600080fd5b506103326109ed565b60405161033f9190612ea7565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190612a10565b610a2a565b60405161037c9190612e8c565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190612a4c565b610a48565b005b3480156103ba57600080fd5b506103d560048036038101906103d09190612adf565b610b98565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612adf565b610c37565b005b34801561040c57600080fd5b50610415610cd6565b005b34801561042357600080fd5b5061042c610d50565b005b34801561043a57600080fd5b5061045560048036038101906104509190612933565b6112ab565b6040516104629190613009565b60405180910390f35b34801561047757600080fd5b50610492600480360381019061048d9190612985565b6112f4565b60405161049f9190613009565b60405180910390f35b3480156104b457600080fd5b506104bd61137b565b005b60606040518060400160405280600481526020017f424f594f00000000000000000000000000000000000000000000000000000000815250905090565b6000610510610509611422565b848461142a565b6001905092915050565b6000670de0b6b3a7640000905090565b60006105378484846115f5565b6105f884610543611422565b6105f3856040518060600160405280602881526020016136f060289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105a9611422565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4b9092919063ffffffff16565b61142a565b600190509392505050565b61060b611422565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068f90612f69565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610704611422565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078890612f69565b60405180910390fd5b80601060176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107ef611422565b73ffffffffffffffffffffffffffffffffffffffff161461080f57600080fd5b600047905061081d81611caf565b50565b600061086a600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611daa565b9050919050565b610879611422565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612f69565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f424f590000000000000000000000000000000000000000000000000000000000815250905090565b6000610a3e610a37611422565b84846115f5565b6001905092915050565b610a50611422565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad490612f69565b60405180910390fd5b60005b8151811015610b9457600160076000848481518110610b28577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610b8c9061331f565b915050610ae0565b5050565b610ba0611422565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2490612f69565b60405180910390fd5b8060118190555050565b610c3f611422565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390612f69565b60405180910390fd5b8060118190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d17611422565b73ffffffffffffffffffffffffffffffffffffffff1614610d3757600080fd5b6000610d4230610820565b9050610d4d81611e18565b50565b610d58611422565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddc90612f69565b60405180910390fd5b601060149054906101000a900460ff1615610e35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2c90612fe9565b60405180910390fd5b60007303f7724180aa6b939894b5ca4314783b0b36b329905080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ec430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a764000061142a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610f0a57600080fd5b505afa158015610f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f42919061295c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa457600080fd5b505afa158015610fb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fdc919061295c565b6040518363ffffffff1660e01b8152600401610ff9929190612dd9565b602060405180830381600087803b15801561101357600080fd5b505af1158015611027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104b919061295c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110d430610820565b6000806110df6109c4565b426040518863ffffffff1660e01b815260040161110196959493929190612e2b565b6060604051808303818588803b15801561111a57600080fd5b505af115801561112e573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111539190612b08565b5050506001601060166101000a81548160ff0219169083151502179055506001601060176101000a81548160ff021916908315150217905550678ac7230489e800006011819055506001601060146101000a81548160ff021916908315150217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611255929190612e02565b602060405180830381600087803b15801561126f57600080fd5b505af1158015611283573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112a79190612ab6565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611383611422565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140790612f69565b60405180910390fd5b683635c9adc5dea00000601181905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561149a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149190612fc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561150a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150190612f09565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115e89190613009565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611665576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165c90612fa9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cc90612ec9565b60405180910390fd5b60008111611718576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170f90612f89565b60405180910390fd5b61172183612112565b6117f2576000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141580156117c257504262015180600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117bf919061313f565b10155b156117dc576004600b819055506010600c819055506117ed565b600a600b81905550600a600c819055505b611890565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141561187f5742600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600a600b81905550600a600c819055505b6118986109c4565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561190657506118d66109c4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611c3b57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119af5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119b857600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a635750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611ab95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ad15750601060179054906101000a900460ff165b15611b8157601154811115611ae557600080fd5b42600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b3057600080fd5b601e42611b3d919061313f565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000611b8c30610820565b9050601060159054906101000a900460ff16158015611bf95750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611c115750601060169054906101000a900460ff165b15611c3957611c1f81611e18565b60004790506000811115611c3757611c3647611caf565b5b505b505b611c4683838361216c565b505050565b6000838311158290611c93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8a9190612ea7565b60405180910390fd5b5060008385611ca29190613220565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611cff60028461217c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d2a573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d7b60028461217c90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611da6573d6000803e3d6000fd5b5050565b6000600954821115611df1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de890612ee9565b60405180910390fd5b6000611dfb6121c6565b9050611e10818461217c90919063ffffffff16565b915050919050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e76577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611ea45781602001602082028036833780820191505090505b5090503081600081518110611ee2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8457600080fd5b505afa158015611f98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fbc919061295c565b81600181518110611ff6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061205d30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461142a565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120c1959493929190613024565b600060405180830381600087803b1580156120db57600080fd5b505af11580156120ef573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b6121778383836121f1565b505050565b60006121be83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123bc565b905092915050565b60008060006121d361241f565b915091506121ea818361217c90919063ffffffff16565b9250505090565b6000806000806000806122038761247e565b95509550955095509550955061226186600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124e690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f685600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123428161258e565b61234c848361264b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123a99190613009565b60405180910390a3505050505050505050565b60008083118290612403576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fa9190612ea7565b60405180910390fd5b50600083856124129190613195565b9050809150509392505050565b600080600060095490506000670de0b6b3a76400009050612453670de0b6b3a764000060095461217c90919063ffffffff16565b82101561247157600954670de0b6b3a764000093509350505061247a565b81819350935050505b9091565b600080600080600080600080600061249b8a600b54600c54612685565b92509250925060006124ab6121c6565b905060008060006124be8e87878761271b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061252883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c4b565b905092915050565b600080828461253f919061313f565b905083811015612584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161257b90612f29565b60405180910390fd5b8091505092915050565b60006125986121c6565b905060006125af82846127a490919063ffffffff16565b905061260381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461253090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612660826009546124e690919063ffffffff16565b60098190555061267b81600a5461253090919063ffffffff16565b600a819055505050565b6000806000806126b160646126a3888a6127a490919063ffffffff16565b61217c90919063ffffffff16565b905060006126db60646126cd888b6127a490919063ffffffff16565b61217c90919063ffffffff16565b90506000612704826126f6858c6124e690919063ffffffff16565b6124e690919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061273485896127a490919063ffffffff16565b9050600061274b86896127a490919063ffffffff16565b9050600061276287896127a490919063ffffffff16565b9050600061278b8261277d85876124e690919063ffffffff16565b6124e690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156127b75760009050612819565b600082846127c591906131c6565b90508284826127d49190613195565b14612814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161280b90612f49565b60405180910390fd5b809150505b92915050565b600061283261282d846130be565b613099565b9050808382526020820190508285602086028201111561285157600080fd5b60005b858110156128815781612867888261288b565b845260208401935060208301925050600181019050612854565b5050509392505050565b60008135905061289a816136aa565b92915050565b6000815190506128af816136aa565b92915050565b600082601f8301126128c657600080fd5b81356128d684826020860161281f565b91505092915050565b6000813590506128ee816136c1565b92915050565b600081519050612903816136c1565b92915050565b600081359050612918816136d8565b92915050565b60008151905061292d816136d8565b92915050565b60006020828403121561294557600080fd5b60006129538482850161288b565b91505092915050565b60006020828403121561296e57600080fd5b600061297c848285016128a0565b91505092915050565b6000806040838503121561299857600080fd5b60006129a68582860161288b565b92505060206129b78582860161288b565b9150509250929050565b6000806000606084860312156129d657600080fd5b60006129e48682870161288b565b93505060206129f58682870161288b565b9250506040612a0686828701612909565b9150509250925092565b60008060408385031215612a2357600080fd5b6000612a318582860161288b565b9250506020612a4285828601612909565b9150509250929050565b600060208284031215612a5e57600080fd5b600082013567ffffffffffffffff811115612a7857600080fd5b612a84848285016128b5565b91505092915050565b600060208284031215612a9f57600080fd5b6000612aad848285016128df565b91505092915050565b600060208284031215612ac857600080fd5b6000612ad6848285016128f4565b91505092915050565b600060208284031215612af157600080fd5b6000612aff84828501612909565b91505092915050565b600080600060608486031215612b1d57600080fd5b6000612b2b8682870161291e565b9350506020612b3c8682870161291e565b9250506040612b4d8682870161291e565b9150509250925092565b6000612b638383612b6f565b60208301905092915050565b612b7881613254565b82525050565b612b8781613254565b82525050565b6000612b98826130fa565b612ba2818561311d565b9350612bad836130ea565b8060005b83811015612bde578151612bc58882612b57565b9750612bd083613110565b925050600181019050612bb1565b5085935050505092915050565b612bf481613266565b82525050565b612c03816132a9565b82525050565b6000612c1482613105565b612c1e818561312e565b9350612c2e8185602086016132bb565b612c37816133f5565b840191505092915050565b6000612c4f60238361312e565b9150612c5a82613406565b604082019050919050565b6000612c72602a8361312e565b9150612c7d82613455565b604082019050919050565b6000612c9560228361312e565b9150612ca0826134a4565b604082019050919050565b6000612cb8601b8361312e565b9150612cc3826134f3565b602082019050919050565b6000612cdb60218361312e565b9150612ce68261351c565b604082019050919050565b6000612cfe60208361312e565b9150612d098261356b565b602082019050919050565b6000612d2160298361312e565b9150612d2c82613594565b604082019050919050565b6000612d4460258361312e565b9150612d4f826135e3565b604082019050919050565b6000612d6760248361312e565b9150612d7282613632565b604082019050919050565b6000612d8a60178361312e565b9150612d9582613681565b602082019050919050565b612da981613292565b82525050565b612db88161329c565b82525050565b6000602082019050612dd36000830184612b7e565b92915050565b6000604082019050612dee6000830185612b7e565b612dfb6020830184612b7e565b9392505050565b6000604082019050612e176000830185612b7e565b612e246020830184612da0565b9392505050565b600060c082019050612e406000830189612b7e565b612e4d6020830188612da0565b612e5a6040830187612bfa565b612e676060830186612bfa565b612e746080830185612b7e565b612e8160a0830184612da0565b979650505050505050565b6000602082019050612ea16000830184612beb565b92915050565b60006020820190508181036000830152612ec18184612c09565b905092915050565b60006020820190508181036000830152612ee281612c42565b9050919050565b60006020820190508181036000830152612f0281612c65565b9050919050565b60006020820190508181036000830152612f2281612c88565b9050919050565b60006020820190508181036000830152612f4281612cab565b9050919050565b60006020820190508181036000830152612f6281612cce565b9050919050565b60006020820190508181036000830152612f8281612cf1565b9050919050565b60006020820190508181036000830152612fa281612d14565b9050919050565b60006020820190508181036000830152612fc281612d37565b9050919050565b60006020820190508181036000830152612fe281612d5a565b9050919050565b6000602082019050818103600083015261300281612d7d565b9050919050565b600060208201905061301e6000830184612da0565b92915050565b600060a0820190506130396000830188612da0565b6130466020830187612bfa565b81810360408301526130588186612b8d565b90506130676060830185612b7e565b6130746080830184612da0565b9695505050505050565b60006020820190506130936000830184612daf565b92915050565b60006130a36130b4565b90506130af82826132ee565b919050565b6000604051905090565b600067ffffffffffffffff8211156130d9576130d86133c6565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061314a82613292565b915061315583613292565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561318a57613189613368565b5b828201905092915050565b60006131a082613292565b91506131ab83613292565b9250826131bb576131ba613397565b5b828204905092915050565b60006131d182613292565b91506131dc83613292565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561321557613214613368565b5b828202905092915050565b600061322b82613292565b915061323683613292565b92508282101561324957613248613368565b5b828203905092915050565b600061325f82613272565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132b482613292565b9050919050565b60005b838110156132d95780820151818401526020810190506132be565b838111156132e8576000848401525b50505050565b6132f7826133f5565b810181811067ffffffffffffffff82111715613316576133156133c6565b5b80604052505050565b600061332a82613292565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561335d5761335c613368565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6136b381613254565b81146136be57600080fd5b50565b6136ca81613266565b81146136d557600080fd5b50565b6136e181613292565b81146136ec57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204a7ba1afe57ad0875245043c233aac8f66e54c1ebb19a9c2af4164f06dce409164736f6c63430008040033