60806040523480156200001157600080fd5b506040518060400160405280600781526020017f447269704e4654000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f445250000000000000000000000000000000000000000000000000000000000081525081600090816200008f919062000a2a565b508060019081620000a1919062000a2a565b505050620000b96000801b336200020460201b60201c565b620000ee7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec426000801b620002f660201b60201c565b620001207fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42336200035a60201b60201c565b620001727f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec42620002f660201b60201c565b620001b86040518060400160405280600781526020017f697066733a2f2f000000000000000000000000000000000000000000000000008152506200039360201b60201c565b620001fe6040518060400160405280600881526020017f68747470733a2f2f000000000000000000000000000000000000000000000000815250620003a860201b60201c565b62000e6c565b620002168282620003bd60201b60201c565b620002f25760016007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002976200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b600062000309836200043060201b60201c565b90508160076000858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b6200036b826200043060201b60201c565b6200037c816200045060201b60201c565b6200038e83836200020460201b60201c565b505050565b8060089081620003a4919062000a2a565b5050565b8060099081620003b9919062000a2a565b5050565b60006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600060076000838152602001908152602001600020600101549050919050565b6200047181620004656200042860201b60201c565b6200047460201b60201c565b50565b620004868282620003bd60201b60201c565b6200051c57620004a1816200052060201b620020291760201c565b620004bc8360001c60206200055560201b620020561760201c565b604051602001620004cf92919062000c1f565b6040516020818303038152906040526040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000513919062000cc4565b60405180910390fd5b5050565b60606200054e8273ffffffffffffffffffffffffffffffffffffffff16601460ff166200055560201b60201c565b9050919050565b6060600060028360026200056a919062000d17565b62000576919062000d62565b67ffffffffffffffff811115620005925762000591620007bb565b5b6040519080825280601f01601f191660200182016040528015620005c55781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106200060057620005ff62000d9d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062000667576200066662000d9d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002620006a9919062000d17565b620006b5919062000d62565b90505b60018111156200075f577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110620006fb57620006fa62000d9d565b5b1a60f81b82828151811062000715576200071462000d9d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c945080620007579062000dcc565b9050620006b8565b5060008414620007a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200079d9062000e4a565b60405180910390fd5b8091505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200083257607f821691505b602082108103620008485762000847620007ea565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008b27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000873565b620008be868362000873565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200090b62000905620008ff84620008d6565b620008e0565b620008d6565b9050919050565b6000819050919050565b6200092783620008ea565b6200093f620009368262000912565b84845462000880565b825550505050565b600090565b6200095662000947565b620009638184846200091c565b505050565b5b818110156200098b576200097f6000826200094c565b60018101905062000969565b5050565b601f821115620009da57620009a4816200084e565b620009af8462000863565b81016020851015620009bf578190505b620009d7620009ce8562000863565b83018262000968565b50505b505050565b600082821c905092915050565b6000620009ff60001984600802620009df565b1980831691505092915050565b600062000a1a8383620009ec565b9150826002028217905092915050565b62000a3582620007b0565b67ffffffffffffffff81111562000a515762000a50620007bb565b5b62000a5d825462000819565b62000a6a8282856200098f565b600060209050601f83116001811462000aa2576000841562000a8d578287015190505b62000a99858262000a0c565b86555062000b09565b601f19841662000ab2866200084e565b60005b8281101562000adc5784890151825560018201915060208501945060208101905062000ab5565b8683101562000afc578489015162000af8601f891682620009ec565b8355505b6001600288020188555050505b505050505050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600062000b5460178362000b11565b915062000b618262000b1c565b601782019050919050565b60005b8381101562000b8c57808201518184015260208101905062000b6f565b60008484015250505050565b600062000ba582620007b0565b62000bb1818562000b11565b935062000bc381856020860162000b6c565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600062000c0760118362000b11565b915062000c148262000bcf565b601182019050919050565b600062000c2c8262000b45565b915062000c3a828562000b98565b915062000c478262000bf8565b915062000c55828462000b98565b91508190509392505050565b600082825260208201905092915050565b6000601f19601f8301169050919050565b600062000c9082620007b0565b62000c9c818562000c61565b935062000cae81856020860162000b6c565b62000cb98162000c72565b840191505092915050565b6000602082019050818103600083015262000ce0818462000c83565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d2482620008d6565b915062000d3183620008d6565b925082820262000d4181620008d6565b9150828204841483151762000d5b5762000d5a62000ce8565b5b5092915050565b600062000d6f82620008d6565b915062000d7c83620008d6565b925082820190508082111562000d975762000d9662000ce8565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600062000dd982620008d6565b91506000820362000def5762000dee62000ce8565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600062000e3260208362000c61565b915062000e3f8262000dfa565b602082019050919050565b6000602082019050818103600083015262000e658162000e23565b9050919050565b615f2a8062000e7c6000396000f3fe60806040526004361061023b5760003560e01c806370a082311161012e578063bb3bafd6116100ab578063d96a094a1161006f578063d96a094a146108c4578063e7b9b8d3146108e0578063e8a3d48514610909578063e985e9c514610934578063f4812eb9146109715761023b565b8063bb3bafd6146107cf578063bf5a4dd31461080c578063c87b56dd14610835578063d2a803b614610872578063d547741f1461089b5761023b565b8063931688cb116100f2578063931688cb146106fe57806395d89b4114610727578063a217fddf14610752578063a22cb4651461077d578063b88d4fde146107a65761023b565b806370a08231146105f2578063714c53981461062f5780637910af6f1461065a5780638924af741461068357806391d14854146106c15761023b565b80632f2ff15d116101bc5780634ed6a5f7116101805780634ed6a5f7146104e957806350fd7367146105265780636352211e1461054f578063695850fb1461058c57806370480275146105c95761023b565b80632f2ff15d1461041c57806336568abe146104455780633d4115671461046e57806342842e0e1461049757806342966c68146104c05761023b565b806318e97fd11161020357806318e97fd11461033957806323b872dd14610362578063248a9ca31461038b57806328d765a7146103c85780632a0acc6a146103f15761023b565b806301ffc9a71461024057806306fdde031461027d578063081812fc146102a8578063095ea7b3146102e5578063117803e31461030e575b600080fd5b34801561024c57600080fd5b5061026760048036038101906102629190613df4565b6109ae565b6040516102749190613e3c565b60405180910390f35b34801561028957600080fd5b506102926109c0565b60405161029f9190613ee7565b60405180910390f35b3480156102b457600080fd5b506102cf60048036038101906102ca9190613f3f565b610a52565b6040516102dc9190613fad565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190613ff4565b610a98565b005b34801561031a57600080fd5b50610323610baf565b604051610330919061404d565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b919061419d565b610bd3565b005b34801561036e57600080fd5b50610389600480360381019061038491906141f9565b610c82565b005b34801561039757600080fd5b506103b260048036038101906103ad9190614278565b610ce2565b6040516103bf919061404d565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea91906142a5565b610d02565b005b3480156103fd57600080fd5b50610406610e39565b604051610413919061404d565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e91906142f8565b610e5d565b005b34801561045157600080fd5b5061046c600480360381019061046791906142f8565b610e7e565b005b34801561047a57600080fd5b50610495600480360381019061049091906141f9565b610f01565b005b3480156104a357600080fd5b506104be60048036038101906104b991906141f9565b610f8a565b005b3480156104cc57600080fd5b506104e760048036038101906104e29190613f3f565b610faa565b005b3480156104f557600080fd5b50610510600480360381019061050b9190614338565b611006565b60405161051d91906143a3565b60405180910390f35b34801561053257600080fd5b5061054d600480360381019061054891906143be565b611123565b005b34801561055b57600080fd5b5061057660048036038101906105719190613f3f565b611261565b6040516105839190613fad565b60405180910390f35b34801561059857600080fd5b506105b360048036038101906105ae91906143fe565b6112e7565b6040516105c091906143a3565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb9190614447565b611399565b005b3480156105fe57600080fd5b5061061960048036038101906106149190614447565b61142f565b60405161062691906143a3565b60405180910390f35b34801561063b57600080fd5b506106446114e6565b6040516106519190613ee7565b60405180910390f35b34801561066657600080fd5b50610681600480360381019061067c91906143fe565b611578565b005b34801561068f57600080fd5b506106aa60048036038101906106a591906143be565b6115ed565b6040516106b89291906144bc565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e391906142f8565b611662565b6040516106f59190613e3c565b60405180910390f35b34801561070a57600080fd5b50610725600480360381019061072091906143fe565b6116cd565b005b34801561073357600080fd5b5061073c611742565b6040516107499190613ee7565b60405180910390f35b34801561075e57600080fd5b506107676117d4565b604051610774919061404d565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190614511565b6117db565b005b3480156107b257600080fd5b506107cd60048036038101906107c891906145f2565b6117f1565b005b3480156107db57600080fd5b506107f660048036038101906107f19190613f3f565b611853565b6040516108039190614771565b60405180910390f35b34801561081857600080fd5b50610833600480360381019061082e9190613f3f565b611955565b005b34801561084157600080fd5b5061085c60048036038101906108579190613f3f565b611a50565b6040516108699190613ee7565b60405180910390f35b34801561087e57600080fd5b5061089960048036038101906108949190614908565b611a62565b005b3480156108a757600080fd5b506108c260048036038101906108bd91906142f8565b611b97565b005b6108de60048036038101906108d99190613f3f565b611bb8565b005b3480156108ec57600080fd5b5061090760048036038101906109029190614964565b611d76565b005b34801561091557600080fd5b5061091e611eeb565b60405161092b9190613ee7565b60405180910390f35b34801561094057600080fd5b5061095b600480360381019061095691906149e7565b611f7d565b6040516109689190613e3c565b60405180910390f35b34801561097d57600080fd5b5061099860048036038101906109939190613f3f565b612011565b6040516109a591906143a3565b60405180910390f35b60006109b982612292565b9050919050565b6060600080546109cf90614a56565b80601f01602080910402602001604051908101604052809291908181526020018280546109fb90614a56565b8015610a485780601f10610a1d57610100808354040283529160200191610a48565b820191906000526020600020905b815481529060010190602001808311610a2b57829003601f168201915b5050505050905090565b6000610a5d8261230c565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610aa382611261565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a90614af9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610b32612357565b73ffffffffffffffffffffffffffffffffffffffff161480610b615750610b6081610b5b612357565b611f7d565b5b610ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9790614b8b565b60405180910390fd5b610baa838361235f565b505050565b7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b81565b600c600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90614c1d565b60405180910390fd5b610c7e8282612418565b5050565b610c93610c8d612357565b82612485565b610cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc990614caf565b60405180910390fd5b610cdd83838361251a565b505050565b600060076000838152602001908152602001600020600101549050919050565b610d2c7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b33611662565b610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6290614d41565b60405180910390fd5b610d7483612813565b610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa90614dad565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16610dd384611261565b73ffffffffffffffffffffffffffffffffffffffff1614610e29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2090614e3f565b60405180910390fd5b610e34838383612854565b505050565b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4281565b610e6682610ce2565b610e6f8161298b565b610e79838361299f565b505050565b610e86612357565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610ef3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eea90614ed1565b60405180910390fd5b610efd8282612a80565b5050565b610f2b7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611662565b610f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6190614f63565b60405180910390fd5b610f8583838360405180602001604052806000815250612b62565b505050565b610fa5838383604051806020016040528060008152506117f1565b505050565b610fbb610fb5612357565b82612485565b610ffa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff190614caf565b60405180910390fd5b61100381612bbe565b50565b60006110327fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611662565b611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106890614f63565b60405180910390fd5b600061107d600d612bca565b9050611089600d612bd8565b6110938482612bee565b61109d8184612418565b6110c77f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b8561299f565b83600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508091505092915050565b61114d7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b33611662565b61118c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118390614d41565b60405180910390fd5b61119582611261565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f990614fcf565b60405180910390fd5b60008111611245576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123c9061503b565b60405180910390fd5b80600b6000848152602001908152602001600020819055505050565b60008061126d83612c0c565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036112de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d5906150a7565b60405180910390fd5b80915050919050565b6000806112f4600d612bca565b9050611300600d612bd8565b61130a3382612bee565b6113148184612418565b61133e7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b3361299f565b33600c600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080915050919050565b6113c37fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611662565b611402576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f990614f63565b60405180910390fd5b61142c7fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4282610e5d565b50565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690615139565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600880546114f590614a56565b80601f016020809104026020016040519081016040528092919081815260200182805461152190614a56565b801561156e5780601f106115435761010080835404028352916020019161156e565b820191906000526020600020905b81548152906001019060200180831161155157829003601f168201915b5050505050905090565b6115a27fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611662565b6115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d890614f63565b60405180910390fd5b6115ea81612c49565b50565b600a602052816000526040600020818154811061160957600080fd5b90600052602060002001600091509150508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a90046bffffffffffffffffffffffff16905082565b60006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6116f77fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611662565b611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d90614f63565b60405180910390fd5b61173f81612c5c565b50565b60606001805461175190614a56565b80601f016020809104026020016040519081016040528092919081815260200182805461177d90614a56565b80156117ca5780601f1061179f576101008083540402835291602001916117ca565b820191906000526020600020905b8154815290600101906020018083116117ad57829003601f168201915b5050505050905090565b6000801b81565b6117ed6117e6612357565b8383612c6f565b5050565b6118026117fc612357565b83612485565b611841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183890614caf565b60405180910390fd5b61184d84848484612b62565b50505050565b6060600a6000838152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561194a578382906000526020600020016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505081526020019060010190611888565b505050509050919050565b61197f7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b33611662565b6119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b590614d41565b60405180910390fd5b6119c781611261565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90614fcf565b60405180910390fd5b6000600b60008381526020019081526020016000208190555050565b6060611a5b82612ddb565b9050919050565b611a8c7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b33611662565b611acb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac290614d41565b60405180910390fd5b611ad482612813565b611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a90614dad565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16611b3383611261565b73ffffffffffffffffffffffffffffffffffffffff1614611b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8090614e3f565b60405180910390fd5b611b938282612eed565b5050565b611ba082610ce2565b611ba98161298b565b611bb38383612a80565b505050565b611be27f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b33611662565b611c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1890614d41565b60405180910390fd5b6000600b600083815260200190815260200160002054905060008111611c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c73906151a5565b60405180910390fd5b803411611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb590615237565b60405180910390fd5b6000611cc983611261565b9050611cd681338561251a565b6000600b6000858152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015611d35573d6000803e3d6000fd5b507f608f6ac9327c2bf4d3c77adf447d2c448ba7b0971e0aaa9aa03f7ac29d874a44813334604051611d6993929190615257565b60405180910390a1505050565b611da07fdf8b4c520ffe197c5343c6f5aec59570151ef9a492f2c624fd45ddde6135ec4233611662565b611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690614f63565b60405180910390fd5b60008290505b600182611df291906152bd565b811015611ee4576000611e05600d612bca565b9050611e11600d612bd8565b600085611e1d84612f99565b604051602001611e2e929190615353565b6040516020818303038152906040529050611e498783612bee565b611e538282612418565b611e7d7f6270edb7c868f86fda4adedba75108201087268ea345934db8bad688e1feb91b8861299f565b86600c600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050508080611edc90615386565b915050611de5565b5050505050565b606060098054611efa90614a56565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2690614a56565b8015611f735780601f10611f4857610100808354040283529160200191611f73565b820191906000526020600020905b815481529060010190602001808311611f5657829003601f168201915b5050505050905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600b6020528060005260406000206000915090505481565b606061204f8273ffffffffffffffffffffffffffffffffffffffff16601460ff16612056565b9050919050565b60606000600283600261206991906153ce565b61207391906152bd565b67ffffffffffffffff81111561208c5761208b614072565b5b6040519080825280601f01601f1916602001820160405280156120be5781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106120f6576120f5615410565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061215a57612159615410565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000600184600261219a91906153ce565b6121a491906152bd565b90505b6001811115612244577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106121e6576121e5615410565b5b1a60f81b8282815181106121fd576121fc615410565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061223d9061543f565b90506121a7565b5060008414612288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227f906154b4565b60405180910390fd5b8091505092915050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612305575061230482613067565b5b9050919050565b61231581612813565b612354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161234b906150a7565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166123d283611261565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b61242182612813565b612460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245790615546565b60405180910390fd5b806006600084815260200190815260200160002090816124809190615712565b505050565b60008061249183611261565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806124d357506124d28185611f7d565b5b8061251157508373ffffffffffffffffffffffffffffffffffffffff166124f984610a52565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661253a82611261565b73ffffffffffffffffffffffffffffffffffffffff1614612590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258790615856565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036125ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125f6906158e8565b60405180910390fd5b61260c8383836001613149565b8273ffffffffffffffffffffffffffffffffffffffff1661262c82611261565b73ffffffffffffffffffffffffffffffffffffffff1614612682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161267990615856565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461280e838383600161326f565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff1661283583612c0c565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000600a600085815260200190815260200160002080549050905060005b81811015612984578373ffffffffffffffffffffffffffffffffffffffff16600a600087815260200190815260200160002082815481106128b6576128b5615410565b5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036129715782600a6000878152602001908152602001600020828154811061292557612924615410565b5b9060005260206000200160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b808061297c90615386565b915050612872565b5050505050565b61299c81612997612357565b613275565b50565b6129a98282611662565b612a7c5760016007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612a21612357565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b612a8a8282611662565b15612b5e5760006007600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612b03612357565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b612b6d84848461251a565b612b79848484846132fa565b612bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612baf9061597a565b60405180910390fd5b50505050565b612bc781613481565b50565b600081600001549050919050565b6001816000016000828254019250508190555050565b612c088282604051806020016040528060008152506134d4565b5050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8060099081612c589190615712565b5050565b8060089081612c6b9190615712565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612cdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cd4906159e6565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612dce9190613e3c565b60405180910390a3505050565b6060612de68261230c565b6000600660008481526020019081526020016000208054612e0690614a56565b80601f0160208091040260200160405190810160405280929190818152602001828054612e3290614a56565b8015612e7f5780601f10612e5457610100808354040283529160200191612e7f565b820191906000526020600020905b815481529060010190602001808311612e6257829003601f168201915b505050505090506000612e9061352f565b90506000815103612ea5578192505050612ee8565b600082511115612eda578082604051602001612ec2929190615a06565b60405160208183030381529060405292505050612ee8565b612ee38461353e565b925050505b919050565b6000805b8251811015612f3757828181518110612f0d57612f0c615410565b5b60200260200101516020015182612f249190615a2a565b915080612f3090615386565b9050612ef1565b50612710816bffffffffffffffffffffffff1614612f8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8190615adc565b60405180910390fd5b612f9483836135a6565b505050565b606060006001612fa8846137a3565b01905060008167ffffffffffffffff811115612fc757612fc6614072565b5b6040519080825280601f01601f191660200182016040528015612ff95781602001600182028036833780820191505090505b509050600082602001820190505b60011561305c578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816130505761304f615afc565b5b04945060008503613007575b819350505050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061313257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806131425750613141826138f6565b5b9050919050565b600181111561326957600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146131dd5780600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131d59190615b2b565b925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146132685780600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461326091906152bd565b925050819055505b5b50505050565b50505050565b61327f8282611662565b6132f65761328c81612029565b61329a8360001c6020612056565b6040516020016132ab929190615bf7565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ed9190613ee7565b60405180910390fd5b5050565b600061331b8473ffffffffffffffffffffffffffffffffffffffff16613960565b15613474578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02613344612357565b8786866040518563ffffffff1660e01b81526004016133669493929190615c86565b6020604051808303816000875af19250505080156133a257506040513d601f19601f8201168201806040525081019061339f9190615ce7565b60015b613424573d80600081146133d2576040519150601f19603f3d011682016040523d82523d6000602084013e6133d7565b606091505b50600081510361341c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134139061597a565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613479565b600190505b949350505050565b61348a81613983565b60006006600083815260200190815260200160002080546134aa90614a56565b9050146134d1576006600082815260200190815260200160002060006134d09190613d2b565b5b50565b6134de8383613ad1565b6134eb60008484846132fa565b61352a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135219061597a565b60405180910390fd5b505050565b60606135396114e6565b905090565b60606135498261230c565b600061355361352f565b90506000815111613573576040518060200160405280600081525061359e565b8061357d84612f99565b60405160200161358e929190615a06565b6040516020818303038152906040525b915050919050565b60005b815181101561379457600073ffffffffffffffffffffffffffffffffffffffff168282815181106135dd576135dc615410565b5b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff160361363f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161363690615d60565b60405180910390fd5b600082828151811061365457613653615410565b5b6020026020010151602001516bffffffffffffffffffffffff16036136ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136a590615dcc565b60405180910390fd5b600a60008481526020019081526020016000208282815181106136d4576136d3615410565b5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055505050808061378c90615386565b9150506135a9565b5061379f8282613cee565b5050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613801577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816137f7576137f6615afc565b5b0492506040810190505b6d04ee2d6d415b85acef8100000000831061383e576d04ee2d6d415b85acef8100000000838161383457613833615afc565b5b0492506020810190505b662386f26fc10000831061386d57662386f26fc10000838161386357613862615afc565b5b0492506010810190505b6305f5e1008310613896576305f5e100838161388c5761388b615afc565b5b0492506008810190505b61271083106138bb5761271083816138b1576138b0615afc565b5b0492506004810190505b606483106138de57606483816138d4576138d3615afc565b5b0492506002810190505b600a83106138ed576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600061398e82611261565b905061399e816000846001613149565b6139a782611261565b90506004600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613acd81600084600161326f565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b3790615e38565b60405180910390fd5b613b4981612813565b15613b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b8090615ea4565b60405180910390fd5b613b97600083836001613149565b613ba081612813565b15613be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613bd790615ea4565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4613cea60008383600161326f565b5050565b7f3fa96d7b6bcbfe71ef171666d84db3cf52fa2d1c8afdb1cc8e486177f208b7df8282604051613d1f929190615ec4565b60405180910390a15050565b508054613d3790614a56565b6000825580601f10613d495750613d68565b601f016020900490600052602060002090810190613d679190613d6b565b5b50565b5b80821115613d84576000816000905550600101613d6c565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b613dd181613d9c565b8114613ddc57600080fd5b50565b600081359050613dee81613dc8565b92915050565b600060208284031215613e0a57613e09613d92565b5b6000613e1884828501613ddf565b91505092915050565b60008115159050919050565b613e3681613e21565b82525050565b6000602082019050613e516000830184613e2d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613e91578082015181840152602081019050613e76565b60008484015250505050565b6000601f19601f8301169050919050565b6000613eb982613e57565b613ec38185613e62565b9350613ed3818560208601613e73565b613edc81613e9d565b840191505092915050565b60006020820190508181036000830152613f018184613eae565b905092915050565b6000819050919050565b613f1c81613f09565b8114613f2757600080fd5b50565b600081359050613f3981613f13565b92915050565b600060208284031215613f5557613f54613d92565b5b6000613f6384828501613f2a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613f9782613f6c565b9050919050565b613fa781613f8c565b82525050565b6000602082019050613fc26000830184613f9e565b92915050565b613fd181613f8c565b8114613fdc57600080fd5b50565b600081359050613fee81613fc8565b92915050565b6000806040838503121561400b5761400a613d92565b5b600061401985828601613fdf565b925050602061402a85828601613f2a565b9150509250929050565b6000819050919050565b61404781614034565b82525050565b6000602082019050614062600083018461403e565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6140aa82613e9d565b810181811067ffffffffffffffff821117156140c9576140c8614072565b5b80604052505050565b60006140dc613d88565b90506140e882826140a1565b919050565b600067ffffffffffffffff82111561410857614107614072565b5b61411182613e9d565b9050602081019050919050565b82818337600083830152505050565b600061414061413b846140ed565b6140d2565b90508281526020810184848401111561415c5761415b61406d565b5b61416784828561411e565b509392505050565b600082601f83011261418457614183614068565b5b813561419484826020860161412d565b91505092915050565b600080604083850312156141b4576141b3613d92565b5b60006141c285828601613f2a565b925050602083013567ffffffffffffffff8111156141e3576141e2613d97565b5b6141ef8582860161416f565b9150509250929050565b60008060006060848603121561421257614211613d92565b5b600061422086828701613fdf565b935050602061423186828701613fdf565b925050604061424286828701613f2a565b9150509250925092565b61425581614034565b811461426057600080fd5b50565b6000813590506142728161424c565b92915050565b60006020828403121561428e5761428d613d92565b5b600061429c84828501614263565b91505092915050565b6000806000606084860312156142be576142bd613d92565b5b60006142cc86828701613f2a565b93505060206142dd86828701613fdf565b92505060406142ee86828701613fdf565b9150509250925092565b6000806040838503121561430f5761430e613d92565b5b600061431d85828601614263565b925050602061432e85828601613fdf565b9150509250929050565b6000806040838503121561434f5761434e613d92565b5b600061435d85828601613fdf565b925050602083013567ffffffffffffffff81111561437e5761437d613d97565b5b61438a8582860161416f565b9150509250929050565b61439d81613f09565b82525050565b60006020820190506143b86000830184614394565b92915050565b600080604083850312156143d5576143d4613d92565b5b60006143e385828601613f2a565b92505060206143f485828601613f2a565b9150509250929050565b60006020828403121561441457614413613d92565b5b600082013567ffffffffffffffff81111561443257614431613d97565b5b61443e8482850161416f565b91505092915050565b60006020828403121561445d5761445c613d92565b5b600061446b84828501613fdf565b91505092915050565b600061447f82613f6c565b9050919050565b61448f81614474565b82525050565b60006bffffffffffffffffffffffff82169050919050565b6144b681614495565b82525050565b60006040820190506144d16000830185614486565b6144de60208301846144ad565b9392505050565b6144ee81613e21565b81146144f957600080fd5b50565b60008135905061450b816144e5565b92915050565b6000806040838503121561452857614527613d92565b5b600061453685828601613fdf565b9250506020614547858286016144fc565b9150509250929050565b600067ffffffffffffffff82111561456c5761456b614072565b5b61457582613e9d565b9050602081019050919050565b600061459561459084614551565b6140d2565b9050828152602081018484840111156145b1576145b061406d565b5b6145bc84828561411e565b509392505050565b600082601f8301126145d9576145d8614068565b5b81356145e9848260208601614582565b91505092915050565b6000806000806080858703121561460c5761460b613d92565b5b600061461a87828801613fdf565b945050602061462b87828801613fdf565b935050604061463c87828801613f2a565b925050606085013567ffffffffffffffff81111561465d5761465c613d97565b5b614669878288016145c4565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6146aa81614474565b82525050565b6146b981614495565b82525050565b6040820160008201516146d560008501826146a1565b5060208201516146e860208501826146b0565b50505050565b60006146fa83836146bf565b60408301905092915050565b6000602082019050919050565b600061471e82614675565b6147288185614680565b935061473383614691565b8060005b8381101561476457815161474b88826146ee565b975061475683614706565b925050600181019050614737565b5085935050505092915050565b6000602082019050818103600083015261478b8184614713565b905092915050565b600067ffffffffffffffff8211156147ae576147ad614072565b5b602082029050602081019050919050565b600080fd5b600080fd5b6147d281614474565b81146147dd57600080fd5b50565b6000813590506147ef816147c9565b92915050565b6147fe81614495565b811461480957600080fd5b50565b60008135905061481b816147f5565b92915050565b600060408284031215614837576148366147c4565b5b61484160406140d2565b90506000614851848285016147e0565b60008301525060206148658482850161480c565b60208301525092915050565b600061488461487f84614793565b6140d2565b905080838252602082019050604084028301858111156148a7576148a66147bf565b5b835b818110156148d057806148bc8882614821565b8452602084019350506040810190506148a9565b5050509392505050565b600082601f8301126148ef576148ee614068565b5b81356148ff848260208601614871565b91505092915050565b6000806040838503121561491f5761491e613d92565b5b600061492d85828601613f2a565b925050602083013567ffffffffffffffff81111561494e5761494d613d97565b5b61495a858286016148da565b9150509250929050565b6000806000806080858703121561497e5761497d613d92565b5b600061498c87828801613fdf565b945050602085013567ffffffffffffffff8111156149ad576149ac613d97565b5b6149b98782880161416f565b93505060406149ca87828801613f2a565b92505060606149db87828801613f2a565b91505092959194509250565b600080604083850312156149fe576149fd613d92565b5b6000614a0c85828601613fdf565b9250506020614a1d85828601613fdf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614a6e57607f821691505b602082108103614a8157614a80614a27565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ae3602183613e62565b9150614aee82614a87565b604082019050919050565b60006020820190508181036000830152614b1281614ad6565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000614b75603d83613e62565b9150614b8082614b19565b604082019050919050565b60006020820190508181036000830152614ba481614b68565b9050919050565b7f44524950204e46543a2063616c6c6572206973206e6f7420746f6b656e20637260008201527f6561746f72000000000000000000000000000000000000000000000000000000602082015250565b6000614c07602583613e62565b9150614c1282614bab565b604082019050919050565b60006020820190508181036000830152614c3681614bfa565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000614c99602d83613e62565b9150614ca482614c3d565b604082019050919050565b60006020820190508181036000830152614cc881614c8c565b9050919050565b7f4f6e6c79204f574e455220726f6c652063616e2063616c6c2066756e6374696f60008201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b6000614d2b602283613e62565b9150614d3682614ccf565b604082019050919050565b60006020820190508181036000830152614d5a81614d1e565b9050919050565b7f546f6b656e20646f6573206e6f74206578697374732121000000000000000000600082015250565b6000614d97601783613e62565b9150614da282614d61565b602082019050919050565b60006020820190508181036000830152614dc681614d8a565b9050919050565b7f44524950204e46543a2063616c6c6572206973206e6f7420746f6b656e206f7760008201527f6e65720000000000000000000000000000000000000000000000000000000000602082015250565b6000614e29602383613e62565b9150614e3482614dcd565b604082019050919050565b60006020820190508181036000830152614e5881614e1c565b9050919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000614ebb602f83613e62565b9150614ec682614e5f565b604082019050919050565b60006020820190508181036000830152614eea81614eae565b9050919050565b7f4f6e6c792041444d494e20726f6c652063616e2063616c6c2066756e6374696f60008201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b6000614f4d602283613e62565b9150614f5882614ef1565b604082019050919050565b60006020820190508181036000830152614f7c81614f40565b9050919050565b7f4e6f74206f776e6572206f66207468697320647269704e46542e000000000000600082015250565b6000614fb9601a83613e62565b9150614fc482614f83565b602082019050919050565b60006020820190508181036000830152614fe881614fac565b9050919050565b7f50726963652067726561746572207468616e207a65726f2e0000000000000000600082015250565b6000615025601883613e62565b915061503082614fef565b602082019050919050565b6000602082019050818103600083015261505481615018565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000615091601883613e62565b915061509c8261505b565b602082019050919050565b600060208201905081810360008301526150c081615084565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000615123602983613e62565b915061512e826150c7565b604082019050919050565b6000602082019050818103600083015261515281615116565b9050919050565b7f5468697320647269704e4654206973206e6f7420666f722073616c6500000000600082015250565b600061518f601c83613e62565b915061519a82615159565b602082019050919050565b600060208201905081810360008301526151be81615182565b9050919050565b7f416d6f756e742073686f756c642062652067726561746572207468616e206f7260008201527f20657175616c20746f2061736b696e672070726963652e000000000000000000602082015250565b6000615221603783613e62565b915061522c826151c5565b604082019050919050565b6000602082019050818103600083015261525081615214565b9050919050565b600060608201905061526c6000830186613f9e565b6152796020830185613f9e565b6152866040830184614394565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006152c882613f09565b91506152d383613f09565b92508282019050808211156152eb576152ea61528e565b5b92915050565b600081905092915050565b600061530782613e57565b61531181856152f1565b9350615321818560208601613e73565b80840191505092915050565b7f2e73766700000000000000000000000000000000000000000000000000000000815250565b600061535f82856152fc565b915061536b82846152fc565b91506153768261532d565b6004820191508190509392505050565b600061539182613f09565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036153c3576153c261528e565b5b600182019050919050565b60006153d982613f09565b91506153e483613f09565b92508282026153f281613f09565b915082820484148315176154095761540861528e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061544a82613f09565b91506000820361545d5761545c61528e565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b600061549e602083613e62565b91506154a982615468565b602082019050919050565b600060208201905081810360008301526154cd81615491565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000615530602e83613e62565b915061553b826154d4565b604082019050919050565b6000602082019050818103600083015261555f81615523565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026155c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261558b565b6155d2868361558b565b95508019841693508086168417925050509392505050565b6000819050919050565b600061560f61560a61560584613f09565b6155ea565b613f09565b9050919050565b6000819050919050565b615629836155f4565b61563d61563582615616565b848454615598565b825550505050565b600090565b615652615645565b61565d818484615620565b505050565b5b818110156156815761567660008261564a565b600181019050615663565b5050565b601f8211156156c65761569781615566565b6156a08461557b565b810160208510156156af578190505b6156c36156bb8561557b565b830182615662565b50505b505050565b600082821c905092915050565b60006156e9600019846008026156cb565b1980831691505092915050565b600061570283836156d8565b9150826002028217905092915050565b61571b82613e57565b67ffffffffffffffff81111561573457615733614072565b5b61573e8254614a56565b615749828285615685565b600060209050601f83116001811461577c576000841561576a578287015190505b61577485826156f6565b8655506157dc565b601f19841661578a86615566565b60005b828110156157b25784890151825560018201915060208501945060208101905061578d565b868310156157cf57848901516157cb601f8916826156d8565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000615840602583613e62565b915061584b826157e4565b604082019050919050565b6000602082019050818103600083015261586f81615833565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006158d2602483613e62565b91506158dd82615876565b604082019050919050565b60006020820190508181036000830152615901816158c5565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000615964603283613e62565b915061596f82615908565b604082019050919050565b6000602082019050818103600083015261599381615957565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006159d0601983613e62565b91506159db8261599a565b602082019050919050565b600060208201905081810360008301526159ff816159c3565b9050919050565b6000615a1282856152fc565b9150615a1e82846152fc565b91508190509392505050565b6000615a3582614495565b9150615a4083614495565b925082820190506bffffffffffffffffffffffff811115615a6457615a6361528e565b5b92915050565b7f416c6c2044656e6f6d696e6174696f6e2053686f756c6420626520657175616c60008201527f20746f2031303030302100000000000000000000000000000000000000000000602082015250565b6000615ac6602a83613e62565b9150615ad182615a6a565b604082019050919050565b60006020820190508181036000830152615af581615ab9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000615b3682613f09565b9150615b4183613f09565b9250828203905081811115615b5957615b5861528e565b5b92915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b6000615b956017836152f1565b9150615ba082615b5f565b601782019050919050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b6000615be16011836152f1565b9150615bec82615bab565b601182019050919050565b6000615c0282615b88565b9150615c0e82856152fc565b9150615c1982615bd4565b9150615c2582846152fc565b91508190509392505050565b600081519050919050565b600082825260208201905092915050565b6000615c5882615c31565b615c628185615c3c565b9350615c72818560208601613e73565b615c7b81613e9d565b840191505092915050565b6000608082019050615c9b6000830187613f9e565b615ca86020830186613f9e565b615cb56040830185614394565b8181036060830152615cc78184615c4d565b905095945050505050565b600081519050615ce181613dc8565b92915050565b600060208284031215615cfd57615cfc613d92565b5b6000615d0b84828501615cd2565b91505092915050565b7f526563697069656e742073686f756c642062652070726573656e740000000000600082015250565b6000615d4a601b83613e62565b9150615d5582615d14565b602082019050919050565b60006020820190508181036000830152615d7981615d3d565b9050919050565b7f526f79616c74792076616c75652073686f756c6420626520706f736974697665600082015250565b6000615db6602083613e62565b9150615dc182615d80565b602082019050919050565b60006020820190508181036000830152615de581615da9565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000615e22602083613e62565b9150615e2d82615dec565b602082019050919050565b60006020820190508181036000830152615e5181615e15565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615e8e601c83613e62565b9150615e9982615e58565b602082019050919050565b60006020820190508181036000830152615ebd81615e81565b9050919050565b6000604082019050615ed96000830185614394565b8181036020830152615eeb8184614713565b9050939250505056fea2646970667358221220e9f45bf6b3dacdfdd33b39f797e7c47d01325e16132a7361eaf5103e19f9915964736f6c63430008120033