
    wg\j                        S SK r S SKJr  S SKJr  S SKJr  S SKJrJr  S SKJrJ	r	  SSS	S
SSS.r
SSS	S
SSSS.rSSS	SSS.rSSS	SSSSSSSSS.rSSS	SSS.rSS S!S"S#S.rS$rS%rS&r\< S'\< S'\< 3r\\\S(./S).r\\\S*.rS+rS,r\< S'\< S'\< 3r\\\S(./S).r\\\S*.rS-rS.r\< S'\< S'\< 3r\\\S(./S).r\\\S*.rS/r S0r!\ < S'\< S'\!< 3r"\\ \!S(./S).r#\\ \!S*.r$S1r%S2S0r&S3r'\\%\&\'S4./S).r(\\%\&\'S5.r)SSS6.r*S7r+\\*\+S8./S).r,\\*\+S9.r-S:r.S2S0r/S;r0S<SS6.r1S=r2S/r3S0r4\\.\/\0S4.\1\2S8.\3\4S(./S).r5 " S> S?\ Rl                  5      r7S@r8SSAS!SBSSCSDSESFSGSHS.r9SIr:SJr;SKr<SLr=SMr>\<< S'\;< S'\:< S'\=< S'\>< 3	r?SN\;0/\<\:\=\>SO.r@\<\;\:\=\>SP.rASSQS!SRSSSSTSUSVSWSXSYSZ.rBS[rCS\rDS]rES^rFS_rG\E< S'\D< S'\C< S'\F< S'\G< 3	rHSN\D0/\E\C\F\GSO.rI\E\D\C\F\GSP.rJS`rKSarLSbrMScrNSdSeSfSg.rOShrPSirQSjrR\P< S'\N< S'\M< S'\Q< S'\R< 3	rSSN\N0/\P\M\Q\RSO.rT\P\N\M\Q\RSP.rUSSkS!SlSmSnSoS.rVSprWSqrXSrSkSsSt.rYSurZSvr[Swr\\Z< S'\X< S'\W< S'\[< S'\\< 3	r]SN\X0/\Z\W\[\\SO.r^\Z\X\W\[\\SP.r_SSxS!SySzS{S|S.r`S}raS~SxSfSt.rbSrcSrdSre\c< S\a< S'\d< S'\e< 3rf\c\a\d\eS.rgSSS!SsSS.rhSriSrjSrkSrl\j< S\i< S'\k< S'\l< 3rm\j\i\k\lS.rnSSS!SSS.roSrpSrqSSSfSt.rrSrsSrtSru\s< S'\q< S'\p< S'\t< S'\u< 3	rvSN\q0/\s\p\t\uSO.rw\s\q\p\t\uSP.rxSSS!SSS.rySrzSr{Sr|Sr}Sr~\|< S'\{< S'\z< S'\}< S'\~< 3	rSN\{0/\|\z\}\~SO.r\|\{\z\}\~SP.rSrSrSrSrSr\< S'\< S'\< S'\< S'\< 3	rSN\0/\\\\SO.r\\\\\SP.r\" \	" SS0 SS/S0 SS/S0 S/ SQ/S0 SS/S0 SS///5      5      rSrSrSrSrSrSN\0/\\\\\S.r\\\\\\S.rSrSrSrSrSrSSS6.rSN\0/\\\\\S.r\\\\\\S.rSrSrSrSrSSSsSt.rSN\0/\\\\S.r\\\\\S.r " S S\ Rl                  5      rg)    N)jwe)jwk)jws)base64url_decodebase64url_encode)json_decodejson_encodeECzbilbo.baggins@hobbiton.examplesigzP-521zXAHKZLLOsCOzz5cY97ewNUajB957y-C-U88c3v13nmGZx6sYl_oJXu9A5RkTKqjqvjyekWF-7ytDyRXYgCF5cj0KtzXAdymlHvOiLxXkEhayXQnNCvDX4h9htZaCJN34kfmC6pV5OhQHiraVySsUdaQkAgDPrwQrJmbnX9cwlGfP-HqHZR1)ktykidusecrvxyzXAAhRON2r9cqXX1hg-RoI6R1tX5p2rUAYdmpHZoC1XNM56KtscrX6zbKipQrCW9CGZH3T4ubpnoTKLDYJ_fF3_rJt)r   r   r   r   r   r   dRSAaV  n4EPtAOCc9AlkeQHPzHStgAbgs7bTZLwUBZdR8_KuKPEHLd4rHVTeT-O-XV2jRojdNhxJWTDvNd7nqQ0VEiZQHz_AJmSCpMaJMRBSFKrKb2wqVwGU_NsYOYL-QtiWN2lbzcEe6XC0dApr5ydQLrHqkHHig3RBordaZ6Aj-oBHqFEHYpPe7Tpe-OfVfHd1E6cS6M1FZcD1NNLYD5lFHpPI9bTwJlsde3uhGqC0ZCuEHg8lhzwOHrtIQbS0FVbb9k3-tVTU4fg_3L_vniUFAKwuCLqKnS2BYwdq_mzSnbLY7h_qixoR7jig3__kRhuaxwUkRz5iaiQkqgc5gHdrNP5zwAQAB)r   r   r   neaV  bWUC9B-EFRIo8kpGfh0ZuyGPvMNKvYWNtB_ikiH9k20eT-O1q_I78eiZkpXxXQ0UTEs2LsNRS-8uJbvQ-A1irkwMSMkK1J3XTGgdrhCku9gRldY7sNA_AKZGh-Q661_42rINLRCe8W-nZ34ui_qOfkLnK9QWDDqpaIsA-bMwWWSDFu2MUBYwkHTMEzLYGqOe04noqeq1hExBTHBOBdkMXiuFhUq1BU6l-DqEiWxqg82sXt2h-LMnT3046AOYJoRioz75tSUQfGCshWTBnP5uDjd18kKhyv07lhfSJdrPdM5Plyl21hsFf4L_mHCuoFau7gdsPfHPxxjVOcOpBrQzwQz3Slxg_DwTXJcb6095RoXygQCAZ5RnAvZlno1yhHtnUex_fp7AZ_9nRaO7HX_-SFfGQeutao2TDjDAWU4Vupk8rw9JR0AzZ0N2fvuIAmr_WCsmGpeNqQnev1T7IyEsnh8UMt-n5CafhkikzhEsrmndH6LxOrvRJlsPp6Zv8bUq0kzuKE2dh-cTf6ERF4k4e_jy78GfPYUIaUyoSSJuBzp3Cubk3OCqs6grT8bR_cu0Dm1MZwWmtdqDyI95HrUeq3MP15vMMON8lHTeZu2lmKvwqW7anV5UzhM1iZ7z4yMkuUwFWoBvyY898EXvRD-hdqRxHlSqAZ192zB3pVFJ0s7pFczB8PVvXkvJrj2L-GYQ7v3y9r6Kw5g9SahXBwsWUzp19TVlgI-YV85q1NIb1rxQtD-IsXXR3-TanevuRPRt5OBOdiMGQp8pbt26gljYfKU_E9xn-RULHz0-ed9E9gXLKD4VGngpz-PfQ_q29pk5xWHoJp009Qf1HvChixRX59ehikzCLDmDGduhylc9o7r84rEUVn7pzQ6PF83Y-iBZx5NT-TpnOZKF1pErAMVeKzFEl41DlHHqqBLSM0W1sOFbwTxYWZDm6sI6og5iTbwQGIC3gnJKbi_7k_vJgGHwHxgPaX2PnvP-zyEkDERuf-ry4c_Z11Cq9AqC2yeL6kdKT1cYF8z3PiqvXQN0zwMeE-sBvZgi289XP9XCQF3VWqPzMKnIgQp7_Tugo6-NZBKCQsMf3HaEGBjTVJs_jcK8-TRXvaKe-7ZMaQj8VfBdYkssbu0NKDDhjJ-GtiseaDVWt7dcH0cfwxgFUHpQh7FoCrjFJ6h6ZEpMF6xmujs4qMpPz8aaI4)r   r   r   r   r   r   pqdpdqqioctz$018c0ae5-4d9b-471b-bfd6-eef314bc7037HS256z+hJtXIZ2uSN5kbQfbtTNWbpdmhkV8FJG-Onbc6mxCcYg)r   r   r   algkz$1e571774-2e08-40da-8308-e8d68773842dencA256GCMz+AAPapAv4LbFbiVawEjagUBluYqN5rhna-8nuldDvOx8SXTigJlzIGEgZGFuZ2Vyb3VzIGJ1c2luZXNzLCBGcm9kbywgZ29pbmcgb3V0IHlvdXIgZG9vci4gWW91IHN0ZXAgb250byB0aGUgcm9hZCwgYW5kIGlmIHlvdSBkb24ndCBrZWVwIHlvdXIgZmVldCwgdGhlcmXigJlzIG5vIGtub3dpbmcgd2hlcmUgeW91IG1pZ2h0IGJlIHN3ZXB0IG9mZiB0by4HeyJhbGciOiJSUzI1NiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhbXBsZSJ9aV  MRjdkly7_-oTPTS3AXP41iQIGKa80A0ZmTuV5MEaHoxnW2e5CZ5NlKtainoFmKZopdHM1O2U4mwzJdQx996ivp83xuglII7PNDi84wnB-BDkoBwA78185hX-Es4JIwmDLJK3lfWRa-XtL0RnltuYv746iYTh_qHRD68BNt1uSNCrUCTJDt5aAE6x8wW1Kt9eRo4QPocSadnHXFxnt8Is9UzpERV0ePPQdLuW3IS_de3xyIrDaLGdjluPxUAhb6L2aXic1U12podGU0KLUQSE_oI-ZnmKJ3F4uOZDnd6QZWJushZ41Axf_fcIe8u9ipH84ogoree7vjbU5y18kDquDg.)	protected	signature)payload
signatures)r'   r%   r&   HeyJhbGciOiJQUzM4NCIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhbXBsZSJ9aV  cu22eBqkYDKgIlTpzDXGvaFfz6WGoz7fUDcfT0kkOy42miAh2qyBzk1xEsnk2IpN6-tPid6VrklHkqsGqDqHCdP6O8TTB5dDDItllVo6_1OLPpcbUrhiUSMxbbXUvdvWXzg-UD8biiReQFlfz28zGWVsdiNAUf8ZnyPEgVFn442ZdNqiVJRmBqrYRXe8P_ijQ7p8Vdz0TTrxUeT3lm8d9shnr2lfJT8ImUjvAA2Xez2Mlp8cBE5awDzT0qI0n6uiP1aCN_2_jLAeQTlqRHtfa64QQSUmFAAjVKPbByi7xho0uTOcbH510a6GYmJUAfmWjwZ6oD4ifKo8DYM-X72EawHeyJhbGciOiJFUzUxMiIsImtpZCI6ImJpbGJvLmJhZ2dpbnNAaG9iYml0b24uZXhhbXBsZSJ9zAE_R_YZCChjn4791jSQCrdPZCNYqHXCTZH0-JZGYNlaAjP2kqaluUIIUnC9qvbu9Plon7KRTzoNEuT4Va2cmL1eJAQy3mtPBu_u_sDDyYjnAMDxXPn7XrT0lw-kvAD890jl8e2puQens_IEKBpHABlsbEPX6sFY8OcGDqoRuBomu9xQ2PeyJhbGciOiJIUzI1NiIsImtpZCI6IjAxOGMwYWU1LTRkOWItNDcxYi1iZmQ2LWVlZjMxNGJjNzAzNyJ9+s0h6KThzkfBBBkLspW1h84VsJZFTsPPqMDA7g1Md7p0eyJhbGciOiJIUzI1NiJ9r   +bWUSVaxorn7bEF1djytBd0kHv70Ly5pvbomzMWSOr20)r%   headerr&   )r'   r%   r/   r&   )r   r   +xuLifqLGiblpv9zBpuZczWhNj1gARaLV3UxvxhJxZuk)r/   r&   )r'   r/   r&   eyJhbGciOiJSUzI1NiJ9aV  MIsjqtVlOpa71KE-Mss8_Nq2YH4FGhiocsqrgi5NvyG53uoimic1tcMdSg-qptrzZc7CG6Svw2Y13TDIqHzTUrL_lR2ZFcryNFiHkSw129EghGpwkpxaTn_THJTCglNbADko1MZBCdwzJxwqZc-1RlpO2HibUYyXSwO97BSe0_evZKdjvvKSgsIqjytKSeAMbhMBdMma622_BG5t4sdbuCHtFjp9iJmkio47AIwqkZV1aIZsv33uPUqBBCXbYoQJwt7mxPftHmNlGoOSMxR_3thmXTCm4US-xiNOyhbm8afKK64jU6_TPtQHiJeQJxz9G3Tx-083B745_AfYOnlC9wES512zARcVLnaJJaUWG8fG-8t5BREVAuTY8n8YHjwDO1muhcdCoFZFFjfISu0Cdkn9Ybdlmi54ho0x924DUz8sK7ZXkhc7AFM8ObLfTvNCrqcI3Jkl2U5IX3utNhODH6v7xgy1Qahsn0fyb4zSAkje8bAWz4vIfj5pCMYxxm4fgV3q7ZYhm5eDc                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)Cookbook08JWSTestsi%  c                    [        [        5      n[        [        5      R                  S5      n[        R
                  " S0 [        D6n[        R
                  " S0 [        D6n[        R                  " US9nUR                  US U5        U R                  [        UR                  SS95        UR                  [        [         5      U5        UR                  [        ["        5      U5        g Nutf-8r'   Tcompact )r   Payload_plaintext_b64_4JWS_Protected_Header_4_1_2decoder   JWKRSA_Public_Key_3_3RSA_Private_Key_3_4r   JWSadd_signatureassertEqualJWS_compact_4_1_3	serializedeserializer	   JWS_general_4_1_3JWS_flattened_4_1_3)self	plaintextr%   pub_keypri_keyss         R/home/edenadmin/noVNC/venv/lib/python3.13/site-packages/jwcrypto/tests-cookbook.pytest_4_1_signing#Cookbook08JWSTests.test_4_1_signing'  s    $%<=	78??H 	''/./''0/0GGI&	y1*AKKK,EF	k"34g>	k"56@    c                    [        [        5      n[        [        5      R                  S5      n[        R
                  " S0 [        D6n[        R
                  " S0 [        D6n[        R                  " US9nUR                  US U5        UR                  5       nUR                  Xc5        UR                  [        U5        UR                  [        [        5      U5        UR                  [        [         5      U5        g Nr7   r8   r;   )r   r<   JWS_Protected_Header_4_2_2r>   r   r?   r@   rA   r   rB   rC   rF   rG   JWS_compact_4_2_3r	   JWS_general_4_2_3JWS_flattened_4_2_3rJ   rK   r%   rL   rM   rN   r   s          rO   test_4_2_signing#Cookbook08JWSTests.test_4_2_signing3  s    $%<=	78??H 	''/./''0/0GGI&	y1 kkm	c#	'1	k"34g>	k"56@rR   c                    [        [        5      n[        [        5      R                  S5      n[        R
                  " S0 [        D6n[        R
                  " S0 [        D6n[        R                  " US9nUR                  US U5        UR                  5       nUR                  Xc5        UR                  [        U5        UR                  [        [        5      U5        UR                  [        [         5      U5        g rT   )r   r<   JWS_Protected_Header_4_3_2r>   r   r?   EC_Public_Key_3_1EC_Private_Key_3_2r   rB   rC   rF   rG   JWS_compact_4_3_3r	   JWS_general_4_3_3JWS_flattened_4_3_3rY   s          rO   test_4_3_signing#Cookbook08JWSTests.test_4_3_signingD  s    $%<=	78??H 	''.-.''/./GGI&	y1 kkm	c#	'1	k"34g>	k"56@rR   c                    [        [        5      n[        [        5      R                  S5      n[        R
                  " S0 [        D6n[        R                  " US9nUR                  US U5        UR                  SS9nUR                  XS5        U R                  U[        5        UR                  [        U5        UR                  [        [        5      U5        UR                  [        [         5      U5        g r6   )r   r<   JWS_Protected_Header_4_4_2r>   r   r?   Symmetric_Key_MAC_3_5r   rB   rC   rF   rG   rD   JWS_compact_4_4_3r	   JWS_general_4_4_3JWS_flattened_4_4_3)rJ   rK   r%   keyrN   r   s         rO   test_4_4_signing#Cookbook08JWSTests.test_4_4_signingU  s    $%<=	78??H 	gg.-.GGI&	T9-kk$k'	c/0	'-	k"34c:	k"56<rR   c                    [        [        5      n[        [        5      R                  S5      n[	        [
        5      n[        R                  " S0 [        D6n[        R                  " US9nUR                  US X#5        UR                  5       nUR                  Xd5        U R                  [        U5      [         5        UR                  [	        ["        5      U5        UR                  [	        [         5      U5        g rT   )r   r<   JWS_Protected_Header_4_6_2r>   r	   JWS_Unprotected_Header_4_6_2r   r?   rg   r   rB   rC   rF   rG   rD   r   JWS_flattened_4_6_3JWS_general_4_6_3)rJ   rK   r%   r/   rk   rN   r   s          rO   test_4_6_signing#Cookbook08JWSTests.test_4_6_signingd  s    $%<=	78??H 	9:gg.-.GGI&	T95kkm	cS)+>?	k"34c:	k"56<rR   c                    [        [        5      n[        [        5      n[        R
                  " S0 [        D6n[        R                  " US9nUR                  US S U5        UR                  5       nUR                  XS5        U R                  [        U5      [        5        UR                  [        [        5      U5        UR                  [        [        5      U5        g )Nr8   r;   )r   r<   r	   JWS_Unprotected_Header_4_7_2r   r?   rg   r   rB   rC   rF   rG   rD   r   JWS_flattened_4_7_3JWS_general_4_7_3)rJ   rK   r/   rk   rN   r   s         rO   test_4_7_signing#Cookbook08JWSTests.test_4_7_signings  s    $%<=	9:gg.-.GGI&	T40kkm	cS)+>?	k"34c:	k"56<rR   c                    [        [        5      n[        R                  " US9n[        [        5      R                  S5      n[        [        5      n[        R                  " S0 [        D6nUR                  US X45        [        [        5      n[        R                  " S0 [        D6nUR                  US S U5        [        [        5      R                  S5      n[        R                  " S0 [        D6nUR                  US U5        UR!                  5       n[        R                  " S0 ["        D6n[        R                  " S0 [$        D6n	UR'                  Xx5        UR'                  Xy5        UR'                  Xv5        UR'                  [        [(        5      U5        UR'                  [        [(        5      U	5        UR'                  [        [(        5      U5        g )Nr8   r7   r;   )r   r<   r   rB   JWS_Protected_Header_4_8_2r>   r	   JWS_Unprotected_Header_4_8_2r   r?   rA   rC   JWS_Unprotected_Header_4_8_3r_   JWS_Protected_Header_4_8_4rg   rF   r@   r^   rG   JWS_general_4_8_5)
rJ   rK   rN   r%   r/   rM   sym_keyr   rsa_keyec_keys
             rO   test_4_8_signing#Cookbook08JWSTests.test_4_8_signing  s`   $%<=	GGI& 78??H 	9:''0/0	y99:''/./	tV4 78??H 	''212	y1kkm ''/./-,-	c#	c"	c#	k"34g>	k"34f=	k"34g>rR   r;   N)__name__
__module____qualname____firstlineno__rP   rZ   rc   rl   rs   ry   r   __static_attributes__r;   rR   rO   r4   r4   %  s(    
AA"A"===?rR   r4   s  You can trust us to stick with you through thick and thin–to the bitter end. And you can trust us to keep any secret of yours–closer than you keep it yourself. But you cannot trust us to let you face trouble alone, and go off without a word. We are your friends, Frodo.zfrodo.baggins@hobbiton.exampleaV  maxhbsmBtdQ3CNrKvprUE6n9lYcregDMLYNeTAWcLj8NnPU9XIYegTHVHQjxKDSHP2l-F5jS7sppG1wgdAqZyhnWvXhYNvcM7RfgKxqNx_xAHx6f3yy7s-M9PSNCwPC2lh6UAkR4I00EhV9lrypM9Pi4lBUop9t5fS9W5UNwaAllhrd-osQGPjIeI1deHTwx-ZTHu3C60Pu_LJIl6hKn9wbwaUmA4cR5Bd2pgbaY7ASgsjCUbtYJaNIHSoHXprUdJZKUMAzV0WOKPfA6OPI4oypBadjvMZ4ZAj3BnXaSYsEZhaueTXvZB4eZOAjIyh2e_VOIKVMsnDrJYAVotGlvMQaV  Kn9tgoHfiTVi8uPu5b9TnwyHwG5dK6RE0uFdlpCGnJN7ZEi963R7wybQ1PLAHmpIbNTztfrheoAniRV1NCIqXaW_qS461xiDTp4ntEPnqcKsyO5jMAji7-CL8vhpYYowNFvIesgMoVaPRYMYT9TW63hNM0aWs7USZ_hLg6Oe1mY0vHTI3FucjSM86Nff4oIENt43r2fspgEPGRrdE6fpLc9Oaq-qeP1GFULimrRdndm-P8q8kvN3KHlNAtEgrQAgTTgz80S-3VD0FgWfgnb1PNmiuPUxO8OpI9KDIfu_acc6fg14nsNaJqXe6RESvhGPH2afjHqSy_Fd2vpzj85bQQz2DwQmZ43FoTnQ8IkUj3BmKRf5Eh2mizZA5xEJ2MinUE3sdTYKSLtaEoekX9vbBZuWxHdVhM6UnKCJ_2iNk8Z0ayLYHL0_G21aXf9-unynEpUsH7HHTklLpYAzOOx1ZgVljoxAdWNn3hiEFrjZLZGS7lOH-a3QQlDDQoJOJ2VFmUzte8LY4-W7IyaqH1ExujjMqkTAlTeRbv0VLQnfLY2xINnrWdwiQ93_VF099aP1ESeLja2nw-6iKIe-qT7mtCPozKfVtUYfz5HrJ_XY2kfexJINb9lhZHMv5p1skZpeIS-GPHCC6gRlKo1q-idn_qxyusfWv7WAxlSVfQfk8d6Et0zUfYKcL_or492vVc0PzwLSplbg4L3-Z5wL48mwiswbpzOyIgd2xHTHQmjJpFAIZ8q-zf9RmgJXkDrFs9rkdxPtAsL1WYdeCT5c125Fkdg317JVRDo1inX7x2Kdh8ERCreW8_4zXItuTl_KiXZNU5lvMQjWbIw2eTx1lpsflo0rYUziEgcO-QfpepdH8FWd7mUFyrXdnOkXJBCogChY6YKuIHGc_p8Le9MbpFKESzEaLlN1Ehf3B6oGBl5Iz_ayUlZj2IoQZ82znoUrpa9fVYNot87ACfzIG7q9Mv7RiPAderZi03tkVXAdaBau_9vs5rS-7HMtxkVrxSUvJY14TkXlHEzkC-lzZOqoFaZCr5l0tOVtREKoVqaAYhQiqIRGL-MzS4sCmRkxm5vZlXYx6RtE1n_AagjqajlkjieGlxTTThHD8Iga6foGBMaAr5uR1hGQpSc7Gl7CF1DZkBJMTQN6EshYzZfxW08mIO8M6Rzuh0beL6fG9mkDcIyPrBXx2bQ_mMbbd5sTkYwhAIqfHsx8DayAaV  laLxI0j-nLH-_BgLOXMozKxmy9gffy2gTdvqzfTihJBuuzxg0V7yk1WClnQePFvG2K-pvSlWc9BRIazDrn50RcRai__3TDON395H3c62tIouJJ4XaRvYHFjZTZ2GXfz8YAImcc91Tfk0WXC2F5Xbb71ClQ1DDH151tlpH77f2ff7xiSxh9oSewYrcGTSLUeeCt36r1Kt3OSj7EyBQXoZlN7IxbyhMAfgIe7Mv1rOTOI5I8NQqeXXW8VlzNmoxaGMny3YnGir5Wf6Qt2nBq4qDaPdnaAuuGUGEecelIO1wx1BpyIfgvfjOhMBs9M8XL223Fg47xlGsMXdfuY-4jaqVwgeyJhbGciOiJSU0ExXzUiLCJraWQiOiJmcm9kby5iYWdnaW5zQGhvYmJpdG9uLmV4YW1wbGUiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0a  0fys_TY_na7f8dwSfXLiYdHaA2DxUjD67ieF7fcVbIR62JhJvGZ4_FNVSiGc_raa0HnLQ6s1P2sv3Xzl1p1l_o5wR_RsSzrS8Z-wnI3Jvo0mkpEEnlDmZvDu_k8OWzJv7eZVEqiWKdyVzFhPpiyQU28GLOpRc2VbVbK4dQKPdNTjPPEmRqcaGeTWZVyeSUvf5k59yJZxRuSvWFf6KrNtmRdZ8R4mDOjHSrM_s8uwIFcqt4r5GX8TKaI0zT5CbL5Qlw3sRc7u_hg0yKVOiRytEAEs3vZkcfLkP6nbXdC_PkMdNS-ohP78T2O6_7uInMGhFeX4ctHG7VelHGiT93JfWDEQi5_V9UN1rhXNrYu-0fVMkZAKX3VWi7lzA6BP430mkvKuFBXHe5mQr4lqgobAUgencrypted_key)
recipientsr%   iv
ciphertexttag)r%   r   r   r   r   zsamwise.gamgee@hobbiton.examplea  wbdxI55VaanZXPY29Lg5hdmv2XhvqAhoxUkanfzf2-5zVUxa6prHRrI4pP1AhoqJRlZfYtWWd5mmHRG2pAHIlh0ySJ9wi0BioZBl1XP2e-C-FyXJGcTy0HdKQWlrfhTm42EW7Vv04r4gfao6uxjLGwfpGrZLarohiWCPnkNrg71S2CuNZSQBIPGjXfkmIy2tl_VWgGnL22GplyXj5YlBLdxXp3XeStsqo571utNfoUTU8E4qdzJ3U1DItoVkPGsMwlmmnJiwA7sXRItBCivR4M5qnZtdw-7v4WuR4779ubDuJ5nalMv2S66-RPcnFAzWSKxtBDnFJJDGIUe7Tzizjg1nms0Xq_yPub_UOlWn0ec85FCft1hACpWG8schrOBeNqHBODFskYpUc2LC5JA2TaPF2dA67dg1TTsC_FupfQ2kNGcE1LgprxKHcVWYQb86B-HozjHZcqtauBzFNV5tbTuB-TpkcvJfNcFLlH3b8mb-H_ox35FjqBSAjLKyoeqfKTpVjvXhd09knwgJf6VKq6UC418_TOljMVfFTWXUxlnfhOOnzW6HSSzD1c9WrCuVzsUMv54szidQ9wf1cYWf3g5qFDxDQKis99gcDaiCAwM3yEBIzuNeeCa5dartHDb1xEB_HcHSeYbghbMjGfasvKn0aZRsnTyC0xhWBlsolZEzRSA-OAEPa  n7fzJc3_WG59VEOBTkayzuSMM780OJQuZjN_KbH8lOZG25ZoA7T4Bxcc0xQn5oZE5uSCIwg91oCt0JvxPcpmqzaJZg1nirjcWZ-oBtVk7gCAWq-B3qhfF3izlbkosrzjHajIcY33HBhsy4_WerrXg4MDNE4HYojy68TcxT2LYQRxUOCf5TtJXvM8olexlSGtVnQnDRutxEUCwiewfmmrfveEogLx9EA-KMgAjTiISXxqIXQhWUQX1G7v_mV_Hr2YuImYcNcHkRvp9E7ook0876DhkO8v4UOZLwA1OlUX98mkoqwc58A_Y2lBYbVx1_s5lpPsEqbbH-nqIjh1fL0gdNfihLxnclWtW7pCztLnImZAyeCWAG7ZIfv-Rn9fLIv9jZ6r7r-MSH9sqbuziHN2grGjD_jfRluMHa0l84fFKl6bcqN1JWxPVhzNZo01yDF-1LiQnqUYSepPf6X3a2SOdkqBRiquE6EvLuSYIDpJq3jDIsgoL8Mo1LoomgiJxUwL_GWEOGu28gplyzm-9Q0U0nyhEf1uhSR8aJAQWAiFImWH5W_IQT9I7-yrindr_2fWQ_i1UgMsGzA7aOGzZfPljRy6z-tY_KuBG00-28S_aWvjyUc-Alp8AUyKjBZ-7CWH32fGWK48j1t-zomrwjL_mnhsPbGs0c9WsWgRzI-K8gEaV  7_2v3OQZzlPFcHyYfLABQ3XP85Es4hCdwCkbDeltaUXgVy9l9etKghvM4hRkOvbb01kYVuLFmxIkCDtpi-zLCYAdXKrAK3PtSbtzld_XZ9nlsYa_QZWpXB_IrtFjVfdKUdMz94pHUhFGFj7nr6NNxfpiHSHWFE1zD_AC3mY46J961Y2LRnreVwAGNw53p07Db8yD_92pDa97vqcZOdgtybH9q6uma-RFNhO1AoiJhYZj69hjmMRXx-x56HO9cnXNbmzNSCFCKnQmn4GQLmRj9sfbZRqL94bbtE4_e0Zrpo8RNo8vxRLqQNwIy85fc6BRgBJomt8QdQvIgPgWCv5HoQaV  zqOHk1P6WN_rHuM7ZF1cXH0x6RuOHq67WuHiSknqQeefGBA9PWs6ZyKQCO-O6mKXtcgE8_Q_hA2kMRcKOcvHil1hqMCNSXlflM7WPRPZu2qCDcqssd_uMbP-DqYthH_EzwL9KnYoH7JQFxxmcv5An8oXUtTwk4knKjkIYGRuUwfQTus0w1NfjFAyxOOiAQ37ussIcE6C6ZSsM3n41UlbJ7TCqewzVJaPJN5cxjySPZPD3Vp01a9YgAD6a3IIaKJdIxJS1ImnfPevSJQBE79-EXe2kSwVgOzvt-gsmM29QQ8veHy4uAqca5dZzMs7hkkHtw1z0jHV90epQJJlXXnH8QaV  19oDkBh1AXelMIxQFm2zZTqUhAzCIr4xNIGEPNoDt1jK83_FJA-xnx5kA7-1erdHdms_Ef67HsONNv5A60JaR7w8LHnDiBGnjdaUmmuO8XAxQJ_ia5mxjxNjS6E2yD44USo2JmHvzeeNczq25elqbTPLhUpGo1IZuG72FZQ5gTjXoTXC2-xtCDEUZfaUNh4IeAipfLugbpe0JAFlFfrTDAMUFpC3iXjxqzbEanflwPvj6V9iDSgjj8SozSM0dLtxvu0LIeIQAeEgT_yXcrKGmpKdSO08kLBx8VUjkbv_3Pn20Gyu2YEuwpFlM_H1NikuxJNKFGmnAq9LcnwwT0jvoQaV  S6p59KrlmzGzaQYQM3o0XfHCGvfqHLYjCO557HYQf72O9kLMCfd_1VBEqeD-1jjwELKDjck8kOBl5UvohK1oDfSP1DleAy-cnmL29DqWmhgwM1ip0CCNmkmsmDSlqkUXDi6sAaZuntyukyflI-qSQ3C_BafPyFaKrt1fgdyEwYa08pESKwwWisy7KnmoUvaJ3SaHmohFS78TJ25cfc10wZ9hQNOrIChZlkiOdFCtxDqdmCqNacnhgE3bZQjGp3n83ODSz9zwJcSUvODlXBPc2AycH6Ci5yjbxt4Ppox_5pjm6xnQkiPgj01GpsUssMmBN7iHVsrE7N2iznBNCeOUIQaV  FZhClBMywVVjnuUud-05qd5CYU0dK79akAgy9oX6RX6I3IIIPckCciRrokxglZn-omAY5CnCe4KdrnjFOT5YUZE7G_Pg44XgCXaarLQf4hl80oPEf6-jJ5Iy6wPRx7G2e8qLxnh9cOdf-kRqgOS3F48Ucvw3ma5V6KGMwQqWFeV31XtZ8l5cVI-I3NzBS7qltpUVgz2Ju021eyc7IlqgzR98qKONl27DuEES0aK0WE97jnsyO27Yp88Wa2RiBrEocM89QZI1seJiGDizHRUP4UZxw9zsXww46wy0P6f9grnYp7t8LkyDDk8eoI4KX6SNMNVcyVS9IWjlq8EzqZEKIA)r   r   r   r   r   r   r   r   r   r   r   r   z-nBoKLH0YkLZPSI9a  rT99rwrBTbTI7IJM8fU3Eli7226HEB7IchCxNuh7lCiud48LxeolRdtFF4nzQibeYOl5S_PJsAXZwSXtDePz9hk-BbtsTBqC2UsPOdwjC9NhNupNNu9uHIVftDyucvI6hvALeZ6OGnhNV4v1zx2k7O1D89mAzfw-_kT3tkuorpDU-CpBENfIHX1Q58-Aad3FzMuo3Fn9buEP2yXakLXYa15BUXQsupM4A1GD4_H4Bd7V3u9h8Gkg8BpxKdUV9ScfJQTcYm6eJEBz3aSwIaK4T3-dwWpuBOhROQXBosJzS1asnuHtVMt2pKIIfux5BC6huIvmY7kzV7W7aIUrpYm_3H4zYvyMeq5pGqFmW2k8zpO878TRlZx7pZfPYDSXZyS0CfKKkMozT_qiCwZTSz4duYnt8hS4Z9sGthXn9uDqd6wycMagnQfOTs_lycTWmY-aqWVDKhjYNRf03NiwRtb5BE-tOdFwCASQj3uuAgPGrO2AWBe38UjQb0lvXn1SpyvYZ3WFc7WOJYaTa7A8DRn6MC6T-xDmMuxC0G7S2rscw5lQQU06MvZTlFOt0UvfuKBa03cxA_nIBIhLMjY2kOTxQMmpDPTr6Cbo8aKaOnx6ASE5Jx9paBpnNmOOKH35j_QlrQhDWUN6A2Gg8iFayJ69xDEdHAVCGRzN3woEI2ozDRsceyJhbGciOiJSU0EtT0FFUCIsImtpZCI6InNhbXdpc2UuZ2FtZ2VlQGhvYmJpdG9uLmV4YW1wbGUiLCJlbmMiOiJBMjU2R0NNIn0al  o4k2cnGN8rSSw3IDo1YuySkqeS_t2m1GXklSgqBdpACm6UJuJowOHC5ytjqYgRL-I-soPlwqMUf4UgRWWeaOGNw6vGW-xyM01lTYxrXfVzIIaRdhYtEMRBvBWbEwP7ua1DRfvaOjgZv6Ifa3brcAM64d8p5lhhNcizPersuhw5f-pGYzseva-TUaL8iWnctc-sSwy7SQmRkfhDjwbz0fz6kFovEgj64X1I5s7E6GLp5fnbYGLa1QUiML7Cc2GxgvI7zqWo0YIEc7aCflLG1-8BboVWFdZKLK9vNoycrYHumwzKluLWEbSVmaPpOslY2n525DxDfWaVFUfKQxMF56vn4B9QMpWAbnypNimbM8zVOwUCGiqJxhBI3IFVdPalHHvAs|  {"keys":[{"kty":"oct","kid":"77c7e2b8-6e13-45cf-8672-617b5b45243a","use":"enc","alg":"A128GCM","k":"XctOhJAkA-pD9Lh7ZgW_2A"},{"kty":"oct","kid":"81b20965-8332-43d9-a468-82160ad91ac8","use":"enc","alg":"A128KW","k":"GZy6sIZ6wl9NJOKB-jnmVQ"},{"kty":"oct","kid":"18ec08e1-bfa9-4d95-b205-2b4dd1d4321d","use":"enc","alg":"A256GCMKW","k":"qC57l_uxcm7Nm3K-ct4GFjx8tM1U8CZ0NLBvdQstiS8"}]}s"   entrap_o–peter_long–credit_tunVBiCzVHNoLiR3F4V82uoTQ6d3qNhUWfqheyPp4H8sjOWsDYajoej4c5Je6rlUtFPWdgtURtmeDV1gzPBES2-HS512+A256KWzjwk-set+jsonzA128CBC-HS256)r   ctyr    ڗeyJhbGciOiJQQkVTMi1IUzUxMitBMjU2S1ciLCJwMnMiOiI4UTFTemluYXNSM3hjaFl6NlpaY0hBIiwicDJjIjo4MTkyLCJjdHkiOiJqd2stc2V0K2pzb24iLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0a   23i-Tb1AV4n0WKVSSgcQrdg6GRqsUKxjruHXYsTHAJLZ2nsnGIX86vMXqIi6IRsfywCRFzLxEcZBRnTvG3nhzPk0GDD7FMyXhUHpDjEYCNA_XOmzg8yZR9oyjo6lTF6si4q9FZ2EhzgFQCLO_6h5EVg3vR75_hkBsnuoqoM3dwejXBtIodN84PeqMb6asmas_dpSsz7H10fC5ni9xIz424givB1YLldF6exVmL93R3fOoOJbmk2GBQZL_SEGllv2cQsBgeprARsaQ7Bq99tT80coH8ItBjgV08AtzXFFsx9qKvC982KLKdPQMTlVJKkqtV4Ru5LEVpBZXBnZrtViSOgyg6AiuwaS-rCrcD_ePOGSuxvgtrokAKYPqmXUeRdjFJwafkYEkiuDCV9vWGAi1DH2xTafhJwcmywIyzi4BqRpmdn_N-zl5tuJYyuvKhjKv6ihbsV_k1hJGPGAxJ6wUpmwC4PTQ2izEm0TuSE8oMKdTw8V3kobXZ77ulMwDs4p0HlwodAhOCILG5SQ2LQ9dgz!peregrin.took@tuckborough.examplezP-384@YU4rRUzdmVqmRtWOs2OpDE_T5fsNIodcG8G5FWPrTPMyxpzsSOGaQLpe2FpxBmu2z@A8-yxCHxkfBz3hKZfI1jUYMjUhsEveZ9THuwFjH2sCNdtksRJU7D5-SkgaFL1ETPz@iTx2pk7wW-GqJkHcEkFQb2EFyYcO7RugmaW3mRrQVAOUiPommT0IdnYK2xDlZh-jzmH-G2zVqgztUtnW_ 0DJjBXri_kBcC46IkU5_Jk9BqaQeHdv2zECDH-ES+A128KWA128GCM)r   r   r    W  eyJhbGciOiJFQ0RILUVTK0ExMjhLVyIsImtpZCI6InBlcmVncmluLnRvb2tAdHVja2Jvcm91Z2guZXhhbXBsZSIsImVwayI6eyJrdHkiOiJFQyIsImNydiI6IlAtMzg0IiwieCI6InVCbzRrSFB3Nmtiang1bDB4b3dyZF9vWXpCbWF6LUdLRlp1NHhBRkZrYllpV2d1dEVLNml1RURzUTZ3TmROZzMiLCJ5Ijoic3AzcDVTR2haVkMyZmFYdW1JLWU5SlUyTW84S3BvWXJGRHI1eVBOVnRXNFBnRXdaT3lRVEEtSmRhWTh0YjdFMCJ9LCJlbmMiOiJBMTI4R0NNIn0al  tkZuOO9h95OgHJmkkrfLBisku8rGf6nzVxhRM3sVOhXgz5NJ76oID7lpnAi_cPWJRCjSpAaUZ5dOR3Spy7QuEkmKx8-3RCMhSYMzsXaEwDdXta9Mn5B7cCBoJKB0IgEnj_qfo1hIi-uEkUpOZ8aLTZGHfpl05jMwbKkTe2yK3mjF6SBAsgicQDVCkcY9BLluzx1RmC3ORXaM0JaHPB93YcdSDGgpgBWMVrNU1ErkjcMqMoT_wtCex3w03XdLkjXIuEr2hWgeP-nkUZTPU9EoGSPj6fAS-bSz87RCPrxZdj_iVyC6QWcqAu07WNhjzJEPc4jVntRJ6K53NgPQ5p99l3Z408OUqj4ioYezbS6vTPlQWuGzxmcreYjpHGJoa17EBgz$meriadoc.brandybuck@buckland.examplezP-256+Ze2loSV3wrroKUN_4zhwGhCqo3Xhu1td4QjeQ5wIVR0z+HlLtdXARY_f55A3fnzQbPcm6hgr34Mp8p-nuzQCE0Zwz+r_kHyZ-a06rmxM3yESK84r1otSg-aQcVStkRhA-iCM8yc9N8v5sYyv3iGQT926IUgzECDH-ES"  eyJhbGciOiJFQ0RILUVTIiwia2lkIjoibWVyaWFkb2MuYnJhbmR5YnVja0BidWNrbGFuZC5leGFtcGxlIiwiZXBrIjp7Imt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoibVBVS1RfYkFXR0hJaGcwVHBqanFWc1AxclhXUXVfdndWT0hIdE5rZFlvQSIsInkiOiI4QlFBc0ltR2VBUzQ2ZnlXdzVNaFlmR1RUMElqQnBGdzJTUzM0RHY0SXJzIn0sImVuYyI6IkExMjhDQkMtSFMyNTYifQa  BoDlwPnTypYq-ivjmQvAYJLb5Q6l-F3LIgQomlz87yW4OPKbWE1zSTEFjDfhU9IPIOSA9Bml4m7iDFwA-1ZXvHteLDtw4R1XRGMEsDIqAYtskTTmzmzNa-_q4F_evAPUmwlO-ZG45Mnq4uhM1fm_D9rBtWolqZSF3xGNNkpOMQKF1Cl8i8wjzRli7-IXgyirlKQsbhhqRzkv8IcY6aHl24j03C-AR2le1r7URUhArM79BY8soZU0lzwI-sD5PZ3l4NDCCei9XkoIAfsXJWmySPoeRb2Ni5UZL4mYpvKDiwmyzGd65KqVw7MsFfI_K767G9C9Azp73gKZD0DyUn1mn0WW5LmyX_yJ-3AROq8p1WZBfG-ZyJ6195_JGG2m9CsgzWCCkNa-x4BeB9hIDIfFuhgz..)r%   r   r   r   z$77c7e2b8-6e13-45cf-8672-617b5b45243azXctOhJAkA-pD9Lh7ZgW_2Arefa467QzzKx6QABceyJhbGciOiJkaXIiLCJraWQiOiI3N2M3ZTJiOC02ZTEzLTQ1Y2YtODY3Mi02MTdiNWI0NTI0M2EiLCJlbmMiOiJBMTI4R0NNIn0al  JW_i_f52hww_ELQPGaYyeAB6HYGcR559l9TYnSovc23XJoBcW29rHP8yZOZG7YhLpT1bjFuvZPjQS-m0IFtVcXkZXdH_lr_FrdYt9HRUYkshtrMmIUAyGmUnd9zMDB2n0cRDIHAzFVeJUDxkUwVAE7_YGRPdcqMyiBoCO-FBdE-Nceb4h3-FtBP-c_BIwCPTjb9o0SbdcdREEMJMyZBH8ySWMVi1gPD9yxi-aQpGbSv_F9N4IZAxscj5g-NJsUPbjk29-s7LJAGb15wEBtXphVCgyy53CoIKLHHeJHXex45Uz9aKZSRSInZI-wjsY0yu3cT4_aQ3i1o-tiE-F8Ios61EKgyIQ4CWao8PFMj8TTnpvbb32Xvllea2OtmHAdccRQz$18ec08e1-bfa9-4d95-b205-2b4dd1d4321d	A256GCMKWz+qC57l_uxcm7Nm3K-ct4GFjx8tM1U8CZ0NLBvdQstiS8gz6NjyEFNm_vm8Gj6FwoFQ+lJf3HbOApxMEBkCMOoTnnABxs_CvTWUmZQ2ElLvYNokڼeyJhbGciOiJBMjU2R0NNS1ciLCJraWQiOiIxOGVjMDhlMS1iZmE5LTRkOTUtYjIwNS0yYjRkZDFkNDMyMWQiLCJ0YWciOiJrZlBkdVZRM1QzSDZ2bmV3dC0ta3N3IiwiaXYiOiJLa1lUMEdYXzJqSGxmcU5fIiwiZW5jIjoiQTEyOENCQy1IUzI1NiJ9a  Jf5p9-ZhJlJy_IQ_byKFmI0Ro7w7G1QiaZpI8OaiVgD8EqoDZHyFKFBupS8iaEeVIgMqWmsuJKuoVgzR3YfzoMd3GxEm3VxNhzWyWtZKX0gxKdy6HgLvqoGNbZCzLjqcpDiF8q2_62EVAbr2uSc2oaxFmFuIQHLcqAHxy51449xkjZ7ewzZaGV3eFqhpco8o4DijXaG5_7kp3h2cajRfDgymuxUbWgLqaeNQaJtvJmSMFuEOSAzw9Hdeb6yhdTynCRmu-kqtO5Dec4lT2OMZKpnxc_F1_4yDJFcqb5CiDSmA-psB2k0JtjxAj4UPI61oONK7zzFIu4gBfjJCndsZfdvG7h8wGjV98QhrKEnR7xKZ3KCr0_qR1B-gxpNk3xWUDKW7jrb4WaRSNfbXVPlT5gz$81b20965-8332-43d9-a468-82160ad91ac8A128KWzGZy6sIZ6wl9NJOKB-jnmVQQx0pmsDa8KnJc9Jo CBI6oDw8MydIx1IBntf_lQcw2MmJKIQxgeyJhbGciOiJBMTI4S1ciLCJraWQiOiI4MWIyMDk2NS04MzMyLTQzZDktYTQ2OC04MjE2MGFkOTFhYzgiLCJlbmMiOiJBMTI4R0NNIn0al  AwliP-KmWgsZ37BvzCefNen6VTbRK3QMA4TkvRkH0tP1bTdhtFJgJxeVmJkLD61A1hnWGetdg11c9ADsnWgL56NyxwSYjU1ZEHcGkd3EkU0vjHi9gTlb90qSYFfeF0LwkcTtjbYKCsiNJQkcIp1yeM03OmuiYSoYJVSpf7ej6zaYcMv3WwdxDFl8REwOhNImk2Xld2JXq6BR53TSFkyT7PwVLuq-1GwtGHlQeg7gDT6xW0JqHDPn_H-puQsmthc9Zg0ojmJfqqFvETUxLAF-KjcBTS5dNy6egwkYtOt8EIHK-oEsKYtZRaa8Z7MOZ7UGxGIMvEmxrGCPeJa14slv2-gaqK0kEThkaSqdYw0FkQZFER7MWJZ1FBI_NKvn7Zb1Lwp9pUq6XHY0jfEZIl 5vUT2WOtQxKWcekM_IzVQwkGgzlFDwPiweyJhbGciOiJBMTI4S1ciLCJraWQiOiI4MWIyMDk2NS04MzMyLTQzZDktYTQ2OC04MjE2MGFkOTFhYzgiLCJlbmMiOiJBMTI4R0NNIiwiemlwIjoiREVGIn0zHbDtOsdai1oYziSx25KEeTxmwnh8L8jKMFNc1k3zmMI6VB8hry57tDZ61jXyezSPt0fdLVfe6Jf5y5-JaCap_JQBcb5opbmT60uWGml8blyiMQmOn9J--XhhlYg0m-BHaqfDO5iTOWxPxFMUedx7WCy8mxgDHj0aBMG6152PsM-w5E_o2B3jDbrYBKhpYA7qi3AyijnCJ7BP9rr3U8kxExCpG3mK420TjOwzVILuUwuIxaLVmh5X-T7kmAvcardversiontextz4.0fnzMeriadoc Brandybuckr   )
BrandybuckMeriadoczMr. bdayzTA 2982genderMveCx9ece2orS7c_N 4YiiQ_ZzH76TaIkJmYfRFgOV9MIpnx4Xal  Z_3cbr0k3bVM6N3oSNmHz7Lyf3iPppGf3Pj17wNZqteJ0Ui8p74SchQP8xygM1oFRWCNzeIa6s6BcEtp8qEFiqTUEyiNkOWDNoF14T_4NFqF-p2Mx8zkbKxI7oPK8KNarFbyxIDvICNqBLba-v3uzXBdB89fzOI-Lv4PjOFAQGHrgv1rjXAmKbgkft9cB4WeyZw8MldbBhc-V_KWZslrsLNygon_JJWd_ek6LQn5NRehvApqf9ZrxB4aq3FXBxOxCys35PhCdaggy2kfUfl2OkwKnWUbgXVD1C6HxLIlqHhCwXDG59weHrRDQeHyMRoBljoV3X_bUTJDnKBFOod7nLz-cj48JMx3SnCZTpbQAkFVvOaH_Rajnpy_3hOtqvZHRA)r   r%   r   aadr   r   )r%   r   r   r   r   r   WgEJsDS9bkoXQ3nRz jJIcM9J-hbx3wnqhf5FlkEYos0sHsF0HeyJlbmMiOiJBMTI4R0NNIn0al  lIbCyRmRJxnB2yLQOTqjCDKV3H30ossOw3uD9DPsqLL2DM3swKkjOwQyZtWsFLYMj5YeLht_StAn21tHmQJuuNt64T8D4t6C7kC9OCCJ1IHAolUv4MyOt80MoPb8fZYbNKqplzYJgIL58g8N2v46OgyG637d6uuKPwhAnTGm_zWhqc_srOvgiLkzyFXPq1hBAURbc3-8BqeRb48iR1-_5g5UjWVD3lgiLCN_P7AW8mIiFvUNXBPJK3nOWL4teUPS8yHLbWeL83olU4UAgL48x-8dDkH23JykibVSQju-f7e-1xreHWXzWLHs1NqBbre0dEwK3HX_xM0LjUz77Krppgegoutpf5qaKg3l-_xMINmffNYLqpUe84KD45lvDiaBAQ)r   unprotectedr%   r   r   r   )r%   r   r   r   r   r   YihBoVOGsR1l7jCD 244YHfO_W7RMpQW81UjQrZcq5LSyqiPval  qtPIMMaOBRgASL10dNQhOa7Gqrk7Eal1vwht7R4TT1uq-arsVCPaIeFwQfzrSS6oEUWbBtxEasE0vC6r7sphyVziMCVJEuRJyoAHFSP3eqQPb4Ic1SDSqyXjw_L3svybhHYUGyQuTmUQEDjgjJfBOifwHIsDsRPeBz1NomqeifVPq5GTCWFo5k_MNIQURR2Wj0AHC2k7JZfu2iWjUHLF8ExFZLZ4nlmsvJu_mvifMYiikfNfsZAudISOa6O73yPZtL04k_1FI7WDfrb2w7OqKLWDXzlpcxohPVOLQwpA3mFNRKdY-bQz4Z4KX9lfz1cne31N4-8BKmojpw-OdQjKdLOGkC445Fb_K1tlDQXw2sBFze2m0Vm7JvjK2VpCKXS-kyg)r   r   r   r   r   )r   r   r   r   r   c                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)Cookbook08JWETestsiS  c                    [         n[        [        5      n[        R                  " S0 [
        D6n[        R                  " X[        R                  S/-   S9nUR                  U5        UR                  5       nUR                  XS5        U R                  UR                  U5        UR                  [        U5        U R                  UR                  U5        UR                  [        [         5      U5        U R                  UR                  U5        UR                  [        ["        5      U5        U R                  UR                  U5        g )NRSA1_5)algsr;   )Payload_plaintext_5r   JWE_Protected_Header_5_1_4r   r?   RSA_key_5_1_1r   JWEdefault_allowed_algsadd_recipientrF   rG   rD   r'   JWE_compact_5_1_5r	   JWE_general_5_1_5JWE_flattened_5_1_5rJ   rK   r%   r   r   r    s         rO   test_5_1_encryption&Cookbook08JWETests.test_5_1_encryptionU  s    '	$%?@	''*M*GGI11XJ>@	 kkm	c#I.	'1I.	k"34g>I.	k"56@I.rR   c                 z   [         n[        [        5      n[        R                  " S0 [
        D6n[        R                  " X5      nUR                  U5        UR                  5       nUR                  XS5        U R                  UR                  U5        UR                  [        U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        UR                  [        [         5      U5        U R                  UR                  U5        g Nr;   )r   r   JWE_Protected_Header_5_2_4r   r?   RSA_key_5_2_1r   r   r   rF   rG   rD   r'   JWE_compact_5_2_5r	   JWE_general_5_2_5JWE_flattened_5_2_5r   s         rO   test_5_2_encryption&Cookbook08JWETests.test_5_2_encryptionf      '	$%?@	''*M*GGI)	 kkm	c#I.	'1I.	k"34g>I.	k"56@I.rR   c                    [         n[        n[        R                  S5      n[        R                  " U[        [        5      5      nUR                  U5        UR                  SS9  UR                  5       nUR                  XS5        U R                  UR                  U5        UR                  [        U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        g )Nutf8Tr9   )Payload_plaintext_5_3_1Password_5_3_1r>   r   r   r	   JWE_Protected_Header_no_p2xr   rF   rG   rD   r'   JWE_compact_5_3_5JWE_general_5_3_5JWE_flattened_5_3_5)rJ   rK   password
unicodepwdr   r    s         rO   test_5_3_encryption&Cookbook08JWETests.test_5_3_encryptionv  s    +	!#**62
GGI{+FGH	!	D!kkm	c&I.	'2I.	k"34jAI.	k"56AI.rR   c                    [         n[        [        5      n[        R                  " S0 [
        D6n[        R                  " X5      nUR                  U5        UR                  SS9nUR                  XS5        U R                  UR                  U5        UR                  [        U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        g NTr9   r;   )r   r	   !JWE_Protected_Header_no_epk_5_4_4r   r?   EC_key_5_4_1r   r   r   rF   rG   rD   r'   JWE_compact_5_4_5JWE_general_5_4_5rJ   rK   r%   r   r   r    s         rO   test_5_4_encryption&Cookbook08JWETests.test_5_4_encryption      '	 AB	(<(GGI)	kk$k'	c"I.	'0I.	k"34f=I.rR   c                    [         n[        [        5      n[        R                  " S0 [
        D6n[        R                  " X5      nUR                  U5        UR                  SS9nUR                  XS5        U R                  UR                  U5        UR                  [        U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        g r   )r   r	   !JWE_Protected_Header_no_epk_5_5_4r   r?   EC_key_5_5_1r   r   r   rF   rG   rD   r'   JWE_compact_5_5_5JWE_general_5_5_5r   s         rO   test_5_5_encryption&Cookbook08JWETests.test_5_5_encryption  r   rR   c                 "   [         n[        [        5      n[        R                  " S0 [
        D6n[        R                  " X5      nUR                  U5        UR                  SS9  UR                  5       nUR                  XS5        U R                  UR                  U5        UR                  [        U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        g r   )r   r   JWE_Protected_Header_5_6_3r   r?   AES_key_5_6_1r   r   r   rF   rG   rD   r'   JWE_compact_5_6_4r	   JWE_general_5_6_4rJ   rK   r%   aes_keyr   r    s         rO   test_5_6_encryption&Cookbook08JWETests.test_5_6_encryption  s    '	$%?@	''*M*GGI)	 	D!kkm	c#I.	'1I.	k"34g>I.rR   c                 v   [         n[        R                  " S0 [        D6n[        R
                  " U[        [        5      5      nUR                  U5        UR                  SS9nUR                  XB5        U R                  UR                  U5        UR                  [        U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        g r   )r   r   r?   AES_key_5_7_1r   r   r	   JWE_Protected_Header_no_ivtagr   rF   rG   rD   r'   JWE_compact_5_7_5JWE_general_5_7_5JWE_flattened_5_7_5)rJ   rK   r  r   r    s        rO   test_5_7_encryption&Cookbook08JWETests.test_5_7_encryption  s    '	''*M*GGI{+HIJ	 kk$k'	c#I.	'1I.	k"34g>I.	k"56@I.rR   c                 z   [         n[        [        5      n[        R                  " S0 [
        D6n[        R                  " X5      nUR                  U5        UR                  5       nUR                  XS5        U R                  UR                  U5        UR                  [        U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        UR                  [        [         5      U5        U R                  UR                  U5        g r   )r   r   JWE_Protected_Header_5_8_4r   r?   AES_key_5_8_1r   r   r   rF   rG   rD   r'   JWE_compact_5_8_5r	   JWE_general_5_8_5JWE_flattened_5_8_5r  s         rO   test_5_8_encryption&Cookbook08JWETests.test_5_8_encryption  r   rR   c                 z   [         n[        [        5      n[        R                  " S0 [
        D6n[        R                  " X5      nUR                  U5        UR                  5       nUR                  XS5        U R                  UR                  U5        UR                  [        U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        UR                  [        [         5      U5        U R                  UR                  U5        g r   )r   r   JWE_Protected_Header_5_9_4r   r?   r  r   r   r   rF   rG   rD   r'   JWE_compact_5_9_5r	   JWE_general_5_9_5JWE_flattened_5_9_5r  s         rO   test_5_9_encryption&Cookbook08JWETests.test_5_9_encryption  r   rR   c                 2   [         n[        [        5      n[        [        5      n[        R
                  " S0 [        D6n[        R                  " XUS9nUR                  U5        UR                  5       nUR                  Xd5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        UR                  [        [         5      U5        U R                  UR                  U5        g )N)r   r;   )r   r   JWE_Protected_Header_5_10_4
AAD_5_10_1r   r?   r  r   r   r   rF   rG   rD   r'   r	   JWE_general_5_10_5JWE_flattened_5_10_5)rJ   rK   r%   r   r  r   r    s          rO   test_5_10_encryption'Cookbook08JWETests.test_5_10_encryption  s    '	$%@A	z*''*M*GGIc2	 kkm	c#I.	k"45w?I.	k"67AI.rR   c                 6   [         n[        [        5      n[        [        5      n[
        R                  " S0 [        D6n[        R                  " XU5      nUR                  U5        UR                  5       nUR                  Xd5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        UR                  [        [         5      U5        U R                  UR                  U5        g r   )r   r   JWE_Protected_Header_5_11_4r	   JWE_Unprotected_Header_5_11_5r   r?   r  r   r   r   rF   rG   rD   r'   JWE_general_5_11_5JWE_flattened_5_11_5)rJ   rK   r%   r   r  r   r    s          rO   test_5_11_encryption'Cookbook08JWETests.test_5_11_encryption  s    '	$%@A	!"?@''*M*GGI+6	 kkm	c#I.	k"45w?I.	k"67AI.rR   c                    [         n[        [        5      n[        R                  " S0 [
        D6n[        R                  " US U5      nUR                  U5        UR                  5       nUR                  XS5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        UR                  [        [        5      U5        U R                  UR                  U5        g r   )r   r	   JWE_Unprotected_Header_5_12_5r   r?   r  r   r   r   rF   rG   rD   r'   JWE_general_5_12_5JWE_flattened_5_12_5)rJ   rK   r   r  r   r    s         rO   test_5_12_encryption'Cookbook08JWETests.test_5_12_encryption  s    '	!"?@''*M*GGIt[1	 kkm	c#I.	k"45w?I.	k"67AI.rR   r;   N)r   r   r   r   r   r   r   r   r   r  r  r  r  r#  r*  r0  r   r;   rR   rO   r   r   S  s>    /"/ /"///// / ///rR   r   )unittestjwcryptor   r   r   jwcrypto.commonr   r   r   r	   r^   r_   r@   rA   rg   Symmetric_Key_Enc_3_6r<   r=   JWS_Signature_4_1_2rE   rH   rI   rU   JWS_Signature_4_2_2rV   rW   rX   r]   JWS_Signature_4_3_2r`   ra   rb   rf   JWS_Signature_4_4_2rh   ri   rj   ro   rp   JWS_Signature_4_6_2rr   rq   rv   JWS_Signature_4_7_2rx   rw   r|   r}   JWS_Signature_4_8_2r~   JWS_Signature_4_8_3r   JWS_Signature_4_8_4r   TestCaser4   r   r   JWE_IV_5_1_2JWE_Encrypted_Key_5_1_3r   JWE_Ciphertext_5_1_4JWE_Authentication_Tag_5_1_4r   r   r   r   JWE_IV_5_2_2JWE_Encrypted_Key_5_2_3r   JWE_Ciphertext_5_2_4JWE_Authentication_Tag_5_2_4r   r   r   r   r   JWE_IV_5_3_2JWE_Encrypted_Key_5_3_3r   JWE_Protected_Header_5_3_4JWE_Ciphertext_5_3_4JWE_Authentication_Tag_5_3_4r   r   r   r   JWE_IV_5_4_2JWE_Encrypted_Key_5_4_3r   JWE_Protected_Header_5_4_4JWE_Ciphertext_5_4_4JWE_Authentication_Tag_5_4_4r   r   JWE_flattened_5_4_5r   JWE_IV_5_5_2r   JWE_Protected_Header_5_5_4JWE_Ciphertext_5_5_4JWE_Authentication_Tag_5_5_4r   r   r   JWE_IV_5_6_2r   JWE_Ciphertext_5_6_3JWE_Authentication_Tag_5_6_3r  r  r  JWE_IV_5_7_2JWE_Encrypted_Key_5_7_3r	  JWE_Protected_Header_5_7_4JWE_Ciphertext_5_7_4JWE_Authentication_Tag_5_7_4r
  r  r  r  JWE_IV_5_8_2JWE_Encrypted_Key_5_8_3r  JWE_Ciphertext_5_8_4JWE_Authentication_Tag_5_8_4r  r  r  JWE_IV_5_9_2JWE_Encrypted_Key_5_9_3r  JWE_Ciphertext_5_9_4JWE_Authentication_Tag_5_9_4r  r  r  r   JWE_IV_5_10_2JWE_Encrypted_Key_5_10_3r  JWE_Ciphertext_5_10_4JWE_Authentication_Tag_5_10_4r!  r"  JWE_IV_5_11_2JWE_Encrypted_Key_5_11_3r&  JWE_Ciphertext_5_11_4JWE_Authentication_Tag_5_11_4r'  r(  r)  JWE_IV_5_12_2JWE_Encrypted_Key_5_12_3JWE_Ciphertext_5_12_4JWE_Authentication_Tag_5_12_4r-  r.  r/  r   r;   rR   rO   <module>rs     s       > 4
 +
.
./  +
.
.
.
/  +
 
  +
 



G& R 1	68  1	68 ,  
'  -)%'  '/(* +,  '+$&  
'  -)%'  '/(* +,  '+$&  
;  -)%'  '/(* +,  '+$&   D  -)%'  '/(* +,  '+$&  4  %'MN C  '/.(* +,  '+*$	&  (/'M O  D  '.(* +,  '*$&  4  %'GH '  (/'G I ;   D  '0/)	+ 0)	+0)	+,	- x?** x?zE  +
 



G&P (' 0 
   8  3/$,4	6  	02 3+
&')  ,,
&')  ,
 



yBH " , 
=   8  3/$,4	6  	02 3+
&')  ,,
&')   I' =    "    8  3/$,4	6  	02 3+
&')  ,,
&')  .	K	K	KM " '  .% !( =   8  3/$,4	6  	02 3+
&')  ,,
&')  1	6	6	68 ( 1% !1    8  1"*24  ,
&'	)  1	!# ", 
=   8  1"*24  ,
&'	)  1	68 (G  1! 	    8  3/$,4	6  	02 3+
&')  ,,
&')  1	!# "< 0 
=   8  3/$,4	6  	02 3+
&')  ,,
&')  "< @ 
0   8  3/$,4	6  	02 3+
&')  ,,
&')  k"fe$R./
B=>r69%VS!	#$% &
 #= 0 
=  !9  	13 4,
'(*  --
'(*  #= 7 =  !9  1!3  	13 40,
'(*  -0-
'(*  #= =  !9  1!  	13 40
'(*  1-
'(* x/** x/rR   