PageSourceSearch

https://app.konsol.ru/static/js/8805-b7a0f7c1.js

js konsol.ru collected 2026-10-08 07:41:59 UTC 36,483 bytes, 2 lines download raw bytes

1/*! For license information please see 8805-b7a0f7c1.js.LICENSE.txt */
2!function(){try{var t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r=(new t.Error).stack;r&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[r]="337deb81-3edf-4ac4-bebc-698dce29cba8",t._sentryDebugIdIdentifier="sentry-dbid-337deb81-3edf-4ac4-bebc-698dce29cba8")}catch(t){}}();var _global="undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:{};_global.SENTRY_RELEASE={id:"2026-10-07-e42bdd47"},(self.webpackChunkfront=self.webpackChunkfront||[]).push([[8805],{38805:function(t,r,a){a.r(r),a.d(r,{AppDownloadPage:function(){return Ae}});var o=a(80656),i=a(6054),l=a.n(i),u=(a(95008),a(35293),a(85152)),c=a(67393),d=a(88729),p=a(14129),h=a(61372),g=a(68549);function _typeof(t){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(t)}function _slicedToArray(t,r){return function _arrayWithHoles(t){if(Array.isArray(t))return t}(t)||function _iterableToArrayLimit(t,r){var a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=a){var o,i,l,u,c=[],d=!0,p=!1;try{if(l=(a=a.call(t)).next,0===r){if(Object(a)!==a)return;d=!1}else for(;!(d=(o=l.call(a)).done)&&(c.push(o.value),c.length!==r);d=!0);}catch(h){p=!0,i=h}finally{try{if(!d&&null!=a.return&&(u=a.return(),Object(u)!==u))return}finally{if(p)throw i}}return c}}(t,r)||_unsupportedIterableToArray(t,r)||function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _toConsumableArray(t){return function _arrayWithoutHoles(t){if(Array.isArray(t))return _arrayLikeToArray(t)}(t)||function _iterableToArray(t){if("undefined"!==typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||_unsupportedIterableToArray(t)||function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function _classCallCheck(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}function _defineProperties(t,r){for(var a=0;a<r.length;a++){var o=r[a];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,_toPropertyKey(o.key),o)}}function _createClass(t,r,a){return r&&_defineProperties(t.prototype,r),a&&_defineProperties(t,a),Object.defineProperty(t,"prototype",{writable:!1}),t}function _toPropertyKey(t){var r=function _toPrimitive(t,r){if("object"!==_typeof(t)||null===t)return t;var a=t[Symbol.toPrimitive];if(void 0!==a){var o=a.call(t,r||"default");if("object"!==_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"===_typeof(r)?r:String(r)}function _createForOfIteratorHelper(t,r){var a="undefined"!==typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!a){if(Array.isArray(t)||(a=_unsupportedIterableToArray(t))||r&&t&&"number"===typeof t.length){a&&(t=a);var o=0,i=function F(){};return{s:i,n:function n(){return o>=t.length?{done:!0}:{done:!1,value:t[o++]}},e:function e(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var l,u=!0,c=!1;return{s:function s(){a=a.call(t)},n:function n(){var t=a.next();return u=t.done,t},e:function e(t){c=!0,l=t},f:function f(){try{u||null==a.return||a.return()}finally{if(c)throw l}}}}function _unsupportedIterableToArray(t,r){if(t){if("string"===typeof t)return _arrayLikeToArray(t,r);var a=Object.prototype.toString.call(t).slice(8,-1);return"Object"===a&&t.constructor&&(a=t.constructor.name),"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(t,r):void 0}}function _arrayLikeToArray(t,r){(null==r||r>t.length)&&(r=t.length);for(var a=0,o=new Array(r);a<r;a++)o[a]=t[a];return o}var v,m,y=Object.defineProperty,w=Object.getOwnPropertySymbols,C=Object.prototype.hasOwnProperty,b=Object.prototype.propertyIsEnumerable,_=function __defNormalProp(t,r,a){return r in t?y(t,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[r]=a},x=function __spreadValues(t,r){for(var a in r||(r={}))C.call(r,a)&&_(t,a,r[a]);if(w){var o,i=_createForOfIteratorHelper(w(r));try{for(i.s();!(o=i.n()).done;){a=o.value;b.call(r,a)&&_(t,a,r[a])}}catch(l){i.e(l)}finally{i.f()}}return t},S=function __objRest(t,r){var a={};for(var o in t)C.call(t,o)&&r.indexOf(o)<0&&(a[o]=t[o]);if(null!=t&&w){var i,l=_createForOfIteratorHelper(w(t));try{for(l.s();!(i=l.n()).done;){o=i.value;r.indexOf(o)<0&&b.call(t,o)&&(a[o]=t[o])}}catch(u){l.e(u)}finally{l.f()}}return a};!function(t){var r=function(){function _QrCode(t,r,a,o){if(_classCallCheck(this,_QrCode),this.version=t,this.errorCorrectionLevel=r,this.modules=[],this.isFunction=[],t<_QrCode.MIN_VERSION||t>_QrCode.MAX_VERSION)throw new RangeError("Version value out of range");if(o<-1||o>7)throw new RangeError("Mask value out of range");this.size=4*t+17;for(var i=[],l=0;l<this.size;l++)i.push(!1);for(var u=0;u<this.size;u++)this.modules.push(i.slice()),this.isFunction.push(i.slice());this.drawFunctionPatterns();var c=this.addEccAndInterleave(a);if(this.drawCodewords(c),-1==o)for(var d=1e9,p=0;p<8;p++){this.applyMask(p),this.drawFormatBits(p);var h=this.getPenaltyScore();h<d&&(o=p,d=h),this.applyMask(p)}assert(0<=o&&o<=7),this.mask=o,this.applyMask(o),this.drawFormatBits(o),this.isFunction=[]}return _createClass(_QrCode,[{key:"getModule",value:function getModule(t,r){return 0<=t&&t<this.size&&0<=r&&r<this.size&&this.modules[r][t]}},{key:"getModules",value:function getModules(){return this.modules}},{key:"drawFunctionPatterns",value:function drawFunctionPatterns(){for(var t=0;t<this.size;t++)this.setFunctionModule(6,t,t%2==0),this.setFunctionModule(t,6,t%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);for(var r=this.getAlignmentPatternPositions(),a=r.length,o=0;o<a;o++)for(var i=0;i<a;i++)0==o&&0==i||0==o&&i==a-1||o==a-1&&0==i||this.drawAlignmentPattern(r[o],r[i]);this.drawFormatBits(0),this.drawVersion()}},{key:"drawFormatBits",value:function drawFormatBits(t){for(var r=this.errorCorrectionLevel.formatBits<<3|t,a=r,o=0;o<10;o++)a=a<<1^1335*(a>>>9);var i=21522^(r<<10|a);assert(i>>>15==0);for(var l=0;l<=5;l++)this.setFunctionModule(8,l,getBit(i,l));this.setFunctionModule(8,7,getBit(i,6)),this.setFunctionModule(8,8,getBit(i,7)),this.setFunctionModule(7,8,getBit(i,8));for(var u=9;u<15;u++)this.setFunctionModule(14-u,8,getBit(i,u));for(var c=0;c<8;c++)this.setFunctionModule(this.size-1-c,8,getBit(i,c));for(var d=8;d<15;d++)this.setFunctionModule(8,this.size-15+d,getBit(i,d));this.setFunctionModule(8,this.size-8,!0)}},{key:"drawVersion",value:function drawVersion(){if(!(this.version<7)){for(var t=this.version,r=0;r<12;r++)t=t<<1^7973*(t>>>11);var a=this.version<<12|t;assert(a>>>18==0);for(var o=0;o<18;o++){var i=getBit(a,o),l=this.size-11+o%3,u=Math.floor(o/3);this.setFunctionModule(l,u,i),this.setFunctionModule(u,l,i)}}}},{key:"drawFinderPattern",value:function drawFinderPattern(t,r){for(var a=-4;a<=4;a++)for(var o=-4;o<=4;
2o++){var i=Math.max(Math.abs(o),Math.abs(a)),l=t+o,u=r+a;0<=l&&l<this.size&&0<=u&&u<this.size&&this.setFunctionModule(l,u,2!=i&&4!=i)}}},{key:"drawAlignmentPattern",value:function drawAlignmentPattern(t,r){for(var a=-2;a<=2;a++)for(var o=-2;o<=2;o++)this.setFunctionModule(t+o,r+a,1!=Math.max(Math.abs(o),Math.abs(a)))}},{key:"setFunctionModule",value:function setFunctionModule(t,r,a){this.modules[r][t]=a,this.isFunction[r][t]=!0}},{key:"addEccAndInterleave",value:function addEccAndInterleave(t){var r=this.version,a=this.errorCorrectionLevel;if(t.length!=_QrCode.getNumDataCodewords(r,a))throw new RangeError("Invalid argument");for(var o=_QrCode.NUM_ERROR_CORRECTION_BLOCKS[a.ordinal][r],i=_QrCode.ECC_CODEWORDS_PER_BLOCK[a.ordinal][r],l=Math.floor(_QrCode.getNumRawDataModules(r)/8),u=o-l%o,c=Math.floor(l/o),d=[],p=_QrCode.reedSolomonComputeDivisor(i),h=0,g=0;h<o;h++){var v=t.slice(g,g+c-i+(h<u?0:1));g+=v.length;var m=_QrCode.reedSolomonComputeRemainder(v,p);h<u&&v.push(0),d.push(v.concat(m))}for(var y=[],w=function _loop(t){d.forEach(function(r,a){(t!=c-i||a>=u)&&y.push(r[t])})},C=0;C<d[0].length;C++)w(C);return assert(y.length==l),y}},{key:"drawCodewords",value:function drawCodewords(t){if(t.length!=Math.floor(_QrCode.getNumRawDataModules(this.version)/8))throw new RangeError("Invalid argument");for(var r=0,a=this.size-1;a>=1;a-=2){6==a&&(a=5);for(var o=0;o<this.size;o++)for(var i=0;i<2;i++){var l=a-i,u=0==(a+1&2)?this.size-1-o:o;!this.isFunction[u][l]&&r<8*t.length&&(this.modules[u][l]=getBit(t[r>>>3],7-(7&r)),r++)}}assert(r==8*t.length)}},{key:"applyMask",value:function applyMask(t){if(t<0||t>7)throw new RangeError("Mask value out of range");for(var r=0;r<this.size;r++)for(var a=0;a<this.size;a++){var o=void 0;switch(t){case 0:o=(a+r)%2==0;break;case 1:o=r%2==0;break;case 2:o=a%3==0;break;case 3:o=(a+r)%3==0;break;case 4:o=(Math.floor(a/3)+Math.floor(r/2))%2==0;break;case 5:o=a*r%2+a*r%3==0;break;case 6:o=(a*r%2+a*r%3)%2==0;break;case 7:o=((a+r)%2+a*r%3)%2==0;break;default:throw new Error("Unreachable")}!this.isFunction[r][a]&&o&&(this.modules[r][a]=!this.modules[r][a])}}},{key:"getPenaltyScore",value:function getPenaltyScore(){for(var t=0,r=0;r<this.size;r++){for(var a=!1,o=0,i=[0,0,0,0,0,0,0],l=0;l<this.size;l++)this.modules[r][l]==a?5==++o?t+=_QrCode.PENALTY_N1:o>5&&t++:(this.finderPenaltyAddHistory(o,i),a||(t+=this.finderPenaltyCountPatterns(i)*_QrCode.PENALTY_N3),a=this.modules[r][l],o=1);t+=this.finderPenaltyTerminateAndCount(a,o,i)*_QrCode.PENALTY_N3}for(var u=0;u<this.size;u++){for(var c=!1,d=0,p=[0,0,0,0,0,0,0],h=0;h<this.size;h++)this.modules[h][u]==c?5==++d?t+=_QrCode.PENALTY_N1:d>5&&t++:(this.finderPenaltyAddHistory(d,p),c||(t+=this.finderPenaltyCountPatterns(p)*_QrCode.PENALTY_N3),c=this.modules[h][u],d=1);t+=this.finderPenaltyTerminateAndCount(c,d,p)*_QrCode.PENALTY_N3}for(var g=0;g<this.size-1;g++)for(var v=0;v<this.size-1;v++){var m=this.modules[g][v];m==this.modules[g][v+1]&&m==this.modules[g+1][v]&&m==this.modules[g+1][v+1]&&(t+=_QrCode.PENALTY_N2)}var y,w=0,C=_createForOfIteratorHelper(this.modules);try{for(C.s();!(y=C.n()).done;){w=y.value.reduce(function(t,r){return t+(r?1:0)},w)}}catch(x){C.e(x)}finally{C.f()}var b=this.size*this.size,_=Math.ceil(Math.abs(20*w-10*b)/b)-1;return assert(0<=_&&_<=9),assert(0<=(t+=_*_QrCode.PENALTY_N4)&&t<=2568888),t}},{key:"getAlignmentPatternPositions",value:function getAlignmentPatternPositions(){if(1==this.version)return[];for(var t=Math.floor(this.version/7)+2,r=32==this.version?26:2*Math.ceil((4*this.version+4)/(2*t-2)),a=[6],o=this.size-7;a.length<t;o-=r)a.splice(1,0,o);return a}},{key:"finderPenaltyCountPatterns",value:function finderPenaltyCountPatterns(t){var r=t[1];assert(r<=3*this.size);var a=r>0&&t[2]==r&&t[3]==3*r&&t[4]==r&&t[5]==r;return(a&&t[0]>=4*r&&t[6]>=r?1:0)+(a&&t[6]>=4*r&&t[0]>=r?1:0)}},{key:"finderPenaltyTerminateAndCount",value:function finderPenaltyTerminateAndCount(t,r,a){return t&&(this.finderPenaltyAddHistory(r,a),r=0),r+=this.size,this.finderPenaltyAddHistory(r,a),this.finderPenaltyCountPatterns(a)}},{key:"finderPenaltyAddHistory",value:function finderPenaltyAddHistory(t,r){0==r[0]&&(t+=this.size),r.pop(),r.unshift(t)}}],[{key:"encodeText",value:function encodeText(r,a){var o=t.QrSegment.makeSegments(r);return _QrCode.encodeSegments(o,a)}},{key:"encodeBinary",value:function encodeBinary(r,a){var o=t.QrSegment.makeBytes(r);return _QrCode.encodeSegments([o],a)}},{key:"encodeSegments",value:function encodeSegments(t,r){var a,i,l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:40,c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,d=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];if(!(_QrCode.MIN_VERSION<=l&&l<=u&&u<=_QrCode.MAX_VERSION)||c<-1||c>7)throw new RangeError("Invalid value");for(a=l;;a++){var p=8*_QrCode.getNumDataCodewords(a,r),h=o.getTotalBits(t,a);if(h<=p){i=h;break}if(a>=u)throw new RangeError("Data too long")}for(var g=0,v=[_QrCode.Ecc.MEDIUM,_QrCode.Ecc.QUARTILE,_QrCode.Ecc.HIGH];g<v.length;g++){var m=v[g];d&&i<=8*_QrCode.getNumDataCodewords(a,m)&&(r=m)}var y,w=[],C=_createForOfIteratorHelper(t);try{for(C.s();!(y=C.n()).done;){var b=y.value;appendBits(b.mode.modeBits,4,w),appendBits(b.numChars,b.mode.numCharCountBits(a),w);var _,x=_createForOfIteratorHelper(b.getData());try{for(x.s();!(_=x.n()).done;){var S=_.value;w.push(S)}}catch(A){x.e(A)}finally{x.f()}}}catch(A){C.e(A)}finally{C.f()}assert(w.length==i);var E=8*_QrCode.getNumDataCodewords(a,r);assert(w.length<=E),appendBits(0,Math.min(4,E-w.length),w),appendBits(0,(8-w.length%8)%8,w),assert(w.length%8==0);for(var k=236;w.length<E;k^=253)appendBits(k,8,w);for(var M=[];8*M.length<w.length;)M.push(0);
2return w.forEach(function(t,r){return M[r>>>3]|=t<<7-(7&r)}),new _QrCode(a,r,M,c)}},{key:"getNumRawDataModules",value:function getNumRawDataModules(t){if(t<_QrCode.MIN_VERSION||t>_QrCode.MAX_VERSION)throw new RangeError("Version number out of range");var r=(16*t+128)*t+64;if(t>=2){var a=Math.floor(t/7)+2;r-=(25*a-10)*a-55,t>=7&&(r-=36)}return assert(208<=r&&r<=29648),r}},{key:"getNumDataCodewords",value:function getNumDataCodewords(t,r){return Math.floor(_QrCode.getNumRawDataModules(t)/8)-_QrCode.ECC_CODEWORDS_PER_BLOCK[r.ordinal][t]*_QrCode.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][t]}},{key:"reedSolomonComputeDivisor",value:function reedSolomonComputeDivisor(t){if(t<1||t>255)throw new RangeError("Degree out of range");for(var r=[],a=0;a<t-1;a++)r.push(0);r.push(1);for(var o=1,i=0;i<t;i++){for(var l=0;l<r.length;l++)r[l]=_QrCode.reedSolomonMultiply(r[l],o),l+1<r.length&&(r[l]^=r[l+1]);o=_QrCode.reedSolomonMultiply(o,2)}return r}},{key:"reedSolomonComputeRemainder",value:function reedSolomonComputeRemainder(t,r){var a,o=r.map(function(t){return 0}),i=_createForOfIteratorHelper(t);try{var l=function _loop2(){var t=a.value^o.shift();o.push(0),r.forEach(function(r,a){return o[a]^=_QrCode.reedSolomonMultiply(r,t)})};for(i.s();!(a=i.n()).done;)l()}catch(u){i.e(u)}finally{i.f()}return o}},{key:"reedSolomonMultiply",value:function reedSolomonMultiply(t,r){if(t>>>8!=0||r>>>8!=0)throw new RangeError("Byte out of range");for(var a=0,o=7;o>=0;o--)a=a<<1^285*(a>>>7),a^=(r>>>o&1)*t;return assert(a>>>8==0),a}}]),_QrCode}();r.MIN_VERSION=1,r.MAX_VERSION=40,r.PENALTY_N1=3,r.PENALTY_N2=3,r.PENALTY_N3=40,r.PENALTY_N4=10,r.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],r.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]];function appendBits(t,r,a){if(r<0||r>31||t>>>r!=0)throw new RangeError("Value out of range");for(var o=r-1;o>=0;o--)a.push(t>>>o&1)}function getBit(t,r){return 0!=(t>>>r&1)}function assert(t){if(!t)throw new Error("Assertion error")}t.QrCode=r;var a=function(){function _QrSegment(t,r,a){if(_classCallCheck(this,_QrSegment),this.mode=t,this.numChars=r,this.bitData=a,r<0)throw new RangeError("Invalid argument");this.bitData=a.slice()}return _createClass(_QrSegment,[{key:"getData",value:function getData(){return this.bitData.slice()}}],[{key:"makeBytes",value:function makeBytes(t){var r,a=[],o=_createForOfIteratorHelper(t);try{for(o.s();!(r=o.n()).done;){appendBits(r.value,8,a)}}catch(i){o.e(i)}finally{o.f()}return new _QrSegment(_QrSegment.Mode.BYTE,t.length,a)}},{key:"makeNumeric",value:function makeNumeric(t){if(!_QrSegment.isNumeric(t))throw new RangeError("String contains non-numeric characters");for(var r=[],a=0;a<t.length;){var o=Math.min(t.length-a,3);appendBits(parseInt(t.substring(a,a+o),10),3*o+1,r),a+=o}return new _QrSegment(_QrSegment.Mode.NUMERIC,t.length,r)}},{key:"makeAlphanumeric",value:function makeAlphanumeric(t){if(!_QrSegment.isAlphanumeric(t))throw new RangeError("String contains unencodable characters in alphanumeric mode");var r,a=[];for(r=0;r+2<=t.length;r+=2){var o=45*_QrSegment.ALPHANUMERIC_CHARSET.indexOf(t.charAt(r));appendBits(o+=_QrSegment.ALPHANUMERIC_CHARSET.indexOf(t.charAt(r+1)),11,a)}return r<t.length&&appendBits(_QrSegment.ALPHANUMERIC_CHARSET.indexOf(t.charAt(r)),6,a),new _QrSegment(_QrSegment.Mode.ALPHANUMERIC,t.length,a)}},{key:"makeSegments",value:function makeSegments(t){return""==t?[]:_QrSegment.isNumeric(t)?[_QrSegment.makeNumeric(t)]:_QrSegment.isAlphanumeric(t)?[_QrSegment.makeAlphanumeric(t)]:[_QrSegment.makeBytes(_QrSegment.toUtf8ByteArray(t))]}},{key:"makeEci",value:function makeEci(t){var r=[];if(t<0)throw new RangeError("ECI assignment value out of range");if(t<128)appendBits(t,8,r);else if(t<16384)appendBits(2,2,r),appendBits(t,14,r);else{if(!(t<1e6))throw new RangeError("ECI assignment value out of range");appendBits(6,3,r),appendBits(t,21,r)}return new _QrSegment(_QrSegment.Mode.ECI,0,r)}},{key:"isNumeric",value:function isNumeric(t){return _QrSegment.NUMERIC_REGEX.test(t)}},{key:"isAlphanumeric",value:function isAlphanumeric(t){return _QrSegment.ALPHANUMERIC_REGEX.test(t)}},{key:"getTotalBits",value:function getTotalBits(t,r){var a,o=0,i=_createForOfIteratorHelper(t);try{for(i.s();!(a=i.n()).done;){var l=a.value,u=l.mode.numCharCountBits(r);if(l.numChars>=1<<u)return 1/0;o+=4+u+l.bitData.length}}catch(c){i.e(c)}finally{i.f()}return o}},{key:"toUtf8ByteArray",value:function toUtf8ByteArray(t){t=encodeURI(t);for(var r=[],a=0;a<t.length;a++)"%"!=t.charAt(a)?r.push(t.charCodeAt(a)):(r.push(parseInt(t.substring(a+1,a+3),16)),a+=2);return r}}]),_QrSegment}();a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:";var o=a;t.QrSegment=a}(v||(v={})),function(t){var r=_createClass(function _Ecc(t,r){_classCallCheck(this,_Ecc),this.ordinal=t,this.formatBits=r});r.LOW=new r(0,1),r.MEDIUM=new r(1,0),r.QUARTILE=new r(2,3),r.HIGH=new r(3,2),t.Ecc=r}((m=v||(v={})).QrCode||(m.QrCode={})),function(t){!function(t){var r=function(){function _Mode(t,r){_classCallCheck(this,_Mode),this.modeBits=t,this.numBitsCharCount=r}return _createClass(_Mode,[{key:"numCharCountBits",value:function numCharCountBits(t){return this.numBitsCharCount[Math.floor((t+7)/17)]}}]),_Mode}();r.NUMERIC=new r(1,[10,12,14]),r.ALPHANUMERIC=new r(2,[9,11,13]),r.BYTE=new r(4,[8,16,16]),r.KANJI=new r(8,[8,10,12]),r.ECI=new r(7,[0,0,0]);t.Mode=r}(t.QrSegment||(t.QrSegment={}))}(v||(v={}));var E=v,k={L:E.QrCode.Ecc.LOW,M:E.QrCode.Ecc.MEDIUM,Q:E.QrCode.Ecc.QUARTILE,H:E.QrCode.Ecc.HIGH},M="#FFFFFF",A="#000000",N=!1;function generatePath(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=[];return t.forEach(function(t,o){var i=null;t.forEach(function(l,u){if(!l&&null!==i)return a.push("M".concat(i+r," ").concat(o+r,"h").concat(u-i,"v1H").concat(i+r,"z")),void(i=null);if(u!==t.length-1)l&&null===i&&(i=u);else{if(!l)return;null===i?a.push("M".concat(u+r,",").concat(o+r," h1v1H").concat(u+r,"z")):a.push("M".concat(i+r,",").concat(o+r," h").concat(u+1-i,"v1H").concat(i+r,"z"))}})}),a.join("")}function excavateModules(t,r){return t.slice().map(function(t,a){return a<r.y||a>=r.y+r.h?t:t.map(function(t,a){return(a<r.x||a>=r.x+r.w)&&t})})}function useQRCode(t){var r=t.value,a=t.level,o=t.minVersion,i=t.includeMargin,l=t.marginSize,c=t.imageSettings,d=t.size,p=t.boostLevel,h=u.useMemo(function(){var t=(Array.isArray(r)?r:[r]).reduce(function(t,r){return t.push.apply(t,_toConsumableArray(E.QrSegment.makeSegments(r))),t},[]);return E.QrCode.encodeSegments(t,k[a],o,void 0,void 0,p)}
2,[r,a,o,p]),g=u.useMemo(function(){var t=h.getModules(),r=function getMarginSize(t,r){return null!=r?Math.max(Math.floor(r),0):t?4:0}(i,l),a=t.length+2*r,o=function getImageSettings(t,r,a,o){if(null==o)return null;var i=t.length+2*a,l=Math.floor(.1*r),u=i/r,c=(o.width||l)*u,d=(o.height||l)*u,p=null==o.x?t.length/2-c/2:o.x*u,h=null==o.y?t.length/2-d/2:o.y*u,g=null==o.opacity?1:o.opacity,v=null;if(o.excavate){var m=Math.floor(p),y=Math.floor(h);v={x:m,y:y,w:Math.ceil(c+p-m),h:Math.ceil(d+h-y)}}return{x:p,y:h,h:d,w:c,excavation:v,opacity:g,crossOrigin:o.crossOrigin}}(t,d,r,c);return{cells:t,margin:r,numCells:a,calculatedImageSettings:o}},[h,d,c,i,l]),v=g.cells,m=g.margin,y=g.numCells,w=g.calculatedImageSettings;return{qrcode:h,margin:m,cells:v,numCells:y,calculatedImageSettings:w}}var R=function(){try{(new Path2D).addPath(new Path2D)}catch(t){return!1}return!0}();u.forwardRef(function QRCodeCanvas2(t,r){var a=t,o=a.value,i=a.size,l=void 0===i?128:i,c=a.level,d=void 0===c?"L":c,p=a.bgColor,h=void 0===p?M:p,g=a.fgColor,v=void 0===g?A:g,m=a.includeMargin,y=void 0===m?N:m,w=a.minVersion,C=void 0===w?1:w,b=a.boostLevel,_=a.marginSize,E=a.imageSettings,k=S(a,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","marginSize","imageSettings"]),P=k.style,Q=S(k,["style"]),I=null==E?void 0:E.src,B=u.useRef(null),O=u.useRef(null),D=u.useCallback(function(t){B.current=t,"function"===typeof r?r(t):r&&(r.current=t)},[r]),T=_slicedToArray(u.useState(!1),2),L=(T[0],T[1]),j=useQRCode({value:o,level:d,minVersion:C,boostLevel:b,includeMargin:y,marginSize:_,imageSettings:E,size:l}),z=j.margin,H=j.cells,U=j.numCells,V=j.calculatedImageSettings;u.useEffect(function(){if(null!=B.current){var t=B.current,r=t.getContext("2d");if(!r)return;var a=H,o=O.current,i=null!=V&&null!==o&&o.complete&&0!==o.naturalHeight&&0!==o.naturalWidth;i&&null!=V.excavation&&(a=excavateModules(H,V.excavation));var u=window.devicePixelRatio||1;t.height=t.width=l*u;var c=l/U*u;r.scale(c,c),r.fillStyle=h,r.fillRect(0,0,U,U),r.fillStyle=v,R?r.fill(new Path2D(generatePath(a,z))):H.forEach(function(t,a){t.forEach(function(t,o){t&&r.fillRect(o+z,a+z,1,1)})}),V&&(r.globalAlpha=V.opacity),i&&r.drawImage(o,V.x+z,V.y+z,V.w,V.h)}}),u.useEffect(function(){L(!1)},[I]);var Y=x({height:l,width:l},P),q=null;return null!=I&&(q=u.createElement("img",{src:I,key:I,style:{display:"none"},onLoad:function onLoad(){L(!0)},ref:O,crossOrigin:null==V?void 0:V.crossOrigin})),u.createElement(u.Fragment,null,u.createElement("canvas",x({style:Y,height:l,width:l,ref:D,role:"img"},Q)),q)}).displayName="QRCodeCanvas";var P=u.forwardRef(function QRCodeSVG2(t,r){var a=t,o=a.value,i=a.size,l=void 0===i?128:i,c=a.level,d=void 0===c?"L":c,p=a.bgColor,h=void 0===p?M:p,g=a.fgColor,v=void 0===g?A:g,m=a.includeMargin,y=void 0===m?N:m,w=a.minVersion,C=void 0===w?1:w,b=a.boostLevel,_=a.title,E=a.marginSize,k=a.imageSettings,R=S(a,["value","size","level","bgColor","fgColor","includeMargin","minVersion","boostLevel","title","marginSize","imageSettings"]),P=useQRCode({value:o,level:d,minVersion:C,boostLevel:b,includeMargin:y,marginSize:E,imageSettings:k,size:l}),Q=P.margin,I=P.cells,B=P.numCells,O=P.calculatedImageSettings,D=I,T=null;null!=k&&null!=O&&(null!=O.excavation&&(D=excavateModules(I,O.excavation)),T=u.createElement("image",{href:k.src,height:O.h,width:O.w,x:O.x+Q,y:O.y+Q,preserveAspectRatio:"none",opacity:O.opacity,crossOrigin:O.crossOrigin}));var L=generatePath(D,Q);return u.createElement("svg",x({height:l,width:l,viewBox:"0 0 ".concat(B," ").concat(B),ref:r,role:"img"},R),!!_&&u.createElement("title",null,_),u.createElement("path",{fill:h,d:"M0,0 h".concat(B,"v").concat(B,"H0z"),shapeRendering:"crispEdges"}),u.createElement("path",{fill:v,d:L,shapeRendering:"crispEdges"}),T)});P.displayName="QRCodeSVG";a(96425),a(75970),a(65595);var Q=a(20390),I=a.n(Q),B=a(7790),O=a.n(B),D=a(56289),T=a.n(D),L=a(9272),j=a.n(L),z=a(3872),H=a.n(z),U=a(29525),V=a.n(U),Y=a(51383),q=a.n(Y),G=a(74734),Z=a.n(G),K=a(77695),W=a.n(K),X=a(24588),$=a.n(X),J=["appstore","googleplay","rustore"],ee={appstore:"App Store",googleplay:"Google Play",rustore:"RuStore"},te=["googleplay","rustore"],re=["qr","store"],ne=/huawei|honor|harmonyos|openharmony|hm
2score/i,ae=function firstAvailable(t,r){var a;return null!==(a=H()(r).call(r,function(r){return Boolean(t[r])}))&&void 0!==a?a:null},oe=function resolveTargetStore(t){var r,a=t.navigator,o=t.search,i=t.links,l=new(V())(o),u=(0,g.ou)(a),c=l.get("store");return function isAppStoreId(t){return I()(J).call(J,t)}(c)&&i[c]?{platform:u,store:c}:l.has("qr")?{platform:u,store:null}:"ios"===u?{platform:u,store:ae(i,["appstore"])}:ne.test(null!==(r=null===a||void 0===a?void 0:a.userAgent)&&void 0!==r?r:"")?{platform:"android",store:ae(i,["rustore","googleplay"])}:"android"===u?{platform:u,store:ae(i,te)}:{platform:u,store:null}},ie=function buildStoreUrl(t,r,a){var i,l=null!==(i=r[t])&&void 0!==i?i:"",u=function getUtmQuery(t){var r,a,i=T()(r=q()(Z()(a=new(V())(t)).call(a))).call(r,function(t){var r=(0,o.Z)(t,1)[0];return W()(r).call(r,"utm_")});return new(V())(i).toString()}(a);if("googleplay"!==t||!u)return l;try{var c=new($())(l);return"play.google.com"!==c.hostname?l:(c.searchParams.set("referrer",u),c.toString())}catch(d){return l}},le=function buildSelfUrl(t){var r=new($())(t);return re.forEach(function(t){return r.searchParams.delete(t)}),r.hash="",r.toString()},se=a(29365),ue=a(32319),ce=a(21695),de=a(81403),fe=["variant","className","children"],pe={primary:"bg-(--app-download-button) text-(--app-download-button-text) hover:bg-(--app-download-button-hover) hover:text-(--app-download-button-text) active:bg-(--app-download-button-hover)",secondary:"bg-(--app-download-secondary-button) text-(--app-download-secondary-button-text) hover:text-(--app-download-secondary-button-text)"},he=function StoreLink(t){var r=t.variant,a=void 0===r?"primary":r,o=t.className,i=t.children,l=(0,ue.Z)(t,fe);return(0,de.jsx)("a",(0,se.Z)((0,se.Z)({className:(0,ce.Z)("flex h-15 items-center justify-center gap-2.5 rounded-full px-7 font-cofo text-[15px] tracking-[0.04em] uppercase no-underline transition-colors duration-150",pe[a],o)},l),{},{children:i}))},ge=function DesktopQrView(t){var r=t.title,a=t.pageUrl,o=t.stores,i=t.onOpenStore,u=(0,d.$G)().t;return(0,de.jsxs)("div",{className:"mx-auto grid w-full max-w-300 grid-cols-[repeat(auto-fit,minmax(min(100%,440px),1fr))] items-center gap-[clamp(40px,6vw,96px)]",children:[(0,de.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,de.jsx)("h1",{className:"m-0 font-graphik text-[clamp(40px,5.2vw,76px)] leading-none font-bold tracking-[-0.035em] text-balance text-(--app-download-ink)",children:r}),(0,de.jsx)("p",{className:"m-0 max-w-130 text-[clamp(18px,1.6vw,24px)] leading-[1.4] text-pretty text-(--app-download-subtle)",children:u("pages.appDownloadPage.desktop.description")}),(0,de.jsx)("div",{className:"flex flex-wrap gap-3",children:l()(o).call(o,function(t){var r=t.store,a=t.url;return(0,de.jsx)(he,{href:a,target:"_blank",rel:"noopener noreferrer",onClick:function onClick(){return i(r)},"data-testid":"app-download-store-".concat(r),children:ee[r]},r)})})]}),(0,de.jsx)("div",{className:"flex justify-center",children:(0,de.jsxs)("div",{className:"relative w-full max-w-105",children:[(0,de.jsx)("div",{"aria-hidden":!0,className:"absolute top-7 -right-5 -bottom-5 left-7 rounded-4xl bg-(--app-download-qr-backdrop)"}),(0,de.jsxs)("div",{className:"relative flex flex-col gap-5 rounded-4xl bg-white p-7 shadow-[0_20px_60px_-30px_rgba(22,22,22,0.35)]","data-testid":"app-download-main-qr",children:[(0,de.jsx)(P,{value:a,size:364,level:"M",marginSize:0,className:"block aspect-square h-auto w-full",title:u("pages.appDownloadPage.desktop.mainQrTitle")}),(0,de.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-[20px] bg-(--app-download-qr-caption) px-5 py-4",children:[(0,de.jsx)("span",{className:"font-cofo text-[13px] leading-[1.35] tracking-[0.04em] whitespace-pre-line text-(--app-download-ink) uppercase",children:u("pages.appDownloadPage.desktop.mainQrCaption")}),(0,de.jsx)("span",{"aria-hidden":!0,className:"size-2.5 shrink-0 rounded-full bg-(--app-download-accent)"})]})]})]})})]})},ve=(a(24757),{finish:"finished",stop:"stopped",cancel:"cancelled"}),me=function nextCountdownStatus(t,r){return"counting"===t?ve[r]:t},ye=function useRedirectCountdown(t){var r=t.onFinish,a=t.delayMs,i=void 0===a?3e3:a,l=(0,u.useState)("counting"),c=(0,o.Z)(l,2),d=c[0],p=c[1],h=(0,u.useState)(0),g=(0,o.Z)(h,2),v=g[0],m=g[1],y=(0,u.useRef)(r);(0,u.useEffect)(function(){y.current=r},[r]),(0,u.useEffect)(function(){if("counting"===d){var t=Date.now(),r=setInterval(function(){var a=Date.now()-t;m(a),a>=i&&(clearInterval(r),p(function(t){return me(t,"finish")}),y.current())},100);return function(){return clearInterval(r)}}},[d,i]);var w=(0,u.useCallback)(function(){return p(function(t){return me(t,"stop")})},[]),C=(0,u.useCallback)(function(){return p(function(t){return me(t,"cancel")})},[]),b=function getCountdownSnapshot(t,r){if(r<=0)return{leftMs:0,secondsLeft:0,progress:1};var a=Math.min(Math.max(t,0),r),o=r-a;return{leftMs:o,secondsLeft:Math.ceil(o/1e3),progress:a/r}}(v,i),_=b.secondsLeft,x=b.progress;return{status:d,secondsLeft:_,progress:x,stop:w,cancel:C}},we=function StoreRedirect(t){var r=t.appName,a=t.store,o=t.storeUrl,i=t.alternative,l=t.onAutoRedirect,u=t.onOpenStore,c=(0,d.$G)().t,p=ee[a],h=ye({onFinish:function onFinish(){l(),window.location.replace(o)}}),g=h.status,v=h.secondsLeft,m=h.progress,y=h.stop,w=h.cancel,C="counting"===g,b=function openStore(t){y(),u(t)},_=C?c("pages.appDownloadPage.redirect.opening",{store:p}):c("pages.appDownloadPage.redirect.doneTitle",{appName:r}),x=C?c("pages.appDownloadPage.redirect.countdown",{seconds:v}):i?c("pages.appDownloadPage.redirect.chooseStore"):c("pages.appDownloadPage.redirect.tapButton",{store:p});return(0,de.jsxs)("div",{className:"mx-auto flex w-full max-w-105 flex-1 flex-col gap-8","data-testid":"app-download-redirect",children:[(0,de.jsxs)("div",{className:"flex flex-1 flex-col justify-center gap-5 pt-4",children:[(0,de.jsx)("h1",{className:"m-0 font-graphik text-[40px] leading-none font-bold tracking-[-0.035em] text-balance text-(--app-download-ink)","aria-live":"polite",children:_}),(0,de.jsx)("p",{className:"m-0 text-lg leading-[1.4] text-pretty text-(--app-download-subtle)",children:x}),C&&(0,de.jsx)("div",{className:"h-1.5 overflow-hidden rounded-md bg-(--app-download-track)",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(100*m),children:(0,de.jsx)("div",{className:"h-full rounded-md bg-(--app-download-accent) transition-[width] duration-100 ease-linear",style:{width:"".concat(100*m,"%")}})})]}),(0,de.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,de.jsxs)(he,{href:o,className:"h-16",onClick:function onClick(){return b(a)},"data-testid":"app-download-open-store",children:[c("pages.appDownloadPage.redirect.open",{store:p}
2),(0,de.jsx)("span",{"aria-hidden":!0,children:"\u2192"})]}),i&&(0,de.jsx)(he,{href:i.url,variant:"secondary",onClick:function onClick(){return b(i.store)},"data-testid":"app-download-alternative-store",children:ee[i.store]}),C&&(0,de.jsx)("button",{type:"button",className:"h-12 cursor-pointer border-0 bg-transparent font-graphik text-[15px] text-(--app-download-subtle)",onClick:w,"data-testid":"app-download-stay",children:c("pages.appDownloadPage.redirect.stay")})]})]})},Ce=a(74171),be=a.n(Ce),_e={page:"#161616",panel:"#EEE1CC",ink:"#161616",subtle:"#6E675D",button:"#161616",buttonHover:"#7B2FF7",buttonText:"#FFFFFF",secondaryButton:"#D6F07A",secondaryButtonText:"#161616",qrBackdrop:"#C9B99E",qrCaption:"#D6F07A",accent:"#7B2FF7",track:"#DCCDB4"},xe={page:"var(--foreground)",panel:"#F4F4F6",ink:"var(--foreground)",subtle:"var(--secondary)",button:"var(--primary)",buttonHover:"var(--primary-hover)",buttonText:"var(--primary-foreground)",secondaryButton:"var(--background)",secondaryButtonText:"var(--foreground)",qrBackdrop:"var(--border)",qrCaption:"var(--muted)",accent:"var(--primary)",track:"var(--border)"},Se={page:"--app-download-page",panel:"--app-download-panel",ink:"--app-download-ink",subtle:"--app-download-subtle",button:"--app-download-button",buttonHover:"--app-download-button-hover",buttonText:"--app-download-button-text",secondaryButton:"--app-download-secondary-button",secondaryButtonText:"--app-download-secondary-button-text",qrBackdrop:"--app-download-qr-backdrop",qrCaption:"--app-download-qr-caption",accent:"--app-download-accent",track:"--app-download-track"},Ee=function getAppDownloadPaletteStyle(t){var r,a=t?_e:xe;return O()(l()(r=be()(Se)).call(r,function(t){return[Se[t],a[t]]}))},ke="app_download_page_open_store",Me="px-[clamp(20px,7vw,120px)]",Ae=function AppDownloadPage(){var t,r=(0,d.$G)().t,a=(0,h.Iu)(),i=a.config,v=a.isKonsolHrm,m=(0,c.TH)().search,y=(0,u.useMemo)(function(){var t;return function getAppStoreLinks(t){var r,a=[["appstore",null===t||void 0===t?void 0:t.ios],["googleplay",null===t||void 0===t?void 0:t.android],["rustore",null===t||void 0===t?void 0:t.rustore]];return O()(T()(r=l()(a).call(a,function(t){var r,a=(0,o.Z)(t,2),i=a[0],l=a[1];return[i,null!==(r=null===l||void 0===l?void 0:j()(l).call(l))&&void 0!==r?r:""]})).call(r,function(t){return(0,o.Z)(t,2)[1].length>0}))}(null===(t=i.links)||void 0===t?void 0:t.app)},[null===(t=i.links)||void 0===t?void 0:t.app]),w=function getAvailableStores(t){return T()(J).call(J,function(r){return Boolean(t[r])})}(y),C=(0,u.useState)(function(){return oe({navigator:"undefined"===typeof navigator?null:navigator,search:m,links:y})}),b=(0,o.Z)(C,1)[0],_=b.platform,x=b.store,S=x?function getAlternativeStore(t,r){return I()(te).call(te,t)?ae(r,T()(te).call(te,function(r){return r!==t})):null}(x,y):null,E=function sendMetric(t,r){return(0,g._T)(t,_,(0,g.A8)(),{store:r,theme:i.id})};return(0,de.jsx)("div",{className:"flex min-h-dvh w-full flex-col bg-(--app-download-page) font-graphik text-(--app-download-ink) antialiased",style:Ee(v),children:(0,de.jsxs)("div",{className:"mt-[clamp(16px,3vw,32px)] flex flex-1 flex-col rounded-b-[clamp(28px,4vw,56px)] bg-(--app-download-panel)",children:[(0,de.jsx)("header",{className:"flex items-center pt-[clamp(20px,2.5vw,32px)] ".concat(Me),children:(0,de.jsx)(p.r,{role:"img","aria-label":i.title,"data-testid":"logo",className:"block h-[clamp(36px,3.6vw,52px)] w-auto max-w-full"})}),(0,de.jsx)("main",{className:x?"flex flex-1 px-5 pt-8 pb-9":"flex flex-1 items-center pt-[clamp(40px,6vw,80px)] pb-[clamp(48px,7vw,96px)] ".concat(Me),children:function renderContent(){return 0===w.length?(0,de.jsxs)("div",{className:"mx-auto flex w-full max-w-300 flex-col gap-8","data-testid":"app-download-empty",children:[(0,de.jsx)("h1",{className:"m-0 font-graphik text-[clamp(40px,5.2vw,76px)] leading-none font-bold tracking-[-0.035em] text-balance text-(--app-download-ink)",children:r("pages.appDownloadPage.empty.title")}),(0,de.jsx)("p",{className:"m-0 max-w-130 text-[clamp(18px,1.6vw,24px)] leading-[1.4] text-pretty text-(--app-download-subtle)",children:r("pages.appDownloadPage.empty.description",{appName:i.title})})]}):x?(0,de.jsx)(we,{appName:i.title,store:x,storeUrl:ie(x,y,m),alternative:S?{store:S,url:ie(S,y,m)}:null,onAutoRedirect:function onAutoRedirect(){return E("app_download_page_redirect",x)},onOpenStore:function onOpenStore(t){return E(ke,t)}}):(0,de.jsx)(ge,{title:r("pages.appDownloadPage.title",{appName:i.title}),pageUrl:le(window.location.href),stores:l()(w).call(w,function(t){return{store:t,url:ie(t,y,m)}}),onOpenStore:function onOpenStore(t){return E(ke,t)}})}()})]})})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.