From 203dfca150693948b0f77ee5f53f53b7a47bf5c8 Mon Sep 17 00:00:00 2001 From: Stepan Snigirev Date: Fri, 14 Oct 2022 21:30:18 +0200 Subject: [PATCH] taproot: fix descriptor.owns, psbtview.sign_with and tests --- src/embit/descriptor/descriptor.py | 11 ++++++++ src/embit/psbtview.py | 4 +-- tests/tests/test_bech32.py | 2 +- tests/tests/test_ecc.py | 2 +- tests/tests/test_psetview.py | 2 +- tests/tests/test_taproot.py | 40 +++++++++++++++++++++++++++++- tests/tests/test_threading.py | 2 +- 7 files changed, 56 insertions(+), 7 deletions(-) diff --git a/src/embit/descriptor/descriptor.py b/src/embit/descriptor/descriptor.py index 712150f..31245fe 100644 --- a/src/embit/descriptor/descriptor.py +++ b/src/embit/descriptor/descriptor.py @@ -188,6 +188,17 @@ def owns(self, psbt_scope): sc = self.derive(idx, branch_index=branch_idx).script_pubkey() # if derivation is found but scriptpubkey doesn't match - fail return (sc == psbt_scope.script_pubkey) + for pub, (leafs, der) in psbt_scope.taproot_bip32_derivations.items(): + # check of the fingerprints + for k in self.keys: + if not k.is_extended: + continue + res = k.check_derivation(der) + if res: + idx, branch_idx = res + sc = self.derive(idx, branch_index=branch_idx).script_pubkey() + # if derivation is found but scriptpubkey doesn't match - fail + return (sc == psbt_scope.script_pubkey) return False def check_derivation(self, derivation_path): diff --git a/src/embit/psbtview.py b/src/embit/psbtview.py index 6fa9adc..7152a11 100644 --- a/src/embit/psbtview.py +++ b/src/embit/psbtview.py @@ -600,10 +600,10 @@ def sign_input(self, i, root, sig_stream, sighash=SIGHASH.DEFAULT, extra_scope_d else: bip32_derivations = [] for pub in inp.taproot_bip32_derivations: - num_leaf_hashes, leaf_hashes, derivation = inp.taproot_bip32_derivations[pub] + leaf_hashes, derivation = inp.taproot_bip32_derivations[pub] if derivation.fingerprint == fingerprint: bip32_derivations.append((pub, derivation)) - + # "Legacy" support for workaround when BIP-371 Taproot psbt fields aren't available for pub in inp.bip32_derivations: derivation = inp.bip32_derivations[pub] diff --git a/tests/tests/test_bech32.py b/tests/tests/test_bech32.py index 2a180ad..6e80ea4 100644 --- a/tests/tests/test_bech32.py +++ b/tests/tests/test_bech32.py @@ -100,7 +100,7 @@ def segwit_scriptpubkey(witver, witprog): ] -class TestSegwitAddress(TestCase): +class Bech32Test(TestCase): """Unit test class for segwit addressess.""" def test_valid_checksum(self): diff --git a/tests/tests/test_ecc.py b/tests/tests/test_ecc.py index 483619f..1b8ab82 100644 --- a/tests/tests/test_ecc.py +++ b/tests/tests/test_ecc.py @@ -4,7 +4,7 @@ from io import BytesIO -class SECPTest(TestCase): +class ECCTest(TestCase): def test_identity(self): """ 1 * G """ answer = b"0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8" diff --git a/tests/tests/test_psetview.py b/tests/tests/test_psetview.py index cce34d6..daf9654 100644 --- a/tests/tests/test_psetview.py +++ b/tests/tests/test_psetview.py @@ -14,7 +14,7 @@ "cHNldP8BAgQCAAAAAQMEAAAAAAEEAQQBBQEDAfsEAgAAAAr8B3NwZWN0ZXIAIKnr4eVoXB/V+cn/TCl6uGE9dgaZYY/TTUPgdD3AEXYbAAEA/VQBAgAAAAABPHBrGIKoSlT83Uq6O6Fx3JzrnxNEOvsC7mRfis3IUAMAAAAAAP3///8DCvIDL9A6i02KKB+I2QiLHDTDFlnagng+A7/bE1ldLWoJCR6I03PTaTgPsoJuPewCuQHHIJ70vSmbJKl82y4KBpM5AhD7dBpp2qb+hszPVrJNCwPgUQVi9dC4wHLhehDmKmyZFgAUdXMiB8Fh4/ENJNED1Sl18cKENaMLVf3E2qQnHKDqr5M9lN5EJ8ky1fpc1H6l/sccouXjYtIIz3YP3jWWibX24cwTQSrqqfecjxDScnndRtZNe2I6L5wDdDgaksE3KzMqXGOoRhKuK2T19N6gq9L1busVoTgcHewWABRkqAZlg9iszYecwIX9ZMDCLSiX1AEYaWzyPjIJpuhEedAfE/55yQE1auU5B8yILP/T4mQBIwEAAAAAAAAA+QAAhwAAAAEBegtV/cTapCccoOqvkz2U3kQnyTLV+lzUfqX+xxyi5eNi0gjPdg/eNZaJtfbhzBNBKuqp95yPENJyed1G1k17YjovnAN0OBqSwTcrMypcY6hGEq4rZPX03qCr0vVu6xWhOBwd7BYAFGSoBmWD2KzNh5zAhf1kwMItKJfUIgYCWHlhL9nICaUkEhZSyimSpHtppfbDiNQBQ5dr40YXC5sYAgjLd1QAAIABAACAAAAAgAAAAAAAAAAAAQ4g2mW0U7naKU+yGeuc+XwxcEqJLEAdADWkUpghKGhH7b4BDwQBAAAAARAE/f///wv8CGVsZW1lbnRzAAiAlpgAAAAAAAv8CGVsZW1lbnRzASA9MugdeGH/cfiZLEke/muGsM7mdMUfWmWujvi0VL8KYgv8CGVsZW1lbnRzAiAYaWzyPjIJpuhEedAfE/55yQE1auU5B8yILP/T4mQBIwv8CGVsZW1lbnRzAyCqW975iRYh9z4jl3ekXMTN2Kw8YAGfGTBA4QF0YNea8wf8BHBzZXQO/U4QYDMAAAAAAAAAAX1OVgBqvAirc5IUF4mgTljiX74YR0/sdFyrcIEWxey1cF28KDFwo/Tz0+CavJfJ9KjFo3+CBA1ePDAo+bcxsVarhtr+JPK2wLk9v08KkhyW4pDLSSUOm1o9SdbxJMWN5zIRkEIEwGKspfExtHFXH1U4RFdO0y5HIAIJ0fzSiZydfkmF2+Ifnifp5hiayYap6TmQqyV3axhTkWen0f0wfpfkdNRIff3E+TA2T+HBfJJLD/zoyTh+p//h1GrDRDtaf7Zy58gBpju7ptPsxyvP4Lf/wjMYhjQ7z5uI6I6fxB9Pm4FK+lmOqUFPEpUANUKj8SO+t3jHpj9K2TK1ijqPqI5DGXj2n62ilzDK+kQ8wWSzxcQ4/dvgjsLnZeMMbvLQnMjhOxQyGRtBflAbDMPhVsRonYsoKEp7JeDCWX3Qb4n6yvJhVPGPBqIgd3aA3Qgrjtdp16kFEOeqaQPEImxkeoyeGZVRATbExzDvLeA/IpZxR6Ubn4pdnxfE06QlJRwu7v4QXAjljyhY8ldyVgmUZexZuCmxQrqXCQ9/fKwCq1uJdsGaBbnZ6KaDIJGiNJmc0NpYtOXmDDaRe+B5LtNN6VvwXps4xnmxSnBHk59nzucBb1QTucz8spef43tTsxJoWs3iQFO6o4gwe82HObFhhpjXWyu+OHYwZK07mz3RGWHDjHvh6vjGfuCPW4psDrmfuTCsjtpDPjZ3OwSK6hNgA2RQeRUWqJi2IPiw1+THUtm8lMq1ZkPmi744dHrma99TiGAQes+DuRM5Z6tsXMe9Mt3rDDr32q29OM6r8BnR55THuH1vCjxlTZzdlN2+/YoCrFVmB9ULhOtUySOxVa7Z9jaC57dhMC5Sql8bWiFVJZHTC/uwFiMSR+rV29RUUnceunxPxMiDTFySH/rbQZ1WMZm7PaJpZnmUPgNK8o/0LxxGQH5HGCbCnQExg4l345NpBydMOCynQ3FJK8AscMIkAGkD7WMelM5RVPn50pfzxNkkI6UZJzgeY6qN7i3MG202rL/lFn7FyN+NHQ62myK+HvMB4Gp6S62CdseYujC0KlN6chPT9+07b65b5ncYnSupYeFw5HId2lIlzeNlW/cspuPzy6UR4yqbeXm6NyrC77Tgw1JEaYLh4IvvZOWMOkorPkUUk4zv+tvlY9vC9Y7zFz4igiaoGi3afCBbPB++3AricJqu+fvRA+eiWbKQHoudcx7z2a8YjZ5AbdA1GQOBtvliPW1++cULR828Drj4rmiWyP9yf5023u4uoKWp6IxrSx0uhcwWJ/egXVSCp5GV/xkB1Qw0JlXDSi6rXvdWSVNgGZeWLu6VF1wL0poYCp6N/1Lxxoc2mD6CuFujkFCLJmfGYk43B8MihcSX5VBEwrDSfxq2VJ1sh5t1Qq+1k0I1zm76rfy07kjp774IfdBHTLcH8m1+G5b1ZH8Lz09bvaz1zSLK7jgu2quTSOD+0fkTg6yPH5Up6mDi2kUp+8WX9exvxdqJ+xZ9m8/kkDzrT1BPQZzheD1zyGAvdiYl2bW74sJWPDE5As3icu+HJom4dVMY0gOAzQ/fF35MI+pRFrRvXPMvg+HtGtggpxdvMjVry8jdhMuic0UNDQ9pD2PHiQ1lSMj9ut75yXFimoRduIRReTH9YgCiKssTwyMSN+sQ8sZvkwGLAzTrHQOt+SQOwkUtZtSaqoSeUwzftfo5dgfMDsd+kn/KhKHiHzsvVSozctgZ3roWcf6EuOxrzJNu9yt89MaiDddfrho487hhTcW1QbMvtn7+cK8Lk+0L/v9y248CPpPOzrtUegyIhvw81zD0k6Xrzf2IOvhtnDQtarYZin9CwYhQ3N87wjh7ep44WZ3kZ8fboRszky0+Dxq0W4FN7KckRBs1i2cgr5w7osc2bHI6pW+5wejpJXpbfNAnXwxqj07WBbw4xAnYpUwAIsVV5mSODQ3KO4Zix58Rt7jNb1Mn0qF/ngxYRPqxKA+SBlIG/Q029sYY7jUrbJGVRMce99m3IG94igJVDiAl3AArVQ62Z5QL52N9gSGEd8SwVODdcjGivet/Iu3pIoApXOtKXDWGnq7D7fH9WKchc/aMfG6SYO+BlqSNeQjBF/8owkqgL9XwRPaSoTPh05xVttvgRXMZ9vX1+VgRTiuX4gg4v5mAU4SNpmmLcM5JoknqPWDUI19+fsTIBamAu/rGcdhSmjBCCe/u0xMoke0Uzq+z0qU7DV/SZ9UlZ79F3bNRaipK2eJTIOl+RCRLcAl860odL8RQ+g2k6O25iblpsOf7E7lLcWcAmYe1V/cQJCo43aqzxr5E/OPD1sK5QEmcfv7pLenz6qRWHu/Gxvyt9z7aVB4W1zz97amMq2oaixlpnZ8x+J73+sHQubdszUu9xhDWRQUwGQ8mKNNugxvIRae8ipTQhiRqwunEspTmVwDLTEanW0zxcXP9qskxHSeTz5dauazovuChV8ej1Ayvv3+v1c0k9LIsxmY4cuRzBlie5gnUE8/PddpNt3uHMR1bEcAabn9ArhQWLS/HoCxj7ict7KmZh9ba7+PctkOp5rf3552AIAeMcymHqZVFPAAAacxXqYYbEtSXAqKWZp4CYBjuz88k3pIN/4JDht5io/5/tyXqzDaxMoE3YoZ+0SziqtqOHr45FohpC77aTTV/eVYWYBVLkjxlYeO1f7q9QqpkQsht1bmxrN1/PWptuK1VTTM+RxYMEv57ptEkr16Z4B5iECVbHsUk/U4nylOmdr3ecTEPKbxX+DawLcdRGYw/xtB37kDdkvP9GX2FZRs0wp228Ob82IuSg0SBw24NXbfmr1vCAI87Ptgi9ZFOXN1sVs12nmv5ea8Kzi2K+V/1dOs/3z57kUhHvIBKOAFZoID9xQHXP27DjakYH4QDd1CmSJT3tjogdjm0huEsfpJCa7oSdqsSuTv22akNN5ldiMkFmDokuqyEQFOiSZW3zPXDWc+ANaGq04lyCm3B2VmobiyAT4ABpetq0TLg1ogOjf7gMNzfHmZc0DGxAWtrK1eZoh0IrUbZ3laO024Wq6hpPd6VuGtAcKr3JNwoS5ZSIPuFAPy26g+rsz0fKkyjvHfim5HIzRQ6hZQ07N62EnKWAucbJHgAXuAA8vnc2I1RHtWn2RhxjQfGqqCP1ifVFIMwE5DRiTysQKGDCsh3EKp298lqskn1LeWPQk0NDQsuaae9n45CYA3NsDdxY7RQbQQR9ErcL/BPGgwtN9R0FN6oKmFZnmQtWNplPCLdskvf4LTFSy9AZTnSPmVxlaU6dNtEQWb62M7LtlP3+WBWAXlGu1wzpiD9rhETlfZ33miBf1ZuwLt6cvx4wTnI4aTPMbzgr1WGoh8nMvGAP5JlcDVLXUN9V0HTywkB68iZqTxLUBHb4XhAQnfMLieMYZBIwnOtvifdbSCw39Jc8H8u3qV5wEjUdFfckbTCiQeGUU732PRbikRtj29jbgbjZ746DEI3cmLbO8QdVtwc5dffpIhAkTrpIRnFz9hfNjv1JtmAm+vojWVFvH+s1H5K4+k2VKTi/IH4ufFenFLWvd2vJ4j19wSyCqHLK3DgK7Cdc6VNHKlhqmwR+eDqUJizqURLvs/yUSlRhog2VjkEiQy+z+3+HZpa8759WAxu4aUzAKeafyN0b0QXfFYA3JIX/Y0kBLlgQpuB4ZYWZht7y+F2HyE21LHGWTcQ3YTkcqsqChJxHomQBG98KVQAqwxTpyOB8Dop8wpfVnushgfQ+8YVZ3CXxkIm5pkH1JirXzWobVMdmyqqfZqqy0P3/lDHNFTy92jjjwKlDwwB3u5diDCSwVIKJDiTkDSF4biFjGo/bIhJ9oOMuuNStLetP16hSIYfEq2HX6rEc9DqDBySvekPU+caZ4Qi9E3EF9WPey/M0PhiWH/luRd5+2VrkOB8C/owUQaFLRsGUOAYDnVitgNcEX1DvTRvFE3YL3uS4Z853qXz8aQQyoqEfKj2QwVaJieJOgjuKa4qiG87RrS8nK21viyvA4fd3UEdiaemRzBM8tkStabQ/aqukyQCO44rnMIsfUz7dvonsjGjYEntuOVZjiopNACruI3qX776Nftay42cmCjzlEaGwO4USSK6KqjLjG00GSHEmIV8IqVeZCq3fPf1km2RAwsQpyRi2bujV9FWztDKzfEiaMMck5A89H+Lmdspq4KdYXU58hiWnTIRblYleqE3kx6PGQ18x0c/PblRXqy0paQDVYK9tAS9sBkuUiCJOoDlOcsMQi1gc3xUwoms0jqSseJQZrSjoWooCN6MVbNkYzFC1fBNRlKWrCO2jzg8GYPdkWENSqCjk6dntzov3gg+XyTvryZtKwZKQ5o8Ji12e4ZX0+3XCUvkM1qzHG033w+oCs17Xlh6k83snOF+yAYkp3hdN5ndCcV4+lVJKT2e9GACC13x38gKRfy08fEtoxvp1X4YHf+hvRtxOmkJ+z9HzNjd/JAX6090kn1gOaGcKGgTl10hYH0o+MmGylbhsVWEIvguB4Xvh53Y+M6Lfnb6v3+pfUEy8Hjxe0oNg+yqAhVisY1KFt+VbLYYyF6Ezs1uDXrcUBeZInRGRJzGROR8l+Mm8IBjoWJJuOC3PTUL8zfaYeJ0w7dNTckSq84iuXLaSh8JrNjnuQBk1y0qzDgtuEHHHMVdYNLlxiGl3DvWB7TkkdLNodyQ0BbsqASYe3ImXoVoY1gzMACs/mqsB9NQYOsg8vSMFo3un7gTB+QEa6gDvk5ZRK2sEbTVGjZybOfx7suvE112d761qSkDbsURksBRrtXxoOizcVq+0ow9UWDJeU18SxrtdcwXmRvCo9Cv7h6SwXlB2Di9M5ZGJMWr+2T2hYsM94470xcd8p5ETrbGTimsPqWNg/raPpSR3PXmFQBAHCJl6uH4fjS66fbCnUfbz+d3SOCJy7r1XjELrXfM2BuyV7nrR4NbuffGwysqmfK2o1eXENgpwHG+zu731PbRJpRaPqRjhLl3kz8mKfccXiCYvU3AsdZXLU6mRRRtx4Cm7geTjOmxIBULTqFqdAxoGyEzAu5zOyi5lUnUT+AAxoRl3OQZiRgElRj9eP7Rxzoggd/zw6An9YpywSgMvGmOY8DHGqJ0wZELu2+WWYPVWnPDreNUEcaLLq2jPz9LU/vi7OL6zepiYhtuGBsD44upwTsMgQCn5Mz/mrmSulKvbaMOkFii7HgO5V79PwuyQCDi/7GFrQbqa59B4dDQEpHFPwFE2vaPDplG8/rqDz86EKQrMHPpbu2jkYJ1szNGTBi7ct1+mY4gWIhZ1rVeL4ntsYtzu3Rt2HjC2+E7N3pL/uPuyC2DPP+b1BvYtEF1M1u4qn9UjSP4z+cWlZH723oTKf9eku4tAZlIo2g5EzBWmuZH65z+izhghCC0ISuchLkI/fdm9V2u/7QCtNa6UOuBSeDOabdyB+8rP7b+5CqmlHTy67SgaL8Wf/3ru1Fm7kZfVLkb9G7U68MxM0szYKTP8zac5pubxxsTW4D2w4ZYDnNN/9XythfftsBD8/5wZz6t7/fvl1abqugF8iTTuzX0YwABAP1UAQIAAAAAAXn3f/X1LQzf5+vmJRF+jcl8dyC4Z7MRnhEhORpxiT+CAQAAAAD9////AwtEHvdx7mb7EXVHNTkICtrFhq1jt+1F5miYO//x3fHnyAn2NNI7dajiUCdX1EPlApgAOKUxCkcmiaGlVqfrLXFzigPqHaVKe2kjxlmrh8gPCoKr/EE1F/sm5A/itzoQdWk69hYAFGSoBmWD2KzNh5zAhf1kwMItKJfUCkFcKwMjQSjCr5kiK/0u95mJEa8CoKiyQSpt1i1InROdCTTulUQr38ZVQOa486mzT0KiOEoka6l6eSnON+gvxdf5Aza/pDUusppwPnPRBnoHzcKlr/NI1fIPBuSkV8kA7ZrhFgAUJxk6115X4tME23rpjLUYWns8angBGGls8j4yCaboRHnQHxP+eckBNWrlOQfMiCz/0+JkASMBAAAAAAAAAPkAAIcAAAABAXoLRB73ce5m+xF1RzU5CAraxYatY7ftReZomDv/8d3x58gJ9jTSO3Wo4lAnV9RD5QKYADilMQpHJomhpVan6y1xc4oD6h2lSntpI8ZZq4fIDwqCq/xBNRf7JuQP4rc6EHVpOvYWABRkqAZlg9iszYecwIX9ZMDCLSiX1CIGAlh5YS/ZyAmlJBIWUsopkqR7aaX2w4jUAUOXa+NGFwubGAIIy3dUAACAAQAAgAAAAIAAAAAAAAAAAAEOIFXgLOK2mG7fDMvskN9MMdwkfoIHvyT3R7pkH+89e3i6AQ8EAAAAAAEQBP3///8L/AhlbGVtZW50cwAIgJaYAAAAAAAL/AhlbGVtZW50cwEgQztjSQUwC+l7JAuLkIAr9+3mX4uxqhJLyz8uaydagT4L/AhlbGVtZW50cwIgGGls8j4yCaboRHnQHxP+eckBNWrlOQfMiCz/0+JkASML/AhlbGVtZW50cwMgiE8v/Jyo5L6oyXmHT5kXgGHMRcd6ioFY3b4FUQtgbS4H/ARwc2V0Dv1OEGAzAAAAAAAAAAESnssBKWlfCORBjVcaj4nZA8ysBno0vU7IzeDSW4Ns2Ms8gj4b1nXDo8kGEt7kK/pT4EoMTuN/6Z9YtUUCKXY3HyiL0Hco8+uMp5V8B1sdY1ddBkJHKFbJErGk/u/rVvFU7sbdEjDMat76Co66ujQNK5+5fbAwjd9lIy3nyAy3GVD2mp7rvSdVpEx9yAi78VBB2B0IJPJ3qYMFkc9PepZePqOzd5qyxl2BOB1hwS4xyxKw8lHFfoNdJ2rXIWH8/Yj4P9ZGa4thLPJjNJGoJDWxZVuf/1kmOA5RKH9AGCUeIjEEI879TwjXYxNeG901PJV5HjuXNu7yL5rZ/jmJ37qSt1icsR7zPlIzSqdDy6EG54+PpAl87P/fze6K9qzKKOarzYBZKMGKayu+quawytXAZAQgdcd6/SJfG9kxmP5XAYZMNbYrKCZKVE5uqIzQph606LDLxdrHlMfuXpAZSFAbzw+KMPcvyXqQZINORO/GNiLK7XxDrWs/t2FBvfCZj35WIKA3OtiXGgd4ST2BDy4fjXw0CN8GNh7a/Ob3za6AR6TGKDsPHSP694Q7jsD2SmTd+2/3LBrWYzkme2IeRX9ptyqi15qNMo6fOgZcgbDDr+vPR4GJ5PQLA+ZO3Ah6z8ykiS8PY/ic2tHLDPXPqogur3y+TpJdndftolz7DJVsGCbZxaxyow6VNAaAygXbOplqiCegeTsN0L02xEyBelZV/9MJ9k0VNkwq4+iVeIzNoH4kjDRMxvyS2Gg4/wetL/bA0ds2qPQQ4BfQSJcZgVYyBdgIpNwGF1If1SbUJOJYuPTuljYqx24wqzG9Uta7RD/vatHMchbHLvNtIxjfNx9wn5Wc2vsuM5GZiL774ezGsgGgwyTu/jzMvTTcM8lJE47bP8I7kyLhBvbidQBTbkrBVrGgKnvUteLJyULzHmnaZvaHKtpFLDMfVxQ9Nf28/St1g6wZ2yRTMFk3AgQ/3guOaC0ystPD3doUsI6ALEabsoDzWybWKJYzuSG/C2P5zCLiopRG6hGswI754Mg/8zYbCBpI4m0bNAG8X1S8v1wdq+EVB7ZN93WQl4RHMW/4GJhwjDSyqIgk+nmzTpY9vgeBYDVOis1w+U72eD/GvZJAnqZJDlXeTbHUloViqSysmwyHqiIIl+tru7i+p0UNL/WDngpWk2rC565eOemJ5inmRL5fS8cFrsqE8xIqCtfyhcCh6c3Nkg0gt8WU2QDANJjbPPNB9rXSz8AsOloIVLSzSe476+X1v9qCcwUcYCOFp+ueceZ5iy0FilrhGixW8Bm5i/7aQgTUeQvtHlNUSMW+0T8gq3pyCs0qCJptRJozcsdViqWg2R/F/163+lrJyZAGZPjzW2YXaGGTFkB1MwCmSW2j+cGeTALOsIQOusLtGrV4xr1bWIliFBhRcPFiC5THNwQt2OBpFawa/NYTB8BUcBcycsnjf5Rnzxb/LrwgwJWRRESO460yoWrhfXym4BRpu5wATJtj9Kpbud2/1mVj+YHVZrVJ06zkurLy69euZu9X5sHsWPj37EW0W3yPWlBIn/lr6C9OQ56B+c/jQMUUKM1UmdVGxW61SzhZsEqkgSKqngVOSlgcnWK4zvffJtoLPirmCoAXuXSY7P5pehAB6omKp8PL7QtEZAekVp024DLjd1W9NiEEsbZ/DD+66JsPsfjMnV0PSH10MsDVeN8bVD1wDfDxan0c3O3E3dhm+Z87q9dvhj3AgAu2JOha0obmG5kDpnHuOMUSb8QmKxVHl92s5twg5ZxPkmAQZ0gfAdNYyQC1C/9X3dJ1D+/HJrqIK/rnlIRjjebe9vjZ8a8jQ04Ct5JGtY0W8EDFt7aIMz/UKz5fCeQxWYnWDWTT2zJvxZ1H/fbGiVjIIzcucF4+aQjxy9mO98QbgY6jVxu2vaa835MhSvHVDFUww7cRgNyithvgBtAnVfLJREqaQEh8hs50riATrFpMYhbcP4zzaqTaRGTV5ad+3XdGemcP8AouoaFcMfcyk3GPzCRqYPiq/ynbu1pQZ3D+OkvNk1EDLWuo3IaEXIhcuXRO25S2r959VJsR/eMAfyRo+q9hSqCW9tYhbG6HuGM1cU6ySQLxHBp/cZREL5GOpu9DO6LFcfSNpMCtmSwau+d3H/UQ3DVRsaH2lB/kbbWrylhplXMHPZMlAGddDO2O1QnG6KIcHMKDQupvr5cluBot48aw2sMgvIvMZk0qxFbMv062z1UQ2biKKSaMbbArRn9jBM1Lr3h+WjVlXEZ5w0A+6FDFyFFrdo6loCYBOzcxZXmBfdb5GbA9k/UkQ9vP0YLYbwNIeWeKFzrHIuYTNVN+u+ZCBhQ/B0/J5ncrNFWLvnQFN72C4vj85BCPSJbTjtgytmJIf0vu1gltFuiTKiUGP472SXP55iybjOuCJ8HhB+BAJmV2ICnJJtamZ5+Pu02/CLbNl3izjH6Q7UuuyZ5c+tHx3jDpspaHa2oszlqB4iQbRwI7D5/egYw+RAJS79fGSAfeEPbht2VkcW+gDF0XnppbK39CgZJDrEQdlUMrb7/KGSO4iuayfC7nqnNWO8eao2FPAIMi4dYGIMuS3F7+jX9w0Tsh4SA8R+xbHCmeipDffErITC2UWyadyDG/p9cDKWZwyn571mDrKSy/ICQYFJgHqsa4A1wiqQdF7ywsUFkME3FbdMTYvA1rOQux+mbzhWpRxoWl2Juip2AbwCA9xrbuXPsJSEPyR9ziUK8qa3z4n2uh2FKRImKD7IWgZcTSn5GAgevwSrfF6gN+6DhGXLIXJ+5GE1W9rMaVXhUfLoiEt2qYUY4h2WVvs3ztFzC/8FBZmefVU/UERYFnN81AnkiycIf4KECLZv+PBGsPZXdEbQ5AdXZwsioiE0d1LjMJen1nuOVf0+GwxWLZ7fc3RekyM+h9Ekp5CBrb4yvCELg1GZP3kM/WJ/B0BtZFE7X4gizxnhND8jg++NOaOvVDRjz3RvlzZ0+JIvgzrWHZqZO6aEYefOqTOiCOAENjTH/FoVjNq5Pc+ZFVt6kGjhakmJbfXBehidP3AuUObqjNZ9QLwOW4wtwlQBoYmICHdQjQHsDAK6Lx4CXUw+7kroz64YsGmyqAlIEyLH3fBQ/x7GrpthJlsBu6aqF8Gf1m/RxvSBi/3kQQNYM1SaAhkX9kOiJOqVDzh3fI1XGs2tpuPCEMFCZF8/m96jASRS0SC2bk40YNk+BAU3gYH+CbmG+gCVXiUJNKIB6QZbMNzCd2eL5Q1WXVmRKgz7TzzHv1ZHkeeNEoS32H31PHImu6/WfEmwMUJR10fSStm4ZquUtJCaKyW9F1U9xqkI58eibQqQUWTsA3WcrxxiQSYqPB8vGygsjy/4KkSdqW2dqni+R5zF3ds2vBnGYHsLPvOHNhdakBkjKHDgu540rpeY4umSdGV1LHoA4565NfDzJyfMeX7jzVEpmiik03ULPSpOgbJVYITayvOoptL6B0lroCF4g6KvIuxmtqPWjUUAAiY1JAdIg3gQnkU80otefROb3sbavDDpfoobUnTUQ2d5Y3zHeiLAuiCjivwTTi69C2OsZNcwibzErtE08GcCS06APCw7DWQEEWD/590H3Jg3W0nMSXr7Iz/2tRn0xbzV2THqVPyVAgcjOylo5ULFs6lO+eM5HqJpoZRh+59G3Yfjh8K7vIJGW7a6RNDsHfkh65ktMvbB1AljY0XTTjj6xYFzQudCkhuMZzV9MTDFls0wVC5k2X3nh0ttje3kkSN+K8bvADRxbuwO1ska3dTZsahb0Z15FhOUuq+NO1SzHMUhj3oxmxQDVjZfytmzkUVfyTREL5558W/R2IMUwVWDQUqCr8RjoZFwYy7aLu0ofw79M4bxTpyi+Ln8Qij8iM0bpdrdiMx4Q4UZJP6auvuci7t0eB9rEaifc2aMrfdGWGOevy9YaFzd01aTbAVFQtorUla9GG2Nqxs6xX8HzUjvX7eMGzxGPlpce+2sqcYqMpEbS+gez1I1Bccf4L6P0XEYk++q42PkrtxKVKecIstu2wH0lf6MP8TbRkwWvLaU1qtnMw6k0rgK7UZxPS7dZPVlAV9dNnwelZbXkVEv+op4DgFO+Hwhy8CQaRVxssowSu0KxBxlR4pXRPdez/1mfXcUcesbGVj3vMFNTrsBPJ3TlO5vh0bAP59x+8bpYr61EbGjQwh1pGKAb63sCvCaUuMSlVFSfptbfHYI+mjt/H9pNB3PgTdbsWNOL8GNhEbJeN7xTOxFeQPGy5rRsaSxkOapUZjHPc28gTBHhZLDs2Z0T21Iq302b5247sBByf9aBrA2g6QN33g1NT4zsbX2maNS1a5nHMZ11pNjIBGNx96rI8jueuxk74iEEHIBVcaGFUghh3vKA0+BMJtaHmD2jUOPYKljmPppOf0Ti0nOZHU3MMEbYLMSqlw92GaE8fQaG4Kn6Y6xItuS8z5H7+4Ijp+vO599ouBZ+q7E+3KW9U72cnBdbR7oQqB05VsuQQ7YBJKy7wpQrDmkzFyGcfxZacnF8LBowimDPz6VEIskjjixgedQSkMVnpjGaqKjZn5OctKtFKV0fJPjjLXvCurJaIlUPrAXDW6mfr9pEO+yq0zdj7XbGYVhaj7noJRgloQ2m85PgnJZ1mpDcwpzTBXdmqwHbrlz6O5SpF7EEWOoRzFLK5yn+ML6kLRcuUKgS2C5Ru4aOZca4nh6QnJwOhIzrWjicUXu/MkkzsxkeYctqTFj+6Xt8/7rlRUngXlZVjHJQ19L13YPl1FrTrxLesS1fT8pBqaEyo8iBhhuQR3F5q643fhFI1CyWLaYvmjg69HQciIBYKo1KSPJkuzFKckscg7kL21yAK4J9iaX4KmjIG8FJZpYKa7k23ntL3KoFg28ZQydZPpR6pWhjIHlcWkZCqiypii/g+7nsGagYa7YBUtS6xpbAwYEqNhDL26YuDdt2t56Bkw7nK3qVcWfUp72u8mnVbU92IIj/3V9lrBGFW8+DEl9vxasuY0FSMsiqROtE9jCQMtsEJWp/clX26OAJYQfXJ1T8HGnK17CACb2x9w/dceKGDCe6Pdk474yTv+toAAAx359IipUuYUg10iAIKHst6q2wlW0+PosDnGHVNKzK+f9Wo3gDwCmB/YWjQVTg74iSClfhDW9GK0Tdsp6XWU1Dum95lN/ubUpIRXcuqBHDGoF73fL36aFavOUak2jYVIIDfnv2z5CHE+IkOPEN+wZNeT6+IFECQC0FolYnzexGGtxNgFjfYDvk7ebCbT9wTOFWorW4IGmXVRruQjlfZuDVNhKpdzczIAZnYP9yu6u4KEbHQKPu6vXO+x0didU4heQu6iWeFctOrNN+AP5FBx34fohGKfCoAMUjRBjLdRks5p5Co/4fmpYYzz5aTehpZbk2ekh3yvATjC7Mik0z+U8MCEnXJ/Rgxu16BmFiby4gKBDKozhtnDDDcIfnf3yiRZW9QcRuHZIKNbhZBhsIcjRXhCijUIXaMocwsFiPCjyjaWlu+w5/xpAhO0v5Fh61wRZCeIc0f0hszWIOxw/4jkuIAAQD9fQECAAAAAALue0qEtZiZbfxMDw7nHuSP6eSjsQmxpr4cEw199gdj0QAAAAAA/f///6qfehFevwei7qbSNzZokqnKtFNnwQcHRnm/4B+Vro6LAgAAAAD9////Awssiyrk+R1iCZ04psgkVuabnWVSd6ibUEub3tzDyZ6KygjFWanomRrNSiRhY/VlVLM/zssWggPL01RgOAXA4jgZGAMFhkR5u42NFwJhYQSZU6R1vTUW4IWRwMiV2pqtBKkaUBYAFHxUls8OzVtuQO8fhNLJbkeAn5lGCnenlYEpsP7pnouTmLF8zRldZZ0XBx5M1bioLDYMkD49CSAos6V6LJfZWCwvCb3fsfCQn/VIgl3i8Cq4VgVkVwnHA6L4UplYO6Jm4a5pO3WXU6Bb77+Ecqex+ipVLWqzYdkkFgAUZKgGZYPYrM2HnMCF/WTAwi0ol9QBGGls8j4yCaboRHnQHxP+eckBNWrlOQfMiCz/0+JkASMBAAAAAAAAAQEAAIcAAAABAXoKd6eVgSmw/umei5OYsXzNGV1lnRcHHkzVuKgsNgyQPj0JICizpXosl9lYLC8Jvd+x8JCf9UiCXeLwKrhWBWRXCccDovhSmVg7ombhrmk7dZdToFvvv4Ryp7H6KlUtarNh2SQWABRkqAZlg9iszYecwIX9ZMDCLSiX1CIGAlh5YS/ZyAmlJBIWUsopkqR7aaX2w4jUAUOXa+NGFwubGAIIy3dUAACAAQAAgAAAAIAAAAAAAAAAAAEOIBkCGxre8OktpJFZ/JKAbmrmQ2fQgpm70bgUudqdRkbcAQ8EAQAAAAEQBP3///8L/AhlbGVtZW50cwAIgJaYAAAAAAAL/AhlbGVtZW50cwEgfZp+2XgmdQnuHaA26N8ijPuU+kF/yZYUBmTtNURW+/wL/AhlbGVtZW50cwIgGGls8j4yCaboRHnQHxP+eckBNWrlOQfMiCz/0+JkASML/AhlbGVtZW50cwMgdpf5ZO5BAoL4WItFm+0cmHzTknwNk3OAZFdlp/OeUm4H/ARwc2V0Dv1OEGAzAAAAAAAAAAHrrCkBxX50w5/nfgahSyEs3+WlmVnEqKc5nIh4ECqj2H/CwcPCYrGBjmnLAFqAXM4qRLUaGjNCKD6D+giyOOWuw71tsrS9TgTSEs0iMR9xpBOK9CUQltlN/SMQzjJpINkRB6AmTnhSGuYCsXs5sK05/8h/aHjyP2aFy6OcGXJr98gctmQzB4K17d3tMaudw8373KudWOTYak7d3BHsXy3D+FtvNalZw9PzAvKlhH8ZLpgYpLCZhKnvrRhTn1qjfNl7+pV01e9WIBQxYb+wFdYQ5GL7RBoFbqIQAXknfhzVB0XadfGwATHb2LbssW1YDUkZExdfMtSb9x2C0A72CXCh0L/aAsYtuR4eIF2NZtjtSAI3xtCwSEY+nWPnu5IfiOmxJgQc2pR7wvVsJRxyuhQvmdng1TnRZmNsOmbHudPvLRB4+sUZ5OlHW6CYNOHSP7Lv3P7BCaOBFSibiBTqo5RfDNXO1pb3hvmq6tDPa+swg/kbJ3jNmjzGkYGwSx/QMUZYewYrIod0fGp6sQo+tNQIgCJXhWkUnMEOCUs7QSm30M2hnvOScOB4JFkcruavMEl/aOU96h+DbFPdZHRZnkfvOuv5diti+klaX07G8/U8NJFzg3vPnHd2NKlDRQv5yw9Bn+Du1+SPUptBTIHbRpsSQqvmvMkyHEHCISAelQ/3Rjn9U+L27gI76/VdSi7L53EyG2h4Uj66u3g1C2M+ULdq0OFWIX2tPGLyP/ZIh52dlfarJrlpClgz84nqhuw2fxHYwectepFdgHJjjAL0ToAAXXGHURtGKGGof0jGm4sCqdkCC6ZJnB8Ah2V6S42Yp69hImVQXy+1v5rTG4TGXieq8sB1fF7zJ2LuPvgOb2a3wcfXp+bS1d8E7jm4qObsHH5UJg4lIgB0Mt9uo420AhdahMI5qaA1qyZUxoPdjdPRYtT72EDYVppbjZlJV0BhjAS+sVv/vlXnUdBjVxx6zrNANovLd1QCE6fHbPJEH9Rvyv5N0zLIcJSi4NRvGFnighdAiMPi1XEDmOuUvElDxXxUk+N74WciRULxKJcponnt/m1HzKz19cBJaeDWTmWGDpXvoqB009xP/0f7+Bo5U8c1FBhDdoMG+vd6JriRv7wnXPmtR2yWsgAAWvbNQTryXM3LyDQiA/YnEvtDp8oHLPdBe8Cit9p3nhLNEbj7Nls3U3SiCw7inDWq/mmsvqLViJKE5IxEkRp51GHc91nJ2XBRz9SSbP9y8u96ZqZltyc7cU8LlKS+cFzx/dE3QvHmjRx9Cq42Z4gJWPPZod5tB8DMvwjBvMm7+7hF/qk3pbNn63blRIf5qgChOIlW1T4EoQitrMfuJ+1Y37yU7z7rW3VPeLftEYD9kPUaeH24BQA0qkqO0q4ouvE+KtzWRMQyavR2SSN6wOg6MBVCUreyhmRHYiLrKkwHyaU0vrqjXs3zkxOg7CqBXs1pX5HMXzO7wdBd19XjfkLgYWv0cocfdRumffJHBrkwdRT1T7gKPW32a+WKzpHVHxJmCfsMTxgpp3iG1E3SgAIjzrYyRr0bCaa1cMiGUpqRJOxTsBv1wL2NPYVMg/Z8saArQpd7Zen1ueZQ/VWlplUynCSHOWKTnv/OXwsQN3f45low8X63hK7PLVJXkBrzIe0u5uPckyvcN1ZFMIR7Tn+DY6BNgpBwazyX5G3qsFkVVx7NqqzIFB6RrpbkQfxeB+i6oUwtTd6hINN4slXUYOZURPHRznuGsReRBLcsbCyzb6eFnBsh0VPfttr0n6OqG9pxGimUNur8Q3EYYIpLlHA1RCydcUteQ4baLm5f1sSuJOT0lXimAmhOoabwD66oH82tPiRJ3lKGyeeqnumQenU3na6VclI/KWpAzzvj424UwnjRwww571esh6XWaCDzYdj3qtMC/yM2LSt1Ietvf7H+J51rqNyWowRxOGpUhmezcpTbKXxXUSIxbIpi0STf7Z0dcw8PocntRkzdutx46/fS+0Z/WEB89Q2y66SjQYlHQpJwOS4fpFrEmEIAVIVDb94RBmIeHD4ULdhE1sl/69ymVEx/2Y+RjhEC9T2tWxoQgc0ES/JCQAeEJLxBqXtekeVkEX6oUTmSBPBoSbXmuc1SMOysuuZieMFS1jvSQYlk/7K/vU1eIRn2xe1xUR6dFlNZr+Ak3x5xba0qg+0FslhZaQsIcRFZTeiHxeijDj0L+sMUkr8VfltVCf3q+bSIFs2sS9scx3Y1pYvg1UywB83yNIBFYm6xTJ9AenJwLREAilMkenpdm9J2bIJpMFP717ii6OvTuX7QD3Jtf/7emzOK2VX2y6Ki+jEXUjmnO/5qSqZMrftX18juZyqhv9rIOSjhdQtkGZT16UCqkvyW8+AJhm0NWrjsjjJKmuaL73vVQFq0NkZzyTtnXZLzNoDTbAgmUb3Yzok8dHv4cVYC0Bw399pM2GQ+6u4Mphe1dB2DTpwlxecJ6KPpSC6HFUfFaOXThNg0u+PRo0mVUyPztyh0YRBQMSCCgFizJRdrZOHX2r+Oz4JQfBNY8akVckYmQGI+5/kfYxbNWW1IV4NwT6acVymv6vh6U0o2B7yvmmE5QEoZqaTE0sAs39vE1+9VIgxRK2FsMoxuWj8wXUqQfinxeYDinQOSfETs6PIVQFZnNcvvq1CtHimmlEX7F7pLISKIKPFxIQGcGMpszk8J38cyzfsAnX9dPO7PnACbUPqh13+Lwuv2KdfglRoZ/i0I98JGNLNBMrvjOvqiQ2h6RF8+fycIgG+n15AkSDwnjn73doYncuSA3yEmBfvIxI0cZnkPMWxo2xvH0E/avBLSVPN4ZTGFP/2TF9Ew+hfY/fim7eqFsESLD5jyCqg6yF+40LtBIsHN73BCpZOVM8+nhh+bQdrEVmlHKQuG3uGfkW1fhebX0X7MbiYZRGDUnXZVQQ/qtzGwjeMEp8ZthZRiWIQ+KIGdp886lxpK7jUTa+eUmIdVfBUibot323pQDQRBX8bWFBDp9/Nyka7++sdcC77c8Yy9Ev/ytEJCHr9UusMPATNDCY7P2F9EJAtvQSNpvqQUxr8UVv41hGHmcIBRaSMisAW7Mg07Zay7rsvTr5n0hBFog3oiXfw+hU5ES49AY/wK/tpI+wOyiAkJRHWK+t5HDubALOGtMrRyeMULc4DlGYuwAj/foz9Y1dVxt9gF78Rp+zCN2KHQ49WE+FE3JJoVM2VwMA16ngH0F/2LR3yE9KgjEBr7R5ZN7yoYBRCtpM0BW5qo1tJk6q18KBa8HfwUJs8INoCscQ67ooXLjrEgkC/oO21hB3BLUSoQlrE6aammdiDxRfZZ2i4wi1X0eicEvCPnBg1dcV2ooUB8/NMHeJ1rksaTlCUfrdpT3gqDk3Zq+iBDLDk8yfs+SSScTMEkqJeKpZa80K7VD4DlLySRg2p+jCkATOv/rUU3bqrcxEo6k8M46s8+vs0aLVktFDLNBENm0SrES9EcCN9CA3N9kwQXRsIKomlJG0qbI137KDEzTOV8E4WlPF6QgQm+yQ50m/5R5YV6IJ7LDESkjkfMYAP9qyqb7VZyvpJ7A7IzsCXlMPSy/+08IUuVNbeZ9ez/oVsJenzI+rQqcVFQLesrXrE0vxlkhe/26YFhe9Eye4q8fdVxJ38uE1FCpVqCewTacdhflD5Jkt96+an7Gvyc5Exo7JXrfSPtIWM/PLTWnCN/zqRR5d+kCE3V2kLJjgcZ8SRHi9U3wDZWMqd+L1OrFQ4gBVNeGX/633BX0jIrpgamaTTl4EJTxn6brrKkA3Iv+7KqyWxqeNeXoMpxuCEt8xyOWEnJgAazVeZdbmfeaVG/0kgAQ4x2Rr6Z7NOD+w7NW94z3jf0q8ugrNk3rXMjPEVAm1Gm3M0t5ueApl6omfVpc+t68/cKRhCQ6b0/JJcsunebUuy6dLHTaAFW3z634kCY7mr/KbNinnv1ELLwCUDZsw1aSxfTwWZBWHsQruM1rhy0EQKUGpY3OivR4GGKAcCmd15+1F4Fcf7P5I+7NiO6phckGf7g4MVJxkqASeV5yWThEPkyvP8rxgdx+/TxeBoW6x5PEiVaCG/m/T5jC5Hm1ECu07p+yXxlnM5El0w3JxGrIzJW/2x3zQeB6afIaOyow+MeLqVcxk8IEm94bBXXP9y54gbKDM0xnJFG/fUeMLWMZqptGs4uml1+TmMqkAMD01Ba06Jbwnb5hNA0YCuAUkqr72ocedMVb6IQ27d0F/46kDq+srwdPyWYOMipsWBTKcouaS4TPUk5wGewnKHj1cBAvkywsE2KASkBZsvLSvqZpMxa+K7pBVLCFDKS1eE6z0kUJrdG9FO1afkT+HDXCrb7K8EylzwPPkM9dinUg7MeDkEXIbLAk//Q/J0yZbLJusVQBJnqVkWuWUbdrEcVh0zh+WgrwiWMVPlh66qK80lCwi3GKgAbgYHZrc96ZECbc7EvKBgqyGqBhau+EQkz1t8Bib0vUY769Q9SicNGHnHofo0Yn8QOlbWNLH34lTTo+1np3YQab5eSgAs/plo9mHcGdQ752YzEzdTWkXJ0WfrYfwwJCbckC+9VFZJBL9llckEHBzHK7gTD99iCnHAD5LpFQAO5Lv2bDiTMy+QqznBDzlc00XTk3HaoF6zVaaZYsg5rQAi8So8gRuPbqyzdOVP5ObTfGZG5u6dBhIXNOYWw0wiDjTHvKIoAyzY+jWcSXJvav7z1yyaWrwQdchTNuSpzbFAqpCCUiEngdBlgI45EdzAjLlRYaYX730ra/wrGKWQBQjhEBucoqoq3KQbwN/X9bVl7nSu4wFw84B37X/efQeZQzPctJfKhzciysjrH/8eEOno25uLrysD8Nj/DtwUPUnef267sfQ/YCfM7C57Khs/RH4yHzlyqFG6gslOk531KOnMcB+oAGUUJh/lgkuVLqK2JwQxWulbU1JLerjidM6fa8wRajgnR/wk5vbP1v1T7IJqoRr6NJ9myeVFLV4pvBTi7GwlmC2clVPCIKXfzuRxz6brWzlK296e6zW8dL7psiqICyK4DfUBqZvoXVJX9eAmXJCv5a/JCHCrijgNMJeYWtu13HbL4Wqo1UCwnn9rwUvoXeeVVficj6LNF+SC69kT5VQv477QbJsKAuUm2GlHUgQCkGzlA/chMdWd8YL0V9d3q5mc/cjf35/oEJ2yp6rdOugHvJS4lMf75O8e29uQP0C0BJ56pOmHO364vutlR+teB/mM9tEctvEThSYqVhgVujBAkVPhvUaXI68IJ1O7Gu778dZjNV7Fy7Xrnd2p/Gy/iQtZ6vPxIQ00OjLe54FtXv4/8BZQMudhDb08Sr8/BY0iMbW/HkRcJfUE2AU6fQVyP2weFRn3qHiLpzNMQ5xmCN38zNBGAL3gxTgpLEMLJN8tK33ka2+nc4L0AArQfwQGQ/yCm3YQND7OoEKmzERJf3TbWMQN2cwi31r8BaOnRH3wgOgndiXsnXKtnLKBF35zWfG/Rg6lC6U0REPURj9B395PBsjrDmd7AsJmQtHImkyDGKhJWjyPk9pR57MzxfpC5LBGYHUQAAQD9fQECAAAAAAIZAhsa3vDpLaSRWfySgG5q5kNn0IKZu9G4FLnanUZG3AAAAAAA/f///1XgLOK2mG7fDMvskN9MMdwkfoIHvyT3R7pkH+89e3i6AQAAAAD9////AwrglY2RKNbSIprPg46WKHJnv1+3lVq3O6ghSmiR6HzpvQnUKpcCWqDjeuiwM9wIDVKEIWYPR27q1A9hAvsmYDWirAO5KsKbdJxAQBA76PdpslErsmXH5lAzjJAvUBAIDoLXkhYAFNcvAka3f61rmRtZkxMq0b4R/mhHCsuxGHyTusWrghKKOymKCUaB4JgFXxfLRwtYqtVLG7u4CO6NKZYTRMo3be+SC/swiT9q1t/fKBp2V4Jak5IeVcCuA1Mr3GMRKcFAAbx1MZ/V1uXT5D3xYUi+hc9/R4oJxnOIFgAUFA06jZmV7Bystd4CwmpXL/YaMH0BGGls8j4yCaboRHnQHxP+eckBNWrlOQfMiCz/0+JkASMBAAAAAAAAAQEAAIcAAAABAXoK4JWNkSjW0iKaz4OOlihyZ79ft5VatzuoIUpokeh86b0J1CqXAlqg43rosDPcCA1ShCFmD0du6tQPYQL7JmA1oqwDuSrCm3ScQEAQO+j3abJRK7Jlx+ZQM4yQL1AQCA6C15IWABTXLwJGt3+ta5kbWZMTKtG+Ef5oRyIGA+0lQro8TDPyEi0H83the1x62DvXvjS9IGKBh/+Tfg7qGAIIy3dUAACAAQAAgAAAAIAAAAAAAQAAAAEOIJPVhsWTBoADtIyxrhSRkiQnNurbC0K6re4bf/xPsuanAQ8EAAAAAAEQBP3///8L/AhlbGVtZW50cwAIgJaYAAAAAAAL/AhlbGVtZW50cwEgPzRTmQo1+/uvDqavxmOUdOjtsg1UOedmcdC69+e69eUL/AhlbGVtZW50cwIgGGls8j4yCaboRHnQHxP+eckBNWrlOQfMiCz/0+JkASML/AhlbGVtZW50cwMgjdwAj+r1ZjJTfYTnHsmhZNmtOsy5850m1/RMjTQd2bwH/ARwc2V0Dv1OEGAzAAAAAAAAAAHeF7EBZ8OXe9mpDapjA5QtRIJi7fOwQFgd4KpX+FplWRYbYZMuZREYsi2lPZQX/jIsdUy/ipnoL2MvOolm37KN2h3qnF5hjLvL4P5uLwdsbk7hEHR18NldO7qfezT0gD7wRSIkLLV0K/VoKlmjpL8slsx5CkqkNbPCyJWDFL1O5+0HYmpLZ8p7v4aG8L/cCvDVwyDbp5YRYnNfOUV72s5SLKiAF2FDi3FrGbwfnEMobHNtacMfZUPlJYfpqdW9XXW1vOBkOqwtD1JwyFs6MTwMn1W5XLC90gvEbdlQCFrMF7Kz//8Z/cXKowibsmMYx6RLCTqt1YJVWQ9edkQKbl9nsOjX2UvYivBrTQLaLYTDIppWmzBX6HQ/jQNbo+MYYEbaY/fyE0mxZ/5P3NGgxQxG4siebXb75jUz1QbWObJTiGEYXohV4Auwp0ax2ib9dUeOloMET8xC5rJxy+Xe0E8X5E5TkizstFje77Ntrc8PUiwC9Gn/gBw6afooPbwusr90aeCukFP2N8XwO41RGDFZ1gbNy2jLBNqudbfS3YkArYlX6GslwoFgOz5Luhlr1FkA7udQcKivYmzUShzNULjOx5sZLzCtMM3ZnxMfqmpjLAXMRVZDEspVM07UBT6moY/2mf+HKcluIm1iDDYm6G2fbfv8DzeXNuPW1Ngrlg46t/roqniY7iVLNNXTl6jLcIltUkLWixT4071NBXOJsSrvFsoUA61FrE0PXb4bHw4Fv1EUyIDAhKxzKbZzQ/XwyiaQ/E74JMf2f0kd3dJaote7CxxxAu1Ow2kKx6KpadcuiGOtx4Ao3Zl2823rKwp50u8WgfYoRkVAywPW9BMLayWbW19PD7DD/yNeJeLSXzdyaAVmYjBpmAoIuY2yetPyKo7YuqGc/RfdgPeTDsXV+9gxPMAS1lr0IPTLHr9EGYuBi+FzDB6vgTQGtD9LQM5o5+E9IRgnZ9+c/V2q+IPCx/qlmLQDmLF9JOHrkbiC0sDt6u9lCa3k9iJn69s6eQjx9QNvA7RzoMg3kcbN1t/2tDxoa6nVh1dNGn2S3h85snYYOoc601RDVmvSrfGfkPVH0sDg5MZ+fhS9vViKJIlN37G9w/xdQVwvpGKBddGbBe7GS2JUpQKjk+hkuZMFi0sKeRm8SuF4b/U3R/D9ncF3kwJ8aTNoZYzN+BAIpG82ZvN9u2ChddVdkUMUG8uO4YEPkv4D+dsbzIB6rfxHsJHEZRRWf1I3nqPRu0R401cXeSBylsP4bK/PEUeOwBw9SknxVI2tmnCnqD+gNC4MO6k+sz1ulhV3qIBFF1AVqcCLxb1tsduZS/GxIt2PbcvgdVpvsVtof0fmMN/Ix1R+LKcyo6/YHtOLbYw0BvCFAsD5T+eQ/Yy/pi83nKhYrYp3YghGyo88zqHGbu+DWOvN/uw7wCXVmSacvE7dwB2SHYgt6tlLq/y/k0tZUVp/gIriKyXpBgsDsSWUBg05cewkYlDi1Bkxs5RVPqc6OKoFEV6TcJ8qNAdl/Ccg6l9LE+P1zKEAMydLgOk8Lvf8mzlfmdO6XKRN7sYxMxaU2hvAA3USD6Y5nv/AzCSoGL/ggo6kYOP5o8fMZ8f43ekXkumat5AOjK1zF2slQBkRNnOUhdi6lPwJkelOg6NwV5AG5/q8Z+Hp6KV+YEOVQkzitTE/P1gjw58zBWUe32hHECuXb+Ez5q3oQLIXRbVQkxmENeEL+vt4vLduT3Tid9sZclY+bsYdhjvj9gOX1MuE2Db0L38lez9aX92PxNwQ+gUiEx05geWejtt1aN772H2N32T7UY1C16rkc0nfmmKVpvuueTabGkGVZ3NDYr+2ZNgxVco7N+hLhnVNcxpMG3oDAvtALFy8faCPXrOqBsbGXL0JZnvfm5IK2LGUK6KgTz2oDTxKxeE+sO6O/6Vwd/zJ7oP5GQaO2A4gNq+XqZbiI2gBmT00YOSPG56jfg/cyEFv85Rcf2ek2UXCebOXuMHucUML40dEFwRkqg2fKn5JKdEw4KnYde70y9F4oMm2xbZGACEResOKxjjjeyJcnSIHTOQ8vQHgHuV+4eBrYiPTQ1ebmNS1Pkl3Jx/H7XRsUmK2tYMiGnsxMvIOd/XOQ/dERcv7wgl/xVMkIjKog1rauYc4I78XnogeXbgStGBDhObihmqd2zQN1QD4pFoQaSR6wt1GwqfVPVm60225q7xzm+5AbmKsIebegURJwdaDfBqlVQF0NhVOiuskgjmB503gm0+gBiIvlH/Wca+LsS4EY4ILJ2N0pGwNBlOQLPJnQ6FlNpPIXpx5TMEDs8nGzhHFKX9oYH0WGqrVom9sR9H+caSEJdkAUni3olN/Dr8vNC61Xi/gKAKc3RKzMNTEGQ0HIvFwwWhzFo2haX0Bq6YXXdffFChp5lFxzq8tzISMNxjQt+0oMiIsgB0da7caFUW9J95RNTlWBtKqtiIIicYczzFjC5qo1Ppuewb86lIZw6EUQNvOImKxSlD9HrTkcj8eRweruSXrRw9sYxQOw7E088SKyHH2yW7CJ3iQQ77FkGQ4CHo5r2u2M/MEOBNQ+i6D9Y38ydQ/qtV0tLTV8kZoRJvlVyAhccHaPaiGLfGBdgLMLjvo615rdj6xjieebsxZ2UnDDeLGCYMwjIWv1frZfvb2azcHqpMsgv2gKtpUwmYwlfcSYvIy2tL+sbp54mZNJ+hMPa1lJmBvlpBfa+SMs5/RxeguuK9r06rDPk8CljTxj8d7+rK0wam1Z+ipW7scvk85qOxHNdVenR1dS9yzsLBX7x3CDtRg8oaxh5Rv4vw6L4Us4JuA2jH2rd9AnBnMFRvR2zUo6+g5SyZOl1vjXUkZ4TFqYLjS609dukjkI/SszClbJw7pRz3Q8hSlPvuEecsYjqpjYRUPCBxqP1981tPqAJzeLFoOd41VKjqynvRMxkaiUqkzPkT+fR7SKDR7imftkc7D1NYy6RyK1BwAIGkjyzsQQm5pTmjztCO3Hk5hB0x0z6J8myJQLstgKtFch5sOWr9LSij38sh6F6lTZwE1Uwr35ORryJ7U+/W9dgl3LYLyOBMjNw1LoymVwM3ROFPjsDn5UepPpkg6i/kV1kjNMTmi5hTgjUX+u1b35DQr6k3U/RqMBP/bLCIASGfC8lXm82kMEP0i56CJB/0LQxRPpQA0z23AXcad+OWQWPohqH5S1RAsT36WIPMpcCJJYnMgORdwF8Kx7xEojf56Lye9f0h6G6Kw0fOI8Q1M3yxREy+Xd84z/VRf1i26hBnURJzIIrNrPD5/wX3fmhOH7Rh+N+OzwL4914Z4ds5ssuW/d4OhcSpFWSEVxWihrmmCOFtQtWMzp4/E98LM1Lkh0aPMjTAWEqvC7WsiBncjyY73ZdZ2KeBCjS2aYscBlkI7n7KUjGDCsd5kQB9znafOy4z3KUzOXORpEE00i+rjwq0GPxA8ynpgGDr3jL056lytbCyv6oJK6slb+5gq6iajxpZLO+APGqjD6nmNKG0GO35hv/gb9Qb+DO7sBP9PBcqc0vArKcIgllJDsAJSYsHEqhjm2gUMNUgZL459GtdCFacR8yV5Bak0URRk2l8cfWu0MDVMH7BJgJFDElrtIyu7pCFF8VUUN8Tz62X2gtWcBgMa5IUhiLfZbfk/dvaD7P1eXB4HP6lWlPu/JCl93jLnLNZ9tPZpw42QepvFanxwVSRjzvArvusObtbgROd5yvBQehBgHbnQuc8siwYYYlUXoAVvfFFdP/yH/JkbHlh9Tv0qGzsSbuMPnjDE7bHRY02TA5B9IGFxDJLWsHbEyWs/7MLZlI0vtabnqFmmidoAGNyGNRpKA/oi1DT6xAATqt5j9oZxGgTVbIjSTD+9JrJl+xNLk419dtG6HuV4brT3etbhyUM3ng+tbdK0RZdirUYVh+yKyT1upwNFnjJLEOteMnJ8eynsDcfYp83Jvf9WpTSW+0frsWDFbh+QKRabnJrchiU6rlw3YC+zbbpit+rAlsGm9LwyazZrDrd2ApOWqDhxkcnpFw91YgaYa4iTWX2/zrF6ATWErb6I5TrdcG+BHdOzKKYIFxmHQKEHA6lR2qQVxNl7hUx8cnHZ7Hga8pbur/fwDxoB4Mbmjkiya6a4RLY4tOsSWZ4TPuOX98XTh1HHIuBgVImTv0Yg08Emupyy9eU2VRByvN6L7pTopETj6Oy9Iqpo2nxuK8ef8YH0WAIdifl8F8NFtVFiP4gyi2LHzddEBslni7D/BuEnNdjnKaEni28TyVfR7iuYRZGBNPKURDMXUXIPSSSf90WWSN5vSzOOmWfcunM/9OYCQ6RN4oFm5c9SuCunYOv/jNcdNpDT3o4PMCLDoEu5/fYQgg/8HKfGVH01kH7tePvBjqp5g8WInOlx64XDXvwU8OiZLPER5B4xfJN6yBsydQrBACMANrnHEgtU1OA9+OPVT/DoyTgEMCuSXBVK8k+APg32OjJhcLIVGhU2JJyVjDGDGVfDSmtMeC2g6fgVLXfTGeQdWk9oNnsKl3BJenxAJPd8LrUOpdUcUQ7xju4JMAIk+CqkkMS5mJuzPUVMMiaCW6ojG6GtHZHbGk7YGCidO4edzEyPEl78JHKOu/wwLidvu9i70HGt6U3h7XNxu5xuc56noC/xA4AQaVxEHXTiu+ped+a6HCWKoES4D6wp6UJtbcHc+LKfDFBTRT2MoWRI8MMuaWtOZ1IkRfln59miaG6s9gzd97ZNsSxyzsmHUQSmY7iNMMZbQfF8ghBJOrFP/qssnx4AHjnsovLHUel2JO0LG3yGHuB/+sq88HTck7BcWnpuBaf/yCHkEPI0YsnlChKRr9/O8nTe7EZ9XM69JGStwkFuPCE2xs569UFK7apMHyxzr3EiwBPm6dfqwW0JDh7PnHuTN79j1HW/rzFC3g8y3dBF2l3axD/pLmrBoWYkHIAlDajpJSeUqHu6AAOowjrNS5/xCTT8Kd9LCxYkr9YnrLaztr1DA1SCO1nwHeiVD5/YfbAJdT90FtwVFkHQwr0W/K1iWRxZRPgIawvBz/N8HNNprM6QML2U931RwlUamK/tQrffN47qQh3vJa2nTYVlAqOAk09qrNt7ZqXA8O0N6RbykcePnxXrIrQ9Z0WXn+LAKBaKWvfSxK746ku8VTAuA+LTy7nPuHeu3h6Ptwpetz+vJBjLj1xUhKg6QzMkdQF62vRZ8djZ/hhVQOOX9KcpJDdhgZ8eV6nZxQ/evwQtcNLdGcPy+urtQKvREWKs3LbkrLGMRMg4aD3PpxK/TbUYJ8WUCcK9qH3yrV9bUHwtGHWglMlzsE6TT7PLbMQkpnu3YaUy17vzF1oDCnCjO8Dbz6Wp1rZXNpcycbpd/wtNUT6aXJZIKif/ua2QRt5FdNEgo+3tqLAkVmeOwH4QcktUWeGIS48rka8MHyRMcdb1d9K4bHpXwvuckamIkMi1cvvLqmy2Dz3B9p//KAQOXnVVSOfg8fr6PW2SrypSyIq+zIibe5yn+Xa5WiDYTG7w6z1pw4R9X+lUZV0zAipkZWktrcnpqBvxvR8BLHcr0zcAIgICITfOdmbukYJO6Ricq6GwcqkuChGeGvFvmIaIUzkpdy0YAgjLd1QAAIABAACAAAAAgAEAAAADAAAAAQMIDEpMAAAAAAABBBYAFHahPddz9fVoUr9uctxvbniMr6weB/wEcHNldAgEAAAAAAr8B3NwZWN0ZXIBSwEAID6HIgQ3csOdakGCDB/mEF3oDWfAg6bB++cnKZ6BC6SiBQEBAAAAIQIcBGAzCoZahwGSu2dVIGK9QeXANk6tgQMn42O13wj0eQf8BHBzZXQCIBhpbPI+Mgmm6ER50B8T/nnJATVq5TkHzIgs/9PiZAEjB/wEcHNldAEhCcmBKj0W9lI9ib0zEb3NFksxb8LfgJN16J7NkxQPDu73C/wIZWxlbWVudHMBIPueVOS8fXVVp6DhtagPM1fkY2PMtgANUIXg5NOD7e4fB/wEcHNldAMhC25O1ZTdG4SWMn48l4fgBaTGGQe8qyH97TKzoAJH+R4KC/wIZWxlbWVudHMDID8AsAcLQWgLzc+m8QNzC1Ye6vmS6KR9pE8Nn1wsML8TB/wEcHNldAYhAqbT35Xb2VjXuI03CX9yXTN5Jijt3P5pHg3FXNlHaLgDB/wEcHNldAchA8hvUrJkfckpbUnDUpb+GWUq6eWCs9DyTwTUniK0rhHXB/wEcHNldAT9ThBgMwAAAAAAAAABF3QMAG3I7GWY9JbkpXYXWQhRX4S33/H3sLafg645mcwoVBhU+kTgdDSiwx4qgC6SSazHI7kRyYkYMOEMdEGvT8v6Sla5uFsClDdqrBU71ipRtkkU5PtGrtgsQVVTkTxmTBjA8HfHNvkHBmroX7NPw1/c+1/ANpKfAPFiUVQBHCxuANHmXz9fXNbLPMxXoCnNQmgyAo+MDkNz/Q5++w7ZJlLdPYRAsdiNv7vdvce4MCTVS2xijLIgtW2tu/fg6NeDEqgMxV/o+4QdN3f/cN/xyQ26zUVyKbaPg45M/ebUyDeH8fk1nC4szfdATjIr1Ob+LIoWPiegIk4YYWdjEwDthZezoWASbJ3HMBiHzoVuWl3VT7fGvZZnSv2cFGwokNohGC7otF2pqs4kNbFXAePz8ezUxg2aKLY4jSC40BSITEhVDavSmax5Qgtu5N/3GhQFQ+CaJPXFu8CR+ouGkSkHB9GjHR788Ygk2LGu4PNLC8iWBsBtcJ4RMcLg7KNgkBHq+PkQ4WmWNniYofxG/FE9paWYZp5qATM/nX1aMdu9JX3tsGKlWt+WpgO0zr8ZHPEcLgNYoViNoXFboJmeenFqvBw2HBQiaGIY2xqxl1oxgs+EviWO1vmrn66Fy9Ka2abJDGvmP/NiIRznk/Dn6eX7VDMV5z4VyYnWiKQV5Fb+6ItpbzXiWAu3EO8c+mws/LP4VZ0/tussJ1q0aizwweHyrK2NVNrdkxjNee1+60MGXL415YwaCUTF0swrittGqe1OaimwQrSO3YCGUaq4HM6erSBbdQ2B0MP/0pfgtbOumq3MdFgPRlX0K7dBylkmehsJzacgdQR1USPxQBallLYZ++Y1WOC8kB46IgXVA1YcfrID1SJssRKgP2yUm0u6CZyD1JE77wB+SM9BKqSxbLKeQZkwcPibMn+o4iPIrZXENuPrGYkCBk4MsDB+5sE6ekwJ+Pm8CmsHh1PHkigmM7arq1HyOCOTDm0XYGL+ZO/ef46XBbHCxm1AiemaJzEPiUeNEoT5u710wgpzBR3a4/IrRlGbTT6uN+BDCjm+Po3nEfHmTdux/JWw5aRUib2jmlKyRNdmjtd1PguaA0wp4kOkxIKHGwvz6JerOH+0OFebJbBvkHckTlcmaazO4FULUP7Tcl/U/dqFIy8f9nXVefJ+O3T3uX6EvGOYRQz3IZUnK12lLb/+Lkwu/xfqzuIF8D/9FLO5b1+xVpPBZdk4mQu4TRs+4Rac/ATXGdnU6FFhUvaw+gLLb06OwzkhRHNFJY4qtMG4o2d6y+HzGFj8Zd9Fz+kpTqOs9EN981fpTqiFqC7xCv0E4sBuBiP3m87n6ysnz9LmZWxlVGUsAL7EJAOv3SGzjkNr45D6kvWtWM9fPMbfDD/79367LaNNCgQC+XfRzC7I4HnIYr8NWeUR3wLrixVb5cPr5dPPhw+EJ+LCuqtvLmOwds+XXV8bqD5w69vzvLa2IfIRXPJmfDNdyA6usNGrk3ZWU0ZWa9ZRkcxZ+YnwZkzd3niyOAEOWZEosbcgKWo9XC01qLIQ6rdpkNfhNfHvBDQQfHEcrpk0vXGnaC8+bRaOzTU6ttpLgQoSln6valjuWJ8bCfEBQrHWhd//adWmne4ybg/9fRBC0qN20MPwnQ3t7k/fyQ8cQIP7Jbo7nT5YuxSUOB/8ZTKF/1k0Ef79dxzlKHrJWMy1kvvxoWNLL3p1qwUd8ECr14YscTT2Kzm2ihyfgaq/p5Wy3xOiD9u4iELl1lqZTnp06Ay9j/oLeC8h+j7jCuv0gPI9boTqlHg5K/SavzgQq57D23qafhhNjC4nM67MHdMpPln+CE6fvC126nSjV+yOSycFF2v18yGDpn7ueNPbNVxPmwsc3pimkpgXaNaoELSn7S5yqPYbWGC2IK3YmB/nvy9/c4lQY5jnP81Ymk1BIY93nfgeQ4KE1CTyF2ZX63wmWoVu4nRc+ePv3gWj3tkFLLoqrQ/4eivJF5YY4Gl4J3EtJr58Ndx9+0qtPI1n7H4mJ9QUHVQRKwwMg+O+yze1mKJZx63lu30ljI9LCYQhlQaZKc6iaMaX0Duqng2nlXBTAuIJeWJiND/SiYLdbPcDsVERKn4mpcDn1a5ga/51J+H6qOiFAZ/bYE6qN7cVBCGImgIN+WqsMk47/v58VOEwA2zeYPNc9r9C4dKv8NuPYrInTDrB1FgOhi/0Xl8WBe6fMzsTeWTImOWxjVUlpRLjEAYSfGaJ7xZdP6Qn2Hd1Zd9xzk1umRG+m5obX+DBqAsLFRIVaGLwh8mlseQEGQxRn6MTx40iLNqVkv7q5FyFnHoD4NMDfKWFUKyVPlRGc1drEDRHiCW8l/LFcrJeCfB8pMAWV8LXxzFlUDG7JLGSYgBhoVXcPl5G1XSBVmrJKRyAGZliJZ8CZNe2+8j5ZFbaqOd16KOOwo4Dh6vQxR8k6Y8Nx2VfoySXiWvOCaq0M2sbtY4XMjRDDRloK2RXtf2mH515DA2+JaqnmOREm3DLX3dqReR3BOmOHY0SOJK+nPv4RcuPJ8hTkb5inmw4FE75hVQIkRGwuVKRQ5FX3+K3w9KmQrFfYCxGJ+RwGJ4mlEIxuJ1JLd74tNrqM0a0arxFNJECZF6otC58iOzdz5tvD+0c1oWOyomBlCB6THWjSnPVPbrmVqtOSZy9cxyKNy2Du1A581TO6T+lJbzoNtnia8UgQ2/D6HabxT53G6hiSHYHSta0BAzCcrtcrNl97kCjLRlbgsQ/S2IWXCFvsXwRhshNUu8Bc/cBAhbuOlQ2SembTELV2tvm5zIwF7EGQVJyk21DQE3fJGstpVyZswBUG8sflChqGVwPaXgdmk4pgQ18GemNR7O20ZMDlVndCPDNYlwGWG/G4RUnbxzE1Yijnnim1C8uR3rdg9RfxNgXbQv+G5rbkf0Uj5+glHGwxOLsTzL3qShlR8bUep0OA4U2TPXJJyi/mYPQbHX6Rtwg47B9Ya26daz3e87Wcal3DwW6Be7TzBrtT42LfDo+Qdfx1DfkRPD2nKd5BQnqDV/fFwgsVaEQzRFSMwXZAB48qM7ejlXgvPGifKHXe4Zt+9MyNVlxiXZPsqJ2DS4KC8E2EDadaYvm/HoCO9mWFtXXBMWMrHlfiJZwlx7jhVItED1/lXXWvYKS/b7VTHjyn1WYZ1fc6T+PCsWul+MzKqT2xBzuC3I+6IvD6Ud4gQah3ZQBXm5ZLXLO38Cexd2qNx0mvujGWK/T0+ijdo3pZ3tsnJXTpWEDV3VmPcHx85H7yj+7oIYN3SGjiZv5icT/hbbn2c4PHfnErj0RHnBiZ7/XhXR9BUUDZygRleldYBOS1Sax6aXnHPmAZLpfp+ZWCUxZtxTNJ/YuuYWVbJEre0RlKFcY0ws7VIo50vvi6aAdw4RdXRY7ZQzu5o+sa0mvSJskqVKjlmxFCgbYP12dZWGnEnCmS56GTIaJEuFAvvugS9aJApqnWSEAXw+hMpRUCGoSGGMGNTVqr4/ILun7WB/FO0OWwEz2/NfRoSc658IVQSmI/z1GQWBJxaqwrps1zUKBxip72ob/OrD3wGYdpYgILS+QsnvIg499A/hcTcfw9Cdtuv6DiYPIAFEbUFx58eeVquNs8zHMxOY40lK7rtchBYXMhLSZVlxyQ5ouHi1YwGOW7SM3bggikMY4fNyy9X9+mmjQPIYrPf+SkbYpRlkOa0LOf0z7xTpsr3w0VOrEXehpKNLV1aJo+GJmT6gmNGJnFwRpCM2rRQki9RjSkwqzZDQqUhP11xQynxGE3sbuFqxekNx+fXt5GhLcKrkXxPAoDpbatxYJ3PA+iMngyNpsIKDU4jHcTz+PwMKPqD1RYVxi4ve0eIYtRjdkJC8bBD5ToJcVe0S2IOn8hv2IyxCDrF4CDv2FsGYQPUQTZrTtuKxv2hOI09/hlKOCIRPLyprK/JMRjkeMkOlangzMLi4IF2vvbyS2IlScEjcwDeQd3YThUORTLpjLUWdUevjEhm4QDFwFVOIoGby17y0poE8LK/qjz/EMwvNHfTq7RgOLLVqdA1mSl0qXLw5IlJU72wSNKZ8oFjbtu8yjwGq6LIGsy5xO/DARpDO2/fAGNYTcZYOWd0Sew6eNIfei2tBO2SfOo9VLviHBiL0dAY+770LSBArZTQYI+uW87k9WWMJlqQITTwN782V/XmhaXEgMa/KVc1ax62gWb5oUGYSP5bPMCwOYF+T8+GptDsZ2P35k5ZPNIQbX2Z75FxsAUgOMLq3Pl9zEqJinqGIHaKp1/B7TCUy57ynps5lvMuMhv8/ahf3gODuhXoLPIpE2vFgithir1l7poc6AszlLFN0NwLB6Gn+6a81ZyAsATO1cyh9kkS8rJ+Sd2hckcPabprd9U4+hpzuXhhBTFdUFtqLaSWAp9JjDaPtzRWdvw6CSziAmhZM1DKZZmwsT2h53rvI5TcOJ2DOWo4/qNmZ9VCneLwMykS6mZCoKLkblTMJPQdig6HkMD9lbIQnkqONE588YIa/YoRkL2PGmkkcjVzd7tbo0JquvuoB2XakGVrKVyonMjPsXalBiza/i6ebCB3EZF+K+0oTHqL5eLMnWVzbm0KunIbS4q1YB6IrMgK/ooIKRA1z2JJRBIwyScqA9thw/JRJYFK+APCtddaGrSYHKXA/ycBU2uty0QBAzVQvbtQsSv7ugTkURGurElxa7Iw8Oiw02o8OYSp8lbGS10f2nvS8QbTBDzonO9sLTZkC9wfTs/zaHokOPmzffi3ag6HzzcOWGwbB7ZIAHS/r0PIiq8X7sGUTeMluM/SQ8ObRf8K1DuajHoLR7k/8MkW3X+WIfhbIb3B8K1qiG5Jjz0+y0a/vI2INnOenaM/UDq/YClbqOu7Du+mdmT0zCPC75pqnSfNN9iTfhStjcl8kREy0Epu0a2NC1K0qi8Fl3ODY9hv3NT46yuis0wwwrubNG91Bl6zLG6zx2DsXkGdUauSRrXAFj/a6ecgURZDhggznMxTo6cDjtVDTIsNuojK22EqHDogdlb3Q/72jSaUY3m59pl/i9no+0WyiFzmNnIgMl7HYyr8wto6ubyAfM9cg6/bpR9AqnhLM9jmK2OjIQrgnAxH4f02oEhAsgGQZmvaIqCZWL1ui+Fwy5rr4NdwPuU3SfjavXazZgx1oJjcYeVLysAMOTCFPXiokANoSXGhXRXBDzgaHZxklxEOHCwsUU3qlmgehlvViWK6ORx8veA5t5iy94jb1fu3mpGFPs5bv+sFmP8bduxFNtgGFnNIX8e08Jt3XLZ5Y/e8JKGoPMndgn9ZbeivR1Dm+XT5vC6sojqRCExXPxsi3h0hODyU2RRKvZMVlZqsfbATrRtAZMwhmSJU2A/lYV6HdvqcccF/QhzG+a/lkEVlqjNKIaTtkFR0jyFxjWs3DXna3n5nlUsjWp7JVbtfjWI8ZMzIJV97C6jZMQWUg4baI48LosKgcm9T1sh9pKilqsuqEaJ0/HPYdbfBIJSnra20pPYqr4kNZFme9U9lsVtQk3b2HpCkNXTN3vOE/olCVaZ8UXF7JLpktsB/wEcHNldAWDBAAHl0mEwUC9CUN/sThFiXgX4S5qRJyFCR/z0aghkyXrF8Avo8KQAEezVjMR4ZX9U636/0sOjOSCx2JpWCRaFIAxG/pHIfyETOIVYAgt/fwuQGv1lqwk+8FcTRYPoOoJYXBxElxuHHr1fRODVKjf3E+56Bhe2gvcsfk1YXdByJzLURUAAQMIwA4WAgAAAAABBBYAFB9wB6hVKWpAxnOGYb7Z91S6B/x3B/wEcHNldAgEAAAAAAf8BHBzZXQCIBhpbPI+Mgmm6ER50B8T/nnJATVq5TkHzIgs/9PiZAEjB/wEcHNldAEhCCpn2QJu+7BVD3GeN4KxPqGSYsWhVFS+EylKSGMt9Jv5C/wIZWxlbWVudHMBIH2rvdOhaJhPuF4L8Vb0m2uvLokgNa2xp3ti3/X61M8pB/wEcHNldAMhClkW9TaYnFJFCqYNQKjX69IPn2XgtyqqqhmoEzV4H065C/wIZWxlbWVudHMDIFwSGwPpNygvr+tRDCxXIWTuelHRLQcFJLVWcAb7AOaDB/wEcHNldAYhAhwEYDMKhlqHAZK7Z1UgYr1B5cA2Tq2BAyfjY7XfCPR5B/wEcHNldAchAlRlQdVUMp5jBiWIld0Dd0y2o3d2orm8xr7/fKJvC0P1B/wEcHNldAT9ThBgMwAAAAAAAAABDXfnAYL0IFxEDbEFyDNz0b52lSZQf9xurE0e51M41/87lIgyhjmYcaWUtqQqcwGxtdKAb0VYFCiswMldC1rCmcS0jb/z6Qr0PVtxJgO0dkPj6rzLzKQGrNfQ/KihAQ6zpo5RrBCm8ib1iOcQukibLhaP7ablT82toEJY+Zq8uaPTeZXUZzSOuuU0V2RPvP0o4jfz0N5mEGEiu9QFgytdAmD5CdDkeG6BZXG9JQCcK42njzn+aYjYDyupueZp4Jaadaf6edtjy6gAcy0CmQKzVAGR9ZiKSoo5jnvyEMr0n6bRCLucyT2R21RB/xykX+Rvk0zf5y8j2kEIvuCEv3iAnX88OTSMeg2zprkjlbRDm5vDH0MK6xeaiKcGo3e243ewvjNQyXQ/JvTuvH2jnsBaejnlPxtp7UVAR6Gsa+2X0R86TIkL8bV/Ib8dhHCRvgsVuJEwWXr7cA+ghJKiWyzShWmnBux/0+dgOz68NtuXRSKZURK73XayzpeswAJiAuUcZOZx38IS/n0ZWyEIBAYrEuG50SapcJ3Qz5XmG8IzzW75+/KVx8Z9rjZNsfR5wAOUwWlHvFtXzr+H11CCdVAHF9gAz1dPQn86cHndfr4tBxErVXfKtTdvBZWDaPMeOU4lqZDIwV8hK6QLLw7y85y6HlE2UB6H2X5m7WeE8noopL1pdS63KlpRurSojzUGYrpUfHuRG1fcJOTUUQl/NM7BBbzej5xsiJKwl87rAzFWFJGY34E6gbERcf/TiYBNTn4loET894zHu0JHjzP17VCSgyuN9Z4UbTEV3nJoYK0dL5Vrs5R1UUy+2aKM4XjyTjaXVsfY+Zgulf1rYHmHMfjIXZ4rkifQ7CIn71JoAztpsqvHsLu/cCZmpuvPrj3TbjZ3HCuYba+M9b73QJ1W1vyKYm5K3KDxDOz40fNEs0gVbIM7K+DSy3wAWJ/I1IPNOsfCuVlktMp5vP+EaQL3DO0OlbmqYsvmy4SorY+6VrHzMVDR4QZ9xAFiq0ZDEK3PiO+TiCw2xlcis0gRiCg4kMvxQID67asszrCUkJsL3Y16c//IIVyhTQakNbdcdXkFol50ghwQhm1zsQOJZV75ferd7C14sFiQwxOmgQX0/KNq3CI2ctW9MTTQjIQ7Mc2zBo4k78B4c1fGfXlc9pliSb5nAfep4vM+XLp0rES20SQSQ6MH7s6jWEfoZ3N9ZpYmcscEwxKXN2u9PqvwB0X1LP+UpcSmO0HEyPnh75Kt5j8B7kkczU/tRg4GldBDXAI3l5x50WRSyfTqp0Bo0b7XfeNeTlUaYXWm0wn3ISJNlB1MGnXuCchvoqtsJrQ6XrRSTbz8edvaM4vBjrkQj4Q8EwhMg5qhw4TMhiZTykHDUtwKX+mJysDVMgB5N/XSgsOiEiP1MLdxv3h6kfdsqq8RzdcVsLwLOxSv1/sif5PJ6abxEJxbzzr3ndDP8RxSUHMs01qt2ruSvYbOrQDgJ43IiPBvZVvwQKNKpwaoX9ZkpS1XDmt0LWU45kGsKL3Md3osrQQj6o53llK+toon9jxLvLNin4OjeXrAO+hTC+HWYd7jMGhNON8wxYzeVSWG6Jypmw6VqQNdhzyVrNGRLgoAtviEM8D4WNlct32ZSJlwSduRuwDk3Aiete8DELPubZKghTLRf9dcwDkevnzwM4KltE51GXpRRZpnj/LxepB7EmjF+kR5kLMjpq5BXszS4sdi8EHKdOZqzUOp9HYoHIwuNBLkr5k44y32OwzRuD8MpuSu+BXdr4LD1Jj1pZDd3mKyG6Axdl7nb0QsOXCnEyfSFfb+c8wBwwko/MelTz+yFckhK6QMUlthBzd0Vq+DOgzX+nFuMqznguVwsf6hUMEejWrOG54jxriW4AM3Wx1d5dlMFdNmpoNVoWSas7knMD5TbS0g02A23P3R0uEFVVZMSft+56lkaFEkSNlOPj85cVxpLZvtxu76rR+8QcVuiD9EOpsSEED6Rbspgs+WsjpKUJSnDxvDB5caoIQd0zmLm8dk6PW/IeD26UJp0JXTU5cEQ1Jn3MY0uwRv+2Go4tphv6pAkhRV+sEYejINori4gh4KXSOGgD93jNvGWsJt0J+FRPfPT5litso/Ks3t4QyAzKr7dmqVt6C0ri/53U50OyKYg+AiYS+2qjOzLKtVxB8ZaKDQh105GJvkiNtMdqXDI4IX9VnSdPqdfU6QkeSAYlAqPBpH8DZ+K6foBbg0HjH98qEj5WMl9XoXUX2naGdC7knHN97CIc8uz/GwpmtbdU/DIgeqbBriROX23qkASNaiz3ruyPWzaXT0ncdNUTqYWo84yUHiYvE3SC8ElGceAa99c0CS10K1eYk94Z5AoDAW+njpfdOaQCN0lZJ05GzpJoCl3E6+KiH0FXGIveOC+0o3ZJ8bktEB9V148JsyVY3Hui9wlTqUOBvWaiAgqNiV2zO8+vk18HrqsWnCKLCdyxTBntFS7FhlDbfVhZJRA/mM9ohYF06NeFyNdAqEb/3Tm1mljL5dktddSGB+FtTcBEfjMY0lmPxco5/m0k7ZGCFEWhO8OdlRHeqsVRUiLGs6TWOfIQULHUqLsA2gmiZAijXdOqQedB8lNpkUxFXRz/6DgEXSQB35USAcmNbFb0/ngKjm7+fX8cdaLk7tWR2O2SITOx6j+aXXwS0X+QynqgvN2GX8oA78zR2pWtZTzk6/0+RuhTFkm8cu/w4XuBQbv0sD2IurSdYdue4IJRb4CpQtEdab7yQY+BZXfTwIuqQkFJayt+24W/tlKb22xhh35RjIRve7gXIGyfQtqT+9stbH4TP+upYtMcgGUUyJMlcfvF+1z4dn0NKIUu/arDyhctIPm7IfJsmXF74/URVlC/slq3cSpBwwfzLaceqShFCt4xSI3pNWOFSSsXYsq3Sa8GH9zt3FCfTIkgWdmDvjsyFTJveOAUX66oMtKlI6UyffV/UeA8AntEzb4n5jKZ2ZIX5hZbmSPIYytdGZdLQ1y7Pt+x5nnj3q7PCMXjXctTjpuEcAywM6Uz2e6iFUaoHIVUHTxwu8wvhWFHHUJjXMamHyA/+Qo02/XObyTHgFZpXHBOEXQlUtlIzayTmpYfn9CoTkRVQZ8FIQnzBlhWMBg8e4A1k1xDFvTP+LQoSh1IajVxQjbI0oz/LdZAQMIx1dsYrkJQFTZTQHGD1IDln+KSEJU8XN27jPNevHjq6ylTqVwruZKgg/iauf2pDmr8LkS5YmS3eiUF0druKBBNTgLsSMkZgHrNrxXBTXN29dXWp5z6EJjmq/wEheeyOpH+TBffk2qMAJ0ZPmrr94n1yaZAIaH5poDfuWwYvJEloMgNf4cJLNTjFHYR47w11WuoYeZCQUYWgRsE6Ve2CE8VhAjp7FAYXXNHg5YbVy5JIfDjOKr3temKty1YjhIkMUFkDVaLvjHnKwMVHlKtx436czMVZHxhCf37UZhoL7CT1KGn8IHMpcx6sH304dDvqGq/X6sIlyjDBq8KPitcojKUG5A1k70qYJTjBCBAWnztBWtNFCr3GlWizcU9EOSE8Mkug+CxLKLEt//OxUS5OPz97uAAkCmdZ3UhEx+H4/8gv18YxCQYmP52PHJJqsVQjMQJjw15bS7+dJnJOydSh7ZW9CpJYQ9Pf9nWUxZgRywqWsTXpRSy4kl9+p/RFfxZP8m8xCbuaVEVpJUeK0adSmEwOHdlr3uqg6W9bQuVmn0qfBnD5SmKQOJD4Vjk2YurHqRk1YiJKX5AIMPcgk+6y9jMLqu8znpa4hRejbg/hDW34oezg7+bzA1Gdi6/3oRGr5UJYtjG1I0AEQ4sApJnjLmvYDl9tHdc4tnk8jvzJp/a5P1Ml5qCb9Lle7/VaO2vJotHyveSp/SNNjEU3l74101T3LhB6/E7eF18Dd9t6Llrz3M50Sr6sKYfjvyUoAGKnPacpi9Zqg0mqln83iKG3ks6IpAmoFT+tJEW9qtfztDPqgCsS6Lr3mPMgkmkAj0nM4HMYVQ3zYXbwxpT84GfFZkSPXiv3LO7pbBcS6XRc06M0GXaymDuCGkwNkkmwGhhRqgkUHlEQBG+tSYVmKFwixON/l698/NbO61P82AmeiTRl3b8bHnoafczV4TgMM/xTDi47L2IDZq+fXBI4UVixNoIsmTiDefjQQC3pIcp9NUhABiCSKcTVhs7Qj8CdkqYlJ+fXFevD/rdVZcW7XOljdT28p5sXSG0Rw9x7LhQxfl0CnhSFZb55HHozw2mh0iwH+IvXAcplr3ri8OSiiX7EnF15iCvIqklBOMr2+8cajk8XwSK5Qj1g6xpor18qH7fi192/SUJmiHy+urhDP8jkj+5vpzVu9OUsiIGaiAjOyjQyR7YOABvKZz5AHerps4jw5xMc4yFHnMkJaa7N4txe1WuUrQ2SV3cvkKzaqw5W8Ngwc+Zr7wpAIWvCjvne0Sf9yiUgCwXBJCGSMQ12Kxc1y28tT5PTjvDTgENcep9DDY5AMp3oA1ENk8A6uKlsE9GSK6vx5VZzgWSPn0mYWXeLWWPi7Q6sBNnbHAg4xK7LbF6bNXfXrsKkP5sgid7V7Crzz+Dpv6kFMvBfP0Utb5+X5R+W2ievkaP/nJ36GC7A1Xn8NA5bqRwBtDr97dx93b4KjXIfDV8cpKoB3gC2aWMwTYJLJXp0bf8c4Rz4DvFIU51/By/n5iNp/ydLiATVe/X4VvrTjKAiz6ZoEDGUZ0xYure7aNocuwXbnzTFoAnzM9Vhi76GUs1fX13+6A+VYZF4qWdF5dmZA1JUu2/Y1Vgl/zWrh+aSqKJlvJK76d9ONqqb53RIpLTyZQRRMm8PrZomihJd2fQhKBYLtExwnmET7/jpXspt5dDyK4/y4gLqzw9fkHP0qJfraxztY78oF3pE0YNVve9h0rQlkVaXqUbrwGENz7dwK2xJ9NrPf1SWBl6WKwS/504HND+1F6IYsXXg7TRsmyLRVHE+2NprFluiVl7IuA92CVDGLztCvT4Nzyd8LyvKDZYsUj+h57dGkAJbVGZbxc/CLsgaX1ogdCLe5oa9GpGzmX0GF9dAgZrOIWWvDoRjBp6fItn57JPhockrr0y5PYZRhCSWBz5y7tInpQW1yznwSfCQTKt0M0CcMIl/NWOd17vPGSMQMeQ+YJA9K0eFylBYGrgJN0X0u0C+JKJwnaBUo6qMWTQE+RKPzPS3rlz+2Xbd016dKvKnqLkdmNxB7ehULvgzbzjxIYb35RlW/7ipebHDX8/M2fkWsSchMW3yQg/LVfVRm9xCoyDuSVBs+lfV/4s8LifTAf4QguC0XmHD0EKtxJdWC1q0UImTAihEteJ9pTrc8Y/M1dg38/JCJAzlwDa/kAR/U1Cj1D7HSf9+IagSgrqFW9Zj2o/8kyy6wueFTjR5Sf64Gp+M8SpEJB7gSOeWuTUi28oHf8lo/uSh8HcihsgGYNGItM/k98Sy2jQ797Egi6a1Vq8ny67i8YVNnrM8Nv7G/sjb1O7lm4xk7wjDI1iFVFR1qIApkR0YXxQD+5oGVEXCiNM2KhYNdsTWazK0YqZYfB/wEcHNldAWDBAANtLlaFjSBKOQN/b5texX/su6iCupxZx8zAoh8+nBxWABXPT9KoF69t82UULufUMRo0PCINjL4HiWXnCa7IN5QCTf5Hy2B73ylHZlSzsUf8sDcYR9COWlkMzCJlCtfS3kmFAc+yN6EmawEAnl11lqrUC0331Nigs6n4Vy1P3Jx3cgAAQMINAEAAAAAAAABBAAH/ARwc2V0CAQAAAAAB/wEcHNldAIgGGls8j4yCaboRHnQHxP+eckBNWrlOQfMiCz/0+JkASMA", ] -class PSETTest(TestCase): +class PSETViewTest(TestCase): def test_scopes(self): for psetb64 in PSETS: pset = PSET.from_string(psetb64) diff --git a/tests/tests/test_taproot.py b/tests/tests/test_taproot.py index c744fb8..8b0034f 100644 --- a/tests/tests/test_taproot.py +++ b/tests/tests/test_taproot.py @@ -5,6 +5,7 @@ from embit.script import p2tr, address_to_scriptpubkey from embit.descriptor import Descriptor from embit.psbt import DerivationPath, PSBT +from embit.psbtview import PSBTView from embit.ec import SchnorrSig, PublicKey from embit.transaction import SIGHASH from embit.psbtview import PSBTView @@ -39,6 +40,8 @@ # Case: PSBT with one P2TR key only input with internal key and its derivation path (includes `PSBT_IN_TAP_BIP32_DERIVATION` and `PSBT_IN_TAP_INTERNAL_KEY`) TAPROOT_01 = "70736274ff010052020000000127744ababf3027fe0d6cf23a96eee2efb188ef52301954585883e69b6624b2420000000000ffffffff0148e6052a01000000160014768e1eeb4cf420866033f80aceff0f9720744969000000000001012b00f2052a010000002251205a2c2cf5b52cf31f83ad2e8da63ff03183ecd8f609c7510ae8a48e03910a07572116fe349064c98d6e2a853fa3c9b12bd8b304a19c195c60efa7ee2393046d3fa2321900772b2da75600008001000080000000800100000000000000011720fe349064c98d6e2a853fa3c9b12bd8b304a19c195c60efa7ee2393046d3fa232002202036b772a6db74d8753c98a827958de6c78ab3312109f37d3e0304484242ece73d818772b2da7540000800100008000000080000000000000000000" +# Test vectors generated from master branch of Bitcoin Core +KEY_A = HDKey.from_string("xprv9s21ZrQH143K3GJpoapnV8SFfukcVBSfeCficPSGfubmSFDxo1kuHnLisriDvSnRRuL2Qrg5ggqHKNVpxR86QEC8w35uxmGoggxtQTPvfUu") # psbt with taproot derivations TAP_PSBTS = [ # tr(A) @@ -46,6 +49,10 @@ # tr(A,{{pk(B),pk(C)},pk(D)}) "cHNidP8BAH0CAAAAAUAaxszo/duEBuHMtAC7DT2fNdfsnS4wy8vF3hAB/UlJAAAAAAD9////AoCWmAAAAAAAFgAUcCRqeVJZLDGtwLBhaMBPE63W5WnySV0FAAAAACJRIBrRhQ5SjnkT5tE70JEBxp9xkb4uBIHRIzkxac7HP5ZTAAAAAAABASsA4fUFAAAAACJRIFKH/tGO0Q0s2Smklua645o2AiaKUkBJnG3YDvfOcbbVQhXBVTVcqDyXPx2Xzg44Q8hdeJBa8WtNxTG8SI5XIS0jARZUoQdnQp/8bMLMLulMq6QGi4+kememhbEVYTvrM2DmDyMgBB+2r5b0+qaabbiKXfGsCCZ/X5i6EoOa82ErtH5BigCswGIVwVU1XKg8lz8dl84OOEPIXXiQWvFrTcUxvEiOVyEtIwEWFGi48vIp9D+FdjTmg1ubdkSHIVzdfVMACq33siHM79pMxC/7Yq3dbpesX7UJSDHq71fmbAYALaDQdod4fu5JsSMgBgozO1jxe6uPd2hvHYlLTaKei2UIjBpBGIJfyCL/os6swGIVwVU1XKg8lz8dl84OOEPIXXiQWvFrTcUxvEiOVyEtIwEWMbziDCAn/bPsPqCxK0QUbVF34xa8bETwhZ1jFzu+SvNMxC/7Yq3dbpesX7UJSDHq71fmbAYALaDQdod4fu5JsSMgtpzeELVS/INwpBPZEQhNBIUStilyPL6A7W14NH4UZeSswCEWBB+2r5b0+qaabbiKXfGsCCZ/X5i6EoOa82ErtH5BigA5AUzEL/tird1ul6xftQlIMervV+ZsBgAtoNB2h3h+7kmxAgjLd1YAAIABAACAAAAAgAAAAAAAAAAAIRYGCjM7WPF7q493aG8diUtNop6LZQiMGkEYgl/IIv+izjkBMbziDCAn/bPsPqCxK0QUbVF34xa8bETwhZ1jFzu+SvNH/BuhVgAAgAEAAIAAAACAAAAAAAAAAAAhFlU1XKg8lz8dl84OOEPIXXiQWvFrTcUxvEiOVyEtIwEWGQBzxdoKVgAAgAEAAIAAAACAAAAAAAAAAAAhFrac3hC1UvyDcKQT2REITQSFErYpcjy+gO1teDR+FGXkOQEUaLjy8in0P4V2NOaDW5t2RIchXN19UwAKrfeyIczv2vt8HxFWAACAAQAAgAAAAIAAAAAAAAAAAAEXIFU1XKg8lz8dl84OOEPIXXiQWvFrTcUxvEiOVyEtIwEWARggyx1Uf/jQ00tM3UjsFjZveDZgMfHHVAqzX2EeP2HYuVgAAAEFICDrkFAGiwE73j0gTbWaxdsqHHioqiUHP78uetSdBRXGAQZvAcAiIBzPJ1Xc+LktQvZ2DfUHF8ZjLstb2yy8knw6sWGa6npzrALAIiB7XX2FRbhtQQ1OMFHZrKQJgm9Uy11VIkks1y6DlEvafqwCwCIg0OVDwS5pv86EQus8QaNW31/onw7JQJ1aEgD4mu/9Iv2sIQcczydV3Pi5LUL2dg31BxfGYy7LW9ssvJJ8OrFhmup6czkBf88QfvUR3XwjmSYdA3uHV+ve/BhYs0/r70731kheDW8CCMt3VgAAgAEAAIAAAACAAQAAAAEAAAAhByDrkFAGiwE73j0gTbWaxdsqHHioqiUHP78uetSdBRXGGQBzxdoKVgAAgAEAAIAAAACAAQAAAAEAAAAhB3tdfYVFuG1BDU4wUdmspAmCb1TLXVUiSSzXLoOUS9p+OQGzJ3RT0eho23a5cca/2jX8AETEICnTMTP12ajR30czFEf8G6FWAACAAQAAgAAAAIABAAAAAQAAACEH0OVDwS5pv86EQus8QaNW31/onw7JQJ1aEgD4mu/9Iv05ATfGpiWBWMHLfN4FazQuz2SBvTDiVWvd3kqLsLZGpyDW+3wfEVYAAIABAACAAAAAgAEAAAABAAAAAA==", ] +TAP_SIGS = [ + (unhexlify("6f7f1255071fb5a103b5a4d3e5e295d19e9701e58fa1c457e92733c53ed16804f1036c90f30f6c4753a884c2be8b7d4a7c30a2a86dbfb0e8010bdf7064fd70f7"),), + (), +] class TaprootTest(TestCase): def test_script(self): @@ -166,4 +173,35 @@ def test_serialize_deserialize(self): ser = psbt.to_string() self.assertEqual(len(ser), len(b64)) psbt2 = PSBT.from_string(ser) - assert psbt == psbt2 \ No newline at end of file + assert psbt == psbt2 + + def test_sign(self): + psbt = PSBT.from_string(TAP_PSBTS[0]) + psbt.sign_with(KEY_A) + self.assertEqual(psbt.inputs[0].final_scriptwitness.items[0], TAP_SIGS[0][0]) + + def test_owns(self): + d = Descriptor.from_string("tr(%s/86h/1h/0h/{0,1}/*)" % KEY_A) + psbt = PSBT.from_string(TAP_PSBTS[0]) + # in this PSBT whenever we have derivations it is owned by the descriptor + for sc in psbt.inputs + psbt.outputs: + self.assertEqual(d.owns(sc), bool(sc.taproot_bip32_derivations)) + + def test_sign_psbtview(self): + psbt = PSBT.from_string(TAP_PSBTS[0]) + b = BytesIO(psbt.serialize()) + psbtv = PSBTView.view(b) + # sign into signature stream + sigs_stream = BytesIO() + psbt.sign_with(KEY_A) + psbtv.sign_with(KEY_A, sigs_stream) + sigs_stream.seek(0,0) + # serialize psbtview into bytestream and parse back into psbt - for convenient + ser = BytesIO() + psbtv.write_to(ser, extra_input_streams=[sigs_stream]) + ser.seek(0,0) + psbt2 = PSBT.read_from(ser) + # check signatures in every input + for inp1, inp2 in zip(psbt.inputs, psbt2.inputs): + self.assertTrue(bool(inp1.final_scriptwitness)) # test not empty + self.assertEqual(inp1.final_scriptwitness, inp2.final_scriptwitness) # test psbt and psbtview give the same results diff --git a/tests/tests/test_threading.py b/tests/tests/test_threading.py index 1ab43f5..740c692 100644 --- a/tests/tests/test_threading.py +++ b/tests/tests/test_threading.py @@ -11,7 +11,7 @@ BLINDED = "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" REBLINDED = "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" -class TaprootTest(TestCase): +class ThreadingTest(TestCase): # run blind-unblind in a thread or multiple threads def unblind_thread(self, pset, i, unblinded=None, blinded=None, reblinded=None): # check we can unblind