0x6040608081526004908136101561001f575b5050361561001d575f80fd5b005b5f90813560e01c9283632011e90b1461007b57505050806337458f64146100765780635469aec8146100715780636dbf2fa01461006c5763f909e56714610067575f80610011565b610c27565b610ba3565b610a7f565b6104fb565b60c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104cb578035906100b1826104cf565b602435926044356100c1816104cf565b60643593608435936100d2856104cf565b60a435946100df866104f1565b630d0e30db60805273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2958980846080348b5af150156103145773ffffffffffffffffffffffffffffffffffffffff938551987f70a0823100000000000000000000000000000000000000000000000000000000998a815260209a8b8280610179888a830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b03818b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2165afa9687156102f0578c928e986102f5575b508951809981938252816101e3898b830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b0392165afa9687156102f0578b809b9981806044819d998f96610237849f60a49f869f879f8d6103e58160019661022b966103e8958e926102c3575b50500302920202610ee3565b01983403891115610fd0565b519b8c917fa9059cbb0000000000000000000000000000000000000000000000000000000083528201958b8752602483019889525af1507f022c0d9f00000000000000000000000000000000000000000000000000000000885252526044840152608060648401528160848401525af1156102c0575b806102b55750f35b815f8192415af15080f35b50fd5b6102e29250803d106102e9575b6102da8183610e83565b810190610ec9565b5f8061021f565b503d6102d0565b610ed8565b61030d919850833d85116102e9576102da8183610e83565b968e6101b0565b73ffffffffffffffffffffffffffffffffffffffff938551957f70a082310000000000000000000000000000000000000000000000000000000096878152602097888280610381888a830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b03818b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2165afa9687156102f05789928e986104ac575b508351809981938252816103eb898b830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b0392165afa9687156102f0578a8c9b998c806044819d998f9697610435849f60a49f869f879f806103e58a9f9260019661022b966103e8958e926102c35750500302920202610ee3565b519b8c917fa9059cbb0000000000000000000000000000000000000000000000000000000083528201958b8752602483019889525af1507f022c0d9f00000000000000000000000000000000000000000000000000000000885252526044840152608060648401528160848401525af16102ad5750fd5b6104c4919850833d85116102e9576102da8183610e83565b968e6103b8565b8280fd5b73ffffffffffffffffffffffffffffffffffffffff8116036104ed57565b5f80fd5b801515036104ed57565b60c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ed576004803590610533826104cf565b606480359160443590608435602461054a826104cf565b60a43592610557846104f1565b7f000000000000000000000000e0ae57b5ab9046842bf699dc4505ee5de5ea22419773ffffffffffffffffffffffffffffffffffffffff9761059c898b163314610df1565b604080517f70a082310000000000000000000000000000000000000000000000000000000080825230868301908152929b90986020958083169487908590819083010381885afa9182156102f057898f8f8d958c985f91610a31575b5083350204921561084457935f809481946044946060999851947fa9059cbb0000000000000000000000000000000000000000000000000000000086528b8601528401525af1508c51928380927f0902f1ac0000000000000000000000000000000000000000000000000000000082528b165afa9384156102f0575f918295610811575b50806dffffffffffffffffffffffffffff998d51948591825281806106c08d8c830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b03915afa9081156102f0575f809a9960808f8f9461072c859e9860a498879b9a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9e899c610735968b946107ee575b505081168203906103e5926103e884840291020193160202610ee3565b998a1015610f6b565b51937f022c0d9f000000000000000000000000000000000000000000000000000000008552888b860152838c8601523060448601528401528160848401525af15001809751917f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528201528273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af1156104ed575f93849384938385946107d5575b50505047905af1005b84809392819392829302043401415af1505f80806107cc565b83929450908161080992903d106102e9576102da8183610e83565b92905f61070f565b909450610835915060603d811161083d575b61082d8183610e83565b810190610f35565b50935f61067c565b503d610823565b955f8094819460449460609998859e9b51957fa9059cbb0000000000000000000000000000000000000000000000000000000087528601528401525af1508c51958680927f0902f1ac0000000000000000000000000000000000000000000000000000000082528b165afa9081156102f0575f948592610a0d575b50806dffffffffffffffffffffffffffff998d51948591825281806109038d8c830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b03915afa9081156102f0575f809a9960808f8f9461072c859e9860a498879b9a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9e899c61096e968b946107ee57505081168203906103e5926103e884840291020193160202610ee3565b51937f022c0d9f000000000000000000000000000000000000000000000000000000008552838b860152888c8601523060448601528401528160848401525af15001809751917f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528201528273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af1156104ed575f93849384938385946107d55750505047905af1005b909450610a28915060603d811161083d5761082d8183610e83565b5090935f6108bf565b610a4891508c8d3d106102e9576102da8183610e83565b5f6105f8565b9181601f840112156104ed5782359167ffffffffffffffff83116104ed576020808501948460051b0101116104ed57565b346104ed5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ed5767ffffffffffffffff6004358181116104ed57610acf903690600401610a4e565b916024358181116104ed57610ae8903690600401610a4e565b9390916044359081116104ed57610b03903690600401610a4e565b929073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000e0ae57b5ab9046842bf699dc4505ee5de5ea22411633036104ed575f5b838110610b4d57005b805f80610b5d600194888b61112d565b35610b67816104cf565b610b72848c8961112d565b35610b7e858b89611142565b9190610b8f60405180948193611035565b03925af150610b9c611042565b5001610b44565b346104ed5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ed57600435610bde816104cf565b6044359067ffffffffffffffff908183116104ed57366023840112156104ed5782600401359182116104ed5736602483850101116104ed57602461001d9301906024359061109f565b346104ed576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ed57600435610c63816104cf565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff918216927f000000000000000000000000e0ae57b5ab9046842bf699dc4505ee5de5ea2241918181602481885afa9081156102f057610d669183915f91610dd4575b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9687915f6040518096819582947fa9059cbb000000000000000000000000000000000000000000000000000000008452018a600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03925af180156102f057610da6575b505047610d7e57005b5f9283928392839247019183918315610d9c575b1690f1156102f057005b6108fc9250610d92565b81610dc592903d10610dcd575b610dbd8183610e83565b8101906111a2565b505f80610d75565b503d610db3565b610deb9150823d84116102e9576102da8183610e83565b5f610ce6565b15610df857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f44455600000000000000000000000000000000000000000000000000000000006044820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ec457604052565b610e56565b908160209103126104ed575190565b6040513d5f823e3d90fd5b8115610eed570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b51906dffffffffffffffffffffffffffff821682036104ed57565b908160609103126104ed57610f4981610f1a565b916040610f5860208401610f1a565b92015163ffffffff811681036104ed5790565b15610f7257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f414d542d4f55542d4d494e0000000000000000000000000000000000000000006044820152fd5b15610fd757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f414d542d494e2d4d4158000000000000000000000000000000000000000000006044820152fd5b908092918237015f815290565b3d1561109a573d9067ffffffffffffffff8211610ec4576040519161108f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610e83565b82523d5f602084013e565b606090565b909273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000e0ae57b5ab9046842bf699dc4505ee5de5ea22411633036104ed575f938493826040519384928337810185815203925af1506110fd611042565b50565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b919081101561113d5760051b0190565b611100565b919081101561113d5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156104ed57019081359167ffffffffffffffff83116104ed5760200182360381136104ed579190565b908160209103126104ed57516111b7816104f1565b9056fea26469706673582212209285e95d3cc7428bd509b1f723b131c39fb854999ebc6274b9aa54348e3f958264736f6c63430008150033
0x6101408060405273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4860805273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28060a0523360c052737a250d5630b4cf539739df2c5dacb4c659f2488d60e05261010091735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f835261012091338352803b1561012057816004815f93630d0e30db60e41b825234905af18015610115576100ea575b50604051906111f09283610125843960805183505060a05183818161017e0152610386015260c05183610caa015260e051835050518250505181818161055901528181610b1c01526110b80152f35b6001600160401b038111610101576040525f61009b565b634e487b7160e01b5f52604160045260245ffd5b6040513d5f823e3d90fd5b5f80fdfe6040608081526004908136101561001f575b5050361561001d575f80fd5b005b5f90813560e01c9283632011e90b1461007b57505050806337458f64146100765780635469aec8146100715780636dbf2fa01461006c5763f909e56714610067575f80610011565b610c27565b610ba3565b610a7f565b6104fb565b60c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104cb578035906100b1826104cf565b602435926044356100c1816104cf565b60643593608435936100d2856104cf565b60a435946100df866104f1565b630d0e30db60805273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2958980846080348b5af150156103145773ffffffffffffffffffffffffffffffffffffffff938551987f70a0823100000000000000000000000000000000000000000000000000000000998a815260209a8b8280610179888a830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b03818b7f0000000000000000000000000000000000000000000000000000000000000000165afa9687156102f0578c928e986102f5575b508951809981938252816101e3898b830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b0392165afa9687156102f0578b809b9981806044819d998f96610237849f60a49f869f879f8d6103e58160019661022b966103e8958e926102c3575b50500302920202610ee3565b01983403891115610fd0565b519b8c917fa9059cbb0000000000000000000000000000000000000000000000000000000083528201958b8752602483019889525af1507f022c0d9f00000000000000000000000000000000000000000000000000000000885252526044840152608060648401528160848401525af1156102c0575b806102b55750f35b815f8192415af15080f35b50fd5b6102e29250803d106102e9575b6102da8183610e83565b810190610ec9565b5f8061021f565b503d6102d0565b610ed8565b61030d919850833d85116102e9576102da8183610e83565b968e6101b0565b73ffffffffffffffffffffffffffffffffffffffff938551957f70a082310000000000000000000000000000000000000000000000000000000096878152602097888280610381888a830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b03818b7f0000000000000000000000000000000000000000000000000000000000000000165afa9687156102f05789928e986104ac575b508351809981938252816103eb898b830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b0392165afa9687156102f0578a8c9b998c806044819d998f9697610435849f60a49f869f879f806103e58a9f9260019661022b966103e8958e926102c35750500302920202610ee3565b519b8c917fa9059cbb0000000000000000000000000000000000000000000000000000000083528201958b8752602483019889525af1507f022c0d9f00000000000000000000000000000000000000000000000000000000885252526044840152608060648401528160848401525af16102ad5750fd5b6104c4919850833d85116102e9576102da8183610e83565b968e6103b8565b8280fd5b73ffffffffffffffffffffffffffffffffffffffff8116036104ed57565b5f80fd5b801515036104ed57565b60c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ed576004803590610533826104cf565b606480359160443590608435602461054a826104cf565b60a43592610557846104f1565b7f00000000000000000000000000000000000000000000000000000000000000009773ffffffffffffffffffffffffffffffffffffffff9761059c898b163314610df1565b604080517f70a082310000000000000000000000000000000000000000000000000000000080825230868301908152929b90986020958083169487908590819083010381885afa9182156102f057898f8f8d958c985f91610a31575b5083350204921561084457935f809481946044946060999851947fa9059cbb0000000000000000000000000000000000000000000000000000000086528b8601528401525af1508c51928380927f0902f1ac0000000000000000000000000000000000000000000000000000000082528b165afa9384156102f0575f918295610811575b50806dffffffffffffffffffffffffffff998d51948591825281806106c08d8c830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b03915afa9081156102f0575f809a9960808f8f9461072c859e9860a498879b9a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9e899c610735968b946107ee575b505081168203906103e5926103e884840291020193160202610ee3565b998a1015610f6b565b51937f022c0d9f000000000000000000000000000000000000000000000000000000008552888b860152838c8601523060448601528401528160848401525af15001809751917f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528201528273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af1156104ed575f93849384938385946107d5575b50505047905af1005b84809392819392829302043401415af1505f80806107cc565b83929450908161080992903d106102e9576102da8183610e83565b92905f61070f565b909450610835915060603d811161083d575b61082d8183610e83565b810190610f35565b50935f61067c565b503d610823565b955f8094819460449460609998859e9b51957fa9059cbb0000000000000000000000000000000000000000000000000000000087528601528401525af1508c51958680927f0902f1ac0000000000000000000000000000000000000000000000000000000082528b165afa9081156102f0575f948592610a0d575b50806dffffffffffffffffffffffffffff998d51948591825281806109038d8c830191909173ffffffffffffffffffffffffffffffffffffffff6020820193169052565b03915afa9081156102f0575f809a9960808f8f9461072c859e9860a498879b9a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9e899c61096e968b946107ee57505081168203906103e5926103e884840291020193160202610ee3565b51937f022c0d9f000000000000000000000000000000000000000000000000000000008552838b860152888c8601523060448601528401528160848401525af15001809751917f2e1a7d4d0000000000000000000000000000000000000000000000000000000083528201528273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af1156104ed575f93849384938385946107d55750505047905af1005b909450610a28915060603d811161083d5761082d8183610e83565b5090935f6108bf565b610a4891508c8d3d106102e9576102da8183610e83565b5f6105f8565b9181601f840112156104ed5782359167ffffffffffffffff83116104ed576020808501948460051b0101116104ed57565b346104ed5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ed5767ffffffffffffffff6004358181116104ed57610acf903690600401610a4e565b916024358181116104ed57610ae8903690600401610a4e565b9390916044359081116104ed57610b03903690600401610a4e565b929073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036104ed575f5b838110610b4d57005b805f80610b5d600194888b61112d565b35610b67816104cf565b610b72848c8961112d565b35610b7e858b89611142565b9190610b8f60405180948193611035565b03925af150610b9c611042565b5001610b44565b346104ed5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ed57600435610bde816104cf565b6044359067ffffffffffffffff908183116104ed57366023840112156104ed5782600401359182116104ed5736602483850101116104ed57602461001d9301906024359061109f565b346104ed576020807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126104ed57600435610c63816104cf565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff918216927f0000000000000000000000000000000000000000000000000000000000000000918181602481885afa9081156102f057610d669183915f91610dd4575b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9687915f6040518096819582947fa9059cbb000000000000000000000000000000000000000000000000000000008452018a600484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b03925af180156102f057610da6575b505047610d7e57005b5f9283928392839247019183918315610d9c575b1690f1156102f057005b6108fc9250610d92565b81610dc592903d10610dcd575b610dbd8183610e83565b8101906111a2565b505f80610d75565b503d610db3565b610deb9150823d84116102e9576102da8183610e83565b5f610ce6565b15610df857565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f44455600000000000000000000000000000000000000000000000000000000006044820152fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ec457604052565b610e56565b908160209103126104ed575190565b6040513d5f823e3d90fd5b8115610eed570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b51906dffffffffffffffffffffffffffff821682036104ed57565b908160609103126104ed57610f4981610f1a565b916040610f5860208401610f1a565b92015163ffffffff811681036104ed5790565b15610f7257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f414d542d4f55542d4d494e0000000000000000000000000000000000000000006044820152fd5b15610fd757565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f414d542d494e2d4d4158000000000000000000000000000000000000000000006044820152fd5b908092918237015f815290565b3d1561109a573d9067ffffffffffffffff8211610ec4576040519161108f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184610e83565b82523d5f602084013e565b606090565b909273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036104ed575f938493826040519384928337810185815203925af1506110fd611042565b50565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b919081101561113d5760051b0190565b611100565b919081101561113d5760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156104ed57019081359167ffffffffffffffff83116104ed5760200182360381136104ed579190565b908160209103126104ed57516111b7816104f1565b9056fea26469706673582212209285e95d3cc7428bd509b1f723b131c39fb854999ebc6274b9aa54348e3f958264736f6c63430008150033