mirror of
https://github.com/crypto-pro-web/crypto-pro-js.git
synced 2025-02-23 03:15:51 +03:00
1 line
179 KiB
Plaintext
1 line
179 KiB
Plaintext
{"version":3,"file":"crypto-pro-js.min.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,YAAa,GAAIH,GACE,iBAAZC,QACdA,QAAmB,UAAID,IAEvBD,EAAgB,UAAIC,GACrB,CATD,CASGK,MAAM,I,0lDCTT,wCACA,8CACA,0DACA,4CACA,yCACA,uCASa,QAAAC,qBAAuB,sBAAAC,qBAClC,SAAOC,WAAoBC,eAAmC,kD,+FAEnC,OADjBC,YAAgBC,OAAM,YACL,GAAM,gBAAAC,cAAcJ,a,OAE7C,OAFMK,iBAAmB,UAElB,CAAP,EAAOC,KACL,mBAAAC,kBAAiB,WACf,IAAIC,EACAC,EACAC,EAEJ,IACEF,EAAa,mBAAAG,oBAAsB,mBAAAC,4BAA4B,wBAC/DH,EAAkB,mBAAAE,oBAAsB,mBAAAC,4BAA4B,4BACpEF,EAAc,mBAAAC,oBAAsB,mBAAAC,4BAA4B,oB,CAChE,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,mC,CAG3D,IAWII,EAUAC,EAeAC,EApCEC,EAAc,cAAAC,YAAY,IAAIC,MAEpC,IACQ,mBAAAX,oBAAsBH,EAAWe,aAAa,YAAAC,+CAC9C,mBAAAb,oBAAsBH,EAAWiB,cAAcL,E,CACrD,MAAOP,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,uC,CAK3D,IACEI,EAAgBS,OAAOC,KAAK1B,eAAe2B,SAAS,S,CACpD,MAAOf,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,+C,CAKlB,IACQ,mBAAAJ,oBAAsBD,EAAYmB,oBAAoBxB,kBAC5Da,EAAiB,mBAAAP,oBAAsBD,EAAYoB,yBAC7C,mBAAAnB,oBAAsBO,EAAea,IAAIvB,GACzC,mBAAAG,oBAAsBF,EAAgBuB,wBAAwB9B,YAAY+B,2BAC1E,mBAAAtB,oBAAsBF,EAAgByB,gBAAgBjB,GACtD,mBAAAN,oBAAsBD,EAAYyB,gBAAgBjC,YAAYkC,wC,CACpE,MAAOvB,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,yC,CAK3D,IACQ,mBAAAF,oBAAsBF,EAAgB4B,YAAYpC,cAAeC,YAAYoC,qBACnFnB,EAAY,mBAAAR,oBAAsBF,EAAgB8B,YAAY7B,EAAaR,YAAYoC,oB,CACvF,MAAOzB,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,+B,CAG3D,OAAOM,CACT,M,skDCnFN,wCACA,8CACA,0DACA,4CACA,yCACA,uCAUa,QAAAqB,qBAAuB,sBAAAzC,qBAClC,SAAOC,WAAoBC,cAAqCwC,aAAmB,kD,+FAExD,OADjBvC,YAAgBC,OAAM,YACL,GAAM,gBAAAC,cAAcJ,a,OAE7C,OAFMK,iBAAmB,UAElB,CAAP,EAAOC,KACL,mBAAAC,kBAAiB,WACf,IAAIC,EACAkC,EACAjC,EACAC,EAEJ,IACEF,EAAa,mBAAAG,oBAAsB,mBAAAC,4BAA4B,wBAC/D8B,EAAkB,mBAAA/B,oBAAsB,mBAAAC,4BAA4B,uBACpEH,EAAkB,mBAAAE,oBAAsB,mBAAAC,4BAA4B,4BACpEF,EAAc,mBAAAC,oBAAsB,mBAAAC,4BAA4B,oB,CAChE,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,mC,CAG3D,IAWIK,EAyBAC,EApCEC,EAAc,cAAAC,YAAY,IAAIC,MAEpC,IACQ,mBAAAX,oBAAsBH,EAAWe,aAAa,YAAAC,+CAC9C,mBAAAb,oBAAsBH,EAAWiB,cAAcL,E,CACrD,MAAOP,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,uC,CAK3D,IACQ,mBAAAF,oBAAsBD,EAAYmB,oBAAoBxB,kBAC5Da,EAAiB,mBAAAP,oBAAsBD,EAAYoB,yBAC7C,mBAAAnB,oBAAsBO,EAAea,IAAIvB,GACzC,mBAAAG,oBAAsBD,EAAYyB,gBAAgBjC,YAAYkC,wC,CACpE,MAAOvB,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,mC,CAG3D,IAEI,mBAAAF,oBACA+B,EAAgBC,kBAAkBzC,YAAY0C,+CAE1C,mBAAAjC,oBAAsB+B,EAAgBG,aAAaJ,Y,CACzD,MAAO5B,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,4B,CAK3D,IAEI,mBAAAF,oBACAF,EAAgBqC,WAAWJ,EAAiBzC,cAAeC,YAAYoC,qBAEzEnB,EACE,mBAAAR,oBACAF,EAAgBsC,WAAWL,EAAiBhC,EAAaR,YAAYoC,oB,CACvE,MAAOzB,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,+B,CAG3D,OAAOM,CACT,M,4GC3FN,YAEA,SACA,SACA,QACA,SACA,SACA,SACA,SACA,SAIA,aACE,WACS6B,EACAC,EACAC,EACAC,EACAnD,EACAoD,EACAC,GANA,KAAAL,kBAAAA,EACA,KAAAC,KAAAA,EACA,KAAAC,WAAAA,EACA,KAAAC,YAAAA,EACA,KAAAnD,WAAAA,EACA,KAAAoD,UAAAA,EACA,KAAAC,QAAAA,CACN,CAqCL,OAnCS,YAAAC,aAAP,WACE,OAAO,EAAAC,QAAQC,KAAKC,KAAM,EAAAC,0BAA2B,cACvD,EAEO,YAAAC,cAAP,WACE,OAAO,EAAAJ,QAAQC,KAAKC,KAAM,EAAAG,yBAA0B,aACtD,EAEO,YAAAC,oBAAP,WACE,OAAO,EAAAA,oBAAoBL,KAAKC,KAClC,EAEO,YAAAK,2BAAP,WACE,OAAO,EAAAA,2BAA2BN,KAAKC,KACzC,EAEO,YAAAM,aAAP,WACE,OAAO,EAAAA,aAAaP,KAAKC,KAC3B,EAEO,YAAAO,aAAP,SAAoBC,GAClB,OAAO,EAAAD,aAAaR,KAAKC,KAAMQ,EACjC,EAEO,YAAAC,QAAP,WACE,OAAO,EAAAA,QAAQV,KAAKC,KACtB,EAEO,YAAAU,aAAP,WACE,OAAO,EAAAA,aAAaX,KAAKC,KAC3B,EAEO,YAAAW,oBAAP,SAA2BC,GACzB,OAAO,EAAAD,oBAAoBZ,KAAKC,KAAMY,EACxC,EACF,EA9CA,GAAa,EAAAC,YAAAA,C,8JCbb,kDACA,0DACA,4CAQa,QAAAH,aAAe,sBAAApE,qBAAoB,WAC9C,IAAMM,iBAAoBoD,KAAqBT,kBAE/C,OAAO1C,KACL,mBAAAC,kBAAiB,WACf,IAAIgE,EAEJ,IACEA,EAAS,mBAAA5D,oBAAsBN,iBAAiBmE,OAAO,E,CACvD,MAAO3D,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,kC,CAG3D,OAAO0D,CACT,IAEJ,G,8JC5BA,kDACA,0DACA,4CAaa,QAAAR,aAAe,sBAAAhE,qBAAoB,WAC9C,IAAMM,iBAAoBoD,KAAqBT,kBAE/C,OAAO1C,KACL,mBAAAC,kBAAiB,WACf,IAIIkE,EAJEC,EAA+B,CACnCC,UAAW,KACXC,IAAK,MAIP,IACEH,EAAiB,mBAAA9D,oBAAsBN,iBAAiBwE,YACxDJ,EAAiB,mBAAA9D,oBAAsB8D,EAAeK,UACtDJ,EAAcC,UAAY,mBAAAhE,oBAAsB8D,EAAeM,aAC/DL,EAAcE,IAAM,mBAAAjE,oBAAsB8D,EAAeO,K,CACzD,MAAOnE,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,iC,CAG3D,OAAO6D,CACT,IAEJ,G,6JCxCA,kDACA,0DACA,4CASa,QAAAV,aAAe,sBAAAjE,qBAAoB,SAAUkE,UACxD,IAAM5D,iBAAoBoD,KAAqBT,kBAE/C,OAAO1C,KACL,mBAAAC,kBAAiB,WACf,IAAI0E,EAEJ,IACEA,EAAgB,mBAAAtE,oBAAsBN,iBAAiB4D,S,CACvD,MAAOpD,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,8C,CAG3D,OAAOoE,CACT,IAEJ,G,4tDC7BA,YACA,QAYa,EAAAnB,2BAA6B,EAAA/D,qBAAoB,W,0FACpC,SAAO0D,KAAqBI,uB,OAEpD,MAAO,CAAP,EAFwB,SAEDqB,QACrB,SAACC,EAAaC,G,MAAY,cACrBD,KAAW,MACbC,GAAU,EAAAC,gBAAgBD,IAAY,KAAI,GAFnB,GAI1B,CAAC,I,8KCrBL,kDACA,0DACA,4CAQa,QAAAvB,oBAAsB,sBAAA9D,qBAAoB,WACrD,IAAMM,iBAAoBoD,KAAqBT,kBAE/C,OAAO1C,KACL,mBAAAC,kBAAiB,WACf,IACI+E,EADEC,EAAiB,GAGvB,IAKE,GAJAD,EAAQ,mBAAA3E,oBAAsBN,iBAAiBmF,mBAC/CF,EAAQ,mBAAA3E,oBAAsB2E,EAAMG,MACpCH,EAAQ,mBAAA3E,oBAAsB2E,EAAMI,OAExB,EACV,KAAOJ,EAAQ,GAAG,CAChB,IAAIK,OAAqB,EAEzBA,EAAwB,mBAAAhF,oBAAsBN,iBAAiBmF,mBAC/DG,EAAwB,mBAAAhF,oBAAsBgF,EAAsBF,KACpEE,EAAwB,mBAAAhF,oBAAsBgF,EAAsBC,KAAKN,GACzEK,EAAwB,mBAAAhF,oBAAsBgF,EAAsBE,IAEpEN,EAAKO,KAAKH,GAEVL,G,EAGJ,MAAOzE,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,8B,CAG3D,OAAO0E,CACT,IAEJ,G,o+CC7CA,YACA,SACA,SACA,QASa,EAAAhC,QAAU,EAAAxD,qBAAoB,SACzCgG,EACAC,G,kGAKa,O,sBAAA,GAAM,EAAAhC,aAAaR,KAAKC,KAAMuC,I,cAAzCC,EAAW,S,aAIX,M,WAFAnF,QAAQD,MAAM,GAER,IAAIE,MAAM,EAAAC,+BAA+B,IAAU,mD,OAG3D,MAAO,CAAP,EAAO,EAAAkF,eAAeH,EAAME,I,y/CC3B9B,YASa,EAAA7B,oBAAsB,EAAArE,qBAAoB,SAAgBsE,G,gGACpD,SAAOZ,KAAqBI,uB,OAU7C,OAVMsC,EAAW,SAUV,CAAP,EANIC,MAAMC,QAAQhC,GACPA,EAAKiC,OAAM,SAACC,GAAe,OAAAJ,EAASK,MAAK,SAACC,GAAY,OAAAA,IAAYF,CAAZ,GAA3B,IAE3BJ,EAASK,MAAK,SAACC,GAAY,OAAAA,IAAYpC,CAAZ,K,gZCjBxC,W,yJCAA,kDACA,0DACA,4CAQa,QAAAH,QAAU,sBAAAnE,qBAAoB,WACzC,IAAMM,iBAAoBoD,KAAqBT,kBAE/C,OAAO1C,KACL,mBAAAC,kBAAiB,WACf,IAAI2D,EAEJ,IACEA,EAAU,mBAAAvD,oBAAsBN,iBAAiBqG,UACjDxC,EAAU,mBAAAvD,oBAAsBuD,EAAQyC,M,CACxC,MAAO9F,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,kC,CAG3D,OAAO+F,QAAQ1C,EACjB,IAEJ,G,gkDC7BA,wCACA,8CACA,0DACA,4CACA,yCACA,uCASa,QAAA2C,wBAA0B,sBAAA9G,qBACrC,SAAOC,WAAoB8G,oBAAwC,kD,+FAExC,OADjB5G,YAAgBC,OAAM,YACL,GAAM,gBAAAC,cAAcJ,a,OAE7C,OAFMK,iBAAmB,UAElB,CAAP,EAAOC,KACL,mBAAAC,kBAAiB,WACf,IAAIC,EACAC,EACAC,EAEJ,IACEF,EAAa,mBAAAG,oBAAsB,mBAAAC,4BAA4B,wBAC/DH,EAAkB,mBAAAE,oBAAsB,mBAAAC,4BAA4B,4BACpEF,EAAc,mBAAAC,oBAAsB,mBAAAC,4BAA4B,oB,CAChE,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,mC,CAG3D,IAWII,EAUAC,EAeAC,EApCEC,EAAc,cAAAC,YAAY,IAAIC,MAEpC,IACQ,mBAAAX,oBAAsBH,EAAWe,aAAa,YAAAC,+CAC9C,mBAAAb,oBAAsBH,EAAWiB,cAAcL,E,CACrD,MAAOP,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,uC,CAK3D,IACEI,EAAgBS,OAAOC,KAAKmF,oBAAoBlF,SAAS,S,CACzD,MAAOf,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,+C,CAKlB,IACQ,mBAAAJ,oBAAsBD,EAAYmB,oBAAoBxB,kBAC5Da,EAAiB,mBAAAP,oBAAsBD,EAAYoB,yBAC7C,mBAAAnB,oBAAsBO,EAAea,IAAIvB,GACzC,mBAAAG,oBAAsBF,EAAgBuB,wBAAwB9B,YAAY+B,2BAC1E,mBAAAtB,oBAAsBF,EAAgByB,gBAAgBjB,GACtD,mBAAAN,oBAAsBD,EAAYyB,gBAAgBjC,YAAYkC,wC,CACpE,MAAOvB,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,yC,CAK3D,IACEM,EAAY,mBAAAR,oBAAsBF,EAAgBsG,UAAUrG,EAAaR,YAAYoC,oB,CACrF,MAAOzB,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,+B,CAG3D,OAAOM,CACT,M,ykDClFN,wCACA,8CACA,0DACA,4CACA,yCACA,uCASa,QAAA6F,wBAA0B,sBAAAjH,qBACrC,SAAOC,WAAoByC,aAAmB,kD,+FAEnB,OADjBvC,YAAgBC,OAAM,YACL,GAAM,gBAAAC,cAAcJ,a,OAE7C,OAFMK,iBAAmB,UAElB,CAAP,EAAOC,KACL,mBAAAC,kBAAiB,WACf,IAAIC,EACAkC,EACAjC,EACAC,EAEJ,IACEF,EAAa,mBAAAG,oBAAsB,mBAAAC,4BAA4B,wBAC/D8B,EAAkB,mBAAA/B,oBAAsB,mBAAAC,4BAA4B,uBACpEH,EAAkB,mBAAAE,oBAAsB,mBAAAC,4BAA4B,4BACpEF,EAAc,mBAAAC,oBAAsB,mBAAAC,4BAA4B,oB,CAChE,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,mC,CAG3D,IAWIK,EAyBAC,EApCEC,EAAc,cAAAC,YAAY,IAAIC,MAEpC,IACQ,mBAAAX,oBAAsBH,EAAWe,aAAa,YAAAC,+CAC9C,mBAAAb,oBAAsBH,EAAWiB,cAAcL,E,CACrD,MAAOP,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,uC,CAK3D,IACQ,mBAAAF,oBAAsBD,EAAYmB,oBAAoBxB,kBAC5Da,EAAiB,mBAAAP,oBAAsBD,EAAYoB,yBAC7C,mBAAAnB,oBAAsBO,EAAea,IAAIvB,GACzC,mBAAAG,oBAAsBD,EAAYyB,gBAAgBjC,YAAYkC,wC,CACpE,MAAOvB,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,mC,CAG3D,IAEI,mBAAAF,oBACA+B,EAAgBC,kBAAkBzC,YAAY0C,+CAE1C,mBAAAjC,oBAAsB+B,EAAgBG,aAAaJ,Y,CACzD,MAAO5B,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,4B,CAK3D,IACEM,EACE,mBAAAR,oBACAF,EAAgBwG,SAASvE,EAAiBhC,EAAaR,YAAYoC,oB,CACrE,MAAOzB,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,+B,CAG3D,OAAOM,CACT,M,4jDCtFN,kDACA,0DACA,4CAUa,QAAA+F,WAAa,sBAAAnH,qBACxB,SAAO+G,oBAAwC,kD,sDAG7C,OAFQ5G,YAAgBC,OAAM,YAEvB,CAAP,EAAOG,KACL,mBAAAC,kBAAiB,WACf,IACIU,EACAkG,EAFEzE,EAAkB,mBAAA/B,oBAAsB,mBAAAC,4BAA4B,uBAI1E,IACEK,EAAgBS,OAAOC,KAAKmF,oBAAoBlF,SAAS,S,CACzD,MAAOf,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,+C,CAGlB,IAEI,mBAAAJ,oBACA+B,EAAgBC,kBAAkBzC,YAAY0C,+CAE1C,mBAAAjC,oBAAsB+B,EAAgB0E,qBAAqBlH,YAAY+B,2BACvE,mBAAAtB,oBAAsB+B,EAAgB2E,KAAKpG,E,CACjD,MAAOJ,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,uC,CAG3D,IACEsG,EAAO,mBAAAxG,oBAAsB+B,EAAgBsC,K,CAC7C,MAAOnE,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,2B,CAG3D,OAAOsG,CACT,K,okDCpDN,kDACA,0DACA,4CACA,yCASa,QAAAG,mBAAqB,sBAAAvH,qBAChC,SAAOC,WAAoB8G,oBAA0B,kD,+FAE1B,OADjB5G,YAAgBC,OAAM,YACL,GAAM,gBAAAC,cAAcJ,a,OAE7C,OAFMK,iBAAmB,UAElB,CAAP,EAAOC,KACL,mBAAAC,kBAAiB,WACf,IAAIG,EACA6G,EA8BApG,EA5BJ,IACET,EAAc,mBAAAC,oBAAsB,mBAAAC,4BAA4B,qBAChE2G,EAAiB,mBAAA5G,oBAAsB,mBAAAC,4BAA4B,qB,CACnE,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,mC,CAG3D,IAIQ,mBAAAF,oBAAsBD,EAAYmB,oBAAoBxB,kBACtD,mBAAAM,oBAAsBD,EAAY8G,0BAAyB,GAC3D,mBAAA7G,oBAAsB4G,EAAerF,gBAAgB4E,oBAEzD,mBAAAnG,oBACA4G,EAAeE,sBAAsBvH,YAAYwH,uCAE7C,mBAAA/G,oBAAsB4G,EAAeI,wBAVnB,8EAWlB,mBAAAhH,oBAAsB4G,EAAeK,qBAVtB,+D,CAWrB,MAAO/G,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,yC,CAK3D,IACEM,EAAY,mBAAAR,oBAAsB4G,EAAeM,KAAKnH,E,CACtD,MAAOG,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,+B,CAG3D,OAAOM,CACT,M,w/CC5DN,IAII2G,EAJJ,QACA,SACA,SASa,EAAAC,mBAAqB,EAAAhI,qBAChC,SAAOiI,G,YAAA,IAAAA,IAAAA,GAAA,G,mGACL,IAAKA,GAAcF,EACjB,MAAO,CAAP,EAAOA,G,iBAMiB,O,sBAAA,GAAM,EAAAG,uBAAuBD,I,cAArDE,EAAwB,S,+BAExBpH,QAAQD,MAAM,GAEdqH,EAAwB,G,aAIwB,O,sBAAA,GAAM,EAAAC,4BAA4BH,I,OAElF,GAFM,EAA0C,SAE3CE,EAMH,IAHI,EAAgC,EAAyBE,OAAS,EAG/D,GACuBF,EAAsBG,MAChD,SAACC,GAAS,OAAAA,EAAKtI,aAAe,EAAyB,GAA+BA,UAA5E,KAIVkI,EAAsBpC,KAAK,EAAyB,IAGtD,SAdFoC,EAAwB,E,qCAkB1BpH,QAAQD,MAAM,G,aAGhB,IAAKqH,EACH,MAAM,IAAInH,MAAM,8BAKlB,MAAO,CAAP,EAFA+G,EAAoBI,G,sLCzDxB,2CACA,8CACA,8CACA,0DACA,4CAEIJ,kBASS,QAAAK,4BAA8B,sBAAApI,qBAAoB,SAACiI,iBAAA,IAAAA,aAAAA,YAAA,GACtD,IAAA9H,YAAgBC,OAAM,YAE9B,OAAK6H,YAAcF,kBACVA,kBAGFxH,KACL,mBAAAC,kBAAiB,WACf,IAAIgI,EAyBAC,EACAC,EAxBJ,IACEF,EAAa,mBAAA5H,oBAAsB,mBAAAC,4BAA4B,iB,CAC/D,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,yC,CAG3D,IAEI,mBAAAF,oBACA4H,EAAWG,KACTxI,YAAYyI,yBACZzI,YAAY0I,iBACZ1I,YAAY2I,mC,CAGhB,MAAOhI,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,gC,CAM3D,IACE2H,EAAoB,mBAAA7H,oBAAsB4H,EAAWO,aACrDL,EAAyB,mBAAA9H,oBAAsB6H,EAAkB9C,K,CACjE,MAAO7E,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,uC,CAG3D,IAAK4H,EACH,MAAM,IAAI1H,MAAM,8BAGlB,IAAMgI,EAAiC,GAEvC,IACE,KAAON,GAAwB,CAC7B,IAAMpI,EACJ,mBAAAM,oBAAsB6H,EAAkB5C,KAAK6C,GAE/CM,EAAgBjD,KACd,IAAI,cAAAxB,YACFjE,EACA,qBAAA2I,mBAAmB,mBAAArI,oBAAsBN,EAAiB4I,aAC1D,mBAAAtI,oBAAsBN,EAAiB6I,WACvC,mBAAAvI,oBAAsBN,EAAiB4I,YACvC,mBAAAtI,oBAAsBN,EAAiB8I,WACvC,mBAAAxI,oBAAsBN,EAAiB+I,cACvC,mBAAAzI,oBAAsBN,EAAiBgJ,cAI3CZ,G,EAEF,MAAO5H,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,gC,CAO3D,OAJA0H,EAAWe,QAEXxB,kBAAoBiB,CAGtB,IAEJ,G,wKCnGA,2CACA,8CACA,8CACA,0DACA,4CAEIjB,kBAQS,QAAAG,uBAAyB,sBAAAlI,qBAAoB,SAACiI,iBAAA,IAAAA,aAAAA,YAAA,GACjD,IAAA9H,YAAgBC,OAAM,YAE9B,OAAK6H,YAAcF,kBACVA,kBAGFxH,KACL,mBAAAC,kBAAiB,WACf,IAAIgI,EAyBAC,EACAC,EAxBJ,IACEF,EAAa,mBAAA5H,oBAAsB,mBAAAC,4BAA4B,iB,CAC/D,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,yC,CAG3D,IAEI,mBAAAF,oBACA4H,EAAWG,KACTxI,YAAYqJ,2BACZrJ,YAAY0I,iBACZ1I,YAAY2I,mC,CAGhB,MAAOhI,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,gC,CAM3D,IACE2H,EAAoB,mBAAA7H,oBAAsB4H,EAAWO,aACrDL,EAAyB,mBAAA9H,oBAAsB6H,EAAkB9C,K,CACjE,MAAO7E,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,uC,CAG3D,IAAK4H,EACH,MAAM,IAAI1H,MAAM,8BAGlB,IAAMgI,EAAiC,GAEvC,IACE,KAAON,GAAwB,CAC7B,IAAMpI,EACJ,mBAAAM,oBAAsB6H,EAAkB5C,KAAK6C,GAE/CM,EAAgBjD,KACd,IAAI,cAAAxB,YACFjE,EACA,qBAAA2I,mBAAmB,mBAAArI,oBAAsBN,EAAiB4I,aAC1D,mBAAAtI,oBAAsBN,EAAiB6I,WACvC,mBAAAvI,oBAAsBN,EAAiB4I,YACvC,mBAAAtI,oBAAsBN,EAAiB8I,WACvC,mBAAAxI,oBAAsBN,EAAiB+I,cACvC,mBAAAzI,oBAAsBN,EAAiBgJ,cAI3CZ,G,EAEF,MAAO5H,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,gC,CAO3D,OAJA0H,EAAWe,QAEXxB,kBAAoBiB,CAGtB,IAEJ,G,2+CCjGA,YACA,SACA,SASa,EAAAS,eAAiB,EAAAzJ,qBAC5B,SAAOC,EAAoByJ,G,YAAA,IAAAA,IAAAA,GAAA,G,6FACzB,IAAKzJ,EACH,MAAM,IAAIe,MAAM,uB,OAKd0I,EACsB,GAAM,EAAAC,mBAD5B,M,cACFxB,EAAwB,S,aAEA,SAAM,EAAAH,sB,OAA9BG,EAAwB,S,iBAK1B,KAFMyB,EAAgCzB,EAAsBG,MAAK,SAACC,GAAS,OAAAA,EAAKtI,aAAeA,CAApB,KAGzE,MAAM,IAAIe,MAAM,6BAA6Bf,EAAU,eAGzD,MAAO,CAAP,EAAO2J,G,q/CC/BX,IAMI7B,EANJ,QACA,QACA,QAWa,EAAA4B,gBAAkB,EAAA3J,qBAC7B,SAAOiI,G,YAAA,IAAAA,IAAAA,GAAA,G,mGACL,IAAKA,GAAcF,EACjB,MAAO,CAAP,EAAOA,G,iBAMiB,O,sBAAA,GAAM,EAAA8B,oBAAoB5B,I,cAAlDE,EAAwB,S,+BAExBpH,QAAQD,MAAM,GAEdqH,EAAwB,G,aAIqB,O,sBAAA,GAAM,EAAA2B,yBAAyB7B,I,OAE5E,GAFM,EAAuC,SAExCE,EAMH,IAHI,EAA6B,EAAsBE,OAAS,EAGzD,GACuBF,EAAsBG,MAChD,SAACC,GAAS,OAAAA,EAAKtI,aAAe,EAAsB,GAA4BA,UAAtE,KAIVkI,EAAsBpC,KAAK,EAAsB,IAGnD,SAdFoC,EAAwB,E,qCAkB1BpH,QAAQD,MAAM,G,aAGhB,IAAKqH,EACH,MAAM,IAAInH,MAAM,8BAKlB,MAAO,CAAP,EAFA+G,EAAoBI,G,kLC3DxB,2CACA,oCACA,8CACA,8CACA,0DACA,4CAEIJ,kBASS,QAAA+B,yBAA2B,sBAAA9J,qBAAoB,SAACiI,iBAAA,IAAAA,aAAAA,YAAA,GACnD,IAAA9H,YAAgBC,OAAM,YAE9B,OAAK6H,YAAcF,kBACVA,kBAGFxH,KACL,mBAAAC,kBAAiB,WACf,IAAIgI,EAyBAC,EACAC,EAxBJ,IACEF,EAAa,mBAAA5H,oBAAsB,mBAAAC,4BAA4B,iB,CAC/D,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,yC,CAG3D,IAEI,mBAAAF,oBACA4H,EAAWG,KACTxI,YAAYyI,yBACZzI,YAAY0I,iBACZ1I,YAAY2I,mC,CAGhB,MAAOhI,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,gC,CAM3D,KACE2H,EAAoB,mBAAA7H,oBAAsB4H,EAAWO,gBAGnDN,EACE,mBAAA7H,oBAAsB6H,EAAkBsB,KAAK5J,YAAY6J,qCAM3DvB,EACE,mBAAA7H,oBACA6H,EAAkBsB,KAChB5J,YAAY8J,2CACZ,YAAAC,8BAGJxB,EAAyB,mBAAA9H,oBAAsB6H,EAAkB9C,M,CAEnE,MAAO7E,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,uC,CAG3D,IAAK4H,EACH,MAAM,IAAI1H,MAAM,8BAGlB,IAAMgI,EAAiC,GAEvC,IACE,KAAON,GAAwB,CAC7B,IAAMpI,EACJ,mBAAAM,oBAAsB6H,EAAkB5C,KAAK6C,GAE/CM,EAAgBjD,KACd,IAAI,cAAAxB,YACFjE,EACA,qBAAA2I,mBAAmB,mBAAArI,oBAAsBN,EAAiB4I,aAC1D,mBAAAtI,oBAAsBN,EAAiB6I,WACvC,mBAAAvI,oBAAsBN,EAAiB4I,YACvC,mBAAAtI,oBAAsBN,EAAiB8I,WACvC,mBAAAxI,oBAAsBN,EAAiB+I,cACvC,mBAAAzI,oBAAsBN,EAAiBgJ,cAI3CZ,G,EAEF,MAAO5H,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,gC,CAO3D,OAJA0H,EAAWe,QAEXxB,kBAAoBiB,CAGtB,IAEJ,G,+JCrHA,kDACA,0DACA,4CAOa,QAAAmB,cAAgB,sBAAAnK,qBAAoB,WAC/C,IAAIoK,WAAa,KAEjB,OAAO7J,KACL,mBAAAC,kBAAiB,WACf,IAAI6J,EAEJ,IACEA,EAAa,mBAAAzJ,oBAAsB,mBAAAC,4BAA4B,kBAE/DuJ,WAAa,mBAAAxJ,oBAAsByJ,EAAWC,aAE9CF,WAAa,mBAAAxJ,oBAAsBwJ,WAAWvI,U,CAC9C,MAAOf,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,sC,CAG3D,OAAOsJ,UACT,IAEJ,G,kKC/BA,kDACA,4CACA,0DAOa,QAAAG,iBAAmB,sBAAAvK,qBAAoB,WAClD,IAAIwK,aAAe,KAEnB,OAAOjK,KACL,mBAAAC,kBAAiB,WACf,IAAI6J,EAEJ,IACEA,EAAa,mBAAAzJ,oBAAsB,mBAAAC,4BAA4B,mBAE/D2J,aAAe,mBAAA5J,oBAAsByJ,EAAWI,iBAG9CD,aAAe,mBAAA5J,oBAAsByJ,EAAWK,SAGlDF,aAAe,mBAAA5J,oBAAsB4J,aAAa3I,U,CAClD,MAAOf,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,4C,CAG3D,OAAO0J,YACT,IAEJ,G,+JCnCA,kDACA,0DACA,4CAYa,QAAAG,cAAgB,sBAAA3K,qBAC3B,WACE,IAAM4K,QAAU,CACdJ,aAAc,KACdJ,WAAY,MAGd,OAAO7J,KACL,mBAAAC,kBAAiB,WACf,IAAI6J,EAEJ,IACEA,EAAa,mBAAAzJ,oBAAsB,mBAAAC,4BAA4B,kBAE/D+J,QAAQJ,aAAe,mBAAA5J,oBAAsByJ,EAAWI,cACxDG,QAAQR,WAAa,mBAAAxJ,oBAAsByJ,EAAWC,aAEjDM,QAAQJ,eACXI,QAAQJ,aAAe,mBAAA5J,oBAAsByJ,EAAWK,SAG1DE,QAAQJ,aAAe,mBAAA5J,oBAAsBgK,QAAQJ,aAAa3I,WAClE+I,QAAQR,WAAa,mBAAAxJ,oBAAsBgK,QAAQR,WAAWvI,U,CAC9D,MAAOf,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,4C,CAG3D,OAAO8J,OACT,IAEJ,G,oKC9CF,2CACA,oCACA,8CACA,8CACA,0DACA,4CAEI7C,kBAQS,QAAA8B,oBAAsB,sBAAA7J,qBAAoB,SAACiI,iBAAA,IAAAA,aAAAA,YAAA,GAC9C,IAAA9H,YAAgBC,OAAM,YAE9B,OAAK6H,YAAcF,kBACVA,kBAGFxH,KACL,mBAAAC,kBAAiB,WACf,IAAIgI,EAyBAC,EACAC,EAxBJ,IACEF,EAAa,mBAAA5H,oBAAsB,mBAAAC,4BAA4B,iB,CAC/D,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,yC,CAG3D,IAEI,mBAAAF,oBACA4H,EAAWG,KACTxI,YAAYqJ,2BACZrJ,YAAY0I,iBACZ1I,YAAY2I,mC,CAGhB,MAAOhI,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,gC,CAM3D,KACE2H,EAAoB,mBAAA7H,oBAAsB4H,EAAWO,gBAGnDN,EACE,mBAAA7H,oBAAsB6H,EAAkBsB,KAAK5J,YAAY6J,qCAM3DvB,EACE,mBAAA7H,oBACA6H,EAAkBsB,KAChB5J,YAAY8J,2CACZ,YAAAC,8BAGJxB,EAAyB,mBAAA9H,oBAAsB6H,EAAkB9C,M,CAEnE,MAAO7E,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,uC,CAG3D,IAAK4H,EACH,MAAM,IAAI1H,MAAM,8BAGlB,IAAMgI,EAAiC,GAEvC,IACE,KAAON,GAAwB,CAC7B,IAAMpI,EACJ,mBAAAM,oBAAsB6H,EAAkB5C,KAAK6C,GAE/CM,EAAgBjD,KACd,IAAI,cAAAxB,YACFjE,EACA,qBAAA2I,mBAAmB,mBAAArI,oBAAsBN,EAAiB4I,aAC1D,mBAAAtI,oBAAsBN,EAAiB6I,WACvC,mBAAAvI,oBAAsBN,EAAiB4I,YACvC,mBAAAtI,oBAAsBN,EAAiB8I,WACvC,mBAAAxI,oBAAsBN,EAAiB+I,cACvC,mBAAAzI,oBAAsBN,EAAiBgJ,cAI3CZ,G,EAEF,MAAO5H,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,gC,CAO3D,OAJA0H,EAAWe,QAEXxB,kBAAoBiB,CAGtB,IAEJ,G,uYCpHA,YACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,W,++CCjBA,YACA,SACA,SACA,SACA,SAOa,EAAA6B,mBAAqB,EAAA7K,qBAChC,qD,0DAIiB,O,sBAAA,GAAM,EAAA2K,iB,cAAnBG,EAAa,S,aAIb,M,WAFA/J,QAAQD,MAAM,GAER,IAAIE,MAAM,EAAAC,+BAA+B,IAAU,0C,OAG3D,IAAK,EAAA8J,yBAAyBD,EAAWN,cACvC,MAAM,IAAIxJ,MAAM,oCAGlB,IAAK,EAAAgK,uBAAuBF,EAAWV,YACrC,MAAM,IAAIpJ,MAAM,gCAGlB,MAAO,CAAP,GAAO,G,w3JC/BE,EAAAiK,0BAA4B,EAC5B,EAAAC,sDAAwD,EACxD,EAAAC,+CAAiD,EACjD,EAAA1J,8CAAgD,EAChD,EAAA2J,mCAAqC,EACrC,EAAAC,mBAAqB,EACrB,EAAAC,mCAAqC,EACrC,EAAAC,4BAA8B,EAC9B,EAAArJ,0BAA4B,EAC5B,EAAAsJ,mBAAqB,EACrB,EAAAC,uBAAyB,EACzB,EAAAC,iBAAmB,EACnB,EAAAC,6BAA+B,GAC/B,EAAA/C,yBAA2B,IAC3B,EAAAgD,4BAA8B,EAC9B,EAAAC,gCAAkC,EAClC,EAAAC,8BAAgC,EAChC,EAAAC,2BAA6B,EAC7B,EAAAC,qBAAuB,EACvB,EAAAC,uBAAyB,EACzB,EAAAC,uBAAyB,EACzB,EAAAC,mCAAqC,EACrC,EAAAC,kCAAoC,EACpC,EAAAC,kCAAoC,EACpC,EAAAC,4CAA8C,GAC9C,EAAAC,kCAAoC,EACpC,EAAAC,kCAAoC,EACpC,EAAAC,qCAAuC,IACvC,EAAA5J,8CAAgD,IAChD,EAAA6J,mDAAqD,IACrD,EAAAC,8CAAgD,IAChD,EAAAC,mDAAqD,IACrD,EAAAC,0CAA4C,IAC5C,EAAAC,4BAA8B,EAC9B,EAAAC,4BAA8B,EAC9B,EAAAC,4BAA8B,EAC9B,EAAAC,6BAA+B,EAC/B,EAAAC,gCAAkC,EAClC,EAAAC,gCAAkC,EAClC,EAAAC,gCAAkC,EAClC,EAAAC,6BAA+B,EAC/B,EAAA9K,oBAAsB,MACtB,EAAA+K,0BAA4B,EAC5B,EAAAC,4BAA8B,UAC9B,EAAA5F,sCAAwC,EACxC,EAAA6F,uCAAyC,EACzC,EAAAC,qCAAuC,EACvC,EAAAC,oCAAsC,EACtC,EAAAC,qDAAuD,EACvD,EAAAC,8CAAgD,EAChD,EAAAC,6CAA+C,EAC/C,EAAAC,4CAA8C,EAC9C,EAAAC,4CAA8C,EAC9C,EAAA9D,2CAA6C,EAC7C,EAAA+D,mCAAqC,EACrC,EAAAC,qCAAuC,EACvC,EAAAC,mCAAqC,GACrC,EAAAC,mCAAqC,EACrC,EAAAC,mCAAqC,EACrC,EAAAC,sCAAwC,EACxC,EAAAC,uCAAyC,EACzC,EAAAC,sCAAwC,GACxC,EAAAC,4CAA8C,GAC9C,EAAAxE,oCAAsC,EACtC,EAAAyE,8CAAgD,EAChD,EAAAC,4CAA8C,EAC9C,EAAArM,wCAA0C,EAC1C,EAAAsM,qCAAuC,EACvC,EAAAC,sCAAwC,EACxC,EAAApF,2BAA6B,EAC7B,EAAAqF,oCAAsC,IACtC,EAAAC,wBAA0B,EAC1B,EAAAC,kBAAoB,EACpB,EAAAC,4BAA8B,EAC9B,EAAAC,4BAA8B,EAC9B,EAAAC,qBAAuB,EACvB,EAAArG,iBAAmB,KACnB,EAAAsG,gCAAkC,GAClC,EAAAC,kBAAoB,EACpB,EAAAC,4BAA8B,GAC9B,EAAAC,wBAA0B,GAC1B,EAAAC,iCAAmC,GACnC,EAAAC,2BAA6B,GAC7B,EAAAC,sCAAwC,GACxC,EAAAC,yBAA2B,EAC3B,EAAAC,0BAA4B,GAC5B,EAAAC,2BAA6B,GAC7B,EAAAC,mBAAqB,GACrB,EAAAC,4BAA8B,EAC9B,EAAAC,0BAA4B,GAC5B,EAAAC,mCAAqC,GACrC,EAAAC,8BAAgC,GAChC,EAAAC,0BAA4B,MAC5B,EAAAC,6BAA+B,GAC/B,EAAAC,6BAA+B,GAC/B,EAAAC,yBAA2B,EAC3B,EAAAC,6BAA+B,EAC/B,EAAAC,0CAA4C,GAC5C,EAAAC,6CAA+C,GAC/C,EAAAC,2BAA6B,EAC7B,EAAAC,8BAAgC,GAChC,EAAAC,+BAAiC,EACjC,EAAAzG,6BAA+B,EAC/B,EAAA0G,wBAA0B,EAC1B,EAAAC,6BAA+B,MAC/B,EAAAC,yBAA2B,MAC3B,EAAAC,wBAA0B,EAC1B,EAAAC,oCAAsC,GACtC,EAAAC,+BAAiC,GACjC,EAAAC,oCAAsC,EACtC,EAAAC,wBAA0B,GAC1B,EAAAC,uBAAyB,GACzB,EAAAC,yBAA2B,EAC3B,EAAAC,8BAAgC,GAChC,EAAAC,+BAAiC,GACjC,EAAAC,qCAAuC,GACvC,EAAAC,2CAA6C,GAC7C,EAAAC,uBAAyB,EACzB,EAAAC,8BAAgC,EAChC,EAAAC,iCAAmC,IACnC,EAAAC,oCAAsC,IACtC,EAAA/I,mCAAqC,EACrC,EAAAgJ,6BAA+B,EAC/B,EAAAC,8BAAgC,EAChC,EAAAC,WAAa,EACb,EAAAC,gCAAkC,GAClC,EAAAC,+BAAiC,EACjC,EAAAC,yBAA2B,EAC3B,EAAAC,oBAAsB,EACtB,EAAAC,mBAAqB,EACrB,EAAAC,gBAAkB,EAClB,EAAAC,gBAAkB,EAClB,EAAAC,eAAiB,EACjB,EAAAC,iCAAmC,OACnC,EAAAC,4BAA8B,OAC9B,EAAAC,iCAAmC,OACnC,EAAAC,gBAAkB,IAClB,EAAAC,6BAA+B,EAC/B,EAAAC,yBAA2B,EAC3B,EAAAC,wBAA0B,EAC1B,EAAAC,6BAA+B,GAC/B,EAAAC,uBAAyB,MACzB,EAAAC,iBAAmB,EACnB,EAAAC,wBAA0B,GAC1B,EAAAC,gCAAkC,GAClC,EAAAC,mBAAqB,qEACrB,EAAAC,2BAA6B,iEAC7B,EAAAC,mBAAqB,uDACrB,EAAAC,2BAA6B,kD,sYCpJ1C,YACA,YACA,YACA,U,8GCDa,EAAA3P,yBAA+C,CAC1D,CAAE4P,cAAe,CAAC,KAAM,oBAAqBC,YAAa,2BAC1D,CAAED,cAAe,CAAC,KAAM,cAAeC,YAAa,wBACpD,CAAED,cAAe,CAAC,IAAK,eAAgBC,YAAa,UACpD,CAAED,cAAe,CAAC,IAAK,KAAM,uBAAwBC,YAAa,UAClE,CAAED,cAAe,CAAC,SAAU,iBAAkBC,YAAa,SAC3D,CAAED,cAAe,CAAC,IAAK,oBAAqBC,YAAa,YACzD,CAAED,cAAe,CAAC,KAAM,0BAA2BC,YAAa,OAChE,CAAED,cAAe,CAAC,IAAK,SAAUC,YAAa,aAC9C,CAAED,cAAe,CAAC,OAAQ,QAASC,YAAa,QAChD,CAAED,cAAe,CAAC,SAAU,UAAWC,YAAa,UACpD,CAAED,cAAe,CAAC,QAAS,SAAUC,YAAa,SAClD,CAAED,cAAe,CAAC,MAAO,QAAS,SAAU,MAAO,wBAAyBC,YAAa,OACzF,CAAED,cAAe,CAAC,QAAS,SAAU,SAAU,QAAS,mBAAoBC,YAAa,mBACzF,CAAED,cAAe,CAAC,IAAK,QAAS,eAAgB,cAAeC,YAAa,SAC5E,CAAED,cAAe,CAAC,IAAK,gBAAiBC,YAAa,S,qGCjB1C,EAAApO,gBAAkB,CAC7B,mBAAoB,kCACpB,mBAAoB,mEACpB,oBAAqB,MACrB,gBAAiB,kBACjB,gBAAiB,OACjB,gBAAiB,SACjB,gBAAiB,QACjB,oBAAqB,UACrB,oBAAqB,SACrB,2BAA4B,gEAC5B,oBAAqB,8BACrB,sBAAuB,+EACvB,uBACE,4NACF,uBACE,yJACF,uBAAwB,oEACxB,uBACE,sGACF,uBAAwB,yDACxB,sBAAuB,6BACvB,sBAAuB,wEACvB,sBAAuB,sCACvB,sBAAuB,gDACvB,sBAAuB,uDACvB,sBAAuB,+EACvB,sBAAuB,wEACvB,sBACE,uMACF,uBACE,2IACF,yBACE,kKACF,uBAAwB,8FACxB,uBACE,oKACF,oBACE,0jBACF,oBACE,uUACF,cACE,uHACF,kBAAmB,gGACnB,oBAAqB,mCACrB,oBAAqB,kCACrB,oBAAqB,iDACrB,oBAAqB,6BACrB,oBAAqB,4BACrB,oBAAqB,4BACrB,oBAAqB,wCACrB,uBAAwB,0BACxB,4BAA6B,+EAC7B,uBAAwB,uFACxB,oBAAqB,+BACrB,oBAAqB,+BACrB,qBAAsB,gC,8GCtDX,EAAA3B,0BAAgD,CAC3D,CAAE8P,cAAe,CAAC,KAAM,oBAAqBC,YAAa,2BAC1D,CAAED,cAAe,CAAC,KAAM,cAAeC,YAAa,YACpD,CAAED,cAAe,CAAC,KAAM,WAAYC,YAAa,WACjD,CAAED,cAAe,CAAC,IAAK,YAAa,MAAOC,YAAa,gBACxD,CAAED,cAAe,CAAC,IAAK,eAAgBC,YAAa,UACpD,CAAED,cAAe,CAAC,IAAK,KAAM,uBAAwBC,YAAa,UAClE,CAAED,cAAe,CAAC,SAAU,iBAAkBC,YAAa,SAC3D,CAAED,cAAe,CAAC,IAAK,oBAAqBC,YAAa,YACzD,CAAED,cAAe,CAAC,KAAM,0BAA2BC,YAAa,uBAChE,CAAED,cAAe,CAAC,IAAK,SAAUC,YAAa,aAC9C,CAAED,cAAe,CAAC,OAAQ,QAASC,YAAa,QAChD,CAAED,cAAe,CAAC,SAAU,UAAWC,YAAa,UACpD,CAAED,cAAe,CAAC,QAAS,SAAUC,YAAa,SAClD,CAAED,cAAe,CAAC,MAAO,QAAS,SAAU,MAAO,wBAAyBC,YAAa,OACzF,CAAED,cAAe,CAAC,QAAS,SAAU,SAAU,QAAS,mBAAoBC,YAAa,mBACzF,CAAED,cAAe,CAAC,IAAK,QAAS,eAAgB,cAAeC,YAAa,SAC5E,CAAED,cAAe,CAAC,IAAK,gBAAiBC,YAAa,S,uYCnBvD,W,++CCAA,aAIIC,GAAgB,EAChBC,GAAiB,EAER,EAAA5T,oBAAsB,SACjC6T,GAEA,IAAMC,EAAajN,QAAQzG,OAAO2T,SAElC,OAAO,W,IAAgB,sD,kGACrB,IAAKH,EAAgB,CACnB,IACE,EAAQ,I,CACR,MAAO9S,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MACR,EAAAC,+BAA+BH,IAAU,0D,CAI7C8S,GAAiB,C,CAKnB,GAFQzT,EAAgBC,OAAM,aAEzB0T,EACH,MAAM,IAAI9S,MAAM,kCAGlB,IAAKb,EACH,MAAM,IAAIa,MAAM,iDAGb2S,IACHxT,EAAY6T,cAAc7T,EAAYoS,iBAEtCoB,GAAgB,G,iBAIhB,O,sBAAA,GAAMxT,G,cAAN,S,aAIA,M,WAFAY,QAAQD,MAAM,GAER,IAAIE,MACR,EAAAC,+BAA+B,IAAU,6D,OAItC,SAAM4S,EAAGI,MAAMvQ,KAAMwQ,I,OAA5B,MAAO,CAAP,EAAO,U,OAEX,C,wGCvDa,EAAAjL,mBAAqB,SAAC7F,GAAmB,eACR,QADQ,EACZ,QADY,EACpDA,EAAY+Q,MAAM,8BAAsB,eAAG,UAAC,eAAGC,QAAQ,QAAS,IAAG,C,oHCDxD,EAAAnT,+BAAiC,SAACH,G,MACzCuT,GAAmC,QAAlB,EAAAjU,OAAOD,mBAAW,eAAEmU,eAAgBlU,OAAOD,YAAYmU,aAAaxT,GAEzF,KAAKuT,aAAc,EAAdA,EAAgBE,SAAS,CAC5B,IAAKzT,EAAMyT,QACT,OAAO,KAGTF,EAAiBvT,C,CAKnB,IAF+B,WAAW0T,KAAKH,EAAeE,SAG5D,OAAO,KAGT,IAAME,EAAeJ,EAAeE,QAAQJ,MAAM,2DAElD,OAAOM,EAAeA,EAAa,IAAMA,EAAa,GAAK,iBAAmBA,EAAa,GAAK,IAAM,IAAM,IAC9G,C,0JCnBa,EAAA7T,oBAAsB,CAAC,EACvB,EAAAC,4BAA8B,W,IAAC,sDAAiB,OAAG,CAAH,EAMhD,EAAAL,iBAAmB,SAACkU,G,MACvBvU,EAAgBC,OAAM,YACxBuU,EAAqB9N,QAAQ1G,EAAYyU,mBACzCC,EAAeH,EAASxR,MAAQ,YAChC4R,EAAkBC,OAAOL,GACzBM,GAAuE,QAAnD,EAAAF,EAAgBX,MAAM,qCAA6B,eAAG,KAAM,GAChFc,EAAeH,EAAgBV,QAAQ,oBAAqB,MAC9Dc,EAA0BH,OAC5B,IAAKJ,EAXA,IAAIQ,SAAS,GAAI,0DAAjB,GAWiDA,UAAUH,EAAmBC,IAiBrF,OATAC,GALAA,EAA0BA,EAAwBd,QAChD,oDACA,4BAA2BO,EAAqB,QAAU,IAAE,OAGZP,QAChD,0CACAO,EAAqB,SAAW,IAG7BA,IACHO,EAA0BA,EAAwBd,QAAQ,2BAA4B,YAGjF,CACLO,EAAqB,2BAA2BO,EAAuB,KAAO,IAAIA,EAAuB,OACzG,4BAA4BL,EAAY,OACxCO,KAAK,GACT,C,0+CCpCA,YACA,SACA,SAQa,EAAA/U,cAAgB,EAAAL,qBAC3B,SAAOC,GAAkB,0C,0DAIF,O,sBAAA,GAAM,EAAAoV,kBAAkBpV,I,qBAI3CK,EAAmB,S,aAAA,O,WAFnBS,QAAQuU,IAAI,GAEO,GAAM,EAAAC,uBAAuBtV,I,OAGlD,MAAO,CAAP,EAAOK,G,iLCtBX,kDACA,0DACA,4CAQa,QAAAiV,uBAAyB,sBAAAvV,qBACpC,SAACC,YACS,IAAAE,YAAgBC,OAAM,YAE9B,OAAOG,KACL,mBAAAC,kBAAiB,WACf,IAAIgI,EA6BAgN,EACAC,EAkBAnV,EA9CJ,IACEkI,EAAa,mBAAA5H,oBAAsB,mBAAAC,4BAA4B,iB,CAC/D,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,yC,CAG3D,IAAK0H,EACH,MAAM,IAAIxH,MAAM,uDAGlB,IAEI,mBAAAJ,oBACA4H,EAAWG,KACTxI,YAAYyI,yBACZzI,YAAY0I,iBACZ1I,YAAY2I,mC,CAGhB,MAAOhI,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,gD,CAM3D,IACE0U,EAAuB,mBAAA5U,oBAAsB4H,EAAWO,aACxD0M,EAAoB,mBAAA7U,oBAAsB4U,EAAqB7P,K,CAC/D,MAAO7E,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MACR,iCAAAC,+BAA+BH,IAC7B,oE,CAIN,IAAK2U,EACH,MAAM,IAAIzU,MAAM,0DAKlB,IAME,GALAwU,EACE,mBAAA5U,oBAAsB4U,EAAqBzL,KAAK5J,YAAYiO,mCAAoCnO,cAEpF,mBAAAW,oBAAsB4U,EAAqB7P,OAGvD,MAAM,IAAI3E,MAAM,6BAA6Bf,WAAU,2CAGzDK,EAAmB,mBAAAM,oBAAsB4U,EAAqB3P,KAAK,E,CACnE,MAAO/E,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MACR,iCAAAC,+BAA+BH,IAAU,gE,CAM7C,OAFA0H,EAAWe,QAEJjJ,CACT,IAEJ,G,mKC1FF,kDACA,0DACA,4CAQa,QAAA+U,kBAAoB,sBAAArV,qBAC/B,SAACC,YACS,IAAAE,YAAgBC,OAAM,YAE9B,OAAOG,KACL,mBAAAC,kBAAiB,WACf,IAAIgI,EA6BAgN,EACAC,EAiBAnV,EA7CJ,IACEkI,EAAa,mBAAA5H,oBAAsB,mBAAAC,4BAA4B,iB,CAC/D,MAAOC,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,yC,CAG3D,IAAK0H,EACH,MAAM,IAAIxH,MAAM,uDAGlB,IAEI,mBAAAJ,oBACA4H,EAAWG,KACTxI,YAAYqJ,2BACZrJ,YAAY0I,iBACZ1I,YAAY2I,mC,CAGhB,MAAOhI,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MAAM,iCAAAC,+BAA+BH,IAAU,6C,CAM3D,IACE0U,EAAuB,mBAAA5U,oBAAsB4H,EAAWO,aACxD0M,EAAoB,mBAAA7U,oBAAsB4U,EAAqB7P,K,CAC/D,MAAO7E,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MACR,iCAAAC,+BAA+BH,IAAU,iE,CAI7C,IAAK2U,EACH,MAAM,IAAIzU,MAAM,uDAKlB,IAME,GALAwU,EACE,mBAAA5U,oBAAsB4U,EAAqBzL,KAAK5J,YAAYiO,mCAAoCnO,cAEpF,mBAAAW,oBAAsB4U,EAAqB7P,OAGvD,MAAM,IAAI3E,MAAM,6BAA6Bf,WAAU,wCAGzDK,EAAmB,mBAAAM,oBAAsB4U,EAAqB3P,KAAK,E,CACnE,MAAO/E,GAGP,MAFAC,QAAQD,MAAMA,GAER,IAAIE,MACR,iCAAAC,+BAA+BH,IAAU,6D,CAM7C,OAFA0H,EAAWe,QAEJjJ,CACT,IAEJ,G,iGCpFW,EAAAgB,YAAc,SAACoU,GAAkB,OAACA,EAAQC,WAAaD,EAAQC,aAAeD,CAA7C,C,4GCJjC,EAAA1K,uBAAyB,SAAC4K,G,MAGrC,OAFAA,EAA2C,QAApC,EAAGA,EAAQzB,MAAM,2BAAmB,eAAG,GAEvC0B,OAAOD,IALkB,CAMlC,C,8GCNa,EAAA7K,yBAA2B,SAAC6K,GACvC,IAAMzB,EAAQyB,EAAQzB,MAAM,uBAE5B,IAAKA,EACH,OAAO,EAGA,IAAA2B,EAAuB3B,EAAK,GAAd4B,GAAS5B,EAAK,GAALA,EAAK,IAErC,QAAI0B,OAAOC,GAAS,GAIE,IAAlBD,OAAOC,IAAgBD,OAAOE,GAAS,MAK7C,C,sGClBA,YAgBa,EAAA5P,eAAiB,SAAC6P,EAAsCC,GACnE,IAAMC,EAA8BD,EAAQ9B,MAAM,wDAElD,GAAI+B,EACF,OAAOA,EAAkBC,KAAI,SAACC,G,UACtBC,EAAgBD,EAAME,OAAOnC,MAAM,qCACrCoC,EAAQF,aAAa,EAAbA,EAAgB,GAEtBG,EAAyD,QAA9C,EAAoB,QAApB,EAAGH,aAAa,EAAbA,EAAgB,UAAC,eAAGjC,QAAQ,UAAW,aAAI,eAAGA,QAAQ,QAAS,KAC7EqC,EAAqBF,aAAK,EAALA,EAAOpC,MAAM,cAClCuC,EAAgBD,aAAkB,EAAlBA,EAAqB,GACvCE,GAAe,EAGnB,GAAID,EAAe,CACjB,IAAME,EAAiB,EAAAtR,gBAAgBoR,GAEnCE,IACFL,EAAQK,EACRD,GAAe,E,CAInB,IAAME,EAAiG,QAAnF,EAAGb,EAAiB1N,MAAK,SAACwO,GAAQ,OAAAA,EAAIrD,cAAcnL,MAAK,SAACpF,GAAS,OAAAA,IAASqT,CAAT,GAAjC,WAAiD,eACnG7C,YAOJ,OALImD,IACFN,EAAQM,EACRF,GAAe,GAGV,CAAEH,YAAW,EAAED,MAAK,EAAEI,aAAY,EAC3C,GAEJ,C,YClDE,WAEA,IAAGvW,OAAOD,YAAV,CAGA,IAAI4W,aACAC,gBAAkB,EAClBC,cACAC,eACAC,QAAU,EACVC,UAAY,EACZC,SAAW,EACXC,SAAW,EACXxD,aAAe1T,OAAO2T,QACtBwD,mCAAoC,EACpCC,0BAA2B,EAC3BrX,YAIFA,YAFC2T,WAEa,IAAIC,SAAQ,SAAS0D,EAASC,GAE1CR,eAAiBO,EACjBR,cAAgBS,CAClB,IAGc,CAAC,EAmBjB,IAAIC,aAAeC,gBA+WfC,sCAAwC,CAC1CC,eAAiB,EACjBC,UAAY,CAAC,EAGbC,kBAAoB,SAA2BC,EAAYC,GACzD,IAAIxD,EAAWmD,sCAAsCE,UAAUE,GAC1DvD,GACLA,EAAST,MAAM,KAAKiE,EACtB,EAMAzU,KAAO,SAAc0U,EAAcjE,EAAMQ,GACvC,IAAI0D,EAAc1D,GAAgC,mBAAbA,EACjCuD,EAAaG,EAAcP,sCAAsCC,iBAAmB,EAEpFM,IACFP,sCAAsCE,UAAUE,GAAcvD,GAEhE,IAAI2D,EAASC,SAASC,cAAc,UAChCC,EAAU,IAAInS,MAAM,gBACxB,IACEgS,EAAOI,aAAa,MAAO,gBAAkBN,EAAe,IAAMF,EAAY,IAAMS,mBAAmBC,KAAKC,UAAU1E,EAAMsE,IAC9H,CAAE,MAAMK,GACNC,MAAMD,EACR,CACAP,SAASS,gBAAgBC,YAAYX,GACrCA,EAAOY,WAAWC,YAAYb,GAC9BA,EAAS,IACX,GA0QFlY,YAAYgZ,gBAAkB,QAC9BhZ,YAAYiZ,YAAcA,YAC1BjZ,YAAYkZ,IAAMC,iBAClBnZ,YAAY6T,cAAgBA,cAC5B7T,YAAYmU,aAAeA,aAC3BnU,YAAYoZ,oBAAsBA,oBAE/BC,6BAEDrZ,YAAYyU,kBAAoBA,kBAChCzU,YAAYsZ,qBAAuBA,sBAGjCD,6BAEFrZ,YAAYuZ,aAAeA,cAG1BtZ,OAAOuZ,yBAERC,WAAWC,mBAAoBzZ,OAAOuZ,0BAItCC,WAAWC,mBAAoB,KAGjCC,qBAEA3Z,YAAY4Z,kBAAoB5Z,YAAYoS,gBAC5CnS,OAAOD,YAAcA,YACrB6Z,sBAnuBQ,CA2BR,SAASpC,gBACP,IAA6BqC,EAAzBC,EAAIC,UAAUC,UAAgBC,EAAGH,EAAG/F,MAAM,2EAA6E,GAC3H,MAAG,WAAWK,KAAK6F,EAAE,IAEZ,CAAEnX,KAAK,KAAM0S,SADpBqE,EAAO,kBAAkBK,KAAKJ,IAAO,IACJ,IAAM,IAE7B,WAATG,EAAE,IAEQ,OADXJ,EAAMC,EAAG/F,MAAM,iCAEN,CAAEjR,KAAM+W,EAAI,GAAG7F,QAAQ,MAAO,SAAUwB,QAASqE,EAAI,KAEhEI,EAAGA,EAAE,GAAI,CAACA,EAAE,GAAIA,EAAE,IAAK,CAACF,UAAUI,QAASJ,UAAUK,WAAY,MACtB,OAAtCP,EAAMC,EAAG/F,MAAM,qBAClBkG,EAAEI,OAAO,EAAG,EAAGR,EAAI,IACd,CAAC/W,KAAKmX,EAAE,GAAGzE,QAAQyE,EAAE,IAC9B,CAGA,SAASK,kBAAkBC,EAAOC,GAEhC,GAAuB,oBAAd,QAET,OAAID,GAASxa,YAAY4Z,mBACnBY,IAAUxa,YAAYmS,iBACxBvR,QAAQuU,IAAI,YAAasF,GACvBD,IAAUxa,YAAYqS,gBACxBzR,QAAQ8Z,KAAK,WAAYD,QACvBD,IAAUxa,YAAYoS,iBACxBxR,QAAQD,MAAM,YAAa8Z,UAN/B,CASF,CAEA,SAAS5G,cAAc2G,GACdA,IAAUxa,YAAYmS,iBAC1BqI,IAAUxa,YAAYqS,gBACtBmI,IAAUxa,YAAYoS,iBAIzBpS,YAAY4Z,kBAAoBY,EAC5Bxa,YAAY4Z,oBAAsB5Z,YAAYmS,iBAChDoI,kBAAkBva,YAAYqS,eAAgB,yCAC5CrS,YAAY4Z,oBAAsB5Z,YAAYqS,gBAChDkI,kBAAkBva,YAAYqS,eAAgB,wCAC5CrS,YAAY4Z,oBAAsB5Z,YAAYoS,iBAChDmI,kBAAkBva,YAAYqS,eAAgB,yCAC7CgH,6BAEGrZ,YAAY4Z,oBAAsB5Z,YAAYmS,iBAChDlS,OAAO0a,YAAY,sBAAuB,KACxC3a,YAAY4Z,oBAAsB5Z,YAAYqS,gBAChDpS,OAAO0a,YAAY,qBAAsB,KACvC3a,YAAY4Z,oBAAsB5Z,YAAYoS,iBAChDnS,OAAO0a,YAAY,sBAAuB,OAjB5CJ,kBAAkBva,YAAYoS,gBAAiB,4CAA8CoI,EAmBjG,CAEA,SAASb,qBAEP3Z,YAAY+O,qBAAuB,EACnC/O,YAAY8O,4BAA8B,EAC1C9O,YAAYqJ,2BAA6B,EACzCrJ,YAAYwR,8BAAgC,EAC5CxR,YAAY4a,sBAAwB,EACpC5a,YAAYkN,6BAA+B,EAC3ClN,YAAYyL,4BAA8B,EAC1CzL,YAAY6a,+BAAiC,EAC7C7a,YAAYyI,yBAA2B,IAEvCzI,YAAY0I,iBAAmB,KAE/B1I,YAAY2I,mCAAqC,EAEjD3I,YAAYkO,sCAAwC,EAEpDlO,YAAYwH,sCAAwC,EACpDxH,YAAYqN,uCAAyC,EACrDrN,YAAYsN,qCAAuC,EAEnDtN,YAAY8a,uBAAyB,GACrC9a,YAAY+a,mBAAqB,GACjC/a,YAAYgb,iBAAmB,GAC/Bhb,YAAYib,6BAA+B,KAC3Cjb,YAAYkb,sBAAwB,EAEpClb,YAAYmT,2BAA6B,iEACzCnT,YAAYqT,2BAA6B,mDACzCrT,YAAYkT,mBAAqB,qEACjClT,YAAYoT,mBAAqB,uDAEjCpT,YAAYmb,0BAA4B,+DACxCnb,YAAYob,0BAA4B,6EACxCpb,YAAYqb,0BAA4B,+DACxCrb,YAAYsb,0BAA4B,6EAExCtb,YAAYsL,uBAAyB,EACrCtL,YAAYqL,mBAAqB,EACjCrL,YAAYuL,iBAAmB,EAC/BvL,YAAYwL,6BAA+B,GAC3CxL,YAAYoC,oBAAsB,MAElCpC,YAAY8L,uBAAyB,EACrC9L,YAAY+L,uBAAyB,EACrC/L,YAAY6L,qBAAuB,EAEnC7L,YAAYsO,8CAAgD,EAC5DtO,YAAYkC,wCAA0C,EACtDlC,YAAYuO,4CAA8C,EAE1DvO,YAAYyO,sCAAwC,EACpDzO,YAAYwO,qCAAuC,EAEnDxO,YAAYiO,mCAAqC,EACjDjO,YAAYkO,sCAAwC,EACpDlO,YAAY8N,qCAAuC,EACnD9N,YAAYgO,mCAAqC,EACjDhO,YAAYmO,uCAAyC,EACrDnO,YAAY6N,mCAAqC,EACjD7N,YAAY8J,2CAA6C,EACzD9J,YAAY2N,4CAA8C,EAC1D3N,YAAY4N,4CAA8C,EAC1D5N,YAAY6J,oCAAsC,EAClD7J,YAAYqO,4CAA8C,GAC1DrO,YAAYoO,sCAAwC,GACpDpO,YAAY+N,mCAAqC,GAEjD/N,YAAY0O,oCAAsC,IAElD1O,YAAY2P,4BAA8B,EAE1C3P,YAAYiP,kBAAoB,EAChCjP,YAAYgP,gCAAkC,GAE9ChP,YAAY2O,wBAA0B,EACtC3O,YAAY6O,4BAA8B,EAC1C7O,YAAY4O,kBAAoB,EAEhC5O,YAAY0N,6CAA+C,EAC3D1N,YAAYyN,8CAAgD,EAC5DzN,YAAYwN,qDAAuD,EACnExN,YAAYsB,8CAAgD,EAC5DtB,YAAYgL,+CAAiD,EAC7DhL,YAAY+K,sDAAwD,EACpE/K,YAAYub,8CAAgD,IAC5Dvb,YAAY8K,0BAA4B,EAExC9K,YAAYmN,0BAA4B,EACxCnN,YAAY+B,0BAA4B,EAExC/B,YAAY4L,2BAA6B,EACzC5L,YAAY2L,8BAAgC,EAC5C3L,YAAY0L,gCAAkC,EAE9C1L,YAAYoM,kCAAoC,EAChDpM,YAAYqM,kCAAoC,EAChDrM,YAAYkM,kCAAoC,EAChDlM,YAAYgM,mCAAqC,EACjDhM,YAAYiM,kCAAoC,EAChDjM,YAAYmM,4CAA8C,GAE1DnM,YAAY8M,6BAA+B,EAC3C9M,YAAY2M,4BAA8B,EAC1C3M,YAAY4M,4BAA8B,EAC1C5M,YAAY6M,4BAA8B,EAC1C7M,YAAY+M,gCAAkC,EAC9C/M,YAAYgN,gCAAkC,EAC9ChN,YAAYiN,gCAAkC,EAC9CjN,YAAYsM,qCAAuC,IACnDtM,YAAY0C,8CAAgD,IAC5D1C,YAAYwM,8CAAgD,IAC5DxM,YAAY0M,0CAA4C,IACxD1M,YAAYuM,mDAAqD,IACjEvM,YAAYyM,mDAAqD,IAEjEzM,YAAYmS,gBAAkB,EAC9BnS,YAAYqS,eAAiB,EAC7BrS,YAAYoS,gBAAkB,EAE9BpS,YAAYkL,mBAAqB,EACjClL,YAAYiL,mCAAqC,EACjDjL,YAAYmL,mCAAqC,EACjDnL,YAAYoL,4BAA8B,EAC1CpL,YAAYoN,4BAA8B,UAC1CpN,YAAYwb,qCAAuC,UACnDxb,YAAYyb,2BAA6B,WAEzCzb,YAAY0b,wBAA0B,EACtC1b,YAAY2b,8BAAgC,EAC5C3b,YAAY4b,2BAA6B,EACzC5b,YAAY6b,wBAA0B,EAEtC7b,YAAY8b,gCAAkC,EAC9C9b,YAAY+b,yBAA2B,EACvC/b,YAAYgc,sBAAwB,EACpChc,YAAYic,qBAAuB,EAEnCjc,YAAYkc,qBAAuB,EACnClc,YAAYmc,sBAAwB,EACpCnc,YAAYoc,qBAAuB,EAEnCpc,YAAYqc,oBAAsB,EAClCrc,YAAYsc,mBAAqB,EACjCtc,YAAYuc,iBAAmB,EAC/Bvc,YAAYwc,iBAAmB,EAE/Bxc,YAAYyc,8BAAgC,EAC5Czc,YAAY0c,eAAiB,EAC7B1c,YAAY2c,aAAe,EAE3B3c,YAAY4c,uBAAyB,EACrC5c,YAAY6c,oBAAsB,EAClC7c,YAAY8c,uBAAyB,EACrC9c,YAAY+c,gCAAkC,EAC9C/c,YAAYgd,8BAAgC,GAC5Chd,YAAYid,sCAAwC,GACpDjd,YAAYkd,qBAAuB,GACrC,CAEA,SAASjE,YAAYkE,GACnB,SAASC,EAAUC,EAAMC,GACvB,IAAIC,EACJ,IACEA,EAASC,EAAUH,GAAMC,EAC3B,CAAE,MAAOG,GACP,OAAO7J,QAAQ2D,OAAOkG,EACxB,CACA,OAAIF,EAAOG,KACFH,EAAOI,MAEP/J,QAAQ0D,QAAQiG,EAAOI,OAAOC,KAAKC,EAAaC,EAE3D,CACA,IAAIN,EAAYL,EAAcjX,MAAM6X,UAAUC,MAAM1a,KAAK2a,UAAW,IAChEJ,EAAcT,EAAUc,KAAKd,EAAW,QACxCU,EAAaV,EAAUc,KAAKd,EAAW,SAC3C,OAAOS,GACT,CAEA,SAASM,OAGP,MAA8B,OAAtB3G,aAAazU,MAAuC,SAAtByU,aAAazU,IACrD,CAEA,SAASqb,QACP,OAAQpE,UAAUC,UAAUjG,MAAM,UAChCgG,UAAUC,UAAUjG,MAAM,UAC1BgG,UAAUC,UAAUjG,MAAM,UAC9B,CAEA,SAASqF,2BAGP,OAAG8E,SAGuB,QAAtB3G,aAAazU,OAGS,cAAtByU,aAAazU,MACfoU,UAAW,GACJ,GAGgB,UAAtBK,aAAazU,MACdiU,SAAU,EACPQ,aAAa/B,SAAW,IAOJ,YAAtB+B,aAAazU,MACdkU,WAAY,EACTO,aAAa/B,SAAW,IAOJ,WAAtB+B,aAAazU,KACXyU,aAAa/B,SAAW,GAQJ,WAAtB+B,aAAazU,MACdmU,UAAW,EACRM,aAAa/B,SAAW,SAF7B,GAQF,CAGA,SAAS8D,aAAaxW,GACpB,GAAIqb,QAGF,OAAOC,2CAA2C,eAAgB,CAACtb,IAErE,GAAIob,OAAQ,CAEV,GAAIpb,EAAKiR,MAAM,mBACb,IAIE,OADgCmE,SAASmG,eAAe,mBACvB/E,aAAaxW,EAChD,CACA,MAAO2V,GACL,IAEE,OADyBP,SAASmG,eAAe,0BACvB/E,aAAaxW,EACzC,CACA,MAAO0a,GACL,KAAM,0HACR,CACF,CAGF,IAEE,OADyBtF,SAASmG,eAAe,mBACvB/E,aAAaxW,EACzC,CACA,MAAO2V,GAEL,OAAO,IAAI6F,cAAcxb,EAC3B,CACF,CAEA,OAAO6T,aAAa2C,aAAaxW,EACnC,CAEA,SAASyb,mBAAmBC,GAK1B,OAJIA,EAAS,IACXA,EAAS,WAAaA,EAAS,GAG1BA,EAAO/c,SAAS,IAAIgd,aAC7B,CAEA,SAASC,wBAAwBjG,GAC/B,IAAI+E,EAAM/E,EAAEtE,QAMZ,OALKqJ,EAEM/E,EAAE+F,SACXhB,GAAO,OAASe,mBAAmB9F,EAAE+F,QAAU,KAF/ChB,EAAM/E,EAID+E,CACT,CAEA,SAAStJ,aAAayK,GACpB,GAAGvF,4BAA8B8E,QAAUC,QACzC,OAAOO,wBAAwBC,GAGjC,IACE,OAAOhI,aAAazC,cACtB,CAAE,MAAMuE,GACN,OAAOiG,wBAAwBC,EACjC,CACF,CAGA,SAAStF,uBACP,OAAOuF,qBAAqBvF,sBAC9B,CAGA,SAAS7E,kBAAkB1R,GACzB,OAAO6T,aAAanC,kBAAkB1R,EACxC,CAsCA,SAASsb,2CAA2CrG,aAAc8G,OAChE,IAAIC,OACAC,GAUJ,GATAtH,sCAAsCpU,KAAK0U,aAAc8G,OAAO,SAASpG,EAAGuG,UAC1ED,GAAKtG,EACL,IAAIwG,IAAI,UAAUD,SAClB7e,KAAK8e,KACmB,iBAAb,SACTH,OAASA,OAAO9K,QAAQ,SAAU,MAClC8K,OAASA,OAAO9K,QAAQ,SAAU,MAEtC,IACG+K,GACD,MAAMA,GACR,OAAOD,MACT,CAEA,SAASI,wCAEP,IAAKlf,OAAOmf,mCACZ,CACE,IAAIC,EAAMlH,SAASC,cAAc,OACjCiH,EAAIC,GAAK,kBACTD,EAAIE,MAAQ,uHACZF,EAAIG,UAAY,8nBAKhBrH,SAASsH,qBAAqB,QAAQ,GAAG5G,YAAYwG,GACrDlH,SAASmG,eAAe,6BAA6BoB,iBAAiB,SAAQ,WAE5EC,oBAAoB,qBACpBxH,SAASmG,eAAe,mBAAmBiB,MAAMK,WAAa,QAChE,IAEAP,EAAIK,iBAAiB,SAAQ,WAE3BC,oBAAoB,qBACpBxH,SAASmG,eAAe,mBAAmBiB,MAAMK,WAAa,QAChE,IACAP,EAAIE,MAAMK,WAAW,SACvB,CACF,CACA,SAASC,mCACH5f,OAAO6f,uCACT7f,OAAO6f,wCACTzI,0BAA2B,EAC3BwH,qBAAqBkB,oBAAoBC,cAAeL,oBAC1D,CAEA,SAASM,qBACF9B,QAAWlH,WAAcC,UACxBjX,OAAO6f,uCACT7f,OAAO6f,wCAEX7f,OAAO0a,YAAY,2BAA4B,KAC/C1a,OAAOyf,iBAAiB,WAAW,SAAUQ,GAC3C,GAA2B,iBAAhBA,EAAU,MAAmBA,EAAMC,KAAKnM,MAAM,wBAErDoD,kCAAJ,CAEA,GAAGH,WAAaC,SAChB,CAEE,IAAIkJ,EAAMF,EAAMC,KAAKE,UAAUH,EAAMC,KAAKG,QAAQ,QAAU,GAC5D,IAAKF,EAAIpM,MAAM,2DACToM,EAAIpM,MAAM,yEAId,OAFAuG,kBAAkBva,YAAYoS,gBAAiB,YAAegO,EAAM,iEACpET,sBAGF,IAAIY,EAAUpI,SAASC,cAAc,UACrCmI,EAAQjI,aAAa,OAAQ,mBAC7BiI,EAAQjI,aAAa,MAAO8H,GAC5BG,EAAQC,QAAUb,oBAClBY,EAAQE,OAASZ,iCACjB1H,SAASsH,qBAAqB,QAAQ,GAAG5G,YAAY0H,EACvD,MACE1B,qBAAqBkB,oBAAoBC,cAAeL,qBAE1DvI,mCAAoC,CArB5B,CAsBV,IAAG,EACL,CAGA,SAASsJ,iBAQH,IAQIH,EAdLtJ,WAAaC,SAEd+I,qBAGIjJ,SAAWG,WACToJ,EAAUpI,SAASC,cAAc,WAC7BE,aAAa,OAAQ,mBAC7BiI,EAAQjI,aAAa,MAAO,6EAC5BiI,EAAQC,QAAUb,oBAClBY,EAAQE,OAASR,mBACjB9H,SAASsH,qBAAqB,QAAQ,GAAG5G,YAAY0H,MAGjDA,EAAUpI,SAASC,cAAc,WAC7BE,aAAa,OAAQ,mBAC7BiI,EAAQjI,aAAa,MAAO,6EAC5BiI,EAAQC,QAAUb,oBAClBY,EAAQE,OAASR,mBACjB9H,SAASsH,qBAAqB,QAAQ,GAAG5G,YAAY0H,GAG3D,CAGA,SAASI,oBAEP,IAAIC,EAAOzI,SAASC,cAAc,UAMlC,GALAwI,EAAKtI,aAAa,KAAM,sBACxBsI,EAAKtI,aAAa,OAAQ,uBAC1BsI,EAAKtI,aAAa,QAAS,sBAC3BH,SAASsH,qBAAqB,QAAQ,GAAG5G,YAAY+H,GACrDhK,aAAeuB,SAASmG,eAAe,sBACpCH,OACH,CACE,IAAI0C,EAAQ1I,SAASC,cAAc,UACnCyI,EAAMvI,aAAa,KAAM,0BACzBuI,EAAMvI,aAAa,UAAW,8CAC9BuI,EAAMvI,aAAa,QAAS,sBAC5BH,SAASsH,qBAAqB,QAAQ,GAAG5G,YAAYgI,GACrD,IAAIC,EAAQ3I,SAASC,cAAc,UACnC0I,EAAMxI,aAAa,KAAM,mBACzBwI,EAAMxI,aAAa,UAAW,8CAC9BwI,EAAMxI,aAAa,QAAS,sBAC5BH,SAASsH,qBAAqB,QAAQ,GAAG5G,YAAYiI,EACvD,CACF,CAGA,SAASd,gBAEPnJ,gBAAkB,EACflD,WAEDoD,iBAEA9W,OAAO0a,YAAY,qBAAsB,IAE7C,CAGA,SAASgF,oBAAoBlF,QAER,IAAV,GAAyC,iBAAV,IACtCA,EAAM,qBACR5D,gBAAkB,EACflD,WAEDmD,cAAc2D,GAEdxa,OAAO0a,YAAY,yBAA0B,IAEjD,CAGA,SAASjB,qBAEgB,IAApB7C,kBAEAI,YAEII,0BACH8H,yCAEJtI,gBAAkB,EACflD,WAEDmD,cAAc,2CAEd7W,OAAO0a,YAAY,yBAA0B,KAGjD,CAGA,SAASoG,cAAczD,GAErB,OAAO,IAAI1J,QAAQ0J,EACrB,CAEA,SAAS0D,qBACP,IACezH,aAAa,kBAC1ByG,eACF,CACA,MAAOvC,GACLtF,SAASmG,eAAe,sBAAsBiB,MAAM0B,QAAU,OAG9D,IAAIC,EAAWlH,UAAUmH,UAAU,uBAI/BxB,oBAHAuB,EACWA,EAASE,cAEA,2CAGA,8BAIF,oBAExB,CACF,CAGA,SAASvH,uBAEP,IAAIwH,EAAMlJ,SAASC,cAAc,OACjCiJ,EAAI7B,UAAY,6CAC8C,IAAzC6B,EAAI5B,qBAAqB,KAAKvX,OAEjDyX,oBAAoB,uDAInBtG,2BAEDqH,iBACQ/M,WAUmB,aAAxBwE,SAASmJ,YACVX,oBACAK,sBAEA/gB,OAAOyf,iBAAiB,QAAQ,SAAUQ,GACxCS,oBACAK,oBACF,IAAG,GAhBL/gB,OAAOyf,iBAAiB,WAAW,SAAUQ,GACtB,6BAAfA,EAAMC,OAEVQ,oBACAK,qBACF,IACA,EAaN,CAEA,SAAS7H,iBAAiBoI,GAExB3K,aAAe2K,CACjB,CAEA,SAASnI,sBAEP,aAAgD,IAAnCpZ,YAA6B,oBAAsBA,YAAYwhB,kBAG9E,CAmCF,EAvuBC,E,GCCGC,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBC,GAE5B,IAAIC,EAAeH,yBAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAariB,QAGrB,IAAIC,EAASiiB,yBAAyBE,GAAY,CAGjDpiB,QAAS,CAAC,GAOX,OAHAuiB,oBAAoBH,GAAUre,KAAK9D,EAAOD,QAASC,EAAQA,EAAOD,QAASmiB,qBAGpEliB,EAAOD,OACf,CCnBA,IAAIwiB,oBAAsBL,oBAAoB,K","sources":["webpack://cryptoPro/webpack/universalModuleDefinition","webpack://cryptoPro/./api/addAttachedSignature.ts","webpack://cryptoPro/./api/addDetachedSignature.ts","webpack://cryptoPro/./api/certificate/certificate.ts","webpack://cryptoPro/./api/certificate/exportBase64.ts","webpack://cryptoPro/./api/certificate/getAlgorithm.ts","webpack://cryptoPro/./api/certificate/getCadesProp.ts","webpack://cryptoPro/./api/certificate/getDecodedExtendedKeyUsage.ts","webpack://cryptoPro/./api/certificate/getExtendedKeyUsage.ts","webpack://cryptoPro/./api/certificate/getInfo.ts","webpack://cryptoPro/./api/certificate/hasExtendedKeyUsage.ts","webpack://cryptoPro/./api/certificate/index.ts","webpack://cryptoPro/./api/certificate/isValid.ts","webpack://cryptoPro/./api/createAttachedSignature.ts","webpack://cryptoPro/./api/createDetachedSignature.ts","webpack://cryptoPro/./api/createHash.ts","webpack://cryptoPro/./api/createXMLSignature.ts","webpack://cryptoPro/./api/getAllCertificates.ts","webpack://cryptoPro/./api/getAllContainerCertificates.ts","webpack://cryptoPro/./api/getAllUserCertificates.ts","webpack://cryptoPro/./api/getCertificate.ts","webpack://cryptoPro/./api/getCertificates.ts","webpack://cryptoPro/./api/getContainerCertificates.ts","webpack://cryptoPro/./api/getCspVersion.ts","webpack://cryptoPro/./api/getPluginVersion.ts","webpack://cryptoPro/./api/getSystemInfo.ts","webpack://cryptoPro/./api/getUserCertificates.ts","webpack://cryptoPro/./api/index.ts","webpack://cryptoPro/./api/isValidSystemSetup.ts","webpack://cryptoPro/./constants/cades-constants.ts","webpack://cryptoPro/./constants/index.ts","webpack://cryptoPro/./constants/issuer-tags-translations.ts","webpack://cryptoPro/./constants/oids-dictionary.ts","webpack://cryptoPro/./constants/subject-tags-translations.ts","webpack://cryptoPro/./crypto-pro-js.ts","webpack://cryptoPro/./helpers/_afterPluginsLoaded.ts","webpack://cryptoPro/./helpers/_extractCommonName.ts","webpack://cryptoPro/./helpers/_extractMeaningfulErrorMessage.ts","webpack://cryptoPro/./helpers/_generateCadesFn.ts","webpack://cryptoPro/./helpers/_getCadesCert.ts","webpack://cryptoPro/./helpers/_getCadesContainerCert.ts","webpack://cryptoPro/./helpers/_getCadesUserCert.ts","webpack://cryptoPro/./helpers/_getDateObj.ts","webpack://cryptoPro/./helpers/_isSupportedCSPVersion.ts","webpack://cryptoPro/./helpers/_isSupportedCadesVersion.ts","webpack://cryptoPro/./helpers/_parseCertInfo.ts","webpack://cryptoPro/./vendor/cadesplugin_api.js","webpack://cryptoPro/webpack/bootstrap","webpack://cryptoPro/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"cryptoPro\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cryptoPro\"] = factory();\n\telse\n\t\troot[\"cryptoPro\"] = factory();\n})(self, () => {\nreturn ","import { CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\nimport { _getDateObj } from '../helpers/_getDateObj';\r\n\r\n/**\r\n * Добавляет присоединенную подпись к подписанному сообщению по отпечатку сертификата\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param signedMessage - подписанное сообщение\r\n * @returns подпись в формате PKCS#7\r\n */\r\nexport const addAttachedSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, signedMessage: string | ArrayBuffer): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function addAttachedSignature(): string {\r\n let cadesAttrs;\r\n let cadesSignedData;\r\n let cadesSigner;\r\n\r\n try {\r\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\r\n cadesSignedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CadesSignedData');\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n const currentTime = _getDateObj(new Date());\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');\r\n }\r\n\r\n let messageBase64;\r\n\r\n try {\r\n messageBase64 = Buffer.from(signedMessage).toString('base64');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error('Ошибка при преобразовании сообщения в Base64');\r\n }\r\n\r\n let cadesAuthAttrs;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n cadesAuthAttrs = __cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;\r\n void (__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));\r\n void (__cadesAsyncToken__ + cadesSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\r\n void (__cadesAsyncToken__ + cadesSignedData.propset_Content(messageBase64));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSignedData.VerifyCades(signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE));\r\n signature = __cadesAsyncToken__ + cadesSignedData.CoSignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\nimport { _getDateObj } from '../helpers/_getDateObj';\r\n\r\n/**\r\n * Добавляет отсоединенную подпись хеша к подписанному сообщению по отпечатку сертификата\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param signedMessage - подписанное сообщение\r\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\r\n * @returns подпись в формате PKCS#7\r\n */\r\nexport const addDetachedSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, signedMessage: string | ArrayBuffer, messageHash: string): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function addDetachedSignature(): string {\r\n let cadesAttrs;\r\n let cadesHashedData;\r\n let cadesSignedData;\r\n let cadesSigner;\r\n\r\n try {\r\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\r\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\r\n cadesSignedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CadesSignedData');\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n const currentTime = _getDateObj(new Date());\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');\r\n }\r\n\r\n let cadesAuthAttrs;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n cadesAuthAttrs = __cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;\r\n void (__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\r\n );\r\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке хеша');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesSignedData.VerifyHash(cadesHashedData, signedMessage, cadesplugin.CADESCOM_PKCS7_TYPE)\r\n );\r\n signature =\r\n __cadesAsyncToken__ +\r\n cadesSignedData.CoSignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { ISSUER_TAGS_TRANSLATIONS, SUBJECT_TAGS_TRANSLATIONS } from '../../constants';\r\nimport { TagTranslation } from '../../helpers/_parseCertInfo';\r\nimport { exportBase64 } from './exportBase64';\r\nimport { getAlgorithm } from './getAlgorithm';\r\nimport { getCadesProp } from './getCadesProp';\r\nimport { getDecodedExtendedKeyUsage, ExtendedKeysTranslations } from './getDecodedExtendedKeyUsage';\r\nimport { getExtendedKeyUsage } from './getExtendedKeyUsage';\r\nimport { getInfo } from './getInfo';\r\nimport { hasExtendedKeyUsage } from './hasExtendedKeyUsage';\r\nimport { isValid } from './isValid';\r\n\r\nexport type CadesCertificate = any;\r\n\r\nexport class Certificate {\r\n constructor(\r\n public _cadesCertificate: CadesCertificate,\r\n public name: string,\r\n public issuerName: string,\r\n public subjectName: string,\r\n public thumbprint: string,\r\n public validFrom: string,\r\n public validTo: string,\r\n ) {}\r\n\r\n public getOwnerInfo(): Promise<TagTranslation[]> {\r\n return getInfo.call(this, SUBJECT_TAGS_TRANSLATIONS, 'SubjectName');\r\n }\r\n\r\n public getIssuerInfo(): Promise<TagTranslation[]> {\r\n return getInfo.call(this, ISSUER_TAGS_TRANSLATIONS, 'IssuerName');\r\n }\r\n\r\n public getExtendedKeyUsage(): Promise<string[]> {\r\n return getExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getDecodedExtendedKeyUsage(): Promise<ExtendedKeysTranslations> {\r\n return getDecodedExtendedKeyUsage.call(this);\r\n }\r\n\r\n public getAlgorithm(): Promise<string> {\r\n return getAlgorithm.call(this);\r\n }\r\n\r\n public getCadesProp(propName): Promise<any> {\r\n return getCadesProp.call(this, propName);\r\n }\r\n\r\n public isValid(): Promise<boolean> {\r\n return isValid.call(this);\r\n }\r\n\r\n public exportBase64(): Promise<string> {\r\n return exportBase64.call(this);\r\n }\r\n\r\n public hasExtendedKeyUsage(oids): Promise<boolean> {\r\n return hasExtendedKeyUsage.call(this, oids);\r\n }\r\n}\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Экспортирует сертификат в формате base64\r\n *\r\n * @returns сертификат в формате base64\r\n */\r\nexport const exportBase64 = _afterPluginsLoaded(function (): string {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function exportBase64(): string {\r\n let base64: string;\r\n\r\n try {\r\n base64 = __cadesAsyncToken__ + cadesCertificate.Export(0);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при экспорте сертификата');\r\n }\r\n\r\n return base64;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\ninterface AlgorithmInfo {\r\n algorithm: string;\r\n oid: string;\r\n}\r\n\r\n/**\r\n * Возвращает информацию об алгоритме сертификата\r\n *\r\n * @returns информацию об алгоритме и его OID'е\r\n */\r\nexport const getAlgorithm = _afterPluginsLoaded(function (): AlgorithmInfo {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function getAlgorithm(): AlgorithmInfo {\r\n const algorithmInfo: AlgorithmInfo = {\r\n algorithm: null,\r\n oid: null,\r\n };\r\n let cadesPublicKey;\r\n\r\n try {\r\n cadesPublicKey = __cadesAsyncToken__ + cadesCertificate.PublicKey();\r\n cadesPublicKey = __cadesAsyncToken__ + cadesPublicKey.Algorithm;\r\n algorithmInfo.algorithm = __cadesAsyncToken__ + cadesPublicKey.FriendlyName;\r\n algorithmInfo.oid = __cadesAsyncToken__ + cadesPublicKey.Value;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении алгоритма');\r\n }\r\n\r\n return algorithmInfo;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Возвращает указанное внутренее свойство у сертификата в формате Cades\r\n *\r\n * @param propName = наименование свойства\r\n * @returns значение запрошенного свойства\r\n */\r\nexport const getCadesProp = _afterPluginsLoaded(function (propName: string): any {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function getCadesProp() {\r\n let propertyValue;\r\n\r\n try {\r\n propertyValue = __cadesAsyncToken__ + cadesCertificate[propName];\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при обращении к свойству сертификата');\r\n }\r\n\r\n return propertyValue;\r\n }),\r\n );\r\n});\r\n","import { OIDS_DICTIONARY } from '../../constants';\r\nimport { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { Certificate } from './certificate';\r\n\r\nexport interface ExtendedKeysTranslations {\r\n [key: string]: string | null;\r\n}\r\n\r\n/**\r\n * Возвращает расшифрованные ОИД'ы сертификата\r\n *\r\n * @returns словарь расшифрованных ОИД'ов\r\n */\r\nexport const getDecodedExtendedKeyUsage = _afterPluginsLoaded(async function (): Promise<ExtendedKeysTranslations> {\r\n const certificateOids = await (this as Certificate).getExtendedKeyUsage();\r\n\r\n return certificateOids.reduce(\r\n (decodedOids, oidCode) => ({\r\n ...decodedOids,\r\n [oidCode]: OIDS_DICTIONARY[oidCode] || null,\r\n }),\r\n {},\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Возвращает ОИД'ы сертификата\r\n *\r\n * @returns список ОИД'ов\r\n */\r\nexport const getExtendedKeyUsage = _afterPluginsLoaded(function (): string[] {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function getExtendedKeyUsage(): string[] {\r\n const OIDS: string[] = [];\r\n let count: any;\r\n\r\n try {\r\n count = __cadesAsyncToken__ + cadesCertificate.ExtendedKeyUsage();\r\n count = __cadesAsyncToken__ + count.EKUs;\r\n count = __cadesAsyncToken__ + count.Count;\r\n\r\n if (count > 0) {\r\n while (count > 0) {\r\n let cadesExtendedKeyUsage;\r\n\r\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesCertificate.ExtendedKeyUsage();\r\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesExtendedKeyUsage.EKUs;\r\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesExtendedKeyUsage.Item(count);\r\n cadesExtendedKeyUsage = __cadesAsyncToken__ + cadesExtendedKeyUsage.OID;\r\n\r\n OIDS.push(cadesExtendedKeyUsage);\r\n\r\n count--;\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || \"Ошибка при получении ОИД'ов\");\r\n }\r\n\r\n return OIDS;\r\n }),\r\n );\r\n});\r\n","import { TagsTranslations } from '../../constants/tags-translations';\r\nimport { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { _parseCertInfo, TagTranslation } from '../../helpers/_parseCertInfo';\r\nimport { getCadesProp } from './getCadesProp';\r\n\r\n/**\r\n * Возвращает расшифрованную информацию о сертификате из указанного свойства по тэгам\r\n *\r\n * @param tags = словарь\r\n * @param entitiesPath = путь к разбираемой сущности\r\n * @returns расшифрованная информация по отдельным тэгам\r\n */\r\nexport const getInfo = _afterPluginsLoaded(async function (\r\n tags: TagsTranslations[],\r\n entitiesPath: string,\r\n): Promise<TagTranslation[]> {\r\n let entities: string;\r\n\r\n try {\r\n entities = await getCadesProp.call(this, entitiesPath);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при извлечении информации из сертификата');\r\n }\r\n\r\n return _parseCertInfo(tags, entities);\r\n});\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Проверяет наличие ОИД'а (ОИД'ов) у сертификата\r\n *\r\n * @param oids - ОИД'ы для проверки\r\n * @returns флаг наличия ОИД'ов у сертификата\r\n */\r\nexport const hasExtendedKeyUsage = _afterPluginsLoaded(async function (oids: string | string[]): Promise<boolean> {\r\n const certOids = await (this as Certificate).getExtendedKeyUsage();\r\n\r\n let result: boolean;\r\n\r\n if (Array.isArray(oids)) {\r\n result = oids.every((oidToCheck) => certOids.some((certOid) => certOid === oidToCheck));\r\n } else {\r\n result = certOids.some((certOid) => certOid === oids);\r\n }\r\n\r\n return result;\r\n});\r\n","export * from './certificate';\r\n","import { _afterPluginsLoaded } from '../../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, _generateCadesFn } from '../../helpers/_generateCadesFn';\r\nimport { Certificate } from './certificate';\r\n\r\n/**\r\n * Проверяет действительность сертификата\r\n *\r\n * @returns флаг валидности\r\n */\r\nexport const isValid = _afterPluginsLoaded(function (): boolean {\r\n const cadesCertificate = (this as Certificate)._cadesCertificate;\r\n\r\n return eval(\r\n _generateCadesFn(function isValid() {\r\n let isValid;\r\n\r\n try {\r\n isValid = __cadesAsyncToken__ + cadesCertificate.IsValid();\r\n isValid = __cadesAsyncToken__ + isValid.Result;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при проверке сертификата');\r\n }\r\n\r\n return Boolean(isValid);\r\n }),\r\n );\r\n});\r\n","import { CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\nimport { _getDateObj } from '../helpers/_getDateObj';\r\n\r\n/**\r\n * Создает присоединенную подпись сообщения по отпечатку сертификата\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param message - подписываемое сообщение\r\n * @returns подпись в формате PKCS#7\r\n */\r\nexport const createAttachedSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, unencryptedMessage: string | ArrayBuffer): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function createAttachedSignature(): string {\r\n let cadesAttrs;\r\n let cadesSignedData;\r\n let cadesSigner;\r\n\r\n try {\r\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\r\n cadesSignedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CadesSignedData');\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n const currentTime = _getDateObj(new Date());\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');\r\n }\r\n\r\n let messageBase64;\r\n\r\n try {\r\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error('Ошибка при преобразовании сообщения в Base64');\r\n }\r\n\r\n let cadesAuthAttrs;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n cadesAuthAttrs = __cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;\r\n void (__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));\r\n void (__cadesAsyncToken__ + cadesSignedData.propset_ContentEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\r\n void (__cadesAsyncToken__ + cadesSignedData.propset_Content(messageBase64));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n signature = __cadesAsyncToken__ + cadesSignedData.SignCades(cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\nimport { _getDateObj } from '../helpers/_getDateObj';\r\n\r\n/**\r\n * Создает отсоединенную подпись хеша по отпечатку сертификата\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param messageHash - хеш подписываемого сообщения, сгенерированный по ГОСТ Р 34.11-2012 256 бит\r\n * @returns подпись в формате PKCS#7\r\n */\r\nexport const createDetachedSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, messageHash: string): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function createDetachedSignature(): string {\r\n let cadesAttrs;\r\n let cadesHashedData;\r\n let cadesSignedData;\r\n let cadesSigner;\r\n\r\n try {\r\n cadesAttrs = __cadesAsyncToken__ + __createCadesPluginObject__('CADESCOM.CPAttribute');\r\n cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\r\n cadesSignedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CadesSignedData');\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n const currentTime = _getDateObj(new Date());\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Name(CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME));\r\n void (__cadesAsyncToken__ + cadesAttrs.propset_Value(currentTime));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке времени подписи');\r\n }\r\n\r\n let cadesAuthAttrs;\r\n\r\n try {\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n cadesAuthAttrs = __cadesAsyncToken__ + cadesSigner.AuthenticatedAttributes2;\r\n void (__cadesAsyncToken__ + cadesAuthAttrs.Add(cadesAttrs));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Options(cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке сертификата');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\r\n );\r\n void (__cadesAsyncToken__ + cadesHashedData.SetHashValue(messageHash));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при установке хеша');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n signature =\r\n __cadesAsyncToken__ +\r\n cadesSignedData.SignHash(cadesHashedData, cadesSigner, cadesplugin.CADESCOM_PKCS7_TYPE);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\n/**\r\n * Создает хеш сообщения по ГОСТ Р 34.11-2012 256 бит\r\n * https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D1%80%D0%B8%D0%B1%D0%BE%D0%B3_(%D1%85%D0%B5%D1%88-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F)\r\n *\r\n * @param unencryptedMessage - сообщение для хеширования\r\n *\r\n * @returns хеш\r\n */\r\nexport const createHash = _afterPluginsLoaded(\r\n async (unencryptedMessage: string | ArrayBuffer): Promise<string> => {\r\n const { cadesplugin } = window;\r\n\r\n return eval(\r\n _generateCadesFn(function createHash(): string {\r\n const cadesHashedData = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.HashedData');\r\n let messageBase64;\r\n let hash;\r\n\r\n try {\r\n messageBase64 = Buffer.from(unencryptedMessage).toString('base64');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error('Ошибка при преобразовании сообщения в Base64');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesHashedData.propset_Algorithm(cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256)\r\n );\r\n void (__cadesAsyncToken__ + cadesHashedData.propset_DataEncoding(cadesplugin.CADESCOM_BASE64_TO_BINARY));\r\n void (__cadesAsyncToken__ + cadesHashedData.Hash(messageBase64));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации хэширования');\r\n }\r\n\r\n try {\r\n hash = __cadesAsyncToken__ + cadesHashedData.Value;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при создании хэша');\r\n }\r\n\r\n return hash;\r\n }),\r\n );\r\n },\r\n);\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _getCadesCert } from '../helpers/_getCadesCert';\r\n\r\n/**\r\n * Создает XML подпись для документа в формате XML\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param unencryptedMessage - подписываемое сообщение в формате XML\r\n * @returns подпись\r\n */\r\nexport const createXMLSignature = _afterPluginsLoaded(\r\n async (thumbprint: string, unencryptedMessage: string): Promise<string> => {\r\n const { cadesplugin } = window;\r\n const cadesCertificate = await _getCadesCert(thumbprint);\r\n\r\n return eval(\r\n _generateCadesFn(function createXMLSignature(): string {\r\n let cadesSigner;\r\n let cadesSignedXML;\r\n\r\n try {\r\n cadesSigner = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.CPSigner');\r\n cadesSignedXML = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.SignedXML');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации подписи');\r\n }\r\n\r\n try {\r\n const signatureMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256';\r\n const digestMethod = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256';\r\n\r\n void (__cadesAsyncToken__ + cadesSigner.propset_Certificate(cadesCertificate));\r\n void (__cadesAsyncToken__ + cadesSigner.propset_CheckCertificate(true));\r\n void (__cadesAsyncToken__ + cadesSignedXML.propset_Content(unencryptedMessage));\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesSignedXML.propset_SignatureType(cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED)\r\n );\r\n void (__cadesAsyncToken__ + cadesSignedXML.propset_SignatureMethod(signatureMethod));\r\n void (__cadesAsyncToken__ + cadesSignedXML.propset_DigestMethod(digestMethod));\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при указании данных для подписи');\r\n }\r\n\r\n let signature: string;\r\n\r\n try {\r\n signature = __cadesAsyncToken__ + cadesSignedXML.Sign(cadesSigner);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при подписании данных');\r\n }\r\n\r\n return signature;\r\n }),\r\n );\r\n },\r\n);\r\n","import { Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { getAllUserCertificates } from './getAllUserCertificates';\r\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\r\n\r\nlet certificatesCache: Certificate[];\r\n/**\r\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе, без фильтрации по дате и наличию приватного ключа\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getAllCertificates = _afterPluginsLoaded(\r\n async (resetCache: boolean = false): Promise<Certificate[]> => {\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n let availableCertificates: Certificate[];\r\n\r\n try {\r\n availableCertificates = await getAllUserCertificates(resetCache);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n availableCertificates = [];\r\n }\r\n\r\n try {\r\n const containerAllCertificates: Certificate[] = await getAllContainerCertificates(resetCache);\r\n\r\n if (!availableCertificates) {\r\n availableCertificates = containerAllCertificates;\r\n } else {\r\n let containerAllCertificatesCount = containerAllCertificates.length - 1;\r\n let foundAvailableCertificate;\r\n\r\n while (containerAllCertificatesCount) {\r\n foundAvailableCertificate = availableCertificates.find(\r\n (cert) => cert.thumbprint === containerAllCertificates[containerAllCertificatesCount].thumbprint,\r\n );\r\n\r\n if (!foundAvailableCertificate) {\r\n availableCertificates.push(containerAllCertificates[containerAllCertificatesCount]);\r\n }\r\n\r\n containerAllCertificatesCount--;\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n\r\n if (!availableCertificates) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n certificatesCache = availableCertificates;\r\n\r\n return certificatesCache;\r\n },\r\n);\r\n","import { CadesCertificate, Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractCommonName } from '../helpers/_extractCommonName';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nlet certificatesCache: Certificate[];\r\n\r\n/**\r\n * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\r\n * Возвращает все сертификаты без фильтрации по дате и наличию приватного ключа\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getAllContainerCertificates = _afterPluginsLoaded((resetCache: boolean = false): Certificate[] => {\r\n const { cadesplugin } = window;\r\n\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n return eval(\r\n _generateCadesFn(function getAllContainerCertificates(): Certificate[] {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CADESCOM_CONTAINER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\r\n }\r\n\r\n let cadesCertificates;\r\n let cadesCertificatesCount;\r\n\r\n try {\r\n cadesCertificates = __cadesAsyncToken__ + cadesStore.Certificates;\r\n cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\r\n }\r\n\r\n if (!cadesCertificatesCount) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n const certificateList: Certificate[] = [];\r\n\r\n try {\r\n while (cadesCertificatesCount) {\r\n const cadesCertificate: CadesCertificate =\r\n __cadesAsyncToken__ + cadesCertificates.Item(cadesCertificatesCount);\r\n\r\n certificateList.push(\r\n new Certificate(\r\n cadesCertificate,\r\n _extractCommonName(__cadesAsyncToken__ + cadesCertificate.SubjectName),\r\n __cadesAsyncToken__ + cadesCertificate.IssuerName,\r\n __cadesAsyncToken__ + cadesCertificate.SubjectName,\r\n __cadesAsyncToken__ + cadesCertificate.Thumbprint,\r\n __cadesAsyncToken__ + cadesCertificate.ValidFromDate,\r\n __cadesAsyncToken__ + cadesCertificate.ValidToDate,\r\n ),\r\n );\r\n\r\n cadesCertificatesCount--;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка обработки сертификатов');\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n certificatesCache = certificateList;\r\n\r\n return certificatesCache;\r\n }),\r\n );\r\n});\r\n","import { CadesCertificate, Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractCommonName } from '../helpers/_extractCommonName';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nlet certificatesCache: Certificate[];\r\n\r\n/**\r\n * Возвращает все сертификаты без фильтрации по дате и наличию приватного ключа\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getAllUserCertificates = _afterPluginsLoaded((resetCache: boolean = false): Certificate[] => {\r\n const { cadesplugin } = window;\r\n\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n return eval(\r\n _generateCadesFn(function getAllUserCertificates(): Certificate[] {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CAPICOM_CURRENT_USER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\r\n }\r\n\r\n let cadesCertificates;\r\n let cadesCertificatesCount;\r\n\r\n try {\r\n cadesCertificates = __cadesAsyncToken__ + cadesStore.Certificates;\r\n cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\r\n }\r\n\r\n if (!cadesCertificatesCount) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n const certificateList: Certificate[] = [];\r\n\r\n try {\r\n while (cadesCertificatesCount) {\r\n const cadesCertificate: CadesCertificate =\r\n __cadesAsyncToken__ + cadesCertificates.Item(cadesCertificatesCount);\r\n\r\n certificateList.push(\r\n new Certificate(\r\n cadesCertificate,\r\n _extractCommonName(__cadesAsyncToken__ + cadesCertificate.SubjectName),\r\n __cadesAsyncToken__ + cadesCertificate.IssuerName,\r\n __cadesAsyncToken__ + cadesCertificate.SubjectName,\r\n __cadesAsyncToken__ + cadesCertificate.Thumbprint,\r\n __cadesAsyncToken__ + cadesCertificate.ValidFromDate,\r\n __cadesAsyncToken__ + cadesCertificate.ValidToDate,\r\n ),\r\n );\r\n\r\n cadesCertificatesCount--;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка обработки сертификатов');\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n certificatesCache = certificateList;\r\n\r\n return certificatesCache;\r\n }),\r\n );\r\n});\r\n","import { Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { getCertificates } from './getCertificates';\r\nimport { getAllCertificates } from './getAllCertificates';\r\n\r\n/**\r\n * Возвращает сертификат по отпечатку\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @param validOnly - проверять сертификаты по дате и наличию приватного ключа\r\n * @returns сертификат\r\n */\r\nexport const getCertificate = _afterPluginsLoaded(\r\n async (thumbprint: string, validOnly: boolean = true): Promise<Certificate> => {\r\n if (!thumbprint) {\r\n throw new Error('Отпечаток не указан');\r\n }\r\n\r\n let availableCertificates: Certificate[];\r\n\r\n if (validOnly) {\r\n availableCertificates = await getCertificates();\r\n } else {\r\n availableCertificates = await getAllCertificates();\r\n }\r\n\r\n const foundCertificate: Certificate = availableCertificates.find((cert) => cert.thumbprint === thumbprint);\r\n\r\n if (!foundCertificate) {\r\n throw new Error(`Сертификат с отпечатком: \"${thumbprint}\" не найден`);\r\n }\r\n\r\n return foundCertificate;\r\n },\r\n);\r\n","import { Certificate } from './certificate';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { getUserCertificates } from './getUserCertificates';\r\nimport { getContainerCertificates } from './getContainerCertificates';\r\nimport { getAllUserCertificates } from './getAllUserCertificates';\r\nimport { getAllContainerCertificates } from './getAllContainerCertificates';\r\n\r\nlet certificatesCache: Certificate[];\r\n/**\r\n * Возвращает список сертификатов, доступных пользователю из пользовательского хранилища и закрытых ключей, не установленных в системе\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getCertificates = _afterPluginsLoaded(\r\n async (resetCache: boolean = false): Promise<Certificate[]> => {\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n let availableCertificates: Certificate[];\r\n\r\n try {\r\n availableCertificates = await getUserCertificates(resetCache);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n availableCertificates = [];\r\n }\r\n\r\n try {\r\n const containerCertificates: Certificate[] = await getContainerCertificates(resetCache);\r\n\r\n if (!availableCertificates) {\r\n availableCertificates = containerCertificates;\r\n } else {\r\n let containerCertificatesCount = containerCertificates.length - 1;\r\n let foundAvailableCertificate;\r\n\r\n while (containerCertificatesCount) {\r\n foundAvailableCertificate = availableCertificates.find(\r\n (cert) => cert.thumbprint === containerCertificates[containerCertificatesCount].thumbprint,\r\n );\r\n\r\n if (!foundAvailableCertificate) {\r\n availableCertificates.push(containerCertificates[containerCertificatesCount]);\r\n }\r\n\r\n containerCertificatesCount--;\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n\r\n if (!availableCertificates) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n certificatesCache = availableCertificates;\r\n\r\n return certificatesCache;\r\n },\r\n);\r\n","import { CadesCertificate, Certificate } from './certificate';\r\nimport { CAPICOM_PROPID_KEY_PROV_INFO } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractCommonName } from '../helpers/_extractCommonName';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nlet certificatesCache: Certificate[];\r\n\r\n/**\r\n * Начиная с версии плагина 2.0.13292 есть возможность получить сертификаты из закрытых ключей\r\n * Возвращает список сертификатов, доступных пользователю в системе\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getContainerCertificates = _afterPluginsLoaded((resetCache: boolean = false): Certificate[] => {\r\n const { cadesplugin } = window;\r\n\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n return eval(\r\n _generateCadesFn(function getContainerCertificates(): Certificate[] {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CADESCOM_CONTAINER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\r\n }\r\n\r\n let cadesCertificates;\r\n let cadesCertificatesCount;\r\n\r\n try {\r\n cadesCertificates = __cadesAsyncToken__ + cadesStore.Certificates;\r\n\r\n if (cadesCertificates) {\r\n cadesCertificates =\r\n __cadesAsyncToken__ + cadesCertificates.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID);\r\n\r\n /**\r\n * Не рассматриваются сертификаты, в которых отсутствует закрытый ключ\r\n * или не действительны на данный момент\r\n */\r\n cadesCertificates =\r\n __cadesAsyncToken__ +\r\n cadesCertificates.Find(\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,\r\n CAPICOM_PROPID_KEY_PROV_INFO,\r\n );\r\n\r\n cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\r\n }\r\n\r\n if (!cadesCertificatesCount) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n const certificateList: Certificate[] = [];\r\n\r\n try {\r\n while (cadesCertificatesCount) {\r\n const cadesCertificate: CadesCertificate =\r\n __cadesAsyncToken__ + cadesCertificates.Item(cadesCertificatesCount);\r\n\r\n certificateList.push(\r\n new Certificate(\r\n cadesCertificate,\r\n _extractCommonName(__cadesAsyncToken__ + cadesCertificate.SubjectName),\r\n __cadesAsyncToken__ + cadesCertificate.IssuerName,\r\n __cadesAsyncToken__ + cadesCertificate.SubjectName,\r\n __cadesAsyncToken__ + cadesCertificate.Thumbprint,\r\n __cadesAsyncToken__ + cadesCertificate.ValidFromDate,\r\n __cadesAsyncToken__ + cadesCertificate.ValidToDate,\r\n ),\r\n );\r\n\r\n cadesCertificatesCount--;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка обработки сертификатов');\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n certificatesCache = certificateList;\r\n\r\n return certificatesCache;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\n/**\r\n * Предоставляет информацию о системе\r\n *\r\n * @returns информацию о CSP\r\n */\r\nexport const getCspVersion = _afterPluginsLoaded((): string => {\r\n let cspVersion = null;\r\n\r\n return eval(\r\n _generateCadesFn(function getCspVersion(): string {\r\n let cadesAbout;\r\n\r\n try {\r\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\r\n\r\n cspVersion = __cadesAsyncToken__ + cadesAbout.CSPVersion();\r\n\r\n cspVersion = __cadesAsyncToken__ + cspVersion.toString();\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении версии системы');\r\n }\r\n\r\n return cspVersion;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\n\r\n/**\r\n * Предоставляет информацию о системе\r\n *\r\n * @returns информацию о плагине\r\n */\r\nexport const getPluginVersion = _afterPluginsLoaded((): string => {\r\n let cadesVersion = null;\r\n\r\n return eval(\r\n _generateCadesFn(function getPluginVersion(): string {\r\n let cadesAbout;\r\n\r\n try {\r\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\r\n\r\n cadesVersion = __cadesAsyncToken__ + cadesAbout.PluginVersion;\r\n\r\n if (!cadesVersion) {\r\n cadesVersion = __cadesAsyncToken__ + cadesAbout.Version;\r\n }\r\n\r\n cadesVersion = __cadesAsyncToken__ + cadesVersion.toString();\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении информации о плагине');\r\n }\r\n\r\n return cadesVersion;\r\n }),\r\n );\r\n});\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nexport interface SystemInfo {\r\n cadesVersion: string;\r\n cspVersion: string;\r\n}\r\n\r\n/**\r\n * Предоставляет информацию о системе\r\n *\r\n * @returns информацию о CSP и плагине\r\n */\r\nexport const getSystemInfo = _afterPluginsLoaded(\r\n (): SystemInfo => {\r\n const sysInfo = {\r\n cadesVersion: null,\r\n cspVersion: null,\r\n };\r\n\r\n return eval(\r\n _generateCadesFn(function getSystemInfo(): SystemInfo {\r\n let cadesAbout;\r\n\r\n try {\r\n cadesAbout = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');\r\n\r\n sysInfo.cadesVersion = __cadesAsyncToken__ + cadesAbout.PluginVersion;\r\n sysInfo.cspVersion = __cadesAsyncToken__ + cadesAbout.CSPVersion();\r\n\r\n if (!sysInfo.cadesVersion) {\r\n sysInfo.cadesVersion = __cadesAsyncToken__ + cadesAbout.Version;\r\n }\r\n\r\n sysInfo.cadesVersion = __cadesAsyncToken__ + sysInfo.cadesVersion.toString();\r\n sysInfo.cspVersion = __cadesAsyncToken__ + sysInfo.cspVersion.toString();\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при получении информации о системе');\r\n }\r\n\r\n return sysInfo;\r\n }),\r\n );\r\n },\r\n);\r\n","import { CadesCertificate, Certificate } from './certificate';\r\nimport { CAPICOM_PROPID_KEY_PROV_INFO } from '../constants';\r\nimport { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractCommonName } from '../helpers/_extractCommonName';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from '../helpers/_generateCadesFn';\r\n\r\nlet certificatesCache: Certificate[];\r\n\r\n/**\r\n * Возвращает список сертификатов, доступных пользователю в системе\r\n *\r\n * @param resetCache = false - позволяет сбросить кэш ранее полученных сертификатов\r\n * @returns список сертификатов\r\n */\r\nexport const getUserCertificates = _afterPluginsLoaded((resetCache: boolean = false): Certificate[] => {\r\n const { cadesplugin } = window;\r\n\r\n if (!resetCache && certificatesCache) {\r\n return certificatesCache;\r\n }\r\n\r\n return eval(\r\n _generateCadesFn(function getUserCertificates(): Certificate[] {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CAPICOM_CURRENT_USER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища');\r\n }\r\n\r\n let cadesCertificates;\r\n let cadesCertificatesCount;\r\n\r\n try {\r\n cadesCertificates = __cadesAsyncToken__ + cadesStore.Certificates;\r\n\r\n if (cadesCertificates) {\r\n cadesCertificates =\r\n __cadesAsyncToken__ + cadesCertificates.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID);\r\n\r\n /**\r\n * Не рассматриваются сертификаты, в которых отсутствует закрытый ключ\r\n * или не действительны на данный момент\r\n */\r\n cadesCertificates =\r\n __cadesAsyncToken__ +\r\n cadesCertificates.Find(\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY,\r\n CAPICOM_PROPID_KEY_PROV_INFO,\r\n );\r\n\r\n cadesCertificatesCount = __cadesAsyncToken__ + cadesCertificates.Count;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов');\r\n }\r\n\r\n if (!cadesCertificatesCount) {\r\n throw new Error('Нет доступных сертификатов');\r\n }\r\n\r\n const certificateList: Certificate[] = [];\r\n\r\n try {\r\n while (cadesCertificatesCount) {\r\n const cadesCertificate: CadesCertificate =\r\n __cadesAsyncToken__ + cadesCertificates.Item(cadesCertificatesCount);\r\n\r\n certificateList.push(\r\n new Certificate(\r\n cadesCertificate,\r\n _extractCommonName(__cadesAsyncToken__ + cadesCertificate.SubjectName),\r\n __cadesAsyncToken__ + cadesCertificate.IssuerName,\r\n __cadesAsyncToken__ + cadesCertificate.SubjectName,\r\n __cadesAsyncToken__ + cadesCertificate.Thumbprint,\r\n __cadesAsyncToken__ + cadesCertificate.ValidFromDate,\r\n __cadesAsyncToken__ + cadesCertificate.ValidToDate,\r\n ),\r\n );\r\n\r\n cadesCertificatesCount--;\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка обработки сертификатов');\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n certificatesCache = certificateList;\r\n\r\n return certificatesCache;\r\n }),\r\n );\r\n});\r\n","export * from './getCertificate';\r\nexport * from './getUserCertificates';\r\nexport * from './getAllUserCertificates';\r\nexport * from './getContainerCertificates';\r\nexport * from './getAllContainerCertificates';\r\nexport * from './getCertificates';\r\nexport * from './getAllCertificates';\r\nexport * from './getSystemInfo';\r\nexport * from './isValidSystemSetup';\r\nexport * from './createXMLSignature';\r\nexport * from './createDetachedSignature';\r\nexport * from './addDetachedSignature';\r\nexport * from './createAttachedSignature';\r\nexport * from './addAttachedSignature';\r\nexport * from './createHash';\r\nexport * from './certificate';\r\nexport * from './getCspVersion';\r\nexport * from './getPluginVersion';\r\n","import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';\r\nimport { _isSupportedCadesVersion } from '../helpers/_isSupportedCadesVersion';\r\nimport { _isSupportedCSPVersion } from '../helpers/_isSupportedCSPVersion';\r\nimport { getSystemInfo, SystemInfo } from './getSystemInfo';\r\n\r\n/**\r\n * Проверяет корректность настроек ЭП на машине\r\n *\r\n * @returns флаг корректности настроек\r\n */\r\nexport const isValidSystemSetup = _afterPluginsLoaded(\r\n async (): Promise<boolean> => {\r\n let systemInfo: SystemInfo;\r\n\r\n try {\r\n systemInfo = await getSystemInfo();\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Настройки ЭП на данной машине не верны');\r\n }\r\n\r\n if (!_isSupportedCadesVersion(systemInfo.cadesVersion)) {\r\n throw new Error('Не поддерживаемая версия плагина');\r\n }\r\n\r\n if (!_isSupportedCSPVersion(systemInfo.cspVersion)) {\r\n throw new Error('Не поддерживаемая версия CSP');\r\n }\r\n\r\n return true;\r\n },\r\n);\r\n","export const CADESCOM_ATTRIBUTE_OTHER = -1;\r\nexport const CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\r\nexport const CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\r\nexport const CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\r\nexport const CADESCOM_AllowNoOutstandingRequest = 1;\r\nexport const CADESCOM_AllowNone = 0;\r\nexport const CADESCOM_AllowUntrustedCertificate = 2;\r\nexport const CADESCOM_AllowUntrustedRoot = 4;\r\nexport const CADESCOM_BASE64_TO_BINARY = 0x01;\r\nexport const CADESCOM_CADES_BES = 1;\r\nexport const CADESCOM_CADES_DEFAULT = 0;\r\nexport const CADESCOM_CADES_T = 5;\r\nexport const CADESCOM_CADES_X_LONG_TYPE_1 = 0x5d;\r\nexport const CADESCOM_CONTAINER_STORE = 100;\r\nexport const CADESCOM_CURRENT_USER_STORE = 2;\r\nexport const CADESCOM_DISPLAY_DATA_ATTRIBUTE = 2;\r\nexport const CADESCOM_DISPLAY_DATA_CONTENT = 1;\r\nexport const CADESCOM_DISPLAY_DATA_NONE = 0;\r\nexport const CADESCOM_ENCODE_ANY = -1;\r\nexport const CADESCOM_ENCODE_BASE64 = 0;\r\nexport const CADESCOM_ENCODE_BINARY = 1;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_3DES = 3;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_AES = 4;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_DES = 2;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89 = 25;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_RC2 = 0;\r\nexport const CADESCOM_ENCRYPTION_ALGORITHM_RC4 = 1;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 = 101;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC = 111;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512 = 102;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC = 112;\r\nexport const CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC = 110;\r\nexport const CADESCOM_HASH_ALGORITHM_MD2 = 1;\r\nexport const CADESCOM_HASH_ALGORITHM_MD4 = 2;\r\nexport const CADESCOM_HASH_ALGORITHM_MD5 = 3;\r\nexport const CADESCOM_HASH_ALGORITHM_SHA1 = 0;\r\nexport const CADESCOM_HASH_ALGORITHM_SHA_256 = 4;\r\nexport const CADESCOM_HASH_ALGORITHM_SHA_384 = 5;\r\nexport const CADESCOM_HASH_ALGORITHM_SHA_512 = 6;\r\nexport const CADESCOM_LOCAL_MACHINE_STORE = 1;\r\nexport const CADESCOM_PKCS7_TYPE = 65535;\r\nexport const CADESCOM_STRING_TO_UCS2LE = 0x00;\r\nexport const CADESCOM_SkipInstallToStore = 268435456;\r\nexport const CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = 0;\r\nexport const CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING = 1;\r\nexport const CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE = 2;\r\nexport const CAPICOM_ACTIVE_DIRECTORY_USER_STORE = 3;\r\nexport const CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\r\nexport const CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\r\nexport const CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\r\nexport const CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY = 7;\r\nexport const CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY = 8;\r\nexport const CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = 6;\r\nexport const CAPICOM_CERTIFICATE_FIND_EXTENSION = 5;\r\nexport const CAPICOM_CERTIFICATE_FIND_ISSUER_NAME = 2;\r\nexport const CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12;\r\nexport const CAPICOM_CERTIFICATE_FIND_ROOT_NAME = 3;\r\nexport const CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;\r\nexport const CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;\r\nexport const CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME = 4;\r\nexport const CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED = 11;\r\nexport const CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID = 10;\r\nexport const CAPICOM_CERTIFICATE_FIND_TIME_VALID = 9;\r\nexport const CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT = 0;\r\nexport const CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = 2;\r\nexport const CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;\r\nexport const CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = 1;\r\nexport const CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0;\r\nexport const CAPICOM_CURRENT_USER_STORE = 2;\r\nexport const CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 128;\r\nexport const CAPICOM_EKU_CLIENT_AUTH = 2;\r\nexport const CAPICOM_EKU_OTHER = 0;\r\nexport const CAPICOM_EKU_SMARTCARD_LOGON = 5;\r\nexport const CAPICOM_LOCAL_MACHINE_STORE = 1;\r\nexport const CAPICOM_MEMORY_STORE = 0;\r\nexport const CAPICOM_MY_STORE = 'My';\r\nexport const CAPICOM_OID_KEY_USAGE_EXTENSION = 10;\r\nexport const CAPICOM_OID_OTHER = 0;\r\nexport const CAPICOM_PROPID_ACCESS_STATE = 14;\r\nexport const CAPICOM_PROPID_ARCHIVED = 19;\r\nexport const CAPICOM_PROPID_ARCHIVED_KEY_HASH = 65;\r\nexport const CAPICOM_PROPID_AUTO_ENROLL = 21;\r\nexport const CAPICOM_PROPID_CROSS_CERT_DIST_POINTS = 23;\r\nexport const CAPICOM_PROPID_CTL_USAGE = 9;\r\nexport const CAPICOM_PROPID_DATE_STAMP = 27;\r\nexport const CAPICOM_PROPID_DESCRIPTION = 13;\r\nexport const CAPICOM_PROPID_EFS = 17;\r\nexport const CAPICOM_PROPID_ENHKEY_USAGE = 9;\r\nexport const CAPICOM_PROPID_ENROLLMENT = 26;\r\nexport const CAPICOM_PROPID_EXTENDED_ERROR_INFO = 30;\r\nexport const CAPICOM_PROPID_FIRST_RESERVED = 66;\r\nexport const CAPICOM_PROPID_FIRST_USER = 0x00008000;\r\nexport const CAPICOM_PROPID_FORTEZZA_DATA = 18;\r\nexport const CAPICOM_PROPID_FRIENDLY_NAME = 11;\r\nexport const CAPICOM_PROPID_HASH_PROP = 3;\r\nexport const CAPICOM_PROPID_IE30_RESERVED = 7;\r\nexport const CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH = 24;\r\nexport const CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH = 28;\r\nexport const CAPICOM_PROPID_KEY_CONTEXT = 5;\r\nexport const CAPICOM_PROPID_KEY_IDENTIFIER = 20;\r\nexport const CAPICOM_PROPID_KEY_PROV_HANDLE = 1;\r\nexport const CAPICOM_PROPID_KEY_PROV_INFO = 2;\r\nexport const CAPICOM_PROPID_KEY_SPEC = 6;\r\nexport const CAPICOM_PROPID_LAST_RESERVED = 0x00007fff;\r\nexport const CAPICOM_PROPID_LAST_USER = 0x0000ffff;\r\nexport const CAPICOM_PROPID_MD5_HASH = 4;\r\nexport const CAPICOM_PROPID_NEXT_UPDATE_LOCATION = 10;\r\nexport const CAPICOM_PROPID_PUBKEY_ALG_PARA = 22;\r\nexport const CAPICOM_PROPID_PUBKEY_HASH_RESERVED = 8;\r\nexport const CAPICOM_PROPID_PVK_FILE = 12;\r\nexport const CAPICOM_PROPID_RENEWAL = 64;\r\nexport const CAPICOM_PROPID_SHA1_HASH = 3;\r\nexport const CAPICOM_PROPID_SIGNATURE_HASH = 15;\r\nexport const CAPICOM_PROPID_SMART_CARD_DATA = 16;\r\nexport const CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH = 29;\r\nexport const CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH = 25;\r\nexport const CAPICOM_PROPID_UNKNOWN = 0;\r\nexport const CAPICOM_SMART_CARD_USER_STORE = 4;\r\nexport const CAPICOM_STORE_OPEN_EXISTING_ONLY = 128;\r\nexport const CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED = 256;\r\nexport const CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;\r\nexport const CAPICOM_STORE_OPEN_READ_ONLY = 0;\r\nexport const CAPICOM_STORE_OPEN_READ_WRITE = 1;\r\nexport const CHECK_NONE = 0;\r\nexport const CHECK_OFFLINE_REVOCATION_STATUS = 16;\r\nexport const CHECK_ONLINE_REVOCATION_STATUS = 8;\r\nexport const CHECK_SIGNATURE_VALIDITY = 4;\r\nexport const CHECK_TIME_VALIDITY = 2;\r\nexport const CHECK_TRUSTED_ROOT = 1;\r\nexport const LOG_LEVEL_DEBUG = 4;\r\nexport const LOG_LEVEL_ERROR = 1;\r\nexport const LOG_LEVEL_INFO = 2;\r\nexport const TRUST_CTL_IS_NOT_SIGNATURE_VALID = 262144;\r\nexport const TRUST_CTL_IS_NOT_TIME_VALID = 131072;\r\nexport const TRUST_CTL_IS_NOT_VALID_FOR_USAGE = 524288;\r\nexport const TRUST_IS_CYCLIC = 128;\r\nexport const TRUST_IS_NOT_SIGNATURE_VALID = 8;\r\nexport const TRUST_IS_NOT_TIME_NESTED = 2;\r\nexport const TRUST_IS_NOT_TIME_VALID = 1;\r\nexport const TRUST_IS_NOT_VALID_FOR_USAGE = 16;\r\nexport const TRUST_IS_PARTIAL_CHAIN = 65536;\r\nexport const TRUST_IS_REVOKED = 4;\r\nexport const TRUST_IS_UNTRUSTED_ROOT = 32;\r\nexport const TRUST_REVOCATION_STATUS_UNKNOWN = 64;\r\nexport const XmlDsigGost3410Url = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411';\r\nexport const XmlDsigGost3410UrlObsolete = 'http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411';\r\nexport const XmlDsigGost3411Url = 'urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411';\r\nexport const XmlDsigGost3411UrlObsolete = 'http://www.w3.org/2001/04/xmldsig-more#gostr3411';\r\n","export * from './cades-constants';\r\nexport * from './issuer-tags-translations';\r\nexport * from './oids-dictionary';\r\nexport * from './subject-tags-translations';\r\n","import { TagsTranslations } from './tags-translations';\r\n\r\nexport const ISSUER_TAGS_TRANSLATIONS: TagsTranslations[] = [\r\n { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\r\n { possibleNames: ['CN', 'commonName'], translation: 'Удостоверяющий центр' },\r\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\r\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\r\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\r\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\r\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Тип' },\r\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\r\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\r\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\r\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\r\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\r\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\r\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\r\n { possibleNames: ['L', 'localityName'], translation: 'Город' },\r\n];\r\n","export const OIDS_DICTIONARY = {\r\n '1.2.643.2.2.34.6': 'Пользователь Центра Регистрации',\r\n '1.2.643.2.39.1.1': 'Использование в программных продуктах системы \"1С:Предприятие 8\"',\r\n '1.2.643.3.131.1.1': 'ИНН',\r\n '1.2.643.100.4': 'ИНН организации',\r\n '1.2.643.100.1': 'ОГРН',\r\n '1.2.643.100.5': 'ОГРНИП',\r\n '1.2.643.100.3': 'СНИЛС',\r\n '1.2.643.3.141.1.1': 'РНС ФСС',\r\n '1.2.643.3.141.1.2': 'КП ФСС',\r\n '1.2.643.3.2.100.65.13.11': 'Использование в системе АИС \"Госзакупки\" Сахалинской области.',\r\n '1.2.643.3.8.100.1': 'Сертификат типа \"ekey-ГОСТ\"',\r\n '1.2.643.3.8.100.1.1': 'Общее использование в системах ИОК без права заверения финансовых документов',\r\n '1.2.643.3.8.100.1.10':\r\n 'Для участия в электронных торгах и подписания государственного контракта в информационных системах Тендерного комитета города Москвы уполномоченными лицами участников размещения государственного заказа города Москвы',\r\n '1.2.643.3.8.100.1.11':\r\n 'Подписание электронных документов в автоматизированной информационной системе размещения государственного и муниципального заказа Саратовской области',\r\n '1.2.643.3.8.100.1.12': 'Использование в системе государственного заказа Иркутской области',\r\n '1.2.643.3.8.100.1.13':\r\n 'Использование в электронной торговой площадке агентства государственного заказа Красноярского края',\r\n '1.2.643.3.8.100.1.14': 'Использование в электронной торговой площадке \"Тендер\"',\r\n '1.2.643.3.8.100.1.2': 'Передача отчетности по ТКС',\r\n '1.2.643.3.8.100.1.3': 'Оформление взаимных обязательств, соглашений, договоров, актов и т.п.',\r\n '1.2.643.3.8.100.1.4': 'Внутрикорпоративный документооборот',\r\n '1.2.643.3.8.100.1.5': 'Использование в системах электронной торговли',\r\n '1.2.643.3.8.100.1.6': 'Использование в торгово-закупочной системе \"ЭЛЕКТРА\"',\r\n '1.2.643.3.8.100.1.7': 'Использование в системе Портал государственных закупок Ставропольского края.',\r\n '1.2.643.3.8.100.1.8': 'Использование в Единой системе электронной торговли B2B-Center и B2G.',\r\n '1.2.643.3.8.100.1.9':\r\n 'Для участия в электронных торгах и подписания государственного контракта в электронной площадке ОАО «ЕЭТП» уполномоченными лицами участников размещения государственного или муниципального заказа',\r\n '1.2.643.5.1.24.2.1.3':\r\n 'Формирование документов для получения государственных услуг в сфере ведения государственного кадастра недвижимости со стороны заявителя',\r\n '1.2.643.5.1.24.2.1.3.1':\r\n 'Формирование кадастровым инженером документов для получения государственных услуг в сфере ведения государственного кадастра недвижимости со стороны заявителя',\r\n '1.2.643.5.1.24.2.2.2': 'Формирование документов как результата оказания услуги со стороны органов регистрации прав',\r\n '1.2.643.5.1.24.2.2.3':\r\n 'Формирование документов для получения государственных услуг в сфере государственной регистрации прав на недвижимое имущество и сделок с ним со стороны заявителя',\r\n '1.2.643.6.2.1.7.1':\r\n 'Использование единоличным исполнительным органом юридического лица или уполномоченными представителями юридического лица в отношениях, связанных с возникновением, исполнением (осуществлением) и прекращением гражданских и иных прав и обязанностей в сфере негосударственного пенсионного обеспечения, негосударственного пенсионного страхования, в сфере деятельности паевых инвестиционных фондов, акционерных инвестиционных фондов, профессиональных участников рынка ценных бумаг, а также связанной с обслуживанием указанной деятельности услуг кредитных и иных организаций',\r\n '1.2.643.6.2.1.7.2':\r\n 'Использование физическим лицом в отношениях, связанных с возникновением, исполнением (осуществлением) и прекращением гражданских прав и обязанностей в отношении инвестиционных паев паевых инвестиционных фондов, в том числе отношения, связанные с учетом и/или фиксацией прав на инвестиционные паи паевых инвестиционных фондов',\r\n '1.2.643.6.3':\r\n 'Использование в электронных торговых системах и в программном обеспечении, связанным с обменом электронных сообщений',\r\n '1.2.643.6.3.1.1': 'Использование на электронных площадок отобранных для проведения аукционах в электронной форме',\r\n '1.2.643.6.3.1.2.1': 'Тип участника - Юридическое лицо',\r\n '1.2.643.6.3.1.2.2': 'Тип участника - Физическое лицо',\r\n '1.2.643.6.3.1.2.3': 'Тип участника - Индивидуальный предприниматель',\r\n '1.2.643.6.3.1.3.1': 'Участник размещения заказа',\r\n '1.2.643.6.3.1.4.1': 'Администратор организации',\r\n '1.2.643.6.3.1.4.2': 'Уполномоченный специалист',\r\n '1.2.643.6.3.1.4.3': 'Специалист с правом подписи контракта',\r\n '1.2.840.113549.1.9.2': 'Неструктурированное имя',\r\n '1.3.6.1.4.1.24138.1.1.8.1': 'Обеспечение юридической значимости в Системе \"Электронная Торговая Площадка\"',\r\n '1.3.6.1.4.1.29919.21': 'Использование в системе Портал государственных закупок Ростовской области \"Рефери\".',\r\n '1.3.6.1.5.5.7.3.2': 'Проверка подлинности клиента',\r\n '1.3.6.1.5.5.7.3.4': 'Защищенная электронная почта',\r\n '1.3.643.3.8.100.15': 'Использование в ЭТП \"uTender\"',\r\n};\r\n","import { TagsTranslations } from './tags-translations';\r\n\r\nexport const SUBJECT_TAGS_TRANSLATIONS: TagsTranslations[] = [\r\n { possibleNames: ['UN', 'UnstructuredName'], translation: 'Неструктурированное имя' },\r\n { possibleNames: ['CN', 'commonName'], translation: 'Владелец' },\r\n { possibleNames: ['SN', 'surname'], translation: 'Фамилия' },\r\n { possibleNames: ['G', 'givenName', 'gn'], translation: 'Имя Отчество' },\r\n { possibleNames: ['C', 'countryName'], translation: 'Страна' },\r\n { possibleNames: ['S', 'ST', 'stateOrProvinceName'], translation: 'Регион' },\r\n { possibleNames: ['STREET', 'streetAddress'], translation: 'Адрес' },\r\n { possibleNames: ['O', 'organizationName'], translation: 'Компания' },\r\n { possibleNames: ['OU', 'organizationalUnitName'], translation: 'Отдел/подразделение' },\r\n { possibleNames: ['T', 'TITLE'], translation: 'Должность' },\r\n { possibleNames: ['ОГРН', 'OGRN'], translation: 'ОГРН' },\r\n { possibleNames: ['ОГРНИП', 'OGRNIP'], translation: 'ОГРНИП' },\r\n { possibleNames: ['СНИЛС', 'SNILS'], translation: 'СНИЛС' },\r\n { possibleNames: ['ИНН', 'ИННФЛ', 'ИНН ФЛ', 'INN', 'ИНН физического лица'], translation: 'ИНН' },\r\n { possibleNames: ['ИННЮЛ', 'ИНН ЮЛ', 'INN LE', 'INNLE', 'ИНН организации'], translation: 'ИНН организации' },\r\n { possibleNames: ['E', 'email', 'emailAddress', 'pkcs9email'], translation: 'Email' },\r\n { possibleNames: ['L', 'localityName'], translation: 'Город' },\r\n];\r\n","export * from './api';\r\n","import { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\r\n\r\ntype Unpromisify<T> = T extends Promise<infer R> ? R : T;\r\n\r\nlet isSetLogLevel = false;\r\nlet isPluginLoaded = false;\r\n\r\nexport const _afterPluginsLoaded = <T extends (...args: any[]) => any>(\r\n fn: T,\r\n): ((...args: Parameters<T>) => Promise<Unpromisify<ReturnType<T>>>) => {\r\n const canPromise = Boolean(window.Promise);\r\n\r\n return async function (...args: Parameters<T>): Promise<Unpromisify<ReturnType<T>>> {\r\n if (!isPluginLoaded) {\r\n try {\r\n require('../vendor/cadesplugin_api');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка при подключении модуля для работы с Cades plugin',\r\n );\r\n }\r\n\r\n isPluginLoaded = true;\r\n }\r\n\r\n const { cadesplugin } = window;\r\n\r\n if (!canPromise) {\r\n throw new Error('Необходим полифилл для Promise');\r\n }\r\n\r\n if (!cadesplugin) {\r\n throw new Error('Не подключен модуль для работы с Cades plugin');\r\n }\r\n\r\n if (!isSetLogLevel) {\r\n cadesplugin.set_log_level(cadesplugin.LOG_LEVEL_ERROR);\r\n\r\n isSetLogLevel = true;\r\n }\r\n\r\n try {\r\n await cadesplugin;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка при инициализации модуля для работы с Cades plugin',\r\n );\r\n }\r\n\r\n return await fn.apply(this, args);\r\n };\r\n};\r\n","export const _extractCommonName = (subjectName: string): string | undefined =>\r\n subjectName.match(/CN=\"?(.+?)\"?(?:,|$)/)?.[1]?.replace(/\"{2}/g, '\"');\r\n","export const _extractMeaningfulErrorMessage = (error: Error): string | null => {\r\n let errorContainer = window.cadesplugin?.getLastError && window.cadesplugin.getLastError(error);\r\n\r\n if (!errorContainer?.message) {\r\n if (!error.message) {\r\n return null;\r\n }\r\n\r\n errorContainer = error;\r\n }\r\n\r\n const containsRussianLetters = /[а-яА-Я]/.test(errorContainer.message);\r\n\r\n if (!containsRussianLetters) {\r\n return null;\r\n }\r\n\r\n const searchResult = errorContainer.message.match(/^(.*?)(?:(?:\\.?\\s?\\(?(0x[0-9a-zA-Z]{1,8})\\)?)|(?:\\.?$))/);\r\n\r\n return searchResult ? searchResult[1] + (searchResult[2] ? ' (Код ошибки: ' + searchResult[2] + ')' : '') : null;\r\n};\r\n","// синтетические переменные, которые подменяются в рантайме\r\nexport const __cadesAsyncToken__ = {};\r\nexport const __createCadesPluginObject__ = (...args): any => ({});\r\n\r\nfunction getGeneratorConstructor(): GeneratorFunction {\r\n return new Function('', 'return Object.getPrototypeOf(function*(){}).constructor')();\r\n}\r\n\r\nexport const _generateCadesFn = (callback: Function): string => {\r\n const { cadesplugin } = window;\r\n const cadesGeneratorsAPI = Boolean(cadesplugin.CreateObjectAsync);\r\n const callbackName = callback.name || 'dynamicFn';\r\n const callbackLiteral = String(callback);\r\n const callbackArguments = callbackLiteral.match(/^function[\\s\\w]*?\\((.*?)\\)/)?.[1] || '';\r\n const callbackBody = callbackLiteral.replace(/^.*?{([\\s\\S]*?)}$/, '$1');\r\n let crossEnvCallbackLiteral = String(\r\n new (cadesGeneratorsAPI ? getGeneratorConstructor() : Function)(callbackArguments, callbackBody),\r\n );\r\n\r\n crossEnvCallbackLiteral = crossEnvCallbackLiteral.replace(\r\n /\\w+?\\.__createCadesPluginObject__(\\([\\s\\S]*?\\))/gm,\r\n `cadesplugin.CreateObject${cadesGeneratorsAPI ? 'Async' : ''}$1`,\r\n );\r\n\r\n crossEnvCallbackLiteral = crossEnvCallbackLiteral.replace(\r\n /\\w+?\\.__cadesAsyncToken__\\s*?\\+\\s*?\\b/gm,\r\n cadesGeneratorsAPI ? 'yield ' : '',\r\n );\r\n\r\n if (!cadesGeneratorsAPI) {\r\n crossEnvCallbackLiteral = crossEnvCallbackLiteral.replace(/propset_(.*?)\\((.*?)\\)/gm, '$1 = $2');\r\n }\r\n\r\n return [\r\n cadesGeneratorsAPI ? `cadesplugin.async_spawn(${crossEnvCallbackLiteral});` : `(${crossEnvCallbackLiteral})();`,\r\n `//# sourceURL=crypto-pro_${callbackName}.js`,\r\n ].join('');\r\n};\r\n","import { CadesCertificate } from '../api/certificate';\r\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\r\nimport { _getCadesUserCert } from './_getCadesUserCert';\r\nimport { _getCadesContainerCert } from './_getCadesContainerCert';\r\n\r\n/**\r\n * Возвращает сертификат в формате Cades по отпечатку\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @returns сертификат в формате Cades\r\n */\r\nexport const _getCadesCert = _afterPluginsLoaded(\r\n async (thumbprint: string): Promise<CadesCertificate> => {\r\n let cadesCertificate: CadesCertificate;\r\n\r\n try {\r\n cadesCertificate = await _getCadesUserCert(thumbprint);\r\n } catch (error) {\r\n console.log(error);\r\n\r\n cadesCertificate = await _getCadesContainerCert(thumbprint);\r\n }\r\n\r\n return cadesCertificate;\r\n },\r\n);\r\n","import { CadesCertificate } from '../api/certificate';\r\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from './_generateCadesFn';\r\n\r\n/**\r\n * Возвращает сертификат в формате Cades по отпечатку из хранилища закрытого ключа\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @returns сертификат в формате Cades\r\n */\r\nexport const _getCadesContainerCert = _afterPluginsLoaded(\r\n (thumbprint: string): CadesCertificate => {\r\n const { cadesplugin } = window;\r\n\r\n return eval(\r\n _generateCadesFn(function _getCadesCert() {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n if (!cadesStore) {\r\n throw new Error('Не удалось получить доступ к хранилищу сертификатов');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CADESCOM_CONTAINER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища закрытого ключа');\r\n }\r\n\r\n let cadesCertificateList;\r\n let certificatesCount;\r\n\r\n try {\r\n cadesCertificateList = __cadesAsyncToken__ + cadesStore.Certificates;\r\n certificatesCount = __cadesAsyncToken__ + cadesCertificateList.Count;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) ||\r\n 'Ошибка получения списка сертификатов из хранилища закрытого ключа',\r\n );\r\n }\r\n\r\n if (!certificatesCount) {\r\n throw new Error('Нет доступных сертификатов в хранилище закрытого ключа');\r\n }\r\n\r\n let cadesCertificate: CadesCertificate;\r\n\r\n try {\r\n cadesCertificateList =\r\n __cadesAsyncToken__ + cadesCertificateList.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);\r\n\r\n const count = __cadesAsyncToken__ + cadesCertificateList.Count;\r\n\r\n if (!count) {\r\n throw new Error(`Сертификат с отпечатком: \"${thumbprint}\" не найден в хранилище закрытого ключа`);\r\n }\r\n\r\n cadesCertificate = __cadesAsyncToken__ + cadesCertificateList.Item(1);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища закрытого ключа',\r\n );\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n return cadesCertificate;\r\n }),\r\n );\r\n },\r\n);\r\n","import { CadesCertificate } from '../api/certificate';\r\nimport { _afterPluginsLoaded } from './_afterPluginsLoaded';\r\nimport { _extractMeaningfulErrorMessage } from './_extractMeaningfulErrorMessage';\r\nimport { __cadesAsyncToken__, __createCadesPluginObject__, _generateCadesFn } from './_generateCadesFn';\r\n\r\n/**\r\n * Возвращает сертификат в формате Cades по отпечатку из хранилища пользователя\r\n *\r\n * @param thumbprint - отпечаток сертификата\r\n * @returns сертификат в формате Cades\r\n */\r\nexport const _getCadesUserCert = _afterPluginsLoaded(\r\n (thumbprint: string): CadesCertificate => {\r\n const { cadesplugin } = window;\r\n\r\n return eval(\r\n _generateCadesFn(function _getCadesCert() {\r\n let cadesStore;\r\n\r\n try {\r\n cadesStore = __cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.Store');\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при попытке доступа к хранилищу');\r\n }\r\n\r\n if (!cadesStore) {\r\n throw new Error('Не удалось получить доступ к хранилищу сертификатов');\r\n }\r\n\r\n try {\r\n void (\r\n __cadesAsyncToken__ +\r\n cadesStore.Open(\r\n cadesplugin.CAPICOM_CURRENT_USER_STORE,\r\n cadesplugin.CAPICOM_MY_STORE,\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED,\r\n )\r\n );\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(_extractMeaningfulErrorMessage(error) || 'Ошибка при открытии хранилища пользователя');\r\n }\r\n\r\n let cadesCertificateList;\r\n let certificatesCount;\r\n\r\n try {\r\n cadesCertificateList = __cadesAsyncToken__ + cadesStore.Certificates;\r\n certificatesCount = __cadesAsyncToken__ + cadesCertificateList.Count;\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка получения списка сертификатов из хранилища пользователя',\r\n );\r\n }\r\n\r\n if (!certificatesCount) {\r\n throw new Error('Нет доступных сертификатов в хранилище пользователя');\r\n }\r\n\r\n let cadesCertificate: CadesCertificate;\r\n\r\n try {\r\n cadesCertificateList =\r\n __cadesAsyncToken__ + cadesCertificateList.Find(cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint);\r\n\r\n const count = __cadesAsyncToken__ + cadesCertificateList.Count;\r\n\r\n if (!count) {\r\n throw new Error(`Сертификат с отпечатком: \"${thumbprint}\" не найден в хранилище пользователя`);\r\n }\r\n\r\n cadesCertificate = __cadesAsyncToken__ + cadesCertificateList.Item(1);\r\n } catch (error) {\r\n console.error(error);\r\n\r\n throw new Error(\r\n _extractMeaningfulErrorMessage(error) || 'Ошибка при получении сертификата из хранилища пользователя',\r\n );\r\n }\r\n\r\n cadesStore.Close();\r\n\r\n return cadesCertificate;\r\n }),\r\n );\r\n },\r\n);\r\n","/**\r\n * Возвращает объект даты, совместимый с Cades plugin'ом, зависящий от браузера.\r\n *\r\n * В IE необходимо использовать специфичный формат \"VT_DATE\"\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Microsoft_Extensions/Date.getVarDate\r\n */\r\nexport const _getDateObj = (dateObj): Date => (dateObj.getVarDate ? dateObj.getVarDate() : dateObj);\r\n","const oldestSupportedCSPVersion = 4.0;\r\n\r\nexport const _isSupportedCSPVersion = (version: string): boolean => {\r\n version = version.match(/\\d+?\\b(?:\\.\\d+)?/)?.[0];\r\n\r\n return Number(version) >= oldestSupportedCSPVersion;\r\n};\r\n","export const _isSupportedCadesVersion = (version: string): boolean => {\r\n const match = version.match(/(\\d+)\\.(\\d+)\\.(\\d+)/);\r\n\r\n if (!match) {\r\n return false;\r\n }\r\n\r\n const [, major, minor, patch] = match;\r\n\r\n if (Number(major) < 2) {\r\n return false;\r\n }\r\n\r\n if (Number(major) === 2 && Number(patch) < 12438) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n","import { OIDS_DICTIONARY } from '../constants';\r\nimport { TagsTranslations } from '../constants/tags-translations';\r\n\r\nexport interface TagTranslation {\r\n description: string;\r\n title: string;\r\n isTranslated: boolean;\r\n}\r\n\r\n/**\r\n * Парсит информацию из строки с информацией о сертификате\r\n *\r\n * @param tagsTranslations - словарь с расшифровками тэгов\r\n * @param rawInfo - данные для парсинга\r\n * @returns расшифрованная информация по отдельным тэгам\r\n */\r\nexport const _parseCertInfo = (tagsTranslations: TagsTranslations[], rawInfo: string): TagTranslation[] => {\r\n const extractedEntities: string[] = rawInfo.match(/([а-яА-Яa-zA-Z0-9\\s.]+)=(?:(\"[^\"]+?\")|(.+?))(?:,|$)/g);\r\n\r\n if (extractedEntities) {\r\n return extractedEntities.map((group) => {\r\n const segmentsMatch = group.trim().match(/^([а-яА-Яa-zA-Z0-9\\s.]+)=(.+?),?$/);\r\n let title = segmentsMatch?.[1];\r\n // Вырезаем лишние кавычки\r\n const description = segmentsMatch?.[2]?.replace(/^\"(.*)\"/, '$1')?.replace(/\"{2}/g, '\"');\r\n const oidIdentifierMatch = title?.match(/^OID\\.(.*)/);\r\n const oidIdentifier = oidIdentifierMatch?.[1];\r\n let isTranslated = false;\r\n\r\n // Если нашли в тайтле ОИД, пытаемся его расшифровать\r\n if (oidIdentifier) {\r\n const oidTranslation = OIDS_DICTIONARY[oidIdentifier];\r\n\r\n if (oidTranslation) {\r\n title = oidTranslation;\r\n isTranslated = true;\r\n }\r\n }\r\n\r\n const tagTranslation = tagsTranslations.find((tag) => tag.possibleNames.find((name) => name === title))\r\n ?.translation;\r\n\r\n if (tagTranslation) {\r\n title = tagTranslation;\r\n isTranslated = true;\r\n }\r\n\r\n return { description, title, isTranslated };\r\n });\r\n }\r\n};\r\n",";(function () {\r\n //already loaded\r\n if(window.cadesplugin)\r\n return;\r\n\r\n var pluginObject;\r\n var plugin_resolved = 0;\r\n var plugin_reject;\r\n var plugin_resolve;\r\n var isOpera = 0;\r\n var isFireFox = 0;\r\n var isSafari = 0;\r\n var isYandex = 0;\r\n var canPromise = !!window.Promise;\r\n var cadesplugin_loaded_event_recieved = false;\r\n var isFireFoxExtensionLoaded = false;\r\n var cadesplugin;\r\n\r\n if(canPromise)\r\n {\r\n cadesplugin = new Promise(function(resolve, reject)\r\n {\r\n plugin_resolve = resolve;\r\n plugin_reject = reject;\r\n });\r\n } else\r\n {\r\n cadesplugin = {};\r\n }\r\n\r\n function check_browser() {\r\n var ua= navigator.userAgent, tem, M= ua.match(/(opera|yabrowser|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\r\n if(/trident/i.test(M[1])){\r\n tem = /\\brv[ :]+(\\d+)/g.exec(ua) || [];\r\n return { name:'IE', version:(tem[1] || '')};\r\n }\r\n if(M[1] === 'Chrome'){\r\n tem = ua.match(/\\b(OPR|Edg|YaBrowser)\\/(\\d+)/);\r\n if (tem != null)\r\n return { name: tem[1].replace('OPR', 'Opera'), version: tem[2] };\r\n }\r\n M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];\r\n if ((tem = ua.match(/version\\/(\\d+)/i)) != null)\r\n M.splice(1, 1, tem[1]);\r\n return {name:M[0],version:M[1]};\r\n }\r\n var browserSpecs = check_browser();\r\n\r\n function cpcsp_console_log(level, msg){\r\n //IE9 не может писать в консоль если не открыта вкладка developer tools\r\n if(typeof(console) === 'undefined')\r\n return;\r\n if (level <= cadesplugin.current_log_level ){\r\n if (level === cadesplugin.LOG_LEVEL_DEBUG)\r\n console.log(\"DEBUG: %s\", msg);\r\n if (level === cadesplugin.LOG_LEVEL_INFO)\r\n console.info(\"INFO: %s\", msg);\r\n if (level === cadesplugin.LOG_LEVEL_ERROR)\r\n console.error(\"ERROR: %s\", msg);\r\n return;\r\n }\r\n }\r\n\r\n function set_log_level(level){\r\n if (!((level === cadesplugin.LOG_LEVEL_DEBUG) ||\r\n (level === cadesplugin.LOG_LEVEL_INFO) ||\r\n (level === cadesplugin.LOG_LEVEL_ERROR))){\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_ERROR, \"cadesplugin_api.js: Incorrect log_level: \" + level);\r\n return;\r\n }\r\n cadesplugin.current_log_level = level;\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_DEBUG)\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO, \"cadesplugin_api.js: log_level = DEBUG\");\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_INFO)\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO, \"cadesplugin_api.js: log_level = INFO\");\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_ERROR)\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_INFO, \"cadesplugin_api.js: log_level = ERROR\");\r\n if(isNativeMessageSupported())\r\n {\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_DEBUG)\r\n window.postMessage(\"set_log_level=debug\", \"*\");\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_INFO)\r\n window.postMessage(\"set_log_level=info\", \"*\");\r\n if (cadesplugin.current_log_level === cadesplugin.LOG_LEVEL_ERROR)\r\n window.postMessage(\"set_log_level=error\", \"*\");\r\n }\r\n }\r\n\r\n function set_constantValues()\r\n {\r\n cadesplugin.CAPICOM_MEMORY_STORE = 0;\r\n cadesplugin.CAPICOM_LOCAL_MACHINE_STORE = 1;\r\n cadesplugin.CAPICOM_CURRENT_USER_STORE = 2;\r\n cadesplugin.CAPICOM_SMART_CARD_USER_STORE = 4;\r\n cadesplugin.CADESCOM_MEMORY_STORE = 0;\r\n cadesplugin.CADESCOM_LOCAL_MACHINE_STORE = 1;\r\n cadesplugin.CADESCOM_CURRENT_USER_STORE = 2;\r\n cadesplugin.CADESCOM_SMART_CARD_USER_STORE = 4;\r\n cadesplugin.CADESCOM_CONTAINER_STORE = 100;\r\n\r\n cadesplugin.CAPICOM_MY_STORE = \"My\";\r\n\r\n cadesplugin.CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;\r\n\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;\r\n\r\n cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED = 0;\r\n cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING = 1;\r\n cadesplugin.CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE = 2;\r\n\r\n cadesplugin.CADESCOM_XADES_DEFAULT = 0x00000010;\r\n cadesplugin.CADESCOM_XADES_BES = 0x00000020;\r\n cadesplugin.CADESCOM_XADES_T = 0x00000050;\r\n cadesplugin.CADESCOM_XADES_X_LONG_TYPE_1 = 0x000005d0;\r\n cadesplugin.CADESCOM_XMLDSIG_TYPE = 0x00000000;\r\n\r\n cadesplugin.XmlDsigGost3410UrlObsolete = \"http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411\";\r\n cadesplugin.XmlDsigGost3411UrlObsolete = \"http://www.w3.org/2001/04/xmldsig-more#gostr3411\";\r\n cadesplugin.XmlDsigGost3410Url = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411\";\r\n cadesplugin.XmlDsigGost3411Url = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411\";\r\n\r\n cadesplugin.XmlDsigGost3411Url2012256 = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256\";\r\n cadesplugin.XmlDsigGost3410Url2012256 = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256\";\r\n cadesplugin.XmlDsigGost3411Url2012512 = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-512\";\r\n cadesplugin.XmlDsigGost3410Url2012512 = \"urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-512\";\r\n\r\n cadesplugin.CADESCOM_CADES_DEFAULT = 0;\r\n cadesplugin.CADESCOM_CADES_BES = 1;\r\n cadesplugin.CADESCOM_CADES_T = 0x5;\r\n cadesplugin.CADESCOM_CADES_X_LONG_TYPE_1 = 0x5d;\r\n cadesplugin.CADESCOM_PKCS7_TYPE = 0xffff;\r\n\r\n cadesplugin.CADESCOM_ENCODE_BASE64 = 0;\r\n cadesplugin.CADESCOM_ENCODE_BINARY = 1;\r\n cadesplugin.CADESCOM_ENCODE_ANY = -1;\r\n\r\n cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT = 0;\r\n cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN = 1;\r\n cadesplugin.CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = 2;\r\n\r\n cadesplugin.CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0;\r\n cadesplugin.CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME = 1;\r\n\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_ISSUER_NAME = 2;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_ROOT_NAME = 3;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME = 4;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENSION = 5;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY = 6;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY = 7;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY = 8;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_VALID = 9;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID = 10;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED = 11;\r\n cadesplugin.CAPICOM_CERTIFICATE_FIND_KEY_USAGE = 12;\r\n\r\n cadesplugin.CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE = 128;\r\n\r\n cadesplugin.CAPICOM_PROPID_ENHKEY_USAGE = 9;\r\n\r\n cadesplugin.CAPICOM_OID_OTHER = 0;\r\n cadesplugin.CAPICOM_OID_KEY_USAGE_EXTENSION = 10;\r\n\r\n cadesplugin.CAPICOM_EKU_CLIENT_AUTH = 2;\r\n cadesplugin.CAPICOM_EKU_SMARTCARD_LOGON = 5;\r\n cadesplugin.CAPICOM_EKU_OTHER = 0;\r\n\r\n cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\r\n cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\r\n cadesplugin.CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\r\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0;\r\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME = 1;\r\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION = 2;\r\n cadesplugin.CADESCOM_AUTHENTICATED_ATTRIBUTE_MACHINE_INFO = 0x100;\r\n cadesplugin.CADESCOM_ATTRIBUTE_OTHER = -1;\r\n\r\n cadesplugin.CADESCOM_STRING_TO_UCS2LE = 0;\r\n cadesplugin.CADESCOM_BASE64_TO_BINARY = 1;\r\n\r\n cadesplugin.CADESCOM_DISPLAY_DATA_NONE = 0;\r\n cadesplugin.CADESCOM_DISPLAY_DATA_CONTENT = 1;\r\n cadesplugin.CADESCOM_DISPLAY_DATA_ATTRIBUTE = 2;\r\n\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC2 = 0;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_RC4 = 1;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_DES = 2;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_3DES = 3;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_AES = 4;\r\n cadesplugin.CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89 = 25;\r\n\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA1 = 0;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_MD2 = 1;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_MD4 = 2;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_MD5 = 3;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_256 = 4;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_384 = 5;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_SHA_512 = 6;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256 = 101;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512 = 102;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC = 110;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC = 111;\r\n cadesplugin.CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC = 112;\r\n\r\n cadesplugin.LOG_LEVEL_DEBUG = 4;\r\n cadesplugin.LOG_LEVEL_INFO = 2;\r\n cadesplugin.LOG_LEVEL_ERROR = 1;\r\n\r\n cadesplugin.CADESCOM_AllowNone = 0;\r\n cadesplugin.CADESCOM_AllowNoOutstandingRequest = 0x1;\r\n cadesplugin.CADESCOM_AllowUntrustedCertificate = 0x2;\r\n cadesplugin.CADESCOM_AllowUntrustedRoot = 0x4;\r\n cadesplugin.CADESCOM_SkipInstallToStore = 0x10000000;\r\n cadesplugin.CADESCOM_InstallCertChainToContainer = 0x20000000;\r\n cadesplugin.CADESCOM_UseContainerStore = 0x40000000;\r\n\r\n cadesplugin.ENABLE_CARRIER_TYPE_CSP = 0x01;\r\n cadesplugin.ENABLE_CARRIER_TYPE_FKC_NO_SM = 0x02;\r\n cadesplugin.ENABLE_CARRIER_TYPE_FKC_SM = 0x04;\r\n cadesplugin.ENABLE_ANY_CARRIER_TYPE = 0x07;\r\n\r\n cadesplugin.DISABLE_EVERY_CARRIER_OPERATION = 0x00;\r\n cadesplugin.ENABLE_CARRIER_OPEN_ENUM = 0x01;\r\n cadesplugin.ENABLE_CARRIER_CREATE = 0x02;\r\n cadesplugin.ENABLE_ANY_OPERATION = 0x03;\r\n\r\n cadesplugin.CADESCOM_PRODUCT_CSP = 0;\r\n cadesplugin.CADESCOM_PRODUCT_OCSP = 1;\r\n cadesplugin.CADESCOM_PRODUCT_TSP = 2;\r\n\r\n cadesplugin.MEDIA_TYPE_REGISTRY = 0x00000001;\r\n cadesplugin.MEDIA_TYPE_HDIMAGE = 0x00000002;\r\n cadesplugin.MEDIA_TYPE_CLOUD = 0x00000004;\r\n cadesplugin.MEDIA_TYPE_SCARD = 0x00000008;\r\n\r\n cadesplugin.XCN_CRYPT_STRING_BASE64HEADER = 0;\r\n cadesplugin.AT_KEYEXCHANGE = 1;\r\n cadesplugin.AT_SIGNATURE = 2;\r\n\r\n cadesplugin.CARRIER_FLAG_REMOVABLE = 1;\r\n cadesplugin.CARRIER_FLAG_UNIQUE = 2;\r\n cadesplugin.CARRIER_FLAG_PROTECTED = 4;\r\n cadesplugin.CARRIER_FLAG_FUNCTIONAL_CARRIER = 8;\r\n cadesplugin.CARRIER_FLAG_SECURE_MESSAGING = 16;\r\n cadesplugin.CARRIER_FLAG_ABLE_VISUALISE_SIGNATURE = 64;\r\n cadesplugin.CARRIER_FLAG_VIRTUAL = 128;\r\n }\r\n\r\n function async_spawn(generatorFunc) {\r\n function continuer(verb, arg) {\r\n var result;\r\n try {\r\n result = generator[verb](arg);\r\n } catch (err) {\r\n return Promise.reject(err);\r\n }\r\n if (result.done) {\r\n return result.value;\r\n } else {\r\n return Promise.resolve(result.value).then(onFulfilled, onRejected);\r\n }\r\n }\r\n var generator = generatorFunc(Array.prototype.slice.call(arguments, 1));\r\n var onFulfilled = continuer.bind(continuer, \"next\");\r\n var onRejected = continuer.bind(continuer, \"throw\");\r\n return onFulfilled();\r\n }\r\n\r\n function isIE() {\r\n // var retVal = ((\"Microsoft Internet Explorer\" == navigator.appName) || // IE < 11\r\n // navigator.userAgent.match(/Trident\\/./i)); // IE 11\r\n return (browserSpecs.name === 'IE' || browserSpecs.name === 'MSIE');\r\n }\r\n\r\n function isIOS() {\r\n return (navigator.userAgent.match(/ipod/i) ||\r\n navigator.userAgent.match(/ipad/i) ||\r\n navigator.userAgent.match(/iphone/i));\r\n }\r\n\r\n function isNativeMessageSupported()\r\n {\r\n // В IE работаем через NPAPI\r\n if(isIE())\r\n return false;\r\n // В Edge работаем через NativeMessage\r\n if (browserSpecs.name === 'Edg') {\r\n return true;\r\n }\r\n if (browserSpecs.name === 'YaBrowser') {\r\n isYandex = true;\r\n return true;\r\n }\r\n // В Chrome, Firefox, Safari и Opera работаем через асинхронную версию в зависимости от версии\r\n if(browserSpecs.name === 'Opera') {\r\n isOpera = true;\r\n if(browserSpecs.version >= 33){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n if(browserSpecs.name === 'Firefox') {\r\n isFireFox = true;\r\n if(browserSpecs.version >= 52){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n if(browserSpecs.name === 'Chrome') {\r\n if(browserSpecs.version >= 42){\r\n return true;\r\n }\r\n else{\r\n return false;\r\n }\r\n }\r\n //В Сафари начиная с 12 версии нет NPAPI\r\n if(browserSpecs.name === 'Safari') {\r\n isSafari = true;\r\n if(browserSpecs.version >= 12) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n // Функция активации объектов КриптоПро ЭЦП Browser plug-in\r\n function CreateObject(name) {\r\n if (isIOS()) {\r\n // На iOS для создания объектов используется функция\r\n // call_ru_cryptopro_npcades_10_native_bridge, определенная в IOS_npcades_supp.js\r\n return call_ru_cryptopro_npcades_10_native_bridge(\"CreateObject\", [name]);\r\n }\r\n if (isIE()) {\r\n // В Internet Explorer создаются COM-объекты\r\n if (name.match(/X509Enrollment/i)) {\r\n try {\r\n // Объекты CertEnroll пробуем создавать через нашу фабрику,\r\n // если не получилось то через CX509EnrollmentWebClassFactory\r\n var objCertEnrollClassFactory = document.getElementById(\"webClassFactory\");\r\n return objCertEnrollClassFactory.CreateObject(name);\r\n }\r\n catch (e) {\r\n try {\r\n var objWebClassFactory = document.getElementById(\"certEnrollClassFactory\");\r\n return objWebClassFactory.CreateObject(name);\r\n }\r\n catch (err) {\r\n throw (\"Для создания обьектов X509Enrollment следует настроить веб-узел на использование проверки подлинности по протоколу HTTPS\");\r\n }\r\n }\r\n }\r\n // Объекты CAPICOM и CAdESCOM создаются через CAdESCOM.WebClassFactory\r\n try {\r\n var objWebClassFactory = document.getElementById(\"webClassFactory\");\r\n return objWebClassFactory.CreateObject(name);\r\n }\r\n catch (e) {\r\n // Для версий плагина ниже 2.0.12538\r\n return new ActiveXObject(name);\r\n }\r\n }\r\n // создаются объекты NPAPI\r\n return pluginObject.CreateObject(name);\r\n }\r\n\r\n function decimalToHexString(number) {\r\n if (number < 0) {\r\n number = 0xFFFFFFFF + number + 1;\r\n }\r\n\r\n return number.toString(16).toUpperCase();\r\n }\r\n\r\n function GetMessageFromException(e) {\r\n var err = e.message;\r\n if (!err) {\r\n err = e;\r\n } else if (e.number) {\r\n err += \" (0x\" + decimalToHexString(e.number) + \")\";\r\n }\r\n return err;\r\n }\r\n\r\n function getLastError(exception) {\r\n if(isNativeMessageSupported() || isIE() || isIOS() ) {\r\n return GetMessageFromException(exception);\r\n }\r\n\r\n try {\r\n return pluginObject.getLastError();\r\n } catch(e) {\r\n return GetMessageFromException(exception);\r\n }\r\n }\r\n\r\n // Функция для удаления созданных объектов\r\n function ReleasePluginObjects() {\r\n return cpcsp_chrome_nmcades.ReleasePluginObjects();\r\n }\r\n\r\n // Функция активации асинхронных объектов КриптоПро ЭЦП Browser plug-in\r\n function CreateObjectAsync(name) {\r\n return pluginObject.CreateObjectAsync(name);\r\n }\r\n\r\n //Функции для IOS\r\n var ru_cryptopro_npcades_10_native_bridge = {\r\n callbacksCount : 1,\r\n callbacks : {},\r\n\r\n // Automatically called by native layer when a result is available\r\n resultForCallback : function resultForCallback(callbackId, resultArray) {\r\n var callback = ru_cryptopro_npcades_10_native_bridge.callbacks[callbackId];\r\n if (!callback) return;\r\n callback.apply(null,resultArray);\r\n },\r\n\r\n // Use this in javascript to request native objective-c code\r\n // functionName : string (I think the name is explicit :p)\r\n // args : array of arguments\r\n // callback : function with n-arguments that is going to be called when the native code returned\r\n call : function call(functionName, args, callback) {\r\n var hasCallback = callback && typeof callback === \"function\";\r\n var callbackId = hasCallback ? ru_cryptopro_npcades_10_native_bridge.callbacksCount++ : 0;\r\n\r\n if (hasCallback)\r\n ru_cryptopro_npcades_10_native_bridge.callbacks[callbackId] = callback;\r\n\r\n var iframe = document.createElement(\"IFRAME\");\r\n var arrObjs = new Array(\"_CPNP_handle\");\r\n try{\r\n iframe.setAttribute(\"src\", \"cpnp-js-call:\" + functionName + \":\" + callbackId+ \":\" + encodeURIComponent(JSON.stringify(args, arrObjs)));\r\n } catch(e){\r\n alert(e);\r\n }\r\n document.documentElement.appendChild(iframe);\r\n iframe.parentNode.removeChild(iframe);\r\n iframe = null;\r\n }\r\n };\r\n\r\n function call_ru_cryptopro_npcades_10_native_bridge(functionName, array){\r\n var tmpobj;\r\n var ex;\r\n ru_cryptopro_npcades_10_native_bridge.call(functionName, array, function(e, response){\r\n ex = e;\r\n var str='tmpobj='+response;\r\n eval(str);\r\n if (typeof (tmpobj) === \"string\"){\r\n tmpobj = tmpobj.replace(/\\\\\\n/gm, \"\\n\");\r\n tmpobj = tmpobj.replace(/\\\\\\r/gm, \"\\r\");\r\n }\r\n });\r\n if(ex)\r\n throw ex;\r\n return tmpobj;\r\n }\r\n\r\n function show_firefox_missing_extension_dialog()\r\n {\r\n if (!window.cadesplugin_skip_extension_install)\r\n {\r\n var ovr = document.createElement('div');\r\n ovr.id = \"cadesplugin_ovr\";\r\n ovr.style = \"visibility: hidden; position: fixed; left: 0px; top: 0px; width:100%; height:100%; background-color: rgba(0,0,0,0.7)\";\r\n ovr.innerHTML = \"<div id='cadesplugin_ovr_item' style='position:relative; width:400px; margin:100px auto; background-color:#fff; border:2px solid #000; padding:10px; text-align:center; opacity: 1; z-index: 1500'>\" +\r\n \"<button id='cadesplugin_close_install' style='float: right; font-size: 10px; background: transparent; border: 1; margin: -5px'>X</button>\" +\r\n \"<p>Для работы КриптоПро ЭЦП Browser plugin на данном сайте необходимо расширение для браузера. Убедитесь, что оно у Вас включено или установите его.\" +\r\n \"<p><a href='https://www.cryptopro.ru/sites/default/files/products/cades/extensions/firefox_cryptopro_extension_latest.xpi'>Скачать расширение</a></p>\" +\r\n \"</div>\";\r\n document.getElementsByTagName(\"Body\")[0].appendChild(ovr);\r\n document.getElementById(\"cadesplugin_close_install\").addEventListener('click',function()\r\n {\r\n plugin_loaded_error(\"Плагин недоступен\");\r\n document.getElementById(\"cadesplugin_ovr\").style.visibility = 'hidden';\r\n });\r\n\r\n ovr.addEventListener('click',function()\r\n {\r\n plugin_loaded_error(\"Плагин недоступен\");\r\n document.getElementById(\"cadesplugin_ovr\").style.visibility = 'hidden';\r\n });\r\n ovr.style.visibility=\"visible\";\r\n }\r\n }\r\n function firefox_or_safari_nmcades_onload() {\r\n if (window.cadesplugin_extension_loaded_callback)\r\n window.cadesplugin_extension_loaded_callback();\r\n isFireFoxExtensionLoaded = true;\r\n cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded, plugin_loaded_error);\r\n }\r\n\r\n function nmcades_api_onload() {\r\n if (!isIE() && !isFireFox && !isSafari) {\r\n if (window.cadesplugin_extension_loaded_callback)\r\n window.cadesplugin_extension_loaded_callback();\r\n }\r\n window.postMessage(\"cadesplugin_echo_request\", \"*\");\r\n window.addEventListener(\"message\", function (event){\r\n if (typeof(event.data) !== \"string\" || !event.data.match(\"cadesplugin_loaded\"))\r\n return;\r\n if (cadesplugin_loaded_event_recieved)\r\n return;\r\n if(isFireFox || isSafari)\r\n {\r\n // Для Firefox, Сафари вместе с сообщением cadesplugin_loaded прилетает url для загрузки nmcades_plugin_api.js\r\n var url = event.data.substring(event.data.indexOf(\"url:\") + 4);\r\n if (!url.match(\"^moz-extension://[a-zA-Z0-9-]+/nmcades_plugin_api.js$\")\r\n && !url.match(\"^safari-extension://[a-zA-Z0-9-]+/[a-zA-Z0-9]+/nmcades_plugin_api.js$\"))\r\n {\r\n cpcsp_console_log(cadesplugin.LOG_LEVEL_ERROR, \"Bad url \\\"\" + url + \"\\\" for load CryptoPro Extension for CAdES Browser plug-in\");\r\n plugin_loaded_error();\r\n return;\r\n }\r\n var fileref = document.createElement('script');\r\n fileref.setAttribute(\"type\", \"text/javascript\");\r\n fileref.setAttribute(\"src\", url);\r\n fileref.onerror = plugin_loaded_error;\r\n fileref.onload = firefox_or_safari_nmcades_onload;\r\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\r\n }else {\r\n cpcsp_chrome_nmcades.check_chrome_plugin(plugin_loaded, plugin_loaded_error);\r\n }\r\n cadesplugin_loaded_event_recieved = true;\r\n }, false);\r\n }\r\n\r\n //Загружаем расширения для Chrome, Opera, YaBrowser, FireFox, Edge, Safari\r\n function load_extension()\r\n {\r\n if(isFireFox || isSafari){\r\n // вызываем callback руками т.к. нам нужно узнать ID расширения. Он уникальный для браузера.\r\n nmcades_api_onload();\r\n } else {\r\n // в асинхронном варианте для Yandex и Opera подключаем расширение из Opera store.\r\n if (isOpera || isYandex) {\r\n var fileref = document.createElement('script');\r\n fileref.setAttribute(\"type\", \"text/javascript\");\r\n fileref.setAttribute(\"src\", \"chrome-extension://epebfcehmdedogndhlcacafjaacknbcm/nmcades_plugin_api.js\");\r\n fileref.onerror = plugin_loaded_error;\r\n fileref.onload = nmcades_api_onload;\r\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\r\n } else {\r\n // для Chrome, Chromium, Chromium Edge расширение из Chrome store\r\n var fileref = document.createElement('script');\r\n fileref.setAttribute(\"type\", \"text/javascript\");\r\n fileref.setAttribute(\"src\", \"chrome-extension://iifchhfnnmpdbibifmljnfjhpififfog/nmcades_plugin_api.js\");\r\n fileref.onerror = plugin_loaded_error;\r\n fileref.onload = nmcades_api_onload;\r\n document.getElementsByTagName(\"head\")[0].appendChild(fileref);\r\n }\r\n }\r\n }\r\n\r\n //Загружаем плагин для NPAPI\r\n function load_npapi_plugin()\r\n {\r\n var elem = document.createElement('object');\r\n elem.setAttribute(\"id\", \"cadesplugin_object\");\r\n elem.setAttribute(\"type\", \"application/x-cades\");\r\n elem.setAttribute(\"style\", \"visibility: hidden\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(elem);\r\n pluginObject = document.getElementById(\"cadesplugin_object\");\r\n if(isIE())\r\n {\r\n var elem1 = document.createElement('object');\r\n elem1.setAttribute(\"id\", \"certEnrollClassFactory\");\r\n elem1.setAttribute(\"classid\", \"clsid:884e2049-217d-11da-b2a4-000e7bbb2b09\");\r\n elem1.setAttribute(\"style\", \"visibility: hidden\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(elem1);\r\n var elem2 = document.createElement('object');\r\n elem2.setAttribute(\"id\", \"webClassFactory\");\r\n elem2.setAttribute(\"classid\", \"clsid:B04C8637-10BD-484E-B0DA-B8A039F60024\");\r\n elem2.setAttribute(\"style\", \"visibility: hidden\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(elem2);\r\n }\r\n }\r\n\r\n //Отправляем событие что все ок.\r\n function plugin_loaded()\r\n {\r\n plugin_resolved = 1;\r\n if(canPromise)\r\n {\r\n plugin_resolve();\r\n }else {\r\n window.postMessage(\"cadesplugin_loaded\", \"*\");\r\n }\r\n }\r\n\r\n //Отправляем событие что сломались.\r\n function plugin_loaded_error(msg)\r\n {\r\n if(typeof(msg) === 'undefined' || typeof(msg) === 'object')\r\n msg = \"Плагин недоступен\";\r\n plugin_resolved = 1;\r\n if(canPromise)\r\n {\r\n plugin_reject(msg);\r\n } else {\r\n window.postMessage(\"cadesplugin_load_error\", \"*\");\r\n }\r\n }\r\n\r\n //проверяем что у нас хоть какое то событие ушло, и если не уходило кидаем еще раз ошибку\r\n function check_load_timeout()\r\n {\r\n if(plugin_resolved === 1)\r\n return;\r\n if(isFireFox)\r\n {\r\n if (!isFireFoxExtensionLoaded)\r\n show_firefox_missing_extension_dialog();\r\n }\r\n plugin_resolved = 1;\r\n if(canPromise)\r\n {\r\n plugin_reject(\"Истекло время ожидания загрузки плагина\");\r\n } else {\r\n window.postMessage(\"cadesplugin_load_error\", \"*\");\r\n }\r\n\r\n }\r\n\r\n //Вспомогательная функция для NPAPI\r\n function createPromise(arg)\r\n {\r\n return new Promise(arg);\r\n }\r\n\r\n function check_npapi_plugin (){\r\n try {\r\n var oAbout = CreateObject(\"CAdESCOM.About\");\r\n plugin_loaded();\r\n }\r\n catch (err) {\r\n document.getElementById(\"cadesplugin_object\").style.display = 'none';\r\n // Объект создать не удалось, проверим, установлен ли\r\n // вообще плагин. Такая возможность есть не во всех браузерах\r\n var mimetype = navigator.mimeTypes[\"application/x-cades\"];\r\n if (mimetype) {\r\n var plugin = mimetype.enabledPlugin;\r\n if (plugin) {\r\n plugin_loaded_error(\"Плагин загружен, но не создаются обьекты\");\r\n }else\r\n {\r\n plugin_loaded_error(\"Ошибка при загрузке плагина\");\r\n }\r\n }else\r\n {\r\n plugin_loaded_error(\"Плагин недоступен\");\r\n }\r\n }\r\n }\r\n\r\n //Проверяем работает ли плагин\r\n function check_plugin_working()\r\n {\r\n var div = document.createElement(\"div\");\r\n div.innerHTML = \"<!--[if lt IE 9]><i></i><![endif]-->\";\r\n var isIeLessThan9 = (div.getElementsByTagName(\"i\").length === 1);\r\n if (isIeLessThan9) {\r\n plugin_loaded_error(\"Internet Explorer версии 8 и ниже не поддерживается\");\r\n return;\r\n }\r\n\r\n if(isNativeMessageSupported())\r\n {\r\n load_extension();\r\n }else if(!canPromise) {\r\n window.addEventListener(\"message\", function (event){\r\n if (event.data !== \"cadesplugin_echo_request\")\r\n return;\r\n load_npapi_plugin();\r\n check_npapi_plugin();\r\n },\r\n false);\r\n }else\r\n {\r\n if(document.readyState === \"complete\"){\r\n load_npapi_plugin();\r\n check_npapi_plugin();\r\n } else {\r\n window.addEventListener(\"load\", function (event) {\r\n load_npapi_plugin();\r\n check_npapi_plugin();\r\n }, false);\r\n }\r\n }\r\n }\r\n\r\n function set_pluginObject(obj)\r\n {\r\n pluginObject = obj;\r\n }\r\n\r\n function is_capilite_enabled()\r\n {\r\n if ((typeof (cadesplugin.EnableInternalCSP) !== 'undefined') && cadesplugin.EnableInternalCSP)\r\n return true;\r\n return false;\r\n };\r\n\r\n //Export\r\n cadesplugin.JSModuleVersion = \"2.3.2\";\r\n cadesplugin.async_spawn = async_spawn;\r\n cadesplugin.set = set_pluginObject;\r\n cadesplugin.set_log_level = set_log_level;\r\n cadesplugin.getLastError = getLastError;\r\n cadesplugin.is_capilite_enabled = is_capilite_enabled;\r\n\r\n if(isNativeMessageSupported())\r\n {\r\n cadesplugin.CreateObjectAsync = CreateObjectAsync;\r\n cadesplugin.ReleasePluginObjects = ReleasePluginObjects;\r\n }\r\n\r\n if(!isNativeMessageSupported())\r\n {\r\n cadesplugin.CreateObject = CreateObject;\r\n }\r\n\r\n if(window.cadesplugin_load_timeout)\r\n {\r\n setTimeout(check_load_timeout, window.cadesplugin_load_timeout);\r\n }\r\n else\r\n {\r\n setTimeout(check_load_timeout, 20000);\r\n }\r\n\r\n set_constantValues();\r\n\r\n cadesplugin.current_log_level = cadesplugin.LOG_LEVEL_ERROR;\r\n window.cadesplugin = cadesplugin;\r\n check_plugin_working();\r\n}());\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(685);\n"],"names":["root","factory","exports","module","define","amd","self","addAttachedSignature","_afterPluginsLoaded","thumbprint","signedMessage","cadesplugin","window","_getCadesCert","cadesCertificate","eval","_generateCadesFn","cadesAttrs","cadesSignedData","cadesSigner","__cadesAsyncToken__","__createCadesPluginObject__","error","console","Error","_extractMeaningfulErrorMessage","messageBase64","cadesAuthAttrs","signature","currentTime","_getDateObj","Date","propset_Name","CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME","propset_Value","Buffer","from","toString","propset_Certificate","AuthenticatedAttributes2","Add","propset_ContentEncoding","CADESCOM_BASE64_TO_BINARY","propset_Content","propset_Options","CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN","VerifyCades","CADESCOM_PKCS7_TYPE","CoSignCades","addDetachedSignature","messageHash","cadesHashedData","propset_Algorithm","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256","SetHashValue","VerifyHash","CoSignHash","_cadesCertificate","name","issuerName","subjectName","validFrom","validTo","getOwnerInfo","getInfo","call","this","SUBJECT_TAGS_TRANSLATIONS","getIssuerInfo","ISSUER_TAGS_TRANSLATIONS","getExtendedKeyUsage","getDecodedExtendedKeyUsage","getAlgorithm","getCadesProp","propName","isValid","exportBase64","hasExtendedKeyUsage","oids","Certificate","base64","Export","cadesPublicKey","algorithmInfo","algorithm","oid","PublicKey","Algorithm","FriendlyName","Value","propertyValue","reduce","decodedOids","oidCode","OIDS_DICTIONARY","count","OIDS","ExtendedKeyUsage","EKUs","Count","cadesExtendedKeyUsage","Item","OID","push","tags","entitiesPath","entities","_parseCertInfo","certOids","Array","isArray","every","oidToCheck","some","certOid","IsValid","Result","Boolean","createAttachedSignature","unencryptedMessage","SignCades","createDetachedSignature","SignHash","createHash","hash","propset_DataEncoding","Hash","createXMLSignature","cadesSignedXML","propset_CheckCertificate","propset_SignatureType","CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED","propset_SignatureMethod","propset_DigestMethod","Sign","certificatesCache","getAllCertificates","resetCache","getAllUserCertificates","availableCertificates","getAllContainerCertificates","length","find","cert","cadesStore","cadesCertificates","cadesCertificatesCount","Open","CADESCOM_CONTAINER_STORE","CAPICOM_MY_STORE","CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED","Certificates","certificateList","_extractCommonName","SubjectName","IssuerName","Thumbprint","ValidFromDate","ValidToDate","Close","CAPICOM_CURRENT_USER_STORE","getCertificate","validOnly","getCertificates","foundCertificate","getUserCertificates","getContainerCertificates","Find","CAPICOM_CERTIFICATE_FIND_TIME_VALID","CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY","CAPICOM_PROPID_KEY_PROV_INFO","getCspVersion","cspVersion","cadesAbout","CSPVersion","getPluginVersion","cadesVersion","PluginVersion","Version","getSystemInfo","sysInfo","isValidSystemSetup","systemInfo","_isSupportedCadesVersion","_isSupportedCSPVersion","CADESCOM_ATTRIBUTE_OTHER","CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION","CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME","CADESCOM_AllowNoOutstandingRequest","CADESCOM_AllowNone","CADESCOM_AllowUntrustedCertificate","CADESCOM_AllowUntrustedRoot","CADESCOM_CADES_BES","CADESCOM_CADES_DEFAULT","CADESCOM_CADES_T","CADESCOM_CADES_X_LONG_TYPE_1","CADESCOM_CURRENT_USER_STORE","CADESCOM_DISPLAY_DATA_ATTRIBUTE","CADESCOM_DISPLAY_DATA_CONTENT","CADESCOM_DISPLAY_DATA_NONE","CADESCOM_ENCODE_ANY","CADESCOM_ENCODE_BASE64","CADESCOM_ENCODE_BINARY","CADESCOM_ENCRYPTION_ALGORITHM_3DES","CADESCOM_ENCRYPTION_ALGORITHM_AES","CADESCOM_ENCRYPTION_ALGORITHM_DES","CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89","CADESCOM_ENCRYPTION_ALGORITHM_RC2","CADESCOM_ENCRYPTION_ALGORITHM_RC4","CADESCOM_HASH_ALGORITHM_CP_GOST_3411","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256_HMAC","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512_HMAC","CADESCOM_HASH_ALGORITHM_CP_GOST_3411_HMAC","CADESCOM_HASH_ALGORITHM_MD2","CADESCOM_HASH_ALGORITHM_MD4","CADESCOM_HASH_ALGORITHM_MD5","CADESCOM_HASH_ALGORITHM_SHA1","CADESCOM_HASH_ALGORITHM_SHA_256","CADESCOM_HASH_ALGORITHM_SHA_384","CADESCOM_HASH_ALGORITHM_SHA_512","CADESCOM_LOCAL_MACHINE_STORE","CADESCOM_STRING_TO_UCS2LE","CADESCOM_SkipInstallToStore","CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING","CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE","CAPICOM_ACTIVE_DIRECTORY_USER_STORE","CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION","CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME","CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME","CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY","CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY","CAPICOM_CERTIFICATE_FIND_EXTENSION","CAPICOM_CERTIFICATE_FIND_ISSUER_NAME","CAPICOM_CERTIFICATE_FIND_KEY_USAGE","CAPICOM_CERTIFICATE_FIND_ROOT_NAME","CAPICOM_CERTIFICATE_FIND_SHA1_HASH","CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME","CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME","CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED","CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID","CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT","CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY","CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME","CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME","CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE","CAPICOM_EKU_CLIENT_AUTH","CAPICOM_EKU_OTHER","CAPICOM_EKU_SMARTCARD_LOGON","CAPICOM_LOCAL_MACHINE_STORE","CAPICOM_MEMORY_STORE","CAPICOM_OID_KEY_USAGE_EXTENSION","CAPICOM_OID_OTHER","CAPICOM_PROPID_ACCESS_STATE","CAPICOM_PROPID_ARCHIVED","CAPICOM_PROPID_ARCHIVED_KEY_HASH","CAPICOM_PROPID_AUTO_ENROLL","CAPICOM_PROPID_CROSS_CERT_DIST_POINTS","CAPICOM_PROPID_CTL_USAGE","CAPICOM_PROPID_DATE_STAMP","CAPICOM_PROPID_DESCRIPTION","CAPICOM_PROPID_EFS","CAPICOM_PROPID_ENHKEY_USAGE","CAPICOM_PROPID_ENROLLMENT","CAPICOM_PROPID_EXTENDED_ERROR_INFO","CAPICOM_PROPID_FIRST_RESERVED","CAPICOM_PROPID_FIRST_USER","CAPICOM_PROPID_FORTEZZA_DATA","CAPICOM_PROPID_FRIENDLY_NAME","CAPICOM_PROPID_HASH_PROP","CAPICOM_PROPID_IE30_RESERVED","CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH","CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH","CAPICOM_PROPID_KEY_CONTEXT","CAPICOM_PROPID_KEY_IDENTIFIER","CAPICOM_PROPID_KEY_PROV_HANDLE","CAPICOM_PROPID_KEY_SPEC","CAPICOM_PROPID_LAST_RESERVED","CAPICOM_PROPID_LAST_USER","CAPICOM_PROPID_MD5_HASH","CAPICOM_PROPID_NEXT_UPDATE_LOCATION","CAPICOM_PROPID_PUBKEY_ALG_PARA","CAPICOM_PROPID_PUBKEY_HASH_RESERVED","CAPICOM_PROPID_PVK_FILE","CAPICOM_PROPID_RENEWAL","CAPICOM_PROPID_SHA1_HASH","CAPICOM_PROPID_SIGNATURE_HASH","CAPICOM_PROPID_SMART_CARD_DATA","CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH","CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH","CAPICOM_PROPID_UNKNOWN","CAPICOM_SMART_CARD_USER_STORE","CAPICOM_STORE_OPEN_EXISTING_ONLY","CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED","CAPICOM_STORE_OPEN_READ_ONLY","CAPICOM_STORE_OPEN_READ_WRITE","CHECK_NONE","CHECK_OFFLINE_REVOCATION_STATUS","CHECK_ONLINE_REVOCATION_STATUS","CHECK_SIGNATURE_VALIDITY","CHECK_TIME_VALIDITY","CHECK_TRUSTED_ROOT","LOG_LEVEL_DEBUG","LOG_LEVEL_ERROR","LOG_LEVEL_INFO","TRUST_CTL_IS_NOT_SIGNATURE_VALID","TRUST_CTL_IS_NOT_TIME_VALID","TRUST_CTL_IS_NOT_VALID_FOR_USAGE","TRUST_IS_CYCLIC","TRUST_IS_NOT_SIGNATURE_VALID","TRUST_IS_NOT_TIME_NESTED","TRUST_IS_NOT_TIME_VALID","TRUST_IS_NOT_VALID_FOR_USAGE","TRUST_IS_PARTIAL_CHAIN","TRUST_IS_REVOKED","TRUST_IS_UNTRUSTED_ROOT","TRUST_REVOCATION_STATUS_UNKNOWN","XmlDsigGost3410Url","XmlDsigGost3410UrlObsolete","XmlDsigGost3411Url","XmlDsigGost3411UrlObsolete","possibleNames","translation","isSetLogLevel","isPluginLoaded","fn","canPromise","Promise","set_log_level","apply","args","match","replace","errorContainer","getLastError","message","test","searchResult","callback","cadesGeneratorsAPI","CreateObjectAsync","callbackName","callbackLiteral","String","callbackArguments","callbackBody","crossEnvCallbackLiteral","Function","join","_getCadesUserCert","log","_getCadesContainerCert","cadesCertificateList","certificatesCount","dateObj","getVarDate","version","Number","major","patch","tagsTranslations","rawInfo","extractedEntities","map","group","segmentsMatch","trim","title","description","oidIdentifierMatch","oidIdentifier","isTranslated","oidTranslation","tagTranslation","tag","pluginObject","plugin_resolved","plugin_reject","plugin_resolve","isOpera","isFireFox","isSafari","isYandex","cadesplugin_loaded_event_recieved","isFireFoxExtensionLoaded","resolve","reject","browserSpecs","check_browser","ru_cryptopro_npcades_10_native_bridge","callbacksCount","callbacks","resultForCallback","callbackId","resultArray","functionName","hasCallback","iframe","document","createElement","arrObjs","setAttribute","encodeURIComponent","JSON","stringify","e","alert","documentElement","appendChild","parentNode","removeChild","JSModuleVersion","async_spawn","set","set_pluginObject","is_capilite_enabled","isNativeMessageSupported","ReleasePluginObjects","CreateObject","cadesplugin_load_timeout","setTimeout","check_load_timeout","set_constantValues","current_log_level","check_plugin_working","tem","ua","navigator","userAgent","M","exec","appName","appVersion","splice","cpcsp_console_log","level","msg","info","postMessage","CADESCOM_MEMORY_STORE","CADESCOM_SMART_CARD_USER_STORE","CADESCOM_XADES_DEFAULT","CADESCOM_XADES_BES","CADESCOM_XADES_T","CADESCOM_XADES_X_LONG_TYPE_1","CADESCOM_XMLDSIG_TYPE","XmlDsigGost3411Url2012256","XmlDsigGost3410Url2012256","XmlDsigGost3411Url2012512","XmlDsigGost3410Url2012512","CADESCOM_AUTHENTICATED_ATTRIBUTE_MACHINE_INFO","CADESCOM_InstallCertChainToContainer","CADESCOM_UseContainerStore","ENABLE_CARRIER_TYPE_CSP","ENABLE_CARRIER_TYPE_FKC_NO_SM","ENABLE_CARRIER_TYPE_FKC_SM","ENABLE_ANY_CARRIER_TYPE","DISABLE_EVERY_CARRIER_OPERATION","ENABLE_CARRIER_OPEN_ENUM","ENABLE_CARRIER_CREATE","ENABLE_ANY_OPERATION","CADESCOM_PRODUCT_CSP","CADESCOM_PRODUCT_OCSP","CADESCOM_PRODUCT_TSP","MEDIA_TYPE_REGISTRY","MEDIA_TYPE_HDIMAGE","MEDIA_TYPE_CLOUD","MEDIA_TYPE_SCARD","XCN_CRYPT_STRING_BASE64HEADER","AT_KEYEXCHANGE","AT_SIGNATURE","CARRIER_FLAG_REMOVABLE","CARRIER_FLAG_UNIQUE","CARRIER_FLAG_PROTECTED","CARRIER_FLAG_FUNCTIONAL_CARRIER","CARRIER_FLAG_SECURE_MESSAGING","CARRIER_FLAG_ABLE_VISUALISE_SIGNATURE","CARRIER_FLAG_VIRTUAL","generatorFunc","continuer","verb","arg","result","generator","err","done","value","then","onFulfilled","onRejected","prototype","slice","arguments","bind","isIE","isIOS","call_ru_cryptopro_npcades_10_native_bridge","getElementById","ActiveXObject","decimalToHexString","number","toUpperCase","GetMessageFromException","exception","cpcsp_chrome_nmcades","array","tmpobj","ex","response","str","show_firefox_missing_extension_dialog","cadesplugin_skip_extension_install","ovr","id","style","innerHTML","getElementsByTagName","addEventListener","plugin_loaded_error","visibility","firefox_or_safari_nmcades_onload","cadesplugin_extension_loaded_callback","check_chrome_plugin","plugin_loaded","nmcades_api_onload","event","data","url","substring","indexOf","fileref","onerror","onload","load_extension","load_npapi_plugin","elem","elem1","elem2","createPromise","check_npapi_plugin","display","mimetype","mimeTypes","enabledPlugin","div","readyState","obj","EnableInternalCSP","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","__webpack_exports__"],"sourceRoot":""} |