0x60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200007560201b60201c565b506000600360006101000a81548160ff0219169083151502179055506200006f620000636200009160201b60201c565b6200009960201b60201c565b62000274565b80600290805190602001906200008d9291906200015f565b5050565b600033905090565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200016d906200023e565b90600052602060002090601f016020900481019282620001915760008555620001dd565b82601f10620001ac57805160ff1916838001178555620001dd565b82800160010185558215620001dd579182015b82811115620001dc578251825591602001919060010190620001bf565b5b509050620001ec9190620001f0565b5090565b5b808211156200020b576000816000905550600101620001f1565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200025757607f821691505b602082108114156200026e576200026d6200020f565b5b50919050565b613dd780620002846000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c8063715018a6116100ad578063bd85b03911610071578063bd85b03914610306578063e985e9c514610336578063f242432a14610366578063f2fde38b14610382578063f5298aca1461039e5761012b565b8063715018a61461029c578063731133e9146102a65780638456cb59146102c25780638da5cb5b146102cc578063a22cb465146102ea5761012b565b80633f4ba83a116100f45780633f4ba83a146101f85780634e1273f4146102025780634f558e79146102325780635c975abb146102625780636b20c454146102805761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c146101905780631f7fdffa146101c05780632eb2c2d6146101dc575b600080fd5b61014a600480360381019061014591906125db565b6103ba565b604051610157919061262a565b60405180910390f35b61017a6004803603810190610175919061269d565b610483565b60405161018791906126e5565b60405180910390f35b6101aa60048036038101906101a59190612700565b610565565b6040516101b791906127c6565b60405180910390f35b6101da60048036038101906101d591906129e5565b6105f9565b005b6101f660048036038101906101f19190612aa0565b610613565b005b6102006106b4565b005b61021c60048036038101906102179190612c32565b6106c6565b6040516102299190612d68565b60405180910390f35b61024c60048036038101906102479190612700565b6107df565b60405161025991906126e5565b60405180910390f35b61026a6107f3565b60405161027791906126e5565b60405180910390f35b61029a60048036038101906102959190612d8a565b61080a565b005b6102a46108a7565b005b6102c060048036038101906102bb9190612e15565b6108bb565b005b6102ca6108d5565b005b6102d46108e7565b6040516102e19190612ea7565b60405180910390f35b61030460048036038101906102ff9190612eee565b610911565b005b610320600480360381019061031b9190612700565b610927565b60405161032d919061262a565b60405180910390f35b610350600480360381019061034b9190612f2e565b610944565b60405161035d91906126e5565b60405180910390f35b610380600480360381019061037b9190612f6e565b6109d8565b005b61039c60048036038101906103979190613005565b610a79565b005b6103b860048036038101906103b39190613032565b610afd565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561042b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610422906130f7565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061054e57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061055e575061055d82610b9a565b5b9050919050565b60606002805461057490613146565b80601f01602080910402602001604051908101604052809291908181526020018280546105a090613146565b80156105ed5780601f106105c2576101008083540402835291602001916105ed565b820191906000526020600020905b8154815290600101906020018083116105d057829003601f168201915b50505050509050919050565b610601610c04565b61060d84848484610c82565b50505050565b61061b610eaf565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061066157506106608561065b610eaf565b610944565b5b6106a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610697906131ea565b60405180910390fd5b6106ad8585858585610eb7565b5050505050565b6106bc610c04565b6106c46111d9565b565b6060815183511461070c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107039061327c565b60405180910390fd5b6000835167ffffffffffffffff811115610729576107286127ed565b5b6040519080825280602002602001820160405280156107575781602001602082028036833780820191505090505b50905060005b84518110156107d4576107a485828151811061077c5761077b61329c565b5b60200260200101518583815181106107975761079661329c565b5b60200260200101516103ba565b8282815181106107b7576107b661329c565b5b602002602001018181525050806107cd906132fa565b905061075d565b508091505092915050565b6000806107eb83610927565b119050919050565b6000600360009054906101000a900460ff16905090565b610812610eaf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610858575061085783610852610eaf565b610944565b5b610897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088e906131ea565b60405180910390fd5b6108a283838361123c565b505050565b6108af610c04565b6108b9600061150b565b565b6108c3610c04565b6108cf848484846115d1565b50505050565b6108dd610c04565b6108e5611782565b565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61092361091c610eaf565b83836117e5565b5050565b600060046000838152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6109e0610eaf565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610a265750610a2585610a20610eaf565b610944565b5b610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c906131ea565b60405180910390fd5b610a728585858585611952565b5050505050565b610a81610c04565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae8906133b5565b60405180910390fd5b610afa8161150b565b50565b610b05610eaf565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610b4b5750610b4a83610b45610eaf565b610944565b5b610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b81906131ea565b60405180910390fd5b610b95838383611bee565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610c0c610eaf565b73ffffffffffffffffffffffffffffffffffffffff16610c2a6108e7565b73ffffffffffffffffffffffffffffffffffffffff1614610c80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7790613421565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce9906134b3565b60405180910390fd5b8151835114610d36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2d90613545565b60405180910390fd5b6000610d40610eaf565b9050610d5181600087878787611e35565b60005b8451811015610e0a57838181518110610d7057610d6f61329c565b5b6020026020010151600080878481518110610d8e57610d8d61329c565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610df09190613565565b925050819055508080610e02906132fa565b915050610d54565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610e829291906135bb565b60405180910390a4610e9981600087878787611e53565b610ea881600087878787611e5b565b5050505050565b600033905090565b8151835114610efb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef290613545565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610f6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6290613664565b60405180910390fd5b6000610f75610eaf565b9050610f85818787878787611e35565b60005b8451811015611136576000858281518110610fa657610fa561329c565b5b602002602001015190506000858381518110610fc557610fc461329c565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611066576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105d906136f6565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461111b9190613565565b925050819055505050508061112f906132fa565b9050610f88565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516111ad9291906135bb565b60405180910390a46111c3818787878787611e53565b6111d1818787878787611e5b565b505050505050565b6111e1612042565b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611225610eaf565b6040516112329190612ea7565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a390613788565b60405180910390fd5b80518251146112f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e790613545565b60405180910390fd5b60006112fa610eaf565b905061131a81856000868660405180602001604052806000815250611e35565b60005b835181101561146757600084828151811061133b5761133a61329c565b5b60200260200101519050600084838151811061135a5761135961329c565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f29061381a565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050808061145f906132fa565b91505061131d565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516114df9291906135bb565b60405180910390a461150581856000868660405180602001604052806000815250611e53565b50505050565b6000600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611641576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611638906134b3565b60405180910390fd5b600061164b610eaf565b905060006116588561208b565b905060006116658561208b565b905061167683600089858589611e35565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116d59190613565565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898960405161175392919061383a565b60405180910390a461176a83600089858589611e53565b61177983600089898989612105565b50505050505050565b61178a6122ec565b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586117ce610eaf565b6040516117db9190612ea7565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b906138d5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161194591906126e5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990613664565b60405180910390fd5b60006119cc610eaf565b905060006119d98561208b565b905060006119e68561208b565b90506119f6838989858589611e35565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a84906136f6565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b429190613565565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611bbf92919061383a565b60405180910390a4611bd5848a8a86868a611e53565b611be3848a8a8a8a8a612105565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5590613788565b60405180910390fd5b6000611c68610eaf565b90506000611c758461208b565b90506000611c828461208b565b9050611ca283876000858560405180602001604052806000815250611e35565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d309061381a565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611e0692919061383a565b60405180910390a4611e2c84886000868660405180602001604052806000815250611e53565b50505050505050565b611e3d6122ec565b611e4b868686868686612336565b505050505050565b505050505050565b611e7a8473ffffffffffffffffffffffffffffffffffffffff16612508565b1561203a578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611ec095949392919061394a565b602060405180830381600087803b158015611eda57600080fd5b505af1925050508015611f0b57506040513d601f19601f82011682018060405250810190611f0891906139c7565b60015b611fb157611f17613a01565b806308c379a01415611f745750611f2c613a23565b80611f375750611f76565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6b91906127c6565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa890613b2b565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90613bbd565b60405180910390fd5b505b505050505050565b61204a6107f3565b612089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208090613c29565b60405180910390fd5b565b60606000600167ffffffffffffffff8111156120aa576120a96127ed565b5b6040519080825280602002602001820160405280156120d85781602001602082028036833780820191505090505b50905082816000815181106120f0576120ef61329c565b5b60200260200101818152505080915050919050565b6121248473ffffffffffffffffffffffffffffffffffffffff16612508565b156122e4578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b815260040161216a959493929190613c49565b602060405180830381600087803b15801561218457600080fd5b505af19250505080156121b557506040513d601f19601f820116820180604052508101906121b291906139c7565b60015b61225b576121c1613a01565b806308c379a0141561221e57506121d6613a23565b806121e15750612220565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221591906127c6565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225290613b2b565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613bbd565b60405180910390fd5b505b505050505050565b6122f46107f3565b15612334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232b90613cef565b60405180910390fd5b565b61234486868686868661252b565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156123f65760005b83518110156123f4578281815181106123985761239761329c565b5b6020026020010151600460008684815181106123b7576123b661329c565b5b6020026020010151815260200190815260200160002060008282546123dc9190613565565b92505081905550806123ed906132fa565b905061237c565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156125005760005b83518110156124fe57600084828151811061244c5761244b61329c565b5b60200260200101519050600084838151811061246b5761246a61329c565b5b60200260200101519050600060046000848152602001908152602001600020549050818110156124d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c790613d81565b60405180910390fd5b8181036004600085815260200190815260200160002081905550505050806124f7906132fa565b905061242e565b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257282612547565b9050919050565b61258281612567565b811461258d57600080fd5b50565b60008135905061259f81612579565b92915050565b6000819050919050565b6125b8816125a5565b81146125c357600080fd5b50565b6000813590506125d5816125af565b92915050565b600080604083850312156125f2576125f161253d565b5b600061260085828601612590565b9250506020612611858286016125c6565b9150509250929050565b612624816125a5565b82525050565b600060208201905061263f600083018461261b565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61267a81612645565b811461268557600080fd5b50565b60008135905061269781612671565b92915050565b6000602082840312156126b3576126b261253d565b5b60006126c184828501612688565b91505092915050565b60008115159050919050565b6126df816126ca565b82525050565b60006020820190506126fa60008301846126d6565b92915050565b6000602082840312156127165761271561253d565b5b6000612724848285016125c6565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561276757808201518184015260208101905061274c565b83811115612776576000848401525b50505050565b6000601f19601f8301169050919050565b60006127988261272d565b6127a28185612738565b93506127b2818560208601612749565b6127bb8161277c565b840191505092915050565b600060208201905081810360008301526127e0818461278d565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128258261277c565b810181811067ffffffffffffffff82111715612844576128436127ed565b5b80604052505050565b6000612857612533565b9050612863828261281c565b919050565b600067ffffffffffffffff821115612883576128826127ed565b5b602082029050602081019050919050565b600080fd5b60006128ac6128a784612868565b61284d565b905080838252602082019050602084028301858111156128cf576128ce612894565b5b835b818110156128f857806128e488826125c6565b8452602084019350506020810190506128d1565b5050509392505050565b600082601f830112612917576129166127e8565b5b8135612927848260208601612899565b91505092915050565b600080fd5b600067ffffffffffffffff8211156129505761294f6127ed565b5b6129598261277c565b9050602081019050919050565b82818337600083830152505050565b600061298861298384612935565b61284d565b9050828152602081018484840111156129a4576129a3612930565b5b6129af848285612966565b509392505050565b600082601f8301126129cc576129cb6127e8565b5b81356129dc848260208601612975565b91505092915050565b600080600080608085870312156129ff576129fe61253d565b5b6000612a0d87828801612590565b945050602085013567ffffffffffffffff811115612a2e57612a2d612542565b5b612a3a87828801612902565b935050604085013567ffffffffffffffff811115612a5b57612a5a612542565b5b612a6787828801612902565b925050606085013567ffffffffffffffff811115612a8857612a87612542565b5b612a94878288016129b7565b91505092959194509250565b600080600080600060a08688031215612abc57612abb61253d565b5b6000612aca88828901612590565b9550506020612adb88828901612590565b945050604086013567ffffffffffffffff811115612afc57612afb612542565b5b612b0888828901612902565b935050606086013567ffffffffffffffff811115612b2957612b28612542565b5b612b3588828901612902565b925050608086013567ffffffffffffffff811115612b5657612b55612542565b5b612b62888289016129b7565b9150509295509295909350565b600067ffffffffffffffff821115612b8a57612b896127ed565b5b602082029050602081019050919050565b6000612bae612ba984612b6f565b61284d565b90508083825260208201905060208402830185811115612bd157612bd0612894565b5b835b81811015612bfa5780612be68882612590565b845260208401935050602081019050612bd3565b5050509392505050565b600082601f830112612c1957612c186127e8565b5b8135612c29848260208601612b9b565b91505092915050565b60008060408385031215612c4957612c4861253d565b5b600083013567ffffffffffffffff811115612c6757612c66612542565b5b612c7385828601612c04565b925050602083013567ffffffffffffffff811115612c9457612c93612542565b5b612ca085828601612902565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cdf816125a5565b82525050565b6000612cf18383612cd6565b60208301905092915050565b6000602082019050919050565b6000612d1582612caa565b612d1f8185612cb5565b9350612d2a83612cc6565b8060005b83811015612d5b578151612d428882612ce5565b9750612d4d83612cfd565b925050600181019050612d2e565b5085935050505092915050565b60006020820190508181036000830152612d828184612d0a565b905092915050565b600080600060608486031215612da357612da261253d565b5b6000612db186828701612590565b935050602084013567ffffffffffffffff811115612dd257612dd1612542565b5b612dde86828701612902565b925050604084013567ffffffffffffffff811115612dff57612dfe612542565b5b612e0b86828701612902565b9150509250925092565b60008060008060808587031215612e2f57612e2e61253d565b5b6000612e3d87828801612590565b9450506020612e4e878288016125c6565b9350506040612e5f878288016125c6565b925050606085013567ffffffffffffffff811115612e8057612e7f612542565b5b612e8c878288016129b7565b91505092959194509250565b612ea181612567565b82525050565b6000602082019050612ebc6000830184612e98565b92915050565b612ecb816126ca565b8114612ed657600080fd5b50565b600081359050612ee881612ec2565b92915050565b60008060408385031215612f0557612f0461253d565b5b6000612f1385828601612590565b9250506020612f2485828601612ed9565b9150509250929050565b60008060408385031215612f4557612f4461253d565b5b6000612f5385828601612590565b9250506020612f6485828601612590565b9150509250929050565b600080600080600060a08688031215612f8a57612f8961253d565b5b6000612f9888828901612590565b9550506020612fa988828901612590565b9450506040612fba888289016125c6565b9350506060612fcb888289016125c6565b925050608086013567ffffffffffffffff811115612fec57612feb612542565b5b612ff8888289016129b7565b9150509295509295909350565b60006020828403121561301b5761301a61253d565b5b600061302984828501612590565b91505092915050565b60008060006060848603121561304b5761304a61253d565b5b600061305986828701612590565b935050602061306a868287016125c6565b925050604061307b868287016125c6565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b60006130e1602a83612738565b91506130ec82613085565b604082019050919050565b60006020820190508181036000830152613110816130d4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061315e57607f821691505b6020821081141561317257613171613117565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b60006131d4602e83612738565b91506131df82613178565b604082019050919050565b60006020820190508181036000830152613203816131c7565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000613266602983612738565b91506132718261320a565b604082019050919050565b6000602082019050818103600083015261329581613259565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613305826125a5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613338576133376132cb565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061339f602683612738565b91506133aa82613343565b604082019050919050565b600060208201905081810360008301526133ce81613392565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061340b602083612738565b9150613416826133d5565b602082019050919050565b6000602082019050818103600083015261343a816133fe565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061349d602183612738565b91506134a882613441565b604082019050919050565b600060208201905081810360008301526134cc81613490565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b600061352f602883612738565b915061353a826134d3565b604082019050919050565b6000602082019050818103600083015261355e81613522565b9050919050565b6000613570826125a5565b915061357b836125a5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135b0576135af6132cb565b5b828201905092915050565b600060408201905081810360008301526135d58185612d0a565b905081810360208301526135e98184612d0a565b90509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061364e602583612738565b9150613659826135f2565b604082019050919050565b6000602082019050818103600083015261367d81613641565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b60006136e0602a83612738565b91506136eb82613684565b604082019050919050565b6000602082019050818103600083015261370f816136d3565b9050919050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613772602383612738565b915061377d82613716565b604082019050919050565b600060208201905081810360008301526137a181613765565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000613804602483612738565b915061380f826137a8565b604082019050919050565b60006020820190508181036000830152613833816137f7565b9050919050565b600060408201905061384f600083018561261b565b61385c602083018461261b565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006138bf602983612738565b91506138ca82613863565b604082019050919050565b600060208201905081810360008301526138ee816138b2565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061391c826138f5565b6139268185613900565b9350613936818560208601612749565b61393f8161277c565b840191505092915050565b600060a08201905061395f6000830188612e98565b61396c6020830187612e98565b818103604083015261397e8186612d0a565b905081810360608301526139928185612d0a565b905081810360808301526139a68184613911565b90509695505050505050565b6000815190506139c181612671565b92915050565b6000602082840312156139dd576139dc61253d565b5b60006139eb848285016139b2565b91505092915050565b60008160e01c9050919050565b600060033d1115613a205760046000803e613a1d6000516139f4565b90505b90565b600060443d1015613a3357613ab6565b613a3b612533565b60043d036004823e80513d602482011167ffffffffffffffff82111715613a63575050613ab6565b808201805167ffffffffffffffff811115613a815750505050613ab6565b80602083010160043d038501811115613a9e575050505050613ab6565b613aad8260200185018661281c565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000613b15603483612738565b9150613b2082613ab9565b604082019050919050565b60006020820190508181036000830152613b4481613b08565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000613ba7602883612738565b9150613bb282613b4b565b604082019050919050565b60006020820190508181036000830152613bd681613b9a565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613c13601483612738565b9150613c1e82613bdd565b602082019050919050565b60006020820190508181036000830152613c4281613c06565b9050919050565b600060a082019050613c5e6000830188612e98565b613c6b6020830187612e98565b613c78604083018661261b565b613c85606083018561261b565b8181036080830152613c978184613911565b90509695505050505050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613cd9601083612738565b9150613ce482613ca3565b602082019050919050565b60006020820190508181036000830152613d0881613ccc565b9050919050565b7f455243313135353a206275726e20616d6f756e74206578636565647320746f7460008201527f616c537570706c79000000000000000000000000000000000000000000000000602082015250565b6000613d6b602883612738565b9150613d7682613d0f565b604082019050919050565b60006020820190508181036000830152613d9a81613d5e565b905091905056fea264697066735822122056731907c557e3b196e7aab4229f6cbcc263d3577e60dc70834c3b486636cef864736f6c63430008090033