60806040523480156200001157600080fd5b5060405162003e1838038062003e18833981810160405281019062000037919062000270565b82828282828160009080519060200190620000549291906200014e565b5080600190805190602001906200006d9291906200014e565b5050506000620000826200014660201b60201c565b905080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600b9080519060200190620001399291906200014e565b5050505050505062000481565b600033905090565b8280546200015c90620003a6565b90600052602060002090601f016020900481019282620001805760008555620001cc565b82601f106200019b57805160ff1916838001178555620001cc565b82800160010185558215620001cc579182015b82811115620001cb578251825591602001919060010190620001ae565b5b509050620001db9190620001df565b5090565b5b80821115620001fa576000816000905550600101620001e0565b5090565b6000620002156200020f846200033a565b62000311565b9050828152602081018484840111156200022e57600080fd5b6200023b84828562000370565b509392505050565b600082601f8301126200025557600080fd5b815162000267848260208601620001fe565b91505092915050565b6000806000606084860312156200028657600080fd5b600084015167ffffffffffffffff811115620002a157600080fd5b620002af8682870162000243565b935050602084015167ffffffffffffffff811115620002cd57600080fd5b620002db8682870162000243565b925050604084015167ffffffffffffffff811115620002f957600080fd5b620003078682870162000243565b9150509250925092565b60006200031d62000330565b90506200032b8282620003dc565b919050565b6000604051905090565b600067ffffffffffffffff82111562000358576200035762000441565b5b620003638262000470565b9050602081019050919050565b60005b838110156200039057808201518184015260208101905062000373565b83811115620003a0576000848401525b50505050565b60006002820490506001821680620003bf57607f821691505b60208210811415620003d657620003d562000412565b5b50919050565b620003e78262000470565b810181811067ffffffffffffffff8211171562000409576200040862000441565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b61398780620004916000396000f3fe608060405234801561001057600080fd5b506004361061014c5760003560e01c80636352211e116100c3578063a14481941161007c578063a14481941461039b578063a22cb465146103b7578063b88d4fde146103d3578063c87b56dd146103ef578063e985e9c51461041f578063f2fde38b1461044f5761014c565b80636352211e146102d95780636b34c7ad1461030957806370a0823114610325578063715018a6146103555780638da5cb5b1461035f57806395d89b411461037d5761014c565b806318160ddd1161011557806318160ddd1461020757806323b872dd146102255780632f745c591461024157806342842e0e146102715780634f6ccce71461028d57806355f804b3146102bd5761014c565b8062059fa31461015157806301ffc9a71461016d57806306fdde031461019d578063081812fc146101bb578063095ea7b3146101eb575b600080fd5b61016b60048036038101906101669190612774565b61046b565b005b61018760048036038101906101829190612922565b610511565b6040516101949190612db3565b60405180910390f35b6101a561058b565b6040516101b29190612dce565b60405180910390f35b6101d560048036038101906101d091906129b9565b61061d565b6040516101e29190612d4c565b60405180910390f35b610205600480360381019061020091906128e6565b6106a2565b005b61020f6107ba565b60405161021c9190613030565b60405180910390f35b61023f600480360381019061023a9190612774565b6107c7565b005b61025b600480360381019061025691906128e6565b610827565b6040516102689190613030565b60405180910390f35b61028b60048036038101906102869190612774565b6108cc565b005b6102a760048036038101906102a291906129b9565b6108ec565b6040516102b49190613030565b60405180910390f35b6102d760048036038101906102d29190612974565b610983565b005b6102f360048036038101906102ee91906129b9565b610a15565b6040516103009190612d4c565b60405180910390f35b610323600480360381019061031e919061283e565b610ac7565b005b61033f600480360381019061033a919061270f565b610c32565b60405161034c9190613030565b60405180910390f35b61035d610cea565b005b610367610e27565b6040516103749190612d4c565b60405180910390f35b610385610e51565b6040516103929190612dce565b60405180910390f35b6103b560048036038101906103b091906128e6565b610ee3565b005b6103d160048036038101906103cc91906128aa565b610f6d565b005b6103ed60048036038101906103e891906127c3565b6110ee565b005b610409600480360381019061040491906129b9565b611150565b6040516104169190612dce565b60405180910390f35b61043960048036038101906104349190612738565b6111f7565b6040516104469190612db3565b60405180910390f35b6104696004803603810190610464919061270f565b61128b565b005b610473611437565b73ffffffffffffffffffffffffffffffffffffffff16610491610e27565b73ffffffffffffffffffffffffffffffffffffffff16146104e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104de90612f70565b60405180910390fd5b6104f1838261143f565b61050c8383836040518060200160405280600081525061160d565b505050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610584575061058382611669565b5b9050919050565b60606000805461059a90613255565b80601f01602080910402602001604051908101604052809291908181526020018280546105c690613255565b80156106135780601f106105e857610100808354040283529160200191610613565b820191906000526020600020905b8154815290600101906020018083116105f657829003601f168201915b5050505050905090565b60006106288261174b565b610667576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065e90612f50565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106ad82610a15565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561071e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071590612fd0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661073d611437565b73ffffffffffffffffffffffffffffffffffffffff16148061076c575061076b81610766611437565b6111f7565b5b6107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a290612ed0565b60405180910390fd5b6107b583836117b7565b505050565b6000600880549050905090565b6107d86107d2611437565b82611870565b610817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080e90612ff0565b60405180910390fd5b61082283838361194e565b505050565b600061083283610c32565b8210610873576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086a90612df0565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6108e7838383604051806020016040528060008152506110ee565b505050565b60006108f66107ba565b8210610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e90613010565b60405180910390fd5b60088281548110610971577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050919050565b61098b611437565b73ffffffffffffffffffffffffffffffffffffffff166109a9610e27565b73ffffffffffffffffffffffffffffffffffffffff16146109ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f690612f70565b60405180910390fd5b8181600b9190610a10929190612507565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590612f10565b60405180910390fd5b80915050919050565b610acf611437565b73ffffffffffffffffffffffffffffffffffffffff16610aed610e27565b73ffffffffffffffffffffffffffffffffffffffff1614610b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3a90612f70565b60405180910390fd5b60005b83839050811015610c2b57610b9a85858584818110610b8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013561143f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c1857610c1782858584818110610c0b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356117b7565b5b8080610c23906132b8565b915050610b46565b5050505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a90612ef0565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cf2611437565b73ffffffffffffffffffffffffffffffffffffffff16610d10610e27565b73ffffffffffffffffffffffffffffffffffffffff1614610d66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5d90612f70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610e6090613255565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8c90613255565b8015610ed95780601f10610eae57610100808354040283529160200191610ed9565b820191906000526020600020905b815481529060010190602001808311610ebc57829003601f168201915b5050505050905090565b610eeb611437565b73ffffffffffffffffffffffffffffffffffffffff16610f09610e27565b73ffffffffffffffffffffffffffffffffffffffff1614610f5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5690612f70565b60405180910390fd5b610f698282611baa565b5050565b610f75611437565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fe3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fda90612e90565b60405180910390fd5b8060056000610ff0611437565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661109d611437565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110e29190612db3565b60405180910390a35050565b6110ff6110f9611437565b83611870565b61113e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113590612ff0565b60405180910390fd5b61114a8484848461160d565b50505050565b606061115b8261174b565b61119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190612fb0565b60405180910390fd5b60006111a4611bc8565b905060008151116111c457604051806020016040528060008152506111ef565b806111ce84611c5a565b6040516020016111df929190612d28565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611293611437565b73ffffffffffffffffffffffffffffffffffffffff166112b1610e27565b73ffffffffffffffffffffffffffffffffffffffff1614611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612f70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136e90612e30565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a690612f30565b60405180910390fd5b6114b88161174b565b156114f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ef90612e50565b60405180910390fd5b61150460008383611e07565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461155491906130e4565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b61161884848461194e565b61162484848484611f1b565b611663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165a90612e10565b60405180910390fd5b50505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061173457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806117445750611743826120b2565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661182a83610a15565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061187b8261174b565b6118ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b190612eb0565b60405180910390fd5b60006118c583610a15565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061193457508373ffffffffffffffffffffffffffffffffffffffff1661191c8461061d565b73ffffffffffffffffffffffffffffffffffffffff16145b80611945575061194481856111f7565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661196e82610a15565b73ffffffffffffffffffffffffffffffffffffffff16146119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb90612f90565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2b90612e70565b60405180910390fd5b611a3f838383611e07565b611a4a6000826117b7565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a9a919061316b565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611af191906130e4565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611bc482826040518060200160405280600081525061211c565b5050565b6060600b8054611bd790613255565b80601f0160208091040260200160405190810160405280929190818152602001828054611c0390613255565b8015611c505780601f10611c2557610100808354040283529160200191611c50565b820191906000526020600020905b815481529060010190602001808311611c3357829003601f168201915b5050505050905090565b60606000821415611ca2576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611e02565b600082905060005b60008214611cd4578080611cbd906132b8565b915050600a82611ccd919061313a565b9150611caa565b60008167ffffffffffffffff811115611d16577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611d485781602001600182028036833780820191505090505b5090505b60008514611dfb57600182611d61919061316b565b9150600a85611d709190613301565b6030611d7c91906130e4565b60f81b818381518110611db8577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611df4919061313a565b9450611d4c565b8093505050505b919050565b611e12838383612177565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e5557611e508161217c565b611e94565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611e9357611e9283826121c5565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ed757611ed281612332565b611f16565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611f1557611f148282612475565b5b5b505050565b6000611f3c8473ffffffffffffffffffffffffffffffffffffffff166124f4565b156120a5578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f65611437565b8786866040518563ffffffff1660e01b8152600401611f879493929190612d67565b602060405180830381600087803b158015611fa157600080fd5b505af1925050508015611fd257506040513d601f19601f82011682018060405250810190611fcf919061294b565b60015b612055573d8060008114612002576040519150601f19603f3d011682016040523d82523d6000602084013e612007565b606091505b5060008151141561204d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204490612e10565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506120aa565b600190505b949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b612126838361143f565b6121336000848484611f1b565b612172576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216990612e10565b60405180910390fd5b505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b600060016121d284610c32565b6121dc919061316b565b90506000600760008481526020019081526020016000205490508181146122c1576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050612346919061316b565b905060006009600084815260200190815260200160002054905060006008838154811061239c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200154905080600883815481106123e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612459577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b600061248083610c32565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b600080823b905060008111915050919050565b82805461251390613255565b90600052602060002090601f016020900481019282612535576000855561257c565b82601f1061254e57803560ff191683800117855561257c565b8280016001018555821561257c579182015b8281111561257b578235825591602001919060010190612560565b5b509050612589919061258d565b5090565b5b808211156125a657600081600090555060010161258e565b5090565b60006125bd6125b884613070565b61304b565b9050828152602081018484840111156125d557600080fd5b6125e0848285613213565b509392505050565b6000813590506125f7816138f5565b92915050565b60008083601f84011261260f57600080fd5b8235905067ffffffffffffffff81111561262857600080fd5b60208301915083602082028301111561264057600080fd5b9250929050565b6000813590506126568161390c565b92915050565b60008135905061266b81613923565b92915050565b60008151905061268081613923565b92915050565b600082601f83011261269757600080fd5b81356126a78482602086016125aa565b91505092915050565b60008083601f8401126126c257600080fd5b8235905067ffffffffffffffff8111156126db57600080fd5b6020830191508360018202830111156126f357600080fd5b9250929050565b6000813590506127098161393a565b92915050565b60006020828403121561272157600080fd5b600061272f848285016125e8565b91505092915050565b6000806040838503121561274b57600080fd5b6000612759858286016125e8565b925050602061276a858286016125e8565b9150509250929050565b60008060006060848603121561278957600080fd5b6000612797868287016125e8565b93505060206127a8868287016125e8565b92505060406127b9868287016126fa565b9150509250925092565b600080600080608085870312156127d957600080fd5b60006127e7878288016125e8565b94505060206127f8878288016125e8565b9350506040612809878288016126fa565b925050606085013567ffffffffffffffff81111561282657600080fd5b61283287828801612686565b91505092959194509250565b6000806000806060858703121561285457600080fd5b6000612862878288016125e8565b945050602085013567ffffffffffffffff81111561287f57600080fd5b61288b878288016125fd565b9350935050604061289e878288016125e8565b91505092959194509250565b600080604083850312156128bd57600080fd5b60006128cb858286016125e8565b92505060206128dc85828601612647565b9150509250929050565b600080604083850312156128f957600080fd5b6000612907858286016125e8565b9250506020612918858286016126fa565b9150509250929050565b60006020828403121561293457600080fd5b60006129428482850161265c565b91505092915050565b60006020828403121561295d57600080fd5b600061296b84828501612671565b91505092915050565b6000806020838503121561298757600080fd5b600083013567ffffffffffffffff8111156129a157600080fd5b6129ad858286016126b0565b92509250509250929050565b6000602082840312156129cb57600080fd5b60006129d9848285016126fa565b91505092915050565b6129eb8161319f565b82525050565b6129fa816131b1565b82525050565b6000612a0b826130a1565b612a1581856130b7565b9350612a25818560208601613222565b612a2e816133ee565b840191505092915050565b6000612a44826130ac565b612a4e81856130c8565b9350612a5e818560208601613222565b612a67816133ee565b840191505092915050565b6000612a7d826130ac565b612a8781856130d9565b9350612a97818560208601613222565b80840191505092915050565b6000612ab0602b836130c8565b9150612abb826133ff565b604082019050919050565b6000612ad36032836130c8565b9150612ade8261344e565b604082019050919050565b6000612af66026836130c8565b9150612b018261349d565b604082019050919050565b6000612b19601c836130c8565b9150612b24826134ec565b602082019050919050565b6000612b3c6024836130c8565b9150612b4782613515565b604082019050919050565b6000612b5f6019836130c8565b9150612b6a82613564565b602082019050919050565b6000612b82602c836130c8565b9150612b8d8261358d565b604082019050919050565b6000612ba56038836130c8565b9150612bb0826135dc565b604082019050919050565b6000612bc8602a836130c8565b9150612bd38261362b565b604082019050919050565b6000612beb6029836130c8565b9150612bf68261367a565b604082019050919050565b6000612c0e6020836130c8565b9150612c19826136c9565b602082019050919050565b6000612c31602c836130c8565b9150612c3c826136f2565b604082019050919050565b6000612c546020836130c8565b9150612c5f82613741565b602082019050919050565b6000612c776029836130c8565b9150612c828261376a565b604082019050919050565b6000612c9a602f836130c8565b9150612ca5826137b9565b604082019050919050565b6000612cbd6021836130c8565b9150612cc882613808565b604082019050919050565b6000612ce06031836130c8565b9150612ceb82613857565b604082019050919050565b6000612d03602c836130c8565b9150612d0e826138a6565b604082019050919050565b612d2281613209565b82525050565b6000612d348285612a72565b9150612d408284612a72565b91508190509392505050565b6000602082019050612d6160008301846129e2565b92915050565b6000608082019050612d7c60008301876129e2565b612d8960208301866129e2565b612d966040830185612d19565b8181036060830152612da88184612a00565b905095945050505050565b6000602082019050612dc860008301846129f1565b92915050565b60006020820190508181036000830152612de88184612a39565b905092915050565b60006020820190508181036000830152612e0981612aa3565b9050919050565b60006020820190508181036000830152612e2981612ac6565b9050919050565b60006020820190508181036000830152612e4981612ae9565b9050919050565b60006020820190508181036000830152612e6981612b0c565b9050919050565b60006020820190508181036000830152612e8981612b2f565b9050919050565b60006020820190508181036000830152612ea981612b52565b9050919050565b60006020820190508181036000830152612ec981612b75565b9050919050565b60006020820190508181036000830152612ee981612b98565b9050919050565b60006020820190508181036000830152612f0981612bbb565b9050919050565b60006020820190508181036000830152612f2981612bde565b9050919050565b60006020820190508181036000830152612f4981612c01565b9050919050565b60006020820190508181036000830152612f6981612c24565b9050919050565b60006020820190508181036000830152612f8981612c47565b9050919050565b60006020820190508181036000830152612fa981612c6a565b9050919050565b60006020820190508181036000830152612fc981612c8d565b9050919050565b60006020820190508181036000830152612fe981612cb0565b9050919050565b6000602082019050818103600083015261300981612cd3565b9050919050565b6000602082019050818103600083015261302981612cf6565b9050919050565b60006020820190506130456000830184612d19565b92915050565b6000613055613066565b90506130618282613287565b919050565b6000604051905090565b600067ffffffffffffffff82111561308b5761308a6133bf565b5b613094826133ee565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006130ef82613209565b91506130fa83613209565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561312f5761312e613332565b5b828201905092915050565b600061314582613209565b915061315083613209565b9250826131605761315f613361565b5b828204905092915050565b600061317682613209565b915061318183613209565b92508282101561319457613193613332565b5b828203905092915050565b60006131aa826131e9565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015613240578082015181840152602081019050613225565b8381111561324f576000848401525b50505050565b6000600282049050600182168061326d57607f821691505b6020821081141561328157613280613390565b5b50919050565b613290826133ee565b810181811067ffffffffffffffff821117156132af576132ae6133bf565b5b80604052505050565b60006132c382613209565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132f6576132f5613332565b5b600182019050919050565b600061330c82613209565b915061331783613209565b92508261332757613326613361565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6138fe8161319f565b811461390957600080fd5b50565b613915816131b1565b811461392057600080fd5b50565b61392c816131bd565b811461393757600080fd5b50565b61394381613209565b811461394e57600080fd5b5056fea26469706673582212205595b2606306062cea490bfe45b031276a0d1c617f6e3a96b55d9b262115ec6064736f6c63430008040033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000295279616e2054656464657220436172746f6f6e20436f6c6c656374696f6e20536572696573204f6e650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a434152544f4f4e4f4e4500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a68747470733a2f2f6e66742e7279616e7465646465722e636f6d2f6e66742f3078456244374337614241623145363763366437653164323737444643304638653965443031623131302f00000000000000000000000000000000000000000000