From 67d7e0f77004f49921838d75686d741231c1fff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1=20autouploader?= Date: Mon, 15 Nov 2021 18:06:19 +0000 Subject: [PATCH] Manpage update by job 628166 --- tzpfms.pdf | Bin 60244 -> 68861 bytes tzpfms.ps | 530 ++++++++++++++++++++++++------------ zfs-tpm-list.8 | 6 +- zfs-tpm-list.8.html | 5 +- zfs-tpm1x-change-key.8 | 33 ++- zfs-tpm1x-change-key.8.html | 40 ++- zfs-tpm1x-clear-key.8 | 6 +- zfs-tpm1x-clear-key.8.html | 5 +- zfs-tpm1x-load-key.8 | 33 ++- zfs-tpm1x-load-key.8.html | 40 ++- zfs-tpm2-change-key.8 | 33 ++- zfs-tpm2-change-key.8.html | 40 ++- zfs-tpm2-clear-key.8 | 33 ++- zfs-tpm2-clear-key.8.html | 40 ++- zfs-tpm2-load-key.8 | 33 ++- zfs-tpm2-load-key.8.html | 40 ++- 16 files changed, 709 insertions(+), 208 deletions(-) diff --git a/tzpfms.pdf b/tzpfms.pdf index 0bf0918c6424037bd5e71de96c4751f2be559dd2..4fc23a591c5b90700e80e5b60cded4623cc89ba8 100644 GIT binary patch delta 54952 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 delta 46815 zcmZU(V{Ipk$xPh~#^!@n)nPt{P?ACzzYkQgxY8q~%a-drcrIjKd8@ z%^AHB+I{tUB`^aKN>-(!V#y zKAIr>Te3WZ)dtqq1I|ZSC(DBL^ar=DxdiZug!6Ze!|Rk7l%vBPuy|g_1MiKcyontD zmu5k7^sfHM5#nQ>q$4^K^js_tbWPM5nQZCR#-jU51~mcVO7MVK7xy1#M~s1xSfpA~ z!1k1@JmGCyn4MVUq`dp(PVnVv~@H@k=cJ#afn8522#`++1d6z&v8MCKy z#qn?94jSA$>e>XoGI4i6R<{}s7(Zz7wq#=sYom!cHrxbvBVN~OWd*T zQU}i+1y37+A<(EijZC&;mj#63@*4cjxm}-#JDL2Werl zT>MuplLMX#km1T68~V7YPUS;QGd7}h4;u83P40oc9Kklk7Y&Xo6F+svX)#2on|T^(=*e#=TEF`;^`t@iWp>Me4w-4kFMz95q$=4@jbUZYN7z0 zg%%%x=aaOxsq}o7r#Dqb14hxG@@biJcaBzs(bFIgp!@zCDkzErKS%_$t?!`)9sHwy z$i8nsV=qZGSvnn{d)b`Zg(wyh<4-r+oL`9eK+{B=Oyp>xcp8k}zS3B)$smgWECdG2 zIZN4t;75wC-PbgG@D94$cl4RK1BV03!O58T2`36j+#EsfzO7AL7+ymIHZi}m8VyZu zia?i0C_L_;nSlJmwG}J|!U{y++;Nh!U~mtZy2PH^Goc2Mk!zHT2JrE1*BbQNy8nWozEqt*|nT;n8 z(_aC#m>NG1pBi6~zw51-wZCrX0QYxN?^Cnenb}l<-1{gr|82oNDV~WQnxEL zCG^&c_kbJ}p{bP0Mpih{gwqqFS|2fk;3x1{(D>l3f5`WKq3!Hys-eb{@}7n>GoW^} zFIh5odU5j%yC>i1-&FD-x}&ko-)EPR`$qsOB<5K!+*Bn%{0OEIkJ_H6cRm%3m$`QF5W17?%A7x3iePdM;v>+%G-7;H&J& zd&KNUM9;BHpqJvO2N?HAYaIkL&iZMCG{YM;c1sz{=$AKWBD&MbdR3ws5LPq)kgWhF z8Uj7OkKfCam0E_TZ=FookRlMu6Fc3P>E)bbqA9PKPrlvfy(urF>|7kf7vDy=_7l|^ z844(VYHOpu8Q%maW>_2cpIEcEc*hPTZmGV$p3hg;leei1yInWV@p6kix&k1AE|#fm zmAYGESV#24%zG#C9qZ_u4Qgob?Wq8(xXwQc-Axwa1;1`gu!azy#4%964%`Ps^|6GL z*D1^1YV{2^=@shJgFUqVF(oxT>KU<0bHm(e_?MAbsS3Yj2%;#_^6a~jL&rE)aXvLQ z{wvOChGT_8of^~c3X{FDQTr$he7GdAAvNmJG~B}%A=PS|Y#nG*<&rWafsBB9MGwV8 zW+@S?OADO97aKQA+YVz~rviAUh_}<4EHM)=?ANm(-X~G@y&bB zyTING_s;@a`xa^M!$>6T@jXBZ@l0wa_TNWA2eez0H54B?843`I;RTW}&8H`HnQR~g z5LjEm&F?tuA?k*y`7_ocp{YmRwV}}Z{GrbV{-#YxSR=))`l}oBwCO@Yr%|@;(Qorr zc@fga`b@EAf{5jX;3L7zYC>z-enb{rt^fu|NH*qLHve}RjM!5=!bbq_OGHXvv;LXs zjjDzsRC*1Za3@2kk7hM+Dn8Cvle?Is_*aON4AL}npOFakk`(*Fe5|-I(=48n^I0K8 zdP)l|vmt~@ zP1LSuHBWp6`wZP{8Mfbe?oi3Ncj0H2-QCPX+22GW$DU7;F`~A!m)jZS?n@sR7tmhD}(Agenf zg3G>`kJ82==mkJ>H&DRkw~^!)5Rjr#*6;wo2|kGHo^LW&<{yLZ?-~i(C2?-x%VrMF zCc~n=827VMz5ARx)!fLQQ2h9tmzpgG&2}U7j?2Wt4ZH7GbONC-r}%?-%DELu{?D=u z?dIDV(Cmj}gPLyguC=92TYJWtc_Aah)!oVxTD8eOkPm=|=;qUekf>N7-nXse{jx01 zJy_TE$5O9_&s@V^XlSgE+E$VPW@W5SuuZZ7wi7(m;9gfcl0)9Nxffm#^pWFJn9h8d z(-ih^C}HfdB#xX97WGIys<&wKMOot~$L5Fmj^cpTRu=MQJT*{n&pS32zD`}uC-c#X z^?Dg~b_@WwLx`qY8ZC}!Yp+%pb=VgKtb+$F2A>S7bMz7K3vCkX;<4K*90E56j)?Ew zzP0gw?%=&8y8KypOrng(&fle?U7Yy+*3>ZtH|OlaYZK&EyD}fWJ;VT=r`abB@=pL& zIO1ss3Qa8U*>>6C>m2$(%4yZM@y9oYe#%r;(@J7 zQEv<$L1}pH3MXNnrmV;t>IxGL9I*f53bs~~cWL}|IP!dy*ozROmi7bCX6{5t>-YuT zYouiv`MH^xW_fDiRQqy78I(<*!$UR`IY#fG|54<%hRg^E4F@DNnYF=jj~5EflYPG} zmH7Y)wfowZ1-!gnnQ{Z;$bqy(gzy8D1F^%V{$OSN)DBJKdE_hP>H0S5e-^TAzX%IR3-2@_hM81Z61 ztJ{+JVZ8NbXYmWl4rbHlT#QR*H~!GnQ!L(yP*B#dUM0&z;u_}>4Gm2EIqJ&1!+m?& z(fzbVB4i|oD{1bSfgO2{XtW)|5kCT&0qqDjC;tBvU zG6P**)2|1TDAP3E5I;ObGYST?zvi)$=DCp$b$GX)15}N?)c_GeusSpr5xRnNA1a-o zjtZ@6Vu_AXs4gT;#Nj(2l>4y0MKald zp3hoM{!ny^uab2$v=IEyN;r~L930?q-xvttB*W;bpk{a)1~zp-(=gRu+&eg}P?x2R zL7d%#-85Ys3u*RWC)g%YzCYi3(mK<~F?-ie?Q_=5V_*L8AVbS@1<~4$i6O6=i3b5(u!fVr{Ge(v*D8h7OPOYWG`|@sKDqugHI5$AMVIr8@La z-G#^0jOc;2*_!gIbI8P}-?#ciM!~X%il@FwHYzX?T28j%vIc4b1ED=LKg=o*?VpR$ z{B3^tuzQFKiKX&*qmkmFPvk(p2=QtTqQG%@vRy+LX%>Z1n_x{XAxA*UxdNOfb>`3<&xCl7y>v+Uqqs@WERV zKwFT!n2kCsUIjgP(l%=HJim0BCb$U9aV^ix|B6UyAw3c%vnKZKQE%}P=7{<|15t8B<}C{Qh8ZvzN@6_L^FbXZt~0?*@5 zi?+>^ zjYB*S%jn3vv!RG6&BBl6rjsc(9#pPpxzwm*2BnSXdt#l?lO;S4-y1ovkEE?V6u8M3 zJztVN&#!lDpO;vUg#i!_$LH;jd1W&=k~n*hG|^`Hh#=0}N8YvpX-PkcHU%?4z?o`TRWy4MU=NBW{t zKi(q{H|-au$X;7mUNlBzbiJA`!uyNtmA5b-s8Z_veuU}pYs3y#N^A3H6x?b(Teh-K zbsP4bJ)XbJS#~pnBZR1b`i8qjn7a!8P6FAv-Z-Zh8=~JfV>|1mfkU9A5A`M%+St1X zGKEBfqbg!CrlK5!7`+s=xV7_sQvQ5ls{L4LC7xsBfiN>BLgEMkiq&PDH`$STE;aTr ztVe=?kp2~?Qq&xr><=}krL)VIiYUbmCDq2|;h)aQ)PB$F@k)kEGs~AA2J-e96Ylzc z(g~0RP?KED{+J&}N0pp7 zoOk$i+Q*m4znA#{zwhIhk;R`*@3>yKqPM4yM}tw~Xpmcwh~p3g<&c%1@)0O{C2Ae0 z*Q92{b+HM5F;J!gIN3+!-OFpjI`a6Bm~r@A zi*dpMNr6JD;$C>@<;wUsbW{+ThMGnzt1fA2YyS555R9(Dh6b3f*p}>I3)G;q*=C2! zTL8&HfdrGqI=Bdu;UmW|y?%LkFen^+tepz6qLr|0u4ezcLKfyVo7`_N{lZHKmy^Y{ z?qT;qP#c~DC_WS7a{Kghxn$r2AB9zSK=mu(ZL(Ynv-L8NiQDsRgAsv;zfspXF~pVW zn(aBkoNnQEl(u^uZk^cbB^M-|xy^9KkjiH_O)t6FD1BZ%+hNB zEO+EOk(_v2%Ea|Z8~%AC!rO{ziKHezqATyISy9&kW}-g&evwcb|2!F6YeKD4;;_eH z=Yvw&Zr6%-a$CipnpBJ&@U+)U5of||AB*{$dIJvNLRMaVcVK z$WDkHf*$(blTze}XB1m8=hD>wKCFbzr7H)iX0%et&^BSH7Ysq@RK#?Yh{E9T&o?C_ zQPFjL=s1}-vK2jEQEAptQ@;b{D}p9OD|?~f=E1XV&{ScWw<$Zv3b{h{`dQl{(tVkXmD z(9y{8FiV8a!wBNLoAK%=g&dEpJ%7H&X_NX0e9FZ@#N8>l!sbP44>*xwNC;sifH9B z3G$ecykK!-&hInsJz~-Rxdk@{UV;WS7Ll8Ze46$aAB=Mq78&l$e+R2S#PUw|&%a^x^wF$4}_ zD6r93aTVX4<7Qg}_Z*^KMr4uOZulZmH*gVaA4Q#k4QldkF^(sNngs7lzTy=18xD~c zWwJDZElN78aDjU^x%FHThFn1RO9W^BUnG>H)7LOewcF@@qxqYxBCCv1EZed_tc!cFo?Xy4#6$=zpo(r~pcC~MtuXAIEt{l;3(M#R`)W_Hh|S+vHQY;QMG&?fQ?g6I z+#~}v0-NJpfQ;SeY+X`op20~;Qq_(!+&Ls29!xV}!AJQjh!~2TAA#58;I*Oi+PxJ! zl+ou9=jO;P129(gr>E@VL2=wFmW8TC!Jy&9sVv#(50(lS;z!yk{B zx)gefnnnzI9Bl{JNtP&UM=FWv8|1$UK1iSu!$cW;Nzr)5a9vC}FUAQdiq48>h^4V@ zk~fX5QXfp1u_UuIY|D3?P8XR&KP>g5_4UP^Wo56F)BwaAtp{#~i!!FKN6GfC8!J5! zXfq0&rr-&AnElZ{-AxOCeiXY}DodJg1%a1r)e!2QI6iY+EixbEJ_~b}JXBjCN)zz+ zl#}IqwB-VKB^ukk>I#U%aCA+77<@nqK{gm|mR|l-`yby;{L7RbTbng4F^4>ErCp)u zF)?d|XuuuYlD~#cpI1}6|u!~z&qG9=ZL-~ z7SW=)Fz$%Nn$T@Yffec5o}>lufRey(D9#|C0Q>9lP;IOafha{idxOvVm~$-BL3txy zjkgKO$cDwKwQub@PDPZCcnC1dg4YII`3C4w7(o3*n9~dHG`Z zI)SZ5crBKL%2XvBje-JAH5^UV^V>QY%|pxysUy4$Q4cSJBA}V9BqJE#wh%VH~ztzjGZ>rgZ?%w&ig0NHk{rFtK(ZB zL^Xq;(#?@*%K3`D=!D=&h&NwT3o32Z3vfc|n$u4K9-HCj!({_5-)9^QePuQidZc)K z0LSJH99%w3QP~WYO)Vx_)DyW-B=}m8NLAmz*qyME-LT3!XP$H<_nwgDI&Zz;sYmOg ztD^jXp_>oWqo7Da`9lT%2aesFy7J^-z2$@nAEXc&SyUDpw-y679>y_OlX2#aJYY|F zOl+C(?=~xJc@F1sJ+kW}S0nP^%v9h!nlTfroFNVrj{lGksDIL+elUWR`kDEcTrE2l zEqg&CCQ9=LX!c}Pm+#pya+#xy_LPg~3Y<@)3YRIW=VT1#mmSilugJ`&U+(^$oT zpZ|yHBj10tc6s@a*7-szkm%+SfchGkt>rHeWWVU9-Rh9@s7aUzl#N;u3vQaio9jfa z_71I{jxLYr6+my>kK3}X>U^8V$1O-(sZod{+fYPwkFEb`toK~MiCS{A=%xvLwjybC zx89m@^U;PM;gBICJV#4cRgz||(7j(|-B{5mZ~1I#CD7kaqhIKcT_*Mrz<-#|{MJaU z>@T&WLwuF`MyNh=OiZ3WV!!e}>AZ0Bd^}O_4pG0jL2yf$ytJQ7z1{?RdFea)-sZq@ zK`5&%eF2?XsMtzsQ-T-8>q?C@7_m7k*yN%}lzAS$On>~^?>*Kc#btzfImzYIqr$F# z;Md3es8~AZ$5s0e&bY~dhxKP~7Q<=F-kc`QPZ`MY5<2sP9~(o>cRw~JI0H*K1fN3R zPR8BCN%9VlZm&g*2;S-u`o!NxfCjd45*%6UXEjhCD57&}Ku#abzV79_iI5o?Q1YX| zJc;|vKEXz01IrLpp&>$v9^A>-%7zo)C*{{Sa0luL%m2^j#6nsOV8+A_S`mQeq|+uR z#`YzxVmGv!nJ^F(f80(KkJ4)!s=$b{hHL90n^Y7 zFgH}w@CVT3_zHCmFCs8~0?A9N80^Gw+o#Jz@l#1NAvZ!RA9o;Q(n$dUEA5lT+L~L+ z)(I!ZyQFaIN$2ne?8$nV-XH7okBlvZM~+BmM5{@A>^v*I3#XuV3lQpY5h%ablYeMp z#pq1Xxg!R-t4yN_Hqy#AH4WF8cGy!BrRor%8K2{(+jg2ht}i~!UF$QzPU0|)aUewM z4>_-k-BCs85j2T5(y9Oei^N8_i=n7NK$AuGPnAfRmMy8>i_5;E!uFoqeV1O%&X)dG z6+=z!h{iLrl4Q!Jp^3^Q3f~0|a9y~~SCUx+7sa~UK^!Pi(HC~8D)0#T2|cT{#VxgJ zC*HGEYPhjRe@SrH6*7PqAVxc(-5`;Rz`9hKF?B@`hn3AZAJR<=Tf2&n8wQOw-Ju%UWAdxg`QOYMz! z0N=dB2o4CBDi9#LNZ4SqLR>8U)|H&yvwTo@yGKM!Q*F2=$Yv(adbl)uN)ewQ$S%$; z1|04zAKpOAJ?WX}k~-0>Stf!d>91nS>RBgcddZ7O%4|Ap z2+oAAI^oGKt$V{vEn`d~_c%-0NaKxIF`Uiuo>g_)r4hg&s;!W`2FSb5e~ak+PdZCY z+>vIcF3%boN{dqBFAr_vnbba=1O6%u?J)@Zyn}4pct>+WLv@i2&AHKhqTQ^(JpEM5 z12%+l(RQVlJ|(GWebpdYaK>;$#6*#zRX^nwu*Q81Zw;G$mILu{&Z+Ah&psm&c&K}G z{}Q5$&ko>ZPc&uIvp#H+lm>AfJ7NHC+ve}EWK23P&K$VD-GN7v+y|c-Z3c82tR8UH zAErp*T(UXMp7E8E8*bV@U!pLJJ&AAge>rFb+;NH`^M+O1kb2zhVJ5kdCj~Tk4H(46 zUJ5XZk+B_-W>u)SOlzy29bYbzQ-W^rejg12FE0RpQHcFg=1Qg2?-EJ4l8nWEOvb>F zMVK20N|rT?3gwf&N^3^i&wB*_=YIlpUDHNMF!PDZKYvEr?C+NMBvGR%G>bT~PrRZE zct1P%lJdE0hv6>okC;}o{3)c(OxfXy)|3JZYRbi-4K2ZcZ54qOd2`c0m}XaB)k2F> zCK>^7HC051K&Py+11<~I!iJ@pc&@6$CYMpMUZ`oT3CS;cauTeEzzAD*t93V9{^=&N z3OBCxlidh08;yGU%e6wxND|k_4qMomdaUj(8q>G9|2}CBB*T$+O(2j*+eSHX$;J|J zoA&~V(~75CSArHwLYqd;Qq7B;{bK!Xb2R|NUCfPaf4Eo~4rjvFZmUL%rW(5g-boqh z6sbzpH7WLeXg15Y$@@d|Pf% z)ybmHao?3MNI%LVDsqMPLtLF|a^I3+WjJC7b8msfEhTly5 z%j1?F3}>wvKb6wd-&@bBo?C#k7h8lQ*~G{R_i2#0b?THAZVJ(yjGP)PFAKc7HC5m9 zvuN|7OvWPe5?#I9wWg0g~( z9wq*H$YE!=P-R&IEG~o;T8mKzq|@J2AR-7+`kV9_XXUqA4N@5!WlkkXHngMB?BM_28UIcJ z;e@cz(=tZv3TTy>Fk5OUm>&Z!%->HAzWB6%pT91)E3!}e+cZLAJKY9O4mlujzj1&$ zeK&v+2_i@sY?`=|=Ag+VMl)oo_UF02s2~Ha%0?Hu6iwl+`9c4rxT4@M)cxa2&KMf@ z{gvq#7;R@-19sWE+L4d(V#wCMxgC4}uD%e-I$Azz+7x)PPvux`{U8TS)LZE5W>d7c zeL#QbY4A-2SseTvmr|VH0l_V;uA~B2J#daDTN4@Y>vg|LVC+y54xY)-?CT}|(Vk{X z*R5dKnXNkI_$8OC=m04+wEwwyfgxvxPnK+-Ky^1mj|E9>e{P-3F9xse`z3b#Ie&2m{a1Z_o zwomgvlag#Pwo>0gOF~^%qzil(#(VTR-N4d0SzO=dcT@3*L@~mg7;Zo_o?6*VK4012 zy%O4?unPRYSpe7n&H|X3SQuf<5=}S+0L9vq37aG6+p`)^Bx)2Yf$Vc0tcIhoqbb=^ zB;)aIj^Z_FA%AE3NPuyG#G;k;%~BU?&j_9Edhhn4%y`T+#z}BmZy&du8NN_qJ%@xp zMt|CO41%s+4oV{>eS!l-1>VxJ!d^(lx<^K)1Y}&XV)`_NVXzXH2!*DvK2LteC#$CkCP2)!|zAm9Vo)jR7HIf6GRB`P(0n0vPwJ z(DhFw!q9wgYdu~LE}@0UrOmJB#8iXswhuek=dW~lG5+WqL%v}ZZ@1;TjZVEGUYvvq ztJmY2izV4cQHM8fFG-ejKSL2A$xuG*+bAg!Nn5{u^1-s?<-ZCyo)tXR>53kc z3jNmC&>ms)Cb`ANiLWSSdX9f?0Kbg=@+g1~%8`~aTS?}$b9_4}xPs_kAGc^(y@Hnk zs&Nc^)y^-Y=hb+|_=kbqXpb!HEbZ2cD|8#}7A3vi3+Axr>M*GgfbguYXnN|^=(S7EMB@y4yX6as9lPRWH9GzyJz7sSU_lh z$2#FePsciSwH(m^AnTNCi8al$Ia|YgOaxK(@QeH`V?`$6f$ZVUg+|U0C3-;#>qh+80~ zoAeT~%MljC^HweOW%U*~O0WH}f!Fj8NLozL6-(E3OH#-L$l&*a%A!CsJg_oh0KHL9 z^F2sNiONmtS|rHuP)Lf-m>r=&DaP3d=w=3pOSV=AptjgHx~C7M3gMjc(liV^e=X(s zNu;V$mp!n7jAqc$+LUaxFbz{6dE*nti}OAOd$(gBn9#SZkbG6C3EY^(A4L&( z%N|pez)OQ?^R?I$X_PlYXI*<2eRg08)Eq`w(zTpHtnJHNK9^At2olSuS`Ua}%KYV% zc~IqixCKufjQ{Y5E;2Ita+bAJ&beIVuyF{0e260$jd~Sof47=bQx%IgaP~W1)dak1 z3+B%NSg0{ya~rK?D0Rg8v>HU#T|+xloU$cT&^Igu*NwxF(iKC{%KOEW9Fe9YZcp zpXm-sO)~lQphysSm*ednZL$tgozK_EVcY?LQ*E?<>Q?t$dUZgTe%0MZ%lfq}Rv!6G zo;nfw{Ut3pkM^nMW>@G)yodS+^2XzORGFCNLHX*1K;uZ(dh5~H=s7e~UlY9O*Vex<`RTmO@m{}dX) zFQ8nBk+8WV)OHkz?Z|N|SnBIiteH5^H5O++w=2wmpRczSQ_Xug4Y3F(F~(oS{MZ) zngtvKae)&Q9Hz7!7_&5F1XbfQnpPZ~hcA4DCtLHjT2J9$QY)De72@ElIeQ35j9vRA z{NdC5dd%ut+}mq-BNe&aPh}uhk(cXyUyr$}Ph(#l2lMWJ^A|*?W1kIwR(7-+gLH)a zY3J#0+NvRSP4vB5f6L5QK|?wsCR_4S(sc_WRGsbki3ye3okfzV{k1ZW#o)G>hI2pOItg zmXcAZPRsOnqsn8+ExL6 z@rN}UrN1x|f?y1vQw0K8LVKYo$D2`WN7Om4j_PaLK*%!@24`4f`&T2Epj$}It&dcy zW7{EnGs2>wqL@Q9H=U@RE|8h7Z6Su3MT+oCE$wVpE=@L3=61_!ETkck-cy2^38z?8 zK;bS&c@V8V*vtu8c)d|fIkj>~8s<%dy7brH{UeOBKIT9VDrx{cG&l(TfrPl4W>*mE zUmuZyW!UMk@LK=rpoKKTk@^c7<@gKXk+|=onQA)S99AP8ohNOZinogtyIYMfnyY8& zF@m2q* z6&c#*7c;+i7H|MjzFyBJBIu-iEQe_~P>QO!qELOp@sL(K#40HytdoJH(mQkvE{u2# z%}M>DNR3XB<6vw;)pD^}8M0YTxQR$Ws5}FaE5?fLJ`NUWYm28x4$?j1KVq;+!|edV zGe66FtpiNgT8wDA>7lm^seiY!`rN)uaI@41|Z}8KERqGA^YG zYm4Z8&2@qg)nbO_*nxe3oel(mh5a- z`ZtXNMg0$5Q)l>^vVY^YD6?M~-7tKogh+`}G6r~ATZ6LCN;^-eh_|1Lu&6?9q zbP!&m;8~crYNrOXMDeKyWiO~Uk8c(3;`5+Nxf6#DZxX%>B} zHG+4FH`RoLe~DyY(xewp>Y7@_g$_T1sRK@Wk{5sjR+@PG7hy`I*UZLT-Tyw+>MhKQ zi7(69S0YjTQ=-3E60%uEr(yXcW}YP13tdI#Vnd7y!yehZ2)IHrAI7$bWGX^wKXoZ> z2mXwN#`rCYi{!hI0g}n9m(ZHv&B;&wP(U*{&nskj`^`QgTiCsolzo~Z15Mf*FDFrt zI|C~_rp-$t>2ILvJ2`xvwx1W`r-O@yf2p`H1Ajz?2(g&hi9p^;jK_*JR5#Ep&h zOG`|Szop@vzTYD6-yLZwq`|EBuS-Zn>@wi+&Yv~4=8WzuXUaVEJr?h>#24WGmn|{9 zBpU6f5yKW?dPwd!66CKogi==Fby1|n^wVLeAZ>W#6De|s{*}GzB#Gm=C>2TABrGr` zLs80$sp~!B*P{S*f+x}cbAYh2{O<#Vg^88IeeJluQ$4Y~g@Ji7nK@F+789)c8_ zE9H(kpr|*~FfNh1mJdmxii8$pCNqn6{!an=Iir6Aj!0s$q9mR52my23<-hWV^%Y{z zA6w}?`E}xHm>)cw3{zK7dbDpBWB8soy}5w=@ls_d88aJu=2RkhXeFJbh=4u1m3WI? zg`MneHwLV{Ggvf6mOtBl0B;+)au9sximNJ-1cL&9p_?vVVk(GX+s&)Rfgu|G2-g}9 z3H>-7Z3IcpR$?9=NcT28!(Jej{MGJ7if}kl%MUQc96G}Wa zE1^2^R||8x_EW?Vm7I@N)>sPZsyxvlteRM(ZoZ%)xH)=ii*cLBwhw(eLX6kla%uXB zVxYRx?&#)|L=Bo@7fT5su)*7)hIXjkegZO)hUa|!;*xt)weRxiW0kIvoE3wB0ChztA^cM~vx$o2p$s8F4H+cu|m5HZXFsV(-s z6G;;DL9mH`2|dgcQZf}{V^i1!D?nIieO7|&Y~2>UnR>E{Gh5bh(cE1C1Heu(>B3VU zfPUVw1^JF8KlaEuxL-8Q#Hdw)hHQIlt!l?Is^J=1I+;ySw0S{tdEOM99$vH~alnrSfgMIx=QY;3^nX|@4GBP-7qiTs|W zsy!gB+yjVdx4+o}Jjtw+86ZtSz}>Q-C%&*HTM|0X-h41%1fhf&&Jkp=`&nT{;? zPh@}>PlYcYY)ku3pVjtK;qb8oHZ`4f_HubroJV`ObX_7ouTmaR=)qirYiYvYW`YJX z{Dt23bCZcdPCsr%h}71DGNEp3nZ?}bFc-j%?Cfrq9tk16DmiA=kaPPm2@$G$BU{py70}1UQ+Mr2eJz58IG`ZVdYEDKU}hl#@ikIrDa^>@)ROq-+T{Y+E>~ zFz_$cQ<@U+IK10@&sz_Eq<>99lO(%2J2waWfk7mX;7-#$Pp~gYofw5;zM6kqL&F0J zC@bDLC=1Y+;ex?=UA?3+@1h8Lkm zjcXM<6B;r9gm`7!MKUn;{mM~kRFvGJlwEFm@9~Ta_;gML9qef2X4H*vbEbI-MX1;h zt#mM@FYM?_Rsf{g?maIL6v#{G z@6x5vhYi8@O3>z^avtdZD8EXA7&FzeIVHShC35Sh{AN+slp(`&Lk(NxS*mk<=z&M> zuEv5#aYq5OS9MjjWhwu}^bH&!+A!eWq)F`l7c@ zPo-FRPRUTCX!=!7;#Gb0(AzWhiyX;E4*A0%FN?XnN5n@Rs^4~6nJ8rE;;e5AU2dfI z&{@*bC$e%Mz&~$NH_=~7Q!e%pdzOgu zeexxkjhn(Nr892gm{6bAX0vY&dv|YcqL64x*p{Mq0DDCu?`I3uqli+hmOSzC>KE zI1nd1(BLM@!PpCXSVOsbhC+(L?~URgnPi&_@zjxE;TW(Q_8p{L<0jf*OQ0IjB;n|& zF+$_fr)q+CZ@5>-zUhdNqvAAWL}O^(OX~4hwU4M6^tBpivJ7LqM1M|tw}4$FSaA6e z2pY^nfHK}g|GXaLQKuz%P<2&k1LFiGbW9~~nMVj3bBmG-Xg$6klim8rd^?0KJVQle1c>(A3#tTViM@2U>)s`}Pc~lK0 zfZujQB?sSBz%v0O4~^QSqgu=ig|Dc9yRbEunAOhOtxIKmPCN(AlBKEHs~D;uu<1E8)nD>D8<*VNKFY*J`ayX%Skz^`tbi zO~h6Z`}haQe)SGnJnysi?8eLA>sY(4xI1ptTAjSLlOXmq2tRo~SXKo;^jbl*pD8rz z5$QEHZp={NTLE%vR-_Pra>izF2r_sDNc73$-O|-(21xVBk5!+gt)xyYaCs4>@83!| zOrhm*vhuJj014%Nml{`cF`bcXGuKII^ZRQTjf-F>d!;a2PxwQtia^<1R1~C?sKW#)CG(1?`)WpYyOAY>=6T@{q4D5}=Z=P|Bj`_cKwSwXbbd>Nd_&}XmY}`y z@=#6VK?_Hk8sWHQH0^?1yz~mtvLMv~Zt;B%%iNj62UZYrExeoy*-7dE&BC4=Sj_An z$G*kG9)B8K6ZA3|td6%V(AaN)Jfu^S^sA?ufpTgBaT9MG!ZSWZpN-eUe?_zwFWVj- z$M)E zC4JHLPkjC?K*VsUv?qVBrzY~ki9Jy7^KdYU3uEUbG`&Inxbp)oSw&I}t78d;<=S*f z7Wy=;K85u`v#Z-;RL*!FW z&0+KSo5Hd+cEb^z29pB751)1wnAcQBGsOPhjD1`Q>k^jm#|OB@&!~W9m&e$%YOeu2 z4t*5o#wQkE`@O!;(+cg((T(OWmV`BsvD=>o-iS)hr&2VZZOoTM~znrB$ ztE`Y%jfD*@;e7VGjwd>sKFT7PTmz^GK4YXQb@*BpZDH;vN&gT5h`m)~tjQ$NN5%DF z1Y)l0`S}}8?AFz{7#gdOxJ~bi|K7hlvPa(~38(q6U)a_}+;5BM`dl2ah@PzwZSOVF zJhck9>y!A9ybcYw5RaQ@@9xSwVG&QiSs6^X^@z?u!1Gf6##*WB#|#Gk;JM_Q{O}!R z+9@eAyML}0R{yL5+~^PxmEM7?FHQa{&MaG3!yl|2Awg5GYT#PEy-Dey_`QmEJ{Z9Kx$n++~6h1(Gtqb6E>+a24sZQEwYHlB2BJxRxQI=0=hZQC|(zvq1C-c$GcGj`QN)vmQ? z&AHc_W6UMzy3dLBAHe~qdI~Hkv2;R1DmR<#-sB6aT)FICkt#c^Ojf=$BJAoc{!@KR z)kn(5u>C()PP0|goQQ^bVXhHib4N;?Swj4K?b}?4>?hwlci|C@&3BT(n~#9r2HdA{ zS2{;O25gx4!7j7t`RByzVP;B4cboZD$N4MZ?UUX(%~w3SdOlsw>BPA)AdBbNaq~J= zsL&|;X1VQmA$xz!TP!{c=^wSK144r#iO!ToI);DRgQZb}`)gIC}$VV3V zDh}pL=tLDv>|t&x^kwRJ=Ep*&cBq;(&FzN>LZWc`n6<#Ho~ThBC=OEqXH!p;Ro7RgRD}OJ)W(S0tZ-Xj(01s(N1KnU zuX96pYd3D@8F)e3Ty5W9$x%3gG%yJe23uLp)uUw0^++K?45^TZav|Q&{W}*T=!FX3 zn5G1)oD*CXX2?M6I>z@sHGF5^GP)1d^HrHr_+)pEINsyab=Et8`;|G~ z38RkK%{*}mp!e;YAkGvh4*y5d%>KZ!CI$B7q*`t|PHfs5+d*ZVyC!jM6qegNLIR`l zwJ@zkBY_IzIRoO!4(Ux4lV)z`k4lNMW|@mB&N4c_6#EG=U%#vtdZvqA=U%(TK=<_0 z&UGCWzc~l5`r#HiKuwb}fm;E$=tOy6lc_QCoJNt38 z=C+R>lrOCA|2Ky@m=e>$NQ_Zp;N4NqsepR(u2%XFdPUsdAF_L3o0)sX(s8FKd6#VC z3dr>`0eS8eY&c50#GjBwLMS-(HBhV2`PCG;$ymLzWfWXNZ6_evI&vm_BI2dRapCr2 z5ipnDYdO=P@~5N3h9#|l?6%-AqX2$OkC<01GJgvqA8=-*ca&^>EI9W`Gx$DH`7TAS zUNA&&Lc15>EJfPW0_mHE01oS?a>xiZAo9sTv7q|yumNYUf3LJJ@^mIsE(#!;F=>ob zLQNAb)G|!FbUgWDC141aoqmMyAkBzQ#~!G?@(R)=lzm3>RAvmwEz~w{=#@Qrl)wpo zWKmP?&C7KvT%l;884i|vKWsl^MFJ#(wfj?F}dp-F7I&6^C*pP#ud3X?ciR`NAe zxcHB*=4YKL|9VQ34RMqt_f~l9i=Sjq(@(^{MwO@xvnd6JsxQ0Tpe~8~G5aD!)%)z2TF&dNJ(JDFv z8bo=$B|1|lmGcFiI!>VApNKX2^p_~@Yvnx}dT8V6bgBT9m_Z!Ds*>M~>~lC-G{y=e zu0<8|;yN(nVU9FIIz@LTpp{A)aABx;*lR5n)9PB1dC(#QIpEQ!+P@+%S0k{7%R@&^ zF%q!p6He~2+MhYYun}$?&R>^5@nHyo5j>@R!WM*;Mx0%qib?p$mRzJ0t`l=sB{WnE zcB5n=Da-)>@!0fR*6KTi-;iGFnV6Ro2-5#3GmsP5+tY%^rGf@!qPn)4(SE>7k2 z%+(sy&Xju$>Cf)8Cx4+lR=S}5G@myR^py3I&u{{?pkb>rAa&)js4*o6>?Qj&ROp#y z4?CUj|JKa-GC_TiZy6LOOQ^jj%5#CkZt>5;RABl_$GHmsCue8qNGSU;F=JV<_%Zym zgS>O#?tl?A-)mE&INnf0s4Zc*oo6Cmkwc6*TsJ&B z-_fMTvrc1OjXnwd-nY-MkxjX%SK$CW5(?_% zewO}~m*TtJ`ORX@a_=4-GLO{|@ZDwZ_J9hZ9f6G-EVg|T&-z3+>=HS(T{WRqK={-J zy)OT0_Fk<5A$&^Hk~p8c+1tNSY*@wxb6oL5=rbh&qSxgMTlZjUbz96=#UsqvA}^2e z;EgR*EK;RKe>xy=`x~^j@70*_e;-Z!*U1D2$N$h~nAzAHNE}Kafu8Ob@CL+8Vvg<( zZp19izz=smFfP^x9uEvqV3!9T(A6^=c<3Ps#?B37_9g;;cp(6_J@J4MUhY5zPfFmL z_dFOU8?eTQ0+bcF=;IHNoD~}Q%slmRxIX7@ve!3UzpA@F-{)U8(3|=e7;6PMX9yVy z>}V)%?_=L8b3{N7RX(4FLl2oP?wlsx=G&k=x>eu~M&9akL|6@Jazw;BSL2EY3Stps zm|&PD|LcdAM8Q zQd=a>!6DHi*QWlt!@+`=ju=QOO;!Xt17RJ)4w69}n*b$@UW7Ua@-v8C6czr>vwdGHc!z)Ki#T6R_fZQ-XFxM@8XuPQf9_E}wU zdF=Eh6&1+BW5-9V4|d#H_|geF87-+A3e~mhrc4Q57$Hl8f|vhZm?I_Q(sF9s1yYM+ z7Qvx}mIbMU7NBS(&2dkn>FGJ}hVy#zyQUU@cBGxVA8HX;K4W*@%b)=D{3)TNbyRgkWPsuR^#A!l zGeK0q4S)ZCbZz|rf`8~2a0$lA4*U+m|IdRUR1`Q4patawR{Kx@IJh|k1^Q2X`l_J(x=6hTCP%zZN=Vca zMgej20;N8R9$8mBi>_!Sv5Ea4dLfx184#$(2r%H{fh@!bD4;`u%)$^j;Q!P0-vdBR zq+!q?LP$uYQBcA{i2LGpbMkZkZxrFtMnR+Z(7$S1a8;?M*G8isOM#RNl4z?pmZ_!I z(!rvK#X1}dqUbBo*Qq7fPNswZ4H4~P(U)ZWzei`*tBjWYEZoiYeX4(1gImMX6*hXe zOxvzm?%wDu?hI}8SCsp18DTt*zQX1H(-T$B;s*2zqJmVE)s)r(76s9QadP}KOK#v* zD1HNFFbgOcC+C0LBj zpi>wmP&o<)$P{J*B#1%--UK59p`x&Xfx$4qxiD^EnKuHk%?B62#>xD@%{ocMAy^qf z{5dNK@8;K_BKd(r`)Gm2;uF}-t2#YcM1q9l_AU8oL3G_iM9*P*D|fch)O_pV-*?{O z>BhqW?nm49sTPisPPy&<AskFFn4PlG$M*7mEJXHD-5UORxY?! zPmIFAy)sGAMN~SNWfUW^I7!g>xNMc)DHZ@OWK0~4Bu<i7x~|5>>MH+*uZ|+%^&2GnRjWz3tWp_MhD7fB6z%Lj)m| zhNz~biWG1;f)R|9`@ftLW8^I`E*J^O6y^HQ{d|QG{6qXuF(5=V22do85S~fi!okYz zCou;b8&D(~4*-kOT!)7Z8$^zsH&UG6k0CNH;gFl2m`(Z@1}E};%TKKGNr`EiY5Z~P z0$|s2tJTGI@1EZL7Vy3@w5ES{?!HRUZrL99tW-LEYp?D3Ug|jT_CBqP$FF=G{w>(K z_&II&IJxU=*{Sg8PcYPuIBvU{z22O4+;(xs`uPmZ1rSm(-X9kd5Eidt<<_bt8dI(5 zlCQ|}VZ&n0PYX;v@~+?80jSX~el^pf*-5Qq!#0-+V8K2~^I^bx1aic%#InY*{%@p1 ztDN;oG|uLXg1~FkAzvwyfKWp)L*T=NeG>PjLAwa`phvrqj?R%c_|d`oV19-&wvv)h zrKUAhjW5vF?&5I>bd13Q#Jw;=Pz8~7!}mq*L|ltHkwWMqaQv`itz~QEYUTRBamKW4 z)EM{+CLgB{=l{ce9IuxAXFR{2U#en%p`sE0J51#*DA)Cwf)|HHA!6ZCbEwVrc{ef1ZMc4Qj@7qdA6_a-(F(gi#-k=Yyoz923K!FGycZ{J&cdrMngV&-W9(* z0H8-%D7?U*v6KkfI%1;A5_Ia;_7<+d?FcMjZ7d2H7xVuKZK%MvSZ*MD+|Pf(EjO+S zjEm);>mUGTG{XZYqIeow;t@g7IR2BEQ56*YA4M?-*S{YZe4tSpP6J$`Ead-$Ox@qP zz|a#?U~Lmj163;Azj@sMzj@sMGY{~um>J9e@+#Th*4k=X9Zzv2zSkASa8PJ0Ub{JpKJZM9|9#XmM$Zo?mHS3(9`YhM-&RGjmzXguD-VeTM{2M*ganaTwK8Z7y+;ThGaHHV&s=5V+r& zsub(!_XzhD7x$6$mhc^Z861MN#=h38cUyJ2g^M*We(2Kpvz^;vdC7l_Eco%Wuiq2K zl&~(-iIP78Iie*(U@&~puOH}@c|(eYvNb5$AMO=?L$L**_<#YJqSvLt5Obo-MF{t& zXv;#NIt;R!!q;W3$W{_Jqpn9jN5n^J3?i9w>?(FDU66aAo=0%+X_yL_$aP9i5L=@8 z!t#kKT##Kv8k=JEQQ*T!1xeh%2=-B0qAL#Kiwe&S(haJcQcaPWh=rg&Yr|HWsr^zo7j_rD~3?{MD`WD)S=`w-9! zPsZiMLF0#eH+QmbS^0T>v3$vV#WxICd2-)oJ#hovc?>cK((iAxM9W(KX{|VB0D<0x zVH{VsyHMwt#fhGYacx86#IyOZt4I&c^7utZ(Z+e9aAV9(84s8ehyAE8aL^f}za&b; z#n2M&L|inhYr?QZ$T$)a<=PU07!o8I@byYS7MM5KDyN6@&T%@{KqWIqLAqM;-R5h7 zydHp}DL0&%VLa0ocom%DFKtRB`aFu8gmgIiq)hf<>ol296c>;E?v+XcJxJto{_I?8 z*(<7DD-|gJ$Yz8Y28twMk~vjeWN!~)P=Oz_FBtf7?=Kzt$z-HTf9URoX%nbf_eoKp zVZERkFMN_%Va{IihV1w&?Pu@kPhuk4HI)GjuT*HFSh|13=n|&KxYS?2Ub$V$L+_|3 zSc80wIk}!(!4PhT994r4|qfK0vyfHnqu2z^3@CbV2Yv&*Gr_Ywd) zYGJzKMt1D+kV3g0O5xEJBOQNDpAbngZex8|CEOgjKDDND%s`-e%c`Zos|J!9l_cbG zsqi8*gpA(FT3}M|gUf~1iD|*eilqN;&Kn>-OKTT>L+An}NaRAcFJQkuJfNQ*2Gy@s zrgLAl$WXz3Q*|Pd?|E=n+m!M9y0rkznH;4CU@6l3W*L99@-W8&6=~=H)*~c0$EMYOFMjE2w#aWN`cpfrdLzjBLBgGgFt*`;O1Z!$m zw8;)&CU;S{cNnsqK$QAJ+wb^s4_sz?c8RKXiiH#=s~!Uh(=W6CVyjWCnc@pNaX7>L6m6z(hF>WdtT)olS zrV<%3QmR5T+REDFI)VPE4&?&aWlz))@@x^6RT?07F?}Dr#)ox{vyKo_r) z1MQV(XMk;E_Dmc|0qz?3?(#RiR>mB{5W;F=%YL=XLILr1n0d%!vb=zhCAf~k2|E)G z{$G16oLR<#dr(||Q}74j*BK=3*oh`PyYIs9tuo>e;ZY5@>C`TMD_MznLmrxqv6Y4Y zJc5?3KC}~!ZzHA<(n|#X{=pCpSw~#QK7cm=I{zMo|*rXmcWdr_dz{|MnARN7Y8&fRWC#|+sUEEl5)w-R8Xcv!O`wwiYd9l@gsx;-LrP{0b zx@dgkob-(nbgeR`8RpnC9R68V{Q}iw*aJ!&{iVvg!NP0E#vzDw>$YJzHBT6Dbp=(2@O_HE*^5}{6w=-fuiO>WpxXm_YdA}m%&gk z^sSwvfn^>S)s#N~T4gW_<&y)6@}Y$S4B?vlhxLm^=bLfj-Pe=qm~uSaPFNq!4jqV<+oR_!bI6i(|H==dDdX*OJ zQ)Ogy)N~Tyn5HTLa(Ny~P>_Zkkjms}TQHY6-tduPoIQ2U*s)w9#!LP^R8M zJeF1tb1jzrPQr=>?`tx9R9>mt^s@Ut#sKlWfu$8-fsi@{TOEb4aQK5m%K8OeH(kPj zk(ovqB-R{5T3M#}Zm>~X2R{$_uNxBFuGm9!GH(=*4xV@+sm&(KH=lri%H(8FKFO4B zg|dG^NymjbB%uC-Dm~Z7L1P{rYfgu%N_o2}N8ht%<3T%q+EY~AznoUBvj`PC-B014 zmUIq)YiWQOEz`e4njdmO%}f^vL%k5?_gB<>Z!(->EGh_2xgUDbB8*YMUh)gALd#w` zrW3NXFd#>W}(Rb*G^| z3|?b3(;^A5$qcE`!ozg`nt}ZsVf%~Q5G{hroFPA%_IU5LP143AU&;#74T_PX{v-za zfnDRHY@{CCl4th=`7h7(Jwi?2)rDE>4XOi|<+8iOZ}pNS5MGWNQ*D?}YA4x6T5D;* z`Ih4?$U{=>udDLkF=1hA8SSD9i9^KdsXt?Sg}FQz9*G>|o>4CfW|9ojdEN)+Sc_DM zaXoY1okogxf32ydLOdOIODz5XSIo{^T3C#B%(qBW+gHDH)2U}?;Ubtxgv}P~7nSvO zZpH3qy-9Wa#m0PHiQ{=-NY8v^#-k($h`oQ3a`?%COqkdBEGtKdxsUL?1E-!c>XvD! zp7$X^;HgvgC{fQkX@GlGl3@eL#lnsB6-n_p=6^KK%^fNwVw`!; zp!;leYFc;d47L!{scQ~D<)lNd6YL1G{eWksH4C4mKbiJLDAmi*n+$jNW7DMpgc*u%F>KaOpS2dl0Whso{6gX8d7NLxq3TiVjW-Q6@}PtK30)!oJQ6jVU zMKQf+A^l*p982~NB@V;(?xJ*e#a`Ate>&u=mV$Y&XdfO*{h@lV2u}A1eLTgPc*#Ia zjR6d5oQf7l@`$W{yy(ZJ(Jq|OQEh}!4+DoqDZLttN+Bzq9j8Q8DkOCJyA9K5?;~u!JZd)#N?%}482apsmV?S(pWf_M5qd8yyrF+HqAZ?Z7wzs8&`&tG#M2|4>Ag zoC9xUX;{~uc%O;P)Jba-r`1#Ml>$RsV!3vjIQgLwSmIJ4vu}lYG|r0)CvBeY1>I4j zRV5Mg*W3gC&nxUiuQ@&6^yCt?h@eA9Ry`_-E2iGBu085kk3VeeHqpYcdA_n3`J#|yt&GC#egbt9P<^MUU@U`!picgD(VUdTq6p{*+}!D1 zgrBY-SD*94Pj7I}OyjmLmBy<&eLjvWvxe+fR-tl~q(WLLR;Sx}vn>k{si@8g(GmDy zm~EfFr;*u!=r#N?SxuZ4+LD}wZ(YO38RNf_w=^-=f$Ch*03C#7mtg&;;cJi_V}R{P z+r(BU(xU~gA?ZK5wl0uwul;%P?H5Qb7aP5e6@aYfxUC1i{HcIma{=0;DfnpzzKhvd1s$%{MBi7e8d{Y|*RpE-GfXk{x%;tN3Z#IwNY|jkI0xrtYFhv>9 z#-iN?V{Msx9`r-zdM0v9T1PMJOhrYi#|*XOKZ-#M+x4$I^1L2_EP}e>LzKPB2Rnjl zCYEO+bgaJXHf-H?$+gV-JzB`$BlX5k2~V;S8!c=PYf3@bcRNlQ?p6p_{n-?puKu#> zP?J{d2n7M~0+$!g#1_wjp!`zh4~g{$`i?9@v$Aucx&$8Z4+$)uJx-)hY8AB0Y{*p9 zO91&xnlT2o{cF1NzQpE=0AV7>7$@`sVcE+JvS;<(aMHSby|5PltpT4ee9QgHSf*O1 zfrlT(x7pMfSoeAU`={tTM8?z|ROK9Y#tQSQSt**R-drsYLg<-=D|v&F_L&RPz{PlI zWh-}PXoJ1p#RGAa`;c{2%ZqTf>1!jj1V8|>DEUe%M!9}bGp}0b^Xst(a!!xX(a&!h z!hH-&7he^_NOx4}!}D2I$2f@l2pOxn-(Ud)2g)S*3wW*=dhkErner!JTpUboY()JG zbmjC63~X)x$&hoF1rt3=7ny$&R}5V>P$|DP6n>fx!F%fRS_@Gz7%`5!s0LQ{(*wxt z0j;F`8#tG4AR*=w!%{<*gdhPs113yA_nqHo%7bG~C{`s-iPN_TYaQpKvaRy$1Bp}Y z#1gZ3=e9NrI5g6-$AmSyDUfT(PYFgYU4tH$kpZ9m|B6p+VomXR8slW;Pa{0(3$jv2 zouD-itCMT^?6g6J$L;auzni~&rvVVYeNP51_A4Iv)cWhYDj#%;IL;@QYR~2Bog9n` z1LZ{O`Nhf;j%4eCXb^Oo(jVv0=yl7}b*x$Z%dNuR>2NbcHwoOi`oz}0tiGL7d%&TQ zQzzy{u-J`-4jgxRu`M&5xLAkgF>*R=8qQFn9f(t$1g!SZ%Eixl5X}Y57Xg|gvQoJ@ z)WjTrTrq4b)qM_%i*(BGl?y892#!GU@T|_+J@D2ave=gU zZIbBt#g&E-SyjEd*henCjREq>`J}lM6|Mc?;q(uI2fP!^9F<1@3Q{094EtC16Qd>; z(z=FSG2kw$8UJCWr(77pXDJnD)N;;-v*SQKsLfHn{ zVvCR>fVxkf;?y+iz!ESs9G;Jn<#V$4Ch#TW>j#m3T#(@}%q%@&*b&?qiqzm#n%TR~xYY~a@+O=`}8>g$U z%lT!5!YNS@brpb(pPqzEQCkyRj{b;)ple^(8_-iN4d19ZWNP6cFWRcqdc%aUBlWzR zJ(8G-KsLmb7jZzPURokr5S#bi6*V_FayW}iXFT%^_XpW##lJTB9En4V+7E=syum?) z6K~3IC{|7}F49rn!QRp4r>&Ar)Bs+iob3?g3ha|v^%_93U;^N{yFp$BZaLp-fc|Hf zO8W~P5BEmF(McGeux^+RK?S4>Y$kaiLhx)6-G%j#pBpx;qP=4(_cW9}ux9S2*X0Gu z1p|ZJc{tAa7&EM2^r+g9;0~G}qA;$PMv0lCD2{2cc3@s*+?G`>4C0gxjGYKTd;hxoxs} z%?{WQwRY6tGHkJ{nX+5hD9Fdt0Ew(cdH{p6d+qM{2`%J{K!=~Dh@Uti9H9JtC!|hTGZDkd!%tY zDCPQSb|`1Qp~p$6ft{F~j#3mQH84DV^9bN)_`OL+patUZ@AVxABV+E8#Ei7PmT^Z) z;MAvaL}r&0&#x^Mg&7_hYI@~osRR@0Ab+uY5tw}ckHwCzDDK%Vdoar!Sf*`vq0@IwsmwR|sHY z@>K>YzftSx1@oD`LOf?33~T2Wkr&gIq0K`tsz0brOn#4dTnK zkD(G01wC;1!tX*$O2j^5vtYaHK7su^DmEz2C3*b-6q*Ta_bFjZH!rO zUdisd_Q0m}JM-V34ZuKR!FXOhodR|GCrxsH}K(B>*-E+mW(g3vEzF}#~(2o(*M*frJT#sUZ?6qRJmoB@p4Ecr)Ox?6}%aM z>Ym*6Z2Sck{)=KZ-*58{{SFYt#a>I!t=r)LI{%bwZOlhU%uXH9N&wGjzOz3Fv2z4~ zM6v~^fak)9&f*T{L}O9S-hkmB2gQ8gdn=mSq_Km|Fp50yG`gl>+h&GnaKu_v1%924 z*fdVbI;MT)VX5tq(Lqj`h<;H)lbYXqcK)PrDEno{_o48k@d>34gd@F8uO@LSX?-@mNHFs-gwLz2`g*VhRq+Kh`YFS{e)Jbw zet)90r+#Ni@aZ~c9e|BciPaTmdhQ{?3*r{oe1(;baw|$-dCC)3evNZ<9{bCAboX6f zOM)@2=v+tOIzRwGTn3=IRF5f7dfrV5xf<-C;W~Kko!)7=8=g$nWo&WZ7F6odhkz0= zc_!t$+T6E~6(Gy?UwlO9)dI=F{Cem*&L2)X``|S<-8#OSOk}{rZBDTVaSZleor>&0 z^Bf9u+!9-trNh})#nBgeQuODq(h~B28|Xi+K^y#rysv}_gaf8G^8PoYpkbv^0~E;F ztcJ$%pV~nGJIlxO|7PnrIJmk0ceYLkT3vm4shez~ON+t=heZ_qM(_&wnOYrrMnSjsUhV=+zbHe@tO@1KJjLXdDkG=>w@;<_FcY? zn4{n>R(xax00D%tQNEJqiM3? z>830;z{gPQZSZ!CCrs2zJ&)ao`JJ4bvh+*yOkS;YDnmYAA?Xlbcz9^Mryg5?`^-@p z$~S<(F`z>4_PYgILM1LY~{n$9BMOJcP#;cr^JvWAhOd8eK`{-^soDyMR);dV$pDA7e&G4M^>I zMt0_J!`c*UaMtC=1|&oa-D85!Qmm8IRFs+ zK`4kXc@X!qJc3CUkE6g`!QylCdtUEdN~Mrr$^iGX?ho6pqLA&K>>$~iaooXx=g%v#r+l5?Du&n(Ar%hAL%@otKH z_mz5=M>QxN?TJ>R-&FfAOY@6LvQGH*;7=0*`daB5^yqpfJm^`U9K0dDGusa`Q8 zL)cH%4>pw%Crk0Cf-7aiy3ha2fL$)hK>k!R)N=HvAPDOze2a&Mk?>`iU;}{0!Af3& zd~IlN!AX+KP@GF0Ar3hhzkR#Ts#*PR2GTz6UU$Gok@$s9;syoD)fhQ(4{kEi*5Zzu z5HCR)YT7w)2>n);A67GJot=u9tiYRJ9@`EQ5s4eEroVhoybB{{zPL9!EPV&Op*G&D z%23>gED6dLtrEhqm?cKN4-}w5D>LrMtUCI7mQoP@^?uncmCBW)yU{NPp>bXvTsqNX z;Nl&Hp>;Cl7o}<9h}3C9IPbf(J-_L{PfDoN`-l%QKwbjfWYIiSm$bcBh!^~CGwfTX zM@i8^MZIfPe3Ak8Rm>V#10jW!sgw~$;WbgC)(asY;0-&(>@!D4zYAdVZ#BAJRm}cM zoIDs^^33^mtNEs=Q7EevfnYFy^QYeJMWP*yb@R9IR#1@DiQz35ORz4!^}>&!63+9Q zHY)8(gp$%H89FazZr_P^M@bX4jiV>0k=UdKCs8lkSt4+8)Q|j4mU?;q!C49KD$ZER z5xfm*#*h0#hwYio%>dYJ=qP~FsMRPxjI`F_IXzWXvg#oiM~P0iW(qv?{gKz>3sxZ2 z;=dVP3|V*Ah&#CSn`UHbAZ@7e?&XF3-}`8-$iQCHLks{P znLh@~f7u!7-l<~;QEe9CRJI-5+C>y8RbH(Hpw}6He9*)kPymjM**{qb-y@AeqT|)~ z;5pyhQd`GSO44JsvT1CFzm_lb;GU4kw-)?? zRcR-zI#vH}nZyaq>iYz@9aNl{!DZ5L(zCcx9SuFrx8p;k^zI2V5tKLYNaIiAMn$NT zA&hQ0r(F>J0|oft=_4wdP%1_~#xMh4${Edm*`*%`dzv=p)Dln&O+Y~GMI)wWM=mmB z52vLH-*clv9z23*grQ8@4z*ki~f9e^qbNvDh50xDP<3;&jkH#&qj64ymc z#nI&JA}K>jVKu)t}O8%9~7HU=wtNeoE%tt|*`V>GW44W*vi%qE(n zlBO57ViQ_W!rwsOoUy%xuYncRIa|7Z%&-)%RuqdKhW^rn#M(};K_EF`1mS%(Ni4LO z|1n8Sq9cX2A`kyIjkkk*_!}x|)wT9~gL{N?taSNTyk#vNLTt5Fv|)wt2>?XxZk_R8(8`$&AyV@ZCU zAVx)ATta!2l;Yv2V{~fGvbyB?y40S~UB1A;{ijP$wJ zoNsz(GZ-IW9vx_(#^b#=;}JjN<;{G&_5E~h8rj2FXU=pQqU5t95bJPyrq|iL7$Ycu zJuXH!U1~ug-$$tbF}S4-x|QwI`LpP}Jq#4!ud<*wiyRcbb1S>;*+rKECuHq;&wb)`Vuk*K<;x`Kr z|2FBjB3%trGqXm>3gV?oS)%*T`AQ#)M#yhTVe!xif5mL!{wNS8Q2gQG*U6-fUw|1t zpB+9)c^MIv#_X7lb~=OOCKbF53qU}uEa{>6lT%70GUdrFRjCkzCa8`k!a+&8ETalA z<5a8{OS8R`W#WkJR+ij$<7N{Wq2XB)%ScX1j8k1953Q_kW$r0cebd-P^~N)O=M`JN zpNg@4jO%}d@S?moIKE3_&!jV)_UXu&(kI_^*_s($IAw@ZLDvCq&!nQH@ zS$tNN<}f`G5hX;MTlH%y2HXI6*?G6}8^Km$@h@eBjXyRcWZ#P& z1n{?FH8zJZMI@GLA=mvGR4vpx6;}+)+T=(v7EXFV)OIz7Wf}y}Wv~Fa{rwPLmN0R2 zS{KJv8s6SbzsdGWVk8L}?mywOME<3=k_WZmT8C5^GUkCQ8mmtCDpWcr*1rlnif}df zxi<}QWmNzZ#T^UswkHdvDAx0$An*PsPjU0UG{h9Kz%448Yxdk%UynfgNm40W^hWUL z&>YA8({%mSECkKYh(!#L|2oGF)lH#XpFJk`R6hIAm&7-nyV-pYbc2y)QqOBHlAsjT zfiDD~hvtpCCa5jEr6G~6GJi^w);iAG_uK(j;OP5xp*ya4J6 zeQusnV%>7z3!xokD#8~al0Z_jdNTUdxapp?1%3lBseYa<+l&~P{P;j_$zS*7%J=2> z8$yu(`m}~ZIHut0k+kaO_K5pSS~4=}|5)LN)o}K?kH!w*V|^&Bye2&G8<3@hJu1Z+ z4UuH%k-QDL7W@m(<*ZbLeto@TY;CR7`5lWVbW>9^1u>IB{bxbt3w8>;4baYooQ^b7 z(zBwcXQaAOe;<9vG)uCO*DWxdwC>8?CIEe6(6p77A|j-{#x~$?7L%Hbbu@T{(oo3L z8=#PJzhDjMetbpECA#r@>U6l`T!WGq<YB?hEanDweGdzSda*fm8cwS?G zeH~;#JP!gI?2`{eTIDCgbJtc|B9>EFblF{ng#`jW6a8!#`jWeo&+Ee`vLidtZA4X= zJKWmh5BZ0I*bPPAh^H2?5gM+@O0){eXB;9LEJ^#I;XP69rl4lsJzt`j&h*AqM5;uL zM*63!-3Ejz=qlNr@J+R;?eW_ki(SqNb?ibVb|b%fOmQ2@Ki;Nf79`N$nEX%AW+3I} zG{FH!@;UQwh&JDRn$xPT5BnSE%dSKXL2OsXVU4rSN35dzD`msZ1aZUgq>A{&4>CWYyXSv^u=QmHQ9jqEj0D|i}gJ*B`( z7nhMZV@nj711o=*%)|f_U~A z?FAsB>XFJ$WGIa6jDdr2@P++i?SDliyN|~FpwiF(82|QY3n6kV<--Ks#n8$W^Bcgg zUL#gr^?3G7U$3Z8b#%BBz&&#M#O9m%OxEnKbaTxA^_HVp)X#3z%ziC)(Jhd#=jHcF zSon<94D7CbY8)S$@#+Dw9<1Au1Psa&Lgm$lBoH^@3$vi6>Qf(u!LjE_F`5gT2E*{0 zARH6nv5cGY`x)W|XNVN2Gi~^%p$1o&R zWhFID!!WkLkCQGQI_;7ze(RI`si0=4X4ELfR`!ZVaW^Zp*qkuO=ha%rr#Pp+=;Mvlq9gPv9Y-nKX%Ih{fbn z34a&m;lHpix()CQ&TgIFeUY`hYy06ujto|JDhD`auQwWLyk5u z=nRRDW(zpq{&Bqe#e&1pn0J3M-}X$!*Ae~>DP!hA9$ui$De-Svl2ey3WNbU8iMoSU zdJGINA9Ob2bX;FTiI|+-++^gq3>f7*YJ7`fH1Kp+6n<}KPvq~clmQYhMzS8{F{UYL zRnOa%+zb;c$kw+PI&1PsdgSA5R1`A!ON?zr)Y;Zbt@RNB=IS{E2a=b48$KKEAfzHleq#=Gm*1 zp_!zS@N309ot`J3wGAK;rxltjuStp}$^U+|nBtC2pyxe00MGEQl*9JDyI(`){YoAJ zB~7-Uv^UDYm`*NYsH&|>Z-33Lzb=;K7+0=D|H_s{3ZJVb?51kbRtR*`fdw>3&r+4=WtlHXasT}# zFBSO0>`;I{X0b@|7m^}n&P;*ekRYOK`_O^ouk~sS$CiTB=L>rq;&V-Qc$XmS_ z)A}*5=DL^A%QF2tZ=M#);ZwESTdF!5HE3Tgyqyw`Y45G$1>c6h1>2wZRE?LTG|LZO z@u_#emM**cy_<5gH_xV`wc4j2Zj+3h{_FDKnX}VduS=qTVQHiv2QFie{{)cDP=vJ?K zscS@}#yYhPK`LGg$$vGq*~_=jO8;yc8S+t2wvI|bjqIVLi#9|2wUfMni;r%(%I)&{ zT$1U5^=+)A?R?i7T=S6@t7PSV&4uwq^6GsIlQITW3cjOb&J^wWM#LJWo$Uo(C>wv4 zEUj$b`l>ON`eo~HiS<$mz)Z77b5%=dCYlYl5-Bw8FH&u(Z*aN9akL?VKLN zM4ThFv^q%te+ql+usVWdZ#cNSyStuq;2fMlu%N-+-3jgocY?dS2M88|1P|^ZxVyUq zNIv%N-o3lY`#j(LH`QI$-M^}uXQrpCD*a6>J9yTop2y69<)dp++rF0F<6Pnh25xqAgf*kIJ1D9OxKYk>brr8!NQG6P)POrg_NiNJ&$5Q7G z!=4~d@1mgHrmd|SWR_#uh86^R9Zo{f8Z_o#O~h|{p?|9N5ZQN`eDv&-?7LlCXvxz% z#RD}sH#FRz;OLrn4#pub-3Av(<9&%B4`6^BAcEeX4i72i6vK@6k^5*i1~eUAc;+*Y zaFr+Kg5?Lt#493hkZlCt-;Qn^Jv^0%kZ$yna#zf&zO9mCmZszYVE_eKA>Pr2zc7Xp z7V(p&M+N^krVMY4Mu>+R4Cbc>1A+QnQg+6cF4Q0pDwmjxsrgG_>y5FKjJdU? zl`Azb_@zn0{GV+c06v~1r!hM?b1sXd_%uQWM=mEWXD$~m7bjy=b1qjdH!gQB4=yhj zE-6O`S1D^da}YI{JBiwh^d&3}_aD(GP#}mG{Ga>M8n$YxnuMJ+t>0d2e@H~ct8c}r z`mQXvuT|sTWK_YWwoPNw)D)DT-##oy-FGg7ynT)yV(A&7V^82)P$I$^sIfTZ4o|h! zc(|Wwb2R$-uxO^K_UN;oOJYQ%zWy^HTC_Up?D+A-@$5N=!-Sp^8Y4qbikF?4l1rQ? z;-YS+vKg*@aodm)lqZwEPSZ|5&cH@F=DppG%Ia9UtQ*qNKd(Ct?)E9dLXSf@qRKZy zr^AWdtTPZ#TPeV<(!ma5WO+Yx75*{c_Zky%7)f4Y=B=W)l*Qbq;}bxA zYu4r_go)l^B{f+{b&R_zotrT`V^jiImBDO*aV5=|sXfv@1`j$)_ehrJ$d+-Z_Hh5m7`;-ohzHVx?=Wh?2SSlV!ppv3@(*eLSvY&jgl zTl{lZa1)Llz8&M9&+9i_8>dzqoVy!{T)61ZCRRARLwiLr6bP*kZa={eTsrb$3tGtq zZsd(F`L6}D$aJ!zZJJ#!%CWB3^dHI}*frd@G~U=cG|Xj(w`|es*#ISyXeFbbO+L)M zPY}zYBbwQVN}5XAdvSbJ$CSPq$685l^KOm8ojP}lBYHN$lUnHOk?W!5&yZ4+P@Mg> zh7gEs(It0IEB~}JHX_kOP?Pf8h1-Q1Fq8CFJT@icI+5VZ9-%0${jQqF;c-DCqU z!2aO%uecXIyct!gRc5xv3;qwWT!nCDokFU@OhI3re|J-0yI}H$5?AhChyWryy)Fld z%Hge%eF66Y-~7{Ox%0~%YWKS|SUeF87;p*Ry3mM@Um!ZA$qDnUTz1uJBxYpv^*;DY*X6269VC5YhN2fh-3xus&2 zg~x@MFJ|6~+iCLb_d>Z)0si||M2LsH6uzKq{#?+{>54@wvON!G zHtNMz#?@!Ju4D2iTMVhRS_dKXal7Nt9nEHkw+eY)h^#HGV-koMrtds<9oXJJo)y59 zm)xp_+a^O%M8Ob$?+;+H6vs&-6KIZ_rly*qeqdFWI`nK_btSaKGS1A7vs+4)rA)uG znWe%TP9yPc2ukL_&~VzV{TF_o&kbj^CyS-E+m0bp7KktZ&*sK+YaO#;hc0px3mqIn zrZFfD^4-6`L8%FS?h$^#mnO~B=~ZoGby-YN{q9q~<5*n{X{_S%8pLAk_JqC*_}!Zy zjYq_#fEu@M)NlOI5{wflv3;f_Q5%lsi?o?X^~(G3Lr_BMiD`o`t8%?r3>&MJvLzmG zw~0-VGIE5G8HYoU_viRL+C*8z-{`@|We%^lGm{Z{O!nPt&x^G&P&$J2a_@%(Y>877 zU+M6ZWb8t{Q1T1VPF8}K6BMDgYz_%?GdQf^R04u>@inv|y@-+q+J~yVrd$E1WI>BZ z=QD)m;5dADEB5}j>2gCmWn$7Oc8%zg4%zSiOMp&wS?yOCpWdjxOSe}O<~q|KF1nl2 zsyyAsaT6^6LN=JnVY#+KByYQ?gn#Wg&8A5x((dHGrfK;8Q+9i3b&)W%n!{axjt)rS zFjx!i^oC(tD!VP~&m~)cV)S91!989RWcBvK8(gdAt@lTVx?poas4A@r4Svs%5k-WI z=2yfqk|*e4!Jp+BFCP?PE^()lpsJrSeN7>VDglX)FINw!?=)qv4~-1r&HA0}cE#QM zJSl`+oLDwv$?8an#ScP_ORD_dB3GWZWUt@l^$rK$Cr$s_)Ja1ar|$fg zS8nwEz53G}sX{!b3Sfel>j$~gfcy^_^ww2-+z6>=gvt_`$)!G{$1y2Ce^XCV>ZN)> za`rFutpNe^A0Oj5!q1hLb*59_+#zDDkj0d40-trhK>EJ875CggpZWUUye}zP-drZz z4gLC6SU{eacEH|9vWNT;?{nA5m%apS6sLxICI^y^D5FLvgHGfU)jTSxiPByidFhm# zJFN;7?G9u9lNh3vTxb3-`tB~DZ^C~g7objWrJh)G&sg1Rnj#Bpmg;HIiY_3a0@KD^ zwjkq@jED&f*a*?aQ1qoER~>17KmC1DiB#N$mh%v|q$hgXLPMY6nXM74*twaX@joa= zuTDBJDHZR}m^T|Yn68~gSBy8y3(@>La2VV4-8tQr@~UCD^NvO57eZ6omO!d8rMRjn zEg|UjniaM0-d%tuU;h|)sJ81%ohJ1Q92K( z?08kcTc70uZZ8`a&7G^q`Lr zhI3}_v*B6O0_lCinnpb!N%C9}{8zYnL+b(}Oj7qEAujkIC4~RuXaE@S@1p@A05|`C zzJh6bxvHv@LIZDiB01#VgefFZGdH5D7=8F)7ZrqzTGBKru6xjFez3}}kX0k+tt*=) zY@OL`ZT<38V{c%188GU8L_w8{Y9OPnXprazOH=6x4v%2hi*S2=2 z+d0w`#AwV;$OgTZeEVL^-Mc&S2G^Lhqb?--8!c6agoprtLe%4)-esCmB2m!y(7M-y zX4ts1mxD1Y#^;CV``L&DGxgMjM;T-9=lbiX1bg#*FDr-`ygmgTk5v0j1I&@?1fl9Nd2N4W7)9kZPvVQ|NXev^%POgmx1xQ>XE z9)litQ?k0)`H^|XV*)$SE$c05GeK6ALT~Oj3nODyyH(9WOIj-q!?$91F|p%B(K#JlX&4!>{1%R4>%3HKc=K4PeXeWl%W%Xi#l zi3!eEhdK%+;zg-2t-s}Rno8lYxsj<{1s}TMjDb_0l-Rgzx3r}W^ntvg1Sh5pJp;)ZvoY!l;{Ppux6 zS*I!x-(Nc9RYz^o!89AS9}`IO7o}$R&{SLh<(Q!}h+$q%s1x0ZhoBqR0%zM{oY!k+ zgQ&RPR`TVodLB}Q7P*Mx$1Q(1@cV{$sdOwmP@+L+o(gJ&ZDO=+FU|v)Nrh~vY~_0TzWYpUGEdy@FM{e3!RafxPK@Zd|JVZEowdvfDL zfR^^KBn>g*?ggbTmXeyP%T+WHGY6Ea&`s1ak+~P`t7`UD8~A_;L^KAdYHVuU)xIAH5!_Z5OyoGh%`Me+NP5M>JX4XZlVSjO8L8)9*svY{{qql_U5bR9*~yypn>&yp z`tA)=>jSOyrw4>BLQ`{nuQ%F7r6@c&%~0dV$$B_aZKes9Mk~SBASdEcjo^w^c!6h@ zG#_mz+!X`BQ!*L^{?%BVoJ}tg-+npozPwG_GIL2nwR(!}O90-mRZ4tLI5D?|BGi;5 z{_fq|`-U|4o^UBqkH(yJ3OAja{NQu^rf4?S8&a0D*u{(*(J?%oYf(hXiJQX zdPIF>L+obWZ^EQt;PYZ>S*Ypq7yVA!bi?3=PO9;Fy%L&z9Yztxr#4-Yk^uV6{qlYF zPOamqP}}i<0cBN z=*go)c4=5w15MeSafp!(vznvMj>TvO=V1>!E`&^&4)kC5RA{a(Wvwh+ zojaA7Ncg5$Nh4s0r(<0ZLzq5jWM?1|c{z6R@1d?K@Qo|+QJ&}^6+*>)wKLNL&L)g!qbJ|L-1AxsZl}Y^YDm9+X;*PhGFVM0Y$ELLTt9h&%b_!3HNq6y^ zn~#K(!bs1@xtr2Ibqb*sEap12?}xpsP9u+yIZ(dE*I}~ifTGoPDn6v0E}Q#ORLtUv z!S~16#0sVkP`%~T^hVP|q)Lx#UA3`4gMWjLbUw(2BBj~zEyE`w6jt@5G_=@vWWG1hQz`_zcWSjZv+4L_ znW^>9yWVsHA7RGLRTYvM?@64G+?thyV@bo&E6T8C%y}0AUtLfKke9&#U*7^>U63W~ z)DQ>1QemO0-`ldz_4MJwH@m#={K{~XPyBMO4tem z(ozF{A-OQ=bbA}569=A(UMceVnwfRYtxPDH zFqxs6df~GJ3C&O0kiNY!9ezFF0Alql~ z%$R7!NEL7Xa_xnxFUaUhi~8qjE8h)IHp0bGcMhM;^t=)GDW7~&&^u%GyKJq6e6Tup zwg>nWiXKKqmz4_3aTpnsAQm>Jvo_jo-Ly<_kF+Iw4M$q_skPJW-3OY^#*X4w7lo+~ z7fP881!?3hk%yAzp%yK+3RaB+wk}Qs+ zv^nHl41*JY=!|Av60j-Au7c3NjKUT6dZ|?qFYg=^#n(Fjl`Ik3FYO`W=`DU=nfaW7 zw2gz-!k8G!DV((|OPK7w!{LqTE{%h2(iHr$HDFQCM68U_vH_H2i zkJ^7jrI2FCrUW-)FJck3P2T6|w$&4A4aMjbqze)jJHVG}B~Tc>&2;Y@SN)185rT!~ zF<2tAPIPYo=ka+Gbw(JeOMSDf#873XWgyw26f`?r|feOm@oq zuAo;Ot0R|D;;5sr*EP>qF@`1&*>@OF3)?U*&W6p8$C8<%!BaFu!dFM#qsY;c*h2o< z1GSG*1j)G9N z=UNNG?7njHYii;KD3_29t!|wNn05Z=o}T}wfIMInwATR(^NG&as!Ev4IX^y_!kKu5 zub*KqGLIKiz!2#`%ck*lo!wC<@W-={(B5bk1p3AkAWDfZC$+W(WEV-Td0}^S8aC@@(6Y3FgN* z;YJ#VEye?jh18Im$fd+YxMrl&c%&0~4EMBS)C**cCA?0EiQ)FIax10hAP5nsw{88; zlZp{dRu&t9rf40p=h(}94HZ!N%B;K%VN+VB!by={#q%ur;Va&>%VJEGql$-FL>rhL zN&Di}VocR6XnE+Yg$+(qsCV?DtbNgH>2f*4totE_4N_C`;@ei$kqWEf1n(SDx!9s? zW}1}Ov1RbdXuKK2`Kxp&1yZU7vzoB2Mpm-H}rXc3SzOSx(q*34C6{YgU*CY&1lgG9kVW+@MAUvPd$r zN(#MtQ+fEzjX82JwWmcY7q0Y{(5#qh+&LjAFLXgYT`Ms2oqA;JhToew5dHMYnR-}( zL~{8kDs*P|F!_rs1zYIjXdR;3GHB4}!__gx!_{D)(q|HD=Pzg`*nysf=hSP~yW*EA zh<;dTp`%4`L>kAJkvGUVC`v26KIZay#K(M%Ti1qB+xebF7$x zqz?0DMxhgd_GiKu3&lieTpM>1_m#<=6&0%6R7T;d#5HB&t$=U@Vc#B#l29eX?3Fm_ zF$|%`X|ASHrO_j44-L(mh>!_Uk=?IG-V#uDe|?j=mr2P@3D zJP?IaH`E6Vmu=jG#bv}QpLGZ8V&aGI(ds~D@L^5jL7N1C#_wN5}3pnGC4A zy=oK-dGl8IxF@(sziQYQl9hiK9qQFW-=OCc7fOMC9C{Qs@FnV&7S=#!IHN#w5gx8? z$ia$nbWg}#YPem+1W4;_G6ildqO;)M_5I1T&yObd!x*3MIxku7r$h&?i`Jvg9PBWk z4o+rDM#!gk-o_>mlnt8w#(gG^LP$`qE*L&!i;WCy^wAp3Iv>S4fjBto*It3pm(7rK z;hy!9bpd5!gtBu?2TgySoLey3OgdTqAX(LS=L|Z;j+UqDe9$R1H*`Yn3*0Mk)C$h-%caa2OOZG7~7b? zTHL#pwmWv}RzG^fE|=1vTExqu2EAry{9cK@HKOuU$00}jYz)&9=>I;_M>2nh$|<&V zc*|p4%I*}K*GHpPT5c+6n<1fdLnIt;8T+WJT7aQBu|6f-z1xvKa)1UPU7nJ9W?eKF zcpZbmU!D9r>LAeQQA@za*4Ykf6{9rxtMPk;TaxBY6ipfoi~x>aq;@k(XLK1sIwod+ zaxMbGjJ`S;c?7YiK3dWYCU2vyk?u^a(J1t-z4On-O1S9tm<$)Lcj^Zp>+7;e><;YN zI7Sq!u)p_{e9FXL`aV1DC(u6j7*FpX-J<3B$kwhqkUd&6IEgghM?C(RD63|sMX#huE~Q>l=kw&yOLu!rDoi3|8DSGHVC;xt zg+r64p%Wmp-81tt5Rxfw%PDgCQ7ra@zPxuxS72zoZSgCEqq7t_Z|Lth1ndyFw=kmt z@kFmP+8iUq2DhO)$`95kN62wNkwDR(@E))2kkTGrIlxpWPM@B^KYTec-9o(Z8>oTo z-;U+J6g0qo%a+JseeiaWK|_6pF6=H3N9-eA&aSMeYbN|}dcE;_8^ljeS+c5Cu9n&& zp;LKPwGZV1gJ-HNE^<)QPl@s5Oh`d?N)Fn2zHH_W+jFd!SUOjgg2|=Jg^XU$b3JzK z37QAv_3^0ud?{0u^6CzaQG=>I(N_l$Odb9`*Ddoq{{EIb=U)#b>R${9!|LN=NG8=R z_Mf$uha@EEt4y%T%DHp!dhh1n3}nAcGt)lM=xg_zyE^K|+**K+&_YUo7;&~M_n=}K zaL`bU?(vN4q8<7MUnq+3|3qWCsxSRzZcdTRHn*1u*J)I3Vz=3n z4&R>rI%;od-@x7+oLGRa@I}BJ&fUcy>uHuzpN93lSlA`5oIecfRNA37h%+7#n`xr( zUIRuzc!?PP`pHDHT!&UE!;EUB{3pL8ZEAdha zDp!{U9%7S^4o%C+Nk*c-pbd`8lDG&d)mAN){@AWUo7FuhwOqKFEMu{B!6@%R_@12B zh@WV#LNb%An?BQyp%-rG2A<)@{P-MIy8xN4i_f#(XXUVmG6o6bt^=6RMq#C~Hz4b= zkv&Vk*KV93)uO3==L9)#ck5W<%8YPZ#Cp1BLl-Ce0B!fevi@a*9NiM0s87SZ{pIO3 zj$rqw5T#nJ&E@_h5+TM}HU|1tE&+b>hlbNKKSw!(sbX;urdw>YVERLWR)rFltPo(I6?q~^)Kol}&} zK;rKwP5jWP=cb1LVE{0WEhgJz^jTFV7s_N_UE?WX<(g|ftiVqf@{}~^6mQ)eK&JRH ziNKuZCHq|Io|KhK0`5ZgG#;5~+y!VY{DjfgxEnYP{a_nb>RdK!uKn}1`+bY-Zg>9- zOion8Ac9_QXFw~p!82U*6{;LsVnhKhmC^dE&av;eb0kaHK22_9?gN|qCrfafIukJw zkMSLE&)axqnPhfN_9N7Xl#LStX?%97u#X%F-it&HeKpj-nUtL|EE$z9hS?XEhLzQ{ zrzaR#gEma#Bk65YWxz`jn|@<@Qu#aRP8Vv4oRjrpVVXP|L8GOFZ;A0bVtoUc_K?1<$MESw`|rM|tPe z?92uF?)gl%tzv3g3t?SxT=Ckrel?~=CdF4|c&MJtYhQ0_leA+WbX5cLHn0^>xq81z z5WhIg&o{i0D-psAW+MJ>M;R>_$qO^*=Fn;G>DOSbd}8h| zZi9|o;-KSWKrPqg-{AaKdfYIPYLm{WA0Pe@J~{$sUQg@A0DjMy7g(rGKOM_9tswqxdXanbK%eAK) zZxE{Z>4}1z#nfRt#S-sLKnv(sSy8Nr#1>S#COyh>6C#pz_4okZTJWzYbNMo?;+nEQ z|Dmenwg-HCBOLAwR0Smup}eh>=%b7`2)yXxHEdm;V@*=iJ&9N@ZZg@q)}{Jd5U1s3 zqMO8VovGrLbBZ}KVG_}PN+Dvr)+1UtRZ@9KW)9yf!*XTa%z|QXc43bAd$_jYTfs|Q zN{9`<iUJ2z07)o4;FO~^_thLj$SvKb$cSk90)ws3eX-s zhKIQqo8>jyAOIXh(WlJ(Tz9Hk$D1aO6t?A^$+`lux>D6UUArWcSq(ru_pJ}>#jt5&Z5qRtFUS{wjGVa zS4dXIuO-%mFotI<8`<~oCt3$Ghns7cp17On-r(j@Co)KzIZ9MF4Zy`+v`knw2{id$ zQMQXA1`g3+F`~9yzI}2%70QKnA;%Fvn?wgQZUIJ`$FQnmc)mrE6}t`pO1|3+3Yrqb z*JAsc+l3l;_D;GFNpaDSi#&UMPxv6w1ff$`u1zF znW@#Pq<2aKQ}cux_d|ypaLbPh)*B*^oBC_F*2h&`6;{^xXnUd?4WEBO1%|R5hu>gP zrFsbYXe_x&JvlcwR_>i7+&X+~$!z8J^X3o`3!`1K@}j2qYAHirybvLA5vbw|mrw0w z`0enCot=e?t0gui;WB7B!AolHl-9*V-OdJX33Jv)51A}03u1wSi1<})P@iHtUnq2dm-(~M?c6-oL5NF3O zO>63JE94psNO$a-92rqwkHv@GqtbLjwX^~pbtMc9eRK^CJ=?w#$U;@9l5|w%75zfi z`ME6$o%r*5zByx4jFoRWf74VUHMdAKd z1jm`x@ucD7sf|cq`1#{?^K9G#amQ`4v)W=^rcA+Q zvQ~M~0i9nbU?&v5;LXa+!by}uhRUYQ@58f7jzgOg=BWnmWPaBRka5V*RFFERR$uOjz8u z`S$uva*tm-ccqKACDm>kl*EM!LC~%xr`ibztGhhV z&*$Zz^o^^G10Q`LTL940$1Z#vq2`AGt}E%7v6F06a}n+9bTOC14v}j?Ja_$HEMKBU z9QIEHzOP)9cn|kbNc|RTy3kobW~eD&X;efCiA-P~D?Wl6KQMX5#aPdLFWzTpj;FsY zmeG|dPCo5yC;n+x>@I!WdN+vxVwz&Z_=(5G6@ClPWGBiT)k$cv8rV#?#y7;N!DrOQ zB9Ni`kY+qNA%Jd?m2ut^W8=E4G0{J;Sc$4}UsAuSr6Tz7nZ`J+sqm&-RCV3SvgMy>+|_P9cL_1MxReeAJovdHQ?0Wz^!VWPd}`K?!A< z3gzvRt*LuyOZjd*^|qHYo(LHj=6(ndX47oV2COUbK&HmhYE%l>CUqMZ#_uiJEm}&z-?NOO-ZU@63k$|deI;@y&a5IOWnIK!dwMSCe^W4H?MnJS zS2jsZN7+o(#KWVZ^=dj5lU=JtlaiDc6;3G(^o)G znZlQ8=<)sAd)T5hW&&d`I#iT6BaFHrk->&w%A@$qaP7e&ih|cDRq#wkDHIuagzrUg zBPTY-<9~rxa-J>eS5}Kta4$%7Bb=))AL>nFuly zFAlaA*!u^P(cUp|z8)D$zmKuXN0Yw~Os6qChvv%ZK$yPplK0SH-BecdsmtpKkc?uL z=!Nl{#DloM-cEM~STp5v(6-^ND$;PdA!!P(u8ek+q>YJU~&gf*lXKs^f zJM>}Q;G4pA#t5|f0UZsKLJ<=K4*`iO{M$!!-TgUR{jswmk=a}oDxC~9QaMDPugQK1 z21uIW4|ui>5en;R*jk1GL|P|uSrm5LCCi5=f^+SU1&>5|(EE)&EO!Ha`?fj3k+q-G zC<4ZFI{8efR0g{WdUxUWvB41??n0iA&Ct5KhpA1q-J|s8*>NWg&oI zMR}#~r9D0 zAtTxk195%f*f?#dPC2T2DccsKC3TH~Z2o(~k2O(mnH4kJ@j?+t){H4s5AOqH&q0&+ zwLw<$x(UH>5yKP)MdiO?UnSUH{UhuBKdZVV0mkv0z}01sc9B`gg4 zf8OW7!gSG_1IKs*2rh$%M@2LNCJ;oyF`H~=R65PlPgIS&}j+Y$%|vjc+!d^rXU ze34_107Lfgn>Yj*h&}{_`VXdmUesV-UJx&}1@%8^KoB>8hx&h-s2%=AiD^Fa+|ltq=V#A`cJbAA9}(MFWDlfqx1F@qxMjqyfR;mlgiO3*v^n zrGimts!;qNQme!H`3Ne19zi1o(R<00`($Y1|+X_n*An|IeB50sqnhKM(i+ zto8+j|5FVJ_}6k@4218`<-QE^mq2blZoprIyiD*LHr82n!< z`3L?$AcW^nSONT?zaV^Z-M`cX1VR2n2FMTQ{nH&@F#T%`5I;8`^iODbc)9uhYlbfq z{@$kR6883kUjU=}ufLmNd=>NBeKI%*56c<-xXID>Wa|={nJ}`(I Mm4QK0NecD<0}hO^0ssI2 diff --git a/tzpfms.ps b/tzpfms.ps index 1e4efd9..2bfe6d8 100644 --- a/tzpfms.ps +++ b/tzpfms.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 %%Creator: groff version 1.22.4 -%%CreationDate: Fri Nov 12 18:42:47 2021 +%%CreationDate: Mon Nov 15 18:06:19 2021 %%DocumentNeededResources: font Times-Roman %%+ font Times-Bold %%+ font Courier-Bold @@ -9,7 +9,7 @@ %%+ font Symbol %%+ font Times-Italic %%DocumentSuppliedResources: procset grops 1.22 4 -%%Pages: 10 +%%Pages: 13 %%PageOrder: Ascend %%DocumentMedia: Default 595 842 0 () () %%Orientation: Portrait @@ -305,8 +305,8 @@ R 12(awa -)102 606 R 6(available yes)54 F($)102 630 Q F2 1.666 (KEYSTATUS COHERENT)12 F 6(owo/venc TPM2)102 654 R 6(unavailable yes)36 F($)102 678 Q F2 1.666(zfs-tpm-list \255ra)6 F F3(owo)6 E F4 30 (NAME BACK-END)102 690 R 18(KEYSTATUS COHERENT)12 F 6(owo/venc TPM2)102 -702 R 6(unavailable yes)36 F F0(tzpfms 0.1-12)72 750 Q(No)138.745 E -.15 -(ve)-.15 G(mber 12, 2021).15 E(1)189.295 E 0 Cg EP +702 R 6(unavailable yes)36 F F0(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15 +(ve)-.15 G(mber 15, 2021).15 E(1)189.295 E 0 Cg EP %%Page: 2 2 %%BeginPageSetup BP @@ -323,13 +323,14 @@ G 6(vailable yes)-54 F 12(owo/enc TPM1.X)102 204 R 6(available yes)24 F /F3 10/Times-Bold@0 SF 1.666(SPECIAL THANKS)72 228 R F0 1.6 -.8(To a)102 240 T(ll who support further de).8 E -.15(ve)-.25 G (lopment, in particular:).15 E F3<83>122 252 Q F0(ThePhD)2.5 E F3<83>122 -264 Q F0(Embark Studios)2.5 E F3(REPOR)72 288 Q 1.666(TING B)-.4 F(UGS) --.1 E(https://todo.sr)102 300 Q(.ht/~nabijaczleweli/tzpfms)-1 E F1 -(~nabijaczleweli/tzpfms@lists.sr.ht)102 318 Q F0 2.5(,a)C(rchi)-2.5 E +264 Q F0(Embark Studios)2.5 E F3<83>122 276 Q F0(Jasper Bekk)2.5 E(ers) +-.1 E F3(REPOR)72 300 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 +312 Q(.ht/~nabijaczleweli/tzpfms)-1 E F1 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 330 Q F0 2.5(,a)C(rchi)-2.5 E -.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F3(https://lists.sr)2.5 E -(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F3 1.666(SEE ALSO)72 342 R -(https://git.sr)102 354 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 -(tzpfms 0.1-12)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 12, 2021).15 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F3 1.666(SEE ALSO)72 354 R +(https://git.sr)102 366 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021).15 E (2)189.295 E 0 Cg EP %%Page: 3 3 %%BeginPageSetup @@ -418,42 +419,72 @@ F0(Sa)191 618 Q .806 -.15(ve a b)-.2 H .506(ack-up of the k).15 F .805 (case of a catastrophic e)3.181 F -.15(ve)-.25 G .682(nt, the k).15 F .982 -.15(ey c)-.1 H(an).15 E(be loaded by running)191 642 Q F2 (zfs load-key)221 654 Q F3(dataset)6 E F5(<)6 E F3(backup-file)6 E F1 -1.666(TPM1.X back-end con\214guration)72 678 R F0(tzpfms 0.1-12)72 750 Q -(No)138.745 E -.15(ve)-.15 G(mber 12, 2021).15 E(3)189.295 E 0 Cg EP +(ENVIR)72 678 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E F0(tzpfms 0.1-14) +72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021).15 E(3)189.295 E 0 +Cg EP %%Page: 4 4 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.834(ZFS-TPM1X-CHANGE-KEY \(8\))72 48 R (System Manager')46.109 E 2.5(sM)-.55 G 41.109 -(anual ZFS-TPM1X-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF -.625(TPM selection)84 96 R F0(The)102 108 Q/F2 10/Courier-Bold@0 SF -(tzpfms)2.768 E F0 .267(suite connects to a local)2.767 F/F3 10 -/Courier@0 SF(tcsd)2.767 E F0 .267(\(8\) process)B 1.666(\(a)4.433 G(t) --1.666 E F3(localhost:30003)2.767 E F0 4.433(\)b)1.666 G 2.767(yd)-4.433 -G(ef)-2.767 E 2.767(ault. Use)-.1 F .267(the en-)2.767 F(vironment v)102 -120 Q(ariable)-.25 E F3(TZPFMS_TPM1X)2.5 E F0 -(to specify a remote TCS hostname.)2.5 E .391(The T)102 138 R(rouSerS) --.35 E F3(tcsd)2.891 E F0 .391(\(8\) daemon will try)B F3(/dev/tpm0) -2.892 E F0 2.892(,t)C(hen)-2.892 E F3(/udev/tpm0)2.892 E F0 2.892(,t)C -(hen)-2.892 E F3(/dev/tpm)2.892 E F0 2.892(;b)C 2.892(yo)-2.892 G(ccup) --2.892 E(ying)-.1 E(one of the earlier ones with, for e)102 150 Q -(xample, shell redirection, a later one can be selected.)-.15 E F1 .625 -(See also)84 174 R F0(The T)102 186 Q(rouSerS project page at)-.35 E F1 +(anual ZFS-TPM1X-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Courier@0 SF +(TZPFMS_PASSPHRASE_HELPER)102 96 Q F0(If set and nonempty)143 108 Q 2.5 +(,w)-.65 G(ill be run as)-2.5 E F1(/bin/)173 120 Q/F2 10/Courier-Bold@0 +SF 70.333(sh \255c)B F1("$TZPFMS_PASSPHRASE_HELPER")74.667 E +("$TZPFMS_PASSPHRASE_HELPER")173 132 Q F0(")10.715 E/F3 10 +/Courier-Oblique@0 SF 4.715(prepared prompt)B F0 7.215("")C F3(target) +-7.215 E F0 7.215("")C([)-7.215 E F1(new)A F0(]")A("[)173 144 Q F1 +(again)A F0(]")A(to pro)143 156 Q +(vide a passphrase, instead of reading from the standard input.)-.15 E +.189(The standard output stream of the helper is tied to an anon)143 174 +R .188(ymous \214le and used in its entirety as the)-.15 F .446 +(passphrase, e)143 186 R .446(xcept for a trailing ne)-.15 F .446 +(w-line, if an)-.25 F 4.246 -.65(y. T)-.15 H .447(he second ar).65 F +.447(gument contains either the dataset)-.18 F 2.14 +(name or the element of the TPM hierarch)143 198 R 5.94 -.65(y. T)-.05 H +2.14(he third ar).65 F 2.14(gument is)-.18 F F1(new)4.64 E F0 2.14 +(if this is for a ne)4.64 F(w)-.25 E .573(passphrase, and the fourth is) +143 210 R F1(again)3.074 E F0 .574(if it')3.074 F 3.074(st)-.55 G .574 +(he second prompt for that passphrase.)-3.074 F .574(The \214rst ar) +5.574 F(gu-)-.18 E(ment already contains all of this information, as a \ +pre-formatted noun phrase.)143 222 Q .181(If the helper doesn')143 240 R +2.681(te)-.18 G 1.847(xist \()-2.831 F .181(the shell e)1.666 F .181 +(xits with)-.15 F/F4 10/Times-Bold@0 SF(127)2.681 E F0 -3.151 1.666 +(\), a d)1.666 H .181(iagnostic is issued and the normal prompt)-1.666 F +(is used as f)143 252 Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an) +-.1 E 2.5(yo)-.15 G(ther reason, the prompting is aborted.)-2.5 E(An e) +143 270 Q(xample v)-.15 E(alue w)-.25 E(ould be: ')-.1 E F2 1.666 +(systemd-ask-password \255-id)B F1(=)A F0(")A F1(tzpfms:)A F3($2)A F0 +2.5("")C F3($1)-2.5 E F1(:)A F0("'.)6 E F4 1.666 +(TPM1.X back-end con\214guration)72 294 R .625(TPM selection)84 306 R F0 +(The)102 318 Q F2(tzpfms)2.767 E F0 .267(suite connects to a local)2.767 +F F1(tcsd)2.767 E F0 .267(\(8\) process)B 1.666(\(a)4.433 G(t)-1.666 E +F1(localhost:30003)2.767 E F0 4.433(\)b)1.666 G 2.767(yd)-4.433 G(ef) +-2.767 E 2.767(ault. Use)-.1 F .268(the en-)2.767 F(vironment v)102 330 +Q(ariable)-.25 E F1(TZPFMS_TPM1X)2.5 E F0 +(to specify a remote TCS hostname.)2.5 E .392(The T)102 348 R(rouSerS) +-.35 E F1(tcsd)2.892 E F0 .392(\(8\) daemon will try)B F1(/dev/tpm0) +2.892 E F0 2.892(,t)C(hen)-2.892 E F1(/udev/tpm0)2.892 E F0 2.891(,t)C +(hen)-2.891 E F1(/dev/tpm)2.891 E F0 2.891(;b)C 2.891(yo)-2.891 G(ccup) +-2.891 E(ying)-.1 E(one of the earlier ones with, for e)102 360 Q +(xample, shell redirection, a later one can be selected.)-.15 E F4 .625 +(See also)84 384 R F0(The T)102 396 Q(rouSerS project page at)-.35 E F4 (https://sour)2.5 E(cef)-.18 E(or)-.25 E(ge.net/pr)-.1 E(ojects/tr)-.18 -E(ousers)-.18 E F0(.)A 5.109(The TPM 1.2 main speci\214cation inde)102 -204 R 7.608(xa)-.15 G(t)-7.608 E F1(https://trustedcomputinggr)7.608 E +E(ousers)-.18 E F0(.)A 5.108(The TPM 1.2 main speci\214cation inde)102 +414 R 7.609(xa)-.15 G(t)-7.609 E F4(https://trustedcomputinggr)7.609 E (oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E -(speci\214cation)102 216 Q F0(.)A F1 1.666(SPECIAL THANKS)72 240 R F0 -1.6 -.8(To a)102 252 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F1<83>122 264 Q F0(ThePhD)2.5 E F1<83>122 -276 Q F0(Embark Studios)2.5 E F1(REPOR)72 300 Q 1.666(TING B)-.4 F(UGS) --.1 E(https://todo.sr)102 312 Q(.ht/~nabijaczleweli/tzpfms)-1 E F3 -(~nabijaczleweli/tzpfms@lists.sr.ht)102 330 Q F0 2.5(,a)C(rchi)-2.5 E --.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E -(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 354 R -(https://git.sr)102 366 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 -(tzpfms 0.1-12)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 12, 2021).15 E +(speci\214cation)102 426 Q F0(.)A F4 1.666(SPECIAL THANKS)72 450 R F0 +1.6 -.8(To a)102 462 T(ll who support further de).8 E -.15(ve)-.25 G +(lopment, in particular:).15 E F4<83>122 474 Q F0(ThePhD)2.5 E F4<83>122 +486 Q F0(Embark Studios)2.5 E F4<83>122 498 Q F0(Jasper Bekk)2.5 E(ers) +-.1 E F4(REPOR)72 522 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 +534 Q(.ht/~nabijaczleweli/tzpfms)-1 E F1 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 552 Q F0 2.5(,a)C(rchi)-2.5 E +-.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F4(https://lists.sr)2.5 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F4 1.666(SEE ALSO)72 576 R +(https://git.sr)102 588 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021).15 E (4)189.295 E 0 Cg EP %%Page: 5 5 %%BeginPageSetup @@ -469,42 +500,43 @@ BP (zfs-tpm1x-clear-key)102 144 Q/F3 10/Courier-Oblique@0 SF(dataset)2.5 E F1(DESCRIPTION)72 168 Q F0(After v)102 180 Q(erifying)-.15 E F3(dataset) 2.5 E F0 -.1(wa)2.5 G 2.5(se).1 G(ncrypted with)-2.5 E F2(tzpfms)2.5 E -F0(back)2.5 E(end)-.1 E F1(TPM1.X)2.5 E F0(:)A 6.984 +F0(back)2.5 E(end)-.1 E F1(TPM1.X)2.5 E F0(:)A 6.985 (1. performs the equi)122 192 R -.25(va)-.25 G 6.984(lent of).25 F F2 6.984(zfs change-key)9.484 F14.65 E/F4 10/Courier@0 SF -(keylocation=prompt)12.985 E F214.651 E F4(keyformat=passphrase) -127 204 Q F3(dataset)6 E F0(,)A(2. remo)122 216 Q -.15(ve)-.15 G 2.5(st) -.15 G(he)-2.5 E F4(xyz.nabijaczleweli:tzpfms.)2.5 E F0({)A F4(backend)A -F0(,)A F4(key)6 E F0 2.5(}p)C(roperties from)-2.5 E F3(dataset)2.5 E F0 -(.)A(See)102 234 Q F4(zfs-tpm1x-change-key)2.5 E F0 +(keylocation=prompt)12.984 E F214.65 E F4(keyformat=passphrase)127 +204 Q F3(dataset)6 E F0(,)A(2. remo)122 216 Q -.15(ve)-.15 G 2.5(st).15 +G(he)-2.5 E F4(xyz.nabijaczleweli:tzpfms.)2.5 E F0({)A F4(backend)A F0 +(,)A F4(key)6 E F0 2.5(}p)C(roperties from)-2.5 E F3(dataset)2.5 E F0(.) +A(See)102 234 Q F4(zfs-tpm1x-change-key)2.5 E F0 (\(8\) for a detailed description.)A F1 1.666 (TPM1.X back-end con\214guration)72 258 R .625(TPM selection)84 270 R F0 -(The)102 282 Q F2(tzpfms)2.768 E F0 .267(suite connects to a local)2.767 +(The)102 282 Q F2(tzpfms)2.767 E F0 .267(suite connects to a local)2.767 F F4(tcsd)2.767 E F0 .267(\(8\) process)B 1.666(\(a)4.433 G(t)-1.666 E F4(localhost:30003)2.767 E F0 4.433(\)b)1.666 G 2.767(yd)-4.433 G(ef) --2.767 E 2.767(ault. Use)-.1 F .267(the en-)2.767 F(vironment v)102 294 +-2.767 E 2.767(ault. Use)-.1 F .268(the en-)2.767 F(vironment v)102 294 Q(ariable)-.25 E F4(TZPFMS_TPM1X)2.5 E F0 -(to specify a remote TCS hostname.)2.5 E .391(The T)102 312 R(rouSerS) --.35 E F4(tcsd)2.891 E F0 .391(\(8\) daemon will try)B F4(/dev/tpm0) -2.892 E F0 2.892(,t)C(hen)-2.892 E F4(/udev/tpm0)2.892 E F0 2.892(,t)C -(hen)-2.892 E F4(/dev/tpm)2.892 E F0 2.892(;b)C 2.892(yo)-2.892 G(ccup) --2.892 E(ying)-.1 E(one of the earlier ones with, for e)102 324 Q +(to specify a remote TCS hostname.)2.5 E .392(The T)102 312 R(rouSerS) +-.35 E F4(tcsd)2.892 E F0 .392(\(8\) daemon will try)B F4(/dev/tpm0) +2.892 E F0 2.892(,t)C(hen)-2.892 E F4(/udev/tpm0)2.892 E F0 2.891(,t)C +(hen)-2.891 E F4(/dev/tpm)2.891 E F0 2.891(;b)C 2.891(yo)-2.891 G(ccup) +-2.891 E(ying)-.1 E(one of the earlier ones with, for e)102 324 Q (xample, shell redirection, a later one can be selected.)-.15 E F1 .625 (See also)84 348 R F0(The T)102 360 Q(rouSerS project page at)-.35 E F1 (https://sour)2.5 E(cef)-.18 E(or)-.25 E(ge.net/pr)-.1 E(ojects/tr)-.18 -E(ousers)-.18 E F0(.)A 5.109(The TPM 1.2 main speci\214cation inde)102 -378 R 7.608(xa)-.15 G(t)-7.608 E F1(https://trustedcomputinggr)7.608 E +E(ousers)-.18 E F0(.)A 5.108(The TPM 1.2 main speci\214cation inde)102 +378 R 7.609(xa)-.15 G(t)-7.609 E F1(https://trustedcomputinggr)7.609 E (oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E (speci\214cation)102 390 Q F0(.)A F1 1.666(SPECIAL THANKS)72 414 R F0 1.6 -.8(To a)102 426 T(ll who support further de).8 E -.15(ve)-.25 G (lopment, in particular:).15 E F1<83>122 438 Q F0(ThePhD)2.5 E F1<83>122 -450 Q F0(Embark Studios)2.5 E F1(REPOR)72 474 Q 1.666(TING B)-.4 F(UGS) --.1 E(https://todo.sr)102 486 Q(.ht/~nabijaczleweli/tzpfms)-1 E F4 -(~nabijaczleweli/tzpfms@lists.sr.ht)102 504 Q F0 2.5(,a)C(rchi)-2.5 E +450 Q F0(Embark Studios)2.5 E F1<83>122 462 Q F0(Jasper Bekk)2.5 E(ers) +-.1 E F1(REPOR)72 486 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 +498 Q(.ht/~nabijaczleweli/tzpfms)-1 E F4 +(~nabijaczleweli/tzpfms@lists.sr.ht)102 516 Q F0 2.5(,a)C(rchi)-2.5 E -.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E -(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 528 R -(https://git.sr)102 540 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 -(tzpfms 0.1-12)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 12, 2021).15 E +(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 540 R +(https://git.sr)102 552 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021).15 E (5)189.295 E 0 Cg EP %%Page: 6 6 %%BeginPageSetup @@ -517,54 +549,90 @@ BP (oad TPM1.X-encrypted ZFS dataset k)-2.5 E -.15(ey)-.1 G F1(SYNOPSIS)72 132 Q F2(zfs-tpm1x-load-key)102 144 Q F0([)3.333 E F22.499 E F0(]) .833 E/F3 10/Courier-Oblique@0 SF(dataset)2.5 E F1(DESCRIPTION)72 168 Q -F0 1.155(After v)102 180 R(erifying)-.15 E F3(dataset)3.655 E F0 -.1(wa) -3.655 G 3.655(se).1 G 1.155(ncrypted with)-3.655 F F2(tzpfms)3.655 E F0 -(back)3.655 E(end)-.1 E F1(TPM1.X)3.655 E F0 1.156(will unseal the k) -3.655 F 1.456 -.15(ey a)-.1 H 1.156(nd load it).15 F(into)102 192 Q F3 -(dataset)2.5 E F0(.)A .694 +F0 1.156(After v)102 180 R(erifying)-.15 E F3(dataset)3.656 E F0 -.1(wa) +3.656 G 3.656(se).1 G 1.156(ncrypted with)-3.656 F F2(tzpfms)3.655 E F0 +(back)3.655 E(end)-.1 E F1(TPM1.X)3.655 E F0 1.155(will unseal the k) +3.655 F 1.455 -.15(ey a)-.1 H 1.155(nd load it).15 F(into)102 192 Q F3 +(dataset)2.5 E F0(.)A .693 (The user is \214rst prompted for the SRK passphrase, set when taking o) -102 210 R .693(wnership, if not "well-kno)-.25 F .693(wn" \(all ze-)-.25 +102 210 R .694(wnership, if not "well-kno)-.25 F .694(wn" \(all ze-)-.25 F(roes\); then for the additional passphrase, set when creating the k) 102 222 Q -.15(ey)-.1 G 2.5(,i)-.5 G 2.5(fo)-2.5 G(ne w)-2.5 E(as set.) -.1 E(See)102 240 Q/F4 10/Courier@0 SF(zfs-tpm1x-change-key)2.5 E F0 (\(8\) for a detailed description.)A F1(OPTIONS)72 264 Q F2103.666 -276 Q F0 .178(Do a no-op/dry run, can be used e)119 288 R -.15(ve)-.25 G -2.678(ni).15 G 2.679(ft)-2.678 G .179(he k)-2.679 F .479 -.15(ey i)-.1 H -2.679(sa).15 G .179(lready loaded.)-2.679 F(Equi)5.179 E -.25(va)-.25 G -.179(lent to).25 F F2 .179(zfs load-key)2.679 F F0 -.55('s)C F2 -4.895 E F0(option.)119 300 Q F1 1.666(TPM1.X back-end con\214guration)72 -324 R .625(TPM selection)84 336 R F0(The)102 348 Q F2(tzpfms)2.768 E F0 -.267(suite connects to a local)2.767 F F4(tcsd)2.767 E F0 .267 -(\(8\) process)B 1.666(\(a)4.433 G(t)-1.666 E F4(localhost:30003)2.767 E -F0 4.433(\)b)1.666 G 2.767(yd)-4.433 G(ef)-2.767 E 2.767(ault. Use)-.1 F -.267(the en-)2.767 F(vironment v)102 360 Q(ariable)-.25 E F4 -(TZPFMS_TPM1X)2.5 E F0(to specify a remote TCS hostname.)2.5 E .391 -(The T)102 378 R(rouSerS)-.35 E F4(tcsd)2.891 E F0 .391 -(\(8\) daemon will try)B F4(/dev/tpm0)2.892 E F0 2.892(,t)C(hen)-2.892 E -F4(/udev/tpm0)2.892 E F0 2.892(,t)C(hen)-2.892 E F4(/dev/tpm)2.892 E F0 -2.892(;b)C 2.892(yo)-2.892 G(ccup)-2.892 E(ying)-.1 E -(one of the earlier ones with, for e)102 390 Q +276 Q F0 .179(Do a no-op/dry run, can be used e)119 288 R -.15(ve)-.25 G +2.679(ni).15 G 2.679(ft)-2.679 G .179(he k)-2.679 F .478 -.15(ey i)-.1 H +2.678(sa).15 G .178(lready loaded.)-2.678 F(Equi)5.178 E -.25(va)-.25 G +.178(lent to).25 F F2 .178(zfs load-key)2.678 F F0 -.55('s)C F2 +4.894 E F0(option.)119 300 Q F1(ENVIR)72 324 Q 1.666(ONMENT V)-.3 F +(ARIABLES)-1.35 E F4(TZPFMS_PASSPHRASE_HELPER)102 336 Q F0 +(If set and nonempty)143 348 Q 2.5(,w)-.65 G(ill be run as)-2.5 E F4 +(/bin/)173 360 Q F2 70.333(sh \255c)B F4("$TZPFMS_PASSPHRASE_HELPER") +74.667 E("$TZPFMS_PASSPHRASE_HELPER")173 372 Q F0(")10.715 E F3 4.715 +(prepared prompt)B F0 7.215("")C F3(target)-7.215 E F0 7.215("")C([) +-7.215 E F4(new)A F0(]")A("[)173 384 Q F4(again)A F0(]")A(to pro)143 396 +Q(vide a passphrase, instead of reading from the standard input.)-.15 E +.188(The standard output stream of the helper is tied to an anon)143 414 +R .189(ymous \214le and used in its entirety as the)-.15 F .447 +(passphrase, e)143 426 R .447(xcept for a trailing ne)-.15 F .447 +(w-line, if an)-.25 F 4.246 -.65(y. T)-.15 H .446(he second ar).65 F +.446(gument contains either the dataset)-.18 F 2.14 +(name or the element of the TPM hierarch)143 438 R 5.94 -.65(y. T)-.05 H +2.14(he third ar).65 F 2.14(gument is)-.18 F F4(new)4.64 E F0 2.14 +(if this is for a ne)4.64 F(w)-.25 E .574(passphrase, and the fourth is) +143 450 R F4(again)3.074 E F0 .574(if it')3.074 F 3.074(st)-.55 G .574 +(he second prompt for that passphrase.)-3.074 F .573(The \214rst ar) +5.573 F(gu-)-.18 E(ment already contains all of this information, as a \ +pre-formatted noun phrase.)143 462 Q .181(If the helper doesn')143 480 R +2.681(te)-.18 G 1.847(xist \()-2.831 F .181(the shell e)1.666 F .181 +(xits with)-.15 F F1(127)2.681 E F0 -3.151 1.666(\), a d)1.666 H .181 +(iagnostic is issued and the normal prompt)-1.666 F(is used as f)143 492 +Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an)-.1 E 2.5(yo)-.15 G +(ther reason, the prompting is aborted.)-2.5 E(An e)143 510 Q(xample v) +-.15 E(alue w)-.25 E(ould be: ')-.1 E F2 1.666 +(systemd-ask-password \255-id)B F4(=)A F0(")A F4(tzpfms:)A F3($2)A F0 +2.5("")C F3($1)-2.5 E F4(:)A F0("'.)6 E F1 1.666 +(TPM1.X back-end con\214guration)72 534 R .625(TPM selection)84 546 R F0 +(The)102 558 Q F2(tzpfms)2.768 E F0 .267(suite connects to a local)2.767 +F F4(tcsd)2.767 E F0 .267(\(8\) process)B 1.666(\(a)4.433 G(t)-1.666 E +F4(localhost:30003)2.767 E F0 4.433(\)b)1.666 G 2.767(yd)-4.433 G(ef) +-2.767 E 2.767(ault. Use)-.1 F .267(the en-)2.767 F(vironment v)102 570 +Q(ariable)-.25 E F4(TZPFMS_TPM1X)2.5 E F0 +(to specify a remote TCS hostname.)2.5 E .391(The T)102 588 R(rouSerS) +-.35 E F4(tcsd)2.891 E F0 .391(\(8\) daemon will try)B F4(/dev/tpm0) +2.892 E F0 2.892(,t)C(hen)-2.892 E F4(/udev/tpm0)2.892 E F0 2.892(,t)C +(hen)-2.892 E F4(/dev/tpm)2.892 E F0 2.892(;b)C 2.892(yo)-2.892 G(ccup) +-2.892 E(ying)-.1 E(one of the earlier ones with, for e)102 600 Q (xample, shell redirection, a later one can be selected.)-.15 E F1 .625 -(See also)84 414 R F0(The T)102 426 Q(rouSerS project page at)-.35 E F1 +(See also)84 624 R F0(The T)102 636 Q(rouSerS project page at)-.35 E F1 (https://sour)2.5 E(cef)-.18 E(or)-.25 E(ge.net/pr)-.1 E(ojects/tr)-.18 E(ousers)-.18 E F0(.)A 5.109(The TPM 1.2 main speci\214cation inde)102 -444 R 7.608(xa)-.15 G(t)-7.608 E F1(https://trustedcomputinggr)7.608 E +654 R 7.608(xa)-.15 G(t)-7.608 E F1(https://trustedcomputinggr)7.608 E (oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E -(speci\214cation)102 456 Q F0(.)A F1 1.666(SPECIAL THANKS)72 480 R F0 -1.6 -.8(To a)102 492 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F1<83>122 504 Q F0(ThePhD)2.5 E F1<83>122 -516 Q F0(Embark Studios)2.5 E F1(REPOR)72 540 Q 1.666(TING B)-.4 F(UGS) --.1 E(https://todo.sr)102 552 Q(.ht/~nabijaczleweli/tzpfms)-1 E F4 -(~nabijaczleweli/tzpfms@lists.sr.ht)102 570 Q F0 2.5(,a)C(rchi)-2.5 E --.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E -(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 594 R -(https://git.sr)102 606 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 -(tzpfms 0.1-12)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 12, 2021).15 E -(6)189.295 E 0 Cg EP +(speci\214cation)102 666 Q F0(.)A(tzpfms 0.1-14)72 750 Q(No)138.745 E +-.15(ve)-.15 G(mber 15, 2021).15 E(6)189.295 E 0 Cg EP %%Page: 7 7 %%BeginPageSetup BP %%EndPageSetup +/F0 10/Times-Roman@0 SF(ZFS-TPM1X-LO)72 48 Q -.834(AD-KEY \(8\))-.35 F +(System Manager')60.349 E 2.5(sM)-.55 G 55.349(anual ZFS-TPM1X-LO)-2.5 F +-.834(AD-KEY \(8\))-.35 F/F1 10/Times-Bold@0 SF 1.666(SPECIAL THANKS)72 +96 R F0 1.6 -.8(To a)102 108 T(ll who support further de).8 E -.15(ve) +-.25 G(lopment, in particular:).15 E F1<83>122 120 Q F0(ThePhD)2.5 E F1 +<83>122 132 Q F0(Embark Studios)2.5 E F1<83>122 144 Q F0(Jasper Bekk)2.5 +E(ers)-.1 E F1(REPOR)72 168 Q 1.666(TING B)-.4 F(UGS)-.1 E +(https://todo.sr)102 180 Q(.ht/~nabijaczleweli/tzpfms)-1 E/F2 10 +/Courier@0 SF(~nabijaczleweli/tzpfms@lists.sr.ht)102 198 Q F0 2.5(,a)C +(rchi)-2.5 E -.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr) +2.5 E(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 222 R +(https://git.sr)102 234 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021).15 E +(7)189.295 E 0 Cg EP +%%Page: 8 8 +%%BeginPageSetup +BP +%%EndPageSetup /F0 10/Times-Roman@0 SF -.834(ZFS-TPM2-CHANGE-KEY \(8\))72 48 R (System Manager')53.329 E 2.5(sM)-.55 G 48.329 (anual ZFS-TPM2-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF @@ -650,50 +718,79 @@ F(This)5.505 E(back-up)191 630 Q F4(must)3.181 E F0 .681 (-site. In).25 F .682(case of a catastrophic e)3.181 F -.15(ve)-.25 G .682(nt, the k).15 F .982 -.15(ey c)-.1 H(an).15 E(be loaded by running) 191 642 Q F2(zfs load-key)221 654 Q F3(dataset)6 E F5(<)6 E F3 -(backup-file)6 E F1 1.666(TPM2 back-end con\214guration)72 678 R F0 -(tzpfms 0.1-12)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 12, 2021).15 E -(7)189.295 E 0 Cg EP -%%Page: 8 8 +(backup-file)6 E F1(ENVIR)72 678 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E +F0(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021).15 +E(8)189.295 E 0 Cg EP +%%Page: 9 9 %%BeginPageSetup BP %%EndPageSetup /F0 10/Times-Roman@0 SF -.834(ZFS-TPM2-CHANGE-KEY \(8\))72 48 R (System Manager')53.329 E 2.5(sM)-.55 G 48.329 -(anual ZFS-TPM2-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF -(En)84 96 Q(vir)-.4 E .625(onment v)-.18 F(ariables)-.1 E/F2 10 -/Courier@0 SF(TSS2_LOG)102 108 Q F0(An)155 108 Q 2.5(yo)-.15 G(f:)-2.5 E -F1(NONE)2.5 E F0(,)A F1(ERR)2.5 E(OR)-.3 E F0(,)A F1 -1.2(WA)2.5 G -(RNING)1.2 E F0(,)A F1(INFO)2.5 E F0(,)A F1(DEB)2.5 E(UG)-.1 E F0(,)A F1 -(TRA)2.5 E(CE)-.55 E F0 5(.D)C(ef)-5 E(ault:)-.1 E F1 -1.2(WA)2.5 G -(RNING)1.2 E F0(.)A F1 .625(TPM selection)84 132 R F0 .517(The library) -102 144 R/F3 10/Courier-Bold@0 SF(libtss2-tcti-default.so)3.017 E F0 -.517(can be link)3.017 F .516(ed to an)-.1 F 3.016(yo)-.15 G 3.016(ft) --3.016 G(he)-3.016 E F2(libtss2-tcti-)3.016 E/F4 10/Symbol SF(*)A F2 -(.so)A F0(libraries)3.016 E .575(to select the def)102 156 R .576 -(ault, otherwise)-.1 F F2(/dev/tpmrm0)3.076 E F0 3.076(,t)C(hen)-3.076 E -F2(/dev/tpm0)3.076 E F0 3.076(,t)C(hen)-3.076 E F2(localhost:2321)3.076 -E F0 .576(will be tried,)3.076 F(in order)102 168 Q 1.666(\(s)4.166 G -(ee)-1.666 E F2(ESYS_CONTEXT)2.5 E F0 -.834(\(3\) \) .)B F1 .625 -(See also)84 192 R F0 3.488(The tpm2-tss git repository at)102 204 R F1 +(anual ZFS-TPM2-CHANGE-KEY)-2.5 F(\(8\))1.666 E/F1 10/Courier@0 SF +(TZPFMS_PASSPHRASE_HELPER)102 96 Q F0(If set and nonempty)143 108 Q 2.5 +(,w)-.65 G(ill be run as)-2.5 E F1(/bin/)173 120 Q/F2 10/Courier-Bold@0 +SF 70.333(sh \255c)B F1("$TZPFMS_PASSPHRASE_HELPER")74.667 E +("$TZPFMS_PASSPHRASE_HELPER")173 132 Q F0(")10.715 E/F3 10 +/Courier-Oblique@0 SF 4.715(prepared prompt)B F0 7.215("")C F3(target) +-7.215 E F0 7.215("")C([)-7.215 E F1(new)A F0(]")A("[)173 144 Q F1 +(again)A F0(]")A(to pro)143 156 Q +(vide a passphrase, instead of reading from the standard input.)-.15 E +.189(The standard output stream of the helper is tied to an anon)143 174 +R .188(ymous \214le and used in its entirety as the)-.15 F .446 +(passphrase, e)143 186 R .446(xcept for a trailing ne)-.15 F .446 +(w-line, if an)-.25 F 4.246 -.65(y. T)-.15 H .447(he second ar).65 F +.447(gument contains either the dataset)-.18 F 2.14 +(name or the element of the TPM hierarch)143 198 R 5.94 -.65(y. T)-.05 H +2.14(he third ar).65 F 2.14(gument is)-.18 F F1(new)4.64 E F0 2.14 +(if this is for a ne)4.64 F(w)-.25 E .573(passphrase, and the fourth is) +143 210 R F1(again)3.074 E F0 .574(if it')3.074 F 3.074(st)-.55 G .574 +(he second prompt for that passphrase.)-3.074 F .574(The \214rst ar) +5.574 F(gu-)-.18 E(ment already contains all of this information, as a \ +pre-formatted noun phrase.)143 222 Q .181(If the helper doesn')143 240 R +2.681(te)-.18 G 1.847(xist \()-2.831 F .181(the shell e)1.666 F .181 +(xits with)-.15 F/F4 10/Times-Bold@0 SF(127)2.681 E F0 -3.151 1.666 +(\), a d)1.666 H .181(iagnostic is issued and the normal prompt)-1.666 F +(is used as f)143 252 Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an) +-.1 E 2.5(yo)-.15 G(ther reason, the prompting is aborted.)-2.5 E(An e) +143 270 Q(xample v)-.15 E(alue w)-.25 E(ould be: ')-.1 E F2 1.666 +(systemd-ask-password \255-id)B F1(=)A F0(")A F1(tzpfms:)A F3($2)A F0 +2.5("")C F3($1)-2.5 E F1(:)A F0("'.)6 E F4 1.666 +(TPM2 back-end con\214guration)72 294 R(En)84 306 Q(vir)-.4 E .625 +(onment v)-.18 F(ariables)-.1 E F1(TSS2_LOG)102 318 Q F0(An)155 318 Q +2.5(yo)-.15 G(f:)-2.5 E F4(NONE)2.5 E F0(,)A F4(ERR)2.5 E(OR)-.3 E F0(,) +A F4 -1.2(WA)2.5 G(RNING)1.2 E F0(,)A F4(INFO)2.5 E F0(,)A F4(DEB)2.5 E +(UG)-.1 E F0(,)A F4(TRA)2.5 E(CE)-.55 E F0 5(.D)C(ef)-5 E(ault:)-.1 E F4 +-1.2(WA)2.5 G(RNING)1.2 E F0(.)A F4 .625(TPM selection)84 342 R F0 .516 +(The library)102 354 R F2(libtss2-tcti-default.so)3.016 E F0 .516 +(can be link)3.016 F .516(ed to an)-.1 F 3.017(yo)-.15 G 3.017(ft)-3.017 +G(he)-3.017 E F1(libtss2-tcti-)3.017 E/F5 10/Symbol SF(*)A F1(.so)A F0 +(libraries)3.017 E .576(to select the def)102 366 R .576 +(ault, otherwise)-.1 F F1(/dev/tpmrm0)3.076 E F0 3.076(,t)C(hen)-3.076 E +F1(/dev/tpm0)3.076 E F0 3.076(,t)C(hen)-3.076 E F1(localhost:2321)3.076 +E F0 .575(will be tried,)3.076 F(in order)102 378 Q 1.666(\(s)4.166 G +(ee)-1.666 E F1(ESYS_CONTEXT)2.5 E F0 -.834(\(3\) \) .)B F4 .625 +(See also)84 402 R F0 3.487(The tpm2-tss git repository at)102 414 R F4 (https://github)5.988 E(.com/tpm2-softwar)-.4 E(e/tpm2-tss)-.18 E F0 -3.487(and the documentation at)5.988 F F1(https://tpm2-tss.r)102 216 Q +3.488(and the documentation at)5.988 F F4(https://tpm2-tss.r)102 426 Q (eadthedocs.io)-.18 E F0(.)A 3.092 -(The TPM 2.0 speci\214cations, mainly at)102 234 R F1 -(https://trustedcomputinggr)5.592 E(oup.or)-.18 E -(g/wp-content/uploads/TPM-)-.1 E(Re)102 246 Q(v-2.0-P)-.15 E(art-1-Ar) --.1 E(chitectur)-.18 E(e-01.38.pdf)-.18 E F0(and related pages.)2.5 E F1 -1.666(SPECIAL THANKS)72 270 R F0 1.6 -.8(To a)102 282 T +(The TPM 2.0 speci\214cations, mainly at)102 444 R F4 +(https://trustedcomputinggr)5.591 E(oup.or)-.18 E +(g/wp-content/uploads/TPM-)-.1 E(Re)102 456 Q(v-2.0-P)-.15 E(art-1-Ar) +-.1 E(chitectur)-.18 E(e-01.38.pdf)-.18 E F0(and related pages.)2.5 E F4 +1.666(SPECIAL THANKS)72 480 R F0 1.6 -.8(To a)102 492 T (ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) -.15 E F1<83>122 294 Q F0(ThePhD)2.5 E F1<83>122 306 Q F0(Embark Studios) -2.5 E F1(REPOR)72 330 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 -342 Q(.ht/~nabijaczleweli/tzpfms)-1 E F2 -(~nabijaczleweli/tzpfms@lists.sr.ht)102 360 Q F0 2.5(,a)C(rchi)-2.5 E --.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E -(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 384 R F2 -(tpm2_unseal)102 396 Q F0(\(1\))A F1(https://git.sr)102 414 Q -(.ht/~nabijaczleweli/tzpfms)-1 E F0(tzpfms 0.1-12)72 750 Q(No)138.745 E --.15(ve)-.15 G(mber 12, 2021).15 E(8)189.295 E 0 Cg EP -%%Page: 9 9 +.15 E F4<83>122 504 Q F0(ThePhD)2.5 E F4<83>122 516 Q F0(Embark Studios) +2.5 E F4<83>122 528 Q F0(Jasper Bekk)2.5 E(ers)-.1 E F4(REPOR)72 552 Q +1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 564 Q +(.ht/~nabijaczleweli/tzpfms)-1 E F1(~nabijaczleweli/tzpfms@lists.sr.ht) +102 582 Q F0 2.5(,a)C(rchi)-2.5 E -.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E +F4(https://lists.sr)2.5 E(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F4 +1.666(SEE ALSO)72 606 R F1(tpm2_unseal)102 618 Q F0(\(1\))A F4 +(https://git.sr)102 636 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021).15 E +(9)189.295 E 0 Cg EP +%%Page: 10 10 %%BeginPageSetup BP %%EndPageSetup @@ -706,50 +803,87 @@ BP 132 Q F2(zfs-tpm2-clear-key)102 144 Q/F3 10/Courier-Oblique@0 SF (dataset)2.5 E F1(DESCRIPTION)72 168 Q F0(After v)102 180 Q(erifying) -.15 E F3(dataset)2.5 E F0 -.1(wa)2.5 G 2.5(se).1 G(ncrypted with)-2.5 E -F2(tzpfms)2.5 E F0(back)2.5 E(end)-.1 E F1(TPM2)2.5 E F0(:)A 6.985 +F2(tzpfms)2.5 E F0(back)2.5 E(end)-.1 E F1(TPM2)2.5 E F0(:)A 6.984 (1. performs the equi)122 192 R -.25(va)-.25 G 6.984(lent of).25 F F2 6.984(zfs change-key)9.484 F14.65 E/F4 10/Courier@0 SF -(keylocation=prompt)12.984 E F214.65 E F4(keyformat=passphrase)127 -204 Q F3(dataset)6 E F0(,)A(2. frees the sealed k)122 216 Q .3 -.15 +(keylocation=prompt)12.985 E F214.651 E F4(keyformat=passphrase) +127 204 Q F3(dataset)6 E F0(,)A(2. frees the sealed k)122 216 Q .3 -.15 (ey p)-.1 H(re).15 E(viously used to encrypt)-.25 E F3(dataset)2.5 E F0 (,)A(3. remo)122 228 Q -.15(ve)-.15 G 2.5(st).15 G(he)-2.5 E F4 (xyz.nabijaczleweli:tzpfms.)2.5 E F0({)A F4(backend)A F0(,)A F4(key)6 E F0 2.5(}p)C(roperties from)-2.5 E F3(dataset)2.5 E F0(.)A(See)102 246 Q F4(zfs-tpm2-change-key)2.5 E F0(\(8\) for a detailed description.)A F1 -1.666(TPM2 back-end con\214guration)72 270 R(En)84 282 Q(vir)-.4 E .625 -(onment v)-.18 F(ariables)-.1 E F4(TSS2_LOG)102 294 Q F0(An)155 294 Q +(ENVIR)72 270 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 E F4 +(TZPFMS_PASSPHRASE_HELPER)102 282 Q F0(If set and nonempty)143 294 Q 2.5 +(,w)-.65 G(ill be run as)-2.5 E F4(/bin/)173 306 Q F2 70.333(sh \255c)B +F4("$TZPFMS_PASSPHRASE_HELPER")74.667 E("$TZPFMS_PASSPHRASE_HELPER")173 +318 Q F0(")10.715 E F3 4.715(prepared prompt)B F0 7.215("")C F3(target) +-7.215 E F0 7.215("")C([)-7.215 E F4(new)A F0(]")A("[)173 330 Q F4 +(again)A F0(]")A(to pro)143 342 Q +(vide a passphrase, instead of reading from the standard input.)-.15 E +.189(The standard output stream of the helper is tied to an anon)143 360 +R .188(ymous \214le and used in its entirety as the)-.15 F .446 +(passphrase, e)143 372 R .446(xcept for a trailing ne)-.15 F .446 +(w-line, if an)-.25 F 4.246 -.65(y. T)-.15 H .447(he second ar).65 F +.447(gument contains either the dataset)-.18 F 2.14 +(name or the element of the TPM hierarch)143 384 R 5.94 -.65(y. T)-.05 H +2.14(he third ar).65 F 2.14(gument is)-.18 F F4(new)4.64 E F0 2.14 +(if this is for a ne)4.64 F(w)-.25 E .573(passphrase, and the fourth is) +143 396 R F4(again)3.074 E F0 .574(if it')3.074 F 3.074(st)-.55 G .574 +(he second prompt for that passphrase.)-3.074 F .574(The \214rst ar) +5.574 F(gu-)-.18 E(ment already contains all of this information, as a \ +pre-formatted noun phrase.)143 408 Q .181(If the helper doesn')143 426 R +2.681(te)-.18 G 1.847(xist \()-2.831 F .181(the shell e)1.666 F .181 +(xits with)-.15 F F1(127)2.681 E F0 -3.151 1.666(\), a d)1.666 H .181 +(iagnostic is issued and the normal prompt)-1.666 F(is used as f)143 438 +Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an)-.1 E 2.5(yo)-.15 G +(ther reason, the prompting is aborted.)-2.5 E(An e)143 456 Q(xample v) +-.15 E(alue w)-.25 E(ould be: ')-.1 E F2 1.666 +(systemd-ask-password \255-id)B F4(=)A F0(")A F4(tzpfms:)A F3($2)A F0 +2.5("")C F3($1)-2.5 E F4(:)A F0("'.)6 E F1 1.666 +(TPM2 back-end con\214guration)72 480 R(En)84 492 Q(vir)-.4 E .625 +(onment v)-.18 F(ariables)-.1 E F4(TSS2_LOG)102 504 Q F0(An)155 504 Q 2.5(yo)-.15 G(f:)-2.5 E F1(NONE)2.5 E F0(,)A F1(ERR)2.5 E(OR)-.3 E F0(,) A F1 -1.2(WA)2.5 G(RNING)1.2 E F0(,)A F1(INFO)2.5 E F0(,)A F1(DEB)2.5 E (UG)-.1 E F0(,)A F1(TRA)2.5 E(CE)-.55 E F0 5(.D)C(ef)-5 E(ault:)-.1 E F1 --1.2(WA)2.5 G(RNING)1.2 E F0(.)A F1 .625(TPM selection)84 318 R F0 .516 -(The library)102 330 R F2(libtss2-tcti-default.so)3.016 E F0 .516 +-1.2(WA)2.5 G(RNING)1.2 E F0(.)A F1 .625(TPM selection)84 528 R F0 .516 +(The library)102 540 R F2(libtss2-tcti-default.so)3.016 E F0 .516 (can be link)3.016 F .516(ed to an)-.1 F 3.017(yo)-.15 G 3.017(ft)-3.017 G(he)-3.017 E F4(libtss2-tcti-)3.017 E/F5 10/Symbol SF(*)A F4(.so)A F0 -(libraries)3.017 E .576(to select the def)102 342 R .576 +(libraries)3.017 E .576(to select the def)102 552 R .576 (ault, otherwise)-.1 F F4(/dev/tpmrm0)3.076 E F0 3.076(,t)C(hen)-3.076 E F4(/dev/tpm0)3.076 E F0 3.076(,t)C(hen)-3.076 E F4(localhost:2321)3.076 -E F0 .575(will be tried,)3.076 F(in order)102 354 Q 1.666(\(s)4.166 G +E F0 .575(will be tried,)3.076 F(in order)102 564 Q 1.666(\(s)4.166 G (ee)-1.666 E F4(ESYS_CONTEXT)2.5 E F0 -.834(\(3\) \) .)B F1 .625 -(See also)84 378 R F0 3.487(The tpm2-tss git repository at)102 390 R F1 +(See also)84 588 R F0 3.487(The tpm2-tss git repository at)102 600 R F1 (https://github)5.988 E(.com/tpm2-softwar)-.4 E(e/tpm2-tss)-.18 E F0 -3.488(and the documentation at)5.988 F F1(https://tpm2-tss.r)102 402 Q +3.488(and the documentation at)5.988 F F1(https://tpm2-tss.r)102 612 Q (eadthedocs.io)-.18 E F0(.)A 3.092 -(The TPM 2.0 speci\214cations, mainly at)102 420 R F1 +(The TPM 2.0 speci\214cations, mainly at)102 630 R F1 (https://trustedcomputinggr)5.591 E(oup.or)-.18 E -(g/wp-content/uploads/TPM-)-.1 E(Re)102 432 Q(v-2.0-P)-.15 E(art-1-Ar) +(g/wp-content/uploads/TPM-)-.1 E(Re)102 642 Q(v-2.0-P)-.15 E(art-1-Ar) -.1 E(chitectur)-.18 E(e-01.38.pdf)-.18 E F0(and related pages.)2.5 E F1 -1.666(SPECIAL THANKS)72 456 R F0 1.6 -.8(To a)102 468 T +1.666(SPECIAL THANKS)72 666 R F0 1.6 -.8(To a)102 678 T (ll who support further de).8 E -.15(ve)-.25 G(lopment, in particular:) -.15 E F1<83>122 480 Q F0(ThePhD)2.5 E F1<83>122 492 Q F0(Embark Studios) -2.5 E F1(REPOR)72 516 Q 1.666(TING B)-.4 F(UGS)-.1 E(https://todo.sr)102 -528 Q(.ht/~nabijaczleweli/tzpfms)-1 E F4 -(~nabijaczleweli/tzpfms@lists.sr.ht)102 546 Q F0 2.5(,a)C(rchi)-2.5 E --.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E -(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 570 R -(https://git.sr)102 582 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 -(tzpfms 0.1-12)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 12, 2021).15 E -(9)189.295 E 0 Cg EP -%%Page: 10 10 +.15 E(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021) +.15 E(10)184.295 E 0 Cg EP +%%Page: 11 11 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF -.834(ZFS-TPM2-CLEAR-KEY \(8\))72 48 R +(System Manager')62.209 E 2.5(sM)-.55 G 57.209(anual ZFS-TPM2-CLEAR-KEY) +-2.5 F(\(8\))1.666 E/F1 10/Times-Bold@0 SF<83>122 96 Q F0(ThePhD)2.5 E +F1<83>122 108 Q F0(Embark Studios)2.5 E F1<83>122 120 Q F0(Jasper Bekk) +2.5 E(ers)-.1 E F1(REPOR)72 144 Q 1.666(TING B)-.4 F(UGS)-.1 E +(https://todo.sr)102 156 Q(.ht/~nabijaczleweli/tzpfms)-1 E/F2 10 +/Courier@0 SF(~nabijaczleweli/tzpfms@lists.sr.ht)102 174 Q F0 2.5(,a)C +(rchi)-2.5 E -.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr) +2.5 E(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 198 R +(https://git.sr)102 210 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021).15 E +(11)184.295 E 0 Cg EP +%%Page: 12 12 %%BeginPageSetup BP %%EndPageSetup @@ -773,35 +907,71 @@ assphrase, set when creating the k)102 210 Q -.15(ey)-.1 G 2.5(,i)-.5 G G 2.679(ft)-2.679 G .179(he k)-2.679 F .478 -.15(ey i)-.1 H 2.678(sa).15 G .178(lready loaded.)-2.678 F(Equi)5.178 E -.25(va)-.25 G .178(lent to) .25 F F2 .178(zfs load-key)2.678 F F0 -.55('s)C F24.894 E F0 -(option.)119 288 Q F1 1.666(TPM1.X back-end con\214guration)72 312 R -.625(TPM selection)84 324 R F0(The)102 336 Q F2(tzpfms)2.767 E F0 .267 -(suite connects to a local)2.767 F F4(tcsd)2.767 E F0 .267 -(\(8\) process)B 1.666(\(a)4.433 G(t)-1.666 E F4(localhost:30003)2.767 E -F0 4.433(\)b)1.666 G 2.767(yd)-4.433 G(ef)-2.767 E 2.767(ault. Use)-.1 F -.268(the en-)2.767 F(vironment v)102 348 Q(ariable)-.25 E F4 -(TZPFMS_TPM1X)2.5 E F0(to specify a remote TCS hostname.)2.5 E .392 -(The T)102 366 R(rouSerS)-.35 E F4(tcsd)2.892 E F0 .392 -(\(8\) daemon will try)B F4(/dev/tpm0)2.892 E F0 2.892(,t)C(hen)-2.892 E -F4(/udev/tpm0)2.892 E F0 2.891(,t)C(hen)-2.891 E F4(/dev/tpm)2.891 E F0 -2.891(;b)C 2.891(yo)-2.891 G(ccup)-2.891 E(ying)-.1 E -(one of the earlier ones with, for e)102 378 Q +(option.)119 288 Q F1(ENVIR)72 312 Q 1.666(ONMENT V)-.3 F(ARIABLES)-1.35 +E F4(TZPFMS_PASSPHRASE_HELPER)102 324 Q F0(If set and nonempty)143 336 Q +2.5(,w)-.65 G(ill be run as)-2.5 E F4(/bin/)173 348 Q F2 70.333 +(sh \255c)B F4("$TZPFMS_PASSPHRASE_HELPER")74.667 E +("$TZPFMS_PASSPHRASE_HELPER")173 360 Q F0(")10.715 E F3 4.715 +(prepared prompt)B F0 7.215("")C F3(target)-7.215 E F0 7.215("")C([) +-7.215 E F4(new)A F0(]")A("[)173 372 Q F4(again)A F0(]")A(to pro)143 384 +Q(vide a passphrase, instead of reading from the standard input.)-.15 E +.188(The standard output stream of the helper is tied to an anon)143 402 +R .189(ymous \214le and used in its entirety as the)-.15 F .447 +(passphrase, e)143 414 R .447(xcept for a trailing ne)-.15 F .447 +(w-line, if an)-.25 F 4.246 -.65(y. T)-.15 H .446(he second ar).65 F +.446(gument contains either the dataset)-.18 F 2.14 +(name or the element of the TPM hierarch)143 426 R 5.94 -.65(y. T)-.05 H +2.14(he third ar).65 F 2.14(gument is)-.18 F F4(new)4.64 E F0 2.14 +(if this is for a ne)4.64 F(w)-.25 E .574(passphrase, and the fourth is) +143 438 R F4(again)3.074 E F0 .574(if it')3.074 F 3.074(st)-.55 G .574 +(he second prompt for that passphrase.)-3.074 F .573(The \214rst ar) +5.573 F(gu-)-.18 E(ment already contains all of this information, as a \ +pre-formatted noun phrase.)143 450 Q .181(If the helper doesn')143 468 R +2.681(te)-.18 G 1.847(xist \()-2.831 F .181(the shell e)1.666 F .181 +(xits with)-.15 F F1(127)2.681 E F0 -3.151 1.666(\), a d)1.666 H .181 +(iagnostic is issued and the normal prompt)-1.666 F(is used as f)143 480 +Q 2.5(all-back. If)-.1 F(it f)2.5 E(ails for an)-.1 E 2.5(yo)-.15 G +(ther reason, the prompting is aborted.)-2.5 E(An e)143 498 Q(xample v) +-.15 E(alue w)-.25 E(ould be: ')-.1 E F2 1.666 +(systemd-ask-password \255-id)B F4(=)A F0(")A F4(tzpfms:)A F3($2)A F0 +2.5("")C F3($1)-2.5 E F4(:)A F0("'.)6 E F1 1.666 +(TPM1.X back-end con\214guration)72 522 R .625(TPM selection)84 534 R F0 +(The)102 546 Q F2(tzpfms)2.768 E F0 .267(suite connects to a local)2.767 +F F4(tcsd)2.767 E F0 .267(\(8\) process)B 1.666(\(a)4.433 G(t)-1.666 E +F4(localhost:30003)2.767 E F0 4.433(\)b)1.666 G 2.767(yd)-4.433 G(ef) +-2.767 E 2.767(ault. Use)-.1 F .267(the en-)2.767 F(vironment v)102 558 +Q(ariable)-.25 E F4(TZPFMS_TPM1X)2.5 E F0 +(to specify a remote TCS hostname.)2.5 E .391(The T)102 576 R(rouSerS) +-.35 E F4(tcsd)2.891 E F0 .391(\(8\) daemon will try)B F4(/dev/tpm0) +2.892 E F0 2.892(,t)C(hen)-2.892 E F4(/udev/tpm0)2.892 E F0 2.892(,t)C +(hen)-2.892 E F4(/dev/tpm)2.892 E F0 2.892(;b)C 2.892(yo)-2.892 G(ccup) +-2.892 E(ying)-.1 E(one of the earlier ones with, for e)102 588 Q (xample, shell redirection, a later one can be selected.)-.15 E F1 .625 -(See also)84 402 R F0(The T)102 414 Q(rouSerS project page at)-.35 E F1 +(See also)84 612 R F0(The T)102 624 Q(rouSerS project page at)-.35 E F1 (https://sour)2.5 E(cef)-.18 E(or)-.25 E(ge.net/pr)-.1 E(ojects/tr)-.18 -E(ousers)-.18 E F0(.)A 5.108(The TPM 1.2 main speci\214cation inde)102 -432 R 7.609(xa)-.15 G(t)-7.609 E F1(https://trustedcomputinggr)7.609 E +E(ousers)-.18 E F0(.)A 5.109(The TPM 1.2 main speci\214cation inde)102 +642 R 7.608(xa)-.15 G(t)-7.608 E F1(https://trustedcomputinggr)7.608 E (oup.or)-.18 E(g/r)-.1 E(esour)-.18 E(ce/tpm-main-)-.18 E -(speci\214cation)102 444 Q F0(.)A F1 1.666(SPECIAL THANKS)72 468 R F0 -1.6 -.8(To a)102 480 T(ll who support further de).8 E -.15(ve)-.25 G -(lopment, in particular:).15 E F1<83>122 492 Q F0(ThePhD)2.5 E F1<83>122 -504 Q F0(Embark Studios)2.5 E F1(REPOR)72 528 Q 1.666(TING B)-.4 F(UGS) --.1 E(https://todo.sr)102 540 Q(.ht/~nabijaczleweli/tzpfms)-1 E F4 -(~nabijaczleweli/tzpfms@lists.sr.ht)102 558 Q F0 2.5(,a)C(rchi)-2.5 E --.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr)2.5 E -(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 582 R -(https://git.sr)102 594 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 -(tzpfms 0.1-12)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 12, 2021).15 E -(10)184.295 E 0 Cg EP +(speci\214cation)102 654 Q F0(.)A F1 1.666(SPECIAL THANKS)72 678 R F0 +1.6 -.8(To a)102 690 T(ll who support further de).8 E -.15(ve)-.25 G +(lopment, in particular:).15 E(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15 +(ve)-.15 G(mber 15, 2021).15 E(12)184.295 E 0 Cg EP +%%Page: 13 13 +%%BeginPageSetup +BP +%%EndPageSetup +/F0 10/Times-Roman@0 SF(ZFS-TPM2-LO)72 48 Q -.834(AD-KEY \(8\))-.35 F +(System Manager')67.569 E 2.5(sM)-.55 G 62.569(anual ZFS-TPM2-LO)-2.5 F +-.834(AD-KEY \(8\))-.35 F/F1 10/Times-Bold@0 SF<83>122 96 Q F0(ThePhD) +2.5 E F1<83>122 108 Q F0(Embark Studios)2.5 E F1<83>122 120 Q F0 +(Jasper Bekk)2.5 E(ers)-.1 E F1(REPOR)72 144 Q 1.666(TING B)-.4 F(UGS) +-.1 E(https://todo.sr)102 156 Q(.ht/~nabijaczleweli/tzpfms)-1 E/F2 10 +/Courier@0 SF(~nabijaczleweli/tzpfms@lists.sr.ht)102 174 Q F0 2.5(,a)C +(rchi)-2.5 E -.15(ve)-.25 G 2.5(da).15 G(t)-2.5 E F1(https://lists.sr) +2.5 E(.ht/~nabijaczleweli/tzpfms)-1 E F0(.)A F1 1.666(SEE ALSO)72 198 R +(https://git.sr)102 210 Q(.ht/~nabijaczleweli/tzpfms)-1 E F0 +(tzpfms 0.1-14)72 750 Q(No)138.745 E -.15(ve)-.15 G(mber 15, 2021).15 E +(13)184.295 E 0 Cg EP %%Trailer end %%EOF diff --git a/zfs-tpm-list.8 b/zfs-tpm-list.8 index d82e8b8..7144c33 100644 --- a/zfs-tpm-list.8 +++ b/zfs-tpm-list.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd November 12, 2021 +.Dd November 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM-LIST 8 -.Os tzpfms 0.1-12 +.Os tzpfms 0.1-14 . .Sh NAME .Nm zfs-tpm-list @@ -122,6 +122,8 @@ To all who support further development, in particular: ThePhD .It Embark Studios +.It +Jasper Bekkers .El . .Sh REPORTING BUGS diff --git a/zfs-tpm-list.8.html b/zfs-tpm-list.8.html index d770e33..b4a8e5f 100644 --- a/zfs-tpm-list.8.html +++ b/zfs-tpm-list.8.html @@ -150,6 +150,7 @@ owo/enc TPM1.X available yes
  • ThePhD
  • Embark Studios
  • +
  • Jasper Bekkers
@@ -168,8 +169,8 @@ owo/enc TPM1.X available yes - - + +
November 12, 2021tzpfms 0.1-12November 15, 2021tzpfms 0.1-14
diff --git a/zfs-tpm1x-change-key.8 b/zfs-tpm1x-change-key.8 index de1e4ba..83391c4 100644 --- a/zfs-tpm1x-change-key.8 +++ b/zfs-tpm1x-change-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd November 12, 2021 +.Dd November 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM1X-CHANGE-KEY 8 -.Os tzpfms 0.1-12 +.Os tzpfms 0.1-14 . .Sh NAME .Nm zfs-tpm1x-change-key @@ -104,6 +104,33 @@ In case of a catastrophic event, the key can be loaded by running . .\" SPDX-License-Identifier: MIT . +.Sh ENVIRONMENT VARIABLES +.Bl -tag -compact -width "TZPFMS" +.It Ev TZPFMS_PASSPHRASE_HELPER +If set and nonempty, will be run as +.Dl Pa /bin/ Ns Nm sh Fl c Li \&"$TZPFMS_PASSPHRASE_HELPER" \&"$TZPFMS_PASSPHRASE_HELPER" Qo Ar prepared prompt Qc Qo Ar target Qc Qo Oo Li new Oc Qc Qo Oo Li again Oc Qc +to provide a passphrase, instead of reading from the standard input. +.Pp +The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. +The second argument contains either the dataset name or the element of the TPM hierarchy. +The third argument is +.Li new +if this is for a new passphrase, and the fourth is +.Li again +if it's the second prompt for that passphrase. +The first argument already contains all of this information, as a pre-formatted noun phrase. +.Pp +If the helper doesn't exist +.Pq the shell exits with Sy 127 , +a diagnostic is issued and the normal prompt is used as fall-back. +If it fails for any other reason, the prompting is aborted. +.Pp +An example value would be: +.No ' Ns Nm systemd-ask-password Fl -id Ns Li = Ns Qo Li tzpfms:\& Ns Ar $2 Qc Qo Ar $1 Ns Li ": " Qc Ns ' . +.El +. +.\" SPDX-License-Identifier: MIT +. .Sh TPM1.X back-end configuration .Ss TPM selection The @@ -143,6 +170,8 @@ To all who support further development, in particular: ThePhD .It Embark Studios +.It +Jasper Bekkers .El . .Sh REPORTING BUGS diff --git a/zfs-tpm1x-change-key.8.html b/zfs-tpm1x-change-key.8.html index 70385db..55ac8aa 100644 --- a/zfs-tpm1x-change-key.8.html +++ b/zfs-tpm1x-change-key.8.html @@ -114,6 +114,41 @@
+

@@ -147,6 +182,7 @@
  • ThePhD
  • Embark Studios
  • +
  • Jasper Bekkers
@@ -165,8 +201,8 @@ - - + +
November 12, 2021tzpfms 0.1-12November 15, 2021tzpfms 0.1-14
diff --git a/zfs-tpm1x-clear-key.8 b/zfs-tpm1x-clear-key.8 index ab59771..6e9a16b 100644 --- a/zfs-tpm1x-clear-key.8 +++ b/zfs-tpm1x-clear-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd November 12, 2021 +.Dd November 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM1X-CLEAR-KEY 8 -.Os tzpfms 0.1-12 +.Os tzpfms 0.1-14 . .Sh NAME .Nm zfs-tpm1x-clear-key @@ -75,6 +75,8 @@ To all who support further development, in particular: ThePhD .It Embark Studios +.It +Jasper Bekkers .El . .Sh REPORTING BUGS diff --git a/zfs-tpm1x-clear-key.8.html b/zfs-tpm1x-clear-key.8.html index 21a2270..ed51e1c 100644 --- a/zfs-tpm1x-clear-key.8.html +++ b/zfs-tpm1x-clear-key.8.html @@ -87,6 +87,7 @@
  • ThePhD
  • Embark Studios
  • +
  • Jasper Bekkers
@@ -105,8 +106,8 @@ - - + +
November 12, 2021tzpfms 0.1-12November 15, 2021tzpfms 0.1-14
diff --git a/zfs-tpm1x-load-key.8 b/zfs-tpm1x-load-key.8 index efd3e6c..d53dac7 100644 --- a/zfs-tpm1x-load-key.8 +++ b/zfs-tpm1x-load-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd November 12, 2021 +.Dd November 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM1X-LOAD-KEY 8 -.Os tzpfms 0.1-12 +.Os tzpfms 0.1-14 . .Sh NAME .Nm zfs-tpm1x-load-key @@ -42,6 +42,33 @@ option. . .\" SPDX-License-Identifier: MIT . +.Sh ENVIRONMENT VARIABLES +.Bl -tag -compact -width "TZPFMS" +.It Ev TZPFMS_PASSPHRASE_HELPER +If set and nonempty, will be run as +.Dl Pa /bin/ Ns Nm sh Fl c Li \&"$TZPFMS_PASSPHRASE_HELPER" \&"$TZPFMS_PASSPHRASE_HELPER" Qo Ar prepared prompt Qc Qo Ar target Qc Qo Oo Li new Oc Qc Qo Oo Li again Oc Qc +to provide a passphrase, instead of reading from the standard input. +.Pp +The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. +The second argument contains either the dataset name or the element of the TPM hierarchy. +The third argument is +.Li new +if this is for a new passphrase, and the fourth is +.Li again +if it's the second prompt for that passphrase. +The first argument already contains all of this information, as a pre-formatted noun phrase. +.Pp +If the helper doesn't exist +.Pq the shell exits with Sy 127 , +a diagnostic is issued and the normal prompt is used as fall-back. +If it fails for any other reason, the prompting is aborted. +.Pp +An example value would be: +.No ' Ns Nm systemd-ask-password Fl -id Ns Li = Ns Qo Li tzpfms:\& Ns Ar $2 Qc Qo Ar $1 Ns Li ": " Qc Ns ' . +.El +. +.\" SPDX-License-Identifier: MIT +. .Sh TPM1.X back-end configuration .Ss TPM selection The @@ -81,6 +108,8 @@ To all who support further development, in particular: ThePhD .It Embark Studios +.It +Jasper Bekkers .El . .Sh REPORTING BUGS diff --git a/zfs-tpm1x-load-key.8.html b/zfs-tpm1x-load-key.8.html index a2045bf..13c3e25 100644 --- a/zfs-tpm1x-load-key.8.html +++ b/zfs-tpm1x-load-key.8.html @@ -55,6 +55,41 @@
+

+
+
+
If set and nonempty, will be run as +
/bin/sh + -c + "$TZPFMS_PASSPHRASE_HELPER" + "$TZPFMS_PASSPHRASE_HELPER" + "prepared prompt" + "target" + "[new]" + "[again]"
+ to provide a passphrase, instead of reading from the standard input. +

The standard output stream of the helper is tied to an + anonymous file and used in its entirety as the passphrase, except for a + trailing new-line, if any. The second argument contains either the + dataset name or the element of the TPM hierarchy. The third argument is + new if this is for a new passphrase, and the + fourth is again if it's the second prompt for + that passphrase. The first argument already contains all of this + information, as a pre-formatted noun phrase.

+

If the helper doesn't exist (the shell exits with + ), a + diagnostic is issued and the normal prompt is used as fall-back. If it + fails for any other reason, the prompting is aborted.

+

An example value would be: + 'systemd-ask-password + --id="tzpfms:$2" + "$1: "'.

+
+
+
+

@@ -88,6 +123,7 @@
  • ThePhD
  • Embark Studios
  • +
  • Jasper Bekkers
@@ -106,8 +142,8 @@ - - + +
November 12, 2021tzpfms 0.1-12November 15, 2021tzpfms 0.1-14
diff --git a/zfs-tpm2-change-key.8 b/zfs-tpm2-change-key.8 index 69aa0fb..f8ef842 100644 --- a/zfs-tpm2-change-key.8 +++ b/zfs-tpm2-change-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd November 12, 2021 +.Dd November 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM2-CHANGE-KEY 8 -.Os tzpfms 0.1-12 +.Os tzpfms 0.1-14 . .Sh NAME .Nm zfs-tpm2-change-key @@ -101,6 +101,33 @@ In case of a catastrophic event, the key can be loaded by running . .\" SPDX-License-Identifier: MIT . +.Sh ENVIRONMENT VARIABLES +.Bl -tag -compact -width "TZPFMS" +.It Ev TZPFMS_PASSPHRASE_HELPER +If set and nonempty, will be run as +.Dl Pa /bin/ Ns Nm sh Fl c Li \&"$TZPFMS_PASSPHRASE_HELPER" \&"$TZPFMS_PASSPHRASE_HELPER" Qo Ar prepared prompt Qc Qo Ar target Qc Qo Oo Li new Oc Qc Qo Oo Li again Oc Qc +to provide a passphrase, instead of reading from the standard input. +.Pp +The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. +The second argument contains either the dataset name or the element of the TPM hierarchy. +The third argument is +.Li new +if this is for a new passphrase, and the fourth is +.Li again +if it's the second prompt for that passphrase. +The first argument already contains all of this information, as a pre-formatted noun phrase. +.Pp +If the helper doesn't exist +.Pq the shell exits with Sy 127 , +a diagnostic is issued and the normal prompt is used as fall-back. +If it fails for any other reason, the prompting is aborted. +.Pp +An example value would be: +.No ' Ns Nm systemd-ask-password Fl -id Ns Li = Ns Qo Li tzpfms:\& Ns Ar $2 Qc Qo Ar $1 Ns Li ": " Qc Ns ' . +.El +. +.\" SPDX-License-Identifier: MIT +. .Sh TPM2 back-end configuration .Ss Environment variables .Bl -tag -compact -width "TSS2_LOG" @@ -144,6 +171,8 @@ To all who support further development, in particular: ThePhD .It Embark Studios +.It +Jasper Bekkers .El . .Sh REPORTING BUGS diff --git a/zfs-tpm2-change-key.8.html b/zfs-tpm2-change-key.8.html index 859557c..4dfc3bb 100644 --- a/zfs-tpm2-change-key.8.html +++ b/zfs-tpm2-change-key.8.html @@ -113,6 +113,41 @@
+

+
+
+
If set and nonempty, will be run as +
/bin/sh + -c + "$TZPFMS_PASSPHRASE_HELPER" + "$TZPFMS_PASSPHRASE_HELPER" + "prepared prompt" + "target" + "[new]" + "[again]"
+ to provide a passphrase, instead of reading from the standard input. +

The standard output stream of the helper is tied to an + anonymous file and used in its entirety as the passphrase, except for a + trailing new-line, if any. The second argument contains either the + dataset name or the element of the TPM hierarchy. The third argument is + new if this is for a new passphrase, and the + fourth is again if it's the second prompt for + that passphrase. The first argument already contains all of this + information, as a pre-formatted noun phrase.

+

If the helper doesn't exist (the shell exits with + ), a + diagnostic is issued and the normal prompt is used as fall-back. If it + fails for any other reason, the prompting is aborted.

+

An example value would be: + 'systemd-ask-password + --id="tzpfms:$2" + "$1: "'.

+
+
+
+

@@ -159,6 +194,7 @@
  • ThePhD
  • Embark Studios
  • +
  • Jasper Bekkers
@@ -178,8 +214,8 @@ - - + +
November 12, 2021tzpfms 0.1-12November 15, 2021tzpfms 0.1-14
diff --git a/zfs-tpm2-clear-key.8 b/zfs-tpm2-clear-key.8 index 251453d..630f46e 100644 --- a/zfs-tpm2-clear-key.8 +++ b/zfs-tpm2-clear-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd November 12, 2021 +.Dd November 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM2-CLEAR-KEY 8 -.Os tzpfms 0.1-12 +.Os tzpfms 0.1-14 . .Sh NAME .Nm zfs-tpm2-clear-key @@ -39,6 +39,33 @@ for a detailed description. . .\" SPDX-License-Identifier: MIT . +.Sh ENVIRONMENT VARIABLES +.Bl -tag -compact -width "TZPFMS" +.It Ev TZPFMS_PASSPHRASE_HELPER +If set and nonempty, will be run as +.Dl Pa /bin/ Ns Nm sh Fl c Li \&"$TZPFMS_PASSPHRASE_HELPER" \&"$TZPFMS_PASSPHRASE_HELPER" Qo Ar prepared prompt Qc Qo Ar target Qc Qo Oo Li new Oc Qc Qo Oo Li again Oc Qc +to provide a passphrase, instead of reading from the standard input. +.Pp +The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. +The second argument contains either the dataset name or the element of the TPM hierarchy. +The third argument is +.Li new +if this is for a new passphrase, and the fourth is +.Li again +if it's the second prompt for that passphrase. +The first argument already contains all of this information, as a pre-formatted noun phrase. +.Pp +If the helper doesn't exist +.Pq the shell exits with Sy 127 , +a diagnostic is issued and the normal prompt is used as fall-back. +If it fails for any other reason, the prompting is aborted. +.Pp +An example value would be: +.No ' Ns Nm systemd-ask-password Fl -id Ns Li = Ns Qo Li tzpfms:\& Ns Ar $2 Qc Qo Ar $1 Ns Li ": " Qc Ns ' . +.El +. +.\" SPDX-License-Identifier: MIT +. .Sh TPM2 back-end configuration .Ss Environment variables .Bl -tag -compact -width "TSS2_LOG" @@ -82,6 +109,8 @@ To all who support further development, in particular: ThePhD .It Embark Studios +.It +Jasper Bekkers .El . .Sh REPORTING BUGS diff --git a/zfs-tpm2-clear-key.8.html b/zfs-tpm2-clear-key.8.html index 7b09e31..9b36cf0 100644 --- a/zfs-tpm2-clear-key.8.html +++ b/zfs-tpm2-clear-key.8.html @@ -56,6 +56,41 @@ for a detailed description.

+

+
+
+
If set and nonempty, will be run as +
/bin/sh + -c + "$TZPFMS_PASSPHRASE_HELPER" + "$TZPFMS_PASSPHRASE_HELPER" + "prepared prompt" + "target" + "[new]" + "[again]"
+ to provide a passphrase, instead of reading from the standard input. +

The standard output stream of the helper is tied to an + anonymous file and used in its entirety as the passphrase, except for a + trailing new-line, if any. The second argument contains either the + dataset name or the element of the TPM hierarchy. The third argument is + new if this is for a new passphrase, and the + fourth is again if it's the second prompt for + that passphrase. The first argument already contains all of this + information, as a pre-formatted noun phrase.

+

If the helper doesn't exist (the shell exits with + ), a + diagnostic is issued and the normal prompt is used as fall-back. If it + fails for any other reason, the prompting is aborted.

+

An example value would be: + 'systemd-ask-password + --id="tzpfms:$2" + "$1: "'.

+
+
+
+

@@ -102,6 +137,7 @@
  • ThePhD
  • Embark Studios
  • +
  • Jasper Bekkers
@@ -120,8 +156,8 @@ - - + +
November 12, 2021tzpfms 0.1-12November 15, 2021tzpfms 0.1-14
diff --git a/zfs-tpm2-load-key.8 b/zfs-tpm2-load-key.8 index 1ccbeed..b055c03 100644 --- a/zfs-tpm2-load-key.8 +++ b/zfs-tpm2-load-key.8 @@ -1,9 +1,9 @@ .\" SPDX-License-Identifier: MIT . -.Dd November 12, 2021 +.Dd November 15, 2021 .ds doc-volume-operating-system .Dt ZFS-TPM2-LOAD-KEY 8 -.Os tzpfms 0.1-12 +.Os tzpfms 0.1-14 . .Sh NAME .Nm zfs-tpm2-load-key @@ -41,6 +41,33 @@ option. . .\" SPDX-License-Identifier: MIT . +.Sh ENVIRONMENT VARIABLES +.Bl -tag -compact -width "TZPFMS" +.It Ev TZPFMS_PASSPHRASE_HELPER +If set and nonempty, will be run as +.Dl Pa /bin/ Ns Nm sh Fl c Li \&"$TZPFMS_PASSPHRASE_HELPER" \&"$TZPFMS_PASSPHRASE_HELPER" Qo Ar prepared prompt Qc Qo Ar target Qc Qo Oo Li new Oc Qc Qo Oo Li again Oc Qc +to provide a passphrase, instead of reading from the standard input. +.Pp +The standard output stream of the helper is tied to an anonymous file and used in its entirety as the passphrase, except for a trailing new-line, if any. +The second argument contains either the dataset name or the element of the TPM hierarchy. +The third argument is +.Li new +if this is for a new passphrase, and the fourth is +.Li again +if it's the second prompt for that passphrase. +The first argument already contains all of this information, as a pre-formatted noun phrase. +.Pp +If the helper doesn't exist +.Pq the shell exits with Sy 127 , +a diagnostic is issued and the normal prompt is used as fall-back. +If it fails for any other reason, the prompting is aborted. +.Pp +An example value would be: +.No ' Ns Nm systemd-ask-password Fl -id Ns Li = Ns Qo Li tzpfms:\& Ns Ar $2 Qc Qo Ar $1 Ns Li ": " Qc Ns ' . +.El +. +.\" SPDX-License-Identifier: MIT +. .Sh TPM1.X back-end configuration .Ss TPM selection The @@ -80,6 +107,8 @@ To all who support further development, in particular: ThePhD .It Embark Studios +.It +Jasper Bekkers .El . .Sh REPORTING BUGS diff --git a/zfs-tpm2-load-key.8.html b/zfs-tpm2-load-key.8.html index 8f16aed..37b4752 100644 --- a/zfs-tpm2-load-key.8.html +++ b/zfs-tpm2-load-key.8.html @@ -54,6 +54,41 @@
+

+
+
+
If set and nonempty, will be run as +
/bin/sh + -c + "$TZPFMS_PASSPHRASE_HELPER" + "$TZPFMS_PASSPHRASE_HELPER" + "prepared prompt" + "target" + "[new]" + "[again]"
+ to provide a passphrase, instead of reading from the standard input. +

The standard output stream of the helper is tied to an + anonymous file and used in its entirety as the passphrase, except for a + trailing new-line, if any. The second argument contains either the + dataset name or the element of the TPM hierarchy. The third argument is + new if this is for a new passphrase, and the + fourth is again if it's the second prompt for + that passphrase. The first argument already contains all of this + information, as a pre-formatted noun phrase.

+

If the helper doesn't exist (the shell exits with + ), a + diagnostic is issued and the normal prompt is used as fall-back. If it + fails for any other reason, the prompting is aborted.

+

An example value would be: + 'systemd-ask-password + --id="tzpfms:$2" + "$1: "'.

+
+
+
+

@@ -87,6 +122,7 @@
  • ThePhD
  • Embark Studios
  • +
  • Jasper Bekkers
@@ -105,8 +141,8 @@ - - + +
November 12, 2021tzpfms 0.1-12November 15, 2021tzpfms 0.1-14
+

+
+
+
If set and nonempty, will be run as +
/bin/sh + -c + "$TZPFMS_PASSPHRASE_HELPER" + "$TZPFMS_PASSPHRASE_HELPER" + "prepared prompt" + "target" + "[new]" + "[again]"
+ to provide a passphrase, instead of reading from the standard input. +

The standard output stream of the helper is tied to an + anonymous file and used in its entirety as the passphrase, except for a + trailing new-line, if any. The second argument contains either the + dataset name or the element of the TPM hierarchy. The third argument is + new if this is for a new passphrase, and the + fourth is again if it's the second prompt for + that passphrase. The first argument already contains all of this + information, as a pre-formatted noun phrase.

+

If the helper doesn't exist (the shell exits with + ), a + diagnostic is issued and the normal prompt is used as fall-back. If it + fails for any other reason, the prompting is aborted.

+

An example value would be: + 'systemd-ask-password + --id="tzpfms:$2" + "$1: "'.

+
+
+