6080604052670de0b6b3a76400006000196200001c919062000671565b6000196200002b9190620006d8565b60075560006009556000600a556000600b556000600c55600b54600d55600c54600e55600d54600f55600e546010557323ced507dd5450ea448934a2f27f76766d98791c601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff021916908315150217905550666a94d74f430000601555666a94d74f4300006016556601c6bf526340006017553480156200011357600080fd5b506000620001266200060760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620001db6200060760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ba57600080fd5b505afa158015620002cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f591906200077d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200035857600080fd5b505afa1580156200036d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039391906200077d565b6040518363ffffffff1660e01b8152600401620003b2929190620007c0565b602060405180830381600087803b158015620003cd57600080fd5b505af1158015620003e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040891906200077d565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660006200045e6200060f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005916200060760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620005f89190620007fe565b60405180910390a3506200081b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200067e8262000638565b91506200068b8362000638565b9250826200069e576200069d62000642565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620006e58262000638565b9150620006f28362000638565b925082821015620007085762000707620006a9565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007458262000718565b9050919050565b620007578162000738565b81146200076357600080fd5b50565b60008151905062000777816200074c565b92915050565b60006020828403121562000796576200079562000713565b5b6000620007a68482850162000766565b91505092915050565b620007ba8162000738565b82525050565b6000604082019050620007d76000830185620007af565b620007e66020830184620007af565b9392505050565b620007f88162000638565b82525050565b6000602082019050620008156000830184620007ed565b92915050565b6139f0806200082b6000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec57806395d89b411161008a578063c04a541411610064578063c04a54141461059b578063dd62ed3e146105c6578063ea1644d514610603578063f2fde38b1461062c576101a7565b806395d89b411461050a57806398a5c31514610535578063a9059cbb1461055e576101a7565b8063881dce60116100c6578063881dce60146104625780638da5cb5b1461048b5780638f70ccf7146104b65780638f9a55c0146104df576101a7565b8063715018a6146103f757806374010ece1461040e5780637d1db4a514610437576101a7565b80632fd689e31161015957806349bd5a5e1161013357806349bd5a5e1461034f5780636d8aa8f81461037a5780636fc3eaec146103a357806370a08231146103ba576101a7565b80632fd689e3146102d0578063313ce567146102fb57806346001d8e14610326576101a7565b8063043a791d146101ac57806306fdde03146101d5578063095ea7b3146102005780631694505e1461023d57806318160ddd1461026857806323b872dd14610293576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101d360048036038101906101ce91906129a4565b610655565b005b3480156101e157600080fd5b506101ea610712565b6040516101f79190612a6a565b60405180910390f35b34801561020c57600080fd5b5061022760048036038101906102229190612aea565b61074f565b6040516102349190612b45565b60405180910390f35b34801561024957600080fd5b5061025261076d565b60405161025f9190612bbf565b60405180910390f35b34801561027457600080fd5b5061027d610793565b60405161028a9190612be9565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190612c04565b6107a3565b6040516102c79190612b45565b60405180910390f35b3480156102dc57600080fd5b506102e561087c565b6040516102f29190612be9565b60405180910390f35b34801561030757600080fd5b50610310610882565b60405161031d9190612c73565b60405180910390f35b34801561033257600080fd5b5061034d600480360381019061034891906129a4565b61088b565b005b34801561035b57600080fd5b50610364610948565b6040516103719190612c9d565b60405180910390f35b34801561038657600080fd5b506103a1600480360381019061039c9190612ce4565b61096e565b005b3480156103af57600080fd5b506103b8610a20565b005b3480156103c657600080fd5b506103e160048036038101906103dc9190612d11565b610a92565b6040516103ee9190612be9565b60405180910390f35b34801561040357600080fd5b5061040c610ae3565b005b34801561041a57600080fd5b50610435600480360381019061043091906129a4565b610c36565b005b34801561044357600080fd5b5061044c610ca1565b6040516104599190612be9565b60405180910390f35b34801561046e57600080fd5b50610489600480360381019061048491906129a4565b610ca7565b005b34801561049757600080fd5b506104a0610d6b565b6040516104ad9190612c9d565b60405180910390f35b3480156104c257600080fd5b506104dd60048036038101906104d89190612ce4565b610d94565b005b3480156104eb57600080fd5b506104f4610e45565b6040516105019190612be9565b60405180910390f35b34801561051657600080fd5b5061051f610e4b565b60405161052c9190612a6a565b60405180910390f35b34801561054157600080fd5b5061055c600480360381019061055791906129a4565b610e88565b005b34801561056a57600080fd5b5061058560048036038101906105809190612aea565b610ef3565b6040516105929190612b45565b60405180910390f35b3480156105a757600080fd5b506105b0610f11565b6040516105bd9190612c9d565b60405180910390f35b3480156105d257600080fd5b506105ed60048036038101906105e89190612d3e565b610f3b565b6040516105fa9190612be9565b60405180910390f35b34801561060f57600080fd5b5061062a600480360381019061062591906129a4565b610fc2565b005b34801561063857600080fd5b50610653600480360381019061064e9190612d11565b61102d565b005b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106966111ef565b73ffffffffffffffffffffffffffffffffffffffff16146106b657600080fd5b600181101580156106c95750600a548111155b610708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ff90612e16565b60405180910390fd5b80600a8190555050565b60606040518060400160405280600c81526020017f46616c6c656e20416e67656c0000000000000000000000000000000000000000815250905090565b600061076361075c6111ef565b84846111f7565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000670de0b6b3a7640000905090565b60006107b08484846113c2565b610871846107bc6111ef565b61086c8560405180606001604052806028815260200161399360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108226111ef565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e7c9092919063ffffffff16565b6111f7565b600190509392505050565b60175481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108cc6111ef565b73ffffffffffffffffffffffffffffffffffffffff16146108ec57600080fd5b600181101580156108ff5750600c548111155b61093e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093590612ece565b60405180910390fd5b80600c8190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109766111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90612f3a565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a616111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610a8157600080fd5b6000479050610a8f81611ee0565b50565b6000610adc600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f4c565b9050919050565b610aeb6111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f90612f3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c776111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610c9757600080fd5b8060158190555050565b60155481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce86111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610d0857600080fd5b610d1130610a92565b8111158015610d205750600081115b610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5690612fa6565b60405180910390fd5b610d6881611fba565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610d9c6111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090612f3a565b60405180910390fd5b806014806101000a81548160ff02191690831515021790555050565b60165481565b60606040518060400160405280600681526020017f4d414d4d4f4e0000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec96111ef565b73ffffffffffffffffffffffffffffffffffffffff1614610ee957600080fd5b8060178190555050565b6000610f07610f006111ef565b84846113c2565b6001905092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110036111ef565b73ffffffffffffffffffffffffffffffffffffffff161461102357600080fd5b8060168190555050565b6110356111ef565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990612f3a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990613038565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e906130ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ce9061315c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113b59190612be9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611432576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611429906131ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149990613280565b60405180910390fd5b600081116114e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114dc90613312565b60405180910390fd5b6114ed610d6b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561155b575061152b610d6b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a805760148054906101000a900460ff166115ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a49061337e565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156116585750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c5573073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156116c557503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561171f5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117795750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c4576015548111156117c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ba906133ea565b60405180910390fd5b5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156118715750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118a957503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561190657601654816118bb84610a92565b6118c59190613439565b10611905576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fc90613501565b60405180910390fd5b5b600061191130610a92565b9050600060175482101590508080156119375750601460159054906101000a900460ff16155b80156119915750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119a95750601460169054906101000a900460ff165b80156119ff5750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a555750600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a7d57611a6382611fba565b60004790506000811115611a7b57611a7a47611ee0565b5b505b50505b600060019050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b275750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611bda5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611bd95750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611be85760009050611e6a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c935750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cef5742600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600954600d81905550600a54600e819055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611e69576000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414158015611e3b575042613840600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e389190613439565b10155b15611e55576000600d819055506000600e81905550611e68565b600b54600d81905550600c54600e819055505b5b5b611e7684848484612242565b50505050565b6000838311158290611ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebb9190612a6a565b60405180910390fd5b5060008385611ed39190613521565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f48573d6000803e3d6000fd5b5050565b6000600754821115611f93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8a906135c7565b60405180910390fd5b6000611f9d61226f565b9050611fb2818461229a90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ff257611ff16135e7565b5b6040519080825280602002602001820160405280156120205781602001602082028036833780820191505090505b509050308160008151811061203857612037613616565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156120da57600080fd5b505afa1580156120ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612112919061365a565b8160018151811061212657612125613616565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061218d30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111f7565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121f1959493929190613780565b600060405180830381600087803b15801561220b57600080fd5b505af115801561221f573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b806122505761224f6122e4565b5b61225b848484612327565b80612269576122686124f2565b5b50505050565b600080600061227c612506565b91509150612293818361229a90919063ffffffff16565b9250505090565b60006122dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612565565b905092915050565b6000600d541480156122f857506000600e54145b1561230257612325565b600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b600080600080600080612339876125c8565b95509550955095509550955061239786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612478816126d8565b6124828483612795565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516124df9190612be9565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b600080600060075490506000670de0b6b3a7640000905061253a670de0b6b3a764000060075461229a90919063ffffffff16565b82101561255857600754670de0b6b3a7640000935093505050612561565b81819350935050505b9091565b600080831182906125ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a39190612a6a565b60405180910390fd5b50600083856125bb9190613809565b9050809150509392505050565b60008060008060008060008060006125e58a600d54600e546127cf565b92509250925060006125f561226f565b905060008060006126088e878787612865565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061267283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e7c565b905092915050565b60008082846126899190613439565b9050838110156126ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126c590613886565b60405180910390fd5b8091505092915050565b60006126e261226f565b905060006126f982846128ee90919063ffffffff16565b905061274d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461267a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6127aa8260075461263090919063ffffffff16565b6007819055506127c58160085461267a90919063ffffffff16565b6008819055505050565b6000806000806127fb60646127ed888a6128ee90919063ffffffff16565b61229a90919063ffffffff16565b905060006128256064612817888b6128ee90919063ffffffff16565b61229a90919063ffffffff16565b9050600061284e82612840858c61263090919063ffffffff16565b61263090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061287e85896128ee90919063ffffffff16565b9050600061289586896128ee90919063ffffffff16565b905060006128ac87896128ee90919063ffffffff16565b905060006128d5826128c7858761263090919063ffffffff16565b61263090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129015760009050612963565b6000828461290f91906138a6565b905082848261291e9190613809565b1461295e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295590613972565b60405180910390fd5b809150505b92915050565b600080fd5b6000819050919050565b6129818161296e565b811461298c57600080fd5b50565b60008135905061299e81612978565b92915050565b6000602082840312156129ba576129b9612969565b5b60006129c88482850161298f565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a0b5780820151818401526020810190506129f0565b83811115612a1a576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a3c826129d1565b612a4681856129dc565b9350612a568185602086016129ed565b612a5f81612a20565b840191505092915050565b60006020820190508181036000830152612a848184612a31565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ab782612a8c565b9050919050565b612ac781612aac565b8114612ad257600080fd5b50565b600081359050612ae481612abe565b92915050565b60008060408385031215612b0157612b00612969565b5b6000612b0f85828601612ad5565b9250506020612b208582860161298f565b9150509250929050565b60008115159050919050565b612b3f81612b2a565b82525050565b6000602082019050612b5a6000830184612b36565b92915050565b6000819050919050565b6000612b85612b80612b7b84612a8c565b612b60565b612a8c565b9050919050565b6000612b9782612b6a565b9050919050565b6000612ba982612b8c565b9050919050565b612bb981612b9e565b82525050565b6000602082019050612bd46000830184612bb0565b92915050565b612be38161296e565b82525050565b6000602082019050612bfe6000830184612bda565b92915050565b600080600060608486031215612c1d57612c1c612969565b5b6000612c2b86828701612ad5565b9350506020612c3c86828701612ad5565b9250506040612c4d8682870161298f565b9150509250925092565b600060ff82169050919050565b612c6d81612c57565b82525050565b6000602082019050612c886000830184612c64565b92915050565b612c9781612aac565b82525050565b6000602082019050612cb26000830184612c8e565b92915050565b612cc181612b2a565b8114612ccc57600080fd5b50565b600081359050612cde81612cb8565b92915050565b600060208284031215612cfa57612cf9612969565b5b6000612d0884828501612ccf565b91505092915050565b600060208284031215612d2757612d26612969565b5b6000612d3584828501612ad5565b91505092915050565b60008060408385031215612d5557612d54612969565b5b6000612d6385828601612ad5565b9250506020612d7485828601612ad5565b9150509250929050565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f6275792066656500000000000000000000000000000000000000000000000000604082015250565b6000612e006047836129dc565b9150612e0b82612d7e565b606082019050919050565b60006020820190508181036000830152612e2f81612df3565b9050919050565b7f54686520616d6f756e74206e6565647320746f2062652067726561746572207460008201527f68616e203120616e64206c657373207468616e207468652063757272656e742060208201527f73656c6c20666565000000000000000000000000000000000000000000000000604082015250565b6000612eb86048836129dc565b9150612ec382612e36565b606082019050919050565b60006020820190508181036000830152612ee781612eab565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612f246020836129dc565b9150612f2f82612eee565b602082019050919050565b60006020820190508181036000830152612f5381612f17565b9050919050565b7f57726f6e6720616d6f756e740000000000000000000000000000000000000000600082015250565b6000612f90600c836129dc565b9150612f9b82612f5a565b602082019050919050565b60006020820190508181036000830152612fbf81612f83565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006130226026836129dc565b915061302d82612fc6565b604082019050919050565b6000602082019050818103600083015261305181613015565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006130b46024836129dc565b91506130bf82613058565b604082019050919050565b600060208201905081810360008301526130e3816130a7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006131466022836129dc565b9150613151826130ea565b604082019050919050565b6000602082019050818103600083015261317581613139565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006131d86025836129dc565b91506131e38261317c565b604082019050919050565b60006020820190508181036000830152613207816131cb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061326a6023836129dc565b91506132758261320e565b604082019050919050565b600060208201905081810360008301526132998161325d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132fc6029836129dc565b9150613307826132a0565b604082019050919050565b6000602082019050818103600083015261332b816132ef565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b60006133686018836129dc565b915061337382613332565b602082019050919050565b600060208201905081810360008301526133978161335b565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006133d4601c836129dc565b91506133df8261339e565b602082019050919050565b60006020820190508181036000830152613403816133c7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134448261296e565b915061344f8361296e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156134845761348361340a565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006134eb6023836129dc565b91506134f68261348f565b604082019050919050565b6000602082019050818103600083015261351a816134de565b9050919050565b600061352c8261296e565b91506135378361296e565b92508282101561354a5761354961340a565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006135b1602a836129dc565b91506135bc82613555565b604082019050919050565b600060208201905081810360008301526135e0816135a4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061365481612abe565b92915050565b6000602082840312156136705761366f612969565b5b600061367e84828501613645565b91505092915050565b6000819050919050565b60006136ac6136a76136a284613687565b612b60565b61296e565b9050919050565b6136bc81613691565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6136f781612aac565b82525050565b600061370983836136ee565b60208301905092915050565b6000602082019050919050565b600061372d826136c2565b61373781856136cd565b9350613742836136de565b8060005b8381101561377357815161375a88826136fd565b975061376583613715565b925050600181019050613746565b5085935050505092915050565b600060a0820190506137956000830188612bda565b6137a260208301876136b3565b81810360408301526137b48186613722565b90506137c36060830185612c8e565b6137d06080830184612bda565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138148261296e565b915061381f8361296e565b92508261382f5761382e6137da565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613870601b836129dc565b915061387b8261383a565b602082019050919050565b6000602082019050818103600083015261389f81613863565b9050919050565b60006138b18261296e565b91506138bc8361296e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138f5576138f461340a565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061395c6021836129dc565b915061396782613900565b604082019050919050565b6000602082019050818103600083015261398b8161394f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ecfdf731fa4696db76d7f2e2d9761c1ea946998faad6dd443a7bd29ae5cfedb964736f6c63430008090033