0x60806040526202a3006006556000600755620f42406008553480156200002457600080fd5b506040518060200160405280600081525062000046816200006d60201b60201c565b50620000676200005b6200008260201b60201c565b6200008a60201b60201c565b620004b1565b80600290816200007e9190620003ca565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620001d257607f821691505b602082108103620001e857620001e76200018a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000213565b6200025e868362000213565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002ab620002a56200029f8462000276565b62000280565b62000276565b9050919050565b6000819050919050565b620002c7836200028a565b620002df620002d682620002b2565b84845462000220565b825550505050565b600090565b620002f6620002e7565b62000303818484620002bc565b505050565b5b818110156200032b576200031f600082620002ec565b60018101905062000309565b5050565b601f8211156200037a576200034481620001ee565b6200034f8462000203565b810160208510156200035f578190505b620003776200036e8562000203565b83018262000308565b50505b505050565b600082821c905092915050565b60006200039f600019846008026200037f565b1980831691505092915050565b6000620003ba83836200038c565b9150826002028217905092915050565b620003d58262000150565b67ffffffffffffffff811115620003f157620003f06200015b565b5b620003fd8254620001b9565b6200040a8282856200032f565b600060209050601f8311600181146200044257600084156200042d578287015190505b620004398582620003ac565b865550620004a9565b601f1984166200045286620001ee565b60005b828110156200047c5784890151825560018201915060208501945060208101905062000455565b868310156200049c578489015162000498601f8916826200038c565b8355505b6001600288020188555050505b505050505050565b61409680620004c16000396000f3fe6080604052600436106101345760003560e01c8063771282f6116100ab578063bd85b0391161006f578063bd85b03914610416578063d5abeb0114610453578063e985e9c51461047e578063f242432a146104bb578063f2fde38b146104e4578063f5298aca1461050d57610134565b8063771282f61461035057806378e979251461037b5780638da5cb5b146103a6578063a0712d68146103d1578063a22cb465146103ed57610134565b80631f7fdffa116100fd5780631f7fdffa146102445780632eb2c2d61461026d5780634e1273f4146102965780634f558e79146102d35780636b20c45414610310578063715018a61461033957610134565b8062fdd58e1461013957806301ffc9a71461017657806302fe5305146101b35780630e89341c146101dc5780630fb5a6b414610219575b600080fd5b34801561014557600080fd5b50610160600480360381019061015b91906126c0565b610536565b60405161016d919061270f565b60405180910390f35b34801561018257600080fd5b5061019d60048036038101906101989190612782565b6105fe565b6040516101aa91906127ca565b60405180910390f35b3480156101bf57600080fd5b506101da60048036038101906101d5919061292b565b6106e0565b005b3480156101e857600080fd5b5061020360048036038101906101fe9190612974565b6106f4565b6040516102109190612a20565b60405180910390f35b34801561022557600080fd5b5061022e610788565b60405161023b919061270f565b60405180910390f35b34801561025057600080fd5b5061026b60048036038101906102669190612bab565b61078e565b005b34801561027957600080fd5b50610294600480360381019061028f9190612c66565b6107a8565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190612df8565b610849565b6040516102ca9190612f2e565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190612974565b610962565b60405161030791906127ca565b60405180910390f35b34801561031c57600080fd5b5061033760048036038101906103329190612f50565b610976565b005b34801561034557600080fd5b5061034e610a13565b005b34801561035c57600080fd5b50610365610a27565b604051610372919061270f565b60405180910390f35b34801561038757600080fd5b50610390610a2d565b60405161039d919061270f565b60405180910390f35b3480156103b257600080fd5b506103bb610a33565b6040516103c89190612fea565b60405180910390f35b6103eb60048036038101906103e69190612974565b610a5d565b005b3480156103f957600080fd5b50610414600480360381019061040f9190613031565b610b68565b005b34801561042257600080fd5b5061043d60048036038101906104389190612974565b610b7e565b60405161044a919061270f565b60405180910390f35b34801561045f57600080fd5b50610468610b9b565b604051610475919061270f565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a09190613071565b610ba1565b6040516104b291906127ca565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd91906130b1565b610c35565b005b3480156104f057600080fd5b5061050b60048036038101906105069190613148565b610cd6565b005b34801561051957600080fd5b50610534600480360381019061052f9190613175565b610d59565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036105a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059d9061323a565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106c957507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106d957506106d882610df6565b5b9050919050565b6106e8610e60565b6106f181610ede565b50565b60606002805461070390613289565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90613289565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050919050565b60065481565b610796610e60565b6107a284848484610ef1565b50505050565b6107b061111d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806107f657506107f5856107f061111d565b610ba1565b5b610835576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082c9061332c565b60405180910390fd5b6108428585858585611125565b5050505050565b6060815183511461088f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610886906133be565b60405180910390fd5b6000835167ffffffffffffffff8111156108ac576108ab612800565b5b6040519080825280602002602001820160405280156108da5781602001602082028036833780820191505090505b50905060005b8451811015610957576109278582815181106108ff576108fe6133de565b5b602002602001015185838151811061091a576109196133de565b5b6020026020010151610536565b82828151811061093a576109396133de565b5b602002602001018181525050806109509061343c565b90506108e0565b508091505092915050565b60008061096e83610b7e565b119050919050565b61097e61111d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806109c457506109c3836109be61111d565b610ba1565b5b610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa9061332c565b60405180910390fd5b610a0e838383611446565b505050565b610a1b610e60565b610a256000611714565b565b60075481565b60055481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085460075403610a6d57600080fd5b60085481600754610a7e9190613484565b1115610a8957600080fd5b600654600554610a999190613484565b421115610aa557600080fd5b600181148015610abb5750655af3107a40003414155b15610ac557600080fd5b600a81148015610adc575066038d7ea4c680003414155b15610ae657600080fd5b606481148015610afd57506618838370f340003414155b15610b0757600080fd5b60018114158015610b195750600a8114155b8015610b26575060648114155b15610b3057600080fd5b610b4c33600183604051806020016040528060008152506117da565b8060076000828254610b5e9190613484565b9250508190555050565b610b7a610b7361111d565b838361198a565b5050565b600060046000838152602001908152602001600020549050919050565b60085481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610c3d61111d565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610c835750610c8285610c7d61111d565b610ba1565b5b610cc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb99061332c565b60405180910390fd5b610ccf8585858585611af6565b5050505050565b610cde610e60565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d449061352a565b60405180910390fd5b610d5681611714565b50565b610d6161111d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610da75750610da683610da161111d565b610ba1565b5b610de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddd9061332c565b60405180910390fd5b610df1838383611d91565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610e6861111d565b73ffffffffffffffffffffffffffffffffffffffff16610e86610a33565b73ffffffffffffffffffffffffffffffffffffffff1614610edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed390613596565b60405180910390fd5b565b8060029081610eed9190613762565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f57906138a6565b60405180910390fd5b8151835114610fa4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9b90613938565b60405180910390fd5b6000610fae61111d565b9050610fbf81600087878787611fd7565b60005b845181101561107857838181518110610fde57610fdd6133de565b5b6020026020010151600080878481518110610ffc57610ffb6133de565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461105e9190613484565b9250508190555080806110709061343c565b915050610fc2565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516110f0929190613958565b60405180910390a461110781600087878787611fed565b61111681600087878787611ff5565b5050505050565b600033905090565b8151835114611169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116090613938565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036111d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cf90613a01565b60405180910390fd5b60006111e261111d565b90506111f2818787878787611fd7565b60005b84518110156113a3576000858281518110611213576112126133de565b5b602002602001015190506000858381518110611232576112316133de565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ca90613a93565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113889190613484565b925050819055505050508061139c9061343c565b90506111f5565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161141a929190613958565b60405180910390a4611430818787878787611fed565b61143e818787878787611ff5565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ac90613b25565b60405180910390fd5b80518251146114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090613938565b60405180910390fd5b600061150361111d565b905061152381856000868660405180602001604052806000815250611fd7565b60005b8351811015611670576000848281518110611544576115436133de565b5b602002602001015190506000848381518110611563576115626133de565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611604576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115fb90613bb7565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050505080806116689061343c565b915050611526565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516116e8929190613958565b60405180910390a461170e81856000868660405180602001604052806000815250611fed565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611840906138a6565b60405180910390fd5b600061185361111d565b90506000611860856121cc565b9050600061186d856121cc565b905061187e83600089858589611fd7565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118dd9190613484565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898960405161195b929190613bd7565b60405180910390a461197283600089858589611fed565b61198183600089898989612246565b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ef90613c72565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ae991906127ca565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611b65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5c90613a01565b60405180910390fd5b6000611b6f61111d565b90506000611b7c856121cc565b90506000611b89856121cc565b9050611b99838989858589611fd7565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2790613a93565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ce59190613484565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611d62929190613bd7565b60405180910390a4611d78848a8a86868a611fed565b611d86848a8a8a8a8a612246565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611df790613b25565b60405180910390fd5b6000611e0a61111d565b90506000611e17846121cc565b90506000611e24846121cc565b9050611e4483876000858560405180602001604052806000815250611fd7565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611edb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed290613bb7565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611fa8929190613bd7565b60405180910390a4611fce84886000868660405180602001604052806000815250611fed565b50505050505050565b611fe586868686868661241d565b505050505050565b505050505050565b6120148473ffffffffffffffffffffffffffffffffffffffff166125ed565b156121c4578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b815260040161205a959493929190613ce7565b6020604051808303816000875af192505050801561209657506040513d601f19601f820116820180604052508101906120939190613d64565b60015b61213b576120a2613d9e565b806308c379a0036120fe57506120b6613dc0565b806120c15750612100565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f59190612a20565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213290613ec2565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146121c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b990613f54565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff8111156121eb576121ea612800565b5b6040519080825280602002602001820160405280156122195781602001602082028036833780820191505090505b5090508281600081518110612231576122306133de565b5b60200260200101818152505080915050919050565b6122658473ffffffffffffffffffffffffffffffffffffffff166125ed565b15612415578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b81526004016122ab959493929190613f74565b6020604051808303816000875af19250505080156122e757506040513d601f19601f820116820180604052508101906122e49190613d64565b60015b61238c576122f3613d9e565b806308c379a00361234f5750612307613dc0565b806123125750612351565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123469190612a20565b60405180910390fd5b505b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238390613ec2565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240a90613f54565b60405180910390fd5b505b505050505050565b61242b868686868686612610565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036124dc5760005b83518110156124da5782818151811061247e5761247d6133de565b5b60200260200101516004600086848151811061249d5761249c6133de565b5b6020026020010151815260200190815260200160002060008282546124c29190613484565b92505081905550806124d39061343c565b9050612462565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036125e55760005b83518110156125e3576000848281518110612531576125306133de565b5b6020026020010151905060008483815181106125505761254f6133de565b5b60200260200101519050600060046000848152602001908152602001600020549050818110156125b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ac90614040565b60405180910390fd5b8181036004600085815260200190815260200160002081905550505050806125dc9061343c565b9050612513565b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006126578261262c565b9050919050565b6126678161264c565b811461267257600080fd5b50565b6000813590506126848161265e565b92915050565b6000819050919050565b61269d8161268a565b81146126a857600080fd5b50565b6000813590506126ba81612694565b92915050565b600080604083850312156126d7576126d6612622565b5b60006126e585828601612675565b92505060206126f6858286016126ab565b9150509250929050565b6127098161268a565b82525050565b60006020820190506127246000830184612700565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61275f8161272a565b811461276a57600080fd5b50565b60008135905061277c81612756565b92915050565b60006020828403121561279857612797612622565b5b60006127a68482850161276d565b91505092915050565b60008115159050919050565b6127c4816127af565b82525050565b60006020820190506127df60008301846127bb565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612838826127ef565b810181811067ffffffffffffffff8211171561285757612856612800565b5b80604052505050565b600061286a612618565b9050612876828261282f565b919050565b600067ffffffffffffffff82111561289657612895612800565b5b61289f826127ef565b9050602081019050919050565b82818337600083830152505050565b60006128ce6128c98461287b565b612860565b9050828152602081018484840111156128ea576128e96127ea565b5b6128f58482856128ac565b509392505050565b600082601f830112612912576129116127e5565b5b81356129228482602086016128bb565b91505092915050565b60006020828403121561294157612940612622565b5b600082013567ffffffffffffffff81111561295f5761295e612627565b5b61296b848285016128fd565b91505092915050565b60006020828403121561298a57612989612622565b5b6000612998848285016126ab565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129db5780820151818401526020810190506129c0565b60008484015250505050565b60006129f2826129a1565b6129fc81856129ac565b9350612a0c8185602086016129bd565b612a15816127ef565b840191505092915050565b60006020820190508181036000830152612a3a81846129e7565b905092915050565b600067ffffffffffffffff821115612a5d57612a5c612800565b5b602082029050602081019050919050565b600080fd5b6000612a86612a8184612a42565b612860565b90508083825260208201905060208402830185811115612aa957612aa8612a6e565b5b835b81811015612ad25780612abe88826126ab565b845260208401935050602081019050612aab565b5050509392505050565b600082601f830112612af157612af06127e5565b5b8135612b01848260208601612a73565b91505092915050565b600067ffffffffffffffff821115612b2557612b24612800565b5b612b2e826127ef565b9050602081019050919050565b6000612b4e612b4984612b0a565b612860565b905082815260208101848484011115612b6a57612b696127ea565b5b612b758482856128ac565b509392505050565b600082601f830112612b9257612b916127e5565b5b8135612ba2848260208601612b3b565b91505092915050565b60008060008060808587031215612bc557612bc4612622565b5b6000612bd387828801612675565b945050602085013567ffffffffffffffff811115612bf457612bf3612627565b5b612c0087828801612adc565b935050604085013567ffffffffffffffff811115612c2157612c20612627565b5b612c2d87828801612adc565b925050606085013567ffffffffffffffff811115612c4e57612c4d612627565b5b612c5a87828801612b7d565b91505092959194509250565b600080600080600060a08688031215612c8257612c81612622565b5b6000612c9088828901612675565b9550506020612ca188828901612675565b945050604086013567ffffffffffffffff811115612cc257612cc1612627565b5b612cce88828901612adc565b935050606086013567ffffffffffffffff811115612cef57612cee612627565b5b612cfb88828901612adc565b925050608086013567ffffffffffffffff811115612d1c57612d1b612627565b5b612d2888828901612b7d565b9150509295509295909350565b600067ffffffffffffffff821115612d5057612d4f612800565b5b602082029050602081019050919050565b6000612d74612d6f84612d35565b612860565b90508083825260208201905060208402830185811115612d9757612d96612a6e565b5b835b81811015612dc05780612dac8882612675565b845260208401935050602081019050612d99565b5050509392505050565b600082601f830112612ddf57612dde6127e5565b5b8135612def848260208601612d61565b91505092915050565b60008060408385031215612e0f57612e0e612622565b5b600083013567ffffffffffffffff811115612e2d57612e2c612627565b5b612e3985828601612dca565b925050602083013567ffffffffffffffff811115612e5a57612e59612627565b5b612e6685828601612adc565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ea58161268a565b82525050565b6000612eb78383612e9c565b60208301905092915050565b6000602082019050919050565b6000612edb82612e70565b612ee58185612e7b565b9350612ef083612e8c565b8060005b83811015612f21578151612f088882612eab565b9750612f1383612ec3565b925050600181019050612ef4565b5085935050505092915050565b60006020820190508181036000830152612f488184612ed0565b905092915050565b600080600060608486031215612f6957612f68612622565b5b6000612f7786828701612675565b935050602084013567ffffffffffffffff811115612f9857612f97612627565b5b612fa486828701612adc565b925050604084013567ffffffffffffffff811115612fc557612fc4612627565b5b612fd186828701612adc565b9150509250925092565b612fe48161264c565b82525050565b6000602082019050612fff6000830184612fdb565b92915050565b61300e816127af565b811461301957600080fd5b50565b60008135905061302b81613005565b92915050565b6000806040838503121561304857613047612622565b5b600061305685828601612675565b92505060206130678582860161301c565b9150509250929050565b6000806040838503121561308857613087612622565b5b600061309685828601612675565b92505060206130a785828601612675565b9150509250929050565b600080600080600060a086880312156130cd576130cc612622565b5b60006130db88828901612675565b95505060206130ec88828901612675565b94505060406130fd888289016126ab565b935050606061310e888289016126ab565b925050608086013567ffffffffffffffff81111561312f5761312e612627565b5b61313b88828901612b7d565b9150509295509295909350565b60006020828403121561315e5761315d612622565b5b600061316c84828501612675565b91505092915050565b60008060006060848603121561318e5761318d612622565b5b600061319c86828701612675565b93505060206131ad868287016126ab565b92505060406131be868287016126ab565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000613224602a836129ac565b915061322f826131c8565b604082019050919050565b6000602082019050818103600083015261325381613217565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806132a157607f821691505b6020821081036132b4576132b361325a565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000613316602e836129ac565b9150613321826132ba565b604082019050919050565b6000602082019050818103600083015261334581613309565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b60006133a86029836129ac565b91506133b38261334c565b604082019050919050565b600060208201905081810360008301526133d78161339b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134478261268a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134795761347861340d565b5b600182019050919050565b600061348f8261268a565b915061349a8361268a565b92508282019050808211156134b2576134b161340d565b5b92915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135146026836129ac565b915061351f826134b8565b604082019050919050565b6000602082019050818103600083015261354381613507565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006135806020836129ac565b915061358b8261354a565b602082019050919050565b600060208201905081810360008301526135af81613573565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026136187fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826135db565b61362286836135db565b95508019841693508086168417925050509392505050565b6000819050919050565b600061365f61365a6136558461268a565b61363a565b61268a565b9050919050565b6000819050919050565b61367983613644565b61368d61368582613666565b8484546135e8565b825550505050565b600090565b6136a2613695565b6136ad818484613670565b505050565b5b818110156136d1576136c660008261369a565b6001810190506136b3565b5050565b601f821115613716576136e7816135b6565b6136f0846135cb565b810160208510156136ff578190505b61371361370b856135cb565b8301826136b2565b50505b505050565b600082821c905092915050565b60006137396000198460080261371b565b1980831691505092915050565b60006137528383613728565b9150826002028217905092915050565b61376b826129a1565b67ffffffffffffffff81111561378457613783612800565b5b61378e8254613289565b6137998282856136d5565b600060209050601f8311600181146137cc57600084156137ba578287015190505b6137c48582613746565b86555061382c565b601f1984166137da866135b6565b60005b82811015613802578489015182556001820191506020850194506020810190506137dd565b8683101561381f578489015161381b601f891682613728565b8355505b6001600288020188555050505b505050505050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006138906021836129ac565b915061389b82613834565b604082019050919050565b600060208201905081810360008301526138bf81613883565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b60006139226028836129ac565b915061392d826138c6565b604082019050919050565b6000602082019050818103600083015261395181613915565b9050919050565b600060408201905081810360008301526139728185612ed0565b905081810360208301526139868184612ed0565b90509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006139eb6025836129ac565b91506139f68261398f565b604082019050919050565b60006020820190508181036000830152613a1a816139de565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b6000613a7d602a836129ac565b9150613a8882613a21565b604082019050919050565b60006020820190508181036000830152613aac81613a70565b9050919050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b0f6023836129ac565b9150613b1a82613ab3565b604082019050919050565b60006020820190508181036000830152613b3e81613b02565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000613ba16024836129ac565b9150613bac82613b45565b604082019050919050565b60006020820190508181036000830152613bd081613b94565b9050919050565b6000604082019050613bec6000830185612700565b613bf96020830184612700565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b6000613c5c6029836129ac565b9150613c6782613c00565b604082019050919050565b60006020820190508181036000830152613c8b81613c4f565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613cb982613c92565b613cc38185613c9d565b9350613cd38185602086016129bd565b613cdc816127ef565b840191505092915050565b600060a082019050613cfc6000830188612fdb565b613d096020830187612fdb565b8181036040830152613d1b8186612ed0565b90508181036060830152613d2f8185612ed0565b90508181036080830152613d438184613cae565b90509695505050505050565b600081519050613d5e81612756565b92915050565b600060208284031215613d7a57613d79612622565b5b6000613d8884828501613d4f565b91505092915050565b60008160e01c9050919050565b600060033d1115613dbd5760046000803e613dba600051613d91565b90505b90565b600060443d10613e4d57613dd2612618565b60043d036004823e80513d602482011167ffffffffffffffff82111715613dfa575050613e4d565b808201805167ffffffffffffffff811115613e185750505050613e4d565b80602083010160043d038501811115613e35575050505050613e4d565b613e448260200185018661282f565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000613eac6034836129ac565b9150613eb782613e50565b604082019050919050565b60006020820190508181036000830152613edb81613e9f565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b6000613f3e6028836129ac565b9150613f4982613ee2565b604082019050919050565b60006020820190508181036000830152613f6d81613f31565b9050919050565b600060a082019050613f896000830188612fdb565b613f966020830187612fdb565b613fa36040830186612700565b613fb06060830185612700565b8181036080830152613fc28184613cae565b90509695505050505050565b7f455243313135353a206275726e20616d6f756e74206578636565647320746f7460008201527f616c537570706c79000000000000000000000000000000000000000000000000602082015250565b600061402a6028836129ac565b915061403582613fce565b604082019050919050565b600060208201905081810360008301526140598161401d565b905091905056fea26469706673582212203e5ee2c0d6eb859db1438be5b970868f6710374cc7e62c50ff88d440ffef6d2064736f6c63430008120033