{"version":3,"sources":["webpack:///./node_modules/markdown-it/lib/common/utils.js","webpack:///./node_modules/markdown-it-emoji/lib/render.js","webpack:///./node_modules/lamejs/src/js/common.js","webpack:///./node_modules/markdown-it/lib/rules_block/heading.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/markdown-it/lib/index.js","webpack:///./node_modules/markdown-it/lib/token.js","webpack:///./node_modules/markdown-it/lib/rules_inline/state_inline.js","webpack:///./node_modules/lamejs/src/js/CalcNoiseData.js","webpack:///./src/images/good_on.png","webpack:///./node_modules/katex/src/domTree.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/katex/src/ParseError.js","webpack:///./node_modules/katex/src/symbols.js","webpack:///./src/images/sending2.gif","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/babel-runtime/core-js/get-iterator.js","webpack:///./node_modules/babel-runtime/core-js/object/keys.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/markdown-it/lib/rules_block/lheading.js","webpack:///./node_modules/uslug/index.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/markdown-it/lib/presets/zero.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/markdown-it/lib/rules_inline/text_collapse.js","webpack:///./node_modules/clone/clone.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/lamejs/src/js/VBRSeekInfo.js","webpack:///./node_modules/lamejs/src/js/PsyModel.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/lamejs/src/js/IIISideInfo.js","webpack:///./node_modules/markdown-it/lib/rules_inline/autolink.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/unorm/lib/unorm.js","webpack:///./node_modules/uslug/lib/Z.js","webpack:///./node_modules/lamejs/src/js/GainAnalysis.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/core-js/library/modules/es6.object.keys.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/uslug/lib/L.js","webpack:///./node_modules/markdown-it-toc-and-anchor/dist/index.js","webpack:///./node_modules/katex/src/buildTree.js","webpack:///./node_modules/markdown-it/lib/rules_core/block.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/markdown-it-emoji/index.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/markdown-it-emoji/lib/normalize_opts.js","webpack:///./node_modules/lamejs/src/js/Presets.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./src/images/soundwave.png","webpack:///./node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/markdown-it/lib/rules_inline/newline.js","webpack:///./node_modules/markdown-it/lib/presets/commonmark.js","webpack:///./node_modules/mdurl/format.js","webpack:///./node_modules/markdown-it/lib/rules_block/paragraph.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/library/fn/get-iterator.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/markdown-it/lib/ruler.js","webpack:///./node_modules/markdown-it-emoji/lib/replace.js","webpack:///./node_modules/lamejs/src/js/CBRNewIterationLoop.js","webpack:///./node_modules/markdown-it/lib/rules_inline/backticks.js","webpack:///./node_modules/markdown-it/lib/rules_block/list.js","webpack:///./node_modules/lamejs/src/js/Encoder.js","webpack:///./node_modules/markdown-it-mark/index.js","webpack:///./node_modules/markdown-it/lib/rules_core/normalize.js","webpack:///./node_modules/markdown-it/lib/parser_inline.js","webpack:///./node_modules/uc.micro/categories/Z/regex.js","webpack:///./node_modules/katex/src/mathMLTree.js","webpack:///./node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/markdown-it-abbr/index.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/markdown-it-sub/index.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/markdown-it/lib/helpers/index.js","webpack:///./node_modules/markdown-it/lib/common/html_re.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/lamejs/src/js/Reservoir.js","webpack:///./node_modules/katex/src/Options.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/markdown-it/lib/rules_inline/entity.js","webpack:///./node_modules/lamejs/src/js/Tables.js","webpack:///./node_modules/markdown-it/lib/rules_block/html_block.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/uslug/lib/N.js","webpack:///./node_modules/lamejs/src/js/MPEGMode.js","webpack:///./node_modules/katex/src/Style.js","webpack:///./node_modules/lamejs/src/js/BitStream.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/markdown-it/lib/rules_inline/escape.js","webpack:///./node_modules/katex/src/Parser.js","webpack:///./node_modules/uc.micro/categories/Cf/regex.js","webpack:///./node_modules/markdown-it/lib/rules_core/state_core.js","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/lamejs/src/js/ReplayGain.js","webpack:///./node_modules/lamejs/src/js/CalcNoiseResult.js","webpack:///./node_modules/katex/src/fontMetricsData.js","webpack:///./node_modules/markdown-it/lib/parser_block.js","webpack:///./node_modules/katex/src/functions.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/markdown-it-sup/index.js","webpack:///./node_modules/uc.micro/categories/P/regex.js","webpack:///./node_modules/markdown-it/lib/renderer.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_title.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/uslug/lib/M.js","webpack:///./node_modules/markdown-it/lib/rules_block/table.js","webpack:///./node_modules/lamejs/src/js/FFT.js","webpack:///./node_modules/katex/src/environments.js","webpack:///./node_modules/markdown-it/lib/rules_block/state_block.js","webpack:///./node_modules/markdown-it/lib/rules_inline/balance_pairs.js","webpack:///./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/markdown-it/lib/presets/default.js","webpack:///./node_modules/core-js/library/fn/object/keys.js","webpack:///./node_modules/lamejs/src/js/Version.js","webpack:///./src/images/close.png","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/mdurl/decode.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./src/images/good.png","webpack:///./node_modules/markdown-it/lib/rules_inline/strikethrough.js","webpack:///./src/components/DropDownRefresh.vue?da42","webpack:///./node_modules/markdown-it/lib/rules_inline/image.js","webpack:///./node_modules/lamejs/src/js/LameGlobalFlags.js","webpack:///./node_modules/lamejs/src/js/L3Side.js","webpack:///./node_modules/markdown-it/lib/rules_core/linkify.js","webpack:///./node_modules/markdown-it/lib/rules_block/code.js","webpack:///./node_modules/vue-markdown/dist/vue-markdown.common.js","webpack:///./src/images/refresh.png","webpack:///./node_modules/markdown-it/lib/rules_core/inline.js","webpack:///./src/images/bad.png","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/lamejs/src/js/III_psy_xmin.js","webpack:///./node_modules/katex/src/Settings.js","webpack:///./node_modules/lamejs/src/js/VBRQuantize.js","webpack:///./node_modules/markdown-it-katex/index.js","webpack:///./node_modules/uc.micro/categories/Cc/regex.js","webpack:///./node_modules/markdown-it/lib/parser_core.js","webpack:///./node_modules/markdown-it-emoji/lib/data/shortcuts.js","webpack:///./node_modules/lamejs/src/js/ATH.js","webpack:///./node_modules/js-audio-recorder/dist/recorder.js","webpack:///./node_modules/match-at/lib/matchAt.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/markdown-it/lib/rules_core/smartquotes.js","webpack:///./node_modules/linkify-it/lib/re.js","webpack:///./node_modules/katex/src/utils.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./src/components/DropDownRefresh.vue","webpack:///./src/components/DropDownRefresh.vue?87a6","webpack:///./src/components/DropDownRefresh.vue?fb82","webpack:///./src/components/DropDownRefresh.vue?efe0","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/markdown-it/lib/rules_inline/text.js","webpack:///./node_modules/lamejs/src/js/QuantizePVT.js","webpack:///./node_modules/markdown-it/lib/rules_core/replacements.js","webpack:///./node_modules/markdown-it/lib/common/entities.js","webpack:///./node_modules/lamejs/src/js/LameInternalFlags.js","webpack:///./node_modules/markdown-it-task-lists/index.js","webpack:///./node_modules/markdown-it/lib/rules_block/fence.js","webpack:///./node_modules/lamejs/src/js/NsPsy.js","webpack:///./node_modules/markdown-it/lib/rules_inline/html_inline.js","webpack:///./node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/mdurl/encode.js","webpack:///./node_modules/katex/katex.js","webpack:///./node_modules/markdown-it/lib/rules_inline/emphasis.js","webpack:///./node_modules/katex/src/buildCommon.js","webpack:///./node_modules/katex/src/parseData.js","webpack:///./node_modules/uc.micro/properties/Any/regex.js","webpack:///./node_modules/katex/src/fontMetrics.js","webpack:///./node_modules/markdown-it/lib/rules_inline/link.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/markdown-it-ins/index.js","webpack:///./node_modules/katex/src/buildHTML.js","webpack:///./node_modules/markdown-it/index.js","webpack:///./node_modules/uc.micro/index.js","webpack:///./node_modules/markdown-it/lib/rules_block/reference.js","webpack:///./src/images/bad_on.png","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/mdurl/index.js","webpack:///./node_modules/lamejs/src/js/Takehiro.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/js-audio-recorder/index.js","webpack:///./node_modules/mdurl/parse.js","webpack:///./node_modules/lamejs/src/js/index.js","webpack:///./node_modules/lamejs/src/js/Quantize.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/lamejs/src/js/Lame.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_label.js","webpack:///./node_modules/lamejs/src/js/VBRTag.js","webpack:///./node_modules/markdown-it/lib/common/html_blocks.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/markdown-it/lib/helpers/parse_link_destination.js","webpack:///./node_modules/uslug/lib/uslug.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/katex/src/Lexer.js","webpack:///./node_modules/katex/src/buildMathML.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/markdown-it-footnote/index.js","webpack:///./node_modules/js-base64/base64.mjs","webpack:///./node_modules/markdown-it/lib/rules_block/blockquote.js","webpack:///./node_modules/katex/src/delimiter.js","webpack:///./node_modules/katex/src/parseTree.js","webpack:///./node_modules/lamejs/src/js/MeanBits.js","webpack:///./node_modules/lamejs/src/js/III_psy_ratio.js","webpack:///./src/images/share2.png","webpack:///./node_modules/lamejs/src/js/GrInfo.js","webpack:///./node_modules/lamejs/src/js/NewMDCT.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/linkify-it/index.js","webpack:///./node_modules/markdown-it/lib/rules_block/hr.js","webpack:///./node_modules/lamejs/src/js/ScaleFac.js","webpack:///./node_modules/markdown-it-deflist/index.js","webpack:///./src/images/mai.png"],"names":["_class","obj","Object","prototype","toString","call","isString","_hasOwnProperty","hasOwnProperty","has","object","key","assign","sources","Array","slice","arguments","forEach","source","TypeError","keys","arrayReplaceAt","src","pos","newElements","concat","isValidEntityCode","c","fromCodePoint","surrogate1","surrogate2","String","fromCharCode","UNESCAPE_MD_RE","ENTITY_RE","UNESCAPE_ALL_RE","RegExp","DIGITAL_ENTITY_TEST_RE","entities","replaceEntityPattern","match","name","code","charCodeAt","test","toLowerCase","parseInt","unescapeMd","str","indexOf","replace","unescapeAll","escaped","entity","HTML_ESCAPE_TEST_RE","HTML_ESCAPE_REPLACE_RE","HTML_REPLACEMENTS","replaceUnsafeChar","ch","escapeHtml","REGEXP_ESCAPE_RE","escapeRE","isSpace","isWhiteSpace","UNICODE_PUNCT_RE","isPunctChar","isMdAsciiPunct","normalizeReference","trim","toUpperCase","exports","lib","mdurl","ucmicro","module","tokens","idx","content","new_byte","count","Int8Array","new_short","Int16Array","new_int","Int32Array","new_float","Float32Array","new_double","Float64Array","new_float_n","args","length","sz","A","i","push","new_int_n","new_short_n","new_array_n","Arrays","a","fromIndex","toIndex","val","System","srcPos","dest","destPos","srcEnd","out","println","message","console","log","printf","apply","Util","ShortBlock","ordinal","this","SQRT2","FAST_LOG10","x","Math","log10","FAST_LOG10_X","y","short_block_allowed","short_block_coupled","short_block_dispensed","short_block_forced","Float","VbrMode","MAX_VALUE","vbr_off","vbr_mt","vbr_rh","vbr_abr","vbr_mtrh","vbr_default","assert","state","startLine","endLine","silent","level","tmp","token","bMarks","tShift","max","eMarks","skipSpacesBack","skipCharsBack","line","markup","map","children","it","utils","helpers","Renderer","ParserCore","ParserBlock","ParserInline","LinkifyIt","punycode","config","zero","commonmark","BAD_PROTO_RE","GOOD_DATA_RE","validateLink","url","RECODE_HOSTNAME_FOR","normalizeLink","parsed","parse","hostname","protocol","toASCII","er","encode","format","normalizeLinkText","toUnicode","decode","MarkdownIt","presetName","options","inline","block","core","renderer","linkify","configure","set","presets","self","Error","components","rules","ruler","enableOnly","rules2","ruler2","enable","list","ignoreInvalid","result","isArray","chain","missed","filter","disable","use","plugin","env","State","process","render","parseInline","inlineMode","renderInline","Token","type","tag","nesting","attrs","info","meta","hidden","attrIndex","len","attrPush","attrData","attrSet","value","attrGet","attrJoin","StateInline","md","outTokens","posMax","pending","pendingLevel","cache","delimiters","pushPending","scanDelims","start","canSplitWord","lastChar","nextChar","can_open","can_close","isLastWhiteSpace","isLastPunctChar","isNextWhiteSpace","isNextPunctChar","left_flanking","right_flanking","marker","common","CalcNoiseData","global_gain","sfb_count1","step","noise","noise_log","createClass","classes","splice","join","span","height","depth","maxFontSize","style","attributes","documentFragment","symbolNode","italic","skew","setAttribute","attribute","toNode","document","createElement","className","attr","appendChild","toMarkup","escape","styles","hyphenate","frag","createDocumentFragment","node","createTextNode","marginRight","needsSpan","toInteger","min","index","ParseError","lexer","position","error","undefined","input","_input","begin","end","__proto__","defineSymbol","mode","font","group","math","text","main","ams","accent","bin","close","inner","mathord","op","open","punct","rel","spacing","textord","mathTextSymbols","charAt","textSymbols","letters","$at","iterated","_t","_i","point","O","done","split","__esModule","root","nodeType","freeGlobal","global","window","maxInt","base","tMin","tMax","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","floor","stringFromCharCode","RangeError","array","fn","mapDomain","string","parts","labels","encoded","ucs2decode","extra","output","counter","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","basic","j","oldi","w","t","baseMinusT","inputLength","n","bias","lastIndexOf","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","terminate","l","nextLine","terminatorRules","getRules","isEmpty","sCount","blkIndent","skipChars","skipSpaces","getLines","isObject","S","valueOf","html","xhtmlOut","breaks","langPrefix","typographer","quotes","highlight","maxNesting","is","curr","last","_instanceof","nativeMap","nativeSet","nativePromise","Map","_","Set","Promise","clone","parent","circular","includeNonEnumerable","allParents","allChildren","useBuffer","Buffer","_clone","child","proto","resolve","reject","then","err","__isArray","__isRegExp","__getRegExpFlags","lastIndex","__isDate","Date","getTime","isBuffer","allocUnsafe","copy","create","getPrototypeOf","keyChild","valueChild","entryChild","add","getOwnPropertyDescriptor","getOwnPropertySymbols","symbols","symbol","descriptor","enumerable","defineProperty","allPropertyNames","getOwnPropertyNames","propertyName","Infinity","__objToStr","o","re","flags","ignoreCase","multiline","clonePrototype","defined","VBRSeekInfo","sum","seen","want","size","bag","nVbrNumFrames","nBytesWritten","TotalFrameSize","FFT","Encoder","PsyModel","fft","LOG10","rpelev","rpelev2","rpelev_s","rpelev2_s","DELBARK","VO_SCALE","BLKSIZE","temporalmask_sustain_sec","NS_PREECHO_ATT0","NS_PREECHO_ATT1","NS_PREECHO_ATT2","NS_MSFIX","NSFIRLEN","LN_TO_LOG10","NON_LINEAR_SCALE_ENERGY","psycho_loudness_approx","energy","gfc","loudness_power","ATH","eql_w","compute_ffts","gfp","fftenergy","fftenergy_s","wsamp_l","wsamp_lPos","wsamp_s","wsamp_sPos","gr_out","chn","buffer","bufPos","internal_flags","fft_long","fft_short","r","b","BLKSIZE_s","im","totalenergy","HBLKSIZE","tot_ener","analysis","pinfo","energy_save","pe","athaa_loudapprox","loudness_sq","loudness_sq_save","ma_max_i1","ma_max_i2","ma_max_m","I1LIMIT","I2LIMIT","MLIMIT","tab","init_mask_add_max_values","pow","table1","table2","table3","mask_add","m1","m2","kk","shortblock","ratio","f","cb_s","adjust","cb_l","table2_","vbrpsy_mask_add","calc_interchannel_masking","channels_out","sb","SBMAX_l","thm","SBMAX_s","sblock","s","msfix1","mld","mld_l","en","rmid","rside","mld_s","ns_msfix","msfix","athadjust","msfix2","athlower","ath","bm_l","thmLR","thmM","thmS","bm_s","convert_partition2scalefac_s","eb","thr","enn","thmm","bo_s_sb","bo_s","npart_s","b_lim","w_curr","PSY","bo_s_weight","w_next","convert_partition2scalefac_l","bo_l_sb","bo_l","npart_l","bo_l_weight","compute_masking_s","ebb","numlines_s","el","s3ind_s","ecb","s3_ss","nb_s1","blocktype_old","SHORT_TYPE","nb_s2","CBANDS","block_type_set","uselongblock","blocktype_d","blocktype","short_blocks","NORM_TYPE","START_TYPE","STOP_TYPE","NS_INTERP","regcoef_s","pecalc_s","mr","masking_lower","pe_s","regcoef_l","pecalc_l","pe_l","calc_energy","avg","numlines_l","rnumlines_l","calc_mask_index_l","mask_idx","last_tab_entry","fircoef","vbrpsy_compute_fft_l","vbrpsy_compute_fft_s","vbrpsy_compute_loudness_approximation_l","L3psycho_anal_ns","masking_ratio","masking_MS_ratio","percep_entropy","percep_MS_entropy","numchn","pcfact","wsamp_L","wsamp_S","eb_l","eb_s","ns_hpfsmpl","mask_idx_l","mask_idx_s","fill","MPEGMode","JOINT_STEREO","VBR","ResvMax","firbuf","firbufPos","sum1","sum2","attackThreshold","en_subshort","en_short","attack_intensity","ns_uselongblock","ns_attacks","HBLKSIZE_s","nsPsy","last_en_subshort","pf","pfPos","pfe","p","abs","ers","ers_save","attackthre_s","attackthre","lastAttacks","s3ind","eb2","s3_ll","nb_1","nb_2","STEREO","interChRatio","ATHlower","ppe","ppePos","fircoef_","vbrpsy_attack_detection","sub_short_factor","n_chn_out","n_chn_psy","factor","u","v","vbrpsy_skip_masking_s","vbrpsy_skip_masking_l","psyvbr_calc_mask_index_s","vbrpsy_compute_masking_s","float","int","dd","dd_n","avg_mask","minval_s","vbrpsy_compute_masking_l","ecb_limit","ecb_limit_2","ecb_limit_1","minval_l","vbrpsy_compute_block_type","vbrpsy_apply_block_type","vbrpsy_compute_MS_thresholds","cb_mld","ath_cb","ebM","ebS","thmL","thmR","mld_m","thmMS","s3_func_x","bark","hf_slope","tempy","tempx","exp","norm_s3_func_x","lim_a","lim_b","h","norm","s3_func","temp","sqrt","freq2bark","freq","atan","init_numline","numlines","bo","bm","bval","bval_width","bo_w","sfreq","blksize","scalepos","deltafreq","sbmax","b_frq","sample_freq_frac","partition","ni","j2","bark1","sfb","i1","i2","arg","f_tmp","cos","PI","bark2","init_s3_values","npart","use_old_s3","s3","numberOfNoneZero","s3_x_norm","stereo_demask","ATHformula_GB","L3psycho_anal_vbr","ch01","mld_cb_l","mld_cb_s","new_thmm","psymodel_init","useOldS3","bvl_a","bvl_b","snr_l_a","snr_l_b","snr_s_a","snr_s_b","out_samplerate","experimentalZ","ms_ener_ratio_old","scalefac_band","snr","ATHformula","init_fft","decay","exp_nspsytune","frame_duration","mode_gr","adjustLimit","ATHtype","freq_inc","eql_balance","ATHcurve","GrInfo","IIISideInfo","tt","main_data_begin","private_bits","resvDrain_pre","resvDrain_post","scfsi","gr","EMAIL_RE","AUTOLINK_RE","tail","linkMatch","emailMatch","fullUrl","exec","e","DEFAULT_FEATURE","CACHE_THRESHOLD","SBase","LBase","VBase","TBase","LCount","VCount","TCount","NCount","SCount","UChar","cp","feature","codepoint","cacheCounter","fromCache","next","needFeature","ret","fromData","hash","dunit","udata","fromCpOnly","fromRuleBasedJamo","SIndex","TIndex","fromCpFilter","strategies","reduceRight","strategy","isHighSurrogate","isLowSurrogate","prepFeature","getDecomp","isCompatibility","isExclude","getCanonicalClass","getComposite","following","UCharIterator","cursor","d","RecursDecompIterator","cano","canonical","resBuf","recursiveDecomp","uchar","decomp","shift","DecompIterator","cc","inspt","uchar2","cc2","CompIterator","procBuf","lastClass","starter","composite","createIterator","normalize","nfd","nfkd","nfc","nfkc","0","60","824","61","62","65","768","769","770","771","772","774","775","776","777","778","780","783","785","803","805","808","66","817","67","807","68","813","69","816","70","71","72","814","73","74","75","76","77","78","79","779","795","80","82","83","806","84","85","804","86","87","88","89","90","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","114","115","116","117","118","119","120","121","122","160","168","834","170","175","178","179","180","181","184","185","186","188","189","190","192","193","194","195","196","197","198","199","200","201","202","203","204","205","206","207","209","210","211","212","213","214","216","217","218","219","220","221","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239","241","242","243","244","245","246","248","249","250","251","252","253","255","256","257","258","259","260","261","262","263","264","265","266","267","268","269","270","271","274","275","276","277","278","279","280","281","282","283","284","285","286","287","288","289","290","291","292","293","296","297","298","299","300","301","302","303","304","306","307","308","309","310","311","313","314","315","316","317","318","319","320","323","324","325","326","327","328","329","332","333","334","335","336","337","340","341","342","343","344","345","346","347","348","349","350","351","352","353","354","355","356","357","360","361","362","363","364","365","366","367","368","369","370","371","372","373","374","375","376","377","378","379","380","381","382","383","416","417","431","432","439","452","453","454","455","456","457","458","459","460","461","462","463","464","465","466","467","468","469","470","471","472","473","474","475","476","478","479","480","481","482","483","486","487","488","489","490","491","492","493","494","495","496","497","498","499","500","501","504","505","506","507","508","509","510","511","66045","512","513","514","515","516","517","518","519","520","521","522","523","524","525","526","527","528","529","530","531","532","533","534","535","536","537","538","539","542","543","550","551","552","553","554","555","556","557","558","559","560","561","562","563","658","688","689","690","691","692","693","694","695","696","728","729","730","731","732","733","736","737","738","739","740","66272","773","781","782","784","786","787","788","789","790","791","792","793","794","796","797","798","799","800","801","802","809","810","811","812","815","818","819","820","821","822","823","825","826","827","828","829","830","831","832","833","835","836","837","838","839","840","841","842","843","844","845","846","848","849","850","851","852","853","854","855","856","857","858","859","860","861","862","863","864","865","866","867","868","869","870","871","872","873","874","875","876","877","878","879","884","890","894","900","901","902","903","904","905","906","908","910","911","912","913","917","919","921","927","929","933","937","938","939","940","941","942","943","944","945","949","951","953","959","961","965","969","970","971","972","973","974","976","977","978","979","980","981","982","1008","1009","1010","1012","1013","1017","66422","66423","66424","66425","66426","1024","1025","1027","1030","1031","1036","1037","1038","1040","1043","1045","1046","1047","1048","1049","1050","1054","1059","1063","1067","1069","1072","1075","1077","1078","1079","1080","1081","1082","1086","1091","1095","1099","1101","1104","1105","1107","1110","1111","1116","1117","1118","1140","1141","1142","1143","1155","1156","1157","1158","1159","1217","1218","1232","1233","1234","1235","1238","1239","1240","1241","1242","1243","1244","1245","1246","1247","1250","1251","1252","1253","1254","1255","1256","1257","1258","1259","1260","1261","1262","1263","1264","1265","1266","1267","1268","1269","1272","1273","1280","1415","1425","1426","1427","1428","1429","1430","1431","1432","1433","1434","1435","1436","1437","1438","1439","1440","1441","1442","1443","1444","1445","1446","1447","1448","1449","1450","1451","1452","1453","1454","1455","1456","1457","1458","1459","1460","1461","1462","1463","1464","1465","1466","1467","1468","1469","1471","1473","1474","1476","1477","1479","1536","1552","1553","1554","1555","1556","1557","1558","1559","1560","1561","1562","1570","1571","1572","1573","1574","1575","1619","1620","1621","1608","1610","1611","1612","1613","1614","1615","1616","1617","1618","1622","1623","1624","1625","1626","1627","1628","1629","1630","1631","1648","1653","1654","1655","1656","1728","1729","1730","1746","1747","1749","1750","1751","1752","1753","1754","1755","1756","1759","1760","1761","1762","1763","1764","1767","1768","1770","1771","1772","1773","1792","1809","1840","1841","1842","1843","1844","1845","1846","1847","1848","1849","1850","1851","1852","1853","1854","1855","1856","1857","1858","1859","1860","1861","1862","1863","1864","1865","1866","2027","2028","2029","2030","2031","2032","2033","2034","2035","2048","2070","2071","2072","2073","2075","2076","2077","2078","2079","2080","2081","2082","2083","2085","2086","2087","2089","2090","2091","2092","2093","2137","2138","2139","2276","2277","2278","2279","2280","2281","2282","2283","2284","2285","2286","2287","2288","2289","2290","2291","2292","2293","2294","2295","2296","2297","2298","2299","2300","2301","2302","2303","2304","2344","2364","2345","2352","2353","2355","2356","2381","2385","2386","2387","2388","2392","2393","2394","2395","2396","2397","2398","2399","2492","2503","2494","2519","2507","2508","2509","2524","2525","2527","2560","2611","2614","2620","2637","2649","2650","2651","2654","2748","2765","68109","68111","68152","68153","68154","68159","68325","68326","2816","2876","2887","2878","2902","2903","2888","2891","2892","2893","2908","2909","2962","3031","2964","3014","3006","3015","3018","3019","3020","3021","3072","3142","3158","3144","3149","3157","3260","3263","3285","3264","3270","3266","3286","3271","3272","3274","3275","3277","3328","3398","3390","3415","3399","3402","3403","3404","3405","3530","3545","3535","3551","3546","3548","3549","3550","3584","3635","3640","3641","3642","3656","3657","3658","3659","3763","3768","3769","3784","3785","3786","3787","3804","3805","3840","3852","3864","3865","3893","3895","3897","3907","3917","3922","3927","3932","3945","3953","3954","3955","3956","3957","3958","3959","3960","3961","3962","3963","3964","3965","3968","3969","3970","3971","3972","3974","3975","3987","3997","4002","4007","4012","4025","4038","4096","4133","4142","4134","4151","4153","4154","4237","4348","69702","69759","69785","69818","69786","69787","69788","69797","69803","69817","4352","69888","69889","69890","69934","69935","69937","69927","69938","69939","69940","70003","70080","4608","70197","70198","70377","70378","4864","4957","4958","4959","70460","70471","70462","70487","70475","70476","70477","70502","70503","70504","70505","70506","70507","70508","70512","70513","70514","70515","70516","5120","70841","70832","70842","70845","70843","70844","70846","70850","70851","5376","71096","71087","71097","71098","71099","71103","71104","5632","71231","71350","71351","5888","5908","5940","6098","6109","6144","6313","6400","6457","6458","6459","6656","6679","6680","6752","6773","6774","6775","6776","6777","6778","6779","6780","6783","6832","6833","6834","6835","6836","6837","6838","6839","6840","6841","6842","6843","6844","6845","6912","6917","6965","6918","6919","6920","6921","6922","6923","6924","6925","6926","6929","6930","6964","6970","6971","6972","6973","6974","6975","6976","6977","6978","6979","6980","7019","7020","7021","7022","7023","7024","7025","7026","7027","7082","7083","7142","7154","7155","7168","7223","7376","7377","7378","7380","7381","7382","7383","7384","7385","7386","7387","7388","7389","7390","7391","7392","7394","7395","7396","7397","7398","7399","7400","7405","7412","7416","7417","7424","7468","7469","7470","7472","7473","7474","7475","7476","7477","7478","7479","7480","7481","7482","7484","7485","7486","7487","7488","7489","7490","7491","7492","7493","7494","7495","7496","7497","7498","7499","7500","7501","7503","7504","7505","7506","7507","7508","7509","7510","7511","7512","7513","7514","7515","7516","7517","7518","7519","7520","7521","7522","7523","7524","7525","7526","7527","7528","7529","7530","7544","7579","7580","7581","7582","7583","7584","7585","7586","7587","7588","7589","7590","7591","7592","7593","7594","7595","7596","7597","7598","7599","7600","7601","7602","7603","7604","7605","7606","7607","7608","7609","7610","7611","7612","7613","7614","7615","7616","7617","7618","7619","7620","7621","7622","7623","7624","7625","7626","7627","7628","7629","7630","7631","7632","7633","7634","7635","7636","7637","7638","7639","7640","7641","7642","7643","7644","7645","7646","7647","7648","7649","7650","7651","7652","7653","7654","7655","7656","7657","7658","7659","7660","7661","7662","7663","7664","7665","7666","7667","7668","7669","7676","7677","7678","7679","7680","7681","7682","7683","7684","7685","7686","7687","7688","7689","7690","7691","7692","7693","7694","7695","7696","7697","7698","7699","7700","7701","7702","7703","7704","7705","7706","7707","7708","7709","7710","7711","7712","7713","7714","7715","7716","7717","7718","7719","7720","7721","7722","7723","7724","7725","7726","7727","7728","7729","7730","7731","7732","7733","7734","7735","7736","7737","7738","7739","7740","7741","7742","7743","7744","7745","7746","7747","7748","7749","7750","7751","7752","7753","7754","7755","7756","7757","7758","7759","7760","7761","7762","7763","7764","7765","7766","7767","7768","7769","7770","7771","7772","7773","7774","7775","7776","7777","7778","7779","7780","7781","7782","7783","7784","7785","7786","7787","7788","7789","7790","7791","7792","7793","7794","7795","7796","7797","7798","7799","7800","7801","7802","7803","7804","7805","7806","7807","7808","7809","7810","7811","7812","7813","7814","7815","7816","7817","7818","7819","7820","7821","7822","7823","7824","7825","7826","7827","7828","7829","7830","7831","7832","7833","7834","7835","7840","7841","7842","7843","7844","7845","7846","7847","7848","7849","7850","7851","7852","7853","7854","7855","7856","7857","7858","7859","7860","7861","7862","7863","7864","7865","7866","7867","7868","7869","7870","7871","7872","7873","7874","7875","7876","7877","7878","7879","7880","7881","7882","7883","7884","7885","7886","7887","7888","7889","7890","7891","7892","7893","7894","7895","7896","7897","7898","7899","7900","7901","7902","7903","7904","7905","7906","7907","7908","7909","7910","7911","7912","7913","7914","7915","7916","7917","7918","7919","7920","7921","7922","7923","7924","7925","7926","7927","7928","7929","7936","7937","7938","7939","7940","7941","7942","7943","7944","7945","7946","7947","7948","7949","7950","7951","7952","7953","7954","7955","7956","7957","7960","7961","7962","7963","7964","7965","7968","7969","7970","7971","7972","7973","7974","7975","7976","7977","7978","7979","7980","7981","7982","7983","7984","7985","7986","7987","7988","7989","7990","7991","7992","7993","7994","7995","7996","7997","7998","7999","8000","8001","8002","8003","8004","8005","8008","8009","8010","8011","8012","8013","8016","8017","8018","8019","8020","8021","8022","8023","8025","8027","8029","8031","8032","8033","8034","8035","8036","8037","8038","8039","8040","8041","8042","8043","8044","8045","8046","8047","8048","8049","8050","8051","8052","8053","8054","8055","8056","8057","8058","8059","8060","8061","8064","8065","8066","8067","8068","8069","8070","8071","8072","8073","8074","8075","8076","8077","8078","8079","8080","8081","8082","8083","8084","8085","8086","8087","8088","8089","8090","8091","8092","8093","8094","8095","8096","8097","8098","8099","8100","8101","8102","8103","8104","8105","8106","8107","8108","8109","8110","8111","8112","8113","8114","8115","8116","8118","8119","8120","8121","8122","8123","8124","8125","8126","8127","8128","8129","8130","8131","8132","8134","8135","8136","8137","8138","8139","8140","8141","8142","8143","8144","8145","8146","8147","8150","8151","8152","8153","8154","8155","8157","8158","8159","8160","8161","8162","8163","8164","8165","8166","8167","8168","8169","8170","8171","8172","8173","8174","8175","8178","8179","8180","8182","8183","8184","8185","8186","8187","8188","8189","8190","8192","8193","8194","8195","8196","8197","8198","8199","8200","8201","8202","8209","8215","8228","8229","8230","8239","8243","8244","8246","8247","8252","8254","8263","8264","8265","8279","8287","8304","8305","8308","8309","8310","8311","8312","8313","8314","8315","8316","8317","8318","8319","8320","8321","8322","8323","8324","8325","8326","8327","8328","8329","8330","8331","8332","8333","8334","8336","8337","8338","8339","8340","8341","8342","8343","8344","8345","8346","8347","8348","8360","8400","8401","8402","8403","8404","8405","8406","8407","8408","8409","8410","8411","8412","8417","8421","8422","8423","8424","8425","8426","8427","8428","8429","8430","8431","8432","8448","8449","8450","8451","8453","8454","8455","8457","8458","8459","8460","8461","8462","8463","8464","8465","8466","8467","8469","8470","8473","8474","8475","8476","8477","8480","8481","8482","8484","8486","8488","8490","8491","8492","8493","8495","8496","8497","8499","8500","8501","8502","8503","8504","8505","8507","8508","8509","8510","8511","8512","8517","8518","8519","8520","8521","8528","8529","8530","8531","8532","8533","8534","8535","8536","8537","8538","8539","8540","8541","8542","8543","8544","8545","8546","8547","8548","8549","8550","8551","8552","8553","8554","8555","8556","8557","8558","8559","8560","8561","8562","8563","8564","8565","8566","8567","8568","8569","8570","8571","8572","8573","8574","8575","8585","8592","8594","8596","8602","8603","8622","8653","8654","8655","8656","8658","8660","8704","8707","8708","8712","8713","8715","8716","8739","8740","8741","8742","8748","8749","8751","8752","8764","8769","8771","8772","8773","8775","8776","8777","8781","8800","8801","8802","8804","8805","8813","8814","8815","8816","8817","8818","8819","8820","8821","8822","8823","8824","8825","8826","8827","8828","8829","8832","8833","8834","8835","8836","8837","8838","8839","8840","8841","8849","8850","8866","8872","8873","8875","8876","8877","8878","8879","8882","8883","8884","8885","8928","8929","8930","8931","8938","8939","8940","8941","8960","9001","9002","9216","9312","9313","9314","9315","9316","9317","9318","9319","9320","9321","9322","9323","9324","9325","9326","9327","9328","9329","9330","9331","9332","9333","9334","9335","9336","9337","9338","9339","9340","9341","9342","9343","9344","9345","9346","9347","9348","9349","9350","9351","9352","9353","9354","9355","9356","9357","9358","9359","9360","9361","9362","9363","9364","9365","9366","9367","9368","9369","9370","9371","9372","9373","9374","9375","9376","9377","9378","9379","9380","9381","9382","9383","9384","9385","9386","9387","9388","9389","9390","9391","9392","9393","9394","9395","9396","9397","9398","9399","9400","9401","9402","9403","9404","9405","9406","9407","9408","9409","9410","9411","9412","9413","9414","9415","9416","9417","9418","9419","9420","9421","9422","9423","9424","9425","9426","9427","9428","9429","9430","9431","9432","9433","9434","9435","9436","9437","9438","9439","9440","9441","9442","9443","9444","9445","9446","9447","9448","9449","9450","10752","10764","10868","10869","10870","10972","11264","11388","11389","11503","11504","11505","11520","11631","11647","11744","11745","11746","11747","11748","11749","11750","11751","11752","11753","11754","11755","11756","11757","11758","11759","11760","11761","11762","11763","11764","11765","11766","11767","11768","11769","11770","11771","11772","11773","11774","11775","11776","11935","12019","12032","12033","12034","12035","12036","12037","12038","12039","12040","12041","12042","12043","12044","12045","12046","12047","12048","12049","12050","12051","12052","12053","12054","12055","12056","12057","12058","12059","12060","12061","12062","12063","12064","12065","12066","12067","12068","12069","12070","12071","12072","12073","12074","12075","12076","12077","12078","12079","12080","12081","12082","12083","12084","12085","12086","12087","12088","12089","12090","12091","12092","12093","12094","12095","12096","12097","12098","12099","12100","12101","12102","12103","12104","12105","12106","12107","12108","12109","12110","12111","12112","12113","12114","12115","12116","12117","12118","12119","12120","12121","12122","12123","12124","12125","12126","12127","12128","12129","12130","12131","12132","12133","12134","12135","12136","12137","12138","12139","12140","12141","12142","12143","12144","12145","12146","12147","12148","12149","12150","12151","12152","12153","12154","12155","12156","12157","12158","12159","12160","12161","12162","12163","12164","12165","12166","12167","12168","12169","12170","12171","12172","12173","12174","12175","12176","12177","12178","12179","12180","12181","12182","12183","12184","12185","12186","12187","12188","12189","12190","12191","12192","12193","12194","12195","12196","12197","12198","12199","12200","12201","12202","12203","12204","12205","12206","12207","12208","12209","12210","12211","12212","12213","12214","12215","12216","12217","12218","12219","12220","12221","12222","12223","12224","12225","12226","12227","12228","12229","12230","12231","12232","12233","12234","12235","12236","12237","12238","12239","12240","12241","12242","12243","12244","12245","12288","12330","12331","12332","12333","12334","12335","12342","12344","12345","12346","12358","12441","12363","12364","12365","12366","12367","12368","12369","12370","12371","12372","12373","12374","12375","12376","12377","12378","12379","12380","12381","12382","12383","12384","12385","12386","12388","12389","12390","12391","12392","12393","12399","12442","12400","12401","12402","12403","12404","12405","12406","12407","12408","12409","12410","12411","12412","12413","12436","12443","12444","12445","12446","12447","12454","12459","12460","12461","12462","12463","12464","12465","12466","12467","12468","12469","12470","12471","12472","12473","12474","12475","12476","12477","12478","12479","12480","12481","12482","12484","12485","12486","12487","12488","12489","12495","12496","12497","12498","12499","12500","12501","12502","12503","12504","12505","12506","12507","12508","12509","12527","12528","12529","12530","12532","12535","12536","12537","12538","12541","12542","12543","12544","12593","12594","12595","12596","12597","12598","12599","12600","12601","12602","12603","12604","12605","12606","12607","12608","12609","12610","12611","12612","12613","12614","12615","12616","12617","12618","12619","12620","12621","12622","12623","12624","12625","12626","12627","12628","12629","12630","12631","12632","12633","12634","12635","12636","12637","12638","12639","12640","12641","12642","12643","12644","12645","12646","12647","12648","12649","12650","12651","12652","12653","12654","12655","12656","12657","12658","12659","12660","12661","12662","12663","12664","12665","12666","12667","12668","12669","12670","12671","12672","12673","12674","12675","12676","12677","12678","12679","12680","12681","12682","12683","12684","12685","12686","12690","12691","12692","12693","12694","12695","12696","12697","12698","12699","12700","12701","12702","12703","12800","12801","12802","12803","12804","12805","12806","12807","12808","12809","12810","12811","12812","12813","12814","12815","12816","12817","12818","12819","12820","12821","12822","12823","12824","12825","12826","12827","12828","12829","12830","12832","12833","12834","12835","12836","12837","12838","12839","12840","12841","12842","12843","12844","12845","12846","12847","12848","12849","12850","12851","12852","12853","12854","12855","12856","12857","12858","12859","12860","12861","12862","12863","12864","12865","12866","12867","12868","12869","12870","12871","12880","12881","12882","12883","12884","12885","12886","12887","12888","12889","12890","12891","12892","12893","12894","12895","12896","12897","12898","12899","12900","12901","12902","12903","12904","12905","12906","12907","12908","12909","12910","12911","12912","12913","12914","12915","12916","12917","12918","12919","12920","12921","12922","12923","12924","12925","12926","12928","12929","12930","12931","12932","12933","12934","12935","12936","12937","12938","12939","12940","12941","12942","12943","12944","12945","12946","12947","12948","12949","12950","12951","12952","12953","12954","12955","12956","12957","12958","12959","12960","12961","12962","12963","12964","12965","12966","12967","12968","12969","12970","12971","12972","12973","12974","12975","12976","12977","12978","12979","12980","12981","12982","12983","12984","12985","12986","12987","12988","12989","12990","12991","12992","12993","12994","12995","12996","12997","12998","12999","13000","13001","13002","13003","13004","13005","13006","13007","13008","13009","13010","13011","13012","13013","13014","13015","13016","13017","13018","13019","13020","13021","13022","13023","13024","13025","13026","13027","13028","13029","13030","13031","13032","13033","13034","13035","13036","13037","13038","13039","13040","13041","13042","13043","13044","13045","13046","13047","13048","13049","13050","13051","13052","13053","13054","13056","13057","13058","13059","13060","13061","13062","13063","13064","13065","13066","13067","13068","13069","13070","13071","13072","13073","13074","13075","13076","13077","13078","13079","13080","13081","13082","13083","13084","13085","13086","13087","13088","13089","13090","13091","13092","13093","13094","13095","13096","13097","13098","13099","13100","13101","13102","13103","13104","13105","13106","13107","13108","13109","13110","13111","13112","13113","13114","13115","13116","13117","13118","13119","13120","13121","13122","13123","13124","13125","13126","13127","13128","13129","13130","13131","13132","13133","13134","13135","13136","13137","13138","13139","13140","13141","13142","13143","13144","13145","13146","13147","13148","13149","13150","13151","13152","13153","13154","13155","13156","13157","13158","13159","13160","13161","13162","13163","13164","13165","13166","13167","13168","13169","13170","13171","13172","13173","13174","13175","13176","13177","13178","13179","13180","13181","13182","13183","13184","13185","13186","13187","13188","13189","13190","13191","13192","13193","13194","13195","13196","13197","13198","13199","13200","13201","13202","13203","13204","13205","13206","13207","13208","13209","13210","13211","13212","13213","13214","13215","13216","13217","13218","13219","13220","13221","13222","13223","13224","13225","13226","13227","13228","13229","13230","13231","13232","13233","13234","13235","13236","13237","13238","13239","13240","13241","13242","13243","13244","13245","13246","13247","13248","13249","13250","13251","13252","13253","13254","13255","13256","13257","13258","13259","13260","13261","13262","13263","13264","13265","13266","13267","13268","13269","13270","13271","13272","13273","13274","13275","13276","13277","13278","13279","13280","13281","13282","13283","13284","13285","13286","13287","13288","13289","13290","13291","13292","13293","13294","13295","13296","13297","13298","13299","13300","13301","13302","13303","13304","13305","13306","13307","13308","13309","13310","13311","27136","92912","92913","92914","92915","92916","27392","92976","92977","92978","92979","92980","92981","92982","42496","42607","42612","42613","42614","42615","42616","42617","42618","42619","42620","42621","42652","42653","42655","42736","42737","42752","42864","43000","43001","43008","43014","43204","43232","43233","43234","43235","43236","43237","43238","43239","43240","43241","43242","43243","43244","43245","43246","43247","43248","43249","43264","43307","43308","43309","43347","43443","43456","43520","43696","43698","43699","43700","43703","43704","43710","43711","43713","43766","43776","43868","43869","43870","43871","44013","48128","113822","53504","119134","119135","119136","119137","119138","119139","119140","119141","119142","119143","119144","119145","119149","119150","119151","119152","119153","119154","119163","119164","119165","119166","119167","119168","119169","119170","119173","119174","119175","119176","119177","119178","119179","119210","119211","119212","119213","119227","119228","119229","119230","119231","119232","53760","119362","119363","119364","54272","119808","119809","119810","119811","119812","119813","119814","119815","119816","119817","119818","119819","119820","119821","119822","119823","119824","119825","119826","119827","119828","119829","119830","119831","119832","119833","119834","119835","119836","119837","119838","119839","119840","119841","119842","119843","119844","119845","119846","119847","119848","119849","119850","119851","119852","119853","119854","119855","119856","119857","119858","119859","119860","119861","119862","119863","119864","119865","119866","119867","119868","119869","119870","119871","119872","119873","119874","119875","119876","119877","119878","119879","119880","119881","119882","119883","119884","119885","119886","119887","119888","119889","119890","119891","119892","119894","119895","119896","119897","119898","119899","119900","119901","119902","119903","119904","119905","119906","119907","119908","119909","119910","119911","119912","119913","119914","119915","119916","119917","119918","119919","119920","119921","119922","119923","119924","119925","119926","119927","119928","119929","119930","119931","119932","119933","119934","119935","119936","119937","119938","119939","119940","119941","119942","119943","119944","119945","119946","119947","119948","119949","119950","119951","119952","119953","119954","119955","119956","119957","119958","119959","119960","119961","119962","119963","119964","119966","119967","119970","119973","119974","119977","119978","119979","119980","119982","119983","119984","119985","119986","119987","119988","119989","119990","119991","119992","119993","119995","119997","119998","119999","120000","120001","120002","120003","120005","120006","120007","120008","120009","120010","120011","120012","120013","120014","120015","120016","120017","120018","120019","120020","120021","120022","120023","120024","120025","120026","120027","120028","120029","120030","120031","120032","120033","120034","120035","120036","120037","120038","120039","120040","120041","120042","120043","120044","120045","120046","120047","120048","120049","120050","120051","120052","120053","120054","120055","120056","120057","120058","120059","120060","120061","120062","120063","54528","120064","120065","120066","120067","120068","120069","120071","120072","120073","120074","120077","120078","120079","120080","120081","120082","120083","120084","120086","120087","120088","120089","120090","120091","120092","120094","120095","120096","120097","120098","120099","120100","120101","120102","120103","120104","120105","120106","120107","120108","120109","120110","120111","120112","120113","120114","120115","120116","120117","120118","120119","120120","120121","120123","120124","120125","120126","120128","120129","120130","120131","120132","120134","120138","120139","120140","120141","120142","120143","120144","120146","120147","120148","120149","120150","120151","120152","120153","120154","120155","120156","120157","120158","120159","120160","120161","120162","120163","120164","120165","120166","120167","120168","120169","120170","120171","120172","120173","120174","120175","120176","120177","120178","120179","120180","120181","120182","120183","120184","120185","120186","120187","120188","120189","120190","120191","120192","120193","120194","120195","120196","120197","120198","120199","120200","120201","120202","120203","120204","120205","120206","120207","120208","120209","120210","120211","120212","120213","120214","120215","120216","120217","120218","120219","120220","120221","120222","120223","120224","120225","120226","120227","120228","120229","120230","120231","120232","120233","120234","120235","120236","120237","120238","120239","120240","120241","120242","120243","120244","120245","120246","120247","120248","120249","120250","120251","120252","120253","120254","120255","120256","120257","120258","120259","120260","120261","120262","120263","120264","120265","120266","120267","120268","120269","120270","120271","120272","120273","120274","120275","120276","120277","120278","120279","120280","120281","120282","120283","120284","120285","120286","120287","120288","120289","120290","120291","120292","120293","120294","120295","120296","120297","120298","120299","120300","120301","120302","120303","120304","120305","120306","120307","120308","120309","120310","120311","120312","120313","120314","120315","120316","120317","120318","120319","54784","120320","120321","120322","120323","120324","120325","120326","120327","120328","120329","120330","120331","120332","120333","120334","120335","120336","120337","120338","120339","120340","120341","120342","120343","120344","120345","120346","120347","120348","120349","120350","120351","120352","120353","120354","120355","120356","120357","120358","120359","120360","120361","120362","120363","120364","120365","120366","120367","120368","120369","120370","120371","120372","120373","120374","120375","120376","120377","120378","120379","120380","120381","120382","120383","120384","120385","120386","120387","120388","120389","120390","120391","120392","120393","120394","120395","120396","120397","120398","120399","120400","120401","120402","120403","120404","120405","120406","120407","120408","120409","120410","120411","120412","120413","120414","120415","120416","120417","120418","120419","120420","120421","120422","120423","120424","120425","120426","120427","120428","120429","120430","120431","120432","120433","120434","120435","120436","120437","120438","120439","120440","120441","120442","120443","120444","120445","120446","120447","120448","120449","120450","120451","120452","120453","120454","120455","120456","120457","120458","120459","120460","120461","120462","120463","120464","120465","120466","120467","120468","120469","120470","120471","120472","120473","120474","120475","120476","120477","120478","120479","120480","120481","120482","120483","120484","120485","120488","120489","120490","120491","120492","120493","120494","120495","120496","120497","120498","120499","120500","120501","120502","120503","120504","120505","120506","120507","120508","120509","120510","120511","120512","120513","120514","120515","120516","120517","120518","120519","120520","120521","120522","120523","120524","120525","120526","120527","120528","120529","120530","120531","120532","120533","120534","120535","120536","120537","120538","120539","120540","120541","120542","120543","120544","120545","120546","120547","120548","120549","120550","120551","120552","120553","120554","120555","120556","120557","120558","120559","120560","120561","120562","120563","120564","120565","120566","120567","120568","120569","120570","120571","120572","120573","120574","120575","55040","120576","120577","120578","120579","120580","120581","120582","120583","120584","120585","120586","120587","120588","120589","120590","120591","120592","120593","120594","120595","120596","120597","120598","120599","120600","120601","120602","120603","120604","120605","120606","120607","120608","120609","120610","120611","120612","120613","120614","120615","120616","120617","120618","120619","120620","120621","120622","120623","120624","120625","120626","120627","120628","120629","120630","120631","120632","120633","120634","120635","120636","120637","120638","120639","120640","120641","120642","120643","120644","120645","120646","120647","120648","120649","120650","120651","120652","120653","120654","120655","120656","120657","120658","120659","120660","120661","120662","120663","120664","120665","120666","120667","120668","120669","120670","120671","120672","120673","120674","120675","120676","120677","120678","120679","120680","120681","120682","120683","120684","120685","120686","120687","120688","120689","120690","120691","120692","120693","120694","120695","120696","120697","120698","120699","120700","120701","120702","120703","120704","120705","120706","120707","120708","120709","120710","120711","120712","120713","120714","120715","120716","120717","120718","120719","120720","120721","120722","120723","120724","120725","120726","120727","120728","120729","120730","120731","120732","120733","120734","120735","120736","120737","120738","120739","120740","120741","120742","120743","120744","120745","120746","120747","120748","120749","120750","120751","120752","120753","120754","120755","120756","120757","120758","120759","120760","120761","120762","120763","120764","120765","120766","120767","120768","120769","120770","120771","120772","120773","120774","120775","120776","120777","120778","120779","120782","120783","120784","120785","120786","120787","120788","120789","120790","120791","120792","120793","120794","120795","120796","120797","120798","120799","120800","120801","120802","120803","120804","120805","120806","120807","120808","120809","120810","120811","120812","120813","120814","120815","120816","120817","120818","120819","120820","120821","120822","120823","120824","120825","120826","120827","120828","120829","120830","120831","59392","125136","125137","125138","125139","125140","125141","125142","60928","126464","126465","126466","126467","126469","126470","126471","126472","126473","126474","126475","126476","126477","126478","126479","126480","126481","126482","126483","126484","126485","126486","126487","126488","126489","126490","126491","126492","126493","126494","126495","126497","126498","126500","126503","126505","126506","126507","126508","126509","126510","126511","126512","126513","126514","126516","126517","126518","126519","126521","126523","126530","126535","126537","126539","126541","126542","126543","126545","126546","126548","126551","126553","126555","126557","126559","126561","126562","126564","126567","126568","126569","126570","126572","126573","126574","126575","126576","126577","126578","126580","126581","126582","126583","126585","126586","126587","126588","126590","126592","126593","126594","126595","126596","126597","126598","126599","126600","126601","126603","126604","126605","126606","126607","126608","126609","126610","126611","126612","126613","126614","126615","126616","126617","126618","126619","126625","126626","126627","126629","126630","126631","126632","126633","126635","126636","126637","126638","126639","126640","126641","126642","126643","126644","126645","126646","126647","126648","126649","126650","126651","61696","127232","127233","127234","127235","127236","127237","127238","127239","127240","127241","127242","127248","127249","127250","127251","127252","127253","127254","127255","127256","127257","127258","127259","127260","127261","127262","127263","127264","127265","127266","127267","127268","127269","127270","127271","127272","127273","127274","127275","127276","127277","127278","127280","127281","127282","127283","127284","127285","127286","127287","127288","127289","127290","127291","127292","127293","127294","127295","127296","127297","127298","127299","127300","127301","127302","127303","127304","127305","127306","127307","127308","127309","127310","127311","127338","127339","127376","61952","127488","127489","127490","127504","127505","127506","127507","127508","127509","127510","127511","127512","127513","127514","127515","127516","127517","127518","127519","127520","127521","127522","127523","127524","127525","127526","127527","127528","127529","127530","127531","127532","127533","127534","127535","127536","127537","127538","127539","127540","127541","127542","127543","127544","127545","127546","127552","127553","127554","127555","127556","127557","127558","127559","127560","127568","127569","63488","194560","194561","194562","194563","194564","194565","194566","194567","194568","194569","194570","194571","194572","194573","194574","194575","194576","194577","194578","194579","194580","194581","194582","194583","194584","194585","194586","194587","194588","194589","194590","194591","194592","194593","194594","194595","194596","194597","194598","194599","194600","194601","194602","194603","194604","194605","194606","194607","194608","194609","194610","194611","194612","194613","194614","194615","194616","194617","194618","194619","194620","194621","194622","194623","194624","194625","194626","194627","194628","194629","194630","194631","194632","194633","194634","194635","194636","194637","194638","194639","194640","194641","194642","194643","194644","194645","194646","194647","194648","194649","194650","194651","194652","194653","194654","194655","194656","194657","194658","194659","194660","194661","194662","194663","194664","194665","194666","194667","194668","194669","194670","194671","194672","194673","194674","194675","194676","194677","194678","194679","194680","194681","194682","194683","194684","194685","194686","194687","194688","194689","194690","194691","194692","194693","194694","194695","194696","194697","194698","194699","194700","194701","194702","194703","194704","194705","194706","194707","194708","194709","194710","194711","194712","194713","194714","194715","194716","194717","194718","194719","194720","194721","194722","194723","194724","194725","194726","194727","194728","194729","194730","194731","194732","194733","194734","194735","194736","194737","194738","194739","194740","194741","194742","194743","194744","194745","194746","194747","194748","194749","194750","194751","194752","194753","194754","194755","194756","194757","194758","194759","194760","194761","194762","194763","194764","194765","194766","194767","194768","194769","194770","194771","194772","194773","194774","194775","194776","194777","194778","194779","194780","194781","194782","194783","194784","194785","194786","194787","194788","194789","194790","194791","194792","194793","194794","194795","194796","194797","194798","194799","194800","194801","194802","194803","194804","194805","194806","194807","194808","194809","194810","194811","194812","194813","194814","194815","63744","63745","63746","63747","63748","63749","63750","63751","63752","63753","63754","63755","63756","63757","63758","63759","63760","63761","63762","63763","63764","63765","63766","63767","63768","63769","63770","63771","63772","63773","63774","63775","63776","63777","63778","63779","63780","63781","63782","63783","63784","63785","63786","63787","63788","63789","63790","63791","63792","63793","63794","63795","63796","63797","63798","63799","63800","63801","63802","63803","63804","63805","63806","63807","63808","63809","63810","63811","63812","63813","63814","63815","63816","63817","63818","63819","63820","63821","63822","63823","63824","63825","63826","63827","63828","63829","63830","63831","63832","63833","63834","63835","63836","63837","63838","63839","63840","63841","63842","63843","63844","63845","63846","63847","63848","63849","63850","63851","63852","63853","63854","63855","63856","63857","63858","63859","63860","63861","63862","63863","63864","63865","63866","63867","63868","63869","63870","63871","63872","63873","63874","63875","63876","63877","63878","63879","63880","63881","63882","63883","63884","63885","63886","63887","63888","63889","63890","63891","63892","63893","63894","63895","63896","63897","63898","63899","63900","63901","63902","63903","63904","63905","63906","63907","63908","63909","63910","63911","63912","63913","63914","63915","63916","63917","63918","63919","63920","63921","63922","63923","63924","63925","63926","63927","63928","63929","63930","63931","63932","63933","63934","63935","63936","63937","63938","63939","63940","63941","63942","63943","63944","63945","63946","63947","63948","63949","63950","63951","63952","63953","63954","63955","63956","63957","63958","63959","63960","63961","63962","63963","63964","63965","63966","63967","63968","63969","63970","63971","63972","63973","63974","63975","63976","63977","63978","63979","63980","63981","63982","63983","63984","63985","63986","63987","63988","63989","63990","63991","63992","63993","63994","63995","63996","63997","63998","63999","194816","194817","194818","194819","194820","194821","194822","194823","194824","194825","194826","194827","194828","194829","194830","194831","194832","194833","194834","194835","194836","194837","194838","194839","194840","194841","194842","194843","194844","194845","194846","194847","194848","194849","194850","194851","194852","194853","194854","194855","194856","194857","194858","194859","194860","194861","194862","194863","194864","194865","194866","194867","194868","194869","194870","194871","194872","194873","194874","194875","194876","194877","194878","194879","194880","194881","194882","194883","194884","194885","194886","194887","194888","194889","194890","194891","194892","194893","194894","194895","194896","194897","194898","194899","194900","194901","194902","194903","194904","194905","194906","194907","194908","194909","194910","194911","194912","194913","194914","194915","194916","194917","194918","194919","194920","194921","194922","194923","194924","194925","194926","194927","194928","194929","194930","194931","194932","194933","194934","194935","194936","194937","194938","194939","194940","194941","194942","194943","194944","194945","194946","194947","194948","194949","194950","194951","194952","194953","194954","194955","194956","194957","194958","194959","194960","194961","194962","194963","194964","194965","194966","194967","194968","194969","194970","194971","194972","194973","194974","194975","194976","194977","194978","194979","194980","194981","194982","194983","194984","194985","194986","194987","194988","194989","194990","194991","194992","194993","194994","194995","194996","194997","194998","194999","195000","195001","195002","195003","195004","195005","195006","195007","195008","195009","195010","195011","195012","195013","195014","195015","195016","195017","195018","195019","195020","195021","195022","195023","195024","195025","195026","195027","195028","195029","195030","195031","195032","195033","195034","195035","195036","195037","195038","195039","195040","195041","195042","195043","195044","195045","195046","195047","195048","195049","195050","195051","195052","195053","195054","195055","195056","195057","195058","195059","195060","195061","195062","195063","195064","195065","195066","195067","195068","195069","195070","195071","64000","64001","64002","64003","64004","64005","64006","64007","64008","64009","64010","64011","64012","64013","64016","64018","64021","64022","64023","64024","64025","64026","64027","64028","64029","64030","64032","64034","64037","64038","64042","64043","64044","64045","64046","64047","64048","64049","64050","64051","64052","64053","64054","64055","64056","64057","64058","64059","64060","64061","64062","64063","64064","64065","64066","64067","64068","64069","64070","64071","64072","64073","64074","64075","64076","64077","64078","64079","64080","64081","64082","64083","64084","64085","64086","64087","64088","64089","64090","64091","64092","64093","64094","64095","64096","64097","64098","64099","64100","64101","64102","64103","64104","64105","64106","64107","64108","64109","64112","64113","64114","64115","64116","64117","64118","64119","64120","64121","64122","64123","64124","64125","64126","64127","64128","64129","64130","64131","64132","64133","64134","64135","64136","64137","64138","64139","64140","64141","64142","64143","64144","64145","64146","64147","64148","64149","64150","64151","64152","64153","64154","64155","64156","64157","64158","64159","64160","64161","64162","64163","64164","64165","64166","64167","64168","64169","64170","64171","64172","64173","64174","64175","64176","64177","64178","64179","64180","64181","64182","64183","64184","64185","64186","64187","64188","64189","64190","64191","64192","64193","64194","64195","64196","64197","64198","64199","64200","64201","64202","64203","64204","64205","64206","64207","64208","64209","64210","64211","64212","64213","64214","64215","64216","64217","195072","195073","195074","195075","195076","195077","195078","195079","195080","195081","195082","195083","195084","195085","195086","195087","195088","195089","195090","195091","195092","195093","195094","195095","195096","195097","195098","195099","195100","195101","64256","64257","64258","64259","64260","64261","64262","64275","64276","64277","64278","64279","64285","64286","64287","64288","64289","64290","64291","64292","64293","64294","64295","64296","64297","64298","64299","64300","64301","64302","64303","64304","64305","64306","64307","64308","64309","64310","64312","64313","64314","64315","64316","64318","64320","64321","64323","64324","64326","64327","64328","64329","64330","64331","64332","64333","64334","64335","64336","64337","64338","64339","64340","64341","64342","64343","64344","64345","64346","64347","64348","64349","64350","64351","64352","64353","64354","64355","64356","64357","64358","64359","64360","64361","64362","64363","64364","64365","64366","64367","64368","64369","64370","64371","64372","64373","64374","64375","64376","64377","64378","64379","64380","64381","64382","64383","64384","64385","64386","64387","64388","64389","64390","64391","64392","64393","64394","64395","64396","64397","64398","64399","64400","64401","64402","64403","64404","64405","64406","64407","64408","64409","64410","64411","64412","64413","64414","64415","64416","64417","64418","64419","64420","64421","64422","64423","64424","64425","64426","64427","64428","64429","64430","64431","64432","64433","64467","64468","64469","64470","64471","64472","64473","64474","64475","64476","64477","64478","64479","64480","64481","64482","64483","64484","64485","64486","64487","64488","64489","64490","64491","64492","64493","64494","64495","64496","64497","64498","64499","64500","64501","64502","64503","64504","64505","64506","64507","64508","64509","64510","64511","64512","64513","64514","64515","64516","64517","64518","64519","64520","64521","64522","64523","64524","64525","64526","64527","64528","64529","64530","64531","64532","64533","64534","64535","64536","64537","64538","64539","64540","64541","64542","64543","64544","64545","64546","64547","64548","64549","64550","64551","64552","64553","64554","64555","64556","64557","64558","64559","64560","64561","64562","64563","64564","64565","64566","64567","64568","64569","64570","64571","64572","64573","64574","64575","64576","64577","64578","64579","64580","64581","64582","64583","64584","64585","64586","64587","64588","64589","64590","64591","64592","64593","64594","64595","64596","64597","64598","64599","64600","64601","64602","64603","64604","64605","64606","64607","64608","64609","64610","64611","64612","64613","64614","64615","64616","64617","64618","64619","64620","64621","64622","64623","64624","64625","64626","64627","64628","64629","64630","64631","64632","64633","64634","64635","64636","64637","64638","64639","64640","64641","64642","64643","64644","64645","64646","64647","64648","64649","64650","64651","64652","64653","64654","64655","64656","64657","64658","64659","64660","64661","64662","64663","64664","64665","64666","64667","64668","64669","64670","64671","64672","64673","64674","64675","64676","64677","64678","64679","64680","64681","64682","64683","64684","64685","64686","64687","64688","64689","64690","64691","64692","64693","64694","64695","64696","64697","64698","64699","64700","64701","64702","64703","64704","64705","64706","64707","64708","64709","64710","64711","64712","64713","64714","64715","64716","64717","64718","64719","64720","64721","64722","64723","64724","64725","64726","64727","64728","64729","64730","64731","64732","64733","64734","64735","64736","64737","64738","64739","64740","64741","64742","64743","64744","64745","64746","64747","64748","64749","64750","64751","64752","64753","64754","64755","64756","64757","64758","64759","64760","64761","64762","64763","64764","64765","64766","64767","64768","64769","64770","64771","64772","64773","64774","64775","64776","64777","64778","64779","64780","64781","64782","64783","64784","64785","64786","64787","64788","64789","64790","64791","64792","64793","64794","64795","64796","64797","64798","64799","64800","64801","64802","64803","64804","64805","64806","64807","64808","64809","64810","64811","64812","64813","64814","64815","64816","64817","64818","64819","64820","64821","64822","64823","64824","64825","64826","64827","64828","64829","64848","64849","64850","64851","64852","64853","64854","64855","64856","64857","64858","64859","64860","64861","64862","64863","64864","64865","64866","64867","64868","64869","64870","64871","64872","64873","64874","64875","64876","64877","64878","64879","64880","64881","64882","64883","64884","64885","64886","64887","64888","64889","64890","64891","64892","64893","64894","64895","64896","64897","64898","64899","64900","64901","64902","64903","64904","64905","64906","64907","64908","64909","64910","64911","64914","64915","64916","64917","64918","64919","64920","64921","64922","64923","64924","64925","64926","64927","64928","64929","64930","64931","64932","64933","64934","64935","64936","64937","64938","64939","64940","64941","64942","64943","64944","64945","64946","64947","64948","64949","64950","64951","64952","64953","64954","64955","64956","64957","64958","64959","64960","64961","64962","64963","64964","64965","64966","64967","65008","65009","65010","65011","65012","65013","65014","65015","65016","65017","65018","65019","65020","65024","65040","65041","65042","65043","65044","65045","65046","65047","65048","65049","65056","65057","65058","65059","65060","65061","65062","65063","65064","65065","65066","65067","65068","65069","65072","65073","65074","65075","65076","65077","65078","65079","65080","65081","65082","65083","65084","65085","65086","65087","65088","65089","65090","65091","65092","65095","65096","65097","65098","65099","65100","65101","65102","65103","65104","65105","65106","65108","65109","65110","65111","65112","65113","65114","65115","65116","65117","65118","65119","65120","65121","65122","65123","65124","65125","65126","65128","65129","65130","65131","65136","65137","65138","65140","65142","65143","65144","65145","65146","65147","65148","65149","65150","65151","65152","65153","65154","65155","65156","65157","65158","65159","65160","65161","65162","65163","65164","65165","65166","65167","65168","65169","65170","65171","65172","65173","65174","65175","65176","65177","65178","65179","65180","65181","65182","65183","65184","65185","65186","65187","65188","65189","65190","65191","65192","65193","65194","65195","65196","65197","65198","65199","65200","65201","65202","65203","65204","65205","65206","65207","65208","65209","65210","65211","65212","65213","65214","65215","65216","65217","65218","65219","65220","65221","65222","65223","65224","65225","65226","65227","65228","65229","65230","65231","65232","65233","65234","65235","65236","65237","65238","65239","65240","65241","65242","65243","65244","65245","65246","65247","65248","65249","65250","65251","65252","65253","65254","65255","65256","65257","65258","65259","65260","65261","65262","65263","65264","65265","65266","65267","65268","65269","65270","65271","65272","65273","65274","65275","65276","65280","65281","65282","65283","65284","65285","65286","65287","65288","65289","65290","65291","65292","65293","65294","65295","65296","65297","65298","65299","65300","65301","65302","65303","65304","65305","65306","65307","65308","65309","65310","65311","65312","65313","65314","65315","65316","65317","65318","65319","65320","65321","65322","65323","65324","65325","65326","65327","65328","65329","65330","65331","65332","65333","65334","65335","65336","65337","65338","65339","65340","65341","65342","65343","65344","65345","65346","65347","65348","65349","65350","65351","65352","65353","65354","65355","65356","65357","65358","65359","65360","65361","65362","65363","65364","65365","65366","65367","65368","65369","65370","65371","65372","65373","65374","65375","65376","65377","65378","65379","65380","65381","65382","65383","65384","65385","65386","65387","65388","65389","65390","65391","65392","65393","65394","65395","65396","65397","65398","65399","65400","65401","65402","65403","65404","65405","65406","65407","65408","65409","65410","65411","65412","65413","65414","65415","65416","65417","65418","65419","65420","65421","65422","65423","65424","65425","65426","65427","65428","65429","65430","65431","65432","65433","65434","65435","65436","65437","65438","65439","65440","65441","65442","65443","65444","65445","65446","65447","65448","65449","65450","65451","65452","65453","65454","65455","65456","65457","65458","65459","65460","65461","65462","65463","65464","65465","65466","65467","65468","65469","65470","65474","65475","65476","65477","65478","65479","65482","65483","65484","65485","65486","65487","65490","65491","65492","65493","65494","65495","65498","65499","65500","65504","65505","65506","65507","65508","65509","65510","65512","65513","65514","65515","65516","65517","65518","unorm","shimApplied","configurable","writable","form","Z","GainAnalysis","PINK_REF","RMS_PERCENTILE","YULE_ORDER","RMS_WINDOW_TIME_NUMERATOR","MAX_SAMP_FREQ","RMS_WINDOW_TIME_DENOMINATOR","ABYule","MAX_SAMPLES_PER_WINDOW","ABButter","filterYule","inputPos","outputPos","nSamples","kernel","filterButter","ResetSampleFrequency","rgData","samplefreq","MAX_ORDER","linprebuf","lstepbuf","loutbuf","rinprebuf","rstepbuf","routbuf","reqindex","INIT_GAIN_ANALYSIS_ERROR","sampleWindow","lsum","rsum","totsamp","ill","INIT_GAIN_ANALYSIS_OK","fsqr","analyzeResult","elems","GAIN_NOT_ENOUGH_SAMPLES","upper","ceil","STEPS_per_dB","InitGainAnalysis","linpre","rinpre","lstep","rstep","lout","rout","B","AnalyzeSamples","left_samples","left_samplesPos","right_samples","right_samplesPos","num_samples","num_channels","curleft","curleftBase","curright","currightBase","batchsamples","cursamples","cursamplepos","GAIN_ANALYSIS_OK","GAIN_ANALYSIS_ERROR","arraycopy","ival","GetTitleGain","retval","MAX_dB","LIBRARY","$export","redefine","hide","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","P","F","toObject","$keys","documentElement","cof","propertyIsEnumerable","L","default","_default","_interopRequireDefault","_uslug","_token","_typeof","Symbol","iterator","constructor","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","from","arr2","_objectSpread","target","ownKeys","sym","_defineProperty","TOC","TOC_RE","markdownItSecondInstance","headingIds","tocHtml","repeat","num","makeSafe","slugifyFn","space","renderAnchorLinkSymbol","anchorLinkSymbolClassName","anchorLinkSymbol","renderAnchorLink","anchor","anchorClassName","openLinkToken","closeLinkToken","wrapHeadingTextInAnchor","unshift","_tokens$children","linkTokens","actionOnArray","false","true","anchorLinkSpace","anchorLinkBefore","treeToMarkdownBulletList","tree","indent","item","indentation","heading","contentWithoutAnchor","nodes","generateTocMarkdownFromArray","headings","tocFirstLevel","tocLastLevel","lastItem","toc","tocClassName","tocCallback","anchorLink","resetIds","tocArray","tocMarkdown","tocTokens","slugify","heading_close","_tocAnchor","reduce","acc","anchorLinkPrefix","substr","after","originalHeadingOpen","heading_open","_len","_key","renderToken","_len2","_key2","toc_open","toc_close","toc_body","buildHTML","buildMathML","buildCommon","Options","Settings","Style","makeSpan","buildTree","expression","settings","startStyle","TEXT","displayMode","DISPLAY","mathMLNode","htmlNode","katexNode","dP","createDesc","emojies_defs","emojies_shortcuts","emoji_html","emoji_replace","normalize_opts","defaults","defs","shortcuts","enabled","opts","emoji","scanRE","replaceRE","IObject","quoteRE","emojies","alias","names","sort","reverse","Presets","VBRPresets","qual","comp","compS","shThreshold","shThresholdS","adj","adjShort","lower","curve","sens","inter","joint","mod","fix","vbr_q","quant_comp","quant_comp_s","expY","st_lrm","st_s","masking_adj","masking_adj_short","ath_lower","ath_curve","ath_sensitivity","interch","safejoint","sfb21mod","ABRPresets","kbps","bass","sc","mask","interCh","sfScale","nsmsfix","nsbass","scale","sfscale","lame","setModules","_lame","vbr_old_switch_map","vbr_psy_switch_map","apply_vbr_preset","enforce","vbr_preset","VBR_q_frac","lame_set_VBR_q","quant_comp_short","experimentalY","maskingadjust","maskingadjust_short","athaa_sensitivity","VBR_q","abr_switch_map","apply_abr_preset","preset","actual_bitrate","nearestBitrateFullIndex","VBR_mean_bitrate_kbps","brate","disable_reservoir","noise_shaping","apply_preset","Lame","R3MIX","V3","MEDIUM","V4","MEDIUM_FAST","STANDARD","V2","STANDARD_FAST","EXTREME","V0","EXTREME_FAST","INSANE","V9","V8","V7","V6","V5","V1","isNaN","ARG","tryGet","T","callee","pmax","slashes","auth","port","pathname","search","lineMax","def","stat","Ruler","__rules__","__cache__","__find__","__compile__","chains","rule","alt","altName","at","opt","before","beforeName","ruleName","afterName","chainName","ucm","ZPCc","Cc","splitTextToken","last_pos","offset","emoji_name","blockTokens","autolinkLevel","MeanBits","L3Side","LameInternalFlags","CBRNewIterationLoop","_quantize","quantize","iteration_loop","ms_ener_ratio","max_bits","l3_xmin","SFBMAX","xrpow","targ_bits","mean_bits","l3_side","mb","rv","ResvFrameBegin","bits","qupvt","on_pe","mode_ext","MPG_MD_MS_LR","ms_convert","reduce_side","masking_lower_db","cod_info","block_type","mask_adjust","mask_adjust_short","init_outer_loop","init_xrpow","calc_xmin","outer_loop","iteration_finish_one","part2_3_length","MAX_BITS_PER_CHANNEL","ResvFrameEnd","matchStart","matchEnd","skipBulletListMarker","skipOrderedListMarker","markTightParagraphs","initial","oldTShift","oldIndent","oldLIndent","oldTight","oldParentType","posAfterMarker","indentAfterMarker","markerValue","markerCharCode","isOrdered","contentStart","listTokIdx","prevEmptyEnd","listLines","itemLines","tight","Number","parentType","tokenize","NewMDCT","III_psy_ratio","FFTOFFSET","bs","psy","vbr","_bs","_psy","_qupvt","_vbr","newMDCT","adjust_ATH","gr2_max","max_pow","useAdjust","aaSensitivityP","adj_lim_new","updateStats","bitrate_index","bitrate_stereoMode_Hist","bt","mixed_block_flag","bitrate_blockType_Hist","lame_encode_frame_init","inbuf","primebuff0","primebuff1","mdct_sub48","mf_size","framesize","lame_encode_mp3_frame","inbuf_l","inbuf_r","mp3buf","mp3bufPos","mp3buf_size","mp3count","masking_LR","masking","masking_MS","pe_use","pe_MS","padding","slot_lag","frac_SpF","psymodel","bufp","bufpPos","MPG_MD_LR_LR","force_ms","sum_pe_MS","sum_pe_LR","gi0","gi1","ms_ratio","xr","pefirbuf","format_bitstream","copy_buffer","bWriteVbrTag","addVbrFrame","pcmdata","set_frame_pinfo","ENCDELAY","POSTDELAY","MDCTDELAY","DECDELAY","SBLIMIT","SBPSY_l","SBPSY_s","PSFB21","PSFB12","MPG_MD_LR_I","MPG_MD_MS_I","scanned","jump","postProcess","startDelim","endDelim","loneMarkers","pop","NEWLINES_RE","NULL_RE","_rules","_rules2","skipToken","ok","MathNode","TextNode","createElementNS","OTHER_CHARS","UNICODE_SPACE_RE","abbr_def","label","title","labelStart","labelEnd","abbreviations","abbr_replace","reg","regText","regSimple","currentToken","store","uid","USE_SYMBOL","$exports","IE_PROTO","ObjectProto","UNESCAPE_RE","subscript","found","shared","parseLinkLabel","parseLinkDestination","parseLinkTitle","attr_name","unquoted","single_quoted","double_quoted","attr_value","open_tag","close_tag","comment","processing","declaration","cdata","HTML_TAG_RE","HTML_OPEN_CLOSE_TAG_RE","version","__e","Reservoir","maxmp3buf","frameLength","getframebits","sideinfo_len","resvLimit","strict_ISO","fullFrameBits","ResvSize","resvsize","ResvMaxBits","cbr","add_bits","substep_shaping","extra_bits","ResvAdjust","gi","part2_length","over_bits","stuffingBits","mdb_bytes","data","color","phantom","parentStyle","parentSize","extend","extension","withStyle","withSize","withColor","withPhantom","withFont","reset","colorMap","getColor","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","DIGITAL_RE","NAMED_RE","HuffCodeTab","hl","xlen","linmax","table","hlen","Tables","ht","t1HB","t1l","t2HB","t2l","t3HB","t3l","t5HB","t5l","t6HB","t6l","t7HB","t7l","t8HB","t8l","t9HB","t9l","t10HB","t10l","t11HB","t11l","t12HB","t12l","t13HB","t13l","t16_5l","t15HB","t15l","t16HB","t16l","t24HB","t24l","t32HB","t32l","t33HB","t33l","largetbl","table23","table56","bitrate_table","samplerate_table","scfsi_band","block_names","HTML_SEQUENCES","lineText","id","px","random","webpackPolyfill","deprecate","paths","get","ctx","PROTOTYPE","own","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","IS_WRAP","W","expProto","C","Function","virtual","R","U","N","_ordinal","DUAL_CHANNEL","MONO","NOT_SET","multiplier","cramped","sizeMultiplier","sup","sub","fracNum","fracDen","cramp","cls","sizeNames","resetNames","D","Dc","Tc","Sc","SS","SSc","SCRIPT","SCRIPTSCRIPT","Takehiro","BitStream","CRC16_POLYNOMIAL","MAX_LENGTH","ga","mpg","ver","_ga","_mpg","_ver","buf","totbit","bufByteIdx","bufBitIdx","putheader_bits","header","w_ptr","MAX_HEADER_BUF","putbits2","LAME_MAXMP3BUFFER","write_timing","putbits_noheaders","drain_into_ancillary","remainingBits","getLameShortVersion","ancillary_flag","writeheader","ptr","h_ptr","CRC_update","crc","encodeSideInfo2","bitsPerFrame","error_protection","band","big_values","scalefac_compress","table_select","subblock_gain","region0_count","region1_count","preflag","scalefac_scale","count1table_select","CRC_writeheader","old","huffman_coder_count1","ix","count1","huffbits","l3_enc","Huffmancode","tableindex","cbits","xbits","linbits","ext","x1","x2","linbits_x1","linbits_x2","ShortHuffmancodebits","region1Start","LongHuffmancodebits","bigvalues","region2Start","writeMainData","data_bits","tot_bits","slen1","slen1_tab","slen2","slen2_tab","sfbdivide","scalefac","sfbmax","sfb_partition","scale_bits","sfb_partition_table","sfbs","slen","TotalBytes","total","compute_flushbits","total_bytes_output","flushbits","remaining_headers","last_ptr","first_ptr","bit_rate","bytes","flush_bitstream","findReplayGain","RadioGain","rgdata","NEQ","findPeakSample","noclipGainChange","PeakSample","EQ","noclipScale","add_dummy_byte","bufferPos","mp3data","minimum","nMusicCRC","updateMusicCRC","VBR_seek_table","decode_on_the_fly","pcm_buf","mp3_in","samples_out","hip_decode1_unclipped","hip","init_bit_stream_w","TO_STRING_TAG","DOMIterables","Collection","ESCAPED","functions","environments","Lexer","parseData","Parser","ParseNode","ParseFuncOrArgument","isFunction","expect","consume","nextToken","lex","parseInput","parseExpression","endOfExpression","breakOnInfix","breakOnToken","body","atom","parseAtom","throwOnError","errorNode","handleUnsupportedCmd","handleInfixNodes","funcName","overIndex","replaceWith","numerNode","denomNode","numerBody","denomBody","callFunction","SUPSUB_GREEDINESS","handleSupSubscript","symPos","parseGroup","funcGreediness","greediness","parseFunction","textordArray","textNode","colorNode","errorColor","superscript","parseImplicitGroup","limits","alwaysHandleSupSub","prime","primes","sizeFuncs","styleFuncs","parseSymbol","func","left","right","envName","namepos","parseArguments","context","parser","positions","handler","contains","baseGroup","funcData","allowedInText","totalArgs","numArgs","numOptionalArgs","baseGreediness","argNode","argType","argTypes","parseSpecialGroup","parseOptionalGroup","argGreediness","innerMode","optional","res","outerMode","openBrace","whitespace","nucleus","StateCore","TO_STRING","that","ReplayGain","freqindex","first","CalcNoiseResult","over_noise","tot_noise","max_noise","over_count","over_SSD","hasEmptyLines","skipEmptyLines","defineFunction","props","width","delimiterSizes","fontAliases","atoms","hasBarLine","numer","denom","leftDelim","rightDelim","delim","delimType","nameGroup","default_rules","code_inline","slf","renderAttrs","code_block","fence","highlighted","tmpAttrs","tmpToken","langName","image","renderInlineAsText","hardbreak","softbreak","html_block","html_inline","needLf","classof","getIteratorMethod","anObject","getIterator","iterFn","lines","getKeys","defineProperties","Properties","M","getLine","escapedSplit","escapes","lastPos","backTicked","lastBackTick","substring","columns","columnCount","aligns","tableLines","tbodyLines","window_s","costab","fht","fz","fzPos","k4","fi","tri","s1","c1","k1","k2","k3","kx","f1","f0","f3","f2","c2","s2","g0","g1","g2","g3","rv_tbl","x_real","jj","fontMetrics","parseArray","row","rowGaps","cell","cr","defineEnvironment","colalign","cols","ca","align","separator","hskipBeforeAndAfter","arraystretch","pregap","postgap","metrics","quad","emptyGroup","numCols","StateBlock","indent_found","ddIndent","keepLastLF","lineIndent","queue","lineStart","lastDelim","currDelim","Version","LAME_URL","LAME_MAJOR_VERSION","LAME_MINOR_VERSION","LAME_PATCH_VERSION","PSY_MAJOR_VERSION","PSY_MINOR_VERSION","getLameVersion","getLameVeryShortVersion","getPsyVersion","getLameUrl","getLameOsBitness","decodeCache","getDecodeCache","exclude","defaultChars","seq","b1","b2","b3","b4","chr","componentChars","ref","href","oldPos","references","LameGlobalFlags","class_id","in_samplerate","scale_left","scale_right","decode_only","quality","free_format","write_id3tag_automatic","compression_ratio","copyright","original","emphasis","VBR_min_bitrate_kbps","VBR_max_bitrate_kbps","VBR_hard_min","lowpassfreq","highpassfreq","lowpasswidth","highpasswidth","ATHonly","ATHshort","noATH","athaa_type","useTemporal","tune","tune_value_a","encoder_delay","encoder_padding","frameNum","lame_allocated_gfp","isLinkOpen","isLinkClose","ln","htmlLinkLevel","urlText","links","pretest","schema","emptyLines","factory","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_2__","__WEBPACK_EXTERNAL_MODULE_3__","__WEBPACK_EXTERNAL_MODULE_4__","__WEBPACK_EXTERNAL_MODULE_5__","__WEBPACK_EXTERNAL_MODULE_6__","__WEBPACK_EXTERNAL_MODULE_7__","__WEBPACK_EXTERNAL_MODULE_8__","__WEBPACK_EXTERNAL_MODULE_9__","__WEBPACK_EXTERNAL_MODULE_10__","__WEBPACK_EXTERNAL_MODULE_11__","__WEBPACK_EXTERNAL_MODULE_12__","__WEBPACK_EXTERNAL_MODULE_13__","__WEBPACK_EXTERNAL_MODULE_14__","modules","installedModules","__webpack_require__","moduleId","loaded","_getIterator2","_getIterator3","_keys","_keys2","_markdownIt","_markdownIt2","_markdownItEmoji","_markdownItEmoji2","_markdownItSub","_markdownItSub2","_markdownItSup","_markdownItSup2","_markdownItFootnote","_markdownItFootnote2","_markdownItDeflist","_markdownItDeflist2","_markdownItAbbr","_markdownItAbbr2","_markdownItIns","_markdownItIns2","_markdownItMark","_markdownItMark2","_markdownItTocAndAnchor","_markdownItTocAndAnchor2","_markdownItKatex","_markdownItKatex2","_markdownItTaskLists","_markdownItTaskLists2","template","sourceData","watches","show","Boolean","tableClass","taskLists","tocId","tocClass","tocAnchorLink","tocAnchorClass","tocAnchorLinkSymbol","tocAnchorLinkSpace","tocAnchorLinkClass","anchorAttributes","prerender","postrender","htmlData","computed","tocLastLevelComputed","_this","table_open","defaultLinkRenderer","link_open","aIndex","getElementById","innerHTML","$emit","outHtml","domProps","beforeMount","_this2","$slots","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","slot","return","$watch","$forceUpdate","tok","dPs","enumBugKeys","Empty","createDict","iframeDocument","iframe","lt","gt","display","contentWindow","write","III_psy_xmin","iii_psy_xmin","option","defaultValue","VBRQuantize","_tk","katex","isValidDelim","prevChar","math_inline","math_block","firstLine","lastLine","katexInline","latex","renderToString","inlineRenderer","katexBlock","blockRenderer","Core","angry","blush","broken_heart","confused","cry","frowning","heart","imp","innocent","joy","kissing","laughing","neutral_face","open_mouth","rage","smile","smiley","smiling_imp","sob","stuck_out_tongue","sunglasses","sweat","sweat_smile","unamused","wink","psfb21","psfb12","toStringTag","bind","setUint8","compress","encodePCM","ArrayBuffer","DataView","setInt8","setInt16","encodeWAV","byteLength","setUint32","setUint16","getUint8","__extends","setPrototypeOf","isrecording","ispause","isplaying","setOption","setNewOption","startRecord","pause","pauseRecord","resume","resumeRecord","stop","stopRecord","play","onplay","addPlayEnd","onplayend","getWAV","getPlayTime","pausePlay","onpauseplay","resumePlay","onresumeplay","stopPlay","onstopplay","destroy","destroyPlay","destroyRecord","getRecordAnalyseData","getAnalyseData","getPlayAnalyseData","getPCM","getData","inputSampleRate","outputSampleRate","oututSampleBits","littleEdian","getPCMBlob","Blob","downloadPCM","numChannels","getWAVBlob","downloadWAV","download","getChannelData","sampleBits","getInt16","getInt8","URL","createObjectURL","click","decodeAudioData","createBufferSource","onended","currentTime","connect","destination","throwError","AudioContext","webkitAudioContext","createAnalyser","fftSize","Uint8Array","frequencyBinCount","getByteTimeDomainData","lBuffer","rBuffer","tempPCM","inputSampleBits","fileSize","duration","needRecord","sampleRate","initUserMedia","initRecorder","navigator","mediaDevices","getUserMedia","audio","audioInput","createMediaStreamSource","stream","analyser","recorder","disconnect","clearRecordStatus","stopStream","closeAudioContext","flat","PCM","createScriptProcessor","createJavaScriptNode","onaudioprocess","inputBuffer","onprocess","onprogress","vol","getTracks","webkitGetUserMedia","mozGetUserMedia","transformIntoPCM","getPermission","getRelocatable","__matchAtRelocatable","unicode","matchAt","sticky","reloc","bitmap","QUOTE_TEST_RE","QUOTE_RE","APOSTROPHE","replaceAt","process_inlines","thisLevel","canOpen","canClose","isSingle","stack","openQuote","closeQuote","OUTER","single","blkIdx","src_Any","src_Cc","src_Z","src_P","src_ZPCc","src_ZCc","src_pseudo_letter","src_ip4","src_auth","src_port","src_host_terminator","src_path","src_email_name","src_xn","src_domain_root","src_domain","src_host","tpl_host_fuzzy","tpl_host_no_ip_fuzzy","src_host_strict","tpl_host_fuzzy_strict","src_host_port_strict","tpl_host_port_fuzzy_strict","tpl_host_port_no_ip_fuzzy_strict","tpl_host_fuzzy_test","tpl_email_fuzzy","tpl_link_fuzzy","tpl_link_no_ip_fuzzy","setTextContent","nativeIndexOf","elem","deflt","setting","defaultIfUndefined","uppercase","ESCAPE_LOOKUP","\"","ESCAPE_REGEX","escaper","testNode","textContent","innerText","clearNode","_vm","_c","_self","staticClass","transform","top","on","$event","touchStart","touchMove","touchEnd","dropDownState","ispc","refresh","_v","_s","_e","dropDownInfo","upText","refreshText","staticRenderFns","onRefresh","required","isrefresh","defaultOffset","scrollIsToTop","startY","isDropDown","isRefreshing","downText","downImg","upImg","refreshImg","created","querySelector","clientHeight","targetTouches","pageY","scrollTop","pageYOffset","diff","preventDefault","setTimeout","refreshDone","component","isTerminatorChar","ScaleFac","QuantizePVT","tak","POW20","Q_MAX2","Q_MAX","pow20","_rv","IPOW20","ipow20","DBL_EPSILON","IXMAX_VAL","PRECALC_SIZE","NSATHSCALE","LARGE_BITS","nr_of_sfb_block","pretab","sfBandIndex","pow43","adj43","ATHmdct","compute_ath","ATH_l","ATH_psfb21","ATH_s","ATH_psfb12","samp_freq","ATH_f","StartLine","iteration_init","iteration_init_init","alto","treble","sfb21","huffman_init","longfact","shortfact","tbits","MAX_BITS_PER_GRANULE","fac","move_bits","athAdjust","athFloor","pxmin","gsfb","pxminPos","ath_over","enable_athaa_fix","psy_lmax","xmin","rh1","rh2","en0","xa","xb","max_nonzero","max_nonzero_coeff","sfb_smin","psymax","tmpATH","calc_noise_core","startline","ix01","calc_noise","distort","prev_noise","distortPos","l3_xminPos","over","over_noise_db","tot_noise_db","scalefacPos","usefullsize","sl","set_pinfo","sfb2","en1","ifqstep","xfsf","sfb_lmax","bw","LAMEsfb","en_s","xfsf_s","thr_s","LAMEsfb_s","LAMEqss","LAMEmainbits","LAMEsfbits","RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","tm","replaceFn","replace_scoped","inlineTokens","replace_rare","NsPsy","MAX_HEADER_LEN","Header","Class_ID","fill_buffer_resample_init","mfbuf","MFSIZE","channels_in","resample_ratio","mf_samples_to_encode","VBR_min_bitrate","VBR_max_bitrate","samplerate_index","lowpass1","lowpass2","highpass1","highpass2","noise_shaping_amp","noise_shaping_stop","use_best_huffman","full_outer_loop","tag_spec","OldValue","CurrentStep","bv_scf","pseudohalf","sfb21_extra","inbuf_old","blackfilt","BPC","itime","sb_sample","amp_filter","numlines_s_num1","numlines_l_num1","ms_ratio_s_old","ms_ratio_l_old","nogap_total","nogap_current","AudiophileGain","in_buffer_nsamples","in_buffer_0","in_buffer_1","disableCheckboxes","useLabelWrapper","useLabelAfter","parentToken","targetLevel","isTodoItem","isInline","isParagraph","isListItem","startsWithTodoMarkdown","todoify","TokenConstructor","makeCheckbox","afterLabel","beginLabel","endLabel","checkbox","disabledAttr","for","labelAfter","params","mem","haveEndMarker","isLetter","lc","addToUnscopables","_k","Arguments","encodeCache","getEncodeCache","keepEscaped","nextCode","encodeURIComponent","parseTree","baseNode","compatMode","warn","generateParseTree","__parse","isStrong","domTree","greekCapitals","dotlessLetters","makeSymbol","getCharacterMetrics","mathsym","mathDefault","mathit","makeOrd","fontName","fontMap","sizeElementFromChildren","makeFragment","fragment","makeFontSizer","fontSize","fontSizeInner","fontSizer","makeVList","positionType","positionData","currPos","oldChildren","bottom","realChildren","childWrap","baselineFix","vlist","sizingMultiplier","size1","size2","size3","size4","size5","size6","size7","size8","size9","size10","spacingFunctions","variant","sigma5","sigma6","sigma8","sigma9","sigma10","sigma11","sigma12","sigma13","sigma14","sigma15","sigma16","sigma17","sigma18","sigma19","sigma20","sigma21","sigma21Script","sigma21ScriptScript","sigma22","xi8","xi9","xi10","xi11","xi12","xi13","ptPerEm","doubleRuleSep","xHeight","num1","num2","num3","denom1","denom2","sup1","sup2","sup3","sub1","sub2","supDrop","subDrop","axisHeight","defaultRuleThickness","bigOpSpacing1","bigOpSpacing2","bigOpSpacing3","bigOpSpacing4","bigOpSpacing5","emPerEx","delim1","getDelim2","metricMap","character","fails","KEY","buildExpression","prev","groups","buildGroup","groupToType","genfrac","ordgroup","overline","underline","leftright","getTypeOfGroup","shouldHandleSupSub","isCharacterBox","getBaseElem","baseElem","makeNullDelimiter","groupTypes","prevAtom","elements","supmid","submid","supShift","subShift","minSupShift","supsub","scriptspace","ruleWidth","psi","marginLeft","fstyle","numShift","clearance","denomShift","frac","delimSize","nstyle","dstyle","numerreset","denomreset","candiateClearance","mid","midShift","customSizedDelim","nr","nc","pt","arraycolsep","baselineskip","arrayskip","arstrutHeight","arstrutDepth","totalHeight","inrow","outrow","elt","gap","unit","number","colSep","colDescrNum","colDescriptions","colDescr","firstSeparator","verticalAlign","sepwidth","col","supGroup","subGroup","hasLimits","noSuccessor","large","baseShift","slant","supKern","subKern","finalGroup","innerGroup","phi","lineClearance","innerHeight","minDelimiterHeight","delimDepth","delimShift","rootWrap","innerRootHeight","innerRootDepth","toShift","rootVList","rootVListWrap","newStyle","sizedDelim","innerDepth","leftRightDelim","borderRightWidth","borderTopWidth","supsubGroup","baseChar","vecClass","accentBody","accentWrap","groupNode","JSON","stringify","topStrut","bottomStrut","Any","Cf","_endLine","destEndPos","destEndLineNo","aFunction","Bits","subdv_table","quantize_lines_xrpow_01","istep","xrPos","ixPos","compareval0","quantize_lines_xrpow","remaining","x0","x3","rx0","rx1","rx2","rx3","quantize_xrpow","xp","pi","codInfo","prevNoise","prev_data_use","accumulate","accumulate01","xpPos","iData","iDataPos","acc_iData","acc_iDataPos","acc_xp","acc_xpPos","ix_max","endPos","max1","max2","count_bit_ESC","t1","t2","count_bit_noESC","hlen1","count_bit_noESC_from2","count_bit_noESC_from3","sum3","hlen2","hlen3","huf_tbl_noESC","choose_table","choice2","choice","recalc_divide_init","r01_bits","r01_div","r0_tbl","r1_tbl","bigv","r0","a1","r0bits","bi","r0t","r1","a2","r1t","recalc_divide_sub","cod_info2","r2","count1bits","r2t","noquant_count_bits","best_huffman_divide","count_bits","xrpow_max","gain","roundfac","slen1_n","slen2_n","scfsi_calc","all_scalefactors_not_negative","best_scalefac_store","recalc","scale_bitcount","scale_bitcount_lsf","scale_short","scale_mixed","scale_long","max_slen1","max_slen2","max_range_sfac_tab","table_number","row_in_table","nr_sfb","max_sfac","partition_table","slen3","slen4","log2tab","bv_index","scfb_anz","IE8_DOM_DEFINE","toPrimitive","Attributes","Url","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","hostlessProtocol","slashedProtocol","urlParse","slashesDenoteHost","lowerProto","hec","rest","simplePath","atSign","hostEnd","host","parseHost","ipv6Hostname","hostparts","part","newpart","validParts","notHost","bit","qm","Quantize","VBRTag","GetAudio","parse2","mpg2","Parse","ver2","id32","pre2","MPGLib","ID3Tag","_bits","Mp3Encoder","channels","samplerate","gaud","qu","id3","enc","lame_init","retcode","lame_init_params","maxSamples","encodeBuffer","_sz","lame_encode_buffer","subarray","flush","lame_encode_flush","WavHeader","dataOffset","dataLen","fourccToInt","fourcc","RIFF","WAVE","fmt_","readHeader","dataView","getUint32","fmtLen","getUint16","tk","init_xrpow_core","psfb21_analogsilence","ath21","ath12","BinSearchDirection","bin_search_StepSize","desired_rate","nBits","flagGoneOver","Direction","BINSEARCH_NONE","BINSEARCH_DOWN","BINSEARCH_UP","loop_break","penalties","get_klemm_noise","klemm_noise","quant_compare","best","calc","better","amp_scalefac_bands","bRefine","ifqstep34","trigger","inc_scalefac_scale","inc_subblock_gain","amp","balance_noise","status","ixwork","trancate_smallspectrums","work","allowedNoise","trancateThreshold","nsame","cod_info_w","save_xrpow","best_noise_info","best_part2_3_length","bEndOfSearch","best_ggain_pass1","age","search_limit","noise_info","maxggain","huff_bits","VBR_encode_granule","min_bits","dbits","bst_cod_info","bst_xrpow","Max_bits","real_bits","this_bits","get_framebits","frameBits","VBR_old_prepare","bands","analog_silence","mxb","bitpressure_strategy","VBR_new_prepare","maximum_framebits","calc_target_bits","analog_silence_bits","max_frame_bits","res_factor","totbits","SHARED","LAME_MAXALBUMART","mpglib","LowPassHighPass","lowerlimit","BandPass","bitrate","lPass","lowpass","_p","_qu","_id3","_mpglib","LAME_ID","lame_init_old","filter_coef","optimum_samplefreq","input_samplefreq","suggested_samplefreq","SmpFrqIndex","sample_freq","gpf","FindNearestBitrate","bRate","BitrateIndex","optimum_bandwidth","lh","freq_map","table_index","lame_init_params_ppflt","lowpass_band","highpass_band","minband","maxband","fc1","fc2","lame_init_qval","lame_init_bitstream","id3tag_write_v2","InitVbrTag","update_inbuffer_size","nsamples","calcNeeded","mf_needed","lame_encode_buffer_sample","buffer_l","buffer_r","mp3out","mp3size","in_buffer","in_bufferPos","in_buffer_ptr","n_in","n_out","inOut","InOut","fill_buffer","buf_size","lame_encode_frame","NumUsed","num_used","gcd","blackman","fcn","wcn","bkwn","sin","fill_buffer_resample","outbuf","outbufPos","desired_len","bpc","intratio","filter_l","BLACKSIZE","time0","joff","xvalue","n_shift","io","numUsed","full_bitrate_table","lower_range","lower_range_kbps","upper_range","upper_range_kbps","map2MP3Frequency","linear_int","hip_decode_exit","hip_decode_init","cmp","LAME_DEFAULT_QUALITY","VBRNewIterationLoop","VBROldIterationLoop","vbrmode","ABRIterationLoop","NSATTACKTHRE","NSATTACKTHRE_S","mp3buffer","mp3bufferPos","mp3buffer_size","mp3buffer_size_remaining","end_padding","frames_left","imp3","samples_to_encode","bunch","frame_num","id3tag_write_v1","disableNested","prevPos","FRAMES_FLAG","BYTES_FLAG","TOC_FLAG","VBR_SCALE_FLAG","NUMTOCENTRIES","MAXFRAMESIZE","VBRHEADERSIZE","LAMEHEADERSIZE","XING_BITRATE1","XING_BITRATE2","XING_BITRATE25","ISO_8859_1","VBRTag0","VBRTag1","crc16Lookup","addVbr","xingSeekTable","act","indx","seek_point","extractInteger","createInteger","createShort","isVbrTag","equals","shiftInBitsValue","setLameTagFrameHeader","bbyte","abyte","crcUpdateLookup","putLameVBR","musicLength","streamBuffer","streamBufferPos","revMethod","abrBitrate","bytesWritten","encDelay","encPadding","revision","vbrTypeTranslator","peakSignalAmplitude","radioReplayGain","audiophileReplayGain","noiseShaping","stereoMode","nonOptimal","sourceFreq","misc","musicCRC","expNPsyTune","safeJoint","noGapMore","noGapPrevious","noGapCount","noGapCurr","athType","skipId3v2","fpStream","seek","id3v2TagSize","id3v2Header","readFully","startsWith","getVbrTag","pTagData","VBRTagData","hId","hSrIndex","hMode","hBitrate","samprate","head_flags","frames","vbrScale","headersize","kbps_header","totalFrameSize","headerSize","getLameTagFrame","streamIndex","streamSize","putVbrTag","_unicodeCategory","allowedChars","spaces","chars","slug","__g","tokenRegex","whitespaceRegex","_innerLex","ignoreWhitespace","cssColor","_innerLexColor","sizeRegex","_innerLexSize","_innerLexWhitespace","mathMLTree","makeText","getVariant","withDelims","leftOp","rightOp","outerNode","leftNode","rightNode","accentNode","styleAttributes","operator","texExpression","wrapper","annotation","semantics","arrayIndexOf","_footnote_ref","subId","_footnote_block_open","_footnote_block_close","_footnote_open","_footnote_close","_footnote_anchor","footnote_def","oldBMark","oldSCount","posAfterColon","footnotes","refs","footnote_inline","footnoteId","footnote_ref","footnoteSubId","footnote_tail","lastParagraph","current","currentLabel","insideRef","refTokens","footnote_block_open","footnote_block_close","footnote_open","footnote_close","footnote_anchor","VERSION","_hasBuffer","_TD","TextDecoder","_TE","TextEncoder","b64ch","b64chs","b64tab","b64re","_fromCC","_U8Afrom","_mkUriSafe","m0","_tidyB64","btoaPolyfill","u32","c0","asc","pad","_btoa","btoa","_fromUint8Array","u8a","maxargs","strs","fromUint8Array","urlsafe","cb_utob","re_utob","utob","_encode","encodeURI","re_btou","cb_btou","cccc","btou","atobPolyfill","u24","_atob","atob","_toUint8Array","toUint8Array","_unURI","_decode","isValid","_noEnum","extendString","_add","extendUint8Array","extendBuiltins","gBase64","fromBase64","toBase64","encodeURL","lastLineEmpty","oldBMarks","getMetrics","mathrmSize","styleWrap","toStyle","makeSmallDelim","center","makeLargeDelim","makeInner","sizeClass","makeStackedDelim","heightTotal","middle","topMetrics","topHeightTotal","repeatMetrics","repeatHeightTotal","bottomMetrics","bottomHeightTotal","middleHeightTotal","middleFactor","middleMetrics","minHeight","repeatCount","realHeightTotal","inners","stackLargeDelimiters","stackAlwaysDelimiters","stackNeverDelimiters","sizeToMaxHeight","makeSizedDelim","stackNeverDelimiterSequence","stackAlwaysDelimiterSequence","stackLargeDelimiterSequence","delimTypeToFont","traverseSequence","sequence","heightDepth","makeCustomSizedDelim","makeLeftRightDelim","delimiterFactor","delimiterExtend","maxDistFromAxis","toParse","meanBits","clone_int","clone_float","other","enwindow","NS","NL","win","tantab_l","cx","cs","order","window_subband","x1Pos","wp","mdct_short","inout","inoutPos","tc0","tc1","tc2","ts0","ts1","ts2","mdct_long","outPos","_in","ct","st","tc3","tc4","ts5","ts6","ts7","ts8","ts3","ts4","tc5","tc6","tc7","tc8","w0","w1","wk","wkPos","mdct_enc","mdct_encPos","samp","sampPos","band0","band1","bu","bd","isRegExp","defaultOptions","fuzzyLink","fuzzyEmail","fuzzyIP","isOptionsObj","defaultSchemas","validate","http","no_http","mailto","tlds_2ch_src_re","tlds_default","resetScanCache","__index__","__text_cache__","createValidator","createNormalizer","compile","tlds","__tlds__","untpl","tpl","src_tlds","__tlds_replaced__","email_fuzzy","link_fuzzy","link_no_ip_fuzzy","host_fuzzy_test","aliases","schemaError","__compiled__","__schemas__","compiled","link","slist","schema_test","schema_search","Match","__last_index__","__schema__","raw","createMatch","schemas","__opts__","definition","ml","me","tld_pos","at_pos","testSchemaAt","keepOld","cnt","arrL","arrS","arr21","arr12","skipMarker","deflist","ddLine","dtLine","oldDDIndent"],"mappings":"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KAAK,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,MAAMC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAKC,IAAI,CAAC,CAAC,KAAKC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAKC,IAAI,CAAC,CAAC,IAAI,MAAMC,IAAI,CAAC,CAAC,IAAI,MAAMC,IAAI,CAAC,CAAC,MAAMC,IAAI,CAAC,CAAC,IAAI,MAAMC,IAAI,CAAC,CAAC,IAAI,MAAMC,IAAI,CAAC,CAAC,IAAI,MAAMC,IAAI,CAAC,CAAC,IAAI,MAAMC,IAAI,CAAC,CAAC,IAAI,MAAMC,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AC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,MAC5bC,KAAK,CAACC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAK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KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,MAC1qBC,KAAK,CAACC,KAAK,CAAC,CAAC,CAAC,CAACC,KAAK,OAAOC,KAAK,CAAC,CAAC,KAAK,OAAOC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAGC,MAAM,CAAC,CAAC,GAAGC,MAAM,CAAC,CAAC,CAAC,CAACC,MAAM,QAAQC,MAAM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C,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,MAC/TC,KAAK,CAACC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,MAC/yEC,KAAK,CAACA,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAACp3C,IAAI,OAAOq3C,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAACr3C,IAAI,OAAOs3C,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IA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D,IAAI,OAAOygD,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAACzgD,IAAI,OAAO0gD,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,I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AAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC32C,IAAI,OAAO42C,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,IAAI,MAAMC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAChyD,IAAI,KAAKC,IAAI,KAAK2E,IAAI,QACxzKqtD,KAAK,CAACA,KAAK,CAAC,CAAC,OAAOC,KAAK,CAAC,CAAC,OAAOC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,GAAGC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,MAC//CC,KAAK,CAACA,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAKC,KAAK,CAAC,CAAC,MAAMC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,MAAM,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,MAAM,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,KAAK,CAAC,CAAC,CAAC,CAAC/+D,IAAI,OAAOg/D,KAAK,CAAC,CAAC,CAAC,CAACh/D,IAAI,OAAOi/D,KAAK,CAAC,CAAC,CAAC,CAACj/D,IAAI,OAAOk/D,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAACx/D,IAAI,OAAOy/D,KAAK,CAAC,CAAC,CAAC,CAACz/D,IAAI,OAAO0/D,KAAK,CAAC,CAAC,CAAC,CAAC1/D,IAAI,QACrrE2/D,KAAK,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC5/D,IAAI,OAAO6/D,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAC9/D,IAAI,OAAO+/D,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAChgE,IAAI,OAAOigE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAClgE,IAAI,OAAOmgE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAACpgE,IAAI,OAAOqgE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,KAAK,CAAC,CAAC,CAAC,CAAC1gE,IAAI,OAAO2gE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAC5gE,IAAI,OAAO6gE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAC9gE,IAAI,OAAO+gE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAChhE,IAAI,OAAOihE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAClhE,IAAI,OAAOmhE,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,CAAC,CAACphE,IAAI,OAAOqhE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAACthE,IAAI,OAAOuhE,KAAK,CAAC,CAAC,CAAC,CAACvhE,IAAI,OAAOwhE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,GAAG,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAC7hE,IAAI,OAAO8hE,KAAK,CAAC,CAAC,CAAC,CAAC9hE,IAAI,OAAO+hE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAACjiE,IAAI,OAAOkiE,KAAK,CAAC,CAAC,CAAC,CAACliE,IAAI,OAAOmiE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAACriE,IAAI,OAAOsiE,KAAK,CAAC,CAAC,CAAC,CAACtiE,IAAI,OAAOuiE,KAAK,CAAC,CAAC,CAAC,CAACviE,IAAI,OAAOwiE,KAAK,CAAC,CAAC,CAAC,CAACxiE,IAAI,OAAOyiE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAC3iE,IAAI,OAAO4iE,KAAK,CAAC,CAAC,CAAC,CAAC5iE,IAAI,OAAO6iE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAC/iE,IAAI,OAAOgjE,KAAK,CAAC,CAAC,CAAC,CAAChjE,IAAI,OAAOijE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAACnjE,IAAI,OAAOojE,KAAK,CAAC,CAAC,CAAC,CAACpjE,IAAI,OAAOqjE,KAAK,CAAC,CAAC,CAAC,CAACrjE,IAAI,OAAOsjE,KAAK,CAAC,CAAC,CAAC,CAACtjE,IAAI,OAAOujE,KAAK,CAAC,CAAC,CAAC,CAACvjE,IAAI,OAAOwjE,KAAK,CAAC,CAAC,CAAC,CAACxjE,IAAI,OAAOyjE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,CAAC,CAAC7jE,IAAI,OAAO8jE,KAAK,CAAC,CAAC,CAAC,CAAC9jE,IAAI,OAAO+jE,KAAK,CAAC,CAAC,CAAC,CAAC/jE,IAAI,OAAOgkE,KAAK,CAAC,CAAC,CAAC,CAAChkE,IAAI,OAAOikE,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,MAAMC,KAAK,CAAC,CAAC,KAAK,OACx8CC,KAAK,CAACC,KAAK,CAAC,CAAC,QAAQC,KAAK,CAAC,CAAC,SAC5BC,KAAK,CAACC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,IAAI,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,KAAK,KAAKC,KAAK,CAAC,CAAC,IAAI,MAClpFC,MAAM,CAACC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAK,MAC9HC,MAAM,CAACC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,MAC5EC,MAAM,CAACC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAGC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,MACjcC,MAAM,CAACC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,MAC1CC,MAAM,CAACA,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,KAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC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AAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,MACphEC,MAAM,CAACA,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,IAAI,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,KAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,MACj5KC,MAAM,CAACA,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,MAAM,OAAO,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,MAAM,KAAKC,MAAM,CAAC,CAAC,IAAI,MAAM,KAAKC,MAAM,CAAC,CAAC,IAAI,MAAM,KAAKC,MAAM,CAAC,CAAC,IAAI,MAAM,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,KAAK,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAAC,GAAG,OAAO,KAAKC,MAAM,CAAC,CAA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AC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,KAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,MACr5IC,MAAM,CAACC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,MACz5IC,MAAM,CAACC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,MAC7oJC,MAAM,CAACC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,KAAK,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,MAChsJC,MAAM,CAACC,OAAO,CAAC,CAAC,KAAKC,OAAO,CAAC,CAAC,KAAKC,OAAO,CAAC,CAAC,KAAKC,OAAO,CAAC,CAAC,KAAKC,OAAO,CAAC,CAAC,KAAKC,OAAO,CAAC,CAAC,KAAKC,OAAO,CAAC,CAAC,MACpGC,MAAM,CAACC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,KAAKC,OAAO,CAAC,CAAC,MAAM,MACtwFC,MAAM,CAACC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,MAAM,GAAG,OAAO,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,KAAKC,OAAO,CAAC,CAAC,GAAG,IAAI,MACzlDC,MAAM,CAACC,OAAO,CAAC,CAAC,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,MAAM,MAAM,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,KAAKC,OAAO,CAAC,CAAC,OAAO,MACvyCC,MAAM,CAACC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,OAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAC/xIC,MAAM,CAACA,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,OAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,MAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SACj0QC,KAAM,CAACA,KAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,SAASC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,SAASC,MAAM,CAAC,CAAC,SAASC,MAAM,CAAC,CAAC,SAASC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,SAASC,MAAM,CAAC,CAAC,SAASC,MAAM,CAAC,CAAC,SAASC,MAAM,CAAC,CAAC,QAAQC,MAAM,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,MAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,SAASC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,QAAQC,OAAO,CAAC,CAAC,UAC1sHC,MAAM,CAACA,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,IAAIC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,MACriIC,MAAM,CAACA,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,MACniMC,MAAM,CAACA,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,GAAG,KAAK,KAAK,KAAK,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,MAAM,MAC7yKC,MAAM,CAACC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,GAAG,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,KAAKC,MAAM,CAAC,CAAC,KAAK,MAAM,MACxhIC,MAAM,CAACC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,IAAI,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,KAAK,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,CAAC,OAAO,KAAKC,MAAM,CAAC,C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AAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,KAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,O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GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhE,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACtD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACtD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACvD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhE,OAAgB,CACZ,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAGhE,KAAc,CACV,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACxD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACzD,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,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,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,S,qBCTz2S,SAAS/gP,EAAS/iB,GACd,IAAI+jQ,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CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,EAAE,OAAS,OAAS,EAAG,GAC7B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GA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AAS,GAC7B,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,IAAM,IAAM,EAAG,GACvB,IAAO,CAAC,IAAM,IAAM,EAAG,GACvB,IAAO,CAAC,IAAM,IAAM,EAAG,GACvB,IAAO,CAAC,IAAM,OAAS,EAAG,GAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,KAAQ,CAAC,EAAG,OAAS,OAAS,GAC9B,KAAQ,CAAC,EAAG,OAAS,OAAS,GAC9B,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,OAAS,OAAS,EAAG,GAC9B,KAAQ,CAAC,OAAS,OAAS,EAAG,GAC9B,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAAQ,CAAC,EAAG,OAAS,OAAS,GAC9B,KAAQ,CAAC,EAAG,OAAS,EAAG,GACxB,KAA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,IAAO,CAAC,EAAG,OAAS,MAAQ,GAC5B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,O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AS,OAAS,GAC7B,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,OAAS,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,OAAS,GACnC,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,IAAM,OAAS,EAAG,GAC1B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAA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CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,OAAS,OAAS,EAAG,GAC5B,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,OAAS,EAAG,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,GAAM,CAAC,EAAG,OAAS,EAAG,GACtB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,OAAS,OAAS,EAAG,GAC7B,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GACvB,IAAO,CAAC,EAAG,OAAS,EAAG,GA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K,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAA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oBACA,oBACA,kBACA,kBAAuB,mBAEvB,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBAAuB,mBAEvB,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,kBACA,oBACA,mBACA,mBACA,kBAAuB,mBAEvB,mBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,mBACA,kBACA,mBACA,mBACA,oBACA,oBACA,kBACA,kBAAuB,mBAEvB,mBACA,kBACA,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,iBACA,kBAAuB,mBAEvB,mBACA,mBACA,kBACA,mBACA,mBACA,kBACA,mBACA,mBACA,mBACA,mBACA,kBACA,oBACA,mBACA,oBACA,oBACA,mBACA,mBACA,mBAEA,mBACA,mBACA,oBACA,mBACA,mBACA,kBACA,kBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,kBAAuB,mBAEvB,kBACA,iBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,kBACA,kBACA,mBACA,oBACA,oBACA,oBACA,iBACA,mBACA,kBAAuB,kBAEvB,kBACA,kBACA,oBACA,kBACA,kBACA,mBACA,kBACA,mBACA,oBACA,iBACA,kBACA,mBACA,oBACA,oBACA,mBACA,kBACA,kBAAuB,kBAEvB,kBACA,kBACA,oBACA,kBACA,mBACA,mBACA,kBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBACA,kBACA,iBAAuB,mBAEvB,kBACA,kBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,oBACA,mBACA,mBACA,oBACA,oBACA,mBACA,mBACA,kBACA,kBAAuB,mBAEvB,kBACA,iBACA,mBACA,mBACA,mBACA,kBACA,kBACA,mBACA,oBACA,mBACA,mBACA,mBACA,oBACA,oBACA,mBACA,kBACA,mBAAuB,mBAEvB,iBACA,kBACA,oBACA,kBACA,mBACA,mBACA,mBACA,mBACA,mBACA,mBACA,kBACA,kBACA,oBACA,oBACA,oBACA,kBACA,mBAAuB,kBAEvB,WAAgBtzT,EAAKI,MAAQ,GAAM,QACnC,WAAgBJ,EAAKI,MAAQ,GAAM,QACnC,WAAeJ,EAAKI,MAAQ,GAAM,QAClC,WAAeJ,EAAKI,MAAQ,GAAM,QAClC,UAAcJ,EAAKI,MAAQ,GAAM,QACjC,UAAcJ,EAAKI,MAAQ,GAAM,QACjC,UAAcJ,EAAKI,MAAQ,GAAM,QACjC,SAAaJ,EAAKI,MAAQ,GAAM,QAEhC,mBAA2B,mBAC3B,kBAAyB,mBACzB,mBAA0B,mBAC1B,mBAGEmzT,EAAK,GACLC,EAAK,GAELC,EAAM,CACN,CACC,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,oBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBAEA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,sBAEF,CACC,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,qBACA,sBAEC,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,sBACA,qBACA,qBAED,EACA,EACA,EACA,EACA,EACA,GACC,sBACA,sBACA,sBAEF,CACC,kBACA,iBACA,kBAEA,kBACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBAEA,iBACA,kBACA,kBACA,mBACC,mBACA,kBACD,kBACA,IAEC,mBACA,mBACA,mBACA,mBACA,oBACA,oBACA,oBACA,oBAED,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,iBACA,mBAED,CACC,EACA,EACA,EACA,EACA,EACA,EACA,qBACA,qBACA,qBAEA,qBACA,qBACA,qBACA,qBACA,qBACA,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4P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EAERA,EAAK74P,EAAE,GAAKA,EAAE,GACdA,EAAE,GAAK64P,EACPA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,GAAK64P,EACZ74P,EAAE,GAAK64P,EACPA,EAAK74P,EAAE,GAAK64P,EACZ74P,EAAE,GAAK64P,EACPA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,GAAK64P,EACZ74P,EAAE,GAAK64P,EACPA,EAAK74P,EAAE,GAAK64P,EACZ74P,EAAE,GAAK64P,EACPA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EACRA,EAAK74P,EAAE,IAAM64P,EACb74P,EAAE,IAAM64P,EAERA,EAAK74P,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAO64P,EACTA,EAAK74P,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAO64P,EACTA,EAAK74P,EAAE,IACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAO64P,EACTA,EAAK74P,EAAE,IACPA,EAAE,KAAOA,EAAE,IACXA,EAAE,KAAO64P,EACTA,EAAK74P,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAO64P,EACTA,EAAK74P,EAAE,GACPA,EAAE,IAAMA,EAAE,IACVA,EAAE,KAAO64P,EACTA,EAAK74P,EAAE,IACPA,EAAE,KAAOA,EAAE,GACXA,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","file":"js/chunk-be7359ba.f62c1c80.js","sourcesContent":["// Utilities\n//\n'use strict';\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction isString(obj) { return _class(obj) === '[object String]'; }\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction has(object, key) {\n return _hasOwnProperty.call(object, key);\n}\n\n// Merge objects\n//\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n sources.forEach(function (source) {\n if (!source) { return; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be object');\n }\n\n Object.keys(source).forEach(function (key) {\n obj[key] = source[key];\n });\n });\n\n return obj;\n}\n\n// Remove element from array and put another array at those position.\n// Useful for some operations with tokens\nfunction arrayReplaceAt(src, pos, newElements) {\n return [].concat(src.slice(0, pos), newElements, src.slice(pos + 1));\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isValidEntityCode(c) {\n /*eslint no-bitwise:0*/\n // broken sequence\n if (c >= 0xD800 && c <= 0xDFFF) { return false; }\n // never used\n if (c >= 0xFDD0 && c <= 0xFDEF) { return false; }\n if ((c & 0xFFFF) === 0xFFFF || (c & 0xFFFF) === 0xFFFE) { return false; }\n // control codes\n if (c >= 0x00 && c <= 0x08) { return false; }\n if (c === 0x0B) { return false; }\n if (c >= 0x0E && c <= 0x1F) { return false; }\n if (c >= 0x7F && c <= 0x9F) { return false; }\n // out of range\n if (c > 0x10FFFF) { return false; }\n return true;\n}\n\nfunction fromCodePoint(c) {\n /*eslint no-bitwise:0*/\n if (c > 0xffff) {\n c -= 0x10000;\n var surrogate1 = 0xd800 + (c >> 10),\n surrogate2 = 0xdc00 + (c & 0x3ff);\n\n return String.fromCharCode(surrogate1, surrogate2);\n }\n return String.fromCharCode(c);\n}\n\n\nvar UNESCAPE_MD_RE = /\\\\([!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~])/g;\nvar ENTITY_RE = /&([a-z#][a-z0-9]{1,31});/gi;\nvar UNESCAPE_ALL_RE = new RegExp(UNESCAPE_MD_RE.source + '|' + ENTITY_RE.source, 'gi');\n\nvar DIGITAL_ENTITY_TEST_RE = /^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;\n\nvar entities = require('./entities');\n\nfunction replaceEntityPattern(match, name) {\n var code = 0;\n\n if (has(entities, name)) {\n return entities[name];\n }\n\n if (name.charCodeAt(0) === 0x23/* # */ && DIGITAL_ENTITY_TEST_RE.test(name)) {\n code = name[1].toLowerCase() === 'x' ?\n parseInt(name.slice(2), 16)\n :\n parseInt(name.slice(1), 10);\n if (isValidEntityCode(code)) {\n return fromCodePoint(code);\n }\n }\n\n return match;\n}\n\n/*function replaceEntities(str) {\n if (str.indexOf('&') < 0) { return str; }\n\n return str.replace(ENTITY_RE, replaceEntityPattern);\n}*/\n\nfunction unescapeMd(str) {\n if (str.indexOf('\\\\') < 0) { return str; }\n return str.replace(UNESCAPE_MD_RE, '$1');\n}\n\nfunction unescapeAll(str) {\n if (str.indexOf('\\\\') < 0 && str.indexOf('&') < 0) { return str; }\n\n return str.replace(UNESCAPE_ALL_RE, function (match, escaped, entity) {\n if (escaped) { return escaped; }\n return replaceEntityPattern(match, entity);\n });\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar HTML_ESCAPE_TEST_RE = /[&<>\"]/;\nvar HTML_ESCAPE_REPLACE_RE = /[&<>\"]/g;\nvar HTML_REPLACEMENTS = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"'\n};\n\nfunction replaceUnsafeChar(ch) {\n return HTML_REPLACEMENTS[ch];\n}\n\nfunction escapeHtml(str) {\n if (HTML_ESCAPE_TEST_RE.test(str)) {\n return str.replace(HTML_ESCAPE_REPLACE_RE, replaceUnsafeChar);\n }\n return str;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar REGEXP_ESCAPE_RE = /[.?*+^$[\\]\\\\(){}|-]/g;\n\nfunction escapeRE(str) {\n return str.replace(REGEXP_ESCAPE_RE, '\\\\$&');\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\nfunction isSpace(code) {\n switch (code) {\n case 0x09:\n case 0x20:\n return true;\n }\n return false;\n}\n\n// Zs (unicode class) || [\\t\\f\\v\\r\\n]\nfunction isWhiteSpace(code) {\n if (code >= 0x2000 && code <= 0x200A) { return true; }\n switch (code) {\n case 0x09: // \\t\n case 0x0A: // \\n\n case 0x0B: // \\v\n case 0x0C: // \\f\n case 0x0D: // \\r\n case 0x20:\n case 0xA0:\n case 0x1680:\n case 0x202F:\n case 0x205F:\n case 0x3000:\n return true;\n }\n return false;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n/*eslint-disable max-len*/\nvar UNICODE_PUNCT_RE = require('uc.micro/categories/P/regex');\n\n// Currently without astral characters support.\nfunction isPunctChar(ch) {\n return UNICODE_PUNCT_RE.test(ch);\n}\n\n\n// Markdown ASCII punctuation characters.\n//\n// !, \", #, $, %, &, ', (, ), *, +, ,, -, ., /, :, ;, <, =, >, ?, @, [, \\, ], ^, _, `, {, |, }, or ~\n// http://spec.commonmark.org/0.15/#ascii-punctuation-character\n//\n// Don't confuse with unicode punctuation !!! It lacks some chars in ascii range.\n//\nfunction isMdAsciiPunct(ch) {\n switch (ch) {\n case 0x21/* ! */:\n case 0x22/* \" */:\n case 0x23/* # */:\n case 0x24/* $ */:\n case 0x25/* % */:\n case 0x26/* & */:\n case 0x27/* ' */:\n case 0x28/* ( */:\n case 0x29/* ) */:\n case 0x2A/* * */:\n case 0x2B/* + */:\n case 0x2C/* , */:\n case 0x2D/* - */:\n case 0x2E/* . */:\n case 0x2F/* / */:\n case 0x3A/* : */:\n case 0x3B/* ; */:\n case 0x3C/* < */:\n case 0x3D/* = */:\n case 0x3E/* > */:\n case 0x3F/* ? */:\n case 0x40/* @ */:\n case 0x5B/* [ */:\n case 0x5C/* \\ */:\n case 0x5D/* ] */:\n case 0x5E/* ^ */:\n case 0x5F/* _ */:\n case 0x60/* ` */:\n case 0x7B/* { */:\n case 0x7C/* | */:\n case 0x7D/* } */:\n case 0x7E/* ~ */:\n return true;\n default:\n return false;\n }\n}\n\n// Hepler to unify [reference labels].\n//\nfunction normalizeReference(str) {\n // use .toUpperCase() instead of .toLowerCase()\n // here to avoid a conflict with Object.prototype\n // members (most notably, `__proto__`)\n return str.trim().replace(/\\s+/g, ' ').toUpperCase();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n// Re-export libraries commonly used in both markdown-it and its plugins,\n// so plugins won't have to depend on them explicitly, which reduces their\n// bundled size (e.g. a browser build).\n//\nexports.lib = {};\nexports.lib.mdurl = require('mdurl');\nexports.lib.ucmicro = require('uc.micro');\n\nexports.assign = assign;\nexports.isString = isString;\nexports.has = has;\nexports.unescapeMd = unescapeMd;\nexports.unescapeAll = unescapeAll;\nexports.isValidEntityCode = isValidEntityCode;\nexports.fromCodePoint = fromCodePoint;\n// exports.replaceEntities = replaceEntities;\nexports.escapeHtml = escapeHtml;\nexports.arrayReplaceAt = arrayReplaceAt;\nexports.isSpace = isSpace;\nexports.isWhiteSpace = isWhiteSpace;\nexports.isMdAsciiPunct = isMdAsciiPunct;\nexports.isPunctChar = isPunctChar;\nexports.escapeRE = escapeRE;\nexports.normalizeReference = normalizeReference;\n","'use strict';\n\nmodule.exports = function emoji_html(tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\n","function new_byte(count) {\n return new Int8Array(count);\n}\n\nfunction new_short(count) {\n return new Int16Array(count);\n}\n\nfunction new_int(count) {\n return new Int32Array(count);\n}\n\nfunction new_float(count) {\n return new Float32Array(count);\n}\n\nfunction new_double(count) {\n return new Float64Array(count);\n}\n\nfunction new_float_n(args) {\n if (args.length == 1) {\n return new_float(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_float_n(args));\n }\n return A;\n}\nfunction new_int_n(args) {\n if (args.length == 1) {\n return new_int(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_int_n(args));\n }\n return A;\n}\n\nfunction new_short_n(args) {\n if (args.length == 1) {\n return new_short(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_short_n(args));\n }\n return A;\n}\n\nfunction new_array_n(args) {\n if (args.length == 1) {\n return new Array(args[0]);\n }\n var sz = args[0];\n args = args.slice(1);\n var A = [];\n for (var i = 0; i < sz; i++) {\n A.push(new_array_n(args));\n }\n return A;\n}\n\n\nvar Arrays = {};\n\nArrays.fill = function (a, fromIndex, toIndex, val) {\n if (arguments.length == 2) {\n for (var i = 0; i < a.length; i++) {\n a[i] = arguments[1];\n }\n } else {\n for (var i = fromIndex; i < toIndex; i++) {\n a[i] = val;\n }\n }\n};\n\nvar System = {};\n\nSystem.arraycopy = function (src, srcPos, dest, destPos, length) {\n var srcEnd = srcPos + length;\n while (srcPos < srcEnd)\n dest[destPos++] = src[srcPos++];\n};\n\nSystem.out = {};\nSystem.out.println = function (message) {\n console.log(message);\n}\n\nSystem.out.printf = function () {\n console.log.apply(console, arguments);\n}\n\n\nvar Util = {};\nUtil.SQRT2 = 1.41421356237309504880;\nUtil.FAST_LOG10 = function (x) {\n return Math.log10(x);\n};\n\nUtil.FAST_LOG10_X = function (x, y) {\n return Math.log10(x) * y;\n};\n\nfunction ShortBlock(ordinal) {\n this.ordinal = ordinal;\n}\n/**\n * LAME may use them, even different block types for L/R.\n */\nShortBlock.short_block_allowed = new ShortBlock(0);\n/**\n * LAME may use them, but always same block types in L/R.\n */\nShortBlock.short_block_coupled = new ShortBlock(1);\n/**\n * LAME will not use short blocks, long blocks only.\n */\nShortBlock.short_block_dispensed = new ShortBlock(2);\n/**\n * LAME will not use long blocks, short blocks only.\n */\nShortBlock.short_block_forced = new ShortBlock(3);\n\nvar Float = {};\nFloat.MAX_VALUE = 3.4028235e+38;\n\nfunction VbrMode(ordinal) {\n this.ordinal = ordinal;\n}\nVbrMode.vbr_off = new VbrMode(0);\nVbrMode.vbr_mt = new VbrMode(1);\nVbrMode.vbr_rh = new VbrMode(2);\nVbrMode.vbr_abr = new VbrMode(3);\nVbrMode.vbr_mtrh = new VbrMode(4);\nVbrMode.vbr_default = VbrMode.vbr_mtrh;\n\nvar assert = function (x) {\n //console.assert(x);\n};\n\nmodule.exports = {\n \"System\": System,\n \"VbrMode\": VbrMode,\n \"Float\": Float,\n \"ShortBlock\": ShortBlock,\n \"Util\": Util,\n \"Arrays\": Arrays,\n \"new_array_n\": new_array_n,\n \"new_byte\": new_byte,\n \"new_double\": new_double,\n \"new_float\": new_float,\n \"new_float_n\": new_float_n,\n \"new_int\": new_int,\n \"new_int_n\": new_int_n,\n \"new_short\": new_short,\n \"new_short_n\": new_short_n,\n \"assert\": assert\n};\n","// heading (#, ##, ...)\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\n\nmodule.exports = function heading(state, startLine, endLine, silent) {\n var ch, level, tmp, token,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n ch = state.src.charCodeAt(pos);\n\n if (ch !== 0x23/* # */ || pos >= max) { return false; }\n\n // count heading level\n level = 1;\n ch = state.src.charCodeAt(++pos);\n while (ch === 0x23/* # */ && pos < max && level <= 6) {\n level++;\n ch = state.src.charCodeAt(++pos);\n }\n\n if (level > 6 || (pos < max && ch !== 0x20/* space */)) { return false; }\n\n if (silent) { return true; }\n\n // Let's cut tails like ' ### ' from the end of string\n\n max = state.skipSpacesBack(max, pos);\n tmp = state.skipCharsBack(max, 0x23, pos); // #\n if (tmp > pos && isSpace(state.src.charCodeAt(tmp - 1))) {\n max = tmp;\n }\n\n state.line = startLine + 1;\n\n token = state.push('heading_open', 'h' + String(level), 1);\n token.markup = '########'.slice(0, level);\n token.map = [ startLine, state.line ];\n\n token = state.push('inline', '', 0);\n token.content = state.src.slice(pos, max).trim();\n token.map = [ startLine, state.line ];\n token.children = [];\n\n token = state.push('heading_close', 'h' + String(level), -1);\n token.markup = '########'.slice(0, level);\n\n return true;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// Main parser class\n\n'use strict';\n\n\nvar utils = require('./common/utils');\nvar helpers = require('./helpers');\nvar Renderer = require('./renderer');\nvar ParserCore = require('./parser_core');\nvar ParserBlock = require('./parser_block');\nvar ParserInline = require('./parser_inline');\nvar LinkifyIt = require('linkify-it');\nvar mdurl = require('mdurl');\nvar punycode = require('punycode');\n\n\nvar config = {\n 'default': require('./presets/default'),\n zero: require('./presets/zero'),\n commonmark: require('./presets/commonmark')\n};\n\n////////////////////////////////////////////////////////////////////////////////\n//\n// This validator can prohibit more than really needed to prevent XSS. It's a\n// tradeoff to keep code simple and to be secure by default.\n//\n// If you need different setup - override validator method as you wish. Or\n// replace it with dummy function and use external sanitizer.\n//\n\nvar BAD_PROTO_RE = /^(vbscript|javascript|file|data):/;\nvar GOOD_DATA_RE = /^data:image\\/(gif|png|jpeg|webp);/;\n\nfunction validateLink(url) {\n // url should be normalized at this point, and existing entities are decoded\n var str = url.trim().toLowerCase();\n\n return BAD_PROTO_RE.test(str) ? (GOOD_DATA_RE.test(str) ? true : false) : true;\n}\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nvar RECODE_HOSTNAME_FOR = [ 'http:', 'https:', 'mailto:' ];\n\nfunction normalizeLink(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toASCII(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.encode(mdurl.format(parsed));\n}\n\nfunction normalizeLinkText(url) {\n var parsed = mdurl.parse(url, true);\n\n if (parsed.hostname) {\n // Encode hostnames in urls like:\n // `http://host/`, `https://host/`, `mailto:user@host`, `//host/`\n //\n // We don't encode unknown schemas, because it's likely that we encode\n // something we shouldn't (e.g. `skype:name` treated as `skype:host`)\n //\n if (!parsed.protocol || RECODE_HOSTNAME_FOR.indexOf(parsed.protocol) >= 0) {\n try {\n parsed.hostname = punycode.toUnicode(parsed.hostname);\n } catch (er) { /**/ }\n }\n }\n\n return mdurl.decode(mdurl.format(parsed));\n}\n\n\n/**\n * class MarkdownIt\n *\n * Main parser/renderer class.\n *\n * ##### Usage\n *\n * ```javascript\n * // node.js, \"classic\" way:\n * var MarkdownIt = require('markdown-it'),\n * md = new MarkdownIt();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // node.js, the same, but with sugar:\n * var md = require('markdown-it')();\n * var result = md.render('# markdown-it rulezz!');\n *\n * // browser without AMD, added to \"window\" on script load\n * // Note, there are no dash.\n * var md = window.markdownit();\n * var result = md.render('# markdown-it rulezz!');\n * ```\n *\n * Single line rendering, without paragraph wrap:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * var result = md.renderInline('__markdown-it__ rulezz!');\n * ```\n **/\n\n/**\n * new MarkdownIt([presetName, options])\n * - presetName (String): optional, `commonmark` / `zero`\n * - options (Object)\n *\n * Creates parser instanse with given config. Can be called without `new`.\n *\n * ##### presetName\n *\n * MarkdownIt provides named presets as a convenience to quickly\n * enable/disable active syntax rules and options for common use cases.\n *\n * - [\"commonmark\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/commonmark.js) -\n * configures parser to strict [CommonMark](http://commonmark.org/) mode.\n * - [default](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/default.js) -\n * similar to GFM, used when no preset name given. Enables all available rules,\n * but still without html, typographer & autolinker.\n * - [\"zero\"](https://github.com/markdown-it/markdown-it/blob/master/lib/presets/zero.js) -\n * all rules disabled. Useful to quickly setup your config via `.enable()`.\n * For example, when you need only `bold` and `italic` markup and nothing else.\n *\n * ##### options:\n *\n * - __html__ - `false`. Set `true` to enable HTML tags in source. Be careful!\n * That's not safe! You may need external sanitizer to protect output from XSS.\n * It's better to extend features via plugins, instead of enabling HTML.\n * - __xhtmlOut__ - `false`. Set `true` to add '/' when closing single tags\n * (`
`). This is needed only for full CommonMark compatibility. In real\n * world you will need HTML output.\n * - __breaks__ - `false`. Set `true` to convert `\\n` in paragraphs into `
`.\n * - __langPrefix__ - `language-`. CSS language class prefix for fenced blocks.\n * Can be useful for external highlighters.\n * - __linkify__ - `false`. Set `true` to autoconvert URL-like text to links.\n * - __typographer__ - `false`. Set `true` to enable [some language-neutral\n * replacement](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js) +\n * quotes beautification (smartquotes).\n * - __quotes__ - `“”‘’`, String or Array. Double + single quotes replacement\n * pairs, when typographer enabled and smartquotes on. For example, you can\n * use `'«»„“'` for Russian, `'„“‚‘'` for German, and\n * `['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›']` for French (including nbsp).\n * - __highlight__ - `null`. Highlighter function for fenced code blocks.\n * Highlighter `function (str, lang)` should return escaped HTML. It can also\n * return empty string if the source was not changed and should be escaped\n * externaly. If result starts with
' +\n * hljs.highlight(lang, str, true).value +\n * '
';\n * } catch (__) {}\n * }\n *\n * return '' + md.utils.escapeHtml(str) + '
';\n * }\n * });\n * ```\n *\n **/\nfunction MarkdownIt(presetName, options) {\n if (!(this instanceof MarkdownIt)) {\n return new MarkdownIt(presetName, options);\n }\n\n if (!options) {\n if (!utils.isString(presetName)) {\n options = presetName || {};\n presetName = 'default';\n }\n }\n\n /**\n * MarkdownIt#inline -> ParserInline\n *\n * Instance of [[ParserInline]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.inline = new ParserInline();\n\n /**\n * MarkdownIt#block -> ParserBlock\n *\n * Instance of [[ParserBlock]]. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.block = new ParserBlock();\n\n /**\n * MarkdownIt#core -> Core\n *\n * Instance of [[Core]] chain executor. You may need it to add new rules when\n * writing plugins. For simple rules control use [[MarkdownIt.disable]] and\n * [[MarkdownIt.enable]].\n **/\n this.core = new ParserCore();\n\n /**\n * MarkdownIt#renderer -> Renderer\n *\n * Instance of [[Renderer]]. Use it to modify output look. Or to add rendering\n * rules for new token types, generated by plugins.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * function myToken(tokens, idx, options, env, self) {\n * //...\n * return result;\n * };\n *\n * md.renderer.rules['my_token'] = myToken\n * ```\n *\n * See [[Renderer]] docs and [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js).\n **/\n this.renderer = new Renderer();\n\n /**\n * MarkdownIt#linkify -> LinkifyIt\n *\n * [linkify-it](https://github.com/markdown-it/linkify-it) instance.\n * Used by [linkify](https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/linkify.js)\n * rule.\n **/\n this.linkify = new LinkifyIt();\n\n /**\n * MarkdownIt#validateLink(url) -> Boolean\n *\n * Link validation function. CommonMark allows too much in links. By default\n * we disable `javascript:`, `vbscript:`, `file:` schemas, and almost all `data:...` schemas\n * except some embedded image types.\n *\n * You can change this behaviour:\n *\n * ```javascript\n * var md = require('markdown-it')();\n * // enable everything\n * md.validateLink = function () { return true; }\n * ```\n **/\n this.validateLink = validateLink;\n\n /**\n * MarkdownIt#normalizeLink(url) -> String\n *\n * Function used to encode link url to a machine-readable format,\n * which includes url-encoding, punycode, etc.\n **/\n this.normalizeLink = normalizeLink;\n\n /**\n * MarkdownIt#normalizeLinkText(url) -> String\n *\n * Function used to decode link url to a human-readable format`\n **/\n this.normalizeLinkText = normalizeLinkText;\n\n\n // Expose utils & helpers for easy acces from plugins\n\n /**\n * MarkdownIt#utils -> utils\n *\n * Assorted utility functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/common/utils.js).\n **/\n this.utils = utils;\n\n /**\n * MarkdownIt#helpers -> helpers\n *\n * Link components parser functions, useful to write plugins. See details\n * [here](https://github.com/markdown-it/markdown-it/blob/master/lib/helpers).\n **/\n this.helpers = helpers;\n\n\n this.options = {};\n this.configure(presetName);\n\n if (options) { this.set(options); }\n}\n\n\n/** chainable\n * MarkdownIt.set(options)\n *\n * Set parser options (in the same format as in constructor). Probably, you\n * will never need it, but you can change options after constructor call.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .set({ html: true, breaks: true })\n * .set({ typographer, true });\n * ```\n *\n * __Note:__ To achieve the best possible performance, don't modify a\n * `markdown-it` instance options on the fly. If you need multiple configurations\n * it's best to create multiple instances and initialize each with separate\n * config.\n **/\nMarkdownIt.prototype.set = function (options) {\n utils.assign(this.options, options);\n return this;\n};\n\n\n/** chainable, internal\n * MarkdownIt.configure(presets)\n *\n * Batch load of all options and compenent settings. This is internal method,\n * and you probably will not need it. But if you with - see available presets\n * and data structure [here](https://github.com/markdown-it/markdown-it/tree/master/lib/presets)\n *\n * We strongly recommend to use presets instead of direct config loads. That\n * will give better compatibility with next versions.\n **/\nMarkdownIt.prototype.configure = function (presets) {\n var self = this, presetName;\n\n if (utils.isString(presets)) {\n presetName = presets;\n presets = config[presetName];\n if (!presets) { throw new Error('Wrong `markdown-it` preset \"' + presetName + '\", check name'); }\n }\n\n if (!presets) { throw new Error('Wrong `markdown-it` preset, can\\'t be empty'); }\n\n if (presets.options) { self.set(presets.options); }\n\n if (presets.components) {\n Object.keys(presets.components).forEach(function (name) {\n if (presets.components[name].rules) {\n self[name].ruler.enableOnly(presets.components[name].rules);\n }\n if (presets.components[name].rules2) {\n self[name].ruler2.enableOnly(presets.components[name].rules2);\n }\n });\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.enable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to enable\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * Enable list or rules. It will automatically find appropriate components,\n * containing rules with given names. If rule not found, and `ignoreInvalid`\n * not set - throws exception.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')()\n * .enable(['sub', 'sup'])\n * .disable('smartquotes');\n * ```\n **/\nMarkdownIt.prototype.enable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.enable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.enable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to enable unknown rule(s): ' + missed);\n }\n\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.disable(list, ignoreInvalid)\n * - list (String|Array): rule name or list of rule names to disable.\n * - ignoreInvalid (Boolean): set `true` to ignore errors when rule not found.\n *\n * The same as [[MarkdownIt.enable]], but turn specified rules off.\n **/\nMarkdownIt.prototype.disable = function (list, ignoreInvalid) {\n var result = [];\n\n if (!Array.isArray(list)) { list = [ list ]; }\n\n [ 'core', 'block', 'inline' ].forEach(function (chain) {\n result = result.concat(this[chain].ruler.disable(list, true));\n }, this);\n\n result = result.concat(this.inline.ruler2.disable(list, true));\n\n var missed = list.filter(function (name) { return result.indexOf(name) < 0; });\n\n if (missed.length && !ignoreInvalid) {\n throw new Error('MarkdownIt. Failed to disable unknown rule(s): ' + missed);\n }\n return this;\n};\n\n\n/** chainable\n * MarkdownIt.use(plugin, params)\n *\n * Load specified plugin with given params into current parser instance.\n * It's just a sugar to call `plugin(md, params)` with curring.\n *\n * ##### Example\n *\n * ```javascript\n * var iterator = require('markdown-it-for-inline');\n * var md = require('markdown-it')()\n * .use(iterator, 'foo_replace', 'text', function (tokens, idx) {\n * tokens[idx].content = tokens[idx].content.replace(/foo/g, 'bar');\n * });\n * ```\n **/\nMarkdownIt.prototype.use = function (plugin /*, params, ... */) {\n var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n};\n\n\n/** internal\n * MarkdownIt.parse(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Parse input string and returns list of block tokens (special token type\n * \"inline\" will contain list of inline tokens). You should not call this\n * method directly, until you write custom renderer (for example, to produce\n * AST).\n *\n * `env` is used to pass data between \"distributed\" rules and return additional\n * metadata like reference info, needed for the renderer. It also can be used to\n * inject data in specific cases. Usually, you will be ok to pass `{}`,\n * and then pass updated object to renderer.\n **/\nMarkdownIt.prototype.parse = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.render(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Render markdown string into html. It does all magic for you :).\n *\n * `env` can be used to inject additional metadata (`{}` by default).\n * But you will not need it with high probability. See also comment\n * in [[MarkdownIt.parse]].\n **/\nMarkdownIt.prototype.render = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parse(src, env), this.options, env);\n};\n\n\n/** internal\n * MarkdownIt.parseInline(src, env) -> Array\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * The same as [[MarkdownIt.parse]] but skip all block rules. It returns the\n * block tokens list with the single `inline` element, containing parsed inline\n * tokens in `children` property. Also updates `env` object.\n **/\nMarkdownIt.prototype.parseInline = function (src, env) {\n var state = new this.core.State(src, this, env);\n\n state.inlineMode = true;\n this.core.process(state);\n\n return state.tokens;\n};\n\n\n/**\n * MarkdownIt.renderInline(src [, env]) -> String\n * - src (String): source string\n * - env (Object): environment sandbox\n *\n * Similar to [[MarkdownIt.render]] but for single paragraph content. Result\n * will NOT be wrapped into `` tags.\n **/\nMarkdownIt.prototype.renderInline = function (src, env) {\n env = env || {};\n\n return this.renderer.render(this.parseInline(src, env), this.options, env);\n};\n\n\nmodule.exports = MarkdownIt;\n","// Token class\n\n'use strict';\n\n\n/**\n * class Token\n **/\n\n/**\n * new Token(type, tag, nesting)\n *\n * Create new token and fill passed properties.\n **/\nfunction Token(type, tag, nesting) {\n /**\n * Token#type -> String\n *\n * Type of the token (string, e.g. \"paragraph_open\")\n **/\n this.type = type;\n\n /**\n * Token#tag -> String\n *\n * html tag name, e.g. \"p\"\n **/\n this.tag = tag;\n\n /**\n * Token#attrs -> Array\n *\n * Html attributes. Format: `[ [ name1, value1 ], [ name2, value2 ] ]`\n **/\n this.attrs = null;\n\n /**\n * Token#map -> Array\n *\n * Source map info. Format: `[ line_begin, line_end ]`\n **/\n this.map = null;\n\n /**\n * Token#nesting -> Number\n *\n * Level change (number in {-1, 0, 1} set), where:\n *\n * - `1` means the tag is opening\n * - `0` means the tag is self-closing\n * - `-1` means the tag is closing\n **/\n this.nesting = nesting;\n\n /**\n * Token#level -> Number\n *\n * nesting level, the same as `state.level`\n **/\n this.level = 0;\n\n /**\n * Token#children -> Array\n *\n * An array of child nodes (inline and img tokens)\n **/\n this.children = null;\n\n /**\n * Token#content -> String\n *\n * In a case of self-closing tag (code, html, fence, etc.),\n * it has contents of this tag.\n **/\n this.content = '';\n\n /**\n * Token#markup -> String\n *\n * '*' or '_' for emphasis, fence string for fence, etc.\n **/\n this.markup = '';\n\n /**\n * Token#info -> String\n *\n * fence infostring\n **/\n this.info = '';\n\n /**\n * Token#meta -> Object\n *\n * A place for plugins to store an arbitrary data\n **/\n this.meta = null;\n\n /**\n * Token#block -> Boolean\n *\n * True for block-level tokens, false for inline tokens.\n * Used in renderer to calculate line breaks\n **/\n this.block = false;\n\n /**\n * Token#hidden -> Boolean\n *\n * If it's true, ignore this element when rendering. Used for tight lists\n * to hide paragraphs.\n **/\n this.hidden = false;\n}\n\n\n/**\n * Token.attrIndex(name) -> Number\n *\n * Search attribute index by name.\n **/\nToken.prototype.attrIndex = function attrIndex(name) {\n var attrs, i, len;\n\n if (!this.attrs) { return -1; }\n\n attrs = this.attrs;\n\n for (i = 0, len = attrs.length; i < len; i++) {\n if (attrs[i][0] === name) { return i; }\n }\n return -1;\n};\n\n\n/**\n * Token.attrPush(attrData)\n *\n * Add `[ name, value ]` attribute to list. Init attrs if necessary\n **/\nToken.prototype.attrPush = function attrPush(attrData) {\n if (this.attrs) {\n this.attrs.push(attrData);\n } else {\n this.attrs = [ attrData ];\n }\n};\n\n\n/**\n * Token.attrSet(name, value)\n *\n * Set `name` attribute to `value`. Override old value if exists.\n **/\nToken.prototype.attrSet = function attrSet(name, value) {\n var idx = this.attrIndex(name),\n attrData = [ name, value ];\n\n if (idx < 0) {\n this.attrPush(attrData);\n } else {\n this.attrs[idx] = attrData;\n }\n};\n\n\n/**\n * Token.attrGet(name)\n *\n * Get the value of attribute `name`, or null if it does not exist.\n **/\nToken.prototype.attrGet = function attrGet(name) {\n var idx = this.attrIndex(name), value = null;\n if (idx >= 0) {\n value = this.attrs[idx][1];\n }\n return value;\n};\n\n\n/**\n * Token.attrJoin(name, value)\n *\n * Join value to existing attribute via space. Or create new attribute if not\n * exists. Useful to operate with token classes.\n **/\nToken.prototype.attrJoin = function attrJoin(name, value) {\n var idx = this.attrIndex(name);\n\n if (idx < 0) {\n this.attrPush([ name, value ]);\n } else {\n this.attrs[idx][1] = this.attrs[idx][1] + ' ' + value;\n }\n};\n\n\nmodule.exports = Token;\n","// Inline parser state\n\n'use strict';\n\n\nvar Token = require('../token');\nvar isWhiteSpace = require('../common/utils').isWhiteSpace;\nvar isPunctChar = require('../common/utils').isPunctChar;\nvar isMdAsciiPunct = require('../common/utils').isMdAsciiPunct;\n\n\nfunction StateInline(src, md, env, outTokens) {\n this.src = src;\n this.env = env;\n this.md = md;\n this.tokens = outTokens;\n\n this.pos = 0;\n this.posMax = this.src.length;\n this.level = 0;\n this.pending = '';\n this.pendingLevel = 0;\n\n this.cache = {}; // Stores { start: end } pairs. Useful for backtrack\n // optimization of pairs parse (emphasis, strikes).\n\n this.delimiters = []; // Emphasis-like delimiters\n}\n\n\n// Flush pending text\n//\nStateInline.prototype.pushPending = function () {\n var token = new Token('text', '', 0);\n token.content = this.pending;\n token.level = this.pendingLevel;\n this.tokens.push(token);\n this.pending = '';\n return token;\n};\n\n\n// Push new token to \"stream\".\n// If pending text exists - flush it as text token\n//\nStateInline.prototype.push = function (type, tag, nesting) {\n if (this.pending) {\n this.pushPending();\n }\n\n var token = new Token(type, tag, nesting);\n\n if (nesting < 0) { this.level--; }\n token.level = this.level;\n if (nesting > 0) { this.level++; }\n\n this.pendingLevel = this.level;\n this.tokens.push(token);\n return token;\n};\n\n\n// Scan a sequence of emphasis-like markers, and determine whether\n// it can start an emphasis sequence or end an emphasis sequence.\n//\n// - start - position to scan from (it should point at a valid marker);\n// - canSplitWord - determine if these markers can be found inside a word\n//\nStateInline.prototype.scanDelims = function (start, canSplitWord) {\n var pos = start, lastChar, nextChar, count, can_open, can_close,\n isLastWhiteSpace, isLastPunctChar,\n isNextWhiteSpace, isNextPunctChar,\n left_flanking = true,\n right_flanking = true,\n max = this.posMax,\n marker = this.src.charCodeAt(start);\n\n // treat beginning of the line as a whitespace\n lastChar = start > 0 ? this.src.charCodeAt(start - 1) : 0x20;\n\n while (pos < max && this.src.charCodeAt(pos) === marker) { pos++; }\n\n count = pos - start;\n\n // treat end of the line as a whitespace\n nextChar = pos < max ? this.src.charCodeAt(pos) : 0x20;\n\n isLastPunctChar = isMdAsciiPunct(lastChar) || isPunctChar(String.fromCharCode(lastChar));\n isNextPunctChar = isMdAsciiPunct(nextChar) || isPunctChar(String.fromCharCode(nextChar));\n\n isLastWhiteSpace = isWhiteSpace(lastChar);\n isNextWhiteSpace = isWhiteSpace(nextChar);\n\n if (isNextWhiteSpace) {\n left_flanking = false;\n } else if (isNextPunctChar) {\n if (!(isLastWhiteSpace || isLastPunctChar)) {\n left_flanking = false;\n }\n }\n\n if (isLastWhiteSpace) {\n right_flanking = false;\n } else if (isLastPunctChar) {\n if (!(isNextWhiteSpace || isNextPunctChar)) {\n right_flanking = false;\n }\n }\n\n if (!canSplitWord) {\n can_open = left_flanking && (!right_flanking || isLastPunctChar);\n can_close = right_flanking && (!left_flanking || isNextPunctChar);\n } else {\n can_open = left_flanking;\n can_close = right_flanking;\n }\n\n return {\n can_open: can_open,\n can_close: can_close,\n length: count\n };\n};\n\n\n// re-export Token class to use in block rules\nStateInline.prototype.Token = Token;\n\n\nmodule.exports = StateInline;\n","var common = require('./common.js');\nvar new_float = common.new_float;\nvar new_int = common.new_int;\nvar assert = common.assert;\n\nfunction CalcNoiseData() {\n this.global_gain = 0;\n this.sfb_count1 = 0;\n this.step = new_int(39);\n this.noise = new_float(39);\n this.noise_log = new_float(39);\n}\n\nmodule.exports = CalcNoiseData;\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABIJJREFUeF7tmkuMFEUYx///ZuJizIbEi4kmyirGozvTQ0RNNmswPjA+DuIjXNDs9pAoiRJJOBDFEDT4ioqS6Z6B4EE0+IiKDzwIu/EJdvUiGk10DwaQg5GDQsyiS3+mCYuwOzPVPTs9j+6pa/2/r//fb6qqp6qaSHljyutHF0B3BKScQNtNgf4VMj8ziflumSPN+G3aCoBpyQ4AS08XfgzALgredUt8My4YbQPAtOQ3ABdXKlSAhz2Hr8YBoS0A5CxZR+CJWgUSWOs63NBoCG0BwByWPSAGNcVN0kDWLfKHRkJoOYDrH5TeiQz+ClUU8ZyyuTqUNqSo5QDyQzIoBvaE9PtHxkd2b5mHQ+q1spYDMIdlFYjntU7/FyxTDrdH0NeUth6AJSUAQ2ELEmCD53BtWL1O13IAOUv2EVioMzrVL8A7nsO7w+p1upYCyBfkThG8pzN5Tr9gRJV4Q6SYGuKWAshZ8gaB+yIVkxQA2YIMGILRSMUH4qQAMC35FMBNkQEA25XDZXXEVQxpyRQwC7IKEunVd7b59crh4x0LIFuQxQawC4JMPUWI4AGvxG31xFaKaeoI6C/IlXME3wC4sN4CxMeAV+bn9cZPj2sagAUrpWfeCfwEoG825v1JXDK2lUdmk+Ps2KYBMC3ZD+Dq2Ro/aaBvf5G/zjbPVHxTAOQtGRVgoBGmCeyEjxd0ucTAoT97cHh8E0/U0oYCcGr4TuApEDeDuByC8yEYF+LH4KBCOfy+2kNylnxM4Fad4dj6idflJF7xygzWnhlNC+D03P0KQK6aSZ+4bszm19P7c0Ni0oAbW3HhEx8XA/d7RX4YeRE0LVkD4GnNs95SDu+ZrjELshKCl8P7jE8ZTB3X4R2RAYTdrRmC7LclBgvdmRbmrC++kmdmVg5njHjtFDAtOQ7gAp1RAR71HL6YRACiKz7oF+BJz+G6LoB2nQLEIWXz0shrgGlJMkYAsUPZvDfNAB5RNl9KLQAauMYtcl9aAfytHFZ8k4V5DXb8GiDAqOew4tVbKgCA2KhsBv9oo+8FkvAWIHGXa/P91AL418BFB4r8PZ0ABAdUiVUPYpK/Bgi2qBKr3j0mHgCBFa5Du9p+JvEAfKJ/zOZ3aQVwUDm8rNZuNtEjIMxVeqIBgFijbG5M7wjwsdgrc3daARydO4m+L7cy+OK0akvyFHhNOVyuO85LLAASS12bb7cawGoCz+hMxNB/sPcfXDWyjRO63PoRMCy/gFigSySCW7wSg68+zrR8QZaI4CNdbMP7ic3K5kNh8moB5C35QIDbNcl+zvRg4d5NPOeT18HlMvfYeQh2Yb1hzDRKQ8ESt8RPwuTTAjAtuQLAeK1kPnHjmM3PKmnMgjwLwWNhzDRCE/VDSi2AwJRpSXCevhnAbdNMHgGxXtks1jKft8QWwGpEgTVzECVlM9JzQgGYemi2INfOESzygXmGj5EeH0r3np2KDW6KYWARiSzk1E1ztkFAjoLYSeAL1+aWqDkjAYiavBP0XQCd8CvF6bE7AuKk2wm5uyOgE36lOD3+B0HrC188fc7yAAAAAElFTkSuQmCC\"","/**\n * These objects store the data about the DOM nodes we create, as well as some\n * extra data. They can then be transformed into real DOM nodes with the\n * `toNode` function or HTML markup using `toMarkup`. They are useful for both\n * storing extra properties on the nodes, as well as providing a way to easily\n * work with the DOM.\n *\n * Similar functions for working with MathML nodes exist in mathMLTree.js.\n */\n\nvar utils = require(\"./utils\");\n\n/**\n * Create an HTML className based on a list of classes. In addition to joining\n * with spaces, we also remove null or empty classes.\n */\nvar createClass = function(classes) {\n classes = classes.slice();\n for (var i = classes.length - 1; i >= 0; i--) {\n if (!classes[i]) {\n classes.splice(i, 1);\n }\n }\n\n return classes.join(\" \");\n};\n\n/**\n * This node represents a span node, with a className, a list of children, and\n * an inline style. It also contains information about its height, depth, and\n * maxFontSize.\n */\nfunction span(classes, children, height, depth, maxFontSize, style) {\n this.classes = classes || [];\n this.children = children || [];\n this.height = height || 0;\n this.depth = depth || 0;\n this.maxFontSize = maxFontSize || 0;\n this.style = style || {};\n this.attributes = {};\n}\n\n/**\n * Sets an arbitrary attribute on the span. Warning: use this wisely. Not all\n * browsers support attributes the same, and having too many custom attributes\n * is probably bad.\n */\nspan.prototype.setAttribute = function(attribute, value) {\n this.attributes[attribute] = value;\n};\n\n/**\n * Convert the span into an HTML node\n */\nspan.prototype.toNode = function() {\n var span = document.createElement(\"span\");\n\n // Apply the class\n span.className = createClass(this.classes);\n\n // Apply inline styles\n for (var style in this.style) {\n if (Object.prototype.hasOwnProperty.call(this.style, style)) {\n span.style[style] = this.style[style];\n }\n }\n\n // Apply attributes\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n span.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n // Append the children, also as HTML nodes\n for (var i = 0; i < this.children.length; i++) {\n span.appendChild(this.children[i].toNode());\n }\n\n return span;\n};\n\n/**\n * Convert the span into an HTML markup string\n */\nspan.prototype.toMarkup = function() {\n var markup = \"\";\n\n // Add the markup of the children, also as markup\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"\";\n\n return markup;\n};\n\n/**\n * This node represents a document fragment, which contains elements, but when\n * placed into the DOM doesn't have any representation itself. Thus, it only\n * contains children and doesn't have any HTML properties. It also keeps track\n * of a height, depth, and maxFontSize.\n */\nfunction documentFragment(children, height, depth, maxFontSize) {\n this.children = children || [];\n this.height = height || 0;\n this.depth = depth || 0;\n this.maxFontSize = maxFontSize || 0;\n}\n\n/**\n * Convert the fragment into a node\n */\ndocumentFragment.prototype.toNode = function() {\n // Create a fragment\n var frag = document.createDocumentFragment();\n\n // Append the children\n for (var i = 0; i < this.children.length; i++) {\n frag.appendChild(this.children[i].toNode());\n }\n\n return frag;\n};\n\n/**\n * Convert the fragment into HTML markup\n */\ndocumentFragment.prototype.toMarkup = function() {\n var markup = \"\";\n\n // Simply concatenate the markup for the children together\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n return markup;\n};\n\n/**\n * A symbol node contains information about a single symbol. It either renders\n * to a single text node, or a span with a single text node in it, depending on\n * whether it has CSS classes, styles, or needs italic correction.\n */\nfunction symbolNode(value, height, depth, italic, skew, classes, style) {\n this.value = value || \"\";\n this.height = height || 0;\n this.depth = depth || 0;\n this.italic = italic || 0;\n this.skew = skew || 0;\n this.classes = classes || [];\n this.style = style || {};\n this.maxFontSize = 0;\n}\n\n/**\n * Creates a text node or span from a symbol node. Note that a span is only\n * created if it is needed.\n */\nsymbolNode.prototype.toNode = function() {\n var node = document.createTextNode(this.value);\n var span = null;\n\n if (this.italic > 0) {\n span = document.createElement(\"span\");\n span.style.marginRight = this.italic + \"em\";\n }\n\n if (this.classes.length > 0) {\n span = span || document.createElement(\"span\");\n span.className = createClass(this.classes);\n }\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n span = span || document.createElement(\"span\");\n span.style[style] = this.style[style];\n }\n }\n\n if (span) {\n span.appendChild(node);\n return span;\n } else {\n return node;\n }\n};\n\n/**\n * Creates markup for a symbol node.\n */\nsymbolNode.prototype.toMarkup = function() {\n // TODO(alpert): More duplication than I'd like from\n // span.prototype.toMarkup and symbolNode.prototype.toNode...\n var needsSpan = false;\n\n var markup = \" 0) {\n styles += \"margin-right:\" + this.italic + \"em;\";\n }\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n needsSpan = true;\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n }\n\n var escaped = utils.escape(this.value);\n if (needsSpan) {\n markup += \">\";\n markup += escaped;\n markup += \"\";\n return markup;\n } else {\n return escaped;\n }\n};\n\nmodule.exports = {\n span: span,\n documentFragment: documentFragment,\n symbolNode: symbolNode,\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","/**\n * This is the ParseError class, which is the main error thrown by KaTeX\n * functions when something has gone wrong. This is used to distinguish internal\n * errors from errors in the expression that the user provided.\n */\nfunction ParseError(message, lexer, position) {\n var error = \"KaTeX parse error: \" + message;\n\n if (lexer !== undefined && position !== undefined) {\n // If we have the input and a position, make the error a bit fancier\n\n // Prepend some information\n error += \" at position \" + position + \": \";\n\n // Get the input\n var input = lexer._input;\n // Insert a combining underscore at the correct position\n input = input.slice(0, position) + \"\\u0332\" +\n input.slice(position);\n\n // Extract some context from the input and add it to the error\n var begin = Math.max(0, position - 15);\n var end = position + 15;\n error += input.slice(begin, end);\n }\n\n // Some hackery to make ParseError a prototype of Error\n // See http://stackoverflow.com/a/8460753\n var self = new Error(error);\n self.name = \"ParseError\";\n self.__proto__ = ParseError.prototype;\n\n self.position = position;\n return self;\n}\n\n// More hackery\nParseError.prototype.__proto__ = Error.prototype;\n\nmodule.exports = ParseError;\n","/**\n * This file holds a list of all no-argument functions and single-character\n * symbols (like 'a' or ';').\n *\n * For each of the symbols, there are three properties they can have:\n * - font (required): the font to be used for this symbol. Either \"main\" (the\n normal font), or \"ams\" (the ams fonts).\n * - group (required): the ParseNode group type the symbol should have (i.e.\n \"textord\", \"mathord\", etc).\n See https://github.com/Khan/KaTeX/wiki/Examining-TeX#group-types\n * - replace: the character that this symbol or function should be\n * replaced with (i.e. \"\\phi\" has a replace value of \"\\u03d5\", the phi\n * character in the main font).\n *\n * The outermost map in the table indicates what mode the symbols should be\n * accepted in (e.g. \"math\" or \"text\").\n */\n\nmodule.exports = {\n math: {},\n text: {},\n};\n\nfunction defineSymbol(mode, font, group, replace, name) {\n module.exports[mode][name] = {\n font: font,\n group: group,\n replace: replace,\n };\n}\n\n// Some abbreviations for commonly used strings.\n// This helps minify the code, and also spotting typos using jshint.\n\n// modes:\nvar math = \"math\";\nvar text = \"text\";\n\n// fonts:\nvar main = \"main\";\nvar ams = \"ams\";\n\n// groups:\nvar accent = \"accent\";\nvar bin = \"bin\";\nvar close = \"close\";\nvar inner = \"inner\";\nvar mathord = \"mathord\";\nvar op = \"op\";\nvar open = \"open\";\nvar punct = \"punct\";\nvar rel = \"rel\";\nvar spacing = \"spacing\";\nvar textord = \"textord\";\n\n// Now comes the symbol table\n\n// Relation Symbols\ndefineSymbol(math, main, rel, \"\\u2261\", \"\\\\equiv\");\ndefineSymbol(math, main, rel, \"\\u227a\", \"\\\\prec\");\ndefineSymbol(math, main, rel, \"\\u227b\", \"\\\\succ\");\ndefineSymbol(math, main, rel, \"\\u223c\", \"\\\\sim\");\ndefineSymbol(math, main, rel, \"\\u22a5\", \"\\\\perp\");\ndefineSymbol(math, main, rel, \"\\u2aaf\", \"\\\\preceq\");\ndefineSymbol(math, main, rel, \"\\u2ab0\", \"\\\\succeq\");\ndefineSymbol(math, main, rel, \"\\u2243\", \"\\\\simeq\");\ndefineSymbol(math, main, rel, \"\\u2223\", \"\\\\mid\");\ndefineSymbol(math, main, rel, \"\\u226a\", \"\\\\ll\");\ndefineSymbol(math, main, rel, \"\\u226b\", \"\\\\gg\");\ndefineSymbol(math, main, rel, \"\\u224d\", \"\\\\asymp\");\ndefineSymbol(math, main, rel, \"\\u2225\", \"\\\\parallel\");\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\bowtie\");\ndefineSymbol(math, main, rel, \"\\u2323\", \"\\\\smile\");\ndefineSymbol(math, main, rel, \"\\u2291\", \"\\\\sqsubseteq\");\ndefineSymbol(math, main, rel, \"\\u2292\", \"\\\\sqsupseteq\");\ndefineSymbol(math, main, rel, \"\\u2250\", \"\\\\doteq\");\ndefineSymbol(math, main, rel, \"\\u2322\", \"\\\\frown\");\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\ni\");\ndefineSymbol(math, main, rel, \"\\u221d\", \"\\\\propto\");\ndefineSymbol(math, main, rel, \"\\u22a2\", \"\\\\vdash\");\ndefineSymbol(math, main, rel, \"\\u22a3\", \"\\\\dashv\");\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\owns\");\n\n// Punctuation\ndefineSymbol(math, main, punct, \"\\u002e\", \"\\\\ldotp\");\ndefineSymbol(math, main, punct, \"\\u22c5\", \"\\\\cdotp\");\n\n// Misc Symbols\ndefineSymbol(math, main, textord, \"\\u0023\", \"\\\\#\");\ndefineSymbol(math, main, textord, \"\\u0026\", \"\\\\&\");\ndefineSymbol(math, main, textord, \"\\u2135\", \"\\\\aleph\");\ndefineSymbol(math, main, textord, \"\\u2200\", \"\\\\forall\");\ndefineSymbol(math, main, textord, \"\\u210f\", \"\\\\hbar\");\ndefineSymbol(math, main, textord, \"\\u2203\", \"\\\\exists\");\ndefineSymbol(math, main, textord, \"\\u2207\", \"\\\\nabla\");\ndefineSymbol(math, main, textord, \"\\u266d\", \"\\\\flat\");\ndefineSymbol(math, main, textord, \"\\u2113\", \"\\\\ell\");\ndefineSymbol(math, main, textord, \"\\u266e\", \"\\\\natural\");\ndefineSymbol(math, main, textord, \"\\u2663\", \"\\\\clubsuit\");\ndefineSymbol(math, main, textord, \"\\u2118\", \"\\\\wp\");\ndefineSymbol(math, main, textord, \"\\u266f\", \"\\\\sharp\");\ndefineSymbol(math, main, textord, \"\\u2662\", \"\\\\diamondsuit\");\ndefineSymbol(math, main, textord, \"\\u211c\", \"\\\\Re\");\ndefineSymbol(math, main, textord, \"\\u2661\", \"\\\\heartsuit\");\ndefineSymbol(math, main, textord, \"\\u2111\", \"\\\\Im\");\ndefineSymbol(math, main, textord, \"\\u2660\", \"\\\\spadesuit\");\n\n// Math and Text\ndefineSymbol(math, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(math, main, textord, \"\\u2021\", \"\\\\ddag\");\n\n// Large Delimiters\ndefineSymbol(math, main, close, \"\\u23b1\", \"\\\\rmoustache\");\ndefineSymbol(math, main, open, \"\\u23b0\", \"\\\\lmoustache\");\ndefineSymbol(math, main, close, \"\\u27ef\", \"\\\\rgroup\");\ndefineSymbol(math, main, open, \"\\u27ee\", \"\\\\lgroup\");\n\n// Binary Operators\ndefineSymbol(math, main, bin, \"\\u2213\", \"\\\\mp\");\ndefineSymbol(math, main, bin, \"\\u2296\", \"\\\\ominus\");\ndefineSymbol(math, main, bin, \"\\u228e\", \"\\\\uplus\");\ndefineSymbol(math, main, bin, \"\\u2293\", \"\\\\sqcap\");\ndefineSymbol(math, main, bin, \"\\u2217\", \"\\\\ast\");\ndefineSymbol(math, main, bin, \"\\u2294\", \"\\\\sqcup\");\ndefineSymbol(math, main, bin, \"\\u25ef\", \"\\\\bigcirc\");\ndefineSymbol(math, main, bin, \"\\u2219\", \"\\\\bullet\");\ndefineSymbol(math, main, bin, \"\\u2021\", \"\\\\ddagger\");\ndefineSymbol(math, main, bin, \"\\u2240\", \"\\\\wr\");\ndefineSymbol(math, main, bin, \"\\u2a3f\", \"\\\\amalg\");\n\n// Arrow Symbols\ndefineSymbol(math, main, rel, \"\\u27f5\", \"\\\\longleftarrow\");\ndefineSymbol(math, main, rel, \"\\u21d0\", \"\\\\Leftarrow\");\ndefineSymbol(math, main, rel, \"\\u27f8\", \"\\\\Longleftarrow\");\ndefineSymbol(math, main, rel, \"\\u27f6\", \"\\\\longrightarrow\");\ndefineSymbol(math, main, rel, \"\\u21d2\", \"\\\\Rightarrow\");\ndefineSymbol(math, main, rel, \"\\u27f9\", \"\\\\Longrightarrow\");\ndefineSymbol(math, main, rel, \"\\u2194\", \"\\\\leftrightarrow\");\ndefineSymbol(math, main, rel, \"\\u27f7\", \"\\\\longleftrightarrow\");\ndefineSymbol(math, main, rel, \"\\u21d4\", \"\\\\Leftrightarrow\");\ndefineSymbol(math, main, rel, \"\\u27fa\", \"\\\\Longleftrightarrow\");\ndefineSymbol(math, main, rel, \"\\u21a6\", \"\\\\mapsto\");\ndefineSymbol(math, main, rel, \"\\u27fc\", \"\\\\longmapsto\");\ndefineSymbol(math, main, rel, \"\\u2197\", \"\\\\nearrow\");\ndefineSymbol(math, main, rel, \"\\u21a9\", \"\\\\hookleftarrow\");\ndefineSymbol(math, main, rel, \"\\u21aa\", \"\\\\hookrightarrow\");\ndefineSymbol(math, main, rel, \"\\u2198\", \"\\\\searrow\");\ndefineSymbol(math, main, rel, \"\\u21bc\", \"\\\\leftharpoonup\");\ndefineSymbol(math, main, rel, \"\\u21c0\", \"\\\\rightharpoonup\");\ndefineSymbol(math, main, rel, \"\\u2199\", \"\\\\swarrow\");\ndefineSymbol(math, main, rel, \"\\u21bd\", \"\\\\leftharpoondown\");\ndefineSymbol(math, main, rel, \"\\u21c1\", \"\\\\rightharpoondown\");\ndefineSymbol(math, main, rel, \"\\u2196\", \"\\\\nwarrow\");\ndefineSymbol(math, main, rel, \"\\u21cc\", \"\\\\rightleftharpoons\");\n\n// AMS Negated Binary Relations\ndefineSymbol(math, ams, rel, \"\\u226e\", \"\\\\nless\");\ndefineSymbol(math, ams, rel, \"\\ue010\", \"\\\\nleqslant\");\ndefineSymbol(math, ams, rel, \"\\ue011\", \"\\\\nleqq\");\ndefineSymbol(math, ams, rel, \"\\u2a87\", \"\\\\lneq\");\ndefineSymbol(math, ams, rel, \"\\u2268\", \"\\\\lneqq\");\ndefineSymbol(math, ams, rel, \"\\ue00c\", \"\\\\lvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e6\", \"\\\\lnsim\");\ndefineSymbol(math, ams, rel, \"\\u2a89\", \"\\\\lnapprox\");\ndefineSymbol(math, ams, rel, \"\\u2280\", \"\\\\nprec\");\ndefineSymbol(math, ams, rel, \"\\u22e0\", \"\\\\npreceq\");\ndefineSymbol(math, ams, rel, \"\\u22e8\", \"\\\\precnsim\");\ndefineSymbol(math, ams, rel, \"\\u2ab9\", \"\\\\precnapprox\");\ndefineSymbol(math, ams, rel, \"\\u2241\", \"\\\\nsim\");\ndefineSymbol(math, ams, rel, \"\\ue006\", \"\\\\nshortmid\");\ndefineSymbol(math, ams, rel, \"\\u2224\", \"\\\\nmid\");\ndefineSymbol(math, ams, rel, \"\\u22ac\", \"\\\\nvdash\");\ndefineSymbol(math, ams, rel, \"\\u22ad\", \"\\\\nvDash\");\ndefineSymbol(math, ams, rel, \"\\u22ea\", \"\\\\ntriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22ec\", \"\\\\ntrianglelefteq\");\ndefineSymbol(math, ams, rel, \"\\u228a\", \"\\\\subsetneq\");\ndefineSymbol(math, ams, rel, \"\\ue01a\", \"\\\\varsubsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acb\", \"\\\\subsetneqq\");\ndefineSymbol(math, ams, rel, \"\\ue017\", \"\\\\varsubsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u226f\", \"\\\\ngtr\");\ndefineSymbol(math, ams, rel, \"\\ue00f\", \"\\\\ngeqslant\");\ndefineSymbol(math, ams, rel, \"\\ue00e\", \"\\\\ngeqq\");\ndefineSymbol(math, ams, rel, \"\\u2a88\", \"\\\\gneq\");\ndefineSymbol(math, ams, rel, \"\\u2269\", \"\\\\gneqq\");\ndefineSymbol(math, ams, rel, \"\\ue00d\", \"\\\\gvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e7\", \"\\\\gnsim\");\ndefineSymbol(math, ams, rel, \"\\u2a8a\", \"\\\\gnapprox\");\ndefineSymbol(math, ams, rel, \"\\u2281\", \"\\\\nsucc\");\ndefineSymbol(math, ams, rel, \"\\u22e1\", \"\\\\nsucceq\");\ndefineSymbol(math, ams, rel, \"\\u22e9\", \"\\\\succnsim\");\ndefineSymbol(math, ams, rel, \"\\u2aba\", \"\\\\succnapprox\");\ndefineSymbol(math, ams, rel, \"\\u2246\", \"\\\\ncong\");\ndefineSymbol(math, ams, rel, \"\\ue007\", \"\\\\nshortparallel\");\ndefineSymbol(math, ams, rel, \"\\u2226\", \"\\\\nparallel\");\ndefineSymbol(math, ams, rel, \"\\u22af\", \"\\\\nVDash\");\ndefineSymbol(math, ams, rel, \"\\u22eb\", \"\\\\ntriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22ed\", \"\\\\ntrianglerighteq\");\ndefineSymbol(math, ams, rel, \"\\ue018\", \"\\\\nsupseteqq\");\ndefineSymbol(math, ams, rel, \"\\u228b\", \"\\\\supsetneq\");\ndefineSymbol(math, ams, rel, \"\\ue01b\", \"\\\\varsupsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acc\", \"\\\\supsetneqq\");\ndefineSymbol(math, ams, rel, \"\\ue019\", \"\\\\varsupsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u22ae\", \"\\\\nVdash\");\ndefineSymbol(math, ams, rel, \"\\u2ab5\", \"\\\\precneqq\");\ndefineSymbol(math, ams, rel, \"\\u2ab6\", \"\\\\succneqq\");\ndefineSymbol(math, ams, rel, \"\\ue016\", \"\\\\nsubseteqq\");\ndefineSymbol(math, ams, bin, \"\\u22b4\", \"\\\\unlhd\");\ndefineSymbol(math, ams, bin, \"\\u22b5\", \"\\\\unrhd\");\n\n// AMS Negated Arrows\ndefineSymbol(math, ams, rel, \"\\u219a\", \"\\\\nleftarrow\");\ndefineSymbol(math, ams, rel, \"\\u219b\", \"\\\\nrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21cd\", \"\\\\nLeftarrow\");\ndefineSymbol(math, ams, rel, \"\\u21cf\", \"\\\\nRightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21ae\", \"\\\\nleftrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21ce\", \"\\\\nLeftrightarrow\");\n\n// AMS Misc\ndefineSymbol(math, ams, rel, \"\\u25b3\", \"\\\\vartriangle\");\ndefineSymbol(math, ams, textord, \"\\u210f\", \"\\\\hslash\");\ndefineSymbol(math, ams, textord, \"\\u25bd\", \"\\\\triangledown\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\lozenge\");\ndefineSymbol(math, ams, textord, \"\\u24c8\", \"\\\\circledS\");\ndefineSymbol(math, ams, textord, \"\\u00ae\", \"\\\\circledR\");\ndefineSymbol(math, ams, textord, \"\\u2221\", \"\\\\measuredangle\");\ndefineSymbol(math, ams, textord, \"\\u2204\", \"\\\\nexists\");\ndefineSymbol(math, ams, textord, \"\\u2127\", \"\\\\mho\");\ndefineSymbol(math, ams, textord, \"\\u2132\", \"\\\\Finv\");\ndefineSymbol(math, ams, textord, \"\\u2141\", \"\\\\Game\");\ndefineSymbol(math, ams, textord, \"\\u006b\", \"\\\\Bbbk\");\ndefineSymbol(math, ams, textord, \"\\u2035\", \"\\\\backprime\");\ndefineSymbol(math, ams, textord, \"\\u25b2\", \"\\\\blacktriangle\");\ndefineSymbol(math, ams, textord, \"\\u25bc\", \"\\\\blacktriangledown\");\ndefineSymbol(math, ams, textord, \"\\u25a0\", \"\\\\blacksquare\");\ndefineSymbol(math, ams, textord, \"\\u29eb\", \"\\\\blacklozenge\");\ndefineSymbol(math, ams, textord, \"\\u2605\", \"\\\\bigstar\");\ndefineSymbol(math, ams, textord, \"\\u2222\", \"\\\\sphericalangle\");\ndefineSymbol(math, ams, textord, \"\\u2201\", \"\\\\complement\");\ndefineSymbol(math, ams, textord, \"\\u00f0\", \"\\\\eth\");\ndefineSymbol(math, ams, textord, \"\\u2571\", \"\\\\diagup\");\ndefineSymbol(math, ams, textord, \"\\u2572\", \"\\\\diagdown\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\square\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\Box\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\Diamond\");\ndefineSymbol(math, ams, textord, \"\\u00a5\", \"\\\\yen\");\ndefineSymbol(math, ams, textord, \"\\u2713\", \"\\\\checkmark\");\n\n// AMS Hebrew\ndefineSymbol(math, ams, textord, \"\\u2136\", \"\\\\beth\");\ndefineSymbol(math, ams, textord, \"\\u2138\", \"\\\\daleth\");\ndefineSymbol(math, ams, textord, \"\\u2137\", \"\\\\gimel\");\n\n// AMS Greek\ndefineSymbol(math, ams, textord, \"\\u03dd\", \"\\\\digamma\");\ndefineSymbol(math, ams, textord, \"\\u03f0\", \"\\\\varkappa\");\n\n// AMS Delimiters\ndefineSymbol(math, ams, open, \"\\u250c\", \"\\\\ulcorner\");\ndefineSymbol(math, ams, close, \"\\u2510\", \"\\\\urcorner\");\ndefineSymbol(math, ams, open, \"\\u2514\", \"\\\\llcorner\");\ndefineSymbol(math, ams, close, \"\\u2518\", \"\\\\lrcorner\");\n\n// AMS Binary Relations\ndefineSymbol(math, ams, rel, \"\\u2266\", \"\\\\leqq\");\ndefineSymbol(math, ams, rel, \"\\u2a7d\", \"\\\\leqslant\");\ndefineSymbol(math, ams, rel, \"\\u2a95\", \"\\\\eqslantless\");\ndefineSymbol(math, ams, rel, \"\\u2272\", \"\\\\lesssim\");\ndefineSymbol(math, ams, rel, \"\\u2a85\", \"\\\\lessapprox\");\ndefineSymbol(math, ams, rel, \"\\u224a\", \"\\\\approxeq\");\ndefineSymbol(math, ams, bin, \"\\u22d6\", \"\\\\lessdot\");\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\lll\");\ndefineSymbol(math, ams, rel, \"\\u2276\", \"\\\\lessgtr\");\ndefineSymbol(math, ams, rel, \"\\u22da\", \"\\\\lesseqgtr\");\ndefineSymbol(math, ams, rel, \"\\u2a8b\", \"\\\\lesseqqgtr\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\doteqdot\");\ndefineSymbol(math, ams, rel, \"\\u2253\", \"\\\\risingdotseq\");\ndefineSymbol(math, ams, rel, \"\\u2252\", \"\\\\fallingdotseq\");\ndefineSymbol(math, ams, rel, \"\\u223d\", \"\\\\backsim\");\ndefineSymbol(math, ams, rel, \"\\u22cd\", \"\\\\backsimeq\");\ndefineSymbol(math, ams, rel, \"\\u2ac5\", \"\\\\subseteqq\");\ndefineSymbol(math, ams, rel, \"\\u22d0\", \"\\\\Subset\");\ndefineSymbol(math, ams, rel, \"\\u228f\", \"\\\\sqsubset\");\ndefineSymbol(math, ams, rel, \"\\u227c\", \"\\\\preccurlyeq\");\ndefineSymbol(math, ams, rel, \"\\u22de\", \"\\\\curlyeqprec\");\ndefineSymbol(math, ams, rel, \"\\u227e\", \"\\\\precsim\");\ndefineSymbol(math, ams, rel, \"\\u2ab7\", \"\\\\precapprox\");\ndefineSymbol(math, ams, rel, \"\\u22b2\", \"\\\\vartriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22b4\", \"\\\\trianglelefteq\");\ndefineSymbol(math, ams, rel, \"\\u22a8\", \"\\\\vDash\");\ndefineSymbol(math, ams, rel, \"\\u22aa\", \"\\\\Vvdash\");\ndefineSymbol(math, ams, rel, \"\\u2323\", \"\\\\smallsmile\");\ndefineSymbol(math, ams, rel, \"\\u2322\", \"\\\\smallfrown\");\ndefineSymbol(math, ams, rel, \"\\u224f\", \"\\\\bumpeq\");\ndefineSymbol(math, ams, rel, \"\\u224e\", \"\\\\Bumpeq\");\ndefineSymbol(math, ams, rel, \"\\u2267\", \"\\\\geqq\");\ndefineSymbol(math, ams, rel, \"\\u2a7e\", \"\\\\geqslant\");\ndefineSymbol(math, ams, rel, \"\\u2a96\", \"\\\\eqslantgtr\");\ndefineSymbol(math, ams, rel, \"\\u2273\", \"\\\\gtrsim\");\ndefineSymbol(math, ams, rel, \"\\u2a86\", \"\\\\gtrapprox\");\ndefineSymbol(math, ams, bin, \"\\u22d7\", \"\\\\gtrdot\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\ggg\");\ndefineSymbol(math, ams, rel, \"\\u2277\", \"\\\\gtrless\");\ndefineSymbol(math, ams, rel, \"\\u22db\", \"\\\\gtreqless\");\ndefineSymbol(math, ams, rel, \"\\u2a8c\", \"\\\\gtreqqless\");\ndefineSymbol(math, ams, rel, \"\\u2256\", \"\\\\eqcirc\");\ndefineSymbol(math, ams, rel, \"\\u2257\", \"\\\\circeq\");\ndefineSymbol(math, ams, rel, \"\\u225c\", \"\\\\triangleq\");\ndefineSymbol(math, ams, rel, \"\\u223c\", \"\\\\thicksim\");\ndefineSymbol(math, ams, rel, \"\\u2248\", \"\\\\thickapprox\");\ndefineSymbol(math, ams, rel, \"\\u2ac6\", \"\\\\supseteqq\");\ndefineSymbol(math, ams, rel, \"\\u22d1\", \"\\\\Supset\");\ndefineSymbol(math, ams, rel, \"\\u2290\", \"\\\\sqsupset\");\ndefineSymbol(math, ams, rel, \"\\u227d\", \"\\\\succcurlyeq\");\ndefineSymbol(math, ams, rel, \"\\u22df\", \"\\\\curlyeqsucc\");\ndefineSymbol(math, ams, rel, \"\\u227f\", \"\\\\succsim\");\ndefineSymbol(math, ams, rel, \"\\u2ab8\", \"\\\\succapprox\");\ndefineSymbol(math, ams, rel, \"\\u22b3\", \"\\\\vartriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22b5\", \"\\\\trianglerighteq\");\ndefineSymbol(math, ams, rel, \"\\u22a9\", \"\\\\Vdash\");\ndefineSymbol(math, ams, rel, \"\\u2223\", \"\\\\shortmid\");\ndefineSymbol(math, ams, rel, \"\\u2225\", \"\\\\shortparallel\");\ndefineSymbol(math, ams, rel, \"\\u226c\", \"\\\\between\");\ndefineSymbol(math, ams, rel, \"\\u22d4\", \"\\\\pitchfork\");\ndefineSymbol(math, ams, rel, \"\\u221d\", \"\\\\varpropto\");\ndefineSymbol(math, ams, rel, \"\\u25c0\", \"\\\\blacktriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u2234\", \"\\\\therefore\");\ndefineSymbol(math, ams, rel, \"\\u220d\", \"\\\\backepsilon\");\ndefineSymbol(math, ams, rel, \"\\u25b6\", \"\\\\blacktriangleright\");\ndefineSymbol(math, ams, rel, \"\\u2235\", \"\\\\because\");\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\llless\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\gggtr\");\ndefineSymbol(math, ams, bin, \"\\u22b2\", \"\\\\lhd\");\ndefineSymbol(math, ams, bin, \"\\u22b3\", \"\\\\rhd\");\ndefineSymbol(math, ams, rel, \"\\u2242\", \"\\\\eqsim\");\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\Join\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\Doteq\");\n\n// AMS Binary Operators\ndefineSymbol(math, ams, bin, \"\\u2214\", \"\\\\dotplus\");\ndefineSymbol(math, ams, bin, \"\\u2216\", \"\\\\smallsetminus\");\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\Cap\");\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\Cup\");\ndefineSymbol(math, ams, bin, \"\\u2a5e\", \"\\\\doublebarwedge\");\ndefineSymbol(math, ams, bin, \"\\u229f\", \"\\\\boxminus\");\ndefineSymbol(math, ams, bin, \"\\u229e\", \"\\\\boxplus\");\ndefineSymbol(math, ams, bin, \"\\u22c7\", \"\\\\divideontimes\");\ndefineSymbol(math, ams, bin, \"\\u22c9\", \"\\\\ltimes\");\ndefineSymbol(math, ams, bin, \"\\u22ca\", \"\\\\rtimes\");\ndefineSymbol(math, ams, bin, \"\\u22cb\", \"\\\\leftthreetimes\");\ndefineSymbol(math, ams, bin, \"\\u22cc\", \"\\\\rightthreetimes\");\ndefineSymbol(math, ams, bin, \"\\u22cf\", \"\\\\curlywedge\");\ndefineSymbol(math, ams, bin, \"\\u22ce\", \"\\\\curlyvee\");\ndefineSymbol(math, ams, bin, \"\\u229d\", \"\\\\circleddash\");\ndefineSymbol(math, ams, bin, \"\\u229b\", \"\\\\circledast\");\ndefineSymbol(math, ams, bin, \"\\u22c5\", \"\\\\centerdot\");\ndefineSymbol(math, ams, bin, \"\\u22ba\", \"\\\\intercal\");\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\doublecap\");\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\doublecup\");\ndefineSymbol(math, ams, bin, \"\\u22a0\", \"\\\\boxtimes\");\n\n// AMS Arrows\ndefineSymbol(math, ams, rel, \"\\u21e2\", \"\\\\dashrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21e0\", \"\\\\dashleftarrow\");\ndefineSymbol(math, ams, rel, \"\\u21c7\", \"\\\\leftleftarrows\");\ndefineSymbol(math, ams, rel, \"\\u21c6\", \"\\\\leftrightarrows\");\ndefineSymbol(math, ams, rel, \"\\u21da\", \"\\\\Lleftarrow\");\ndefineSymbol(math, ams, rel, \"\\u219e\", \"\\\\twoheadleftarrow\");\ndefineSymbol(math, ams, rel, \"\\u21a2\", \"\\\\leftarrowtail\");\ndefineSymbol(math, ams, rel, \"\\u21ab\", \"\\\\looparrowleft\");\ndefineSymbol(math, ams, rel, \"\\u21cb\", \"\\\\leftrightharpoons\");\ndefineSymbol(math, ams, rel, \"\\u21b6\", \"\\\\curvearrowleft\");\ndefineSymbol(math, ams, rel, \"\\u21ba\", \"\\\\circlearrowleft\");\ndefineSymbol(math, ams, rel, \"\\u21b0\", \"\\\\Lsh\");\ndefineSymbol(math, ams, rel, \"\\u21c8\", \"\\\\upuparrows\");\ndefineSymbol(math, ams, rel, \"\\u21bf\", \"\\\\upharpoonleft\");\ndefineSymbol(math, ams, rel, \"\\u21c3\", \"\\\\downharpoonleft\");\ndefineSymbol(math, ams, rel, \"\\u22b8\", \"\\\\multimap\");\ndefineSymbol(math, ams, rel, \"\\u21ad\", \"\\\\leftrightsquigarrow\");\ndefineSymbol(math, ams, rel, \"\\u21c9\", \"\\\\rightrightarrows\");\ndefineSymbol(math, ams, rel, \"\\u21c4\", \"\\\\rightleftarrows\");\ndefineSymbol(math, ams, rel, \"\\u21a0\", \"\\\\twoheadrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21a3\", \"\\\\rightarrowtail\");\ndefineSymbol(math, ams, rel, \"\\u21ac\", \"\\\\looparrowright\");\ndefineSymbol(math, ams, rel, \"\\u21b7\", \"\\\\curvearrowright\");\ndefineSymbol(math, ams, rel, \"\\u21bb\", \"\\\\circlearrowright\");\ndefineSymbol(math, ams, rel, \"\\u21b1\", \"\\\\Rsh\");\ndefineSymbol(math, ams, rel, \"\\u21ca\", \"\\\\downdownarrows\");\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\upharpoonright\");\ndefineSymbol(math, ams, rel, \"\\u21c2\", \"\\\\downharpoonright\");\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\rightsquigarrow\");\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\leadsto\");\ndefineSymbol(math, ams, rel, \"\\u21db\", \"\\\\Rrightarrow\");\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\restriction\");\n\ndefineSymbol(math, main, textord, \"\\u2018\", \"`\");\ndefineSymbol(math, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(math, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(math, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(math, main, textord, \"\\u2220\", \"\\\\angle\");\ndefineSymbol(math, main, textord, \"\\u221e\", \"\\\\infty\");\ndefineSymbol(math, main, textord, \"\\u2032\", \"\\\\prime\");\ndefineSymbol(math, main, textord, \"\\u25b3\", \"\\\\triangle\");\ndefineSymbol(math, main, textord, \"\\u0393\", \"\\\\Gamma\");\ndefineSymbol(math, main, textord, \"\\u0394\", \"\\\\Delta\");\ndefineSymbol(math, main, textord, \"\\u0398\", \"\\\\Theta\");\ndefineSymbol(math, main, textord, \"\\u039b\", \"\\\\Lambda\");\ndefineSymbol(math, main, textord, \"\\u039e\", \"\\\\Xi\");\ndefineSymbol(math, main, textord, \"\\u03a0\", \"\\\\Pi\");\ndefineSymbol(math, main, textord, \"\\u03a3\", \"\\\\Sigma\");\ndefineSymbol(math, main, textord, \"\\u03a5\", \"\\\\Upsilon\");\ndefineSymbol(math, main, textord, \"\\u03a6\", \"\\\\Phi\");\ndefineSymbol(math, main, textord, \"\\u03a8\", \"\\\\Psi\");\ndefineSymbol(math, main, textord, \"\\u03a9\", \"\\\\Omega\");\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\neg\");\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\lnot\");\ndefineSymbol(math, main, textord, \"\\u22a4\", \"\\\\top\");\ndefineSymbol(math, main, textord, \"\\u22a5\", \"\\\\bot\");\ndefineSymbol(math, main, textord, \"\\u2205\", \"\\\\emptyset\");\ndefineSymbol(math, ams, textord, \"\\u2205\", \"\\\\varnothing\");\ndefineSymbol(math, main, mathord, \"\\u03b1\", \"\\\\alpha\");\ndefineSymbol(math, main, mathord, \"\\u03b2\", \"\\\\beta\");\ndefineSymbol(math, main, mathord, \"\\u03b3\", \"\\\\gamma\");\ndefineSymbol(math, main, mathord, \"\\u03b4\", \"\\\\delta\");\ndefineSymbol(math, main, mathord, \"\\u03f5\", \"\\\\epsilon\");\ndefineSymbol(math, main, mathord, \"\\u03b6\", \"\\\\zeta\");\ndefineSymbol(math, main, mathord, \"\\u03b7\", \"\\\\eta\");\ndefineSymbol(math, main, mathord, \"\\u03b8\", \"\\\\theta\");\ndefineSymbol(math, main, mathord, \"\\u03b9\", \"\\\\iota\");\ndefineSymbol(math, main, mathord, \"\\u03ba\", \"\\\\kappa\");\ndefineSymbol(math, main, mathord, \"\\u03bb\", \"\\\\lambda\");\ndefineSymbol(math, main, mathord, \"\\u03bc\", \"\\\\mu\");\ndefineSymbol(math, main, mathord, \"\\u03bd\", \"\\\\nu\");\ndefineSymbol(math, main, mathord, \"\\u03be\", \"\\\\xi\");\ndefineSymbol(math, main, mathord, \"o\", \"\\\\omicron\");\ndefineSymbol(math, main, mathord, \"\\u03c0\", \"\\\\pi\");\ndefineSymbol(math, main, mathord, \"\\u03c1\", \"\\\\rho\");\ndefineSymbol(math, main, mathord, \"\\u03c3\", \"\\\\sigma\");\ndefineSymbol(math, main, mathord, \"\\u03c4\", \"\\\\tau\");\ndefineSymbol(math, main, mathord, \"\\u03c5\", \"\\\\upsilon\");\ndefineSymbol(math, main, mathord, \"\\u03d5\", \"\\\\phi\");\ndefineSymbol(math, main, mathord, \"\\u03c7\", \"\\\\chi\");\ndefineSymbol(math, main, mathord, \"\\u03c8\", \"\\\\psi\");\ndefineSymbol(math, main, mathord, \"\\u03c9\", \"\\\\omega\");\ndefineSymbol(math, main, mathord, \"\\u03b5\", \"\\\\varepsilon\");\ndefineSymbol(math, main, mathord, \"\\u03d1\", \"\\\\vartheta\");\ndefineSymbol(math, main, mathord, \"\\u03d6\", \"\\\\varpi\");\ndefineSymbol(math, main, mathord, \"\\u03f1\", \"\\\\varrho\");\ndefineSymbol(math, main, mathord, \"\\u03c2\", \"\\\\varsigma\");\ndefineSymbol(math, main, mathord, \"\\u03c6\", \"\\\\varphi\");\ndefineSymbol(math, main, bin, \"\\u2217\", \"*\");\ndefineSymbol(math, main, bin, \"+\", \"+\");\ndefineSymbol(math, main, bin, \"\\u2212\", \"-\");\ndefineSymbol(math, main, bin, \"\\u22c5\", \"\\\\cdot\");\ndefineSymbol(math, main, bin, \"\\u2218\", \"\\\\circ\");\ndefineSymbol(math, main, bin, \"\\u00f7\", \"\\\\div\");\ndefineSymbol(math, main, bin, \"\\u00b1\", \"\\\\pm\");\ndefineSymbol(math, main, bin, \"\\u00d7\", \"\\\\times\");\ndefineSymbol(math, main, bin, \"\\u2229\", \"\\\\cap\");\ndefineSymbol(math, main, bin, \"\\u222a\", \"\\\\cup\");\ndefineSymbol(math, main, bin, \"\\u2216\", \"\\\\setminus\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\land\");\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\lor\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\wedge\");\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\vee\");\ndefineSymbol(math, main, textord, \"\\u221a\", \"\\\\surd\");\ndefineSymbol(math, main, open, \"(\", \"(\");\ndefineSymbol(math, main, open, \"[\", \"[\");\ndefineSymbol(math, main, open, \"\\u27e8\", \"\\\\langle\");\ndefineSymbol(math, main, open, \"\\u2223\", \"\\\\lvert\");\ndefineSymbol(math, main, open, \"\\u2225\", \"\\\\lVert\");\ndefineSymbol(math, main, close, \")\", \")\");\ndefineSymbol(math, main, close, \"]\", \"]\");\ndefineSymbol(math, main, close, \"?\", \"?\");\ndefineSymbol(math, main, close, \"!\", \"!\");\ndefineSymbol(math, main, close, \"\\u27e9\", \"\\\\rangle\");\ndefineSymbol(math, main, close, \"\\u2223\", \"\\\\rvert\");\ndefineSymbol(math, main, close, \"\\u2225\", \"\\\\rVert\");\ndefineSymbol(math, main, rel, \"=\", \"=\");\ndefineSymbol(math, main, rel, \"<\", \"<\");\ndefineSymbol(math, main, rel, \">\", \">\");\ndefineSymbol(math, main, rel, \":\", \":\");\ndefineSymbol(math, main, rel, \"\\u2248\", \"\\\\approx\");\ndefineSymbol(math, main, rel, \"\\u2245\", \"\\\\cong\");\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\ge\");\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\geq\");\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\gets\");\ndefineSymbol(math, main, rel, \">\", \"\\\\gt\");\ndefineSymbol(math, main, rel, \"\\u2208\", \"\\\\in\");\ndefineSymbol(math, main, rel, \"\\u2209\", \"\\\\notin\");\ndefineSymbol(math, main, rel, \"\\u2282\", \"\\\\subset\");\ndefineSymbol(math, main, rel, \"\\u2283\", \"\\\\supset\");\ndefineSymbol(math, main, rel, \"\\u2286\", \"\\\\subseteq\");\ndefineSymbol(math, main, rel, \"\\u2287\", \"\\\\supseteq\");\ndefineSymbol(math, ams, rel, \"\\u2288\", \"\\\\nsubseteq\");\ndefineSymbol(math, ams, rel, \"\\u2289\", \"\\\\nsupseteq\");\ndefineSymbol(math, main, rel, \"\\u22a8\", \"\\\\models\");\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\leftarrow\");\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\le\");\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\leq\");\ndefineSymbol(math, main, rel, \"<\", \"\\\\lt\");\ndefineSymbol(math, main, rel, \"\\u2260\", \"\\\\ne\");\ndefineSymbol(math, main, rel, \"\\u2260\", \"\\\\neq\");\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\rightarrow\");\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\to\");\ndefineSymbol(math, ams, rel, \"\\u2271\", \"\\\\ngeq\");\ndefineSymbol(math, ams, rel, \"\\u2270\", \"\\\\nleq\");\ndefineSymbol(math, main, spacing, null, \"\\\\!\");\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"~\");\ndefineSymbol(math, main, spacing, null, \"\\\\,\");\ndefineSymbol(math, main, spacing, null, \"\\\\:\");\ndefineSymbol(math, main, spacing, null, \"\\\\;\");\ndefineSymbol(math, main, spacing, null, \"\\\\enspace\");\ndefineSymbol(math, main, spacing, null, \"\\\\qquad\");\ndefineSymbol(math, main, spacing, null, \"\\\\quad\");\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\space\");\ndefineSymbol(math, main, punct, \",\", \",\");\ndefineSymbol(math, main, punct, \";\", \";\");\ndefineSymbol(math, main, punct, \":\", \"\\\\colon\");\ndefineSymbol(math, ams, bin, \"\\u22bc\", \"\\\\barwedge\");\ndefineSymbol(math, ams, bin, \"\\u22bb\", \"\\\\veebar\");\ndefineSymbol(math, main, bin, \"\\u2299\", \"\\\\odot\");\ndefineSymbol(math, main, bin, \"\\u2295\", \"\\\\oplus\");\ndefineSymbol(math, main, bin, \"\\u2297\", \"\\\\otimes\");\ndefineSymbol(math, main, textord, \"\\u2202\", \"\\\\partial\");\ndefineSymbol(math, main, bin, \"\\u2298\", \"\\\\oslash\");\ndefineSymbol(math, ams, bin, \"\\u229a\", \"\\\\circledcirc\");\ndefineSymbol(math, ams, bin, \"\\u22a1\", \"\\\\boxdot\");\ndefineSymbol(math, main, bin, \"\\u25b3\", \"\\\\bigtriangleup\");\ndefineSymbol(math, main, bin, \"\\u25bd\", \"\\\\bigtriangledown\");\ndefineSymbol(math, main, bin, \"\\u2020\", \"\\\\dagger\");\ndefineSymbol(math, main, bin, \"\\u22c4\", \"\\\\diamond\");\ndefineSymbol(math, main, bin, \"\\u22c6\", \"\\\\star\");\ndefineSymbol(math, main, bin, \"\\u25c3\", \"\\\\triangleleft\");\ndefineSymbol(math, main, bin, \"\\u25b9\", \"\\\\triangleright\");\ndefineSymbol(math, main, open, \"{\", \"\\\\{\");\ndefineSymbol(math, main, close, \"}\", \"\\\\}\");\ndefineSymbol(math, main, open, \"{\", \"\\\\lbrace\");\ndefineSymbol(math, main, close, \"}\", \"\\\\rbrace\");\ndefineSymbol(math, main, open, \"[\", \"\\\\lbrack\");\ndefineSymbol(math, main, close, \"]\", \"\\\\rbrack\");\ndefineSymbol(math, main, open, \"\\u230a\", \"\\\\lfloor\");\ndefineSymbol(math, main, close, \"\\u230b\", \"\\\\rfloor\");\ndefineSymbol(math, main, open, \"\\u2308\", \"\\\\lceil\");\ndefineSymbol(math, main, close, \"\\u2309\", \"\\\\rceil\");\ndefineSymbol(math, main, textord, \"\\\\\", \"\\\\backslash\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"|\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"\\\\vert\");\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\|\");\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\Vert\");\ndefineSymbol(math, main, rel, \"\\u2191\", \"\\\\uparrow\");\ndefineSymbol(math, main, rel, \"\\u21d1\", \"\\\\Uparrow\");\ndefineSymbol(math, main, rel, \"\\u2193\", \"\\\\downarrow\");\ndefineSymbol(math, main, rel, \"\\u21d3\", \"\\\\Downarrow\");\ndefineSymbol(math, main, rel, \"\\u2195\", \"\\\\updownarrow\");\ndefineSymbol(math, main, rel, \"\\u21d5\", \"\\\\Updownarrow\");\ndefineSymbol(math, math, op, \"\\u2210\", \"\\\\coprod\");\ndefineSymbol(math, math, op, \"\\u22c1\", \"\\\\bigvee\");\ndefineSymbol(math, math, op, \"\\u22c0\", \"\\\\bigwedge\");\ndefineSymbol(math, math, op, \"\\u2a04\", \"\\\\biguplus\");\ndefineSymbol(math, math, op, \"\\u22c2\", \"\\\\bigcap\");\ndefineSymbol(math, math, op, \"\\u22c3\", \"\\\\bigcup\");\ndefineSymbol(math, math, op, \"\\u222b\", \"\\\\int\");\ndefineSymbol(math, math, op, \"\\u222b\", \"\\\\intop\");\ndefineSymbol(math, math, op, \"\\u222c\", \"\\\\iint\");\ndefineSymbol(math, math, op, \"\\u222d\", \"\\\\iiint\");\ndefineSymbol(math, math, op, \"\\u220f\", \"\\\\prod\");\ndefineSymbol(math, math, op, \"\\u2211\", \"\\\\sum\");\ndefineSymbol(math, math, op, \"\\u2a02\", \"\\\\bigotimes\");\ndefineSymbol(math, math, op, \"\\u2a01\", \"\\\\bigoplus\");\ndefineSymbol(math, math, op, \"\\u2a00\", \"\\\\bigodot\");\ndefineSymbol(math, math, op, \"\\u222e\", \"\\\\oint\");\ndefineSymbol(math, math, op, \"\\u2a06\", \"\\\\bigsqcup\");\ndefineSymbol(math, math, op, \"\\u222b\", \"\\\\smallint\");\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\ldots\");\ndefineSymbol(math, main, inner, \"\\u22ef\", \"\\\\cdots\");\ndefineSymbol(math, main, inner, \"\\u22f1\", \"\\\\ddots\");\ndefineSymbol(math, main, textord, \"\\u22ee\", \"\\\\vdots\");\ndefineSymbol(math, main, accent, \"\\u00b4\", \"\\\\acute\");\ndefineSymbol(math, main, accent, \"\\u0060\", \"\\\\grave\");\ndefineSymbol(math, main, accent, \"\\u00a8\", \"\\\\ddot\");\ndefineSymbol(math, main, accent, \"\\u007e\", \"\\\\tilde\");\ndefineSymbol(math, main, accent, \"\\u00af\", \"\\\\bar\");\ndefineSymbol(math, main, accent, \"\\u02d8\", \"\\\\breve\");\ndefineSymbol(math, main, accent, \"\\u02c7\", \"\\\\check\");\ndefineSymbol(math, main, accent, \"\\u005e\", \"\\\\hat\");\ndefineSymbol(math, main, accent, \"\\u20d7\", \"\\\\vec\");\ndefineSymbol(math, main, accent, \"\\u02d9\", \"\\\\dot\");\ndefineSymbol(math, main, mathord, \"\\u0131\", \"\\\\imath\");\ndefineSymbol(math, main, mathord, \"\\u0237\", \"\\\\jmath\");\n\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \" \");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"~\");\n\n// There are lots of symbols which are the same, so we add them in afterwards.\nvar i;\nvar ch;\n\n// All of these are textords in math mode\nvar mathTextSymbols = \"0123456789/@.\\\"\";\nfor (i = 0; i < mathTextSymbols.length; i++) {\n ch = mathTextSymbols.charAt(i);\n defineSymbol(math, main, textord, ch, ch);\n}\n\n// All of these are textords in text mode\nvar textSymbols = \"0123456789`!@*()-=+[]'\\\";:?/.,\";\nfor (i = 0; i < textSymbols.length; i++) {\n ch = textSymbols.charAt(i);\n defineSymbol(text, main, textord, ch, ch);\n}\n\n// All of these are textords in text mode, and mathords in math mode\nvar letters = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\nfor (i = 0; i < letters.length; i++) {\n ch = letters.charAt(i);\n defineSymbol(math, main, mathord, ch, ch);\n defineSymbol(text, main, textord, ch, ch);\n}\n","module.exports = __webpack_public_path__ + \"img/sending2.97d2057b.gif\";","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","module.exports = { \"default\": require(\"core-js/library/fn/get-iterator\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \" + katex.renderToString(latex, options) + \" \n * Joint work of Euclid and M. Hendry\n */\n function gcd(i, j) {\n return j != 0 ? gcd(j, i % j) : i;\n }\n\n /**\n * Resampling via FIR filter, blackman window.\n */\n function blackman(x, fcn, l) {\n /*\n * This algorithm from: SIGNAL PROCESSING ALGORITHMS IN FORTRAN AND C\n * S.D. Stearns and R.A. David, Prentice-Hall, 1992\n */\n var wcn = (Math.PI * fcn);\n\n x /= l;\n if (x < 0)\n x = 0;\n if (x > 1)\n x = 1;\n var x2 = x - .5;\n\n var bkwn = 0.42 - 0.5 * Math.cos(2 * x * Math.PI) + 0.08 * Math.cos(4 * x * Math.PI);\n if (Math.abs(x2) < 1e-9)\n return (wcn / Math.PI);\n else\n return (bkwn * Math.sin(l * wcn * x2) / (Math.PI * l * x2));\n }\n\n function fill_buffer_resample(gfp, outbuf, outbufPos, desired_len, inbuf, in_bufferPos, len, num_used, ch) {\n var gfc = gfp.internal_flags;\n var i, j = 0, k;\n /* number of convolution functions to pre-compute */\n var bpc = gfp.out_samplerate\n / gcd(gfp.out_samplerate, gfp.in_samplerate);\n if (bpc > LameInternalFlags.BPC)\n bpc = LameInternalFlags.BPC;\n\n var intratio = (Math.abs(gfc.resample_ratio\n - Math.floor(.5 + gfc.resample_ratio)) < .0001) ? 1 : 0;\n var fcn = 1.00 / gfc.resample_ratio;\n if (fcn > 1.00)\n fcn = 1.00;\n var filter_l = 31;\n if (0 == filter_l % 2)\n --filter_l;\n /* must be odd */\n filter_l += intratio;\n /* unless resample_ratio=int, it must be even */\n\n var BLACKSIZE = filter_l + 1;\n /* size of data needed for FIR */\n\n if (gfc.fill_buffer_resample_init == 0) {\n gfc.inbuf_old[0] = new_float(BLACKSIZE);\n gfc.inbuf_old[1] = new_float(BLACKSIZE);\n for (i = 0; i <= 2 * bpc; ++i)\n gfc.blackfilt[i] = new_float(BLACKSIZE);\n\n gfc.itime[0] = 0;\n gfc.itime[1] = 0;\n\n /* precompute blackman filter coefficients */\n for (j = 0; j <= 2 * bpc; j++) {\n var sum = 0.;\n var offset = (j - bpc) / (2. * bpc);\n for (i = 0; i <= filter_l; i++)\n sum += gfc.blackfilt[j][i] = blackman(i - offset, fcn,\n filter_l);\n for (i = 0; i <= filter_l; i++)\n gfc.blackfilt[j][i] /= sum;\n }\n gfc.fill_buffer_resample_init = 1;\n }\n\n var inbuf_old = gfc.inbuf_old[ch];\n\n /* time of j'th element in inbuf = itime + j/ifreq; */\n /* time of k'th element in outbuf = j/ofreq */\n for (k = 0; k < desired_len; k++) {\n var time0;\n var joff;\n\n time0 = k * gfc.resample_ratio;\n /* time of k'th output sample */\n j = 0 | Math.floor(time0 - gfc.itime[ch]);\n\n /* check if we need more input data */\n if ((filter_l + j - filter_l / 2) >= len)\n break;\n\n /* blackman filter. by default, window centered at j+.5(filter_l%2) */\n /* but we want a window centered at time0. */\n var offset = (time0 - gfc.itime[ch] - (j + .5 * (filter_l % 2)));\n assert(Math.abs(offset) <= .501);\n\n /* find the closest precomputed window for this offset: */\n joff = 0 | Math.floor((offset * 2 * bpc) + bpc + .5);\n var xvalue = 0.;\n for (i = 0; i <= filter_l; ++i) {\n\t\t/* force integer index */\n var j2 = 0 | (i + j - filter_l / 2); \n var y;\n assert(j2 < len);\n assert(j2 + BLACKSIZE >= 0);\n y = (j2 < 0) ? inbuf_old[BLACKSIZE + j2] : inbuf[in_bufferPos\n + j2];\n xvalue += y * gfc.blackfilt[joff][i];\n }\n outbuf[outbufPos + k] = xvalue;\n }\n\n /* k = number of samples added to outbuf */\n /* last k sample used data from [j-filter_l/2,j+filter_l-filter_l/2] */\n\n /* how many samples of input data were used: */\n num_used.num_used = Math.min(len, filter_l + j - filter_l / 2);\n\n /*\n * adjust our input time counter. Incriment by the number of samples\n * used, then normalize so that next output sample is at time 0, next\n * input buffer is at time itime[ch]\n */\n gfc.itime[ch] += num_used.num_used - k * gfc.resample_ratio;\n\n /* save the last BLACKSIZE samples into the inbuf_old buffer */\n if (num_used.num_used >= BLACKSIZE) {\n for (i = 0; i < BLACKSIZE; i++)\n inbuf_old[i] = inbuf[in_bufferPos + num_used.num_used + i\n - BLACKSIZE];\n } else {\n /* shift in num_used.num_used samples into inbuf_old */\n var n_shift = BLACKSIZE - num_used.num_used;\n /*\n * number of samples to\n * shift\n */\n\n /*\n * shift n_shift samples by num_used.num_used, to make room for the\n * num_used new samples\n */\n for (i = 0; i < n_shift; ++i)\n inbuf_old[i] = inbuf_old[i + num_used.num_used];\n\n /* shift in the num_used.num_used samples */\n for (j = 0; i < BLACKSIZE; ++i, ++j)\n inbuf_old[i] = inbuf[in_bufferPos + j];\n\n assert(j == num_used.num_used);\n }\n return k;\n /* return the number samples created at the new samplerate */\n }\n\n function fill_buffer(gfp, mfbuf, in_buffer, in_bufferPos, nsamples, io) {\n var gfc = gfp.internal_flags;\n\n /* copy in new samples into mfbuf, with resampling if necessary */\n if ((gfc.resample_ratio < .9999) || (gfc.resample_ratio > 1.0001)) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var numUsed = new NumUsed();\n io.n_out = fill_buffer_resample(gfp, mfbuf[ch], gfc.mf_size,\n gfp.framesize, in_buffer[ch], in_bufferPos, nsamples,\n numUsed, ch);\n io.n_in = numUsed.num_used;\n }\n } else {\n io.n_out = Math.min(gfp.framesize, nsamples);\n io.n_in = io.n_out;\n for (var i = 0; i < io.n_out; ++i) {\n mfbuf[0][gfc.mf_size + i] = in_buffer[0][in_bufferPos + i];\n if (gfc.channels_out == 2)\n mfbuf[1][gfc.mf_size + i] = in_buffer[1][in_bufferPos + i];\n }\n }\n }\n\n}\n\nmodule.exports = Lame;\n","// Parse link label\n//\n// this function assumes that first character (\"[\") already matches;\n// returns the end of the label\n//\n'use strict';\n\nmodule.exports = function parseLinkLabel(state, start, disableNested) {\n var level, found, marker, prevPos,\n labelEnd = -1,\n max = state.posMax,\n oldPos = state.pos;\n\n state.pos = start + 1;\n level = 1;\n\n while (state.pos < max) {\n marker = state.src.charCodeAt(state.pos);\n if (marker === 0x5D /* ] */) {\n level--;\n if (level === 0) {\n found = true;\n break;\n }\n }\n\n prevPos = state.pos;\n state.md.inline.skipToken(state);\n if (marker === 0x5B /* [ */) {\n if (prevPos === state.pos - 1) {\n // increase level if we find text `[`, which is not a part of any token\n level++;\n } else if (disableNested) {\n state.pos = oldPos;\n return -1;\n }\n }\n }\n\n if (found) {\n labelEnd = state.pos;\n }\n\n // restore old state\n state.pos = oldPos;\n\n return labelEnd;\n};\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\n/**\n * A Vbr header may be present in the ancillary data field of the first frame of\n * an mp3 bitstream
)\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with \n * L3psycho_anal. Compute psycho acoustics.\n *\n * Data returned to the calling program must be delayed by one\n * granule.\n *\n * This is done in two places.\n * If we do not need to know the blocktype, the copying\n * can be done here at the top of the program: we copy the data for\n * the last granule (computed during the last call) before it is\n * overwritten with the new data. It looks like this:\n *\n * 0. static psymodel_data\n * 1. calling_program_data = psymodel_data\n * 2. compute psymodel_data\n *\n * For data which needs to know the blocktype, the copying must be\n * done at the end of this loop, and the old values must be saved:\n *\n * 0. static psymodel_data_old\n * 1. compute psymodel_data\n * 2. compute possible block type of this granule\n * 3. compute final block type of previous granule based on #2.\n * 4. calling_program_data = psymodel_data_old\n * 5. psymodel_data_old = psymodel_data\n * psycho_loudness_approx\n * jd - 2001 mar 12\n * in: energy - BLKSIZE/2 elements of frequency magnitudes ^ 2\n * gfp - uses out_samplerate, ATHtype (also needed for ATHformula)\n * returns: loudness^2 approximation, a positive value roughly tuned for a value\n * of 1.0 for signals near clipping.\n * notes: When calibrated, feeding this function binary white noise at sample\n * values +32767 or -32768 should return values that approach 3.\n * ATHformula is used to approximate an equal loudness curve.\n * future: Data indicates that the shape of the equal loudness curve varies\n * with intensity. This function might be improved by using an equal\n * loudness curve shaped for typical playback levels (instead of the\n * ATH, that is shaped for the threshold). A flexible realization might\n * simply bend the existing ATH curve to achieve the desired shape.\n * However, the potential gain may not be enough to justify an effort.\n *
\n */\n function psycho_loudness_approx(energy, gfc) {\n var loudness_power = 0.0;\n /* apply weights to power in freq. bands */\n for (var i = 0; i < Encoder.BLKSIZE / 2; ++i)\n loudness_power += energy[i] * gfc.ATH.eql_w[i];\n loudness_power *= VO_SCALE;\n\n return loudness_power;\n }\n\n function compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, wsamp_lPos, wsamp_s, wsamp_sPos, gr_out, chn, buffer, bufPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n }\n /* FFT data for mid and side channel is derived from L & R */\n else if (chn == 2) {\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n for (var b = 2; b >= 0; --b) {\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][b][j];\n var r = wsamp_s[wsamp_sPos + 1][b][j];\n wsamp_s[wsamp_sPos + 0][b][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][b][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n }\n }\n\n /*********************************************************************\n * compute energies\n *********************************************************************/\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 - j];\n var im = (wsamp_l[wsamp_lPos + 0])[Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n for (var b = 2; b >= 0; --b) {\n fftenergy_s[b][0] = (wsamp_s[wsamp_sPos + 0])[b][0];\n fftenergy_s[b][0] *= fftenergy_s[b][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s\n / 2 - j];\n var im = (wsamp_s[wsamp_sPos + 0])[b][Encoder.BLKSIZE_s\n / 2 + j];\n fftenergy_s[b][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n }\n /* total energy */\n {\n var totalenergy = 0.0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n\n gfc.tot_ener[chn] = totalenergy;\n }\n\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n\n /*********************************************************************\n * compute loudness approximation (used for ATH auto-level adjustment)\n *********************************************************************/\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n // no loudness for mid/side ch\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n\n /* mask_add optimization */\n /* init the limit values used to avoid computing log in mask_add when it is not necessary */\n\n /**\n * \n * For example, with i = 10*log10(m2/m1)/10*16 (= log10(m2/m1)*16)\n *\n * abs(i)>8 is equivalent (as i is an integer) to\n * abs(i)>=9\n * i>=9 || i<=-9\n * equivalent to (as i is the biggest integer smaller than log10(m2/m1)*16\n * or the smallest integer bigger than log10(m2/m1)*16 depending on the sign of log10(m2/m1)*16)\n * log10(m2/m1)>=9/16 || log10(m2/m1)<=-9/16\n * exp10 is strictly increasing thus this is equivalent to\n * m2/m1 >= 10^(9/16) || m2/m1<=10^(-9/16) which are comparisons to constants\n *
\n */\n\n /**\n * as in if(i>8)\n */\n var I1LIMIT = 8;\n /**\n * as in if(i>24) . changed 23\n */\n var I2LIMIT = 23;\n /**\n * as in if(m<15)\n */\n var MLIMIT = 15;\n\n var ma_max_i1;\n var ma_max_i2;\n var ma_max_m;\n\n /**\n * This is the masking table:
\n * According to tonality, values are going from 0dB (TMN) to 9.3dB (NMT).
\n * After additive masking computation, 8dB are added, so final values are\n * going from 8dB to 17.3dB\n *\n * pow(10, -0.0..-0.6)\n */\n var tab = [1.0, 0.79433, 0.63096, 0.63096,\n 0.63096, 0.63096, 0.63096, 0.25119, 0.11749];\n\n function init_mask_add_max_values() {\n ma_max_i1 = Math.pow(10, (I1LIMIT + 1) / 16.0);\n ma_max_i2 = Math.pow(10, (I2LIMIT + 1) / 16.0);\n ma_max_m = Math.pow(10, (MLIMIT) / 10.0);\n }\n\n var table1 = [3.3246 * 3.3246,\n 3.23837 * 3.23837, 3.15437 * 3.15437, 3.00412 * 3.00412,\n 2.86103 * 2.86103, 2.65407 * 2.65407, 2.46209 * 2.46209,\n 2.284 * 2.284, 2.11879 * 2.11879, 1.96552 * 1.96552,\n 1.82335 * 1.82335, 1.69146 * 1.69146, 1.56911 * 1.56911,\n 1.46658 * 1.46658, 1.37074 * 1.37074, 1.31036 * 1.31036,\n 1.25264 * 1.25264, 1.20648 * 1.20648, 1.16203 * 1.16203,\n 1.12765 * 1.12765, 1.09428 * 1.09428, 1.0659 * 1.0659,\n 1.03826 * 1.03826, 1.01895 * 1.01895, 1];\n\n var table2 = [1.33352 * 1.33352,\n 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,\n 1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,\n 1.22321 * 1.22321, 1.14758 * 1.14758, 1];\n\n var table3 = [2.35364 * 2.35364,\n 2.29259 * 2.29259, 2.23313 * 2.23313, 2.12675 * 2.12675,\n 2.02545 * 2.02545, 1.87894 * 1.87894, 1.74303 * 1.74303,\n 1.61695 * 1.61695, 1.49999 * 1.49999, 1.39148 * 1.39148,\n 1.29083 * 1.29083, 1.19746 * 1.19746, 1.11084 * 1.11084,\n 1.03826 * 1.03826];\n\n /**\n * addition of simultaneous masking Naoki Shibata 2000/7\n */\n function mask_add(m1, m2, kk, b, gfc, shortblock) {\n var ratio;\n\n if (m2 > m1) {\n if (m2 < (m1 * ma_max_i2))\n ratio = m2 / m1;\n else\n return (m1 + m2);\n } else {\n if (m1 >= (m2 * ma_max_i2))\n return (m1 + m2);\n ratio = m1 / m2;\n }\n\n /* Should always be true, just checking */\n assert(m1 >= 0);\n assert(m2 >= 0);\n\n m1 += m2;\n //if (((long)(b + 3) & 0xffffffff) <= 3 + 3) {\n if ((b + 3) <= 3 + 3) {\n /* approximately, 1 bark = 3 partitions */\n /* 65% of the cases */\n /* originally 'if(i > 8)' */\n if (ratio >= ma_max_i1) {\n /* 43% of the total */\n return m1;\n }\n\n /* 22% of the total */\n var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));\n return m1 * table2[i];\n }\n\n /**\n * \n * m<15 equ log10((m1+m2)/gfc.ATH.cb[k])<1.5\n * equ (m1+m2)/gfc.ATH.cb[k]<10^1.5\n * equ (m1+m2)<10^1.5 * gfc.ATH.cb[k]\n *
\n */\n var i = 0 | Util.FAST_LOG10_X(ratio, 16.0);\n if (shortblock != 0) {\n m2 = gfc.ATH.cb_s[kk] * gfc.ATH.adjust;\n } else {\n m2 = gfc.ATH.cb_l[kk] * gfc.ATH.adjust;\n }\n assert(m2 >= 0);\n if (m1 < ma_max_m * m2) {\n /* 3% of the total */\n /* Originally if (m > 0) { */\n if (m1 > m2) {\n var f, r;\n\n f = 1.0;\n if (i <= 13)\n f = table3[i];\n\n r = Util.FAST_LOG10_X(m1 / m2, 10.0 / 15.0);\n return m1 * ((table1[i] - f) * r + f);\n }\n\n if (i > 13)\n return m1;\n\n return m1 * table3[i];\n }\n\n /* 10% of total */\n return m1 * table1[i];\n }\n\n var table2_ = [1.33352 * 1.33352,\n 1.35879 * 1.35879, 1.38454 * 1.38454, 1.39497 * 1.39497,\n 1.40548 * 1.40548, 1.3537 * 1.3537, 1.30382 * 1.30382,\n 1.22321 * 1.22321, 1.14758 * 1.14758, 1];\n\n /**\n * addition of simultaneous masking Naoki Shibata 2000/7\n */\n function vbrpsy_mask_add(m1, m2, b) {\n var ratio;\n\n if (m1 < 0) {\n m1 = 0;\n }\n if (m2 < 0) {\n m2 = 0;\n }\n if (m1 <= 0) {\n return m2;\n }\n if (m2 <= 0) {\n return m1;\n }\n if (m2 > m1) {\n ratio = m2 / m1;\n } else {\n ratio = m1 / m2;\n }\n if (-2 <= b && b <= 2) {\n /* approximately, 1 bark = 3 partitions */\n /* originally 'if(i > 8)' */\n if (ratio >= ma_max_i1) {\n return m1 + m2;\n } else {\n var i = 0 | (Util.FAST_LOG10_X(ratio, 16.0));\n return (m1 + m2) * table2_[i];\n }\n }\n if (ratio < ma_max_i2) {\n return m1 + m2;\n }\n if (m1 < m2) {\n m1 = m2;\n }\n return m1;\n }\n\n /**\n * compute interchannel masking effects\n */\n function calc_interchannel_masking(gfp, ratio) {\n var gfc = gfp.internal_flags;\n if (gfc.channels_out > 1) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var l = gfc.thm[0].l[sb];\n var r = gfc.thm[1].l[sb];\n gfc.thm[0].l[sb] += r * ratio;\n gfc.thm[1].l[sb] += l * ratio;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var l = gfc.thm[0].s[sb][sblock];\n var r = gfc.thm[1].s[sb][sblock];\n gfc.thm[0].s[sb][sblock] += r * ratio;\n gfc.thm[1].s[sb][sblock] += l * ratio;\n }\n }\n }\n }\n\n /**\n * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n */\n function msfix1(gfc) {\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n /* use this fix if L & R masking differs by 2db or less */\n /* if db = 10*log10(x2/x1) < 2 */\n /* if (x2 < 1.58*x1) { */\n if (gfc.thm[0].l[sb] > 1.58 * gfc.thm[1].l[sb]\n || gfc.thm[1].l[sb] > 1.58 * gfc.thm[0].l[sb])\n continue;\n var mld = gfc.mld_l[sb] * gfc.en[3].l[sb];\n var rmid = Math.max(gfc.thm[2].l[sb],\n Math.min(gfc.thm[3].l[sb], mld));\n\n mld = gfc.mld_l[sb] * gfc.en[2].l[sb];\n var rside = Math.max(gfc.thm[3].l[sb],\n Math.min(gfc.thm[2].l[sb], mld));\n gfc.thm[2].l[sb] = rmid;\n gfc.thm[3].l[sb] = rside;\n }\n\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n if (gfc.thm[0].s[sb][sblock] > 1.58 * gfc.thm[1].s[sb][sblock]\n || gfc.thm[1].s[sb][sblock] > 1.58 * gfc.thm[0].s[sb][sblock])\n continue;\n var mld = gfc.mld_s[sb] * gfc.en[3].s[sb][sblock];\n var rmid = Math.max(gfc.thm[2].s[sb][sblock],\n Math.min(gfc.thm[3].s[sb][sblock], mld));\n\n mld = gfc.mld_s[sb] * gfc.en[2].s[sb][sblock];\n var rside = Math.max(gfc.thm[3].s[sb][sblock],\n Math.min(gfc.thm[2].s[sb][sblock], mld));\n\n gfc.thm[2].s[sb][sblock] = rmid;\n gfc.thm[3].s[sb][sblock] = rside;\n }\n }\n }\n\n /**\n * Adjust M/S maskings if user set \"msfix\"\n *\n * Naoki Shibata 2000\n */\n function ns_msfix(gfc, msfix, athadjust) {\n var msfix2 = msfix;\n var athlower = Math.pow(10, athadjust);\n\n msfix *= 2.0;\n msfix2 *= 2.0;\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n var thmLR, thmM, thmS, ath;\n ath = (gfc.ATH.cb_l[gfc.bm_l[sb]]) * athlower;\n thmLR = Math.min(Math.max(gfc.thm[0].l[sb], ath),\n Math.max(gfc.thm[1].l[sb], ath));\n thmM = Math.max(gfc.thm[2].l[sb], ath);\n thmS = Math.max(gfc.thm[3].l[sb], ath);\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix2 / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n assert(thmM + thmS > 0);\n }\n gfc.thm[2].l[sb] = Math.min(thmM, gfc.thm[2].l[sb]);\n gfc.thm[3].l[sb] = Math.min(thmS, gfc.thm[3].l[sb]);\n }\n\n athlower *= ( Encoder.BLKSIZE_s / Encoder.BLKSIZE);\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmLR, thmM, thmS, ath;\n ath = (gfc.ATH.cb_s[gfc.bm_s[sb]]) * athlower;\n thmLR = Math.min(Math.max(gfc.thm[0].s[sb][sblock], ath),\n Math.max(gfc.thm[1].s[sb][sblock], ath));\n thmM = Math.max(gfc.thm[2].s[sb][sblock], ath);\n thmS = Math.max(gfc.thm[3].s[sb][sblock], ath);\n\n if (thmLR * msfix < thmM + thmS) {\n var f = thmLR * msfix / (thmM + thmS);\n thmM *= f;\n thmS *= f;\n assert(thmM + thmS > 0);\n }\n gfc.thm[2].s[sb][sblock] = Math.min(gfc.thm[2].s[sb][sblock],\n thmM);\n gfc.thm[3].s[sb][sblock] = Math.min(gfc.thm[3].s[sb][sblock],\n thmS);\n }\n }\n }\n\n /**\n * short block threshold calculation (part 2)\n *\n * partition band bo_s[sfb] is at the transition from scalefactor band sfb\n * to the next one sfb+1; enn and thmm have to be split between them\n */\n function convert_partition2scalefac_s(gfc, eb, thr, chn, sblock) {\n var sb, b;\n var enn = 0.0;\n var thmm = 0.0;\n for (sb = b = 0; sb < Encoder.SBMAX_s; ++b, ++sb) {\n var bo_s_sb = gfc.bo_s[sb];\n var npart_s = gfc.npart_s;\n var b_lim = bo_s_sb < npart_s ? bo_s_sb : npart_s;\n while (b < b_lim) {\n assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n assert(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].s[sb][sblock] = enn;\n gfc.thm[chn].s[sb][sblock] = thmm;\n\n if (b >= npart_s) {\n ++sb;\n break;\n }\n assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n assert(thr[b] >= 0);\n {\n /* at transition sfb . sfb+1 */\n var w_curr = gfc.PSY.bo_s_weight[sb];\n var w_next = 1.0 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].s[sb][sblock] += enn;\n gfc.thm[chn].s[sb][sblock] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n /* zero initialize the rest */\n for (; sb < Encoder.SBMAX_s; ++sb) {\n gfc.en[chn].s[sb][sblock] = 0;\n gfc.thm[chn].s[sb][sblock] = 0;\n }\n }\n\n /**\n * longblock threshold calculation (part 2)\n */\n function convert_partition2scalefac_l(gfc, eb, thr, chn) {\n var sb, b;\n var enn = 0.0;\n var thmm = 0.0;\n for (sb = b = 0; sb < Encoder.SBMAX_l; ++b, ++sb) {\n var bo_l_sb = gfc.bo_l[sb];\n var npart_l = gfc.npart_l;\n var b_lim = bo_l_sb < npart_l ? bo_l_sb : npart_l;\n while (b < b_lim) {\n assert(eb[b] >= 0);\n // iff failed, it may indicate some index error elsewhere\n assert(thr[b] >= 0);\n enn += eb[b];\n thmm += thr[b];\n b++;\n }\n gfc.en[chn].l[sb] = enn;\n gfc.thm[chn].l[sb] = thmm;\n\n if (b >= npart_l) {\n ++sb;\n break;\n }\n assert(eb[b] >= 0);\n assert(thr[b] >= 0);\n {\n /* at transition sfb . sfb+1 */\n var w_curr = gfc.PSY.bo_l_weight[sb];\n var w_next = 1.0 - w_curr;\n enn = w_curr * eb[b];\n thmm = w_curr * thr[b];\n gfc.en[chn].l[sb] += enn;\n gfc.thm[chn].l[sb] += thmm;\n enn = w_next * eb[b];\n thmm = w_next * thr[b];\n }\n }\n /* zero initialize the rest */\n for (; sb < Encoder.SBMAX_l; ++sb) {\n gfc.en[chn].l[sb] = 0;\n gfc.thm[chn].l[sb] = 0;\n }\n }\n\n function compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var j, b;\n\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0, m = 0;\n var n = gfc.numlines_s[b];\n for (var i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n }\n assert(b == gfc.npart_s);\n assert(j == 129);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var ecb = gfc.s3_ss[j++] * eb[kk];\n ++kk;\n while (kk <= gfc.s3ind_s[b][1]) {\n ecb += gfc.s3_ss[j] * eb[kk];\n ++j;\n ++kk;\n }\n\n { /* limit calculated threshold by previous granule */\n var x = rpelev_s * gfc.nb_s1[chn][b];\n thr[b] = Math.min(ecb, x);\n }\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE) {\n /* limit calculated threshold by even older granule */\n var x = rpelev2_s * gfc.nb_s2[chn][b];\n var y = thr[b];\n thr[b] = Math.min(x, y);\n }\n\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n assert(thr[b] >= 0);\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n\n function block_type_set(gfp, uselongblock, blocktype_d, blocktype) {\n var gfc = gfp.internal_flags;\n\n if (gfp.short_blocks == ShortBlock.short_block_coupled\n /* force both channels to use the same block type */\n /* this is necessary if the frame is to be encoded in ms_stereo. */\n /* But even without ms_stereo, FhG does this */\n && !(uselongblock[0] != 0 && uselongblock[1] != 0))\n uselongblock[0] = uselongblock[1] = 0;\n\n /*\n * update the blocktype of the previous granule, since it depends on\n * what happend in this granule\n */\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n blocktype[chn] = Encoder.NORM_TYPE;\n /* disable short blocks */\n if (gfp.short_blocks == ShortBlock.short_block_dispensed)\n uselongblock[chn] = 1;\n if (gfp.short_blocks == ShortBlock.short_block_forced)\n uselongblock[chn] = 0;\n\n if (uselongblock[chn] != 0) {\n /* no attack : use long blocks */\n assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)\n blocktype[chn] = Encoder.STOP_TYPE;\n } else {\n /* attack : use short blocks */\n blocktype[chn] = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n\n blocktype_d[chn] = gfc.blocktype_old[chn];\n // value returned to calling program\n gfc.blocktype_old[chn] = blocktype[chn];\n // save for next call to l3psy_anal\n }\n }\n\n function NS_INTERP(x, y, r) {\n /* was pow((x),(r))*pow((y),1-(r)) */\n if (r >= 1.0) {\n /* 99.7% of the time */\n return x;\n }\n if (r <= 0.0)\n return y;\n if (y > 0.0) {\n /* rest of the time */\n return (Math.pow(x / y, r) * y);\n }\n /* never happens */\n return 0.0;\n }\n\n /**\n * these values are tuned only for 44.1kHz...\n */\n var regcoef_s = [11.8, 13.6, 17.2, 32, 46.5,\n 51.3, 57.5, 67.1, 71.5, 84.6, 97.6, 130,\n /* 255.8 */\n ];\n\n function pecalc_s(mr, masking_lower) {\n var pe_s = 1236.28 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_s - 1; sb++) {\n for (var sblock = 0; sblock < 3; sblock++) {\n var thm = mr.thm.s[sb][sblock];\n assert(sb < regcoef_s.length);\n if (thm > 0.0) {\n var x = thm * masking_lower;\n var en = mr.en.s[sb][sblock];\n if (en > x) {\n if (en > x * 1e10) {\n pe_s += regcoef_s[sb] * (10.0 * LOG10);\n } else {\n assert(x > 0);\n pe_s += regcoef_s[sb] * Util.FAST_LOG10(en / x);\n }\n }\n }\n }\n }\n\n return pe_s;\n }\n\n /**\n * these values are tuned only for 44.1kHz...\n */\n var regcoef_l = [6.8, 5.8, 5.8, 6.4, 6.5, 9.9,\n 12.1, 14.4, 15, 18.9, 21.6, 26.9, 34.2, 40.2, 46.8, 56.5,\n 60.7, 73.9, 85.7, 93.4, 126.1,\n /* 241.3 */\n ];\n\n function pecalc_l(mr, masking_lower) {\n var pe_l = 1124.23 / 4;\n for (var sb = 0; sb < Encoder.SBMAX_l - 1; sb++) {\n var thm = mr.thm.l[sb];\n assert(sb < regcoef_l.length);\n if (thm > 0.0) {\n var x = thm * masking_lower;\n var en = mr.en.l[sb];\n if (en > x) {\n if (en > x * 1e10) {\n pe_l += regcoef_l[sb] * (10.0 * LOG10);\n } else {\n assert(x > 0);\n pe_l += regcoef_l[sb] * Util.FAST_LOG10(en / x);\n }\n }\n }\n }\n return pe_l;\n }\n\n function calc_energy(gfc, fftenergy, eb, max, avg) {\n var b, j;\n\n for (b = j = 0; b < gfc.npart_l; ++b) {\n var ebb = 0, m = 0;\n var i;\n for (i = 0; i < gfc.numlines_l[b]; ++i, ++j) {\n var el = fftenergy[j];\n assert(el >= 0);\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n max[b] = m;\n avg[b] = ebb * gfc.rnumlines_l[b];\n assert(gfc.rnumlines_l[b] >= 0);\n assert(ebb >= 0);\n assert(eb[b] >= 0);\n assert(max[b] >= 0);\n assert(avg[b] >= 0);\n }\n }\n\n function calc_mask_index_l(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n\n for (b = 1; b < gfc.npart_l - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] + gfc.numlines_l[b + 1] - 1) > 0);\n a = 20.0\n * (m * 3.0 - a)\n / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b]\n + gfc.numlines_l[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert(b > 0);\n assert(b == gfc.npart_l - 1);\n\n a = avg[b - 1] + avg[b];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert((gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_l[b - 1] + gfc.numlines_l[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert(b == (gfc.npart_l - 1));\n }\n\n var fircoef = [\n -8.65163e-18 * 2, -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,\n -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2, 0.0931738 * 2,\n -5.52212e-17 * 2, -0.313819 * 2\n ];\n\n this.L3psycho_anal_ns = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n /*\n * to get a good cache performance, one has to think about the sequence,\n * in which the variables are used.\n */\n var gfc = gfp.internal_flags;\n\n /* fft and energy calculation */\n var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);\n\n /* convolution */\n var eb_l = new_float(Encoder.CBANDS + 1);\n var eb_s = new_float(Encoder.CBANDS + 1);\n var thr = new_float(Encoder.CBANDS + 2);\n\n /* block type */\n var blocktype = new_int(2), uselongblock = new_int(2);\n\n /* usual variables like loop indices, etc.. */\n var numchn, chn;\n var b, i, j, k;\n var sb, sblock;\n\n /* variables used for --nspsytune */\n var ns_hpfsmpl = new_float_n([2, 576]);\n var pcfact;\n var mask_idx_l = new_int(Encoder.CBANDS + 2), mask_idx_s = new_int(Encoder.CBANDS + 2);\n\n Arrays.fill(mask_idx_s, 0);\n\n numchn = gfc.channels_out;\n /* chn=2 and 3 = Mid and Side channels */\n if (gfp.mode == MPEGMode.JOINT_STEREO)\n numchn = 4;\n\n if (gfp.VBR == VbrMode.vbr_off)\n pcfact = gfc.ResvMax == 0 ? 0 : ( gfc.ResvSize)\n / gfc.ResvMax * 0.5;\n else if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh\n || gfp.VBR == VbrMode.vbr_mt) {\n pcfact = 0.6;\n } else\n pcfact = 1.0;\n\n /**********************************************************************\n * Apply HPF of fs/4 to the input signal. This is used for attack\n * detection / handling.\n **********************************************************************/\n /* Don't copy the input buffer into a temporary buffer */\n /* unroll the loop 2 times */\n for (chn = 0; chn < gfc.channels_out; chn++) {\n /* apply high pass filter of fs/4 */\n var firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n assert(fircoef.length == ((NSFIRLEN - 1) / 2));\n for (i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0.0;\n for (j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {\n sum1 += fircoef[j]\n * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i\n + NSFIRLEN - j]);\n sum2 += fircoef[j + 1]\n * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos\n + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (numchn > 2) {\n /* MS maskings */\n /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n\n for (chn = 0; chn < numchn; chn++) {\n var wsamp_l;\n var wsamp_s;\n var en_subshort = new_float(12);\n var en_short = [0, 0, 0, 0];\n var attack_intensity = new_float(12);\n var ns_uselongblock = 1;\n var attackThreshold;\n var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);\n var ns_attacks = [0, 0, 0, 0];\n var fftenergy = new_float(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);\n\n /*\n * rh 20040301: the following loops do access one off the limits so\n * I increase the array dimensions by one and initialize the\n * accessed values to zero\n */\n assert(gfc.npart_s <= Encoder.CBANDS);\n assert(gfc.npart_l <= Encoder.CBANDS);\n\n /***************************************************************\n * determine the block type (window type)\n ***************************************************************/\n /* calculate energies of each sub-shortblocks */\n for (i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i]\n / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n\n if (chn == 2) {\n for (i = 0; i < 576; i++) {\n var l, r;\n l = ns_hpfsmpl[0][i];\n r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n {\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n for (i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p = 1.;\n for (; pfPos < pfe; pfPos++)\n if (p < Math.abs(pf[pfPos]))\n p = Math.abs(pf[pfPos]);\n\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n en_short[1 + i / 3] += p;\n if (p > en_subshort[i + 3 - 2]) {\n assert(en_subshort[i + 3 - 2] > 0);\n p = p / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n assert(p > 0);\n p = en_subshort[i + 3 - 2] / (p * 10.0);\n } else\n p = 0.0;\n attack_intensity[i + 3] = p;\n }\n }\n\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (i = 1; i < 12; i++)\n if (x < attack_intensity[i])\n x = attack_intensity[i];\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n\n /* compare energies between sub-shortblocks */\n attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s\n : gfc.nsPsy.attackthre;\n for (i = 0; i < 12; i++)\n if (0 == ns_attacks[i / 3]\n && attack_intensity[i] > attackThreshold)\n ns_attacks[i / 3] = (i % 3) + 1;\n\n /*\n * should have energy change between short blocks, in order to avoid\n * periodic signals\n */\n for (i = 1; i < 4; i++) {\n var ratio;\n if (en_short[i - 1] > en_short[i]) {\n assert(en_short[i] > 0);\n ratio = en_short[i - 1] / en_short[i];\n } else {\n assert(en_short[i - 1] > 0);\n ratio = en_short[i] / en_short[i - 1];\n }\n if (ratio < 1.7) {\n ns_attacks[i] = 0;\n if (i == 1)\n ns_attacks[0] = 0;\n }\n }\n\n if (ns_attacks[0] != 0 && gfc.nsPsy.lastAttacks[chn] != 0)\n ns_attacks[0] = 0;\n\n if (gfc.nsPsy.lastAttacks[chn] == 3\n || (ns_attacks[0] + ns_attacks[1] + ns_attacks[2] + ns_attacks[3]) != 0) {\n ns_uselongblock = 0;\n\n if (ns_attacks[1] != 0 && ns_attacks[0] != 0)\n ns_attacks[1] = 0;\n if (ns_attacks[2] != 0 && ns_attacks[1] != 0)\n ns_attacks[2] = 0;\n if (ns_attacks[3] != 0 && ns_attacks[2] != 0)\n ns_attacks[3] = 0;\n }\n\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n\n /*\n * there is a one granule delay. Copy maskings computed last call\n * into masking_ratio to return to calling program.\n */\n energy[chn] = gfc.tot_ener[chn];\n\n /*********************************************************************\n * compute FFTs\n *********************************************************************/\n wsamp_s = wsamp_S;\n wsamp_l = wsamp_L;\n compute_ffts(gfp, fftenergy, fftenergy_s, wsamp_l, (chn & 1),\n wsamp_s, (chn & 1), gr_out, chn, buffer, bufPos);\n\n /*********************************************************************\n * Calculate the energy and the tonality of each partition.\n *********************************************************************/\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n /* compute masking thresholds for short blocks */\n for (sblock = 0; sblock < 3; sblock++) {\n var enn, thmm;\n compute_masking_s(gfp, fftenergy_s, eb_s, thr, chn, sblock);\n convert_partition2scalefac_s(gfc, eb_s, thr, chn, sblock);\n /**** short block pre-echo control ****/\n for (sb = 0; sb < Encoder.SBMAX_s; sb++) {\n thmm = gfc.thm[chn].s[sb][sblock];\n\n thmm *= NS_PREECHO_ATT0;\n if (ns_attacks[sblock] >= 2 || ns_attacks[sblock + 1] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT1 * pcfact);\n thmm = Math.min(thmm, p);\n }\n\n if (ns_attacks[sblock] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n } else if ((sblock != 0 && ns_attacks[sblock - 1] == 3)\n || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {\n var idx = (sblock != 2) ? sblock + 1 : 0;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n }\n\n /* pulse like signal detection for fatboy.wav and so on */\n enn = en_subshort[sblock * 3 + 3]\n + en_subshort[sblock * 3 + 4]\n + en_subshort[sblock * 3 + 5];\n if (en_subshort[sblock * 3 + 5] * 6 < enn) {\n thmm *= 0.5;\n if (en_subshort[sblock * 3 + 4] * 6 < enn)\n thmm *= 0.5;\n }\n\n gfc.thm[chn].s[sb][sblock] = thmm;\n }\n }\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[2];\n\n /*********************************************************************\n * convolve the partitioned energy and unpredictability with the\n * spreading function, s3_l[b][k]\n ********************************************************************/\n k = 0;\n {\n for (b = 0; b < gfc.npart_l; b++) {\n /*\n * convolve the partitioned energy with the spreading\n * function\n */\n var kk = gfc.s3ind[b][0];\n var eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n var ecb = gfc.s3_ll[k++] * eb2;\n while (++kk <= gfc.s3ind[b][1]) {\n eb2 = eb_l[kk] * tab[mask_idx_l[kk]];\n ecb = mask_add(ecb, gfc.s3_ll[k++] * eb2, kk, kk - b,\n gfc, 0);\n }\n ecb *= 0.158489319246111;\n /* pow(10,-0.8) */\n\n /**** long block pre-echo control ****/\n /**\n * \n * dont use long block pre-echo control if previous granule was\n * a short block. This is to avoid the situation:\n * frame0: quiet (very low masking)\n * frame1: surge (triggers short blocks)\n * frame2: regular frame. looks like pre-echo when compared to\n * frame0, but all pre-echo was in frame1.\n *
\n */\n /*\n * chn=0,1 L and R channels\n *\n * chn=2,3 S and M channels.\n */\n\n if (gfc.blocktype_old[chn & 1] == Encoder.SHORT_TYPE)\n thr[b] = ecb;\n else\n thr[b] = NS_INTERP(\n Math.min(ecb, Math.min(rpelev\n * gfc.nb_1[chn][b], rpelev2\n * gfc.nb_2[chn][b])), ecb, pcfact);\n\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n }\n }\n for (; b <= Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n /* compute masking thresholds for long blocks */\n convert_partition2scalefac_l(gfc, eb_l, thr, chn);\n }\n /* end loop over chn */\n\n if (gfp.mode == MPEGMode.STEREO || gfp.mode == MPEGMode.JOINT_STEREO) {\n if (gfp.interChRatio > 0.0) {\n calc_interchannel_masking(gfp, gfp.interChRatio);\n }\n }\n\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n var msfix;\n msfix1(gfc);\n msfix = gfp.msfix;\n if (Math.abs(msfix) > 0.0)\n ns_msfix(gfc, msfix, gfp.ATHlower * gfc.ATH.adjust);\n }\n\n /***************************************************************\n * determine final block type\n ***************************************************************/\n block_type_set(gfp, uselongblock, blocktype_d, blocktype);\n\n /*********************************************************************\n * compute the value of PE to return ... no delay and advance\n *********************************************************************/\n for (chn = 0; chn < numchn; chn++) {\n var ppe;\n var ppePos = 0;\n var type;\n var mr;\n\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE\n || blocktype_d[1] == Encoder.SHORT_TYPE)\n type = Encoder.SHORT_TYPE;\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n\n if (type == Encoder.SHORT_TYPE)\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n else\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n\n if (gfp.analysis)\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n\n }\n return 0;\n }\n\n function vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out, fftenergy, wsamp_l, wsamp_lPos) {\n var gfc = gfp.internal_flags;\n if (chn < 2) {\n fft.fft_long(gfc, wsamp_l[wsamp_lPos], chn, buffer, bufPos);\n } else if (chn == 2) {\n /* FFT data for mid and side channel is derived from L & R */\n for (var j = Encoder.BLKSIZE - 1; j >= 0; --j) {\n var l = wsamp_l[wsamp_lPos + 0][j];\n var r = wsamp_l[wsamp_lPos + 1][j];\n wsamp_l[wsamp_lPos + 0][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_l[wsamp_lPos + 1][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n }\n\n /*********************************************************************\n * compute energies\n *********************************************************************/\n fftenergy[0] = NON_LINEAR_SCALE_ENERGY(wsamp_l[wsamp_lPos + 0][0]);\n fftenergy[0] *= fftenergy[0];\n\n for (var j = Encoder.BLKSIZE / 2 - 1; j >= 0; --j) {\n var re = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 - j];\n var im = wsamp_l[wsamp_lPos + 0][Encoder.BLKSIZE / 2 + j];\n fftenergy[Encoder.BLKSIZE / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n /* total energy */\n {\n var totalenergy = 0.0;\n for (var j = 11; j < Encoder.HBLKSIZE; j++)\n totalenergy += fftenergy[j];\n\n gfc.tot_ener[chn] = totalenergy;\n }\n\n if (gfp.analysis) {\n for (var j = 0; j < Encoder.HBLKSIZE; j++) {\n gfc.pinfo.energy[gr_out][chn][j] = gfc.pinfo.energy_save[chn][j];\n gfc.pinfo.energy_save[chn][j] = fftenergy[j];\n }\n gfc.pinfo.pe[gr_out][chn] = gfc.pe[chn];\n }\n }\n\n function vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock, fftenergy_s, wsamp_s, wsamp_sPos) {\n var gfc = gfp.internal_flags;\n\n if (sblock == 0 && chn < 2) {\n fft.fft_short(gfc, wsamp_s[wsamp_sPos], chn, buffer, bufPos);\n }\n if (chn == 2) {\n /* FFT data for mid and side channel is derived from L & R */\n for (var j = Encoder.BLKSIZE_s - 1; j >= 0; --j) {\n var l = wsamp_s[wsamp_sPos + 0][sblock][j];\n var r = wsamp_s[wsamp_sPos + 1][sblock][j];\n wsamp_s[wsamp_sPos + 0][sblock][j] = (l + r) * Util.SQRT2 * 0.5;\n wsamp_s[wsamp_sPos + 1][sblock][j] = (l - r) * Util.SQRT2 * 0.5;\n }\n }\n\n /*********************************************************************\n * compute energies\n *********************************************************************/\n fftenergy_s[sblock][0] = wsamp_s[wsamp_sPos + 0][sblock][0];\n fftenergy_s[sblock][0] *= fftenergy_s[sblock][0];\n for (var j = Encoder.BLKSIZE_s / 2 - 1; j >= 0; --j) {\n var re = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 - j];\n var im = wsamp_s[wsamp_sPos + 0][sblock][Encoder.BLKSIZE_s / 2 + j];\n fftenergy_s[sblock][Encoder.BLKSIZE_s / 2 - j] = NON_LINEAR_SCALE_ENERGY((re\n * re + im * im) * 0.5);\n }\n }\n\n /**\n * compute loudness approximation (used for ATH auto-level adjustment)\n */\n function vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn, fftenergy) {\n var gfc = gfp.internal_flags;\n if (gfp.athaa_loudapprox == 2 && chn < 2) {\n // no loudness for mid/side ch\n gfc.loudness_sq[gr_out][chn] = gfc.loudness_sq_save[chn];\n gfc.loudness_sq_save[chn] = psycho_loudness_approx(fftenergy, gfc);\n }\n }\n\n var fircoef_ = [-8.65163e-18 * 2,\n -0.00851586 * 2, -6.74764e-18 * 2, 0.0209036 * 2,\n -3.36639e-17 * 2, -0.0438162 * 2, -1.54175e-17 * 2,\n 0.0931738 * 2, -5.52212e-17 * 2, -0.313819 * 2];\n\n /**\n * Apply HPF of fs/4 to the input signal. This is used for attack detection\n * / handling.\n */\n function vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, energy, sub_short_factor, ns_attacks, uselongblock) {\n var ns_hpfsmpl = new_float_n([2, 576]);\n var gfc = gfp.internal_flags;\n var n_chn_out = gfc.channels_out;\n /* chn=2 and 3 = Mid and Side channels */\n var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4 : n_chn_out;\n /* Don't copy the input buffer into a temporary buffer */\n /* unroll the loop 2 times */\n for (var chn = 0; chn < n_chn_out; chn++) {\n /* apply high pass filter of fs/4 */\n firbuf = buffer[chn];\n var firbufPos = bufPos + 576 - 350 - NSFIRLEN + 192;\n assert(fircoef_.length == ((NSFIRLEN - 1) / 2));\n for (var i = 0; i < 576; i++) {\n var sum1, sum2;\n sum1 = firbuf[firbufPos + i + 10];\n sum2 = 0.0;\n for (var j = 0; j < ((NSFIRLEN - 1) / 2) - 1; j += 2) {\n sum1 += fircoef_[j]\n * (firbuf[firbufPos + i + j] + firbuf[firbufPos + i\n + NSFIRLEN - j]);\n sum2 += fircoef_[j + 1]\n * (firbuf[firbufPos + i + j + 1] + firbuf[firbufPos\n + i + NSFIRLEN - j - 1]);\n }\n ns_hpfsmpl[chn][i] = sum1 + sum2;\n }\n masking_ratio[gr_out][chn].en.assign(gfc.en[chn]);\n masking_ratio[gr_out][chn].thm.assign(gfc.thm[chn]);\n if (n_chn_psy > 2) {\n /* MS maskings */\n /* percep_MS_entropy [chn-2] = gfc . pe [chn]; */\n masking_MS_ratio[gr_out][chn].en.assign(gfc.en[chn + 2]);\n masking_MS_ratio[gr_out][chn].thm.assign(gfc.thm[chn + 2]);\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var attack_intensity = new_float(12);\n var en_subshort = new_float(12);\n var en_short = [0, 0, 0, 0];\n var pf = ns_hpfsmpl[chn & 1];\n var pfPos = 0;\n var attackThreshold = (chn == 3) ? gfc.nsPsy.attackthre_s\n : gfc.nsPsy.attackthre;\n var ns_uselongblock = 1;\n\n if (chn == 2) {\n for (var i = 0, j = 576; j > 0; ++i, --j) {\n var l = ns_hpfsmpl[0][i];\n var r = ns_hpfsmpl[1][i];\n ns_hpfsmpl[0][i] = l + r;\n ns_hpfsmpl[1][i] = l - r;\n }\n }\n /***************************************************************\n * determine the block type (window type)\n ***************************************************************/\n /* calculate energies of each sub-shortblocks */\n for (var i = 0; i < 3; i++) {\n en_subshort[i] = gfc.nsPsy.last_en_subshort[chn][i + 6];\n assert(gfc.nsPsy.last_en_subshort[chn][i + 4] > 0);\n attack_intensity[i] = en_subshort[i]\n / gfc.nsPsy.last_en_subshort[chn][i + 4];\n en_short[0] += en_subshort[i];\n }\n\n for (var i = 0; i < 9; i++) {\n var pfe = pfPos + 576 / 9;\n var p = 1.;\n for (; pfPos < pfe; pfPos++)\n if (p < Math.abs(pf[pfPos]))\n p = Math.abs(pf[pfPos]);\n\n gfc.nsPsy.last_en_subshort[chn][i] = en_subshort[i + 3] = p;\n en_short[1 + i / 3] += p;\n if (p > en_subshort[i + 3 - 2]) {\n assert(en_subshort[i + 3 - 2] > 0);\n p = p / en_subshort[i + 3 - 2];\n } else if (en_subshort[i + 3 - 2] > p * 10.0) {\n assert(p > 0);\n p = en_subshort[i + 3 - 2] / (p * 10.0);\n } else {\n p = 0.0;\n }\n attack_intensity[i + 3] = p;\n }\n /* pulse like signal detection for fatboy.wav and so on */\n for (var i = 0; i < 3; ++i) {\n var enn = en_subshort[i * 3 + 3]\n + en_subshort[i * 3 + 4] + en_subshort[i * 3 + 5];\n var factor = 1.;\n if (en_subshort[i * 3 + 5] * 6 < enn) {\n factor *= 0.5;\n if (en_subshort[i * 3 + 4] * 6 < enn) {\n factor *= 0.5;\n }\n }\n sub_short_factor[chn][i] = factor;\n }\n\n if (gfp.analysis) {\n var x = attack_intensity[0];\n for (var i = 1; i < 12; i++) {\n if (x < attack_intensity[i]) {\n x = attack_intensity[i];\n }\n }\n gfc.pinfo.ers[gr_out][chn] = gfc.pinfo.ers_save[chn];\n gfc.pinfo.ers_save[chn] = x;\n }\n\n /* compare energies between sub-shortblocks */\n for (var i = 0; i < 12; i++) {\n if (0 == ns_attacks[chn][i / 3]\n && attack_intensity[i] > attackThreshold) {\n ns_attacks[chn][i / 3] = (i % 3) + 1;\n }\n }\n\n /*\n * should have energy change between short blocks, in order to avoid\n * periodic signals\n */\n /* Good samples to show the effect are Trumpet test songs */\n /*\n * GB: tuned (1) to avoid too many short blocks for test sample\n * TRUMPET\n */\n /*\n * RH: tuned (2) to let enough short blocks through for test sample\n * FSOL and SNAPS\n */\n for (var i = 1; i < 4; i++) {\n var u = en_short[i - 1];\n var v = en_short[i];\n var m = Math.max(u, v);\n if (m < 40000) { /* (2) */\n if (u < 1.7 * v && v < 1.7 * u) { /* (1) */\n if (i == 1 && ns_attacks[chn][0] <= ns_attacks[chn][i]) {\n ns_attacks[chn][0] = 0;\n }\n ns_attacks[chn][i] = 0;\n }\n }\n }\n\n if (ns_attacks[chn][0] <= gfc.nsPsy.lastAttacks[chn]) {\n ns_attacks[chn][0] = 0;\n }\n\n if (gfc.nsPsy.lastAttacks[chn] == 3\n || (ns_attacks[chn][0] + ns_attacks[chn][1]\n + ns_attacks[chn][2] + ns_attacks[chn][3]) != 0) {\n ns_uselongblock = 0;\n\n if (ns_attacks[chn][1] != 0 && ns_attacks[chn][0] != 0) {\n ns_attacks[chn][1] = 0;\n }\n if (ns_attacks[chn][2] != 0 && ns_attacks[chn][1] != 0) {\n ns_attacks[chn][2] = 0;\n }\n if (ns_attacks[chn][3] != 0 && ns_attacks[chn][2] != 0) {\n ns_attacks[chn][3] = 0;\n }\n }\n if (chn < 2) {\n uselongblock[chn] = ns_uselongblock;\n } else {\n if (ns_uselongblock == 0) {\n uselongblock[0] = uselongblock[1] = 0;\n }\n }\n\n /*\n * there is a one granule delay. Copy maskings computed last call\n * into masking_ratio to return to calling program.\n */\n energy[chn] = gfc.tot_ener[chn];\n }\n }\n\n function vbrpsy_skip_masking_s(gfc, chn, sblock) {\n if (sblock == 0) {\n for (var b = 0; b < gfc.npart_s; b++) {\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = 0;\n }\n }\n }\n\n function vbrpsy_skip_masking_l(gfc, chn) {\n for (var b = 0; b < gfc.npart_l; b++) {\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = 0;\n }\n }\n\n function psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx) {\n var last_tab_entry = tab.length - 1;\n var b = 0;\n var a = avg[b] + avg[b + 1];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n\n for (b = 1; b < gfc.npart_s - 1; b++) {\n a = avg[b - 1] + avg[b] + avg[b + 1];\n assert(b + 1 < gfc.npart_s);\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n if (m < max[b + 1])\n m = max[b + 1];\n assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] + gfc.numlines_s[b + 1] - 1) > 0);\n a = 20.0\n * (m * 3.0 - a)\n / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b]\n + gfc.numlines_s[b + 1] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n }\n assert(b > 0);\n assert(b == gfc.npart_s - 1);\n\n a = avg[b - 1] + avg[b];\n assert(a >= 0);\n if (a > 0.0) {\n var m = max[b - 1];\n if (m < max[b])\n m = max[b];\n assert((gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1) > 0);\n a = 20.0 * (m * 2.0 - a)\n / (a * (gfc.numlines_s[b - 1] + gfc.numlines_s[b] - 1));\n var k = 0 | a;\n if (k > last_tab_entry)\n k = last_tab_entry;\n mask_idx[b] = k;\n } else {\n mask_idx[b] = 0;\n }\n assert(b == (gfc.npart_s - 1));\n }\n\n function vbrpsy_compute_masking_s(gfp, fftenergy_s, eb, thr, chn, sblock) {\n var gfc = gfp.internal_flags;\n var max = new float[Encoder.CBANDS], avg = new_float(Encoder.CBANDS);\n var i, j, b;\n var mask_idx_s = new int[Encoder.CBANDS];\n\n for (b = j = 0; b < gfc.npart_s; ++b) {\n var ebb = 0, m = 0;\n var n = gfc.numlines_s[b];\n for (i = 0; i < n; ++i, ++j) {\n var el = fftenergy_s[sblock][j];\n ebb += el;\n if (m < el)\n m = el;\n }\n eb[b] = ebb;\n assert(ebb >= 0);\n max[b] = m;\n assert(n > 0);\n avg[b] = ebb / n;\n assert(avg[b] >= 0);\n }\n assert(b == gfc.npart_s);\n assert(j == 129);\n for (; b < Encoder.CBANDS; ++b) {\n max[b] = 0;\n avg[b] = 0;\n }\n psyvbr_calc_mask_index_s(gfc, max, avg, mask_idx_s);\n for (j = b = 0; b < gfc.npart_s; b++) {\n var kk = gfc.s3ind_s[b][0];\n var last = gfc.s3ind_s[b][1];\n var dd, dd_n;\n var x, ecb, avg_mask;\n dd = mask_idx_s[kk];\n dd_n = 1;\n ecb = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ++j;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_s[kk];\n dd_n += 1;\n x = gfc.s3_ss[j] * eb[kk] * tab[mask_idx_s[kk]];\n ecb = vbrpsy_mask_add(ecb, x, kk - b);\n ++j;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n thr[b] = ecb;\n gfc.nb_s2[chn][b] = gfc.nb_s1[chn][b];\n gfc.nb_s1[chn][b] = ecb;\n {\n /*\n * if THR exceeds EB, the quantization routines will take the\n * difference from other bands. in case of strong tonal samples\n * (tonaltest.wav) this leads to heavy distortions. that's why\n * we limit THR here.\n */\n x = max[b];\n x *= gfc.minval_s[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb[b]) {\n thr[b] = eb[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n\n assert(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb[b] = 0;\n thr[b] = 0;\n }\n }\n\n function vbrpsy_compute_masking_l(gfc, fftenergy, eb_l, thr, chn) {\n var max = new_float(Encoder.CBANDS), avg = new_float(Encoder.CBANDS);\n var mask_idx_l = new_int(Encoder.CBANDS + 2);\n var b;\n\n /*********************************************************************\n * Calculate the energy and the tonality of each partition.\n *********************************************************************/\n calc_energy(gfc, fftenergy, eb_l, max, avg);\n calc_mask_index_l(gfc, max, avg, mask_idx_l);\n\n /*********************************************************************\n * convolve the partitioned energy and unpredictability with the\n * spreading function, s3_l[b][k]\n ********************************************************************/\n var k = 0;\n for (b = 0; b < gfc.npart_l; b++) {\n var x, ecb, avg_mask, t;\n /* convolve the partitioned energy with the spreading function */\n var kk = gfc.s3ind[b][0];\n var last = gfc.s3ind[b][1];\n var dd = 0, dd_n = 0;\n dd = mask_idx_l[kk];\n dd_n += 1;\n ecb = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n ++k;\n ++kk;\n while (kk <= last) {\n dd += mask_idx_l[kk];\n dd_n += 1;\n x = gfc.s3_ll[k] * eb_l[kk] * tab[mask_idx_l[kk]];\n t = vbrpsy_mask_add(ecb, x, kk - b);\n ecb = t;\n ++k;\n ++kk;\n }\n dd = (1 + 2 * dd) / (2 * dd_n);\n avg_mask = tab[dd] * 0.5;\n ecb *= avg_mask;\n\n /**** long block pre-echo control ****/\n /**\n * \n * dont use long block pre-echo control if previous granule was\n * a short block. This is to avoid the situation:\n * frame0: quiet (very low masking)\n * frame1: surge (triggers short blocks)\n * frame2: regular frame. looks like pre-echo when compared to\n * frame0, but all pre-echo was in frame1.\n *
\n */\n /*\n * chn=0,1 L and R channels chn=2,3 S and M channels.\n */\n if (gfc.blocktype_old[chn & 0x01] == Encoder.SHORT_TYPE) {\n var ecb_limit = rpelev * gfc.nb_1[chn][b];\n if (ecb_limit > 0) {\n thr[b] = Math.min(ecb, ecb_limit);\n } else {\n /**\n * \n * Robert 071209:\n * Because we don't calculate long block psy when we know a granule\n * should be of short blocks, we don't have any clue how the granule\n * before would have looked like as a long block. So we have to guess\n * a little bit for this END_TYPE block.\n * Most of the time we get away with this sloppyness. (fingers crossed :)\n * The speed increase is worth it.\n *
\n */\n thr[b] = Math.min(ecb, eb_l[b] * NS_PREECHO_ATT2);\n }\n } else {\n var ecb_limit_2 = rpelev2 * gfc.nb_2[chn][b];\n var ecb_limit_1 = rpelev * gfc.nb_1[chn][b];\n var ecb_limit;\n if (ecb_limit_2 <= 0) {\n ecb_limit_2 = ecb;\n }\n if (ecb_limit_1 <= 0) {\n ecb_limit_1 = ecb;\n }\n if (gfc.blocktype_old[chn & 0x01] == Encoder.NORM_TYPE) {\n ecb_limit = Math.min(ecb_limit_1, ecb_limit_2);\n } else {\n ecb_limit = ecb_limit_1;\n }\n thr[b] = Math.min(ecb, ecb_limit);\n }\n gfc.nb_2[chn][b] = gfc.nb_1[chn][b];\n gfc.nb_1[chn][b] = ecb;\n {\n /*\n * if THR exceeds EB, the quantization routines will take the\n * difference from other bands. in case of strong tonal samples\n * (tonaltest.wav) this leads to heavy distortions. that's why\n * we limit THR here.\n */\n x = max[b];\n x *= gfc.minval_l[b];\n x *= avg_mask;\n if (thr[b] > x) {\n thr[b] = x;\n }\n }\n if (gfc.masking_lower > 1) {\n thr[b] *= gfc.masking_lower;\n }\n if (thr[b] > eb_l[b]) {\n thr[b] = eb_l[b];\n }\n if (gfc.masking_lower < 1) {\n thr[b] *= gfc.masking_lower;\n }\n assert(thr[b] >= 0);\n }\n for (; b < Encoder.CBANDS; ++b) {\n eb_l[b] = 0;\n thr[b] = 0;\n }\n }\n\n function vbrpsy_compute_block_type(gfp, uselongblock) {\n var gfc = gfp.internal_flags;\n\n if (gfp.short_blocks == ShortBlock.short_block_coupled\n /* force both channels to use the same block type */\n /* this is necessary if the frame is to be encoded in ms_stereo. */\n /* But even without ms_stereo, FhG does this */\n && !(uselongblock[0] != 0 && uselongblock[1] != 0))\n uselongblock[0] = uselongblock[1] = 0;\n\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n /* disable short blocks */\n if (gfp.short_blocks == ShortBlock.short_block_dispensed) {\n uselongblock[chn] = 1;\n }\n if (gfp.short_blocks == ShortBlock.short_block_forced) {\n uselongblock[chn] = 0;\n }\n }\n }\n\n function vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d) {\n var gfc = gfp.internal_flags;\n\n /*\n * update the blocktype of the previous granule, since it depends on\n * what happend in this granule\n */\n for (var chn = 0; chn < gfc.channels_out; chn++) {\n var blocktype = Encoder.NORM_TYPE;\n /* disable short blocks */\n\n if (uselongblock[chn] != 0) {\n /* no attack : use long blocks */\n assert(gfc.blocktype_old[chn] != Encoder.START_TYPE);\n if (gfc.blocktype_old[chn] == Encoder.SHORT_TYPE)\n blocktype = Encoder.STOP_TYPE;\n } else {\n /* attack : use short blocks */\n blocktype = Encoder.SHORT_TYPE;\n if (gfc.blocktype_old[chn] == Encoder.NORM_TYPE) {\n gfc.blocktype_old[chn] = Encoder.START_TYPE;\n }\n if (gfc.blocktype_old[chn] == Encoder.STOP_TYPE)\n gfc.blocktype_old[chn] = Encoder.SHORT_TYPE;\n }\n\n blocktype_d[chn] = gfc.blocktype_old[chn];\n // value returned to calling program\n gfc.blocktype_old[chn] = blocktype;\n // save for next call to l3psy_anal\n }\n }\n\n /**\n * compute M/S thresholds from Johnston & Ferreira 1992 ICASSP paper\n */\n function vbrpsy_compute_MS_thresholds(eb, thr, cb_mld, ath_cb, athadjust, msfix, n) {\n var msfix2 = msfix * 2;\n var athlower = msfix > 0 ? Math.pow(10, athadjust) : 1;\n var rside, rmid;\n for (var b = 0; b < n; ++b) {\n var ebM = eb[2][b];\n var ebS = eb[3][b];\n var thmL = thr[0][b];\n var thmR = thr[1][b];\n var thmM = thr[2][b];\n var thmS = thr[3][b];\n\n /* use this fix if L & R masking differs by 2db or less */\n if (thmL <= 1.58 * thmR && thmR <= 1.58 * thmL) {\n var mld_m = cb_mld[b] * ebS;\n var mld_s = cb_mld[b] * ebM;\n rmid = Math.max(thmM, Math.min(thmS, mld_m));\n rside = Math.max(thmS, Math.min(thmM, mld_s));\n } else {\n rmid = thmM;\n rside = thmS;\n }\n if (msfix > 0) {\n /***************************************************************/\n /* Adjust M/S maskings if user set \"msfix\" */\n /***************************************************************/\n /* Naoki Shibata 2000 */\n var thmLR, thmMS;\n var ath = ath_cb[b] * athlower;\n thmLR = Math.min(Math.max(thmL, ath), Math.max(thmR, ath));\n thmM = Math.max(rmid, ath);\n thmS = Math.max(rside, ath);\n thmMS = thmM + thmS;\n if (thmMS > 0 && (thmLR * msfix2) < thmMS) {\n var f = thmLR * msfix2 / thmMS;\n thmM *= f;\n thmS *= f;\n assert(thmMS > 0);\n }\n rmid = Math.min(thmM, rmid);\n rside = Math.min(thmS, rside);\n }\n if (rmid > ebM) {\n rmid = ebM;\n }\n if (rside > ebS) {\n rside = ebS;\n }\n thr[2][b] = rmid;\n thr[3][b] = rside;\n }\n }\n\n this.L3psycho_anal_vbr = function (gfp, buffer, bufPos, gr_out, masking_ratio, masking_MS_ratio, percep_entropy, percep_MS_entropy, energy, blocktype_d) {\n var gfc = gfp.internal_flags;\n\n /* fft and energy calculation */\n var wsamp_l;\n var wsamp_s;\n var fftenergy = new_float(Encoder.HBLKSIZE);\n var fftenergy_s = new_float_n([3, Encoder.HBLKSIZE_s]);\n var wsamp_L = new_float_n([2, Encoder.BLKSIZE]);\n var wsamp_S = new_float_n([2, 3, Encoder.BLKSIZE_s]);\n var eb = new_float_n([4, Encoder.CBANDS]), thr = new_float_n([4, Encoder.CBANDS]);\n var sub_short_factor = new_float_n([4, 3]);\n var pcfact = 0.6;\n\n /* block type */\n var ns_attacks = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0],\n [0, 0, 0, 0]];\n var uselongblock = new_int(2);\n\n /* usual variables like loop indices, etc.. */\n\n /* chn=2 and 3 = Mid and Side channels */\n var n_chn_psy = (gfp.mode == MPEGMode.JOINT_STEREO) ? 4\n : gfc.channels_out;\n\n vbrpsy_attack_detection(gfp, buffer, bufPos, gr_out, masking_ratio,\n masking_MS_ratio, energy, sub_short_factor, ns_attacks,\n uselongblock);\n\n vbrpsy_compute_block_type(gfp, uselongblock);\n\n /* LONG BLOCK CASE */\n {\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 0x01;\n wsamp_l = wsamp_L;\n vbrpsy_compute_fft_l(gfp, buffer, bufPos, chn, gr_out,\n fftenergy, wsamp_l, ch01);\n\n vbrpsy_compute_loudness_approximation_l(gfp, gr_out, chn,\n fftenergy);\n\n if (uselongblock[ch01] != 0) {\n vbrpsy_compute_masking_l(gfc, fftenergy, eb[chn], thr[chn],\n chn);\n } else {\n vbrpsy_skip_masking_l(gfc, chn);\n }\n }\n if ((uselongblock[0] + uselongblock[1]) == 2) {\n /* M/S channel */\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_l,\n gfc.ATH.cb_l, gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix, gfc.npart_l);\n }\n }\n /* TODO: apply adaptive ATH masking here ?? */\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 0x01;\n if (uselongblock[ch01] != 0) {\n convert_partition2scalefac_l(gfc, eb[chn], thr[chn], chn);\n }\n }\n }\n\n /* SHORT BLOCKS CASE */\n {\n for (var sblock = 0; sblock < 3; sblock++) {\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 0x01;\n\n if (uselongblock[ch01] != 0) {\n vbrpsy_skip_masking_s(gfc, chn, sblock);\n } else {\n /* compute masking thresholds for short blocks */\n wsamp_s = wsamp_S;\n vbrpsy_compute_fft_s(gfp, buffer, bufPos, chn, sblock,\n fftenergy_s, wsamp_s, ch01);\n vbrpsy_compute_masking_s(gfp, fftenergy_s, eb[chn],\n thr[chn], chn, sblock);\n }\n }\n if ((uselongblock[0] + uselongblock[1]) == 0) {\n /* M/S channel */\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n vbrpsy_compute_MS_thresholds(eb, thr, gfc.mld_cb_s,\n gfc.ATH.cb_s, gfp.ATHlower * gfc.ATH.adjust,\n gfp.msfix, gfc.npart_s);\n }\n /* L/R channel */\n }\n /* TODO: apply adaptive ATH masking here ?? */\n for (var chn = 0; chn < n_chn_psy; ++chn) {\n var ch01 = chn & 0x01;\n if (0 == uselongblock[ch01]) {\n convert_partition2scalefac_s(gfc, eb[chn], thr[chn],\n chn, sblock);\n }\n }\n }\n\n /**** short block pre-echo control ****/\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ch01 = chn & 0x01;\n\n if (uselongblock[ch01] != 0) {\n continue;\n }\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n var new_thmm = new_float(3);\n for (var sblock = 0; sblock < 3; sblock++) {\n var thmm = gfc.thm[chn].s[sb][sblock];\n thmm *= NS_PREECHO_ATT0;\n\n if (ns_attacks[chn][sblock] >= 2\n || ns_attacks[chn][sblock + 1] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT1 * pcfact);\n thmm = Math.min(thmm, p);\n } else if (ns_attacks[chn][sblock] == 1) {\n var idx = (sblock != 0) ? sblock - 1 : 2;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n } else if ((sblock != 0 && ns_attacks[chn][sblock - 1] == 3)\n || (sblock == 0 && gfc.nsPsy.lastAttacks[chn] == 3)) {\n var idx = (sblock != 2) ? sblock + 1 : 0;\n var p = NS_INTERP(gfc.thm[chn].s[sb][idx], thmm,\n NS_PREECHO_ATT2 * pcfact);\n thmm = Math.min(thmm, p);\n }\n\n /* pulse like signal detection for fatboy.wav and so on */\n thmm *= sub_short_factor[chn][sblock];\n\n new_thmm[sblock] = thmm;\n }\n for (var sblock = 0; sblock < 3; sblock++) {\n gfc.thm[chn].s[sb][sblock] = new_thmm[sblock];\n }\n }\n }\n }\n for (var chn = 0; chn < n_chn_psy; chn++) {\n gfc.nsPsy.lastAttacks[chn] = ns_attacks[chn][2];\n }\n\n /***************************************************************\n * determine final block type\n ***************************************************************/\n vbrpsy_apply_block_type(gfp, uselongblock, blocktype_d);\n\n /*********************************************************************\n * compute the value of PE to return ... no delay and advance\n *********************************************************************/\n for (var chn = 0; chn < n_chn_psy; chn++) {\n var ppe;\n var ppePos;\n var type;\n var mr;\n\n if (chn > 1) {\n ppe = percep_MS_entropy;\n ppePos = -2;\n type = Encoder.NORM_TYPE;\n if (blocktype_d[0] == Encoder.SHORT_TYPE\n || blocktype_d[1] == Encoder.SHORT_TYPE)\n type = Encoder.SHORT_TYPE;\n mr = masking_MS_ratio[gr_out][chn - 2];\n } else {\n ppe = percep_entropy;\n ppePos = 0;\n type = blocktype_d[chn];\n mr = masking_ratio[gr_out][chn];\n }\n\n if (type == Encoder.SHORT_TYPE) {\n ppe[ppePos + chn] = pecalc_s(mr, gfc.masking_lower);\n } else {\n ppe[ppePos + chn] = pecalc_l(mr, gfc.masking_lower);\n }\n\n if (gfp.analysis) {\n gfc.pinfo.pe[gr_out][chn] = ppe[ppePos + chn];\n }\n }\n return 0;\n }\n\n function s3_func_x(bark, hf_slope) {\n var tempx = bark, tempy;\n\n if (tempx >= 0) {\n tempy = -tempx * 27;\n } else {\n tempy = tempx * hf_slope;\n }\n if (tempy <= -72.0) {\n return 0;\n }\n return Math.exp(tempy * LN_TO_LOG10);\n }\n\n function norm_s3_func_x(hf_slope) {\n var lim_a = 0, lim_b = 0;\n {\n var x = 0, l, h;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x -= 1)\n ;\n l = x;\n h = 0;\n while (Math.abs(h - l) > 1e-12) {\n x = (h + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n h = x;\n } else {\n l = x;\n }\n }\n lim_a = l;\n }\n {\n var x = 0, l, h;\n for (x = 0; s3_func_x(x, hf_slope) > 1e-20; x += 1)\n ;\n l = 0;\n h = x;\n while (Math.abs(h - l) > 1e-12) {\n x = (h + l) / 2;\n if (s3_func_x(x, hf_slope) > 0) {\n l = x;\n } else {\n h = x;\n }\n }\n lim_b = h;\n }\n {\n var sum = 0;\n var m = 1000;\n var i;\n for (i = 0; i <= m; ++i) {\n var x = lim_a + i * (lim_b - lim_a) / m;\n var y = s3_func_x(x, hf_slope);\n sum += y;\n }\n {\n var norm = (m + 1) / (sum * (lim_b - lim_a));\n /* printf( \"norm = %lf\\n\",norm); */\n return norm;\n }\n }\n }\n\n /**\n * The spreading function. Values returned in units of energy\n */\n function s3_func(bark) {\n var tempx, x, tempy, temp;\n tempx = bark;\n if (tempx >= 0)\n tempx *= 3;\n else\n tempx *= 1.5;\n\n if (tempx >= 0.5 && tempx <= 2.5) {\n temp = tempx - 0.5;\n x = 8.0 * (temp * temp - 2.0 * temp);\n } else\n x = 0.0;\n tempx += 0.474;\n tempy = 15.811389 + 7.5 * tempx - 17.5\n * Math.sqrt(1.0 + tempx * tempx);\n\n if (tempy <= -60.0)\n return 0.0;\n\n tempx = Math.exp((x + tempy) * LN_TO_LOG10);\n\n /**\n * \n * Normalization. The spreading function should be normalized so that:\n * +inf\n * /\n * | s3 [ bark ] d(bark) = 1\n * /\n * -inf\n *
\n */\n tempx /= .6609193;\n return tempx;\n }\n\n /**\n * see for example \"Zwicker: Psychoakustik, 1982; ISBN 3-540-11401-7\n */\n function freq2bark(freq) {\n /* input: freq in hz output: barks */\n if (freq < 0)\n freq = 0;\n freq = freq * 0.001;\n return 13.0 * Math.atan(.76 * freq) + 3.5\n * Math.atan(freq * freq / (7.5 * 7.5));\n }\n\n function init_numline(numlines, bo, bm, bval, bval_width, mld, bo_w, sfreq, blksize, scalepos, deltafreq, sbmax) {\n var b_frq = new_float(Encoder.CBANDS + 1);\n var sample_freq_frac = sfreq / (sbmax > 15 ? 2 * 576 : 2 * 192);\n var partition = new_int(Encoder.HBLKSIZE);\n var i;\n sfreq /= blksize;\n var j = 0;\n var ni = 0;\n /* compute numlines, the number of spectral lines in each partition band */\n /* each partition band should be about DELBARK wide. */\n for (i = 0; i < Encoder.CBANDS; i++) {\n var bark1;\n var j2;\n bark1 = freq2bark(sfreq * j);\n\n b_frq[i] = sfreq * j;\n\n for (j2 = j; freq2bark(sfreq * j2) - bark1 < DELBARK\n && j2 <= blksize / 2; j2++)\n ;\n\n numlines[i] = j2 - j;\n ni = i + 1;\n\n while (j < j2) {\n assert(j < Encoder.HBLKSIZE);\n partition[j++] = i;\n }\n if (j > blksize / 2) {\n j = blksize / 2;\n ++i;\n break;\n }\n }\n assert(i < Encoder.CBANDS);\n b_frq[i] = sfreq * j;\n\n for (var sfb = 0; sfb < sbmax; sfb++) {\n var i1, i2, start, end;\n var arg;\n start = scalepos[sfb];\n end = scalepos[sfb + 1];\n\n i1 = 0 | Math.floor(.5 + deltafreq * (start - .5));\n if (i1 < 0)\n i1 = 0;\n i2 = 0 | Math.floor(.5 + deltafreq * (end - .5));\n\n if (i2 > blksize / 2)\n i2 = blksize / 2;\n\n bm[sfb] = (partition[i1] + partition[i2]) / 2;\n bo[sfb] = partition[i2];\n var f_tmp = sample_freq_frac * end;\n /*\n * calculate how much of this band belongs to current scalefactor\n * band\n */\n bo_w[sfb] = (f_tmp - b_frq[bo[sfb]])\n / (b_frq[bo[sfb] + 1] - b_frq[bo[sfb]]);\n if (bo_w[sfb] < 0) {\n bo_w[sfb] = 0;\n } else {\n if (bo_w[sfb] > 1) {\n bo_w[sfb] = 1;\n }\n }\n /* setup stereo demasking thresholds */\n /* formula reverse enginerred from plot in paper */\n arg = freq2bark(sfreq * scalepos[sfb] * deltafreq);\n arg = ( Math.min(arg, 15.5) / 15.5);\n\n mld[sfb] = Math.pow(10.0,\n 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n\n /* compute bark values of each critical band */\n j = 0;\n for (var k = 0; k < ni; k++) {\n var w = numlines[k];\n var bark1, bark2;\n\n bark1 = freq2bark(sfreq * (j));\n bark2 = freq2bark(sfreq * (j + w - 1));\n bval[k] = .5 * (bark1 + bark2);\n\n bark1 = freq2bark(sfreq * (j - .5));\n bark2 = freq2bark(sfreq * (j + w - .5));\n bval_width[k] = bark2 - bark1;\n j += w;\n }\n\n return ni;\n }\n\n function init_s3_values(s3ind, npart, bval, bval_width, norm, use_old_s3) {\n var s3 = new_float_n([Encoder.CBANDS, Encoder.CBANDS]);\n /*\n * The s3 array is not linear in the bark scale.\n *\n * bval[x] should be used to get the bark value.\n */\n var j;\n var numberOfNoneZero = 0;\n\n /**\n * \n * s[i][j], the value of the spreading function,\n * centered at band j (masker), for band i (maskee)\n *\n * i.e.: sum over j to spread into signal barkval=i\n * NOTE: i and j are used opposite as in the ISO docs\n *
\n */\n if (use_old_s3) {\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n var v = s3_func(bval[i] - bval[j]) * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n } else {\n for (j = 0; j < npart; j++) {\n var hf_slope = 15 + Math.min(21 / bval[j], 12);\n var s3_x_norm = norm_s3_func_x(hf_slope);\n for (var i = 0; i < npart; i++) {\n var v = s3_x_norm\n * s3_func_x(bval[i] - bval[j], hf_slope)\n * bval_width[j];\n s3[i][j] = v * norm[i];\n }\n }\n }\n for (var i = 0; i < npart; i++) {\n for (j = 0; j < npart; j++) {\n if (s3[i][j] > 0.0)\n break;\n }\n s3ind[i][0] = j;\n\n for (j = npart - 1; j > 0; j--) {\n if (s3[i][j] > 0.0)\n break;\n }\n s3ind[i][1] = j;\n numberOfNoneZero += (s3ind[i][1] - s3ind[i][0] + 1);\n }\n\n var p = new_float(numberOfNoneZero);\n var k = 0;\n for (var i = 0; i < npart; i++)\n for (j = s3ind[i][0]; j <= s3ind[i][1]; j++)\n p[k++] = s3[i][j];\n\n return p;\n }\n\n function stereo_demask(f) {\n /* setup stereo demasking thresholds */\n /* formula reverse enginerred from plot in paper */\n var arg = freq2bark(f);\n arg = (Math.min(arg, 15.5) / 15.5);\n\n return Math.pow(10.0,\n 1.25 * (1 - Math.cos(Math.PI * arg)) - 2.5);\n }\n\n /**\n * NOTE: the bitrate reduction from the inter-channel masking effect is low\n * compared to the chance of getting annyoing artefacts. L3psycho_anal_vbr\n * does not use this feature. (Robert 071216)\n */\n this.psymodel_init = function (gfp) {\n var gfc = gfp.internal_flags;\n var i;\n var useOldS3 = true;\n var bvl_a = 13, bvl_b = 24;\n var snr_l_a = 0, snr_l_b = 0;\n var snr_s_a = -8.25, snr_s_b = -4.5;\n var bval = new_float(Encoder.CBANDS);\n var bval_width = new_float(Encoder.CBANDS);\n var norm = new_float(Encoder.CBANDS);\n var sfreq = gfp.out_samplerate;\n\n switch (gfp.experimentalZ) {\n default:\n case 0:\n useOldS3 = true;\n break;\n case 1:\n useOldS3 = (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) ? false\n : true;\n break;\n case 2:\n useOldS3 = false;\n break;\n case 3:\n bvl_a = 8;\n snr_l_a = -1.75;\n snr_l_b = -0.0125;\n snr_s_a = -8.25;\n snr_s_b = -2.25;\n break;\n }\n gfc.ms_ener_ratio_old = .25;\n gfc.blocktype_old[0] = gfc.blocktype_old[1] = Encoder.NORM_TYPE;\n // the vbr header is long blocks\n\n for (i = 0; i < 4; ++i) {\n for (var j = 0; j < Encoder.CBANDS; ++j) {\n gfc.nb_1[i][j] = 1e20;\n gfc.nb_2[i][j] = 1e20;\n gfc.nb_s1[i][j] = gfc.nb_s2[i][j] = 1.0;\n }\n for (var sb = 0; sb < Encoder.SBMAX_l; sb++) {\n gfc.en[i].l[sb] = 1e20;\n gfc.thm[i].l[sb] = 1e20;\n }\n for (var j = 0; j < 3; ++j) {\n for (var sb = 0; sb < Encoder.SBMAX_s; sb++) {\n gfc.en[i].s[sb][j] = 1e20;\n gfc.thm[i].s[sb][j] = 1e20;\n }\n gfc.nsPsy.lastAttacks[i] = 0;\n }\n for (var j = 0; j < 9; j++)\n gfc.nsPsy.last_en_subshort[i][j] = 10.;\n }\n\n /* init. for loudness approx. -jd 2001 mar 27 */\n gfc.loudness_sq_save[0] = gfc.loudness_sq_save[1] = 0.0;\n\n /*************************************************************************\n * now compute the psychoacoustic model specific constants\n ************************************************************************/\n /* compute numlines, bo, bm, bval, bval_width, mld */\n\n gfc.npart_l = init_numline(gfc.numlines_l, gfc.bo_l, gfc.bm_l, bval,\n bval_width, gfc.mld_l, gfc.PSY.bo_l_weight, sfreq,\n Encoder.BLKSIZE, gfc.scalefac_band.l, Encoder.BLKSIZE\n / (2.0 * 576), Encoder.SBMAX_l);\n assert(gfc.npart_l < Encoder.CBANDS);\n /* compute the spreading function */\n for (i = 0; i < gfc.npart_l; i++) {\n var snr = snr_l_a;\n if (bval[i] >= bvl_a) {\n snr = snr_l_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_l_a\n * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10.0, snr / 10.0);\n if (gfc.numlines_l[i] > 0) {\n gfc.rnumlines_l[i] = 1.0 / gfc.numlines_l[i];\n } else {\n gfc.rnumlines_l[i] = 0;\n }\n }\n gfc.s3_ll = init_s3_values(gfc.s3ind, gfc.npart_l, bval, bval_width,\n norm, useOldS3);\n\n /* compute long block specific values, ATH and MINVAL */\n var j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var x;\n\n /* ATH */\n x = Float.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_l[i]; k++, j++) {\n var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE);\n var level;\n /*\n * ATH below 100 Hz constant, not further climbing\n */\n level = this.ATHformula(freq * 1000, gfp) - 20;\n // scale to FFT units; returned value is in dB\n level = Math.pow(10., 0.1 * level);\n // convert from dB . energy\n level *= gfc.numlines_l[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_l[i] = x;\n\n /*\n * MINVAL. For low freq, the strength of the masking is limited by\n * minval this is an ISO MPEG1 thing, dont know if it is really\n * needed\n */\n /*\n * FIXME: it does work to reduce low-freq problems in S53-Wind-Sax\n * and lead-voice samples, but introduces some 3 kbps bit bloat too.\n * TODO: Further refinement of the shape of this hack.\n */\n x = -20 + bval[i] * 20 / 10;\n if (x > 6) {\n x = 100;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8.;\n gfc.minval_l[i] = (Math.pow(10.0, x / 10.) * gfc.numlines_l[i]);\n }\n\n /************************************************************************\n * do the same things for short blocks\n ************************************************************************/\n gfc.npart_s = init_numline(gfc.numlines_s, gfc.bo_s, gfc.bm_s, bval,\n bval_width, gfc.mld_s, gfc.PSY.bo_s_weight, sfreq,\n Encoder.BLKSIZE_s, gfc.scalefac_band.s, Encoder.BLKSIZE_s\n / (2.0 * 192), Encoder.SBMAX_s);\n assert(gfc.npart_s < Encoder.CBANDS);\n\n /* SNR formula. short block is normalized by SNR. is it still right ? */\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var x;\n var snr = snr_s_a;\n if (bval[i] >= bvl_a) {\n snr = snr_s_b * (bval[i] - bvl_a) / (bvl_b - bvl_a) + snr_s_a\n * (bvl_b - bval[i]) / (bvl_b - bvl_a);\n }\n norm[i] = Math.pow(10.0, snr / 10.0);\n\n /* ATH */\n x = Float.MAX_VALUE;\n for (var k = 0; k < gfc.numlines_s[i]; k++, j++) {\n var freq = sfreq * j / (1000.0 * Encoder.BLKSIZE_s);\n var level;\n /* freq = Min(.1,freq); */\n /*\n * ATH below 100 Hz constant, not\n * further climbing\n */\n level = this.ATHformula(freq * 1000, gfp) - 20;\n // scale to FFT units; returned value is in dB\n level = Math.pow(10., 0.1 * level);\n // convert from dB . energy\n level *= gfc.numlines_s[i];\n if (x > level)\n x = level;\n }\n gfc.ATH.cb_s[i] = x;\n\n /*\n * MINVAL. For low freq, the strength of the masking is limited by\n * minval this is an ISO MPEG1 thing, dont know if it is really\n * needed\n */\n x = (-7.0 + bval[i] * 7.0 / 12.0);\n if (bval[i] > 12) {\n x *= 1 + Math.log(1 + x) * 3.1;\n }\n if (bval[i] < 12) {\n x *= 1 + Math.log(1 - x) * 2.3;\n }\n if (x < -15) {\n x = -15;\n }\n x -= 8;\n gfc.minval_s[i] = Math.pow(10.0, x / 10)\n * gfc.numlines_s[i];\n }\n\n gfc.s3_ss = init_s3_values(gfc.s3ind_s, gfc.npart_s, bval, bval_width,\n norm, useOldS3);\n\n init_mask_add_max_values();\n fft.init_fft(gfc);\n\n /* setup temporal masking */\n gfc.decay = Math.exp(-1.0 * LOG10\n / (temporalmask_sustain_sec * sfreq / 192.0));\n\n {\n var msfix;\n msfix = NS_MSFIX;\n if ((gfp.exp_nspsytune & 2) != 0)\n msfix = 1.0;\n if (Math.abs(gfp.msfix) > 0.0)\n msfix = gfp.msfix;\n gfp.msfix = msfix;\n\n /*\n * spread only from npart_l bands. Normally, we use the spreading\n * function to convolve from npart_l down to npart_l bands\n */\n for (var b = 0; b < gfc.npart_l; b++)\n if (gfc.s3ind[b][1] > gfc.npart_l - 1)\n gfc.s3ind[b][1] = gfc.npart_l - 1;\n }\n\n /*\n * prepare for ATH auto adjustment: we want to decrease the ATH by 12 dB\n * per second\n */\n var frame_duration = (576. * gfc.mode_gr / sfreq);\n gfc.ATH.decay = Math.pow(10., -12. / 10. * frame_duration);\n gfc.ATH.adjust = 0.01;\n /* minimum, for leading low loudness */\n gfc.ATH.adjustLimit = 1.0;\n /* on lead, allow adjust up to maximum */\n\n assert(gfc.bo_l[Encoder.SBMAX_l - 1] <= gfc.npart_l);\n assert(gfc.bo_s[Encoder.SBMAX_s - 1] <= gfc.npart_s);\n\n if (gfp.ATHtype != -1) {\n /* compute equal loudness weights (eql_w) */\n var freq;\n var freq_inc = gfp.out_samplerate\n / (Encoder.BLKSIZE);\n var eql_balance = 0.0;\n freq = 0.0;\n for (i = 0; i < Encoder.BLKSIZE / 2; ++i) {\n /* convert ATH dB to relative power (not dB) */\n /* to determine eql_w */\n freq += freq_inc;\n gfc.ATH.eql_w[i] = 1. / Math.pow(10, this.ATHformula(freq, gfp) / 10);\n eql_balance += gfc.ATH.eql_w[i];\n }\n eql_balance = 1.0 / eql_balance;\n for (i = Encoder.BLKSIZE / 2; --i >= 0;) { /* scale weights */\n gfc.ATH.eql_w[i] *= eql_balance;\n }\n }\n {\n for (var b = j = 0; b < gfc.npart_s; ++b) {\n for (i = 0; i < gfc.numlines_s[b]; ++i) {\n ++j;\n }\n }\n assert(j == 129);\n for (var b = j = 0; b < gfc.npart_l; ++b) {\n for (i = 0; i < gfc.numlines_l[b]; ++i) {\n ++j;\n }\n }\n assert(j == 513);\n }\n j = 0;\n for (i = 0; i < gfc.npart_l; i++) {\n var freq = sfreq * (j + gfc.numlines_l[i] / 2) / (1.0 * Encoder.BLKSIZE);\n gfc.mld_cb_l[i] = stereo_demask(freq);\n j += gfc.numlines_l[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_l[i] = 1;\n }\n j = 0;\n for (i = 0; i < gfc.npart_s; i++) {\n var freq = sfreq * (j + gfc.numlines_s[i] / 2) / (1.0 * Encoder.BLKSIZE_s);\n gfc.mld_cb_s[i] = stereo_demask(freq);\n j += gfc.numlines_s[i];\n }\n for (; i < Encoder.CBANDS; ++i) {\n gfc.mld_cb_s[i] = 1;\n }\n return 0;\n }\n\n /**\n * Those ATH formulas are returning their minimum value for input = -1\n */\n function ATHformula_GB(f, value) {\n /**\n * \n * from Painter & Spanias\n * modified by Gabriel Bouvigne to better fit the reality\n * ath = 3.640 * pow(f,-0.8)\n * - 6.800 * exp(-0.6*pow(f-3.4,2.0))\n * + 6.000 * exp(-0.15*pow(f-8.7,2.0))\n * + 0.6* 0.001 * pow(f,4.0);\n *\n *\n * In the past LAME was using the Painter &Spanias formula.\n * But we had some recurrent problems with HF content.\n * We measured real ATH values, and found the older formula\n * to be inaccurate in the higher part. So we made this new\n * formula and this solved most of HF problematic test cases.\n * The tradeoff is that in VBR mode it increases a lot the\n * bitrate.\n *
\n */\n\n /*\n * This curve can be adjusted according to the VBR scale: it adjusts\n * from something close to Painter & Spanias on V9 up to Bouvigne's\n * formula for V0. This way the VBR bitrate is more balanced according\n * to the -V value.\n */\n\n // the following Hack allows to ask for the lowest value\n if (f < -.3)\n f = 3410;\n\n // convert to khz\n f /= 1000;\n f = Math.max(0.1, f);\n var ath = 3.640 * Math.pow(f, -0.8) - 6.800\n * Math.exp(-0.6 * Math.pow(f - 3.4, 2.0)) + 6.000\n * Math.exp(-0.15 * Math.pow(f - 8.7, 2.0))\n + (0.6 + 0.04 * value) * 0.001 * Math.pow(f, 4.0);\n return ath;\n }\n\n this.ATHformula = function (f, gfp) {\n var ath;\n switch (gfp.ATHtype) {\n case 0:\n ath = ATHformula_GB(f, 9);\n break;\n case 1:\n // over sensitive, should probably be removed\n ath = ATHformula_GB(f, -1);\n break;\n case 2:\n ath = ATHformula_GB(f, 0);\n break;\n case 3:\n // modification of GB formula by Roel\n ath = ATHformula_GB(f, 1) + 6;\n break;\n case 4:\n ath = ATHformula_GB(f, gfp.ATHcurve);\n break;\n default:\n ath = ATHformula_GB(f, 0);\n break;\n }\n return ath;\n }\n\n}\n\nmodule.exports = PsyModel;\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar GrInfo = require('./GrInfo.js');\n\nfunction IIISideInfo() {\n this.tt = [[null, null], [null, null]];\n this.main_data_begin = 0;\n this.private_bits = 0;\n this.resvDrain_pre = 0;\n this.resvDrain_post = 0;\n this.scfsi = [new_int(4), new_int(4)];\n\n for (var gr = 0; gr < 2; gr++) {\n for (var ch = 0; ch < 2; ch++) {\n this.tt[gr][ch] = new GrInfo();\n }\n }\n}\n\nmodule.exports = IIISideInfo;\n","// Process autolinks '\n * Switch mappings for VBR mode VBR_RH\n * vbr_q qcomp_l qcomp_s expY st_lrm st_s mask adj_l adj_s ath_lower ath_curve ath_sens interChR safejoint sfb21mod msfix\n *
\n */\n var vbr_old_switch_map = [\n new VBRPresets(0, 9, 9, 0, 5.20, 125.0, -4.2, -6.3, 4.8, 1, 0, 0, 2, 21, 0.97),\n new VBRPresets(1, 9, 9, 0, 5.30, 125.0, -3.6, -5.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n new VBRPresets(2, 9, 9, 0, 5.60, 125.0, -2.2, -3.5, 2.8, 2, 0, 0, 2, 21, 1.49),\n new VBRPresets(3, 9, 9, 1, 5.80, 130.0, -1.8, -2.8, 2.6, 3, -4, 0, 2, 20, 1.64),\n new VBRPresets(4, 9, 9, 1, 6.00, 135.0, -0.7, -1.1, 1.1, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(5, 9, 9, 1, 6.40, 140.0, 0.5, 0.4, -7.5, 4, -12, 0.0002, 0, 0, 1.95),\n new VBRPresets(6, 9, 9, 1, 6.60, 145.0, 0.67, 0.65, -14.7, 6.5, -19, 0.0004, 0, 0, 2.30),\n new VBRPresets(7, 9, 9, 1, 6.60, 145.0, 0.8, 0.75, -19.7, 8, -22, 0.0006, 0, 0, 2.70),\n new VBRPresets(8, 9, 9, 1, 6.60, 145.0, 1.2, 1.15, -27.5, 10, -23, 0.0007, 0, 0, 0),\n new VBRPresets(9, 9, 9, 1, 6.60, 145.0, 1.6, 1.6, -36, 11, -25, 0.0008, 0, 0, 0),\n new VBRPresets(10, 9, 9, 1, 6.60, 145.0, 2.0, 2.0, -36, 12, -25, 0.0008, 0, 0, 0)\n ];\n\n /**\n * \n * vbr_q qcomp_l qcomp_s expY st_lrm st_s mask adj_l adj_s ath_lower ath_curve ath_sens interChR safejoint sfb21mod msfix\n *
\n */\n var vbr_psy_switch_map = [\n new VBRPresets(0, 9, 9, 0, 4.20, 25.0, -7.0, -4.0, 7.5, 1, 0, 0, 2, 26, 0.97),\n new VBRPresets(1, 9, 9, 0, 4.20, 25.0, -5.6, -3.6, 4.5, 1.5, 0, 0, 2, 21, 1.35),\n new VBRPresets(2, 9, 9, 0, 4.20, 25.0, -4.4, -1.8, 2, 2, 0, 0, 2, 18, 1.49),\n new VBRPresets(3, 9, 9, 1, 4.20, 25.0, -3.4, -1.25, 1.1, 3, -4, 0, 2, 15, 1.64),\n new VBRPresets(4, 9, 9, 1, 4.20, 25.0, -2.2, 0.1, 0, 3.5, -8, 0, 2, 0, 1.79),\n new VBRPresets(5, 9, 9, 1, 4.20, 25.0, -1.0, 1.65, -7.7, 4, -12, 0.0002, 0, 0, 1.95),\n new VBRPresets(6, 9, 9, 1, 4.20, 25.0, -0.0, 2.47, -7.7, 6.5, -19, 0.0004, 0, 0, 2),\n new VBRPresets(7, 9, 9, 1, 4.20, 25.0, 0.5, 2.0, -14.5, 8, -22, 0.0006, 0, 0, 2),\n new VBRPresets(8, 9, 9, 1, 4.20, 25.0, 1.0, 2.4, -22.0, 10, -23, 0.0007, 0, 0, 2),\n new VBRPresets(9, 9, 9, 1, 4.20, 25.0, 1.5, 2.95, -30.0, 11, -25, 0.0008, 0, 0, 2),\n new VBRPresets(10, 9, 9, 1, 4.20, 25.0, 2.0, 2.95, -36.0, 12, -30, 0.0008, 0, 0, 2)\n ];\n\n function apply_vbr_preset(gfp, a, enforce) {\n var vbr_preset = gfp.VBR == VbrMode.vbr_rh ? vbr_old_switch_map\n : vbr_psy_switch_map;\n\n var x = gfp.VBR_q_frac;\n var p = vbr_preset[a];\n var q = vbr_preset[a + 1];\n var set = p;\n\n // NOOP(vbr_q);\n // NOOP(quant_comp);\n // NOOP(quant_comp_s);\n // NOOP(expY);\n p.st_lrm = p.st_lrm + x * (q.st_lrm - p.st_lrm);\n // LERP(st_lrm);\n p.st_s = p.st_s + x * (q.st_s - p.st_s);\n // LERP(st_s);\n p.masking_adj = p.masking_adj + x * (q.masking_adj - p.masking_adj);\n // LERP(masking_adj);\n p.masking_adj_short = p.masking_adj_short + x\n * (q.masking_adj_short - p.masking_adj_short);\n // LERP(masking_adj_short);\n p.ath_lower = p.ath_lower + x * (q.ath_lower - p.ath_lower);\n // LERP(ath_lower);\n p.ath_curve = p.ath_curve + x * (q.ath_curve - p.ath_curve);\n // LERP(ath_curve);\n p.ath_sensitivity = p.ath_sensitivity + x\n * (q.ath_sensitivity - p.ath_sensitivity);\n // LERP(ath_sensitivity);\n p.interch = p.interch + x * (q.interch - p.interch);\n // LERP(interch);\n // NOOP(safejoint);\n // NOOP(sfb21mod);\n p.msfix = p.msfix + x * (q.msfix - p.msfix);\n // LERP(msfix);\n\n lame_set_VBR_q(gfp, set.vbr_q);\n\n if (enforce != 0)\n gfp.quant_comp = set.quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0))\n gfp.quant_comp = set.quant_comp;\n // SET_OPTION(quant_comp, set.quant_comp, -1);\n if (enforce != 0)\n gfp.quant_comp_short = set.quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))\n gfp.quant_comp_short = set.quant_comp_s;\n // SET_OPTION(quant_comp_short, set.quant_comp_s, -1);\n if (set.expY != 0) {\n gfp.experimentalY = set.expY != 0;\n }\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre = set.st_lrm;\n // SET_OPTION(short_threshold_lrm, set.st_lrm, -1);\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre_s = set.st_s;\n // SET_OPTION(short_threshold_s, set.st_s, -1);\n if (enforce != 0)\n gfp.maskingadjust = set.masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0))\n gfp.maskingadjust = set.masking_adj;\n // SET_OPTION(maskingadjust, set.masking_adj, 0);\n if (enforce != 0)\n gfp.maskingadjust_short = set.masking_adj_short;\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n gfp.maskingadjust_short = set.masking_adj_short;\n // SET_OPTION(maskingadjust_short, set.masking_adj_short, 0);\n if (enforce != 0)\n gfp.ATHlower = -set.ath_lower / 10.0;\n else if (!(Math.abs((-gfp.ATHlower * 10.0) - 0) > 0))\n gfp.ATHlower = -set.ath_lower / 10.0;\n // SET_OPTION(ATHlower, set.ath_lower, 0);\n if (enforce != 0)\n gfp.ATHcurve = set.ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n gfp.ATHcurve = set.ath_curve;\n // SET_OPTION(ATHcurve, set.ath_curve, -1);\n if (enforce != 0)\n gfp.athaa_sensitivity = set.ath_sensitivity;\n else if (!(Math.abs(gfp.athaa_sensitivity - -1) > 0))\n gfp.athaa_sensitivity = set.ath_sensitivity;\n // SET_OPTION(athaa_sensitivity, set.ath_sensitivity, 0);\n if (set.interch > 0) {\n if (enforce != 0)\n gfp.interChRatio = set.interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0))\n gfp.interChRatio = set.interch;\n // SET_OPTION(interChRatio, set.interch, -1);\n }\n\n /* parameters for which there is no proper set/get interface */\n if (set.safejoint > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | set.safejoint;\n }\n if (set.sfb21mod > 0) {\n gfp.exp_nspsytune = gfp.exp_nspsytune | (set.sfb21mod << 20);\n }\n if (enforce != 0)\n gfp.msfix = set.msfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0))\n gfp.msfix = set.msfix;\n // SET_OPTION(msfix, set.msfix, -1);\n\n if (enforce == 0) {\n gfp.VBR_q = a;\n gfp.VBR_q_frac = x;\n }\n }\n\n /**\n * \n * Switch mappings for ABR mode\n *\n * kbps quant q_s safejoint nsmsfix st_lrm st_s ns-bass scale msk ath_lwr ath_curve interch , sfscale\n *
\n */\n var abr_switch_map = [\n new ABRPresets(8, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -30.0, 11, 0.0012, 1), /* 8, impossible to use in stereo */\n new ABRPresets(16, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -25.0, 11, 0.0010, 1), /* 16 */\n new ABRPresets(24, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -20.0, 11, 0.0010, 1), /* 24 */\n new ABRPresets(32, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -15.0, 11, 0.0010, 1), /* 32 */\n new ABRPresets(40, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /* 40 */\n new ABRPresets(48, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -10.0, 11, 0.0009, 1), /* 48 */\n new ABRPresets(56, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -6.0, 11, 0.0008, 1), /* 56 */\n new ABRPresets(64, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, -2.0, 11, 0.0008, 1), /* 64 */\n new ABRPresets(80, 9, 9, 0, 0, 6.60, 145, 0, 0.95, 0, .0, 8, 0.0007, 1), /* 80 */\n new ABRPresets(96, 9, 9, 0, 2.50, 6.60, 145, 0, 0.95, 0, 1.0, 5.5, 0.0006, 1), /* 96 */\n new ABRPresets(112, 9, 9, 0, 2.25, 6.60, 145, 0, 0.95, 0, 2.0, 4.5, 0.0005, 1), /* 112 */\n new ABRPresets(128, 9, 9, 0, 1.95, 6.40, 140, 0, 0.95, 0, 3.0, 4, 0.0002, 1), /* 128 */\n new ABRPresets(160, 9, 9, 1, 1.79, 6.00, 135, 0, 0.95, -2, 5.0, 3.5, 0, 1), /* 160 */\n new ABRPresets(192, 9, 9, 1, 1.49, 5.60, 125, 0, 0.97, -4, 7.0, 3, 0, 0), /* 192 */\n new ABRPresets(224, 9, 9, 1, 1.25, 5.20, 125, 0, 0.98, -6, 9.0, 2, 0, 0), /* 224 */\n new ABRPresets(256, 9, 9, 1, 0.97, 5.20, 125, 0, 1.00, -8, 10.0, 1, 0, 0), /* 256 */\n new ABRPresets(320, 9, 9, 1, 0.90, 5.20, 125, 0, 1.00, -10, 12.0, 0, 0, 0) /* 320 */\n ];\n\n function apply_abr_preset(gfp, preset, enforce) {\n /* Variables for the ABR stuff */\n var actual_bitrate = preset;\n\n var r = lame.nearestBitrateFullIndex(preset);\n\n gfp.VBR = VbrMode.vbr_abr;\n gfp.VBR_mean_bitrate_kbps = actual_bitrate;\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps, 320);\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps, 8);\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n if (gfp.VBR_mean_bitrate_kbps > 320) {\n gfp.disable_reservoir = true;\n }\n\n /* parameters for which there is no proper set/get interface */\n if (abr_switch_map[r].safejoint > 0)\n gfp.exp_nspsytune = gfp.exp_nspsytune | 2;\n /* safejoint */\n\n if (abr_switch_map[r].sfscale > 0) {\n gfp.internal_flags.noise_shaping = 2;\n }\n /* ns-bass tweaks */\n if (Math.abs(abr_switch_map[r].nsbass) > 0) {\n var k = (int)(abr_switch_map[r].nsbass * 4);\n if (k < 0)\n k += 64;\n gfp.exp_nspsytune = gfp.exp_nspsytune | (k << 2);\n }\n\n if (enforce != 0)\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n else if (!(Math.abs(gfp.quant_comp - -1) > 0))\n gfp.quant_comp = abr_switch_map[r].quant_comp;\n // SET_OPTION(quant_comp, abr_switch_map[r].quant_comp, -1);\n if (enforce != 0)\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n else if (!(Math.abs(gfp.quant_comp_short - -1) > 0))\n gfp.quant_comp_short = abr_switch_map[r].quant_comp_s;\n // SET_OPTION(quant_comp_short, abr_switch_map[r].quant_comp_s, -1);\n\n if (enforce != 0)\n gfp.msfix = abr_switch_map[r].nsmsfix;\n else if (!(Math.abs(gfp.msfix - -1) > 0))\n gfp.msfix = abr_switch_map[r].nsmsfix;\n // SET_OPTION(msfix, abr_switch_map[r].nsmsfix, -1);\n\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre = abr_switch_map[r].st_lrm;\n // SET_OPTION(short_threshold_lrm, abr_switch_map[r].st_lrm, -1);\n if (enforce != 0)\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n else if (!(Math.abs(gfp.internal_flags.nsPsy.attackthre_s - -1) > 0))\n gfp.internal_flags.nsPsy.attackthre_s = abr_switch_map[r].st_s;\n // SET_OPTION(short_threshold_s, abr_switch_map[r].st_s, -1);\n\n /*\n * ABR seems to have big problems with clipping, especially at low\n * bitrates\n */\n /*\n * so we compensate for that here by using a scale value depending on\n * bitrate\n */\n if (enforce != 0)\n gfp.scale = abr_switch_map[r].scale;\n else if (!(Math.abs(gfp.scale - -1) > 0))\n gfp.scale = abr_switch_map[r].scale;\n // SET_OPTION(scale, abr_switch_map[r].scale, -1);\n\n if (enforce != 0)\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n else if (!(Math.abs(gfp.maskingadjust - 0) > 0))\n gfp.maskingadjust = abr_switch_map[r].masking_adj;\n // SET_OPTION(maskingadjust, abr_switch_map[r].masking_adj, 0);\n if (abr_switch_map[r].masking_adj > 0) {\n if (enforce != 0)\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * .9);\n // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n // .9, 0);\n } else {\n if (enforce != 0)\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);\n else if (!(Math.abs(gfp.maskingadjust_short - 0) > 0))\n gfp.maskingadjust_short = (abr_switch_map[r].masking_adj * 1.1);\n // SET_OPTION(maskingadjust_short, abr_switch_map[r].masking_adj *\n // 1.1, 0);\n }\n\n if (enforce != 0)\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n else if (!(Math.abs((-gfp.ATHlower * 10.) - 0) > 0))\n gfp.ATHlower = -abr_switch_map[r].ath_lower / 10.;\n // SET_OPTION(ATHlower, abr_switch_map[r].ath_lower, 0);\n if (enforce != 0)\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n else if (!(Math.abs(gfp.ATHcurve - -1) > 0))\n gfp.ATHcurve = abr_switch_map[r].ath_curve;\n // SET_OPTION(ATHcurve, abr_switch_map[r].ath_curve, -1);\n\n if (enforce != 0)\n gfp.interChRatio = abr_switch_map[r].interch;\n else if (!(Math.abs(gfp.interChRatio - -1) > 0))\n gfp.interChRatio = abr_switch_map[r].interch;\n // SET_OPTION(interChRatio, abr_switch_map[r].interch, -1);\n\n return preset;\n }\n\n this.apply_preset = function(gfp, preset, enforce) {\n /* translate legacy presets */\n switch (preset) {\n case Lame.R3MIX:\n {\n preset = Lame.V3;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.MEDIUM:\n {\n preset = Lame.V4;\n gfp.VBR = VbrMode.vbr_rh;\n break;\n }\n case Lame.MEDIUM_FAST:\n {\n preset = Lame.V4;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.STANDARD:\n {\n preset = Lame.V2;\n gfp.VBR = VbrMode.vbr_rh;\n break;\n }\n case Lame.STANDARD_FAST:\n {\n preset = Lame.V2;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.EXTREME:\n {\n preset = Lame.V0;\n gfp.VBR = VbrMode.vbr_rh;\n break;\n }\n case Lame.EXTREME_FAST:\n {\n preset = Lame.V0;\n gfp.VBR = VbrMode.vbr_mtrh;\n break;\n }\n case Lame.INSANE:\n {\n preset = 320;\n gfp.preset = preset;\n apply_abr_preset(gfp, preset, enforce);\n gfp.VBR = VbrMode.vbr_off;\n return preset;\n }\n }\n\n gfp.preset = preset;\n {\n switch (preset) {\n case Lame.V9:\n apply_vbr_preset(gfp, 9, enforce);\n return preset;\n case Lame.V8:\n apply_vbr_preset(gfp, 8, enforce);\n return preset;\n case Lame.V7:\n apply_vbr_preset(gfp, 7, enforce);\n return preset;\n case Lame.V6:\n apply_vbr_preset(gfp, 6, enforce);\n return preset;\n case Lame.V5:\n apply_vbr_preset(gfp, 5, enforce);\n return preset;\n case Lame.V4:\n apply_vbr_preset(gfp, 4, enforce);\n return preset;\n case Lame.V3:\n apply_vbr_preset(gfp, 3, enforce);\n return preset;\n case Lame.V2:\n apply_vbr_preset(gfp, 2, enforce);\n return preset;\n case Lame.V1:\n apply_vbr_preset(gfp, 1, enforce);\n return preset;\n case Lame.V0:\n apply_vbr_preset(gfp, 0, enforce);\n return preset;\n default:\n break;\n }\n }\n if (8 <= preset && preset <= 320) {\n return apply_abr_preset(gfp, preset, enforce);\n }\n\n /* no corresponding preset found */\n gfp.preset = 0;\n return preset;\n }\n\n // Rest from getset.c:\n\n /**\n * VBR quality level.
\n * 0 = highest
\n * 9 = lowest\n */\n function lame_set_VBR_q(gfp, VBR_q) {\n var ret = 0;\n\n if (0 > VBR_q) {\n /* Unknown VBR quality level! */\n ret = -1;\n VBR_q = 0;\n }\n if (9 < VBR_q) {\n ret = -1;\n VBR_q = 9;\n }\n\n gfp.VBR_q = VBR_q;\n gfp.VBR_q_frac = 0;\n return ret;\n }\n\n}\n\nmodule.exports = Presets;\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAARtJREFUeF7tmNsKxCAMROv/f7TLwhbK0mKmiWjI6Wvj7Tgziu0o/rXi6z8AgAKKE8ACxQVACGIBLFCcABZYJYDee7+O3VpbshlLBv0uHAAoAAuQAYTghQCnQPZjUD3WZtdb7zdh94DZC1L7B4CRAAp4AqVKLmv9owKyLujcUOv8AYAFHghYJaRKbrd6LIAFsMA9ATJAfLLKCowQJAQJQULwlkDWUFNvmoSg8eFkWLabYoYT/hXwImQlNapDAZvdHEcbdv4Ps4B1QDWl1X7VegCoxKLq1cyIGve/HxQwi+yoXxQgnhojoG//Y4G35LztylvACzCq/TILRC3A2w8AvASzt0cB2XfQO38U4CWYvT0KyL6D3vmjAC/B7O0/Ez3gUEGRr/UAAAAASUVORK5CYII=\"","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// Proceess '\\n'\n\n'use strict';\n\nmodule.exports = function newline(state, silent) {\n var pmax, max, pos = state.pos;\n\n if (state.src.charCodeAt(pos) !== 0x0A/* \\n */) { return false; }\n\n pmax = state.pending.length - 1;\n max = state.posMax;\n\n // ' \\n' -> hardbreak\n // Lookup in pending chars is bad practice! Don't copy to other rules!\n // Pending string is stored in concat mode, indexed lookups will cause\n // convertion to flat mode.\n if (!silent) {\n if (pmax >= 0 && state.pending.charCodeAt(pmax) === 0x20) {\n if (pmax >= 1 && state.pending.charCodeAt(pmax - 1) === 0x20) {\n state.pending = state.pending.replace(/ +$/, '');\n state.push('hardbreak', 'br', 0);\n } else {\n state.pending = state.pending.slice(0, -1);\n state.push('softbreak', 'br', 0);\n }\n\n } else {\n state.push('softbreak', 'br', 0);\n }\n }\n\n pos++;\n\n // skip heading spaces for next line\n while (pos < max && state.src.charCodeAt(pos) === 0x20) { pos++; }\n\n state.pos = pos;\n return true;\n};\n","// Commonmark default options\n\n'use strict';\n\n\nmodule.exports = {\n options: {\n html: true, // Enable HTML tags in source\n xhtmlOut: true, // Use '/' to close single tags (
)\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with \n * Mode Extention:\n * When we are in stereo mode, there are 4 possible methods to store these\n * two channels. The stereo modes -m? are using a subset of them.\n *\n * -ms: MPG_MD_LR_LR\n * -mj: MPG_MD_LR_LR and MPG_MD_MS_LR\n * -mf: MPG_MD_MS_LR\n * -mi: all\n *
\n */\nEncoder.MPG_MD_LR_LR = 0;\nEncoder.MPG_MD_LR_I = 1;\nEncoder.MPG_MD_MS_LR = 2;\nEncoder.MPG_MD_MS_I = 3;\n\nEncoder.fircoef = [-0.0207887 * 5, -0.0378413 * 5,\n -0.0432472 * 5, -0.031183 * 5, 7.79609e-18 * 5, 0.0467745 * 5,\n 0.10091 * 5, 0.151365 * 5, 0.187098 * 5];\n\nfunction Encoder() {\n var NewMDCT = require('./NewMDCT.js');\n var III_psy_ratio = require('./III_psy_ratio.js');\n\n var FFTOFFSET = Encoder.FFTOFFSET;\n var MPG_MD_MS_LR = Encoder.MPG_MD_MS_LR;\n //BitStream bs;\n //PsyModel psy;\n //VBRTag vbr;\n //QuantizePVT qupvt;\n var bs = null;\n this.psy = null;\n var psy = null;\n var vbr = null;\n var qupvt = null;\n\n //public final void setModules(BitStream bs, PsyModel psy, QuantizePVT qupvt,\n // VBRTag vbr) {\n this.setModules = function (_bs, _psy, _qupvt, _vbr) {\n bs = _bs;\n this.psy = _psy;\n psy = _psy;\n vbr = _vbr;\n qupvt = _qupvt;\n };\n\n var newMDCT = new NewMDCT();\n\n /***********************************************************************\n *\n * encoder and decoder delays\n *\n ***********************************************************************/\n\n /**\n * \n * layer III enc->dec delay: 1056 (1057?) (observed)\n * layer II enc->dec delay: 480 (481?) (observed)\n *\n * polyphase 256-16 (dec or enc) = 240\n * mdct 256+32 (9*32) (dec or enc) = 288\n * total: 512+16\n *\n * My guess is that delay of polyphase filterbank is actualy 240.5\n * (there are technical reasons for this, see postings in mp3encoder).\n * So total Encode+Decode delay = ENCDELAY + 528 + 1\n *
\n */\n\n\n /**\n * auto-adjust of ATH, useful for low volume Gabriel Bouvigne 3 feb 2001\n *\n * modifies some values in gfp.internal_flags.ATH (gfc.ATH)\n */\n//private void adjust_ATH(final LameInternalFlags gfc) {\n function adjust_ATH(gfc) {\n var gr2_max, max_pow;\n\n if (gfc.ATH.useAdjust == 0) {\n gfc.ATH.adjust = 1.0;\n /* no adjustment */\n return;\n }\n\n /* jd - 2001 mar 12, 27, jun 30 */\n /* loudness based on equal loudness curve; */\n /* use granule with maximum combined loudness */\n max_pow = gfc.loudness_sq[0][0];\n gr2_max = gfc.loudness_sq[1][0];\n if (gfc.channels_out == 2) {\n max_pow += gfc.loudness_sq[0][1];\n gr2_max += gfc.loudness_sq[1][1];\n } else {\n max_pow += max_pow;\n gr2_max += gr2_max;\n }\n if (gfc.mode_gr == 2) {\n max_pow = Math.max(max_pow, gr2_max);\n }\n max_pow *= 0.5;\n /* max_pow approaches 1.0 for full band noise */\n\n /* jd - 2001 mar 31, jun 30 */\n /* user tuning of ATH adjustment region */\n max_pow *= gfc.ATH.aaSensitivityP;\n\n /*\n * adjust ATH depending on range of maximum value\n */\n\n /* jd - 2001 feb27, mar12,20, jun30, jul22 */\n /* continuous curves based on approximation */\n /* to GB's original values. */\n /* For an increase in approximate loudness, */\n /* set ATH adjust to adjust_limit immediately */\n /* after a delay of one frame. */\n /* For a loudness decrease, reduce ATH adjust */\n /* towards adjust_limit gradually. */\n /* max_pow is a loudness squared or a power. */\n if (max_pow > 0.03125) { /* ((1 - 0.000625)/ 31.98) from curve below */\n if (gfc.ATH.adjust >= 1.0) {\n gfc.ATH.adjust = 1.0;\n } else {\n /* preceding frame has lower ATH adjust; */\n /* ascend only to the preceding adjust_limit */\n /* in case there is leading low volume */\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n gfc.ATH.adjustLimit = 1.0;\n } else { /* adjustment curve */\n /* about 32 dB maximum adjust (0.000625) */\n var adj_lim_new = 31.98 * max_pow + 0.000625;\n if (gfc.ATH.adjust >= adj_lim_new) { /* descend gradually */\n gfc.ATH.adjust *= adj_lim_new * 0.075 + 0.925;\n if (gfc.ATH.adjust < adj_lim_new) { /* stop descent */\n gfc.ATH.adjust = adj_lim_new;\n }\n } else { /* ascend */\n if (gfc.ATH.adjustLimit >= adj_lim_new) {\n gfc.ATH.adjust = adj_lim_new;\n } else {\n /* preceding frame has lower ATH adjust; */\n /* ascend only to the preceding adjust_limit */\n if (gfc.ATH.adjust < gfc.ATH.adjustLimit) {\n gfc.ATH.adjust = gfc.ATH.adjustLimit;\n }\n }\n }\n gfc.ATH.adjustLimit = adj_lim_new;\n }\n }\n\n /**\n * \n * some simple statistics\n *\n * bitrate index 0: free bitrate . not allowed in VBR mode\n * : bitrates, kbps depending on MPEG version\n * bitrate index 15: forbidden\n *\n * mode_ext:\n * 0: LR\n * 1: LR-i\n * 2: MS\n * 3: MS-i\n *
\n */\n function updateStats(gfc) {\n var gr, ch;\n assert(0 <= gfc.bitrate_index && gfc.bitrate_index < 16);\n assert(0 <= gfc.mode_ext && gfc.mode_ext < 4);\n\n /* count bitrate indices */\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][4]++;\n gfc.bitrate_stereoMode_Hist[15][4]++;\n\n /* count 'em for every mode extension in case of 2 channel encoding */\n if (gfc.channels_out == 2) {\n gfc.bitrate_stereoMode_Hist[gfc.bitrate_index][gfc.mode_ext]++;\n gfc.bitrate_stereoMode_Hist[15][gfc.mode_ext]++;\n }\n for (gr = 0; gr < gfc.mode_gr; ++gr) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n var bt = gfc.l3_side.tt[gr][ch].block_type | 0;\n if (gfc.l3_side.tt[gr][ch].mixed_block_flag != 0)\n bt = 4;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][bt]++;\n gfc.bitrate_blockType_Hist[gfc.bitrate_index][5]++;\n gfc.bitrate_blockType_Hist[15][bt]++;\n gfc.bitrate_blockType_Hist[15][5]++;\n }\n }\n }\n\n function lame_encode_frame_init(gfp, inbuf) {\n var gfc = gfp.internal_flags;\n\n var ch, gr;\n\n if (gfc.lame_encode_frame_init == 0) {\n /* prime the MDCT/polyphase filterbank with a short block */\n var i, j;\n var primebuff0 = new_float(286 + 1152 + 576);\n var primebuff1 = new_float(286 + 1152 + 576);\n gfc.lame_encode_frame_init = 1;\n for (i = 0, j = 0; i < 286 + 576 * (1 + gfc.mode_gr); ++i) {\n if (i < 576 * gfc.mode_gr) {\n primebuff0[i] = 0;\n if (gfc.channels_out == 2)\n primebuff1[i] = 0;\n } else {\n primebuff0[i] = inbuf[0][j];\n if (gfc.channels_out == 2)\n primebuff1[i] = inbuf[1][j];\n ++j;\n }\n }\n /* polyphase filtering / mdct */\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.SHORT_TYPE;\n }\n }\n newMDCT.mdct_sub48(gfc, primebuff0, primebuff1);\n\n /* check FFT will not use a negative starting offset */\n assert(576 >= Encoder.FFTOFFSET);\n /* check if we have enough data for FFT */\n assert(gfc.mf_size >= (Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET));\n /* check if we have enough data for polyphase filterbank */\n assert(gfc.mf_size >= (512 + gfp.framesize - 32));\n }\n\n }\n\n /**\n * \n * encodeframe() Layer 3\n *\n * encode a single frame\n *\n *\n * lame_encode_frame()\n *\n *\n * gr 0 gr 1\n * inbuf: |--------------|--------------|--------------|\n *\n *\n * Polyphase (18 windows, each shifted 32)\n * gr 0:\n * window1 <----512---.\n * window18 <----512---.\n *\n * gr 1:\n * window1 <----512---.\n * window18 <----512---.\n *\n *\n *\n * MDCT output: |--------------|--------------|--------------|\n *\n * FFT's <---------1024---------.\n * <---------1024-------.\n *\n *\n *\n * inbuf = buffer of PCM data size=MP3 framesize\n * encoder acts on inbuf[ch][0], but output is delayed by MDCTDELAY\n * so the MDCT coefficints are from inbuf[ch][-MDCTDELAY]\n *\n * psy-model FFT has a 1 granule delay, so we feed it data for the\n * next granule.\n * FFT is centered over granule: 224+576+224\n * So FFT starts at: 576-224-MDCTDELAY\n *\n * MPEG2: FFT ends at: BLKSIZE+576-224-MDCTDELAY (1328)\n * MPEG1: FFT ends at: BLKSIZE+2*576-224-MDCTDELAY (1904)\n *\n * MPEG2: polyphase first window: [0..511]\n * 18th window: [544..1055] (1056)\n * MPEG1: 36th window: [1120..1631] (1632)\n * data needed: 512+framesize-32\n *\n * A close look newmdct.c shows that the polyphase filterbank\n * only uses data from [0..510] for each window. Perhaps because the window\n * used by the filterbank is zero for the last point, so Takehiro's\n * code doesn't bother to compute with it.\n *\n * FFT starts at 576-224-MDCTDELAY (304) = 576-FFTOFFSET\n *\n *
\n */\n\n\n this.lame_encode_mp3_frame = function (gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var mp3count;\n var masking_LR = new_array_n([2, 2]);\n /*\n * LR masking &\n * energy\n */\n masking_LR[0][0] = new III_psy_ratio();\n masking_LR[0][1] = new III_psy_ratio();\n masking_LR[1][0] = new III_psy_ratio();\n masking_LR[1][1] = new III_psy_ratio();\n var masking_MS = new_array_n([2, 2]);\n /* MS masking & energy */\n masking_MS[0][0] = new III_psy_ratio();\n masking_MS[0][1] = new III_psy_ratio();\n masking_MS[1][0] = new III_psy_ratio();\n masking_MS[1][1] = new III_psy_ratio();\n //III_psy_ratio masking[][];\n var masking;\n /* pointer to selected maskings */\n var inbuf = [null, null];\n var gfc = gfp.internal_flags;\n\n var tot_ener = new_float_n([2, 4]);\n var ms_ener_ratio = [.5, .5];\n var pe = [[0., 0.], [0., 0.]];\n var pe_MS = [[0., 0.], [0., 0.]];\n\n//float[][] pe_use;\n var pe_use;\n\n var ch, gr;\n\n inbuf[0] = inbuf_l;\n inbuf[1] = inbuf_r;\n\n if (gfc.lame_encode_frame_init == 0) {\n /* first run? */\n lame_encode_frame_init(gfp, inbuf);\n\n }\n\n /********************** padding *****************************/\n /**\n * \n * padding method as described in\n * \"MPEG-Layer3 / Bitstream Syntax and Decoding\"\n * by Martin Sieler, Ralph Sperschneider\n *\n * note: there is no padding for the very first frame\n *\n * Robert Hegemann 2000-06-22\n *
\n */\n gfc.padding = 0;\n if ((gfc.slot_lag -= gfc.frac_SpF) < 0) {\n gfc.slot_lag += gfp.out_samplerate;\n gfc.padding = 1;\n }\n\n /****************************************\n * Stage 1: psychoacoustic model *\n ****************************************/\n\n if (gfc.psymodel != 0) {\n /*\n * psychoacoustic model psy model has a 1 granule (576) delay that\n * we must compensate for (mt 6/99).\n */\n var ret;\n var bufp = [null, null];\n /* address of beginning of left & right granule */\n var bufpPos = 0;\n /* address of beginning of left & right granule */\n var blocktype = new_int(2);\n\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n\n for (ch = 0; ch < gfc.channels_out; ch++) {\n bufp[ch] = inbuf[ch];\n bufpPos = 576 + gr * 576 - Encoder.FFTOFFSET;\n }\n if (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) {\n ret = psy.L3psycho_anal_vbr(gfp, bufp, bufpPos, gr,\n masking_LR, masking_MS, pe[gr], pe_MS[gr],\n tot_ener[gr], blocktype);\n } else {\n ret = psy.L3psycho_anal_ns(gfp, bufp, bufpPos, gr,\n masking_LR, masking_MS, pe[gr], pe_MS[gr],\n tot_ener[gr], blocktype);\n }\n if (ret != 0)\n return -4;\n\n if (gfp.mode == MPEGMode.JOINT_STEREO) {\n ms_ener_ratio[gr] = tot_ener[gr][2] + tot_ener[gr][3];\n if (ms_ener_ratio[gr] > 0)\n ms_ener_ratio[gr] = tot_ener[gr][3] / ms_ener_ratio[gr];\n }\n\n /* block type flags */\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n cod_info.block_type = blocktype[ch];\n cod_info.mixed_block_flag = 0;\n }\n }\n } else {\n /* no psy model */\n for (gr = 0; gr < gfc.mode_gr; gr++)\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.l3_side.tt[gr][ch].block_type = Encoder.NORM_TYPE;\n gfc.l3_side.tt[gr][ch].mixed_block_flag = 0;\n pe_MS[gr][ch] = pe[gr][ch] = 700;\n }\n }\n\n /* auto-adjust of ATH, useful for low volume */\n adjust_ATH(gfc);\n\n /****************************************\n * Stage 2: MDCT *\n ****************************************/\n\n /* polyphase filtering / mdct */\n newMDCT.mdct_sub48(gfc, inbuf[0], inbuf[1]);\n\n /****************************************\n * Stage 3: MS/LR decision *\n ****************************************/\n\n /* Here will be selected MS or LR coding of the 2 stereo channels */\n gfc.mode_ext = Encoder.MPG_MD_LR_LR;\n\n if (gfp.force_ms) {\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n } else if (gfp.mode == MPEGMode.JOINT_STEREO) {\n /*\n * ms_ratio = is scaled, for historical reasons, to look like a\n * ratio of side_channel / total. 0 = signal is 100% mono .5 = L & R\n * uncorrelated\n */\n\n /**\n * \n * [0] and [1] are the results for the two granules in MPEG-1,\n * in MPEG-2 it's only a faked averaging of the same value\n * _prev is the value of the last granule of the previous frame\n * _next is the value of the first granule of the next frame\n *
\n */\n\n var sum_pe_MS = 0.;\n var sum_pe_LR = 0.;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n sum_pe_MS += pe_MS[gr][ch];\n sum_pe_LR += pe[gr][ch];\n }\n }\n\n /* based on PE: M/S coding would not use much more bits than L/R */\n if (sum_pe_MS <= 1.00 * sum_pe_LR) {\n\n var gi0 = gfc.l3_side.tt[0];\n var gi1 = gfc.l3_side.tt[gfc.mode_gr - 1];\n\n if (gi0[0].block_type == gi0[1].block_type\n && gi1[0].block_type == gi1[1].block_type) {\n\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n }\n }\n }\n\n /* bit and noise allocation */\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n masking = masking_MS;\n /* use MS masking */\n pe_use = pe_MS;\n } else {\n masking = masking_LR;\n /* use LR masking */\n pe_use = pe;\n }\n\n /* copy data for MP3 frame analyzer */\n if (gfp.analysis && gfc.pinfo != null) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n gfc.pinfo.ms_ratio[gr] = gfc.ms_ratio[gr];\n gfc.pinfo.ms_ener_ratio[gr] = ms_ener_ratio[gr];\n gfc.pinfo.blocktype[gr][ch] = gfc.l3_side.tt[gr][ch].block_type;\n gfc.pinfo.pe[gr][ch] = pe_use[gr][ch];\n System.arraycopy(gfc.l3_side.tt[gr][ch].xr, 0,\n gfc.pinfo.xr[gr][ch], 0, 576);\n /*\n * in psymodel, LR and MS data was stored in pinfo. switch\n * to MS data:\n */\n if (gfc.mode_ext == MPG_MD_MS_LR) {\n gfc.pinfo.ers[gr][ch] = gfc.pinfo.ers[gr][ch + 2];\n System.arraycopy(gfc.pinfo.energy[gr][ch + 2], 0,\n gfc.pinfo.energy[gr][ch], 0,\n gfc.pinfo.energy[gr][ch].length);\n }\n }\n }\n }\n\n /****************************************\n * Stage 4: quantization loop *\n ****************************************/\n\n if (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_abr) {\n\n var i;\n var f;\n\n for (i = 0; i < 18; i++)\n gfc.nsPsy.pefirbuf[i] = gfc.nsPsy.pefirbuf[i + 1];\n\n f = 0.0;\n for (gr = 0; gr < gfc.mode_gr; gr++)\n for (ch = 0; ch < gfc.channels_out; ch++)\n f += pe_use[gr][ch];\n gfc.nsPsy.pefirbuf[18] = f;\n\n f = gfc.nsPsy.pefirbuf[9];\n for (i = 0; i < 9; i++)\n f += (gfc.nsPsy.pefirbuf[i] + gfc.nsPsy.pefirbuf[18 - i])\n * Encoder.fircoef[i];\n\n f = (670 * 5 * gfc.mode_gr * gfc.channels_out) / f;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n pe_use[gr][ch] *= f;\n }\n }\n }\n gfc.iteration_loop.iteration_loop(gfp, pe_use, ms_ener_ratio, masking);\n\n /****************************************\n * Stage 5: bitstream formatting *\n ****************************************/\n\n /* write the frame to the bitstream */\n bs.format_bitstream(gfp);\n\n /* copy mp3 bit buffer into array */\n mp3count = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 1);\n\n if (gfp.bWriteVbrTag)\n vbr.addVbrFrame(gfp);\n\n if (gfp.analysis && gfc.pinfo != null) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var j;\n for (j = 0; j < FFTOFFSET; j++)\n gfc.pinfo.pcmdata[ch][j] = gfc.pinfo.pcmdata[ch][j\n + gfp.framesize];\n for (j = FFTOFFSET; j < 1600; j++) {\n gfc.pinfo.pcmdata[ch][j] = inbuf[ch][j - FFTOFFSET];\n }\n }\n qupvt.set_frame_pinfo(gfp, masking);\n }\n\n updateStats(gfc);\n\n return mp3count;\n }\n}\n\n\nmodule.exports = Encoder;\n","'use strict';\n\n\nmodule.exports = function ins_plugin(md) {\n // Insert each marker as a separate text token, and add it to delimiter list\n //\n function tokenize(state, silent) {\n var i, scanned, token, len, ch,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x3D/* = */) { return false; }\n\n scanned = state.scanDelims(state.pos, true);\n len = scanned.length;\n ch = String.fromCharCode(marker);\n\n if (len < 2) { return false; }\n\n if (len % 2) {\n token = state.push('text', '', 0);\n token.content = ch;\n len--;\n }\n\n for (i = 0; i < len; i += 2) {\n token = state.push('text', '', 0);\n token.content = ch + ch;\n\n state.delimiters.push({\n marker: marker,\n jump: i,\n token: state.tokens.length - 1,\n level: state.level,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n }\n\n\n // Walk through delimiter list and replace text tokens with tags\n //\n function postProcess(state) {\n var i, j,\n startDelim,\n endDelim,\n token,\n loneMarkers = [],\n delimiters = state.delimiters,\n max = state.delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x3D/* = */) {\n continue;\n }\n\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n token = state.tokens[startDelim.token];\n token.type = 'mark_open';\n token.tag = 'mark';\n token.nesting = 1;\n token.markup = '==';\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = 'mark_close';\n token.tag = 'mark';\n token.nesting = -1;\n token.markup = '==';\n token.content = '';\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '=') {\n\n loneMarkers.push(endDelim.token - 1);\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n i = loneMarkers.pop();\n j = i + 1;\n\n while (j < state.tokens.length && state.tokens[j].type === 'mark_close') {\n j++;\n }\n\n j--;\n\n if (i !== j) {\n token = state.tokens[j];\n state.tokens[j] = state.tokens[i];\n state.tokens[i] = token;\n }\n }\n }\n\n md.inline.ruler.before('emphasis', 'mark', tokenize);\n md.inline.ruler2.before('emphasis', 'mark', postProcess);\n};\n","// Normalize input string\n\n'use strict';\n\n\nvar NEWLINES_RE = /\\r[\\n\\u0085]?|[\\u2424\\u2028\\u0085]/g;\nvar NULL_RE = /\\u0000/g;\n\n\nmodule.exports = function inline(state) {\n var str;\n\n // Normalize newlines\n str = state.src.replace(NEWLINES_RE, '\\n');\n\n // Replace NULL characters\n str = str.replace(NULL_RE, '\\uFFFD');\n\n state.src = str;\n};\n","/** internal\n * class ParserInline\n *\n * Tokenizes paragraph content.\n **/\n'use strict';\n\n\nvar Ruler = require('./ruler');\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Parser rules\n\nvar _rules = [\n [ 'text', require('./rules_inline/text') ],\n [ 'newline', require('./rules_inline/newline') ],\n [ 'escape', require('./rules_inline/escape') ],\n [ 'backticks', require('./rules_inline/backticks') ],\n [ 'strikethrough', require('./rules_inline/strikethrough').tokenize ],\n [ 'emphasis', require('./rules_inline/emphasis').tokenize ],\n [ 'link', require('./rules_inline/link') ],\n [ 'image', require('./rules_inline/image') ],\n [ 'autolink', require('./rules_inline/autolink') ],\n [ 'html_inline', require('./rules_inline/html_inline') ],\n [ 'entity', require('./rules_inline/entity') ]\n];\n\nvar _rules2 = [\n [ 'balance_pairs', require('./rules_inline/balance_pairs') ],\n [ 'strikethrough', require('./rules_inline/strikethrough').postProcess ],\n [ 'emphasis', require('./rules_inline/emphasis').postProcess ],\n [ 'text_collapse', require('./rules_inline/text_collapse') ]\n];\n\n\n/**\n * new ParserInline()\n **/\nfunction ParserInline() {\n var i;\n\n /**\n * ParserInline#ruler -> Ruler\n *\n * [[Ruler]] instance. Keep configuration of inline rules.\n **/\n this.ruler = new Ruler();\n\n for (i = 0; i < _rules.length; i++) {\n this.ruler.push(_rules[i][0], _rules[i][1]);\n }\n\n /**\n * ParserInline#ruler2 -> Ruler\n *\n * [[Ruler]] instance. Second ruler used for post-processing\n * (e.g. in emphasis-like rules).\n **/\n this.ruler2 = new Ruler();\n\n for (i = 0; i < _rules2.length; i++) {\n this.ruler2.push(_rules2[i][0], _rules2[i][1]);\n }\n}\n\n\n// Skip single token by running all rules in validation mode;\n// returns `true` if any rule reported success\n//\nParserInline.prototype.skipToken = function (state) {\n var ok, i, pos = state.pos,\n rules = this.ruler.getRules(''),\n len = rules.length,\n maxNesting = state.md.options.maxNesting,\n cache = state.cache;\n\n\n if (typeof cache[pos] !== 'undefined') {\n state.pos = cache[pos];\n return;\n }\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n // Increment state.level and decrement it later to limit recursion.\n // It's harmless to do here, because no tokens are created. But ideally,\n // we'd need a separate private state variable for this purpose.\n //\n state.level++;\n ok = rules[i](state, true);\n state.level--;\n\n if (ok) { break; }\n }\n } else {\n // Too much nesting, just skip until the end of the paragraph.\n //\n // NOTE: this will cause links to behave incorrectly in the following case,\n // when an amount of `[` is exactly equal to `maxNesting + 1`:\n //\n // [[[[[[[[[[[[[[[[[[[[[foo]()\n //\n // TODO: remove this workaround when CM standard will allow nested links\n // (we can replace it by preventing links from being parsed in\n // validation mode)\n //\n state.pos = state.posMax;\n }\n\n if (!ok) { state.pos++; }\n cache[pos] = state.pos;\n};\n\n\n// Generate tokens for input range\n//\nParserInline.prototype.tokenize = function (state) {\n var ok, i,\n rules = this.ruler.getRules(''),\n len = rules.length,\n end = state.posMax,\n maxNesting = state.md.options.maxNesting;\n\n while (state.pos < end) {\n // Try all possible rules.\n // On success, rule should:\n //\n // - update `state.pos`\n // - update `state.tokens`\n // - return true\n\n if (state.level < maxNesting) {\n for (i = 0; i < len; i++) {\n ok = rules[i](state, false);\n if (ok) { break; }\n }\n }\n\n if (ok) {\n if (state.pos >= end) { break; }\n continue;\n }\n\n state.pending += state.src[state.pos++];\n }\n\n if (state.pending) {\n state.pushPending();\n }\n};\n\n\n/**\n * ParserInline.parse(str, md, env, outTokens)\n *\n * Process input string and push inline tokens into `outTokens`\n **/\nParserInline.prototype.parse = function (str, md, env, outTokens) {\n var i, rules, len;\n var state = new this.State(str, md, env, outTokens);\n\n this.tokenize(state);\n\n rules = this.ruler2.getRules('');\n len = rules.length;\n\n for (i = 0; i < len; i++) {\n rules[i](state);\n }\n};\n\n\nParserInline.prototype.State = require('./rules_inline/state_inline');\n\n\nmodule.exports = ParserInline;\n","module.exports=/[ \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000]/","/**\n * These objects store data about MathML nodes. This is the MathML equivalent\n * of the types in domTree.js. Since MathML handles its own rendering, and\n * since we're mainly using MathML to improve accessibility, we don't manage\n * any of the styling state that the plain DOM nodes do.\n *\n * The `toNode` and `toMarkup` functions work simlarly to how they do in\n * domTree.js, creating namespaced DOM nodes and HTML text markup respectively.\n */\n\nvar utils = require(\"./utils\");\n\n/**\n * This node represents a general purpose MathML node of any type. The\n * constructor requires the type of node to create (for example, `\"mo\"` or\n * `\"mspace\"`, corresponding to `
\n * Called (repeatedly) at the beginning of a frame. Updates the maximum size of\n * the reservoir, and checks to make sure main_data_begin was set properly by\n * the formatter
\n * Background information:\n * \n * This is the original text from the ISO standard. Because of sooo many bugs\n * and irritations correcting comments are added in brackets []. A '^W' means\n * you should remove the last word.\n * \n * \n * 1. The following rule can be used to calculate the maximum\n * number of bits used for one granule [^W frame]:
\n */\n\nvar common = require('./common.js');\nvar assert = common.assert;\n\nfunction Reservoir() {\n\tvar bs;\n\n\tthis.setModules = function(_bs) {\n\t\tbs = _bs;\n\t}\n\n\tthis.ResvFrameBegin = function(gfp, mean_bits) {\n\t\tvar gfc = gfp.internal_flags;\n\t\tvar maxmp3buf;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tvar frameLength = bs.getframebits(gfp);\n\t\tmean_bits.bits = (frameLength - gfc.sideinfo_len * 8) / gfc.mode_gr;\n\n\t\t/**\n\t\t *
\n * At the highest possible bitrate of Layer III (320 kbps\n * per stereo signal [^W^W^W], 48 kHz) the frames must be of\n * [^W^W^W are designed to have] constant length, i.e.\n * one buffer [^W^W the frame] length is:
\n * \n * 320 kbps * 1152/48 kHz = 7680 bit = 960 byte\n * \n * This value is used as the maximum buffer per channel [^W^W] at\n * lower bitrates [than 320 kbps]. At 64 kbps mono or 128 kbps\n * stereo the main granule length is 64 kbps * 576/48 kHz = 768 bit\n * [per granule and channel] at 48 kHz sampling frequency.\n * This means that there is a maximum deviation (short time buffer\n * [= reservoir]) of 7680 - 2*2*768 = 4608 bits is allowed at 64 kbps.\n * The actual deviation is equal to the number of bytes [with the\n * meaning of octets] denoted by the main_data_end offset pointer.\n * The actual maximum deviation is (2^9-1)*8 bit = 4088 bits\n * [for MPEG-1 and (2^8-1)*8 bit for MPEG-2, both are hard limits].\n * ... The xchange of buffer bits between the left and right channel\n * is allowed without restrictions [exception: dual channel].\n * Because of the [constructed] constraint on the buffer size\n * main_data_end is always set to 0 in the case of bit_rate_index==14,\n * i.e. data rate 320 kbps per stereo signal [^W^W^W]. In this case\n * all data are allocated between adjacent header [^W sync] words\n * [, i.e. there is no buffering at all].\n * \n\t\t * Meaning of the variables:\n\t\t * resvLimit: (0, 8, ..., 8*255 (MPEG-2), 8*511 (MPEG-1))\n\t\t * Number of bits can be stored in previous frame(s) due to\n\t\t * counter size constaints\n\t\t * maxmp3buf: ( ??? ... 8*1951 (MPEG-1 and 2), 8*2047 (MPEG-2.5))\n\t\t * Number of bits allowed to encode one frame (you can take 8*511 bit\n\t\t * from the bit reservoir and at most 8*1440 bit from the current\n\t\t * frame (320 kbps, 32 kHz), so 8*1951 bit is the largest possible\n\t\t * value for MPEG-1 and -2)\n\t\t * \n\t\t * maximum allowed granule/channel size times 4 = 8*2047 bits.,\n\t\t * so this is the absolute maximum supported by the format.\n\t\t * \n\t\t * \n\t\t * fullFrameBits: maximum number of bits available for encoding\n\t\t * the current frame.\n\t\t * \n\t\t * mean_bits: target number of bits per granule.\n\t\t * \n\t\t * frameLength:\n\t\t * \n\t\t * gfc.ResvMax: maximum allowed reservoir\n\t\t * \n\t\t * gfc.ResvSize: current reservoir size\n\t\t * \n\t\t * l3_side.resvDrain_pre:\n\t\t * ancillary data to be added to previous frame:\n\t\t * (only usefull in VBR modes if it is possible to have\n\t\t * maxmp3buf < fullFrameBits)). Currently disabled,\n\t\t * see #define NEW_DRAIN\n\t\t * 2010-02-13: RH now enabled, it seems to be needed for CBR too,\n\t\t * as there exists one example, where the FhG decoder\n\t\t * can't decode a -b320 CBR file anymore.\n\t\t * \n\t\t * l3_side.resvDrain_post:\n\t\t * ancillary data to be added to this frame:\n\t\t * \n\t\t *
\n\t\t */\n\n\t\t/* main_data_begin has 9 bits in MPEG-1, 8 bits MPEG-2 */\n\t\tvar resvLimit = (8 * 256) * gfc.mode_gr - 8;\n\n\t\t/*\n\t\t * maximum allowed frame size. dont use more than this number of bits,\n\t\t * even if the frame has the space for them:\n\t\t */\n\t\tif (gfp.brate > 320) {\n\t\t\t/* in freeformat the buffer is constant */\n\t\t\tmaxmp3buf = 8 * ((int) ((gfp.brate * 1000)\n\t\t\t\t\t/ (gfp.out_samplerate / 1152) / 8 + .5));\n\t\t} else {\n\t\t\t/*\n\t\t\t * all mp3 decoders should have enough buffer to handle this value:\n\t\t\t * size of a 320kbps 32kHz frame\n\t\t\t */\n\t\t\tmaxmp3buf = 8 * 1440;\n\n\t\t\t/*\n\t\t\t * Bouvigne suggests this more lax interpretation of the ISO doc\n\t\t\t * instead of using 8*960.\n\t\t\t */\n\n\t\t\tif (gfp.strict_ISO) {\n\t\t\t\tmaxmp3buf = 8 * ((int) (320000 / (gfp.out_samplerate / 1152) / 8 + .5));\n\t\t\t}\n\t\t}\n\n\t\tgfc.ResvMax = maxmp3buf - frameLength;\n\t\tif (gfc.ResvMax > resvLimit)\n\t\t\tgfc.ResvMax = resvLimit;\n\t\tif (gfc.ResvMax < 0 || gfp.disable_reservoir)\n\t\t\tgfc.ResvMax = 0;\n\n\t\tvar fullFrameBits = mean_bits.bits * gfc.mode_gr\n\t\t\t\t+ Math.min(gfc.ResvSize, gfc.ResvMax);\n\n\t\tif (fullFrameBits > maxmp3buf)\n\t\t\tfullFrameBits = maxmp3buf;\n\n\t\tassert (0 == gfc.ResvMax % 8);\n\t\tassert (gfc.ResvMax >= 0);\n\n\t\tl3_side.resvDrain_pre = 0;\n\n\t\t// frame analyzer code\n\t\tif (gfc.pinfo != null) {\n\t\t\t/*\n\t\t\t * expected bits per channel per granule [is this also right for\n\t\t\t * mono/stereo, MPEG-1/2 ?]\n\t\t\t */\n\t\t\tgfc.pinfo.mean_bits = mean_bits.bits / 2;\n\t\t\tgfc.pinfo.resvsize = gfc.ResvSize;\n\t\t}\n\n\t\treturn fullFrameBits;\n\t}\n\n\t/**\n\t * returns targ_bits: target number of bits to use for 1 granule
\n\t * extra_bits: amount extra available from reservoir
\n\t * Mark Taylor 4/99\n\t */\n\tthis.ResvMaxBits = function(gfp, mean_bits, targ_bits, cbr) {\n\t\tvar gfc = gfp.internal_flags;\n\t\tvar add_bits;\n var ResvSize = gfc.ResvSize, ResvMax = gfc.ResvMax;\n\n\t\t/* compensate the saved bits used in the 1st granule */\n\t\tif (cbr != 0)\n\t\t\tResvSize += mean_bits;\n\n\t\tif ((gfc.substep_shaping & 1) != 0)\n\t\t\tResvMax *= 0.9;\n\n\t\ttarg_bits.bits = mean_bits;\n\n\t\t/* extra bits if the reservoir is almost full */\n\t\tif (ResvSize * 10 > ResvMax * 9) {\n\t\t\tadd_bits = ResvSize - (ResvMax * 9) / 10;\n\t\t\ttarg_bits.bits += add_bits;\n\t\t\tgfc.substep_shaping |= 0x80;\n\t\t} else {\n\t\t\tadd_bits = 0;\n\t\t\tgfc.substep_shaping &= 0x7f;\n\t\t\t/*\n\t\t\t * build up reservoir. this builds the reservoir a little slower\n\t\t\t * than FhG. It could simple be mean_bits/15, but this was rigged to\n\t\t\t * always produce 100 (the old value) at 128kbs\n\t\t\t */\n\t\t\tif (!gfp.disable_reservoir && 0 == (gfc.substep_shaping & 1))\n\t\t\t\ttarg_bits.bits -= .1 * mean_bits;\n\t\t}\n\n\t\t/* amount from the reservoir we are allowed to use. ISO says 6/10 */\n\t\tvar extra_bits = (ResvSize < (gfc.ResvMax * 6) / 10 ? ResvSize\n\t\t\t\t: (gfc.ResvMax * 6) / 10);\n\t\textra_bits -= add_bits;\n\n\t\tif (extra_bits < 0)\n\t\t\textra_bits = 0;\n\t\treturn extra_bits;\n\t}\n\n\t/**\n\t * Called after a granule's bit allocation. Readjusts the size of the\n\t * reservoir to reflect the granule's usage.\n\t */\n\tthis.ResvAdjust = function(gfc, gi) {\n\t\tgfc.ResvSize -= gi.part2_3_length + gi.part2_length;\n\t}\n\n\t/**\n\t * Called after all granules in a frame have been allocated. Makes sure that\n\t * the reservoir size is within limits, possibly by adding stuffing bits.\n\t */\n\tthis.ResvFrameEnd = function(gfc, mean_bits) {\n\t\tvar over_bits;\n\t\tvar l3_side = gfc.l3_side;\n\n\t\tgfc.ResvSize += mean_bits * gfc.mode_gr;\n\t\tvar stuffingBits = 0;\n\t\tl3_side.resvDrain_post = 0;\n\t\tl3_side.resvDrain_pre = 0;\n\n\t\t/* we must be byte aligned */\n\t\tif ((over_bits = gfc.ResvSize % 8) != 0)\n\t\t\tstuffingBits += over_bits;\n\n\t\tover_bits = (gfc.ResvSize - stuffingBits) - gfc.ResvMax;\n\t\tif (over_bits > 0) {\n\t\t\tassert (0 == over_bits % 8);\n\t\t\tassert (over_bits >= 0);\n\t\t\tstuffingBits += over_bits;\n\t\t}\n\n\t\t/*\n\t\t * NOTE: enabling the NEW_DRAIN code fixes some problems with FhG\n\t\t * decoder shipped with MS Windows operating systems. Using this, it is\n\t\t * even possible to use Gabriel's lax buffer consideration again, which\n\t\t * assumes, any decoder should have a buffer large enough for a 320 kbps\n\t\t * frame at 32 kHz sample rate.\n\t\t * \n\t\t * old drain code: lame -b320 BlackBird.wav --. does not play with\n\t\t * GraphEdit.exe using FhG decoder V1.5 Build 50\n\t\t * \n\t\t * new drain code: lame -b320 BlackBird.wav --. plays fine with\n\t\t * GraphEdit.exe using FhG decoder V1.5 Build 50\n\t\t * \n\t\t * Robert Hegemann, 2010-02-13.\n\t\t */\n\t\t/*\n\t\t * drain as many bits as possible into previous frame ancillary data In\n\t\t * particular, in VBR mode ResvMax may have changed, and we have to make\n\t\t * sure main_data_begin does not create a reservoir bigger than ResvMax\n\t\t * mt 4/00\n\t\t */\n\t\t{\n\t\t\tvar mdb_bytes = Math.min(l3_side.main_data_begin * 8, stuffingBits) / 8;\n\t\t\tl3_side.resvDrain_pre += 8 * mdb_bytes;\n\t\t\tstuffingBits -= 8 * mdb_bytes;\n\t\t\tgfc.ResvSize -= 8 * mdb_bytes;\n\t\t\tl3_side.main_data_begin -= mdb_bytes;\n\t\t}\n\t\t/* drain the rest into this frames ancillary data */\n\t\tl3_side.resvDrain_post += stuffingBits;\n\t\tgfc.ResvSize -= stuffingBits;\n\t}\n}\n\nmodule.exports = Reservoir;\n","/**\n * This file contains information about the options that the Parser carries\n * around with it while parsing. Data is held in an `Options` object, and when\n * recursing, a new `Options` object can be created with the `.with*` and\n * `.reset` functions.\n */\n\n/**\n * This is the main options class. It contains the style, size, color, and font\n * of the current parse level. It also contains the style and size of the parent\n * parse level, so size changes can be handled efficiently.\n *\n * Each of the `.with*` and `.reset` functions passes its current style and size\n * as the parentStyle and parentSize of the new options class, so parent\n * handling is taken care of automatically.\n */\nfunction Options(data) {\n this.style = data.style;\n this.color = data.color;\n this.size = data.size;\n this.phantom = data.phantom;\n this.font = data.font;\n\n if (data.parentStyle === undefined) {\n this.parentStyle = data.style;\n } else {\n this.parentStyle = data.parentStyle;\n }\n\n if (data.parentSize === undefined) {\n this.parentSize = data.size;\n } else {\n this.parentSize = data.parentSize;\n }\n}\n\n/**\n * Returns a new options object with the same properties as \"this\". Properties\n * from \"extension\" will be copied to the new options object.\n */\nOptions.prototype.extend = function(extension) {\n var data = {\n style: this.style,\n size: this.size,\n color: this.color,\n parentStyle: this.style,\n parentSize: this.size,\n phantom: this.phantom,\n font: this.font,\n };\n\n for (var key in extension) {\n if (extension.hasOwnProperty(key)) {\n data[key] = extension[key];\n }\n }\n\n return new Options(data);\n};\n\n/**\n * Create a new options object with the given style.\n */\nOptions.prototype.withStyle = function(style) {\n return this.extend({\n style: style,\n });\n};\n\n/**\n * Create a new options object with the given size.\n */\nOptions.prototype.withSize = function(size) {\n return this.extend({\n size: size,\n });\n};\n\n/**\n * Create a new options object with the given color.\n */\nOptions.prototype.withColor = function(color) {\n return this.extend({\n color: color,\n });\n};\n\n/**\n * Create a new options object with \"phantom\" set to true.\n */\nOptions.prototype.withPhantom = function() {\n return this.extend({\n phantom: true,\n });\n};\n\n/**\n * Create a new options objects with the give font.\n */\nOptions.prototype.withFont = function(font) {\n return this.extend({\n font: font,\n });\n};\n\n/**\n * Create a new options object with the same style, size, and color. This is\n * used so that parent style and size changes are handled correctly.\n */\nOptions.prototype.reset = function() {\n return this.extend({});\n};\n\n/**\n * A map of color names to CSS colors.\n * TODO(emily): Remove this when we have real macros\n */\nvar colorMap = {\n \"katex-blue\": \"#6495ed\",\n \"katex-orange\": \"#ffa500\",\n \"katex-pink\": \"#ff00af\",\n \"katex-red\": \"#df0030\",\n \"katex-green\": \"#28ae7b\",\n \"katex-gray\": \"gray\",\n \"katex-purple\": \"#9d38bd\",\n \"katex-blueA\": \"#c7e9f1\",\n \"katex-blueB\": \"#9cdceb\",\n \"katex-blueC\": \"#58c4dd\",\n \"katex-blueD\": \"#29abca\",\n \"katex-blueE\": \"#1c758a\",\n \"katex-tealA\": \"#acead7\",\n \"katex-tealB\": \"#76ddc0\",\n \"katex-tealC\": \"#5cd0b3\",\n \"katex-tealD\": \"#55c1a7\",\n \"katex-tealE\": \"#49a88f\",\n \"katex-greenA\": \"#c9e2ae\",\n \"katex-greenB\": \"#a6cf8c\",\n \"katex-greenC\": \"#83c167\",\n \"katex-greenD\": \"#77b05d\",\n \"katex-greenE\": \"#699c52\",\n \"katex-goldA\": \"#f7c797\",\n \"katex-goldB\": \"#f9b775\",\n \"katex-goldC\": \"#f0ac5f\",\n \"katex-goldD\": \"#e1a158\",\n \"katex-goldE\": \"#c78d46\",\n \"katex-redA\": \"#f7a1a3\",\n \"katex-redB\": \"#ff8080\",\n \"katex-redC\": \"#fc6255\",\n \"katex-redD\": \"#e65a4c\",\n \"katex-redE\": \"#cf5044\",\n \"katex-maroonA\": \"#ecabc1\",\n \"katex-maroonB\": \"#ec92ab\",\n \"katex-maroonC\": \"#c55f73\",\n \"katex-maroonD\": \"#a24d61\",\n \"katex-maroonE\": \"#94424f\",\n \"katex-purpleA\": \"#caa3e8\",\n \"katex-purpleB\": \"#b189c6\",\n \"katex-purpleC\": \"#9a72ac\",\n \"katex-purpleD\": \"#715582\",\n \"katex-purpleE\": \"#644172\",\n \"katex-mintA\": \"#f5f9e8\",\n \"katex-mintB\": \"#edf2df\",\n \"katex-mintC\": \"#e0e5cc\",\n \"katex-grayA\": \"#fdfdfd\",\n \"katex-grayB\": \"#f7f7f7\",\n \"katex-grayC\": \"#eeeeee\",\n \"katex-grayD\": \"#dddddd\",\n \"katex-grayE\": \"#cccccc\",\n \"katex-grayF\": \"#aaaaaa\",\n \"katex-grayG\": \"#999999\",\n \"katex-grayH\": \"#555555\",\n \"katex-grayI\": \"#333333\",\n \"katex-kaBlue\": \"#314453\",\n \"katex-kaGreen\": \"#639b24\",\n};\n\n/**\n * Gets the CSS color of the current options object, accounting for the\n * `colorMap`.\n */\nOptions.prototype.getColor = function() {\n if (this.phantom) {\n return \"transparent\";\n } else {\n return colorMap[this.color] || this.color;\n }\n};\n\nmodule.exports = Options;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// Process html entity - {, ¯, ", ...\n\n'use strict';\n\nvar entities = require('../common/entities');\nvar has = require('../common/utils').has;\nvar isValidEntityCode = require('../common/utils').isValidEntityCode;\nvar fromCodePoint = require('../common/utils').fromCodePoint;\n\n\nvar DIGITAL_RE = /^((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i;\nvar NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i;\n\n\nmodule.exports = function entity(state, silent) {\n var ch, code, match, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x26/* & */) { return false; }\n\n if (pos + 1 < max) {\n ch = state.src.charCodeAt(pos + 1);\n\n if (ch === 0x23 /* # */) {\n match = state.src.slice(pos).match(DIGITAL_RE);\n if (match) {\n if (!silent) {\n code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);\n state.pending += isValidEntityCode(code) ? fromCodePoint(code) : fromCodePoint(0xFFFD);\n }\n state.pos += match[0].length;\n return true;\n }\n } else {\n match = state.src.slice(pos).match(NAMED_RE);\n if (match) {\n if (has(entities, match[1])) {\n if (!silent) { state.pending += entities[match[1]]; }\n state.pos += match[0].length;\n return true;\n }\n }\n }\n }\n\n if (!silent) { state.pending += '&'; }\n state.pos++;\n return true;\n};\n","function HuffCodeTab(len, max, tab, hl) {\n this.xlen = len;\n this.linmax = max;\n this.table = tab;\n this.hlen = hl;\n}\n\nvar Tables = {};\n\n\nTables.t1HB = [\n 1, 1,\n 1, 0\n];\n\nTables.t2HB = [\n 1, 2, 1,\n 3, 1, 1,\n 3, 2, 0\n];\n\nTables.t3HB = [\n 3, 2, 1,\n 1, 1, 1,\n 3, 2, 0\n];\n\nTables.t5HB = [\n 1, 2, 6, 5,\n 3, 1, 4, 4,\n 7, 5, 7, 1,\n 6, 1, 1, 0\n];\n\nTables.t6HB = [\n 7, 3, 5, 1,\n 6, 2, 3, 2,\n 5, 4, 4, 1,\n 3, 3, 2, 0\n];\n\nTables.t7HB = [\n 1, 2, 10, 19, 16, 10,\n 3, 3, 7, 10, 5, 3,\n 11, 4, 13, 17, 8, 4,\n 12, 11, 18, 15, 11, 2,\n 7, 6, 9, 14, 3, 1,\n 6, 4, 5, 3, 2, 0\n];\n\nTables.t8HB = [\n 3, 4, 6, 18, 12, 5,\n 5, 1, 2, 16, 9, 3,\n 7, 3, 5, 14, 7, 3,\n 19, 17, 15, 13, 10, 4,\n 13, 5, 8, 11, 5, 1,\n 12, 4, 4, 1, 1, 0\n];\n\nTables.t9HB = [\n 7, 5, 9, 14, 15, 7,\n 6, 4, 5, 5, 6, 7,\n 7, 6, 8, 8, 8, 5,\n 15, 6, 9, 10, 5, 1,\n 11, 7, 9, 6, 4, 1,\n 14, 4, 6, 2, 6, 0\n];\n\nTables.t10HB = [\n 1, 2, 10, 23, 35, 30, 12, 17,\n 3, 3, 8, 12, 18, 21, 12, 7,\n 11, 9, 15, 21, 32, 40, 19, 6,\n 14, 13, 22, 34, 46, 23, 18, 7,\n 20, 19, 33, 47, 27, 22, 9, 3,\n 31, 22, 41, 26, 21, 20, 5, 3,\n 14, 13, 10, 11, 16, 6, 5, 1,\n 9, 8, 7, 8, 4, 4, 2, 0\n];\n\nTables.t11HB = [\n 3, 4, 10, 24, 34, 33, 21, 15,\n 5, 3, 4, 10, 32, 17, 11, 10,\n 11, 7, 13, 18, 30, 31, 20, 5,\n 25, 11, 19, 59, 27, 18, 12, 5,\n 35, 33, 31, 58, 30, 16, 7, 5,\n 28, 26, 32, 19, 17, 15, 8, 14,\n 14, 12, 9, 13, 14, 9, 4, 1,\n 11, 4, 6, 6, 6, 3, 2, 0\n];\n\nTables.t12HB = [\n 9, 6, 16, 33, 41, 39, 38, 26,\n 7, 5, 6, 9, 23, 16, 26, 11,\n 17, 7, 11, 14, 21, 30, 10, 7,\n 17, 10, 15, 12, 18, 28, 14, 5,\n 32, 13, 22, 19, 18, 16, 9, 5,\n 40, 17, 31, 29, 17, 13, 4, 2,\n 27, 12, 11, 15, 10, 7, 4, 1,\n 27, 12, 8, 12, 6, 3, 1, 0\n];\n\nTables.t13HB = [\n 1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19,\n 3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14,\n 15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16,\n 22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14,\n 35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24,\n 58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17,\n 47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15,\n 72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42,\n 43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16,\n 53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11,\n 35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22,\n 53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7,\n 34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5,\n 45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3,\n 48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2,\n 16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1\n];\n\nTables.t15HB = [\n 7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63,\n 13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36,\n 19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33,\n 29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29,\n 52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27,\n 77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,\n 125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30,\n 109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25,\n 90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,\n 71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15,\n 109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9,\n 86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,\n 118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7,\n 91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3,\n 123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1,\n 71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0\n];\n\nTables.t16HB = [\n 1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17,\n 3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9,\n 15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16,\n 45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26,\n 75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9,\n 66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16,\n 111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10,\n 98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8,\n 85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7,\n 154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11,\n 139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4,\n 243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6,\n 202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4,\n 747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2,\n 377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0,\n 12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3\n];\n\nTables.t24HB = [\n 15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88,\n 14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42,\n 47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18,\n 81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16,\n 147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14,\n 263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12,\n 249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10,\n 435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17,\n 427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16,\n 335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11,\n 668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10,\n 652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6,\n 648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4,\n 620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2,\n 1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0,\n 43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3\n];\n\nTables.t32HB = [\n 1 << 0, 5 << 1, 4 << 1, 5 << 2, 6 << 1, 5 << 2, 4 << 2, 4 << 3,\n 7 << 1, 3 << 2, 6 << 2, 0 << 3, 7 << 2, 2 << 3, 3 << 3, 1 << 4\n];\n\nTables.t33HB = [\n 15 << 0, 14 << 1, 13 << 1, 12 << 2, 11 << 1, 10 << 2, 9 << 2, 8 << 3,\n 7 << 1, 6 << 2, 5 << 2, 4 << 3, 3 << 2, 2 << 3, 1 << 3, 0 << 4\n];\n\nTables.t1l = [\n 1, 4,\n 3, 5\n];\n\nTables.t2l = [\n 1, 4, 7,\n 4, 5, 7,\n 6, 7, 8\n];\n\nTables.t3l = [\n 2, 3, 7,\n 4, 4, 7,\n 6, 7, 8\n];\n\nTables.t5l = [\n 1, 4, 7, 8,\n 4, 5, 8, 9,\n 7, 8, 9, 10,\n 8, 8, 9, 10\n];\n\nTables.t6l = [\n 3, 4, 6, 8,\n 4, 4, 6, 7,\n 5, 6, 7, 8,\n 7, 7, 8, 9\n];\n\nTables.t7l = [\n 1, 4, 7, 9, 9, 10,\n 4, 6, 8, 9, 9, 10,\n 7, 7, 9, 10, 10, 11,\n 8, 9, 10, 11, 11, 11,\n 8, 9, 10, 11, 11, 12,\n 9, 10, 11, 12, 12, 12\n];\n\nTables.t8l = [\n 2, 4, 7, 9, 9, 10,\n 4, 4, 6, 10, 10, 10,\n 7, 6, 8, 10, 10, 11,\n 9, 10, 10, 11, 11, 12,\n 9, 9, 10, 11, 12, 12,\n 10, 10, 11, 11, 13, 13\n];\n\nTables.t9l = [\n 3, 4, 6, 7, 9, 10,\n 4, 5, 6, 7, 8, 10,\n 5, 6, 7, 8, 9, 10,\n 7, 7, 8, 9, 9, 10,\n 8, 8, 9, 9, 10, 11,\n 9, 9, 10, 10, 11, 11\n];\n\nTables.t10l = [\n 1, 4, 7, 9, 10, 10, 10, 11,\n 4, 6, 8, 9, 10, 11, 10, 10,\n 7, 8, 9, 10, 11, 12, 11, 11,\n 8, 9, 10, 11, 12, 12, 11, 12,\n 9, 10, 11, 12, 12, 12, 12, 12,\n 10, 11, 12, 12, 13, 13, 12, 13,\n 9, 10, 11, 12, 12, 12, 13, 13,\n 10, 10, 11, 12, 12, 13, 13, 13\n];\n\nTables.t11l = [\n 2, 4, 6, 8, 9, 10, 9, 10,\n 4, 5, 6, 8, 10, 10, 9, 10,\n 6, 7, 8, 9, 10, 11, 10, 10,\n 8, 8, 9, 11, 10, 12, 10, 11,\n 9, 10, 10, 11, 11, 12, 11, 12,\n 9, 10, 11, 12, 12, 13, 12, 13,\n 9, 9, 9, 10, 11, 12, 12, 12,\n 9, 9, 10, 11, 12, 12, 12, 12\n];\n\nTables.t12l = [\n 4, 4, 6, 8, 9, 10, 10, 10,\n 4, 5, 6, 7, 9, 9, 10, 10,\n 6, 6, 7, 8, 9, 10, 9, 10,\n 7, 7, 8, 8, 9, 10, 10, 10,\n 8, 8, 9, 9, 10, 10, 10, 11,\n 9, 9, 10, 10, 10, 11, 10, 11,\n 9, 9, 9, 10, 10, 11, 11, 12,\n 10, 10, 10, 11, 11, 11, 11, 12\n];\n\nTables.t13l = [\n 1, 5, 7, 8, 9, 10, 10, 11, 10, 11, 12, 12, 13, 13, 14, 14,\n 4, 6, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 13, 14, 14, 14,\n 7, 8, 9, 10, 11, 11, 12, 12, 11, 12, 12, 13, 13, 14, 15, 15,\n 8, 9, 10, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 15,\n 9, 9, 11, 11, 12, 12, 13, 13, 12, 13, 13, 14, 14, 15, 15, 16,\n 10, 10, 11, 12, 12, 12, 13, 13, 13, 13, 14, 13, 15, 15, 16, 16,\n 10, 11, 12, 12, 13, 13, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16,\n 11, 11, 12, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 16, 18, 18,\n 10, 10, 11, 12, 12, 13, 13, 14, 14, 14, 14, 15, 15, 16, 17, 17,\n 11, 11, 12, 12, 13, 13, 13, 15, 14, 15, 15, 16, 16, 16, 18, 17,\n 11, 12, 12, 13, 13, 14, 14, 15, 14, 15, 16, 15, 16, 17, 18, 19,\n 12, 12, 12, 13, 14, 14, 14, 14, 15, 15, 15, 16, 17, 17, 17, 18,\n 12, 13, 13, 14, 14, 15, 14, 15, 16, 16, 17, 17, 17, 18, 18, 18,\n 13, 13, 14, 15, 15, 15, 16, 16, 16, 16, 16, 17, 18, 17, 18, 18,\n 14, 14, 14, 15, 15, 15, 17, 16, 16, 19, 17, 17, 17, 19, 18, 18,\n 13, 14, 15, 16, 16, 16, 17, 16, 17, 17, 18, 18, 21, 20, 21, 18\n];\n\nTables.t15l = [\n 3, 5, 6, 8, 8, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 14,\n 5, 5, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13,\n 6, 7, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 13, 13, 13,\n 7, 8, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13,\n 8, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13,\n 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 13, 14,\n 10, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14,\n 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 14,\n 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 14, 14,\n 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14,\n 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 15, 14,\n 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15,\n 12, 12, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 14, 14, 15, 15,\n 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15,\n 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 14, 15,\n 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 15, 15, 15, 15\n];\n\nTables.t16_5l = [\n 1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 11,\n 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 11,\n 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 12,\n 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 13,\n 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 12,\n 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 13,\n 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 13,\n 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 13,\n 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 13,\n 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 14,\n 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 13,\n 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 14,\n 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 14,\n 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 14,\n 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 14,\n 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 12\n];\n\nTables.t16l = [\n 1, 5, 7, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14, 10,\n 4, 6, 8, 9, 10, 11, 11, 11, 12, 12, 12, 13, 14, 13, 14, 10,\n 7, 8, 9, 10, 11, 11, 12, 12, 13, 12, 13, 13, 13, 14, 14, 11,\n 9, 9, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15, 15, 12,\n 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 11,\n 10, 10, 11, 11, 12, 13, 13, 14, 13, 14, 14, 15, 15, 15, 16, 12,\n 11, 11, 11, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 16, 12,\n 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 17, 17, 12,\n 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15, 15, 16, 16, 16, 12,\n 12, 12, 12, 13, 13, 14, 14, 15, 15, 15, 15, 16, 15, 16, 15, 13,\n 12, 13, 12, 13, 14, 14, 14, 14, 15, 16, 16, 16, 17, 17, 16, 12,\n 13, 13, 13, 13, 14, 14, 15, 16, 16, 16, 16, 16, 16, 15, 16, 13,\n 13, 14, 14, 14, 14, 15, 15, 15, 15, 17, 16, 16, 16, 16, 18, 13,\n 15, 14, 14, 14, 15, 15, 16, 16, 16, 18, 17, 17, 17, 19, 17, 13,\n 14, 15, 13, 14, 16, 16, 15, 16, 16, 17, 18, 17, 19, 17, 16, 13,\n 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10\n];\n\nTables.t24l = [\n 4, 5, 7, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 13, 10,\n 5, 6, 7, 8, 9, 10, 10, 11, 11, 11, 12, 12, 12, 12, 12, 10,\n 7, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 9,\n 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 9,\n 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 9,\n 10, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 9,\n 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 9,\n 11, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 10,\n 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 10,\n 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 10,\n 12, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,\n 12, 12, 11, 11, 11, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 10,\n 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 10,\n 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 10,\n 13, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 10,\n 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 6\n];\n\nTables.t32l = [\n 1 + 0, 4 + 1, 4 + 1, 5 + 2, 4 + 1, 6 + 2, 5 + 2, 6 + 3,\n 4 + 1, 5 + 2, 5 + 2, 6 + 3, 5 + 2, 6 + 3, 6 + 3, 6 + 4\n];\n\nTables.t33l = [\n 4 + 0, 4 + 1, 4 + 1, 4 + 2, 4 + 1, 4 + 2, 4 + 2, 4 + 3,\n 4 + 1, 4 + 2, 4 + 2, 4 + 3, 4 + 2, 4 + 3, 4 + 3, 4 + 4\n];\n\nTables.ht = [\n /* xlen, linmax, table, hlen */\n new HuffCodeTab(0, 0, null, null),\n new HuffCodeTab(2, 0, Tables.t1HB, Tables.t1l),\n new HuffCodeTab(3, 0, Tables.t2HB, Tables.t2l),\n new HuffCodeTab(3, 0, Tables.t3HB, Tables.t3l),\n new HuffCodeTab(0, 0, null, null), /* Apparently not used */\n new HuffCodeTab(4, 0, Tables.t5HB, Tables.t5l),\n new HuffCodeTab(4, 0, Tables.t6HB, Tables.t6l),\n new HuffCodeTab(6, 0, Tables.t7HB, Tables.t7l),\n new HuffCodeTab(6, 0, Tables.t8HB, Tables.t8l),\n new HuffCodeTab(6, 0, Tables.t9HB, Tables.t9l),\n new HuffCodeTab(8, 0, Tables.t10HB, Tables.t10l),\n new HuffCodeTab(8, 0, Tables.t11HB, Tables.t11l),\n new HuffCodeTab(8, 0, Tables.t12HB, Tables.t12l),\n new HuffCodeTab(16, 0, Tables.t13HB, Tables.t13l),\n new HuffCodeTab(0, 0, null, Tables.t16_5l), /* Apparently not used */\n new HuffCodeTab(16, 0, Tables.t15HB, Tables.t15l),\n\n new HuffCodeTab(1, 1, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(2, 3, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(3, 7, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(4, 15, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(6, 63, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(8, 255, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(10, 1023, Tables.t16HB, Tables.t16l),\n new HuffCodeTab(13, 8191, Tables.t16HB, Tables.t16l),\n\n new HuffCodeTab(4, 15, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(5, 31, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(6, 63, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(7, 127, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(8, 255, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(9, 511, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(11, 2047, Tables.t24HB, Tables.t24l),\n new HuffCodeTab(13, 8191, Tables.t24HB, Tables.t24l),\n\n new HuffCodeTab(0, 0, Tables.t32HB, Tables.t32l),\n new HuffCodeTab(0, 0, Tables.t33HB, Tables.t33l),\n];\n\n/**\n * \n * for (i = 0; i < 16*16; i++) [\n * largetbl[i] = ((ht[16].hlen[i]) << 16) + ht[24].hlen[i];\n * ]\n *
\n *\n */\nTables.largetbl = [\n 0x010004, 0x050005, 0x070007, 0x090008, 0x0a0009, 0x0a000a, 0x0b000a, 0x0b000b,\n 0x0c000b, 0x0c000c, 0x0c000c, 0x0d000c, 0x0d000c, 0x0d000c, 0x0e000d, 0x0a000a,\n 0x040005, 0x060006, 0x080007, 0x090008, 0x0a0009, 0x0b000a, 0x0b000a, 0x0b000b,\n 0x0c000b, 0x0c000b, 0x0c000c, 0x0d000c, 0x0e000c, 0x0d000c, 0x0e000c, 0x0a000a,\n 0x070007, 0x080007, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000b,\n 0x0d000b, 0x0c000b, 0x0d000b, 0x0d000c, 0x0d000c, 0x0e000c, 0x0e000d, 0x0b0009,\n 0x090008, 0x090008, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0c000b,\n 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0c0009,\n 0x0a0009, 0x0a0009, 0x0b0009, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000a, 0x0d000b,\n 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000d, 0x0b0009,\n 0x0a000a, 0x0a0009, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0e000b,\n 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0c0009,\n 0x0b000a, 0x0b000a, 0x0b000a, 0x0c000a, 0x0d000a, 0x0d000b, 0x0d000b, 0x0d000b,\n 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000d, 0x0c0009,\n 0x0b000b, 0x0b000a, 0x0c000a, 0x0c000a, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b,\n 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x0f000c, 0x11000d, 0x11000d, 0x0c000a,\n 0x0b000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b,\n 0x0f000b, 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000d, 0x10000d, 0x0c000a,\n 0x0c000b, 0x0c000b, 0x0c000b, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000b, 0x0f000c,\n 0x0f000c, 0x0f000c, 0x0f000c, 0x10000c, 0x0f000d, 0x10000d, 0x0f000d, 0x0d000a,\n 0x0c000c, 0x0d000b, 0x0c000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0e000c, 0x0e000c,\n 0x0f000c, 0x10000c, 0x10000c, 0x10000d, 0x11000d, 0x11000d, 0x10000d, 0x0c000a,\n 0x0d000c, 0x0d000c, 0x0d000b, 0x0d000b, 0x0e000b, 0x0e000c, 0x0f000c, 0x10000c,\n 0x10000c, 0x10000c, 0x10000c, 0x10000d, 0x10000d, 0x0f000d, 0x10000d, 0x0d000a,\n 0x0d000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x0f000c,\n 0x0f000c, 0x11000c, 0x10000d, 0x10000d, 0x10000d, 0x10000d, 0x12000d, 0x0d000a,\n 0x0f000c, 0x0e000c, 0x0e000c, 0x0e000c, 0x0f000c, 0x0f000c, 0x10000c, 0x10000c,\n 0x10000d, 0x12000d, 0x11000d, 0x11000d, 0x11000d, 0x13000d, 0x11000d, 0x0d000a,\n 0x0e000d, 0x0f000c, 0x0d000c, 0x0e000c, 0x10000c, 0x10000c, 0x0f000c, 0x10000d,\n 0x10000d, 0x11000d, 0x12000d, 0x11000d, 0x13000d, 0x11000d, 0x10000d, 0x0d000a,\n 0x0a0009, 0x0a0009, 0x0a0009, 0x0b0009, 0x0b0009, 0x0c0009, 0x0c0009, 0x0c0009,\n 0x0d0009, 0x0d0009, 0x0d0009, 0x0d000a, 0x0d000a, 0x0d000a, 0x0d000a, 0x0a0006\n];\n/**\n * \n * for (i = 0; i < 3*3; i++) [\n * table23[i] = ((ht[2].hlen[i]) << 16) + ht[3].hlen[i];\n * ]\n *
\n *\n */\nTables.table23 = [\n 0x010002, 0x040003, 0x070007,\n 0x040004, 0x050004, 0x070007,\n 0x060006, 0x070007, 0x080008\n];\n\n/**\n * \n * for (i = 0; i < 4*4; i++) [\n * table56[i] = ((ht[5].hlen[i]) << 16) + ht[6].hlen[i];\n * ]\n *
\n *\n */\nTables.table56 = [\n 0x010003, 0x040004, 0x070006, 0x080008, 0x040004, 0x050004, 0x080006, 0x090007,\n 0x070005, 0x080006, 0x090007, 0x0a0008, 0x080007, 0x080007, 0x090008, 0x0a0009\n];\n\nTables.bitrate_table = [\n [0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, -1], /* MPEG 2 */\n [0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, -1], /* MPEG 1 */\n [0, 8, 16, 24, 32, 40, 48, 56, 64, -1, -1, -1, -1, -1, -1, -1], /* MPEG 2.5 */\n];\n\n/**\n * MPEG 2, MPEG 1, MPEG 2.5.\n */\nTables.samplerate_table = [\n [22050, 24000, 16000, -1],\n [44100, 48000, 32000, -1],\n [11025, 12000, 8000, -1],\n];\n\n/**\n * This is the scfsi_band table from 2.4.2.7 of the IS.\n */\nTables.scfsi_band = [0, 6, 11, 16, 21];\n\nmodule.exports = Tables;\n","// HTML block\n\n'use strict';\n\n\nvar block_names = require('../common/html_blocks');\nvar HTML_OPEN_CLOSE_TAG_RE = require('../common/html_re').HTML_OPEN_CLOSE_TAG_RE;\n\n// An array of opening and corresponding closing sequences for html tags,\n// last argument defines whether it can terminate a paragraph or not\n//\nvar HTML_SEQUENCES = [\n [ /^<(script|pre|style)(?=(\\s|>|$))/i, /<\\/(script|pre|style)>/i, true ],\n [ /^/, true ],\n [ /^<\\?/, /\\?>/, true ],\n [ /^/, true ],\n [ /^/, true ],\n [ new RegExp('^?(' + block_names.join('|') + ')(?=(\\\\s|/?>|$))', 'i'), /^$/, true ],\n [ new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\\\s*$'), /^$/, false ]\n];\n\n\nmodule.exports = function html_block(state, startLine, endLine, silent) {\n var i, nextLine, token, lineText,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n if (!state.md.options.html) { return false; }\n\n if (state.src.charCodeAt(pos) !== 0x3C/* < */) { return false; }\n\n lineText = state.src.slice(pos, max);\n\n for (i = 0; i < HTML_SEQUENCES.length; i++) {\n if (HTML_SEQUENCES[i][0].test(lineText)) { break; }\n }\n\n if (i === HTML_SEQUENCES.length) { return false; }\n\n if (silent) {\n // true if this sequence can be a terminator, false otherwise\n return HTML_SEQUENCES[i][2];\n }\n\n nextLine = startLine + 1;\n\n // If we are here - we detected HTML block.\n // Let's roll down till block end.\n if (!HTML_SEQUENCES[i][1].test(lineText)) {\n for (; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n lineText = state.src.slice(pos, max);\n\n if (HTML_SEQUENCES[i][1].test(lineText)) {\n if (lineText.length !== 0) { nextLine++; }\n break;\n }\n }\n }\n\n state.line = nextLine;\n\n token = state.push('html_block', '', 0);\n token.map = [ startLine, nextLine ];\n token.content = state.getLines(startLine, nextLine, state.blkIndent, true);\n\n return true;\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","/*\n * List of Unicode code that are flagged as number.\n *\n * Contains Unicode code of:\n * - Nd = Number, decimal digit\n * - Nl = Number, letter\n * - No = Number, other\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Nd;|;Nl;|;No;' | cut -d \\; -f 1 | xargs -I{} printf '%d, ' 0x{}\n *\n */\nexports.N = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 178, 179, 185, 188, 189, 190, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2548, 2549, 2550, 2551, 2552, 2553, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2930, 2931, 2932, 2933, 2934, 2935, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 5870, 5871, 5872, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 8304, 8308, 8309, 8310, 8311, 8312, 8313, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8581, 8582, 8583, 8584, 8585, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 11517, 12295, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12344, 12345, 12346, 12690, 12691, 12692, 12693, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 42528, 42529, 42530, 42531, 42532, 42533, 42534, 42535, 42536, 42537, 42726, 42727, 42728, 42729, 42730, 42731, 42732, 42733, 42734, 42735, 43056, 43057, 43058, 43059, 43060, 43061, 43216, 43217, 43218, 43219, 43220, 43221, 43222, 43223, 43224, 43225, 43264, 43265, 43266, 43267, 43268, 43269, 43270, 43271, 43272, 43273, 43472, 43473, 43474, 43475, 43476, 43477, 43478, 43479, 43480, 43481, 43504, 43505, 43506, 43507, 43508, 43509, 43510, 43511, 43512, 43513, 43600, 43601, 43602, 43603, 43604, 43605, 43606, 43607, 43608, 43609, 44016, 44017, 44018, 44019, 44020, 44021, 44022, 44023, 44024, 44025, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 65799, 65800, 65801, 65802, 65803, 65804, 65805, 65806, 65807, 65808, 65809, 65810, 65811, 65812, 65813, 65814, 65815, 65816, 65817, 65818, 65819, 65820, 65821, 65822, 65823, 65824, 65825, 65826, 65827, 65828, 65829, 65830, 65831, 65832, 65833, 65834, 65835, 65836, 65837, 65838, 65839, 65840, 65841, 65842, 65843, 65856, 65857, 65858, 65859, 65860, 65861, 65862, 65863, 65864, 65865, 65866, 65867, 65868, 65869, 65870, 65871, 65872, 65873, 65874, 65875, 65876, 65877, 65878, 65879, 65880, 65881, 65882, 65883, 65884, 65885, 65886, 65887, 65888, 65889, 65890, 65891, 65892, 65893, 65894, 65895, 65896, 65897, 65898, 65899, 65900, 65901, 65902, 65903, 65904, 65905, 65906, 65907, 65908, 65909, 65910, 65911, 65912, 65930, 65931, 66273, 66274, 66275, 66276, 66277, 66278, 66279, 66280, 66281, 66282, 66283, 66284, 66285, 66286, 66287, 66288, 66289, 66290, 66291, 66292, 66293, 66294, 66295, 66296, 66297, 66298, 66299, 66336, 66337, 66338, 66339, 66369, 66378, 66513, 66514, 66515, 66516, 66517, 66720, 66721, 66722, 66723, 66724, 66725, 66726, 66727, 66728, 66729, 67672, 67673, 67674, 67675, 67676, 67677, 67678, 67679, 67705, 67706, 67707, 67708, 67709, 67710, 67711, 67751, 67752, 67753, 67754, 67755, 67756, 67757, 67758, 67759, 67835, 67836, 67837, 67838, 67839, 67862, 67863, 67864, 67865, 67866, 67867, 68028, 68029, 68032, 68033, 68034, 68035, 68036, 68037, 68038, 68039, 68040, 68041, 68042, 68043, 68044, 68045, 68046, 68047, 68050, 68051, 68052, 68053, 68054, 68055, 68056, 68057, 68058, 68059, 68060, 68061, 68062, 68063, 68064, 68065, 68066, 68067, 68068, 68069, 68070, 68071, 68072, 68073, 68074, 68075, 68076, 68077, 68078, 68079, 68080, 68081, 68082, 68083, 68084, 68085, 68086, 68087, 68088, 68089, 68090, 68091, 68092, 68093, 68094, 68095, 68160, 68161, 68162, 68163, 68164, 68165, 68166, 68167, 68221, 68222, 68253, 68254, 68255, 68331, 68332, 68333, 68334, 68335, 68440, 68441, 68442, 68443, 68444, 68445, 68446, 68447, 68472, 68473, 68474, 68475, 68476, 68477, 68478, 68479, 68521, 68522, 68523, 68524, 68525, 68526, 68527, 68858, 68859, 68860, 68861, 68862, 68863, 69216, 69217, 69218, 69219, 69220, 69221, 69222, 69223, 69224, 69225, 69226, 69227, 69228, 69229, 69230, 69231, 69232, 69233, 69234, 69235, 69236, 69237, 69238, 69239, 69240, 69241, 69242, 69243, 69244, 69245, 69246, 69714, 69715, 69716, 69717, 69718, 69719, 69720, 69721, 69722, 69723, 69724, 69725, 69726, 69727, 69728, 69729, 69730, 69731, 69732, 69733, 69734, 69735, 69736, 69737, 69738, 69739, 69740, 69741, 69742, 69743, 69872, 69873, 69874, 69875, 69876, 69877, 69878, 69879, 69880, 69881, 69942, 69943, 69944, 69945, 69946, 69947, 69948, 69949, 69950, 69951, 70096, 70097, 70098, 70099, 70100, 70101, 70102, 70103, 70104, 70105, 70113, 70114, 70115, 70116, 70117, 70118, 70119, 70120, 70121, 70122, 70123, 70124, 70125, 70126, 70127, 70128, 70129, 70130, 70131, 70132, 70384, 70385, 70386, 70387, 70388, 70389, 70390, 70391, 70392, 70393, 70864, 70865, 70866, 70867, 70868, 70869, 70870, 70871, 70872, 70873, 71248, 71249, 71250, 71251, 71252, 71253, 71254, 71255, 71256, 71257, 71360, 71361, 71362, 71363, 71364, 71365, 71366, 71367, 71368, 71369, 71472, 71473, 71474, 71475, 71476, 71477, 71478, 71479, 71480, 71481, 71482, 71483, 71904, 71905, 71906, 71907, 71908, 71909, 71910, 71911, 71912, 71913, 71914, 71915, 71916, 71917, 71918, 71919, 71920, 71921, 71922, 74752, 74753, 74754, 74755, 74756, 74757, 74758, 74759, 74760, 74761, 74762, 74763, 74764, 74765, 74766, 74767, 74768, 74769, 74770, 74771, 74772, 74773, 74774, 74775, 74776, 74777, 74778, 74779, 74780, 74781, 74782, 74783, 74784, 74785, 74786, 74787, 74788, 74789, 74790, 74791, 74792, 74793, 74794, 74795, 74796, 74797, 74798, 74799, 74800, 74801, 74802, 74803, 74804, 74805, 74806, 74807, 74808, 74809, 74810, 74811, 74812, 74813, 74814, 74815, 74816, 74817, 74818, 74819, 74820, 74821, 74822, 74823, 74824, 74825, 74826, 74827, 74828, 74829, 74830, 74831, 74832, 74833, 74834, 74835, 74836, 74837, 74838, 74839, 74840, 74841, 74842, 74843, 74844, 74845, 74846, 74847, 74848, 74849, 74850, 74851, 74852, 74853, 74854, 74855, 74856, 74857, 74858, 74859, 74860, 74861, 74862, 92768, 92769, 92770, 92771, 92772, 92773, 92774, 92775, 92776, 92777, 93008, 93009, 93010, 93011, 93012, 93013, 93014, 93015, 93016, 93017, 93019, 93020, 93021, 93022, 93023, 93024, 93025, 119648, 119649, 119650, 119651, 119652, 119653, 119654, 119655, 119656, 119657, 119658, 119659, 119660, 119661, 119662, 119663, 119664, 119665, 120782, 120783, 120784, 120785, 120786, 120787, 120788, 120789, 120790, 120791, 120792, 120793, 120794, 120795, 120796, 120797, 120798, 120799, 120800, 120801, 120802, 120803, 120804, 120805, 120806, 120807, 120808, 120809, 120810, 120811, 120812, 120813, 120814, 120815, 120816, 120817, 120818, 120819, 120820, 120821, 120822, 120823, 120824, 120825, 120826, 120827, 120828, 120829, 120830, 120831, 125127, 125128, 125129, 125130, 125131, 125132, 125133, 125134, 125135, 127232, 127233, 127234, 127235, 127236, 127237, 127238, 127239, 127240, 127241, 127242, 127243, 127244];\n","//package mp3;\n\n/* MPEG modes */\nfunction MPEGMode(ordinal) {\n var _ordinal = ordinal;\n this.ordinal = function () {\n return _ordinal;\n }\n}\n\nMPEGMode.STEREO = new MPEGMode(0);\nMPEGMode.JOINT_STEREO = new MPEGMode(1);\nMPEGMode.DUAL_CHANNEL = new MPEGMode(2);\nMPEGMode.MONO = new MPEGMode(3);\nMPEGMode.NOT_SET = new MPEGMode(4);\n\nmodule.exports = MPEGMode;\n","/**\n * This file contains information and classes for the various kinds of styles\n * used in TeX. It provides a generic `Style` class, which holds information\n * about a specific style. It then provides instances of all the different kinds\n * of styles possible, and provides functions to move between them and get\n * information about them.\n */\n\n/**\n * The main style class. Contains a unique id for the style, a size (which is\n * the same for cramped and uncramped version of a style), a cramped flag, and a\n * size multiplier, which gives the size difference between a style and\n * textstyle.\n */\nfunction Style(id, size, multiplier, cramped) {\n this.id = id;\n this.size = size;\n this.cramped = cramped;\n this.sizeMultiplier = multiplier;\n}\n\n/**\n * Get the style of a superscript given a base in the current style.\n */\nStyle.prototype.sup = function() {\n return styles[sup[this.id]];\n};\n\n/**\n * Get the style of a subscript given a base in the current style.\n */\nStyle.prototype.sub = function() {\n return styles[sub[this.id]];\n};\n\n/**\n * Get the style of a fraction numerator given the fraction in the current\n * style.\n */\nStyle.prototype.fracNum = function() {\n return styles[fracNum[this.id]];\n};\n\n/**\n * Get the style of a fraction denominator given the fraction in the current\n * style.\n */\nStyle.prototype.fracDen = function() {\n return styles[fracDen[this.id]];\n};\n\n/**\n * Get the cramped version of a style (in particular, cramping a cramped style\n * doesn't change the style).\n */\nStyle.prototype.cramp = function() {\n return styles[cramp[this.id]];\n};\n\n/**\n * HTML class name, like \"displaystyle cramped\"\n */\nStyle.prototype.cls = function() {\n return sizeNames[this.size] + (this.cramped ? \" cramped\" : \" uncramped\");\n};\n\n/**\n * HTML Reset class name, like \"reset-textstyle\"\n */\nStyle.prototype.reset = function() {\n return resetNames[this.size];\n};\n\n// IDs of the different styles\nvar D = 0;\nvar Dc = 1;\nvar T = 2;\nvar Tc = 3;\nvar S = 4;\nvar Sc = 5;\nvar SS = 6;\nvar SSc = 7;\n\n// String names for the different sizes\nvar sizeNames = [\n \"displaystyle textstyle\",\n \"textstyle\",\n \"scriptstyle\",\n \"scriptscriptstyle\",\n];\n\n// Reset names for the different sizes\nvar resetNames = [\n \"reset-textstyle\",\n \"reset-textstyle\",\n \"reset-scriptstyle\",\n \"reset-scriptscriptstyle\",\n];\n\n// Instances of the different styles\nvar styles = [\n new Style(D, 0, 1.0, false),\n new Style(Dc, 0, 1.0, true),\n new Style(T, 1, 1.0, false),\n new Style(Tc, 1, 1.0, true),\n new Style(S, 2, 0.7, false),\n new Style(Sc, 2, 0.7, true),\n new Style(SS, 3, 0.5, false),\n new Style(SSc, 3, 0.5, true),\n];\n\n// Lookup tables for switching from one style to another\nvar sup = [S, Sc, S, Sc, SS, SSc, SS, SSc];\nvar sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc];\nvar fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc];\n\n// We only export some of the styles. Also, we don't export the `Style` class so\n// no more styles can be generated.\nmodule.exports = {\n DISPLAY: styles[D],\n TEXT: styles[T],\n SCRIPT: styles[S],\n SCRIPTSCRIPT: styles[SS],\n};\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Takehiro = require('./Takehiro.js');\nvar Tables = require('./Tables.js');\nvar Encoder = require('./Encoder.js');\nvar LameInternalFlags = require('./LameInternalFlags.js');\n\nBitStream.EQ = function (a, b) {\n return (Math.abs(a) > Math.abs(b)) ? (Math.abs((a) - (b)) <= (Math\n .abs(a) * 1e-6))\n : (Math.abs((a) - (b)) <= (Math.abs(b) * 1e-6));\n};\n\nBitStream.NEQ = function (a, b) {\n return !BitStream.EQ(a, b);\n};\n\nfunction BitStream() {\n var self = this;\n var CRC16_POLYNOMIAL = 0x8005;\n\n /*\n * we work with ints, so when doing bit manipulation, we limit ourselves to\n * MAX_LENGTH-2 just to be on the safe side\n */\n var MAX_LENGTH = 32;\n\n //GainAnalysis ga;\n //MPGLib mpg;\n //Version ver;\n //VBRTag vbr;\n var ga = null;\n var mpg = null;\n var ver = null;\n var vbr = null;\n\n //public final void setModules(GainAnalysis ga, MPGLib mpg, Version ver,\n //\tVBRTag vbr) {\n\n this.setModules = function (_ga, _mpg, _ver, _vbr) {\n ga = _ga;\n mpg = _mpg;\n ver = _ver;\n vbr = _vbr;\n };\n\n /**\n * Bit stream buffer.\n */\n //private byte[] buf;\n var buf = null;\n /**\n * Bit counter of bit stream.\n */\n var totbit = 0;\n /**\n * Pointer to top byte in buffer.\n */\n var bufByteIdx = 0;\n /**\n * Pointer to top bit of top byte in buffer.\n */\n var bufBitIdx = 0;\n\n /**\n * compute bitsperframe and mean_bits for a layer III frame\n */\n this.getframebits = function (gfp) {\n var gfc = gfp.internal_flags;\n var bit_rate;\n\n /* get bitrate in kbps [?] */\n if (gfc.bitrate_index != 0)\n bit_rate = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n else\n bit_rate = gfp.brate;\n assert(8 <= bit_rate && bit_rate <= 640);\n\n /* main encoding routine toggles padding on and off */\n /* one Layer3 Slot consists of 8 bits */\n var bytes = 0 | (gfp.version + 1) * 72000 * bit_rate / gfp.out_samplerate + gfc.padding;\n return 8 * bytes;\n };\n\n function putheader_bits(gfc) {\n System.arraycopy(gfc.header[gfc.w_ptr].buf, 0, buf, bufByteIdx, gfc.sideinfo_len);\n bufByteIdx += gfc.sideinfo_len;\n totbit += gfc.sideinfo_len * 8;\n gfc.w_ptr = (gfc.w_ptr + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);\n }\n\n /**\n * write j bits into the bit stream\n */\n function putbits2(gfc, val, j) {\n assert(j < MAX_LENGTH - 2);\n\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n assert(gfc.header[gfc.w_ptr].write_timing >= totbit);\n if (gfc.header[gfc.w_ptr].write_timing == totbit) {\n putheader_bits(gfc);\n }\n buf[bufByteIdx] = 0;\n }\n\n k = Math.min(j, bufBitIdx);\n j -= k;\n\n bufBitIdx -= k;\n\n assert(j < MAX_LENGTH);\n /* 32 too large on 32 bit machines */\n assert(bufBitIdx < MAX_LENGTH);\n\n buf[bufByteIdx] |= ((val >> j) << bufBitIdx);\n totbit += k;\n }\n }\n\n /**\n * write j bits into the bit stream, ignoring frame headers\n */\n function putbits_noheaders(gfc, val, j) {\n assert(j < MAX_LENGTH - 2);\n\n while (j > 0) {\n var k;\n if (bufBitIdx == 0) {\n bufBitIdx = 8;\n bufByteIdx++;\n assert(bufByteIdx < Lame.LAME_MAXMP3BUFFER);\n buf[bufByteIdx] = 0;\n }\n\n k = Math.min(j, bufBitIdx);\n j -= k;\n\n bufBitIdx -= k;\n\n assert(j < MAX_LENGTH);\n /* 32 too large on 32 bit machines */\n assert(bufBitIdx < MAX_LENGTH);\n\n buf[bufByteIdx] |= ((val >> j) << bufBitIdx);\n totbit += k;\n }\n }\n\n /**\n * Some combinations of bitrate, Fs, and stereo make it impossible to stuff\n * out a frame using just main_data, due to the limited number of bits to\n * indicate main_data_length. In these situations, we put stuffing bits into\n * the ancillary data...\n */\n function drain_into_ancillary(gfp, remainingBits) {\n var gfc = gfp.internal_flags;\n var i;\n assert(remainingBits >= 0);\n\n if (remainingBits >= 8) {\n putbits2(gfc, 0x4c, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x41, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x4d, 8);\n remainingBits -= 8;\n }\n if (remainingBits >= 8) {\n putbits2(gfc, 0x45, 8);\n remainingBits -= 8;\n }\n\n if (remainingBits >= 32) {\n var version = ver.getLameShortVersion();\n if (remainingBits >= 32)\n for (i = 0; i < version.length && remainingBits >= 8; ++i) {\n remainingBits -= 8;\n putbits2(gfc, version.charAt(i), 8);\n }\n }\n\n for (; remainingBits >= 1; remainingBits -= 1) {\n putbits2(gfc, gfc.ancillary_flag, 1);\n gfc.ancillary_flag ^= (!gfp.disable_reservoir ? 1 : 0);\n }\n\n assert(remainingBits == 0);\n\n }\n\n /**\n * write N bits into the header\n */\n function writeheader(gfc, val, j) {\n var ptr = gfc.header[gfc.h_ptr].ptr;\n\n while (j > 0) {\n var k = Math.min(j, 8 - (ptr & 7));\n j -= k;\n assert(j < MAX_LENGTH);\n /* >> 32 too large for 32 bit machines */\n\n gfc.header[gfc.h_ptr].buf[ptr >> 3] |= ((val >> j)) << (8 - (ptr & 7) - k);\n ptr += k;\n }\n gfc.header[gfc.h_ptr].ptr = ptr;\n }\n\n function CRC_update(value, crc) {\n value <<= 8;\n for (var i = 0; i < 8; i++) {\n value <<= 1;\n crc <<= 1;\n\n if ((((crc ^ value) & 0x10000) != 0))\n crc ^= CRC16_POLYNOMIAL;\n }\n return crc;\n }\n\n this.CRC_writeheader = function (gfc, header) {\n var crc = 0xffff;\n /* (jo) init crc16 for error_protection */\n\n crc = CRC_update(header[2] & 0xff, crc);\n crc = CRC_update(header[3] & 0xff, crc);\n for (var i = 6; i < gfc.sideinfo_len; i++) {\n crc = CRC_update(header[i] & 0xff, crc);\n }\n\n header[4] = (byte)(crc >> 8);\n header[5] = (byte)(crc & 255);\n };\n\n function encodeSideInfo2(gfp, bitsPerFrame) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var gr, ch;\n\n l3_side = gfc.l3_side;\n gfc.header[gfc.h_ptr].ptr = 0;\n Arrays.fill(gfc.header[gfc.h_ptr].buf, 0, gfc.sideinfo_len, 0);\n if (gfp.out_samplerate < 16000)\n writeheader(gfc, 0xffe, 12);\n else\n writeheader(gfc, 0xfff, 12);\n writeheader(gfc, (gfp.version), 1);\n writeheader(gfc, 4 - 3, 2);\n writeheader(gfc, (!gfp.error_protection ? 1 : 0), 1);\n writeheader(gfc, (gfc.bitrate_index), 4);\n writeheader(gfc, (gfc.samplerate_index), 2);\n writeheader(gfc, (gfc.padding), 1);\n writeheader(gfc, (gfp.extension), 1);\n writeheader(gfc, (gfp.mode.ordinal()), 2);\n writeheader(gfc, (gfc.mode_ext), 2);\n writeheader(gfc, (gfp.copyright), 1);\n writeheader(gfc, (gfp.original), 1);\n writeheader(gfc, (gfp.emphasis), 2);\n if (gfp.error_protection) {\n writeheader(gfc, 0, 16);\n /* dummy */\n }\n\n if (gfp.version == 1) {\n /* MPEG1 */\n assert(l3_side.main_data_begin >= 0);\n writeheader(gfc, (l3_side.main_data_begin), 9);\n\n if (gfc.channels_out == 2)\n writeheader(gfc, l3_side.private_bits, 3);\n else\n writeheader(gfc, l3_side.private_bits, 5);\n\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var band;\n for (band = 0; band < 4; band++) {\n writeheader(gfc, l3_side.scfsi[ch][band], 1);\n }\n }\n\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 4);\n\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n /* window_switching_flag */\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n /* window_switching_flag */\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n\n assert(0 <= gi.region0_count && gi.region0_count < 16);\n assert(0 <= gi.region1_count && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n writeheader(gfc, gi.preflag, 1);\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n } else {\n /* MPEG2 */\n assert(l3_side.main_data_begin >= 0);\n writeheader(gfc, (l3_side.main_data_begin), 8);\n writeheader(gfc, l3_side.private_bits, gfc.channels_out);\n\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n writeheader(gfc, gi.part2_3_length + gi.part2_length, 12);\n writeheader(gfc, gi.big_values / 2, 9);\n writeheader(gfc, gi.global_gain, 8);\n writeheader(gfc, gi.scalefac_compress, 9);\n\n if (gi.block_type != Encoder.NORM_TYPE) {\n writeheader(gfc, 1, 1);\n /* window_switching_flag */\n writeheader(gfc, gi.block_type, 2);\n writeheader(gfc, gi.mixed_block_flag, 1);\n\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n\n writeheader(gfc, gi.subblock_gain[0], 3);\n writeheader(gfc, gi.subblock_gain[1], 3);\n writeheader(gfc, gi.subblock_gain[2], 3);\n } else {\n writeheader(gfc, 0, 1);\n /* window_switching_flag */\n if (gi.table_select[0] == 14)\n gi.table_select[0] = 16;\n writeheader(gfc, gi.table_select[0], 5);\n if (gi.table_select[1] == 14)\n gi.table_select[1] = 16;\n writeheader(gfc, gi.table_select[1], 5);\n if (gi.table_select[2] == 14)\n gi.table_select[2] = 16;\n writeheader(gfc, gi.table_select[2], 5);\n\n assert(0 <= gi.region0_count && gi.region0_count < 16);\n assert(0 <= gi.region1_count && gi.region1_count < 8);\n writeheader(gfc, gi.region0_count, 4);\n writeheader(gfc, gi.region1_count, 3);\n }\n\n writeheader(gfc, gi.scalefac_scale, 1);\n writeheader(gfc, gi.count1table_select, 1);\n }\n }\n\n if (gfp.error_protection) {\n /* (jo) error_protection: add crc16 information to header */\n CRC_writeheader(gfc, gfc.header[gfc.h_ptr].buf);\n }\n\n {\n var old = gfc.h_ptr;\n assert(gfc.header[old].ptr == gfc.sideinfo_len * 8);\n\n gfc.h_ptr = (old + 1) & (LameInternalFlags.MAX_HEADER_BUF - 1);\n gfc.header[gfc.h_ptr].write_timing = gfc.header[old].write_timing\n + bitsPerFrame;\n\n if (gfc.h_ptr == gfc.w_ptr) {\n /* yikes! we are out of header buffer space */\n System.err\n .println(\"Error: MAX_HEADER_BUF too small in bitstream.c \\n\");\n }\n\n }\n }\n\n function huffman_coder_count1(gfc, gi) {\n /* Write count1 area */\n var h = Tables.ht[gi.count1table_select + 32];\n var i, bits = 0;\n\n var ix = gi.big_values;\n var xr = gi.big_values;\n assert(gi.count1table_select < 2);\n\n for (i = (gi.count1 - gi.big_values) / 4; i > 0; --i) {\n var huffbits = 0;\n var p = 0, v;\n\n v = gi.l3_enc[ix + 0];\n if (v != 0) {\n p += 8;\n if (gi.xr[xr + 0] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n v = gi.l3_enc[ix + 1];\n if (v != 0) {\n p += 4;\n huffbits *= 2;\n if (gi.xr[xr + 1] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n v = gi.l3_enc[ix + 2];\n if (v != 0) {\n p += 2;\n huffbits *= 2;\n if (gi.xr[xr + 2] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n v = gi.l3_enc[ix + 3];\n if (v != 0) {\n p++;\n huffbits *= 2;\n if (gi.xr[xr + 3] < 0)\n huffbits++;\n assert(v <= 1);\n }\n\n ix += 4;\n xr += 4;\n putbits2(gfc, huffbits + h.table[p], h.hlen[p]);\n bits += h.hlen[p];\n }\n return bits;\n }\n\n /**\n * Implements the pseudocode of page 98 of the IS\n */\n function Huffmancode(gfc, tableindex, start, end, gi) {\n var h = Tables.ht[tableindex];\n var bits = 0;\n\n assert(tableindex < 32);\n if (0 == tableindex)\n return bits;\n\n for (var i = start; i < end; i += 2) {\n var cbits = 0;\n var xbits = 0;\n var linbits = h.xlen;\n var xlen = h.xlen;\n var ext = 0;\n var x1 = gi.l3_enc[i];\n var x2 = gi.l3_enc[i + 1];\n\n if (x1 != 0) {\n if (gi.xr[i] < 0)\n ext++;\n cbits--;\n }\n\n if (tableindex > 15) {\n /* use ESC-words */\n if (x1 > 14) {\n var linbits_x1 = x1 - 15;\n assert(linbits_x1 <= h.linmax);\n ext |= linbits_x1 << 1;\n xbits = linbits;\n x1 = 15;\n }\n\n if (x2 > 14) {\n var linbits_x2 = x2 - 15;\n assert(linbits_x2 <= h.linmax);\n ext <<= linbits;\n ext |= linbits_x2;\n xbits += linbits;\n x2 = 15;\n }\n xlen = 16;\n }\n\n if (x2 != 0) {\n ext <<= 1;\n if (gi.xr[i + 1] < 0)\n ext++;\n cbits--;\n }\n\n assert((x1 | x2) < 16);\n\n x1 = x1 * xlen + x2;\n xbits -= cbits;\n cbits += h.hlen[x1];\n\n assert(cbits <= MAX_LENGTH);\n assert(xbits <= MAX_LENGTH);\n\n putbits2(gfc, h.table[x1], cbits);\n putbits2(gfc, ext, xbits);\n bits += cbits + xbits;\n }\n return bits;\n }\n\n /**\n * Note the discussion of huffmancodebits() on pages 28 and 29 of the IS, as\n * well as the definitions of the side information on pages 26 and 27.\n */\n function ShortHuffmancodebits(gfc, gi) {\n var region1Start = 3 * gfc.scalefac_band.s[3];\n if (region1Start > gi.big_values)\n region1Start = gi.big_values;\n\n /* short blocks do not have a region2 */\n var bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start,\n gi.big_values, gi);\n return bits;\n }\n\n function LongHuffmancodebits(gfc, gi) {\n var bigvalues, bits;\n var region1Start, region2Start;\n\n bigvalues = gi.big_values;\n assert(0 <= bigvalues && bigvalues <= 576);\n\n var i = gi.region0_count + 1;\n assert(0 <= i);\n assert(i < gfc.scalefac_band.l.length);\n region1Start = gfc.scalefac_band.l[i];\n i += gi.region1_count + 1;\n assert(0 <= i);\n assert(i < gfc.scalefac_band.l.length);\n region2Start = gfc.scalefac_band.l[i];\n\n if (region1Start > bigvalues)\n region1Start = bigvalues;\n\n if (region2Start > bigvalues)\n region2Start = bigvalues;\n\n bits = Huffmancode(gfc, gi.table_select[0], 0, region1Start, gi);\n bits += Huffmancode(gfc, gi.table_select[1], region1Start,\n region2Start, gi);\n bits += Huffmancode(gfc, gi.table_select[2], region2Start, bigvalues,\n gi);\n return bits;\n }\n\n function writeMainData(gfp) {\n var gr, ch, sfb, data_bits, tot_bits = 0;\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n\n if (gfp.version == 1) {\n /* MPEG 1 */\n for (gr = 0; gr < 2; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var slen1 = Takehiro.slen1_tab[gi.scalefac_compress];\n var slen2 = Takehiro.slen2_tab[gi.scalefac_compress];\n data_bits = 0;\n for (sfb = 0; sfb < gi.sfbdivide; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n /* scfsi is used */\n putbits2(gfc, gi.scalefac[sfb], slen1);\n data_bits += slen1;\n }\n for (; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n /* scfsi is used */\n putbits2(gfc, gi.scalefac[sfb], slen2);\n data_bits += slen2;\n }\n assert(data_bits == gi.part2_length);\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n /* does bitcount in quantize.c agree with actual bit count? */\n assert(data_bits == gi.part2_3_length + gi.part2_length);\n tot_bits += data_bits;\n }\n /* for ch */\n }\n /* for gr */\n } else {\n /* MPEG 2 */\n gr = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n var gi = l3_side.tt[gr][ch];\n var i, sfb_partition, scale_bits = 0;\n assert(gi.sfb_partition_table != null);\n data_bits = 0;\n sfb = 0;\n sfb_partition = 0;\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition] / 3;\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc,\n Math.max(gi.scalefac[sfb * 3 + 0], 0), slen);\n putbits2(gfc,\n Math.max(gi.scalefac[sfb * 3 + 1], 0), slen);\n putbits2(gfc,\n Math.max(gi.scalefac[sfb * 3 + 2], 0), slen);\n scale_bits += 3 * slen;\n }\n }\n data_bits += ShortHuffmancodebits(gfc, gi);\n } else {\n for (; sfb_partition < 4; sfb_partition++) {\n var sfbs = gi.sfb_partition_table[sfb_partition];\n var slen = gi.slen[sfb_partition];\n for (i = 0; i < sfbs; i++, sfb++) {\n putbits2(gfc, Math.max(gi.scalefac[sfb], 0), slen);\n scale_bits += slen;\n }\n }\n data_bits += LongHuffmancodebits(gfc, gi);\n }\n data_bits += huffman_coder_count1(gfc, gi);\n /* does bitcount in quantize.c agree with actual bit count? */\n assert(data_bits == gi.part2_3_length);\n assert(scale_bits == gi.part2_length);\n tot_bits += scale_bits + data_bits;\n }\n /* for ch */\n }\n /* for gf */\n return tot_bits;\n }\n\n /* main_data */\n\n function TotalBytes() {\n this.total = 0;\n }\n\n /*\n * compute the number of bits required to flush all mp3 frames currently in\n * the buffer. This should be the same as the reservoir size. Only call this\n * routine between frames - i.e. only after all headers and data have been\n * added to the buffer by format_bitstream().\n *\n * Also compute total_bits_output = size of mp3 buffer (including frame\n * headers which may not have yet been send to the mp3 buffer) + number of\n * bits needed to flush all mp3 frames.\n *\n * total_bytes_output is the size of the mp3 output buffer if\n * lame_encode_flush_nogap() was called right now.\n */\n function compute_flushbits(gfp, total_bytes_output) {\n var gfc = gfp.internal_flags;\n var flushbits, remaining_headers;\n var bitsPerFrame;\n var last_ptr, first_ptr;\n first_ptr = gfc.w_ptr;\n /* first header to add to bitstream */\n last_ptr = gfc.h_ptr - 1;\n /* last header to add to bitstream */\n if (last_ptr == -1)\n last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;\n\n /* add this many bits to bitstream so we can flush all headers */\n flushbits = gfc.header[last_ptr].write_timing - totbit;\n total_bytes_output.total = flushbits;\n\n if (flushbits >= 0) {\n /* if flushbits >= 0, some headers have not yet been written */\n /* reduce flushbits by the size of the headers */\n remaining_headers = 1 + last_ptr - first_ptr;\n if (last_ptr < first_ptr)\n remaining_headers = 1 + last_ptr - first_ptr\n + LameInternalFlags.MAX_HEADER_BUF;\n flushbits -= remaining_headers * 8 * gfc.sideinfo_len;\n }\n\n /*\n * finally, add some bits so that the last frame is complete these bits\n * are not necessary to decode the last frame, but some decoders will\n * ignore last frame if these bits are missing\n */\n bitsPerFrame = self.getframebits(gfp);\n flushbits += bitsPerFrame;\n total_bytes_output.total += bitsPerFrame;\n /* round up: */\n if ((total_bytes_output.total % 8) != 0)\n total_bytes_output.total = 1 + (total_bytes_output.total / 8);\n else\n total_bytes_output.total = (total_bytes_output.total / 8);\n total_bytes_output.total += bufByteIdx + 1;\n\n if (flushbits < 0) {\n System.err.println(\"strange error flushing buffer ... \\n\");\n }\n return flushbits;\n }\n\n this.flush_bitstream = function (gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n var flushbits;\n var last_ptr = gfc.h_ptr - 1;\n /* last header to add to bitstream */\n if (last_ptr == -1)\n last_ptr = LameInternalFlags.MAX_HEADER_BUF - 1;\n l3_side = gfc.l3_side;\n\n if ((flushbits = compute_flushbits(gfp, new TotalBytes())) < 0)\n return;\n drain_into_ancillary(gfp, flushbits);\n\n /* check that the 100% of the last frame has been written to bitstream */\n assert(gfc.header[last_ptr].write_timing + this.getframebits(gfp) == totbit);\n\n /*\n * we have padded out all frames with ancillary data, which is the same\n * as filling the bitreservoir with ancillary data, so :\n */\n gfc.ResvSize = 0;\n l3_side.main_data_begin = 0;\n\n /* save the ReplayGain value */\n if (gfc.findReplayGain) {\n var RadioGain = ga.GetTitleGain(gfc.rgdata);\n assert(NEQ(RadioGain, GainAnalysis.GAIN_NOT_ENOUGH_SAMPLES));\n gfc.RadioGain = Math.floor(RadioGain * 10.0 + 0.5) | 0;\n /* round to nearest */\n }\n\n /* find the gain and scale change required for no clipping */\n if (gfc.findPeakSample) {\n gfc.noclipGainChange = Math.ceil(Math\n .log10(gfc.PeakSample / 32767.0) * 20.0 * 10.0) | 0;\n /* round up */\n\n if (gfc.noclipGainChange > 0) {\n /* clipping occurs */\n if (EQ(gfp.scale, 1.0) || EQ(gfp.scale, 0.0))\n gfc.noclipScale = (Math\n .floor((32767.0 / gfc.PeakSample) * 100.0) / 100.0);\n /* round down */\n else {\n /*\n * the user specified his own scaling factor. We could\n * suggest the scaling factor of\n * (32767.0/gfp.PeakSample)*(gfp.scale) but it's usually\n * very inaccurate. So we'd rather not advice him on the\n * scaling factor.\n */\n gfc.noclipScale = -1;\n }\n } else\n /* no clipping */\n gfc.noclipScale = -1;\n }\n };\n\n this.add_dummy_byte = function (gfp, val, n) {\n var gfc = gfp.internal_flags;\n var i;\n\n while (n-- > 0) {\n putbits_noheaders(gfc, val, 8);\n\n for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)\n gfc.header[i].write_timing += 8;\n }\n };\n\n /**\n * This is called after a frame of audio has been quantized and coded. It\n * will write the encoded audio to the bitstream. Note that from a layer3\n * encoder's perspective the bit stream is primarily a series of main_data()\n * blocks, with header and side information inserted at the proper locations\n * to maintain framing. (See Figure A.7 in the IS).\n */\n this.format_bitstream = function (gfp) {\n var gfc = gfp.internal_flags;\n var l3_side;\n l3_side = gfc.l3_side;\n\n var bitsPerFrame = this.getframebits(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_pre);\n\n encodeSideInfo2(gfp, bitsPerFrame);\n var bits = 8 * gfc.sideinfo_len;\n bits += writeMainData(gfp);\n drain_into_ancillary(gfp, l3_side.resvDrain_post);\n bits += l3_side.resvDrain_post;\n\n l3_side.main_data_begin += (bitsPerFrame - bits) / 8;\n\n /*\n * compare number of bits needed to clear all buffered mp3 frames with\n * what we think the resvsize is:\n */\n if (compute_flushbits(gfp, new TotalBytes()) != gfc.ResvSize) {\n System.err.println(\"Internal buffer inconsistency. flushbits <> ResvSize\");\n }\n\n /*\n * compare main_data_begin for the next frame with what we think the\n * resvsize is:\n */\n if ((l3_side.main_data_begin * 8) != gfc.ResvSize) {\n System.err.printf(\"bit reservoir error: \\n\"\n + \"l3_side.main_data_begin: %d \\n\"\n + \"Resvoir size: %d \\n\"\n + \"resv drain (post) %d \\n\"\n + \"resv drain (pre) %d \\n\"\n + \"header and sideinfo: %d \\n\"\n + \"data bits: %d \\n\"\n + \"total bits: %d (remainder: %d) \\n\"\n + \"bitsperframe: %d \\n\",\n 8 * l3_side.main_data_begin, gfc.ResvSize,\n l3_side.resvDrain_post, l3_side.resvDrain_pre,\n 8 * gfc.sideinfo_len, bits - l3_side.resvDrain_post - 8\n * gfc.sideinfo_len, bits, bits % 8, bitsPerFrame);\n\n System.err.println(\"This is a fatal error. It has several possible causes:\");\n System.err.println(\"90%% LAME compiled with buggy version of gcc using advanced optimizations\");\n System.err.println(\" 9%% Your system is overclocked\");\n System.err.println(\" 1%% bug in LAME encoding library\");\n\n gfc.ResvSize = l3_side.main_data_begin * 8;\n }\n //;\n assert(totbit % 8 == 0);\n\n if (totbit > 1000000000) {\n /*\n * to avoid totbit overflow, (at 8h encoding at 128kbs) lets reset\n * bit counter\n */\n var i;\n for (i = 0; i < LameInternalFlags.MAX_HEADER_BUF; ++i)\n gfc.header[i].write_timing -= totbit;\n totbit = 0;\n }\n\n return 0;\n };\n\n /**\n * \n * copy data out of the internal MP3 bit buffer into a user supplied\n * unsigned char buffer.\n *\n * mp3data=0 indicates data in buffer is an id3tags and VBR tags\n * mp3data=1 data is real mp3 frame data.\n *
\n */\n this.copy_buffer = function (gfc, buffer, bufferPos, size, mp3data) {\n var minimum = bufByteIdx + 1;\n if (minimum <= 0)\n return 0;\n if (size != 0 && minimum > size) {\n /* buffer is too small */\n return -1;\n }\n System.arraycopy(buf, 0, buffer, bufferPos, minimum);\n bufByteIdx = -1;\n bufBitIdx = 0;\n\n if (mp3data != 0) {\n var crc = new_int(1);\n crc[0] = gfc.nMusicCRC;\n vbr.updateMusicCRC(crc, buffer, bufferPos, minimum);\n gfc.nMusicCRC = crc[0];\n\n /**\n * sum number of bytes belonging to the mp3 stream this info will be\n * written into the Xing/LAME header for seeking\n */\n if (minimum > 0) {\n gfc.VBR_seek_table.nBytesWritten += minimum;\n }\n\n if (gfc.decode_on_the_fly) { /* decode the frame */\n var pcm_buf = new_float_n([2, 1152]);\n var mp3_in = minimum;\n var samples_out = -1;\n var i;\n\n /* re-synthesis to pcm. Repeat until we get a samples_out=0 */\n while (samples_out != 0) {\n\n samples_out = mpg.hip_decode1_unclipped(gfc.hip, buffer,\n bufferPos, mp3_in, pcm_buf[0], pcm_buf[1]);\n /*\n * samples_out = 0: need more data to decode samples_out =\n * -1: error. Lets assume 0 pcm output samples_out = number\n * of samples output\n */\n\n /*\n * set the lenght of the mp3 input buffer to zero, so that\n * in the next iteration of the loop we will be querying\n * mpglib about buffered data\n */\n mp3_in = 0;\n\n if (samples_out == -1) {\n /*\n * error decoding. Not fatal, but might screw up the\n * ReplayGain tag. What should we do? Ignore for now\n */\n samples_out = 0;\n }\n if (samples_out > 0) {\n /* process the PCM data */\n\n /*\n * this should not be possible, and indicates we have\n * overflown the pcm_buf buffer\n */\n assert(samples_out <= 1152);\n\n if (gfc.findPeakSample) {\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[0][i] > gfc.PeakSample)\n gfc.PeakSample = pcm_buf[0][i];\n else if (-pcm_buf[0][i] > gfc.PeakSample)\n gfc.PeakSample = -pcm_buf[0][i];\n }\n if (gfc.channels_out > 1)\n for (i = 0; i < samples_out; i++) {\n if (pcm_buf[1][i] > gfc.PeakSample)\n gfc.PeakSample = pcm_buf[1][i];\n else if (-pcm_buf[1][i] > gfc.PeakSample)\n gfc.PeakSample = -pcm_buf[1][i];\n }\n }\n\n if (gfc.findReplayGain)\n if (ga.AnalyzeSamples(gfc.rgdata, pcm_buf[0], 0,\n pcm_buf[1], 0, samples_out,\n gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR)\n return -6;\n\n }\n /* if (samples_out>0) */\n }\n /* while (samples_out!=0) */\n }\n /* if (gfc.decode_on_the_fly) */\n\n }\n /* if (mp3data) */\n return minimum;\n };\n\n this.init_bit_stream_w = function (gfc) {\n buf = new_byte(Lame.LAME_MAXMP3BUFFER);\n\n gfc.h_ptr = gfc.w_ptr = 0;\n gfc.header[gfc.h_ptr].write_timing = 0;\n bufByteIdx = -1;\n bufBitIdx = 0;\n totbit = 0;\n };\n\n // From machine.h\n\n\n}\n\nmodule.exports = BitStream;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","// Proceess escaped chars and hardbreaks\n\n'use strict';\n\nvar isSpace = require('../common/utils').isSpace;\n\nvar ESCAPED = [];\n\nfor (var i = 0; i < 256; i++) { ESCAPED.push(0); }\n\n'\\\\!\"#$%&\\'()*+,./:;<=>?@[]^_`{|}~-'\n .split('').forEach(function (ch) { ESCAPED[ch.charCodeAt(0)] = 1; });\n\n\nmodule.exports = function escape(state, silent) {\n var ch, pos = state.pos, max = state.posMax;\n\n if (state.src.charCodeAt(pos) !== 0x5C/* \\ */) { return false; }\n\n pos++;\n\n if (pos < max) {\n ch = state.src.charCodeAt(pos);\n\n if (ch < 256 && ESCAPED[ch] !== 0) {\n if (!silent) { state.pending += state.src[pos]; }\n state.pos += 2;\n return true;\n }\n\n if (ch === 0x0A) {\n if (!silent) {\n state.push('hardbreak', 'br', 0);\n }\n\n pos++;\n // skip leading whitespaces from next line\n while (pos < max) {\n ch = state.src.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n pos++;\n }\n\n state.pos = pos;\n return true;\n }\n }\n\n if (!silent) { state.pending += '\\\\'; }\n state.pos++;\n return true;\n};\n","/* eslint no-constant-condition:0 */\nvar functions = require(\"./functions\");\nvar environments = require(\"./environments\");\nvar Lexer = require(\"./Lexer\");\nvar symbols = require(\"./symbols\");\nvar utils = require(\"./utils\");\n\nvar parseData = require(\"./parseData\");\nvar ParseError = require(\"./ParseError\");\n\n/**\n * This file contains the parser used to parse out a TeX expression from the\n * input. Since TeX isn't context-free, standard parsers don't work particularly\n * well.\n *\n * The strategy of this parser is as such:\n *\n * The main functions (the `.parse...` ones) take a position in the current\n * parse string to parse tokens from. The lexer (found in Lexer.js, stored at\n * this.lexer) also supports pulling out tokens at arbitrary places. When\n * individual tokens are needed at a position, the lexer is called to pull out a\n * token, which is then used.\n *\n * The parser has a property called \"mode\" indicating the mode that\n * the parser is currently in. Currently it has to be one of \"math\" or\n * \"text\", which denotes whether the current environment is a math-y\n * one or a text-y one (e.g. inside \\text). Currently, this serves to\n * limit the functions which can be used in text mode.\n *\n * The main functions then return an object which contains the useful data that\n * was parsed at its given point, and a new position at the end of the parsed\n * data. The main functions can call each other and continue the parsing by\n * using the returned position as a new starting point.\n *\n * There are also extra `.handle...` functions, which pull out some reused\n * functionality into self-contained functions.\n *\n * The earlier functions return ParseNodes.\n * The later functions (which are called deeper in the parse) sometimes return\n * ParseFuncOrArgument, which contain a ParseNode as well as some data about\n * whether the parsed object is a function which is missing some arguments, or a\n * standalone object which can be used as an argument to another function.\n */\n\n/**\n * Main Parser class\n */\nfunction Parser(input, settings) {\n // Make a new lexer\n this.lexer = new Lexer(input);\n // Store the settings for use in parsing\n this.settings = settings;\n}\n\nvar ParseNode = parseData.ParseNode;\n\n/**\n * An initial function (without its arguments), or an argument to a function.\n * The `result` argument should be a ParseNode.\n */\nfunction ParseFuncOrArgument(result, isFunction) {\n this.result = result;\n // Is this a function (i.e. is it something defined in functions.js)?\n this.isFunction = isFunction;\n}\n\n/**\n * Checks a result to make sure it has the right type, and throws an\n * appropriate error otherwise.\n *\n * @param {boolean=} consume whether to consume the expected token,\n * defaults to true\n */\nParser.prototype.expect = function(text, consume) {\n if (this.nextToken.text !== text) {\n throw new ParseError(\n \"Expected '\" + text + \"', got '\" + this.nextToken.text + \"'\",\n this.lexer, this.nextToken.position\n );\n }\n if (consume !== false) {\n this.consume();\n }\n};\n\n/**\n * Considers the current look ahead token as consumed,\n * and fetches the one after that as the new look ahead.\n */\nParser.prototype.consume = function() {\n this.pos = this.nextToken.position;\n this.nextToken = this.lexer.lex(this.pos, this.mode);\n};\n\n/**\n * Main parsing function, which parses an entire input.\n *\n * @return {?Array.' +\n escapeHtml(tokens[idx].content) +\n '
';\n};\n\n\ndefault_rules.code_block = function (tokens, idx, options, env, slf) {\n var token = tokens[idx],\n attrs = slf.renderAttrs(token);\n\n return '
\\n';\n};\n\n\ndefault_rules.fence = function (tokens, idx, options, env, slf) {\n var token = tokens[idx],\n info = token.info ? unescapeAll(token.info).trim() : '',\n langName = '',\n highlighted, i, tmpAttrs, tmpToken;\n\n if (info) {\n langName = info.split(/\\s+/g)[0];\n }\n\n if (options.highlight) {\n highlighted = options.highlight(token.content, langName) || escapeHtml(token.content);\n } else {\n highlighted = escapeHtml(token.content);\n }\n\n if (highlighted.indexOf('' +\n escapeHtml(tokens[idx].content) +\n '
\\n';\n }\n\n\n return ''\n + highlighted\n + '
\\n';\n};\n\n\ndefault_rules.image = function (tokens, idx, options, env, slf) {\n var token = tokens[idx];\n\n // \"alt\" attr MUST be set, even if empty. Because it's mandatory and\n // should be placed on proper position for tests.\n //\n // Replace content with actual value\n\n token.attrs[token.attrIndex('alt')][1] =\n slf.renderInlineAsText(token.children, options, env);\n\n return slf.renderToken(tokens, idx, options);\n};\n\n\ndefault_rules.hardbreak = function (tokens, idx, options /*, env */) {\n return options.xhtmlOut ? ''\n + highlighted\n + '
\\n' : '
\\n';\n};\ndefault_rules.softbreak = function (tokens, idx, options /*, env */) {\n return options.breaks ? (options.xhtmlOut ? '
\\n' : '
\\n') : '\\n';\n};\n\n\ndefault_rules.text = function (tokens, idx /*, options, env */) {\n return escapeHtml(tokens[idx].content);\n};\n\n\ndefault_rules.html_block = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\ndefault_rules.html_inline = function (tokens, idx /*, options, env */) {\n return tokens[idx].content;\n};\n\n\n/**\n * new Renderer()\n *\n * Creates new [[Renderer]] instance and fill [[Renderer#rules]] with defaults.\n **/\nfunction Renderer() {\n\n /**\n * Renderer#rules -> Object\n *\n * Contains render rules for tokens. Can be updated and extended.\n *\n * ##### Example\n *\n * ```javascript\n * var md = require('markdown-it')();\n *\n * md.renderer.rules.strong_open = function () { return ''; };\n * md.renderer.rules.strong_close = function () { return ''; };\n *\n * var result = md.renderInline(...);\n * ```\n *\n * Each rule is called as independed static function with fixed signature:\n *\n * ```javascript\n * function my_token_render(tokens, idx, options, env, renderer) {\n * // ...\n * return renderedHTML;\n * }\n * ```\n *\n * See [source code](https://github.com/markdown-it/markdown-it/blob/master/lib/renderer.js)\n * for more details and examples.\n **/\n this.rules = assign({}, default_rules);\n}\n\n\n/**\n * Renderer.renderAttrs(token) -> String\n *\n * Render token attributes to string.\n **/\nRenderer.prototype.renderAttrs = function renderAttrs(token) {\n var i, l, result;\n\n if (!token.attrs) { return ''; }\n\n result = '';\n\n for (i = 0, l = token.attrs.length; i < l; i++) {\n result += ' ' + escapeHtml(token.attrs[i][0]) + '=\"' + escapeHtml(token.attrs[i][1]) + '\"';\n }\n\n return result;\n};\n\n\n/**\n * Renderer.renderToken(tokens, idx, options) -> String\n * - tokens (Array): list of tokens\n * - idx (Numbed): token index to render\n * - options (Object): params of parser instance\n *\n * Default token renderer. Can be overriden by custom function\n * in [[Renderer#rules]].\n **/\nRenderer.prototype.renderToken = function renderToken(tokens, idx, options) {\n var nextToken,\n result = '',\n needLf = false,\n token = tokens[idx];\n\n // Tight list paragraphs\n if (token.hidden) {\n return '';\n }\n\n // Insert a newline between hidden paragraph and subsequent opening\n // block-level tag.\n //\n // For example, here we should insert a newline before blockquote:\n // - a\n // >\n //\n if (token.block && token.nesting !== -1 && idx && tokens[idx - 1].hidden) {\n result += '\\n';\n }\n\n // Add token name, e.g. ``.\n //\n needLf = false;\n }\n }\n }\n }\n\n result += needLf ? '>\\n' : '>';\n\n return result;\n};\n\n\n/**\n * Renderer.renderInline(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * The same as [[Renderer.render]], but for single token of `inline` type.\n **/\nRenderer.prototype.renderInline = function (tokens, options, env) {\n var type,\n result = '',\n rules = this.rules;\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (typeof rules[type] !== 'undefined') {\n result += rules[type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options);\n }\n }\n\n return result;\n};\n\n\n/** internal\n * Renderer.renderInlineAsText(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Special kludge for image `alt` attributes to conform CommonMark spec.\n * Don't try to use it! Spec requires to show `alt` content with stripped markup,\n * instead of simple escaping.\n **/\nRenderer.prototype.renderInlineAsText = function (tokens, options, env) {\n var result = '';\n\n for (var i = 0, len = tokens.length; i < len; i++) {\n if (tokens[i].type === 'text') {\n result += tokens[i].content;\n } else if (tokens[i].type === 'image') {\n result += this.renderInlineAsText(tokens[i].children, options, env);\n }\n }\n\n return result;\n};\n\n\n/**\n * Renderer.render(tokens, options, env) -> String\n * - tokens (Array): list on block tokens to renter\n * - options (Object): params of parser instance\n * - env (Object): additional data from parsed input (references, for example)\n *\n * Takes token stream and generates HTML. Probably, you will never need to call\n * this method directly.\n **/\nRenderer.prototype.render = function (tokens, options, env) {\n var i, len, type,\n result = '',\n rules = this.rules;\n\n for (i = 0, len = tokens.length; i < len; i++) {\n type = tokens[i].type;\n\n if (type === 'inline') {\n result += this.renderInline(tokens[i].children, options, env);\n } else if (typeof rules[type] !== 'undefined') {\n result += rules[tokens[i].type](tokens, i, options, env, this);\n } else {\n result += this.renderToken(tokens, i, options, env);\n }\n }\n\n return result;\n};\n\nmodule.exports = Renderer;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","// Parse link title\n//\n'use strict';\n\n\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkTitle(str, pos, max) {\n var code,\n marker,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (pos >= max) { return result; }\n\n marker = str.charCodeAt(pos);\n\n if (marker !== 0x22 /* \" */ && marker !== 0x27 /* ' */ && marker !== 0x28 /* ( */) { return result; }\n\n pos++;\n\n // if opening marker is \"(\", switch it to closing marker \")\"\n if (marker === 0x28) { marker = 0x29; }\n\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === marker) {\n result.pos = pos + 1;\n result.lines = lines;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n } else if (code === 0x0A) {\n lines++;\n } else if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos++;\n if (str.charCodeAt(pos) === 0x0A) {\n lines++;\n }\n }\n\n pos++;\n }\n\n return result;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","/*\n * List of Unicode code that are flagged as mark.\n *\n * Contains Unicode code of:\n * - Mc = Mark, spacing combining\n * - Me = Mark, enclosing\n * - Mn = Mark, nonspacing\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Mc;|;Me;|;Mn;' | cut -d \\; -f 1 | xargs -I{} printf '%d, ' 0x{}\n *\n */\nexports.M = [768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1471, 1473, 1474, 1476, 1477, 1479, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1648, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1759, 1760, 1761, 1762, 1763, 1764, 1767, 1768, 1770, 1771, 1772, 1773, 1809, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2070, 2071, 2072, 2073, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2085, 2086, 2087, 2089, 2090, 2091, 2092, 2093, 2137, 2138, 2139, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2362, 2363, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2402, 2403, 2433, 2434, 2435, 2492, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2503, 2504, 2507, 2508, 2509, 2519, 2530, 2531, 2561, 2562, 2563, 2620, 2622, 2623, 2624, 2625, 2626, 2631, 2632, 2635, 2636, 2637, 2641, 2672, 2673, 2677, 2689, 2690, 2691, 2748, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2759, 2760, 2761, 2763, 2764, 2765, 2786, 2787, 2817, 2818, 2819, 2876, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2887, 2888, 2891, 2892, 2893, 2902, 2903, 2914, 2915, 2946, 3006, 3007, 3008, 3009, 3010, 3014, 3015, 3016, 3018, 3019, 3020, 3021, 3031, 3072, 3073, 3074, 3075, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3142, 3143, 3144, 3146, 3147, 3148, 3149, 3157, 3158, 3170, 3171, 3201, 3202, 3203, 3260, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3270, 3271, 3272, 3274, 3275, 3276, 3277, 3285, 3286, 3298, 3299, 3329, 3330, 3331, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3398, 3399, 3400, 3402, 3403, 3404, 3405, 3415, 3426, 3427, 3458, 3459, 3530, 3535, 3536, 3537, 3538, 3539, 3540, 3542, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3570, 3571, 3633, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3761, 3764, 3765, 3766, 3767, 3768, 3769, 3771, 3772, 3784, 3785, 3786, 3787, 3788, 3789, 3864, 3865, 3893, 3895, 3897, 3902, 3903, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3974, 3975, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4038, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4182, 4183, 4184, 4185, 4190, 4191, 4192, 4194, 4195, 4196, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4209, 4210, 4211, 4212, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4239, 4250, 4251, 4252, 4253, 4957, 4958, 4959, 5906, 5907, 5908, 5938, 5939, 5940, 5970, 5971, 6002, 6003, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6109, 6155, 6156, 6157, 6313, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6679, 6680, 6681, 6682, 6683, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6783, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6912, 6913, 6914, 6915, 6916, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7040, 7041, 7042, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7376, 7377, 7378, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7405, 7410, 7411, 7412, 7416, 7417, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7676, 7677, 7678, 7679, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 11503, 11504, 11505, 11647, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 12330, 12331, 12332, 12333, 12334, 12335, 12441, 12442, 42607, 42608, 42609, 42610, 42612, 42613, 42614, 42615, 42616, 42617, 42618, 42619, 42620, 42621, 42654, 42655, 42736, 42737, 43010, 43014, 43019, 43043, 43044, 43045, 43046, 43047, 43136, 43137, 43188, 43189, 43190, 43191, 43192, 43193, 43194, 43195, 43196, 43197, 43198, 43199, 43200, 43201, 43202, 43203, 43204, 43232, 43233, 43234, 43235, 43236, 43237, 43238, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43247, 43248, 43249, 43302, 43303, 43304, 43305, 43306, 43307, 43308, 43309, 43335, 43336, 43337, 43338, 43339, 43340, 43341, 43342, 43343, 43344, 43345, 43346, 43347, 43392, 43393, 43394, 43395, 43443, 43444, 43445, 43446, 43447, 43448, 43449, 43450, 43451, 43452, 43453, 43454, 43455, 43456, 43493, 43561, 43562, 43563, 43564, 43565, 43566, 43567, 43568, 43569, 43570, 43571, 43572, 43573, 43574, 43587, 43596, 43597, 43643, 43644, 43645, 43696, 43698, 43699, 43700, 43703, 43704, 43710, 43711, 43713, 43755, 43756, 43757, 43758, 43759, 43765, 43766, 44003, 44004, 44005, 44006, 44007, 44008, 44009, 44010, 44012, 44013, 64286, 65024, 65025, 65026, 65027, 65028, 65029, 65030, 65031, 65032, 65033, 65034, 65035, 65036, 65037, 65038, 65039, 65056, 65057, 65058, 65059, 65060, 65061, 65062, 65063, 65064, 65065, 65066, 65067, 65068, 65069, 65070, 65071, 66045, 66272, 66422, 66423, 66424, 66425, 66426, 68097, 68098, 68099, 68101, 68102, 68108, 68109, 68110, 68111, 68152, 68153, 68154, 68159, 68325, 68326, 69632, 69633, 69634, 69688, 69689, 69690, 69691, 69692, 69693, 69694, 69695, 69696, 69697, 69698, 69699, 69700, 69701, 69702, 69759, 69760, 69761, 69762, 69808, 69809, 69810, 69811, 69812, 69813, 69814, 69815, 69816, 69817, 69818, 69888, 69889, 69890, 69927, 69928, 69929, 69930, 69931, 69932, 69933, 69934, 69935, 69936, 69937, 69938, 69939, 69940, 70003, 70016, 70017, 70018, 70067, 70068, 70069, 70070, 70071, 70072, 70073, 70074, 70075, 70076, 70077, 70078, 70079, 70080, 70090, 70091, 70092, 70188, 70189, 70190, 70191, 70192, 70193, 70194, 70195, 70196, 70197, 70198, 70199, 70367, 70368, 70369, 70370, 70371, 70372, 70373, 70374, 70375, 70376, 70377, 70378, 70400, 70401, 70402, 70403, 70460, 70462, 70463, 70464, 70465, 70466, 70467, 70468, 70471, 70472, 70475, 70476, 70477, 70487, 70498, 70499, 70502, 70503, 70504, 70505, 70506, 70507, 70508, 70512, 70513, 70514, 70515, 70516, 70832, 70833, 70834, 70835, 70836, 70837, 70838, 70839, 70840, 70841, 70842, 70843, 70844, 70845, 70846, 70847, 70848, 70849, 70850, 70851, 71087, 71088, 71089, 71090, 71091, 71092, 71093, 71096, 71097, 71098, 71099, 71100, 71101, 71102, 71103, 71104, 71132, 71133, 71216, 71217, 71218, 71219, 71220, 71221, 71222, 71223, 71224, 71225, 71226, 71227, 71228, 71229, 71230, 71231, 71232, 71339, 71340, 71341, 71342, 71343, 71344, 71345, 71346, 71347, 71348, 71349, 71350, 71351, 71453, 71454, 71455, 71456, 71457, 71458, 71459, 71460, 71461, 71462, 71463, 71464, 71465, 71466, 71467, 92912, 92913, 92914, 92915, 92916, 92976, 92977, 92978, 92979, 92980, 92981, 92982, 94033, 94034, 94035, 94036, 94037, 94038, 94039, 94040, 94041, 94042, 94043, 94044, 94045, 94046, 94047, 94048, 94049, 94050, 94051, 94052, 94053, 94054, 94055, 94056, 94057, 94058, 94059, 94060, 94061, 94062, 94063, 94064, 94065, 94066, 94067, 94068, 94069, 94070, 94071, 94072, 94073, 94074, 94075, 94076, 94077, 94078, 94095, 94096, 94097, 94098, 113821, 113822, 119141, 119142, 119143, 119144, 119145, 119149, 119150, 119151, 119152, 119153, 119154, 119163, 119164, 119165, 119166, 119167, 119168, 119169, 119170, 119173, 119174, 119175, 119176, 119177, 119178, 119179, 119210, 119211, 119212, 119213, 119362, 119363, 119364, 121344, 121345, 121346, 121347, 121348, 121349, 121350, 121351, 121352, 121353, 121354, 121355, 121356, 121357, 121358, 121359, 121360, 121361, 121362, 121363, 121364, 121365, 121366, 121367, 121368, 121369, 121370, 121371, 121372, 121373, 121374, 121375, 121376, 121377, 121378, 121379, 121380, 121381, 121382, 121383, 121384, 121385, 121386, 121387, 121388, 121389, 121390, 121391, 121392, 121393, 121394, 121395, 121396, 121397, 121398, 121403, 121404, 121405, 121406, 121407, 121408, 121409, 121410, 121411, 121412, 121413, 121414, 121415, 121416, 121417, 121418, 121419, 121420, 121421, 121422, 121423, 121424, 121425, 121426, 121427, 121428, 121429, 121430, 121431, 121432, 121433, 121434, 121435, 121436, 121437, 121438, 121439, 121440, 121441, 121442, 121443, 121444, 121445, 121446, 121447, 121448, 121449, 121450, 121451, 121452, 121461, 121476, 121499, 121500, 121501, 121502, 121503, 121505, 121506, 121507, 121508, 121509, 121510, 121511, 121512, 121513, 121514, 121515, 121516, 121517, 121518, 121519, 125136, 125137, 125138, 125139, 125140, 125141, 125142, 917760, 917761, 917762, 917763, 917764, 917765, 917766, 917767, 917768, 917769, 917770, 917771, 917772, 917773, 917774, 917775, 917776, 917777, 917778, 917779, 917780, 917781, 917782, 917783, 917784, 917785, 917786, 917787, 917788, 917789, 917790, 917791, 917792, 917793, 917794, 917795, 917796, 917797, 917798, 917799, 917800, 917801, 917802, 917803, 917804, 917805, 917806, 917807, 917808, 917809, 917810, 917811, 917812, 917813, 917814, 917815, 917816, 917817, 917818, 917819, 917820, 917821, 917822, 917823, 917824, 917825, 917826, 917827, 917828, 917829, 917830, 917831, 917832, 917833, 917834, 917835, 917836, 917837, 917838, 917839, 917840, 917841, 917842, 917843, 917844, 917845, 917846, 917847, 917848, 917849, 917850, 917851, 917852, 917853, 917854, 917855, 917856, 917857, 917858, 917859, 917860, 917861, 917862, 917863, 917864, 917865, 917866, 917867, 917868, 917869, 917870, 917871, 917872, 917873, 917874, 917875, 917876, 917877, 917878, 917879, 917880, 917881, 917882, 917883, 917884, 917885, 917886, 917887, 917888, 917889, 917890, 917891, 917892, 917893, 917894, 917895, 917896, 917897, 917898, 917899, 917900, 917901, 917902, 917903, 917904, 917905, 917906, 917907, 917908, 917909, 917910, 917911, 917912, 917913, 917914, 917915, 917916, 917917, 917918, 917919, 917920, 917921, 917922, 917923, 917924, 917925, 917926, 917927, 917928, 917929, 917930, 917931, 917932, 917933, 917934, 917935, 917936, 917937, 917938, 917939, 917940, 917941, 917942, 917943, 917944, 917945, 917946, 917947, 917948, 917949, 917950, 917951, 917952, 917953, 917954, 917955, 917956, 917957, 917958, 917959, 917960, 917961, 917962, 917963, 917964, 917965, 917966, 917967, 917968, 917969, 917970, 917971, 917972, 917973, 917974, 917975, 917976, 917977, 917978, 917979, 917980, 917981, 917982, 917983, 917984, 917985, 917986, 917987, 917988, 917989, 917990, 917991, 917992, 917993, 917994, 917995, 917996, 917997, 917998, 917999];\n","// GFM table, non-standard\n\n'use strict';\n\n\nfunction getLine(state, line) {\n var pos = state.bMarks[line] + state.blkIndent,\n max = state.eMarks[line];\n\n return state.src.substr(pos, max - pos);\n}\n\nfunction escapedSplit(str) {\n var result = [],\n pos = 0,\n max = str.length,\n ch,\n escapes = 0,\n lastPos = 0,\n backTicked = false,\n lastBackTick = 0;\n\n ch = str.charCodeAt(pos);\n\n while (pos < max) {\n if (ch === 0x60/* ` */ && (escapes % 2 === 0)) {\n backTicked = !backTicked;\n lastBackTick = pos;\n } else if (ch === 0x7c/* | */ && (escapes % 2 === 0) && !backTicked) {\n result.push(str.substring(lastPos, pos));\n lastPos = pos + 1;\n } else if (ch === 0x5c/* \\ */) {\n escapes++;\n } else {\n escapes = 0;\n }\n\n pos++;\n\n // If there was an un-closed backtick, go back to just after\n // the last backtick, but as if it was a normal character\n if (pos === max && backTicked) {\n backTicked = false;\n pos = lastBackTick + 1;\n }\n\n ch = str.charCodeAt(pos);\n }\n\n result.push(str.substring(lastPos));\n\n return result;\n}\n\n\nmodule.exports = function table(state, startLine, endLine, silent) {\n var ch, lineText, pos, i, nextLine, columns, columnCount, token,\n aligns, t, tableLines, tbodyLines;\n\n // should have at least three lines\n if (startLine + 2 > endLine) { return false; }\n\n nextLine = startLine + 1;\n\n if (state.sCount[nextLine] < state.blkIndent) { return false; }\n\n // first character of the second line should be '|' or '-'\n\n pos = state.bMarks[nextLine] + state.tShift[nextLine];\n if (pos >= state.eMarks[nextLine]) { return false; }\n\n ch = state.src.charCodeAt(pos);\n if (ch !== 0x7C/* | */ && ch !== 0x2D/* - */ && ch !== 0x3A/* : */) { return false; }\n\n lineText = getLine(state, startLine + 1);\n if (!/^[-:| ]+$/.test(lineText)) { return false; }\n\n columns = lineText.split('|');\n aligns = [];\n for (i = 0; i < columns.length; i++) {\n t = columns[i].trim();\n if (!t) {\n // allow empty columns before and after table, but not in between columns;\n // e.g. allow ` |---| `, disallow ` ---||--- `\n if (i === 0 || i === columns.length - 1) {\n continue;\n } else {\n return false;\n }\n }\n\n if (!/^:?-+:?$/.test(t)) { return false; }\n if (t.charCodeAt(t.length - 1) === 0x3A/* : */) {\n aligns.push(t.charCodeAt(0) === 0x3A/* : */ ? 'center' : 'right');\n } else if (t.charCodeAt(0) === 0x3A/* : */) {\n aligns.push('left');\n } else {\n aligns.push('');\n }\n }\n\n lineText = getLine(state, startLine).trim();\n if (lineText.indexOf('|') === -1) { return false; }\n columns = escapedSplit(lineText.replace(/^\\||\\|$/g, ''));\n\n // header row will define an amount of columns in the entire table,\n // and align row shouldn't be smaller than that (the rest of the rows can)\n columnCount = columns.length;\n if (columnCount > aligns.length) { return false; }\n\n if (silent) { return true; }\n\n token = state.push('table_open', 'table', 1);\n token.map = tableLines = [ startLine, 0 ];\n\n token = state.push('thead_open', 'thead', 1);\n token.map = [ startLine, startLine + 1 ];\n\n token = state.push('tr_open', 'tr', 1);\n token.map = [ startLine, startLine + 1 ];\n\n for (i = 0; i < columns.length; i++) {\n token = state.push('th_open', 'th', 1);\n token.map = [ startLine, startLine + 1 ];\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i].trim();\n token.map = [ startLine, startLine + 1 ];\n token.children = [];\n\n token = state.push('th_close', 'th', -1);\n }\n\n token = state.push('tr_close', 'tr', -1);\n token = state.push('thead_close', 'thead', -1);\n\n token = state.push('tbody_open', 'tbody', 1);\n token.map = tbodyLines = [ startLine + 2, 0 ];\n\n for (nextLine = startLine + 2; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) { break; }\n\n lineText = getLine(state, nextLine);\n if (lineText.indexOf('|') === -1) { break; }\n\n // keep spaces at beginning of line to indicate an empty first cell, but\n // strip trailing whitespace\n columns = escapedSplit(lineText.replace(/^\\||\\|\\s*$/g, ''));\n\n token = state.push('tr_open', 'tr', 1);\n for (i = 0; i < columnCount; i++) {\n token = state.push('td_open', 'td', 1);\n if (aligns[i]) {\n token.attrs = [ [ 'style', 'text-align:' + aligns[i] ] ];\n }\n\n token = state.push('inline', '', 0);\n token.content = columns[i] ? columns[i].trim() : '';\n token.children = [];\n\n token = state.push('td_close', 'td', -1);\n }\n token = state.push('tr_close', 'tr', -1);\n }\n token = state.push('tbody_close', 'tbody', -1);\n token = state.push('table_close', 'table', -1);\n\n tableLines[1] = tbodyLines[1] = nextLine;\n state.line = nextLine;\n return true;\n};\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\n\nfunction FFT() {\n\n var window = new_float(Encoder.BLKSIZE);\n var window_s = new_float(Encoder.BLKSIZE_s / 2);\n\n var costab = [\n 9.238795325112867e-01, 3.826834323650898e-01,\n 9.951847266721969e-01, 9.801714032956060e-02,\n 9.996988186962042e-01, 2.454122852291229e-02,\n 9.999811752826011e-01, 6.135884649154475e-03\n ];\n\n function fht(fz, fzPos, n) {\n var tri = 0;\n var k4;\n var fi;\n var gi;\n\n n <<= 1;\n /* to get BLKSIZE, because of 3DNow! ASM routine */\n var fn = fzPos + n;\n k4 = 4;\n do {\n var s1, c1;\n var i, k1, k2, k3, kx;\n kx = k4 >> 1;\n k1 = k4;\n k2 = k4 << 1;\n k3 = k2 + k1;\n k4 = k2 << 1;\n fi = fzPos;\n gi = fi + kx;\n do {\n var f0, f1, f2, f3;\n f1 = fz[fi + 0] - fz[fi + k1];\n f0 = fz[fi + 0] + fz[fi + k1];\n f3 = fz[fi + k2] - fz[fi + k3];\n f2 = fz[fi + k2] + fz[fi + k3];\n fz[fi + k2] = f0 - f2;\n fz[fi + 0] = f0 + f2;\n fz[fi + k3] = f1 - f3;\n fz[fi + k1] = f1 + f3;\n f1 = fz[gi + 0] - fz[gi + k1];\n f0 = fz[gi + 0] + fz[gi + k1];\n f3 = (Util.SQRT2 * fz[gi + k3]);\n f2 = (Util.SQRT2 * fz[gi + k2]);\n fz[gi + k2] = f0 - f2;\n fz[gi + 0] = f0 + f2;\n fz[gi + k3] = f1 - f3;\n fz[gi + k1] = f1 + f3;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c1 = costab[tri + 0];\n s1 = costab[tri + 1];\n for (i = 1; i < kx; i++) {\n var c2, s2;\n c2 = 1 - (2 * s1) * s1;\n s2 = (2 * s1) * c1;\n fi = fzPos + i;\n gi = fzPos + k1 - i;\n do {\n var a, b, g0, f0, f1, g1, f2, g2, f3, g3;\n b = s2 * fz[fi + k1] - c2 * fz[gi + k1];\n a = c2 * fz[fi + k1] + s2 * fz[gi + k1];\n f1 = fz[fi + 0] - a;\n f0 = fz[fi + 0] + a;\n g1 = fz[gi + 0] - b;\n g0 = fz[gi + 0] + b;\n b = s2 * fz[fi + k3] - c2 * fz[gi + k3];\n a = c2 * fz[fi + k3] + s2 * fz[gi + k3];\n f3 = fz[fi + k2] - a;\n f2 = fz[fi + k2] + a;\n g3 = fz[gi + k2] - b;\n g2 = fz[gi + k2] + b;\n b = s1 * f2 - c1 * g3;\n a = c1 * f2 + s1 * g3;\n fz[fi + k2] = f0 - a;\n fz[fi + 0] = f0 + a;\n fz[gi + k3] = g1 - b;\n fz[gi + k1] = g1 + b;\n b = c1 * g2 - s1 * f3;\n a = s1 * g2 + c1 * f3;\n fz[gi + k2] = g0 - a;\n fz[gi + 0] = g0 + a;\n fz[fi + k3] = f1 - b;\n fz[fi + k1] = f1 + b;\n gi += k4;\n fi += k4;\n } while (fi < fn);\n c2 = c1;\n c1 = c2 * costab[tri + 0] - s1 * costab[tri + 1];\n s1 = c2 * costab[tri + 1] + s1 * costab[tri + 0];\n }\n tri += 2;\n } while (k4 < n);\n }\n\n var rv_tbl = [0x00, 0x80, 0x40,\n 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10,\n 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70,\n 0xf0, 0x08, 0x88, 0x48, 0xc8, 0x28,\n 0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58,\n 0xd8, 0x38, 0xb8, 0x78, 0xf8, 0x04,\n 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64,\n 0xe4, 0x14, 0x94, 0x54, 0xd4, 0x34,\n 0xb4, 0x74, 0xf4, 0x0c, 0x8c, 0x4c,\n 0xcc, 0x2c, 0xac, 0x6c, 0xec, 0x1c,\n 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c,\n 0xfc, 0x02, 0x82, 0x42, 0xc2, 0x22,\n 0xa2, 0x62, 0xe2, 0x12, 0x92, 0x52,\n 0xd2, 0x32, 0xb2, 0x72, 0xf2, 0x0a,\n 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a,\n 0xea, 0x1a, 0x9a, 0x5a, 0xda, 0x3a,\n 0xba, 0x7a, 0xfa, 0x06, 0x86, 0x46,\n 0xc6, 0x26, 0xa6, 0x66, 0xe6, 0x16,\n 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76,\n 0xf6, 0x0e, 0x8e, 0x4e, 0xce, 0x2e,\n 0xae, 0x6e, 0xee, 0x1e, 0x9e, 0x5e,\n 0xde, 0x3e, 0xbe, 0x7e, 0xfe];\n\n this.fft_short = function (gfc, x_real, chn, buffer, bufPos) {\n for (var b = 0; b < 3; b++) {\n var x = Encoder.BLKSIZE_s / 2;\n var k = 0xffff & ((576 / 3) * (b + 1));\n var j = Encoder.BLKSIZE_s / 8 - 1;\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[j << 2] & 0xff;\n\n f0 = window_s[i] * buffer[chn][bufPos + i + k];\n w = window_s[0x7f - i] * buffer[chn][bufPos + i + k + 0x80];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 0x40] * buffer[chn][bufPos + i + k + 0x40];\n w = window_s[0x3f - i] * buffer[chn][bufPos + i + k + 0xc0];\n f3 = f2 - w;\n f2 = f2 + w;\n\n x -= 4;\n x_real[b][x + 0] = f0 + f2;\n x_real[b][x + 2] = f0 - f2;\n x_real[b][x + 1] = f1 + f3;\n x_real[b][x + 3] = f1 - f3;\n\n f0 = window_s[i + 0x01] * buffer[chn][bufPos + i + k + 0x01];\n w = window_s[0x7e - i] * buffer[chn][bufPos + i + k + 0x81];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window_s[i + 0x41] * buffer[chn][bufPos + i + k + 0x41];\n w = window_s[0x3e - i] * buffer[chn][bufPos + i + k + 0xc1];\n f3 = f2 - w;\n f2 = f2 + w;\n\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 0] = f0 + f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 2] = f0 - f2;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 1] = f1 + f3;\n x_real[b][x + Encoder.BLKSIZE_s / 2 + 3] = f1 - f3;\n } while (--j >= 0);\n\n fht(x_real[b], x, Encoder.BLKSIZE_s / 2);\n /* BLKSIZE_s/2 because of 3DNow! ASM routine */\n /* BLKSIZE/2 because of 3DNow! ASM routine */\n }\n }\n\n this.fft_long = function (gfc, y, chn, buffer, bufPos) {\n var jj = Encoder.BLKSIZE / 8 - 1;\n var x = Encoder.BLKSIZE / 2;\n\n do {\n var f0, f1, f2, f3, w;\n var i = rv_tbl[jj] & 0xff;\n f0 = window[i] * buffer[chn][bufPos + i];\n w = window[i + 0x200] * buffer[chn][bufPos + i + 0x200];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window[i + 0x100] * buffer[chn][bufPos + i + 0x100];\n w = window[i + 0x300] * buffer[chn][bufPos + i + 0x300];\n f3 = f2 - w;\n f2 = f2 + w;\n\n x -= 4;\n y[x + 0] = f0 + f2;\n y[x + 2] = f0 - f2;\n y[x + 1] = f1 + f3;\n y[x + 3] = f1 - f3;\n\n f0 = window[i + 0x001] * buffer[chn][bufPos + i + 0x001];\n w = window[i + 0x201] * buffer[chn][bufPos + i + 0x201];\n f1 = f0 - w;\n f0 = f0 + w;\n f2 = window[i + 0x101] * buffer[chn][bufPos + i + 0x101];\n w = window[i + 0x301] * buffer[chn][bufPos + i + 0x301];\n f3 = f2 - w;\n f2 = f2 + w;\n\n y[x + Encoder.BLKSIZE / 2 + 0] = f0 + f2;\n y[x + Encoder.BLKSIZE / 2 + 2] = f0 - f2;\n y[x + Encoder.BLKSIZE / 2 + 1] = f1 + f3;\n y[x + Encoder.BLKSIZE / 2 + 3] = f1 - f3;\n } while (--jj >= 0);\n\n fht(y, x, Encoder.BLKSIZE / 2);\n /* BLKSIZE/2 because of 3DNow! ASM routine */\n }\n\n this.init_fft = function (gfc) {\n /* The type of window used here will make no real difference, but */\n /*\n * in the interest of merging nspsytune stuff - switch to blackman\n * window\n */\n for (var i = 0; i < Encoder.BLKSIZE; i++)\n /* blackman window */\n window[i] = (0.42 - 0.5 * Math.cos(2 * Math.PI * (i + .5)\n / Encoder.BLKSIZE) + 0.08 * Math.cos(4 * Math.PI * (i + .5)\n / Encoder.BLKSIZE));\n\n for (var i = 0; i < Encoder.BLKSIZE_s / 2; i++)\n window_s[i] = (0.5 * (1.0 - Math.cos(2.0 * Math.PI\n * (i + 0.5) / Encoder.BLKSIZE_s)));\n\n }\n\n}\n\nmodule.exports = FFT;\n","/* eslint no-constant-condition:0 */\nvar fontMetrics = require(\"./fontMetrics\");\nvar parseData = require(\"./parseData\");\nvar ParseError = require(\"./ParseError\");\n\nvar ParseNode = parseData.ParseNode;\n\n/**\n * Parse the body of the environment, with rows delimited by \\\\ and\n * columns delimited by &, and create a nested list in row-major order\n * with one group per cell.\n */\nfunction parseArray(parser, result) {\n var row = [];\n var body = [row];\n var rowGaps = [];\n while (true) {\n var cell = parser.parseExpression(false, null);\n row.push(new ParseNode(\"ordgroup\", cell, parser.mode));\n var next = parser.nextToken.text;\n if (next === \"&\") {\n parser.consume();\n } else if (next === \"\\\\end\") {\n break;\n } else if (next === \"\\\\\\\\\" || next === \"\\\\cr\") {\n var cr = parser.parseFunction();\n rowGaps.push(cr.value.size);\n row = [];\n body.push(row);\n } else {\n // TODO: Clean up the following hack once #385 got merged\n var pos = Math.min(parser.pos + 1, parser.lexer._input.length);\n throw new ParseError(\"Expected & or \\\\\\\\ or \\\\end\",\n parser.lexer, pos);\n }\n }\n result.body = body;\n result.rowGaps = rowGaps;\n return new ParseNode(result.type, result, parser.mode);\n}\n\n/*\n * An environment definition is very similar to a function definition:\n * it is declared with a name or a list of names, a set of properties\n * and a handler containing the actual implementation.\n *\n * The properties include:\n * - numArgs: The number of arguments after the \\begin{name} function.\n * - argTypes: (optional) Just like for a function\n * - allowedInText: (optional) Whether or not the environment is allowed inside\n * text mode (default false) (not enforced yet)\n * - numOptionalArgs: (optional) Just like for a function\n * A bare number instead of that object indicates the numArgs value.\n *\n * The handler function will receive two arguments\n * - context: information and references provided by the parser\n * - args: an array of arguments passed to \\begin{name}\n * The context contains the following properties:\n * - envName: the name of the environment, one of the listed names.\n * - parser: the parser object\n * - lexer: the lexer object\n * - positions: the positions associated with these arguments from args.\n * The handler must return a ParseResult.\n */\n\nfunction defineEnvironment(names, props, handler) {\n if (typeof names === \"string\") {\n names = [names];\n }\n if (typeof props === \"number\") {\n props = { numArgs: props };\n }\n // Set default values of environments\n var data = {\n numArgs: props.numArgs || 0,\n argTypes: props.argTypes,\n greediness: 1,\n allowedInText: !!props.allowedInText,\n numOptionalArgs: props.numOptionalArgs || 0,\n handler: handler,\n };\n for (var i = 0; i < names.length; ++i) {\n module.exports[names[i]] = data;\n }\n}\n\n// Arrays are part of LaTeX, defined in lttab.dtx so its documentation\n// is part of the source2e.pdf file of LaTeX2e source documentation.\ndefineEnvironment(\"array\", {\n numArgs: 1,\n}, function(context, args) {\n var colalign = args[0];\n colalign = colalign.value.map ? colalign.value : [colalign];\n var cols = colalign.map(function(node) {\n var ca = node.value;\n if (\"lcr\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca,\n };\n } else if (ca === \"|\") {\n return {\n type: \"separator\",\n separator: \"|\",\n };\n }\n throw new ParseError(\n \"Unknown column alignment: \" + node.value,\n context.lexer, context.positions[1]);\n });\n var res = {\n type: \"array\",\n cols: cols,\n hskipBeforeAndAfter: true, // \\@preamble in lttab.dtx\n };\n res = parseArray(context.parser, res);\n return res;\n});\n\n// The matrix environments of amsmath builds on the array environment\n// of LaTeX, which is discussed above.\ndefineEnvironment([\n \"matrix\",\n \"pmatrix\",\n \"bmatrix\",\n \"Bmatrix\",\n \"vmatrix\",\n \"Vmatrix\",\n], {\n}, function(context) {\n var delimiters = {\n \"matrix\": null,\n \"pmatrix\": [\"(\", \")\"],\n \"bmatrix\": [\"[\", \"]\"],\n \"Bmatrix\": [\"\\\\{\", \"\\\\}\"],\n \"vmatrix\": [\"|\", \"|\"],\n \"Vmatrix\": [\"\\\\Vert\", \"\\\\Vert\"],\n }[context.envName];\n var res = {\n type: \"array\",\n hskipBeforeAndAfter: false, // \\hskip -\\arraycolsep in amsmath\n };\n res = parseArray(context.parser, res);\n if (delimiters) {\n res = new ParseNode(\"leftright\", {\n body: [res],\n left: delimiters[0],\n right: delimiters[1],\n }, context.mode);\n }\n return res;\n});\n\n// A cases environment (in amsmath.sty) is almost equivalent to\n// \\def\\arraystretch{1.2}%\n// \\left\\{\\begin{array}{@{}l@{\\quad}l@{}} … \\end{array}\\right.\ndefineEnvironment(\"cases\", {\n}, function(context) {\n var res = {\n type: \"array\",\n arraystretch: 1.2,\n cols: [{\n type: \"align\",\n align: \"l\",\n pregap: 0,\n postgap: fontMetrics.metrics.quad,\n }, {\n type: \"align\",\n align: \"l\",\n pregap: 0,\n postgap: 0,\n }],\n };\n res = parseArray(context.parser, res);\n res = new ParseNode(\"leftright\", {\n body: [res],\n left: \"\\\\{\",\n right: \".\",\n }, context.mode);\n return res;\n});\n\n// An aligned environment is like the align* environment\n// except it operates within math mode.\n// Note that we assume \\nomallineskiplimit to be zero,\n// so that \\strut@ is the same as \\strut.\ndefineEnvironment(\"aligned\", {\n}, function(context) {\n var res = {\n type: \"array\",\n cols: [],\n };\n res = parseArray(context.parser, res);\n var emptyGroup = new ParseNode(\"ordgroup\", [], context.mode);\n var numCols = 0;\n res.value.body.forEach(function(row) {\n var i;\n for (i = 1; i < row.length; i += 2) {\n row[i].value.unshift(emptyGroup);\n }\n if (numCols < row.length) {\n numCols = row.length;\n }\n });\n for (var i = 0; i < numCols; ++i) {\n var align = \"r\";\n var pregap = 0;\n if (i % 2 === 1) {\n align = \"l\";\n } else if (i > 0) {\n pregap = 2; // one \\qquad between columns\n }\n res.value.cols[i] = {\n type: \"align\",\n align: align,\n pregap: pregap,\n postgap: 0,\n };\n }\n return res;\n});\n","// Parser state class\n\n'use strict';\n\nvar Token = require('../token');\nvar isSpace = require('../common/utils').isSpace;\n\n\nfunction StateBlock(src, md, env, tokens) {\n var ch, s, start, pos, len, indent, offset, indent_found;\n\n this.src = src;\n\n // link to parser instance\n this.md = md;\n\n this.env = env;\n\n //\n // Internal state vartiables\n //\n\n this.tokens = tokens;\n\n this.bMarks = []; // line begin offsets for fast jumps\n this.eMarks = []; // line end offsets for fast jumps\n this.tShift = []; // offsets of the first non-space characters (tabs not expanded)\n this.sCount = []; // indents for each line (tabs expanded)\n\n // block parser variables\n this.blkIndent = 0; // required block content indent\n // (for example, if we are in list)\n this.line = 0; // line index in src\n this.lineMax = 0; // lines count\n this.tight = false; // loose/tight mode for lists\n this.parentType = 'root'; // if `list`, block parser stops on two newlines\n this.ddIndent = -1; // indent of the current dd block (-1 if there isn't any)\n\n this.level = 0;\n\n // renderer\n this.result = '';\n\n // Create caches\n // Generate markers.\n s = this.src;\n indent_found = false;\n\n for (start = pos = indent = offset = 0, len = s.length; pos < len; pos++) {\n ch = s.charCodeAt(pos);\n\n if (!indent_found) {\n if (isSpace(ch)) {\n indent++;\n\n if (ch === 0x09) {\n offset += 4 - offset % 4;\n } else {\n offset++;\n }\n continue;\n } else {\n indent_found = true;\n }\n }\n\n if (ch === 0x0A || pos === len - 1) {\n if (ch !== 0x0A) { pos++; }\n this.bMarks.push(start);\n this.eMarks.push(pos);\n this.tShift.push(indent);\n this.sCount.push(offset);\n\n indent_found = false;\n indent = 0;\n offset = 0;\n start = pos + 1;\n }\n }\n\n // Push fake entry to simplify cache bounds checks\n this.bMarks.push(s.length);\n this.eMarks.push(s.length);\n this.tShift.push(0);\n this.sCount.push(0);\n\n this.lineMax = this.bMarks.length - 1; // don't count last fake line\n}\n\n// Push new token to \"stream\".\n//\nStateBlock.prototype.push = function (type, tag, nesting) {\n var token = new Token(type, tag, nesting);\n token.block = true;\n\n if (nesting < 0) { this.level--; }\n token.level = this.level;\n if (nesting > 0) { this.level++; }\n\n this.tokens.push(token);\n return token;\n};\n\nStateBlock.prototype.isEmpty = function isEmpty(line) {\n return this.bMarks[line] + this.tShift[line] >= this.eMarks[line];\n};\n\nStateBlock.prototype.skipEmptyLines = function skipEmptyLines(from) {\n for (var max = this.lineMax; from < max; from++) {\n if (this.bMarks[from] + this.tShift[from] < this.eMarks[from]) {\n break;\n }\n }\n return from;\n};\n\n// Skip spaces from given position.\nStateBlock.prototype.skipSpaces = function skipSpaces(pos) {\n var ch;\n\n for (var max = this.src.length; pos < max; pos++) {\n ch = this.src.charCodeAt(pos);\n if (!isSpace(ch)) { break; }\n }\n return pos;\n};\n\n// Skip spaces from given position in reverse.\nStateBlock.prototype.skipSpacesBack = function skipSpacesBack(pos, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (!isSpace(this.src.charCodeAt(--pos))) { return pos + 1; }\n }\n return pos;\n};\n\n// Skip char codes from given position\nStateBlock.prototype.skipChars = function skipChars(pos, code) {\n for (var max = this.src.length; pos < max; pos++) {\n if (this.src.charCodeAt(pos) !== code) { break; }\n }\n return pos;\n};\n\n// Skip char codes reverse from given position - 1\nStateBlock.prototype.skipCharsBack = function skipCharsBack(pos, code, min) {\n if (pos <= min) { return pos; }\n\n while (pos > min) {\n if (code !== this.src.charCodeAt(--pos)) { return pos + 1; }\n }\n return pos;\n};\n\n// cut lines range from source.\nStateBlock.prototype.getLines = function getLines(begin, end, indent, keepLastLF) {\n var i, lineIndent, ch, first, last, queue, lineStart,\n line = begin;\n\n if (begin >= end) {\n return '';\n }\n\n queue = new Array(end - begin);\n\n for (i = 0; line < end; line++, i++) {\n lineIndent = 0;\n lineStart = first = this.bMarks[line];\n\n if (line + 1 < end || keepLastLF) {\n // No need for bounds check because we have fake entry on tail.\n last = this.eMarks[line] + 1;\n } else {\n last = this.eMarks[line];\n }\n\n while (first < last && lineIndent < indent) {\n ch = this.src.charCodeAt(first);\n\n if (isSpace(ch)) {\n if (ch === 0x09) {\n lineIndent += 4 - lineIndent % 4;\n } else {\n lineIndent++;\n }\n } else if (first - lineStart < this.tShift[line]) {\n // patched tShift masked characters to look like spaces (blockquotes, list markers)\n lineIndent++;\n } else {\n break;\n }\n\n first++;\n }\n\n queue[i] = this.src.slice(first, last);\n }\n\n return queue.join('');\n};\n\n// re-export Token class to use in block rules\nStateBlock.prototype.Token = Token;\n\n\nmodule.exports = StateBlock;\n","// For each opening emphasis-like marker find a matching closing one\n//\n'use strict';\n\n\nmodule.exports = function link_pairs(state) {\n var i, j, lastDelim, currDelim,\n delimiters = state.delimiters,\n max = state.delimiters.length;\n\n for (i = 0; i < max; i++) {\n lastDelim = delimiters[i];\n\n if (!lastDelim.close) { continue; }\n\n j = i - lastDelim.jump - 1;\n\n while (j >= 0) {\n currDelim = delimiters[j];\n\n if (currDelim.open &&\n currDelim.marker === lastDelim.marker &&\n currDelim.end < 0 &&\n currDelim.level === lastDelim.level) {\n\n lastDelim.jump = i - j;\n lastDelim.open = false;\n currDelim.end = i;\n currDelim.jump = 0;\n break;\n }\n\n j -= currDelim.jump + 1;\n }\n }\n};\n","module.exports = function () { /* empty */ };\n","// markdown-it default options\n\n'use strict';\n\n\nmodule.exports = {\n options: {\n html: false, // Enable HTML tags in source\n xhtmlOut: false, // Use '/' to close single tags (
)\n breaks: false, // Convert '\\n' in paragraphs into
\n langPrefix: 'language-', // CSS language prefix for fenced blocks\n linkify: false, // autoconvert URL-like texts to links\n\n // Enable some language-neutral replacements + quotes beautification\n typographer: false,\n\n // Double + single quotes replacement pairs, when typographer enabled,\n // and smartquotes on. Could be either a String or an Array.\n //\n // For example, you can use '«»„“' for Russian, '„“‚‘' for German,\n // and ['«\\xA0', '\\xA0»', '‹\\xA0', '\\xA0›'] for French (including nbsp).\n quotes: '\\u201c\\u201d\\u2018\\u2019', /* “”‘’ */\n\n // Highlighter function. Should return escaped HTML,\n // or '' if the source string is not changed and should be escaped externaly.\n // If result starts with \\n';\n\t };\n\t var defaultLinkRenderer = this.md.renderer.rules.link_open || function (tokens, idx, options, env, self) {\n\t return self.renderToken(tokens, idx, options);\n\t };\n\t this.md.renderer.rules.link_open = function (tokens, idx, options, env, self) {\n\t (0, _keys2.default)(_this.anchorAttributes).map(function (attribute) {\n\t var aIndex = tokens[idx].attrIndex(attribute);\n\t var value = _this.anchorAttributes[attribute];\n\t if (aIndex < 0) {\n\t tokens[idx].attrPush([attribute, value]); // add new attribute\n\t } else {\n\t tokens[idx].attrs[aIndex][1] = value;\n\t }\n\t });\n\t return defaultLinkRenderer(tokens, idx, options, env, self);\n\t };\n\n\t if (this.toc) {\n\t this.md.use(_markdownItTocAndAnchor2.default, {\n\t tocClassName: this.tocClass,\n\t tocFirstLevel: this.tocFirstLevel,\n\t tocLastLevel: this.tocLastLevelComputed,\n\t anchorLink: this.tocAnchorLink,\n\t anchorLinkSymbol: this.tocAnchorLinkSymbol,\n\t anchorLinkSpace: this.tocAnchorLinkSpace,\n\t anchorClassName: this.tocAnchorClass,\n\t anchorLinkSymbolClassName: this.tocAnchorLinkClass,\n\t tocCallback: function tocCallback(tocMarkdown, tocArray, tocHtml) {\n\t if (tocHtml) {\n\t if (_this.tocId && document.getElementById(_this.tocId)) {\n\t document.getElementById(_this.tocId).innerHTML = tocHtml;\n\t }\n\n\t _this.$emit('toc-rendered', tocHtml);\n\t }\n\t }\n\t });\n\t }\n\n\t var outHtml = this.show ? this.md.render(this.prerender(this.sourceData)) : '';\n\t outHtml = this.postrender(outHtml);\n\n\t this.$emit('rendered', outHtml);\n\t return createElement('div', {\n\t domProps: {\n\t innerHTML: outHtml\n\t }\n\t });\n\t },\n\t beforeMount: function beforeMount() {\n\t var _this2 = this;\n\n\t if (this.$slots.default) {\n\t this.sourceData = '';\n\t var _iteratorNormalCompletion = true;\n\t var _didIteratorError = false;\n\t var _iteratorError = undefined;\n\n\t try {\n\t for (var _iterator = (0, _getIterator3.default)(this.$slots.default), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n\t var slot = _step.value;\n\n\t this.sourceData += slot.text;\n\t }\n\t } catch (err) {\n\t _didIteratorError = true;\n\t _iteratorError = err;\n\t } finally {\n\t try {\n\t if (!_iteratorNormalCompletion && _iterator.return) {\n\t _iterator.return();\n\t }\n\t } finally {\n\t if (_didIteratorError) {\n\t throw _iteratorError;\n\t }\n\t }\n\t }\n\t }\n\n\t this.$watch('source', function () {\n\t _this2.sourceData = _this2.prerender(_this2.source);\n\t _this2.$forceUpdate();\n\t });\n\n\t this.watches.forEach(function (v) {\n\t _this2.$watch(v, function () {\n\t _this2.$forceUpdate();\n\t });\n\t });\n\t }\n\t};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_4__;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_5__;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_6__;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_7__;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_8__;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_9__;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_10__;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_11__;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_12__;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_13__;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_14__;\n\n/***/ })\n/******/ ])\n});\n;","module.exports = \"data:image/png;base64,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\"","'use strict';\n\nmodule.exports = function inline(state) {\n var tokens = state.tokens, tok, i, l;\n\n // Parse inlines\n for (i = 0, l = tokens.length; i < l; i++) {\n tok = tokens[i];\n if (tok.type === 'inline') {\n state.md.inline.parse(tok.content, state.md, state.env, tok.children);\n }\n }\n};\n","module.exports = \"data:image/png;base64,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\"","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var Encoder = require('./Encoder.js');\nvar common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nfunction III_psy_xmin() {\n this.l = new_float(Encoder.SBMAX_l);\n this.s = new_float_n([Encoder.SBMAX_s, 3]);\n\n var self = this;\n this.assign = function (iii_psy_xmin) {\n System.arraycopy(iii_psy_xmin.l, 0, self.l, 0, Encoder.SBMAX_l);\n for (var i = 0; i < Encoder.SBMAX_s; i++) {\n for (var j = 0; j < 3; j++) {\n self.s[i][j] = iii_psy_xmin.s[i][j];\n }\n }\n }\n}\n\nmodule.exports = III_psy_xmin;\n","/**\n * This is a module for storing settings passed into KaTeX. It correctly handles\n * default settings.\n */\n\n/**\n * Helper function for getting a default value if the value is undefined\n */\nfunction get(option, defaultValue) {\n return option === undefined ? defaultValue : option;\n}\n\n/**\n * The main Settings object\n *\n * The current options stored are:\n * - displayMode: Whether the expression should be typeset by default in\n * textstyle or displaystyle (default false)\n */\nfunction Settings(options) {\n // allow null options\n options = options || {};\n this.displayMode = get(options.displayMode, false);\n this.throwOnError = get(options.throwOnError, true);\n this.errorColor = get(options.errorColor, \"#cc0000\");\n}\n\nmodule.exports = Settings;\n","function VBRQuantize() {\n var qupvt;\n var tak;\n\n this.setModules = function (_qupvt, _tk) {\n qupvt = _qupvt;\n tak = _tk;\n }\n //TODO\n\n}\n\nmodule.exports = VBRQuantize;\n","/* Process inline math */\n/*\nLike markdown-it-simplemath, this is a stripped down, simplified version of:\nhttps://github.com/runarberg/markdown-it-math\n\nIt differs in that it takes (a subset of) LaTeX as input and relies on KaTeX\nfor rendering output.\n*/\n\n/*jslint node: true */\n'use strict';\n\nvar katex = require('katex');\n\n// Test if potential opening or closing delimieter\n// Assumes that there is a \"$\" at state.src[pos]\nfunction isValidDelim(state, pos) {\n var prevChar, nextChar,\n max = state.posMax,\n can_open = true,\n can_close = true;\n\n prevChar = pos > 0 ? state.src.charCodeAt(pos - 1) : -1;\n nextChar = pos + 1 <= max ? state.src.charCodeAt(pos + 1) : -1;\n\n // Check non-whitespace conditions for opening and closing, and\n // check that closing delimeter isn't followed by a number\n if (prevChar === 0x20/* \" \" */ || prevChar === 0x09/* \\t */ ||\n (nextChar >= 0x30/* \"0\" */ && nextChar <= 0x39/* \"9\" */)) {\n can_close = false;\n }\n if (nextChar === 0x20/* \" \" */ || nextChar === 0x09/* \\t */) {\n can_open = false;\n }\n\n return {\n can_open: can_open,\n can_close: can_close\n };\n}\n\nfunction math_inline(state, silent) {\n var start, match, token, res, pos, esc_count;\n\n if (state.src[state.pos] !== \"$\") { return false; }\n\n res = isValidDelim(state, state.pos);\n if (!res.can_open) {\n if (!silent) { state.pending += \"$\"; }\n state.pos += 1;\n return true;\n }\n\n // First check for and bypass all properly escaped delimieters\n // This loop will assume that the first leading backtick can not\n // be the first character in state.src, which is known since\n // we have found an opening delimieter already.\n start = state.pos + 1;\n match = start;\n while ( (match = state.src.indexOf(\"$\", match)) !== -1) {\n // Found potential $, look for escapes, pos will point to\n // first non escape when complete\n pos = match - 1;\n while (state.src[pos] === \"\\\\\") { pos -= 1; }\n\n // Even number of escapes, potential closing delimiter found\n if ( ((match - pos) % 2) == 1 ) { break; }\n match += 1;\n }\n\n // No closing delimter found. Consume $ and continue.\n if (match === -1) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n // Check if we have empty content, ie: $$. Do not parse.\n if (match - start === 0) {\n if (!silent) { state.pending += \"$$\"; }\n state.pos = start + 1;\n return true;\n }\n\n // Check for valid closing delimiter\n res = isValidDelim(state, match);\n if (!res.can_close) {\n if (!silent) { state.pending += \"$\"; }\n state.pos = start;\n return true;\n }\n\n if (!silent) {\n token = state.push('math_inline', 'math', 0);\n token.markup = \"$\";\n token.content = state.src.slice(start, match);\n }\n\n state.pos = match + 1;\n return true;\n}\n\nfunction math_block(state, start, end, silent){\n var firstLine, lastLine, next, lastPos, found = false, token,\n pos = state.bMarks[start] + state.tShift[start],\n max = state.eMarks[start]\n\n if(pos + 2 > max){ return false; }\n if(state.src.slice(pos,pos+2)!=='$$'){ return false; }\n\n pos += 2;\n firstLine = state.src.slice(pos,max);\n\n if(silent){ return true; }\n if(firstLine.trim().slice(-2)==='$$'){\n // Single line expression\n firstLine = firstLine.trim().slice(0, -2);\n found = true;\n }\n\n for(next = start; !found; ){\n\n next++;\n\n if(next >= end){ break; }\n\n pos = state.bMarks[next]+state.tShift[next];\n max = state.eMarks[next];\n\n if(pos < max && state.tShift[next] < state.blkIndent){\n // non-empty line with negative indent should stop the list:\n break;\n }\n\n if(state.src.slice(pos,max).trim().slice(-2)==='$$'){\n lastPos = state.src.slice(0,max).lastIndexOf('$$');\n lastLine = state.src.slice(pos,lastPos);\n found = true;\n }\n\n }\n\n state.line = next + 1;\n\n token = state.push('math_block', 'math', 0);\n token.block = true;\n token.content = (firstLine && firstLine.trim() ? firstLine + '\\n' : '')\n + state.getLines(start + 1, next, state.tShift[start], true)\n + (lastLine && lastLine.trim() ? lastLine : '');\n token.map = [ start, state.line ];\n token.markup = '$$';\n return true;\n}\n\nmodule.exports = function math_plugin(md, options) {\n // Default options\n\n options = options || {};\n\n // set KaTeX as the renderer for markdown-it-simplemath\n var katexInline = function(latex){\n options.displayMode = false;\n try{\n return katex.renderToString(latex, options);\n }\n catch(error){\n if(options.throwOnError){ console.log(error); }\n return latex;\n }\n };\n\n var inlineRenderer = function(tokens, idx){\n return katexInline(tokens[idx].content);\n };\n\n var katexBlock = function(latex){\n options.displayMode = true;\n try{\n return \"
\n * minimum possible number of\n * -cod_info.global_gain + ((scalefac[] + (cod_info.preflag ? pretab[sfb] : 0))\n * << (cod_info.scalefac_scale + 1)) + cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n *\n * for long block, 0+((15+3)<<2) = 18*4 = 72\n * for short block, 0+(15<<2)+7*8 = 15*4+56 = 116\n *
\n */\n var Q_MAX2 = QuantizePVT.Q_MAX2;\n\n var LARGE_BITS = QuantizePVT.LARGE_BITS;\n\n\n /**\n * Assuming dynamic range=96dB, this value should be 92\n */\n var NSATHSCALE = 100;\n\n /**\n * The following table is used to implement the scalefactor partitioning for\n * MPEG2 as described in section 2.4.3.2 of the IS. The indexing corresponds\n * to the way the tables are presented in the IS:\n *\n * [table_number][row_in_table][column of nr_of_sfb]\n */\n this.nr_of_sfb_block = [\n [[6, 5, 5, 5], [9, 9, 9, 9], [6, 9, 9, 9]],\n [[6, 5, 7, 3], [9, 9, 12, 6], [6, 9, 12, 6]],\n [[11, 10, 0, 0], [18, 18, 0, 0], [15, 18, 0, 0]],\n [[7, 7, 7, 0], [12, 12, 12, 0], [6, 15, 12, 0]],\n [[6, 6, 6, 3], [12, 9, 9, 6], [6, 12, 9, 6]],\n [[8, 8, 5, 0], [15, 12, 9, 0], [6, 18, 9, 0]]];\n\n /**\n * Table B.6: layer3 preemphasis\n */\n var pretab = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,\n 2, 2, 3, 3, 3, 2, 0];\n this.pretab = pretab;\n\n /**\n * Here are MPEG1 Table B.8 and MPEG2 Table B.1 -- Layer III scalefactor\n * bands.
\n * Index into this using a method such as:
\n * idx = fr_ps.header.sampling_frequency + (fr_ps.header.version * 3)\n */\n this.sfBandIndex = [\n // Table B.2.b: 22.05 kHz\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n 522, 576],\n [0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192]\n , [0, 0, 0, 0, 0, 0, 0] // sfb21 pseudo sub bands\n , [0, 0, 0, 0, 0, 0, 0] // sfb12 pseudo sub bands\n ),\n /* Table B.2.c: 24 kHz */ /* docs: 332. mpg123(broken): 330 */\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464,\n 540, 576],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* Table B.2.a: 16 kHz */\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n 522, 576],\n [0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* Table B.8.b: 44.1 kHz */\n new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418,\n 576],\n [0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* Table B.8.c: 48 kHz */\n new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384,\n 576],\n [0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* Table B.8.a: 32 kHz */\n new ScaleFac([0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550,\n 576],\n [0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* MPEG-2.5 11.025 kHz */\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n 522, 576],\n [0 / 3, 12 / 3, 24 / 3, 36 / 3, 54 / 3, 78 / 3, 108 / 3, 144 / 3, 186 / 3, 240 / 3, 312 / 3,\n 402 / 3, 522 / 3, 576 / 3]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* MPEG-2.5 12 kHz */\n new ScaleFac([0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464,\n 522, 576],\n [0 / 3, 12 / 3, 24 / 3, 36 / 3, 54 / 3, 78 / 3, 108 / 3, 144 / 3, 186 / 3, 240 / 3, 312 / 3,\n 402 / 3, 522 / 3, 576 / 3]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n ),\n /* MPEG-2.5 8 kHz */\n new ScaleFac([0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570,\n 572, 574, 576],\n [0 / 3, 24 / 3, 48 / 3, 72 / 3, 108 / 3, 156 / 3, 216 / 3, 288 / 3, 372 / 3, 480 / 3, 486 / 3,\n 492 / 3, 498 / 3, 576 / 3]\n , [0, 0, 0, 0, 0, 0, 0] /* sfb21 pseudo sub bands */\n , [0, 0, 0, 0, 0, 0, 0] /* sfb12 pseudo sub bands */\n )\n ];\n\n var pow20 = new_float(Q_MAX + Q_MAX2 + 1);\n var ipow20 = new_float(Q_MAX);\n var pow43 = new_float(PRECALC_SIZE);\n\n var adj43 = new_float(PRECALC_SIZE);\n this.adj43 = adj43;\n\n /**\n * \n * compute the ATH for each scalefactor band cd range: 0..96db\n *\n * Input: 3.3kHz signal 32767 amplitude (3.3kHz is where ATH is smallest =\n * -5db) longblocks: sfb=12 en0/bw=-11db max_en0 = 1.3db shortblocks: sfb=5\n * -9db 0db\n *\n * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) longblocks: amp=1\n * sfb=12 en0/bw=-103 db max_en0 = -92db amp=32767 sfb=12 -12 db -1.4db\n *\n * Input: 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 (repeated) shortblocks: amp=1\n * sfb=5 en0/bw= -99 -86 amp=32767 sfb=5 -9 db 4db\n *\n *\n * MAX energy of largest wave at 3.3kHz = 1db AVE energy of largest wave at\n * 3.3kHz = -11db Let's take AVE: -11db = maximum signal in sfb=12. Dynamic\n * range of CD: 96db. Therefor energy of smallest audible wave in sfb=12 =\n * -11 - 96 = -107db = ATH at 3.3kHz.\n *\n * ATH formula for this wave: -5db. To adjust to LAME scaling, we need ATH =\n * ATH_formula - 103 (db) ATH = ATH * 2.5e-10 (ener)\n *
\n */\n function ATHmdct(gfp, f) {\n var ath = psy.ATHformula(f, gfp);\n\n ath -= NSATHSCALE;\n\n /* modify the MDCT scaling for the ATH and convert to energy */\n ath = Math.pow(10.0, ath / 10.0 + gfp.ATHlower);\n return ath;\n }\n\n function compute_ath(gfp) {\n var ATH_l = gfp.internal_flags.ATH.l;\n var ATH_psfb21 = gfp.internal_flags.ATH.psfb21;\n var ATH_s = gfp.internal_flags.ATH.s;\n var ATH_psfb12 = gfp.internal_flags.ATH.psfb12;\n var gfc = gfp.internal_flags;\n var samp_freq = gfp.out_samplerate;\n\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n ATH_l[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */\n ATH_l[sfb] = Math.min(ATH_l[sfb], ATH_f);\n }\n }\n\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n var start = gfc.scalefac_band.psfb21[sfb];\n var end = gfc.scalefac_band.psfb21[sfb + 1];\n ATH_psfb21[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 576);\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */\n ATH_psfb21[sfb] = Math.min(ATH_psfb21[sfb], ATH_f);\n }\n }\n\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n ATH_s[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */\n ATH_s[sfb] = Math.min(ATH_s[sfb], ATH_f);\n }\n ATH_s[sfb] *= (gfc.scalefac_band.s[sfb + 1] - gfc.scalefac_band.s[sfb]);\n }\n\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n var start = gfc.scalefac_band.psfb12[sfb];\n var end = gfc.scalefac_band.psfb12[sfb + 1];\n ATH_psfb12[sfb] = Float.MAX_VALUE;\n for (var i = start; i < end; i++) {\n var freq = i * samp_freq / (2 * 192);\n var ATH_f = ATHmdct(gfp, freq);\n /* freq in kHz */\n ATH_psfb12[sfb] = Math.min(ATH_psfb12[sfb], ATH_f);\n }\n /* not sure about the following */\n ATH_psfb12[sfb] *= (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12]);\n }\n\n /*\n * no-ATH mode: reduce ATH to -200 dB\n */\n if (gfp.noATH) {\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n ATH_l[sfb] = 1E-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB21; sfb++) {\n ATH_psfb21[sfb] = 1E-20;\n }\n for (var sfb = 0; sfb < Encoder.SBMAX_s; sfb++) {\n ATH_s[sfb] = 1E-20;\n }\n for (var sfb = 0; sfb < Encoder.PSFB12; sfb++) {\n ATH_psfb12[sfb] = 1E-20;\n }\n }\n\n /*\n * work in progress, don't rely on it too much\n */\n gfc.ATH.floor = 10. * Math.log10(ATHmdct(gfp, -1.));\n }\n\n /**\n * initialization for iteration_loop\n */\n this.iteration_init = function (gfp) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var i;\n\n if (gfc.iteration_init_init == 0) {\n gfc.iteration_init_init = 1;\n\n l3_side.main_data_begin = 0;\n compute_ath(gfp);\n\n pow43[0] = 0.0;\n for (i = 1; i < PRECALC_SIZE; i++)\n pow43[i] = Math.pow(i, 4.0 / 3.0);\n\n for (i = 0; i < PRECALC_SIZE - 1; i++)\n adj43[i] = ((i + 1) - Math.pow(\n 0.5 * (pow43[i] + pow43[i + 1]), 0.75));\n adj43[i] = 0.5;\n\n for (i = 0; i < Q_MAX; i++)\n ipow20[i] = Math.pow(2.0, (i - 210) * -0.1875);\n for (i = 0; i <= Q_MAX + Q_MAX2; i++)\n pow20[i] = Math.pow(2.0, (i - 210 - Q_MAX2) * 0.25);\n\n tak.huffman_init(gfc);\n\n {\n var bass, alto, treble, sfb21;\n\n i = (gfp.exp_nspsytune >> 2) & 63;\n if (i >= 32)\n i -= 64;\n bass = Math.pow(10, i / 4.0 / 10.0);\n\n i = (gfp.exp_nspsytune >> 8) & 63;\n if (i >= 32)\n i -= 64;\n alto = Math.pow(10, i / 4.0 / 10.0);\n\n i = (gfp.exp_nspsytune >> 14) & 63;\n if (i >= 32)\n i -= 64;\n treble = Math.pow(10, i / 4.0 / 10.0);\n\n /*\n * to be compatible with Naoki's original code, the next 6 bits\n * define only the amount of changing treble for sfb21\n */\n i = (gfp.exp_nspsytune >> 20) & 63;\n if (i >= 32)\n i -= 64;\n sfb21 = treble * Math.pow(10, i / 4.0 / 10.0);\n for (i = 0; i < Encoder.SBMAX_l; i++) {\n var f;\n if (i <= 6)\n f = bass;\n else if (i <= 13)\n f = alto;\n else if (i <= 20)\n f = treble;\n else\n f = sfb21;\n\n gfc.nsPsy.longfact[i] = f;\n }\n for (i = 0; i < Encoder.SBMAX_s; i++) {\n var f;\n if (i <= 5)\n f = bass;\n else if (i <= 10)\n f = alto;\n else if (i <= 11)\n f = treble;\n else\n f = sfb21;\n\n gfc.nsPsy.shortfact[i] = f;\n }\n }\n }\n }\n\n /**\n * allocate bits among 2 channels based on PE
\n * mt 6/99
\n * bugfixes rh 8/01: often allocated more than the allowed 4095 bits\n */\n this.on_pe = function (gfp, pe,\n targ_bits, mean_bits, gr, cbr) {\n var gfc = gfp.internal_flags;\n var tbits = 0, bits;\n var add_bits = new_int(2);\n var ch;\n\n /* allocate targ_bits for granule */\n var mb = new MeanBits(tbits);\n var extra_bits = rv.ResvMaxBits(gfp, mean_bits, mb, cbr);\n tbits = mb.bits;\n /* maximum allowed bits for this granule */\n var max_bits = tbits + extra_bits;\n if (max_bits > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n // hard limit per granule\n max_bits = LameInternalFlags.MAX_BITS_PER_GRANULE;\n }\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n /******************************************************************\n * allocate bits for each channel\n ******************************************************************/\n targ_bits[ch] = Math.min(LameInternalFlags.MAX_BITS_PER_CHANNEL,\n tbits / gfc.channels_out);\n\n add_bits[ch] = 0 | (targ_bits[ch] * pe[gr][ch] / 700.0 - targ_bits[ch]);\n\n /* at most increase bits by 1.5*average */\n if (add_bits[ch] > mean_bits * 3 / 4)\n add_bits[ch] = mean_bits * 3 / 4;\n if (add_bits[ch] < 0)\n add_bits[ch] = 0;\n\n if (add_bits[ch] + targ_bits[ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL)\n add_bits[ch] = Math.max(0,\n LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[ch]);\n\n bits += add_bits[ch];\n }\n if (bits > extra_bits) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n add_bits[ch] = extra_bits * add_bits[ch] / bits;\n }\n }\n\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] += add_bits[ch];\n extra_bits -= add_bits[ch];\n }\n\n for (bits = 0, ch = 0; ch < gfc.channels_out; ++ch) {\n bits += targ_bits[ch];\n }\n if (bits > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n targ_bits[ch] /= bits;\n sum += targ_bits[ch];\n }\n assert(sum <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n }\n\n return max_bits;\n }\n\n this.reduce_side = function (targ_bits, ms_ener_ratio, mean_bits, max_bits) {\n assert(max_bits <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n assert(targ_bits[0] + targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n\n /*\n * ms_ener_ratio = 0: allocate 66/33 mid/side fac=.33 ms_ener_ratio =.5:\n * allocate 50/50 mid/side fac= 0\n */\n /* 75/25 split is fac=.5 */\n var fac = .33 * (.5 - ms_ener_ratio) / .5;\n if (fac < 0)\n fac = 0;\n if (fac > .5)\n fac = .5;\n\n /* number of bits to move from side channel to mid channel */\n /* move_bits = fac*targ_bits[1]; */\n var move_bits = 0 | (fac * .5 * (targ_bits[0] + targ_bits[1]));\n\n if (move_bits > LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[0]) {\n move_bits = LameInternalFlags.MAX_BITS_PER_CHANNEL - targ_bits[0];\n }\n if (move_bits < 0)\n move_bits = 0;\n\n if (targ_bits[1] >= 125) {\n /* dont reduce side channel below 125 bits */\n if (targ_bits[1] - move_bits > 125) {\n\n /* if mid channel already has 2x more than average, dont bother */\n /* mean_bits = bits per granule (for both channels) */\n if (targ_bits[0] < mean_bits)\n targ_bits[0] += move_bits;\n targ_bits[1] -= move_bits;\n } else {\n targ_bits[0] += targ_bits[1] - 125;\n targ_bits[1] = 125;\n }\n }\n\n move_bits = targ_bits[0] + targ_bits[1];\n if (move_bits > max_bits) {\n targ_bits[0] = (max_bits * targ_bits[0]) / move_bits;\n targ_bits[1] = (max_bits * targ_bits[1]) / move_bits;\n }\n assert(targ_bits[0] <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n assert(targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n assert(targ_bits[0] + targ_bits[1] <= LameInternalFlags.MAX_BITS_PER_GRANULE);\n };\n\n /**\n * Robert Hegemann 2001-04-27:\n * this adjusts the ATH, keeping the original noise floor\n * affects the higher frequencies more than the lower ones\n */\n this.athAdjust = function (a, x, athFloor) {\n /*\n * work in progress\n */\n var o = 90.30873362;\n var p = 94.82444863;\n var u = Util.FAST_LOG10_X(x, 10.0);\n var v = a * a;\n var w = 0.0;\n u -= athFloor;\n /* undo scaling */\n if (v > 1E-20)\n w = 1. + Util.FAST_LOG10_X(v, 10.0 / o);\n if (w < 0)\n w = 0.;\n u *= w;\n u += athFloor + o - p;\n /* redo scaling */\n\n return Math.pow(10., 0.1 * u);\n };\n\n /**\n * Calculate the allowed distortion for each scalefactor band, as determined\n * by the psychoacoustic model. xmin(sb) = ratio(sb) * en(sb) / bw(sb)\n *\n * returns number of sfb's with energy > ATH\n */\n this.calc_xmin = function (gfp, ratio, cod_info, pxmin) {\n var pxminPos = 0;\n var gfc = gfp.internal_flags;\n var gsfb, j = 0, ath_over = 0;\n var ATH = gfc.ATH;\n var xr = cod_info.xr;\n var enable_athaa_fix = (gfp.VBR == VbrMode.vbr_mtrh) ? 1 : 0;\n var masking_lower = gfc.masking_lower;\n\n if (gfp.VBR == VbrMode.vbr_mtrh || gfp.VBR == VbrMode.vbr_mt) {\n /* was already done in PSY-Model */\n masking_lower = 1.0;\n }\n\n for (gsfb = 0; gsfb < cod_info.psy_lmax; gsfb++) {\n var en0, xmin;\n var rh1, rh2;\n var width, l;\n\n if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)\n xmin = athAdjust(ATH.adjust, ATH.l[gsfb], ATH.floor);\n else\n xmin = ATH.adjust * ATH.l[gsfb];\n\n width = cod_info.width[gsfb];\n rh1 = xmin / width;\n rh2 = DBL_EPSILON;\n l = width >> 1;\n en0 = 0.0;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += (xa < rh1) ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += (xb < rh1) ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > xmin)\n ath_over++;\n\n if (gsfb == Encoder.SBPSY_l) {\n var x = xmin * gfc.nsPsy.longfact[gsfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0) {\n xmin = rh2;\n }\n if (!gfp.ATHonly) {\n var e = ratio.en.l[gsfb];\n if (e > 0.0) {\n var x;\n x = en0 * ratio.thm.l[gsfb] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.longfact[gsfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.longfact[gsfb];\n }\n /* end of long block loop */\n\n /* use this function to determine the highest non-zero coeff */\n var max_nonzero = 575;\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n // NORM, START or STOP type, but not SHORT\n var k = 576;\n while (k-- != 0 && BitStream.EQ(xr[k], 0)) {\n max_nonzero = k;\n }\n }\n cod_info.max_nonzero_coeff = max_nonzero;\n\n for (var sfb = cod_info.sfb_smin; gsfb < cod_info.psymax; sfb++, gsfb += 3) {\n var width, b;\n var tmpATH;\n if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)\n tmpATH = athAdjust(ATH.adjust, ATH.s[sfb], ATH.floor);\n else\n tmpATH = ATH.adjust * ATH.s[sfb];\n\n width = cod_info.width[gsfb];\n for (b = 0; b < 3; b++) {\n var en0 = 0.0, xmin;\n var rh1, rh2;\n var l = width >> 1;\n\n rh1 = tmpATH / width;\n rh2 = DBL_EPSILON;\n do {\n var xa, xb;\n xa = xr[j] * xr[j];\n en0 += xa;\n rh2 += (xa < rh1) ? xa : rh1;\n j++;\n xb = xr[j] * xr[j];\n en0 += xb;\n rh2 += (xb < rh1) ? xb : rh1;\n j++;\n } while (--l > 0);\n if (en0 > tmpATH)\n ath_over++;\n if (sfb == Encoder.SBPSY_s) {\n var x = tmpATH * gfc.nsPsy.shortfact[sfb];\n if (rh2 < x) {\n rh2 = x;\n }\n }\n if (enable_athaa_fix != 0)\n xmin = rh2;\n else\n xmin = tmpATH;\n\n if (!gfp.ATHonly && !gfp.ATHshort) {\n var e = ratio.en.s[sfb][b];\n if (e > 0.0) {\n var x;\n x = en0 * ratio.thm.s[sfb][b] * masking_lower / e;\n if (enable_athaa_fix != 0)\n x *= gfc.nsPsy.shortfact[sfb];\n if (xmin < x)\n xmin = x;\n }\n }\n if (enable_athaa_fix != 0)\n pxmin[pxminPos++] = xmin;\n else\n pxmin[pxminPos++] = xmin * gfc.nsPsy.shortfact[sfb];\n }\n /* b */\n if (gfp.useTemporal) {\n if (pxmin[pxminPos - 3] > pxmin[pxminPos - 3 + 1])\n pxmin[pxminPos - 3 + 1] += (pxmin[pxminPos - 3] - pxmin[pxminPos - 3 + 1])\n * gfc.decay;\n if (pxmin[pxminPos - 3 + 1] > pxmin[pxminPos - 3 + 2])\n pxmin[pxminPos - 3 + 2] += (pxmin[pxminPos - 3 + 1] - pxmin[pxminPos - 3 + 2])\n * gfc.decay;\n }\n }\n /* end of short block sfb loop */\n\n return ath_over;\n };\n\n function StartLine(j) {\n this.s = j;\n }\n\n this.calc_noise_core = function (cod_info, startline, l, step) {\n var noise = 0;\n var j = startline.s;\n var ix = cod_info.l3_enc;\n\n if (j > cod_info.count1) {\n while ((l--) != 0) {\n var temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n temp = cod_info.xr[j];\n j++;\n noise += temp * temp;\n }\n } else if (j > cod_info.big_values) {\n var ix01 = new_float(2);\n ix01[0] = 0;\n ix01[1] = step;\n while ((l--) != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - ix01[ix[j]];\n j++;\n noise += temp * temp;\n }\n } else {\n while ((l--) != 0) {\n var temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n temp = Math.abs(cod_info.xr[j]) - pow43[ix[j]] * step;\n j++;\n noise += temp * temp;\n }\n }\n\n startline.s = j;\n return noise;\n }\n\n /**\n * \n * -oo dB => -1.00\n * - 6 dB => -0.97\n * - 3 dB => -0.80\n * - 2 dB => -0.64\n * - 1 dB => -0.38\n * 0 dB => 0.00\n * + 1 dB => +0.49\n * + 2 dB => +1.06\n * + 3 dB => +1.68\n * + 6 dB => +3.69\n * +10 dB => +6.45\n *
\n */\n this.calc_noise = function (cod_info, l3_xmin, distort, res, prev_noise) {\n var distortPos = 0;\n var l3_xminPos = 0;\n var sfb, l, over = 0;\n var over_noise_db = 0;\n /* 0 dB relative to masking */\n var tot_noise_db = 0;\n /* -200 dB relative to masking */\n var max_noise = -20.0;\n var j = 0;\n var scalefac = cod_info.scalefac;\n var scalefacPos = 0;\n\n res.over_SSD = 0;\n\n for (sfb = 0; sfb < cod_info.psymax; sfb++) {\n var s = cod_info.global_gain\n - (((scalefac[scalefacPos++]) + (cod_info.preflag != 0 ? pretab[sfb]\n : 0)) << (cod_info.scalefac_scale + 1))\n - cod_info.subblock_gain[cod_info.window[sfb]] * 8;\n var noise = 0.0;\n\n if (prev_noise != null && (prev_noise.step[sfb] == s)) {\n\n /* use previously computed values */\n noise = prev_noise.noise[sfb];\n j += cod_info.width[sfb];\n distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n\n noise = prev_noise.noise_log[sfb];\n\n } else {\n var step = POW20(s);\n l = cod_info.width[sfb] >> 1;\n\n if ((j + cod_info.width[sfb]) > cod_info.max_nonzero_coeff) {\n var usefullsize;\n usefullsize = cod_info.max_nonzero_coeff - j + 1;\n\n if (usefullsize > 0)\n l = usefullsize >> 1;\n else\n l = 0;\n }\n\n var sl = new StartLine(j);\n noise = this.calc_noise_core(cod_info, sl, l, step);\n j = sl.s;\n\n if (prev_noise != null) {\n /* save noise values */\n prev_noise.step[sfb] = s;\n prev_noise.noise[sfb] = noise;\n }\n\n noise = distort[distortPos++] = noise / l3_xmin[l3_xminPos++];\n\n /* multiplying here is adding in dB, but can overflow */\n noise = Util.FAST_LOG10(Math.max(noise, 1E-20));\n\n if (prev_noise != null) {\n /* save noise values */\n prev_noise.noise_log[sfb] = noise;\n }\n }\n\n if (prev_noise != null) {\n /* save noise values */\n prev_noise.global_gain = cod_info.global_gain;\n }\n\n tot_noise_db += noise;\n\n if (noise > 0.0) {\n var tmp;\n\n tmp = Math.max(0 | (noise * 10 + .5), 1);\n res.over_SSD += tmp * tmp;\n\n over++;\n /* multiplying here is adding in dB -but can overflow */\n /* over_noise *= noise; */\n over_noise_db += noise;\n }\n max_noise = Math.max(max_noise, noise);\n\n }\n\n res.over_count = over;\n res.tot_noise = tot_noise_db;\n res.over_noise = over_noise_db;\n res.max_noise = max_noise;\n\n return over;\n }\n\n /**\n * updates plotting data\n *\n * Mark Taylor 2000-??-??\n *\n * Robert Hegemann: moved noise/distortion calc into it\n */\n this.set_pinfo = function (gfp, cod_info, ratio, gr, ch) {\n var gfc = gfp.internal_flags;\n var sfb, sfb2;\n var l;\n var en0, en1;\n var ifqstep = (cod_info.scalefac_scale == 0) ? .5 : 1.0;\n var scalefac = cod_info.scalefac;\n\n var l3_xmin = new_float(L3Side.SFBMAX);\n var xfsf = new_float(L3Side.SFBMAX);\n var noise = new CalcNoiseResult();\n\n calc_xmin(gfp, ratio, cod_info, l3_xmin);\n calc_noise(cod_info, l3_xmin, xfsf, noise, null);\n\n var j = 0;\n sfb2 = cod_info.sfb_lmax;\n if (cod_info.block_type != Encoder.SHORT_TYPE\n && 0 == cod_info.mixed_block_flag)\n sfb2 = 22;\n for (sfb = 0; sfb < sfb2; sfb++) {\n var start = gfc.scalefac_band.l[sfb];\n var end = gfc.scalefac_band.l[sfb + 1];\n var bw = end - start;\n for (en0 = 0.0; j < end; j++)\n en0 += cod_info.xr[j] * cod_info.xr[j];\n en0 /= bw;\n /* convert to MDCT units */\n /* scaling so it shows up on FFT plot */\n en1 = 1e15;\n gfc.pinfo.en[gr][ch][sfb] = en1 * en0;\n gfc.pinfo.xfsf[gr][ch][sfb] = en1 * l3_xmin[sfb] * xfsf[sfb] / bw;\n\n if (ratio.en.l[sfb] > 0 && !gfp.ATHonly)\n en0 = en0 / ratio.en.l[sfb];\n else\n en0 = 0.0;\n\n gfc.pinfo.thr[gr][ch][sfb] = en1\n * Math.max(en0 * ratio.thm.l[sfb], gfc.ATH.l[sfb]);\n\n /* there is no scalefactor bands >= SBPSY_l */\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = 0;\n if (cod_info.preflag != 0 && sfb >= 11)\n gfc.pinfo.LAMEsfb[gr][ch][sfb] = -ifqstep * pretab[sfb];\n\n if (sfb < Encoder.SBPSY_l) {\n /* scfsi should be decoded by caller side */\n assert(scalefac[sfb] >= 0);\n gfc.pinfo.LAMEsfb[gr][ch][sfb] -= ifqstep * scalefac[sfb];\n }\n }\n /* for sfb */\n\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n sfb2 = sfb;\n for (sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n var bw = end - start;\n for (var i = 0; i < 3; i++) {\n for (en0 = 0.0, l = start; l < end; l++) {\n en0 += cod_info.xr[j] * cod_info.xr[j];\n j++;\n }\n en0 = Math.max(en0 / bw, 1e-20);\n /* convert to MDCT units */\n /* scaling so it shows up on FFT plot */\n en1 = 1e15;\n\n gfc.pinfo.en_s[gr][ch][3 * sfb + i] = en1 * en0;\n gfc.pinfo.xfsf_s[gr][ch][3 * sfb + i] = en1 * l3_xmin[sfb2]\n * xfsf[sfb2] / bw;\n if (ratio.en.s[sfb][i] > 0)\n en0 = en0 / ratio.en.s[sfb][i];\n else\n en0 = 0.0;\n if (gfp.ATHonly || gfp.ATHshort)\n en0 = 0;\n\n gfc.pinfo.thr_s[gr][ch][3 * sfb + i] = en1\n * Math.max(en0 * ratio.thm.s[sfb][i],\n gfc.ATH.s[sfb]);\n\n /* there is no scalefactor bands >= SBPSY_s */\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] = -2.0\n * cod_info.subblock_gain[i];\n if (sfb < Encoder.SBPSY_s) {\n gfc.pinfo.LAMEsfb_s[gr][ch][3 * sfb + i] -= ifqstep\n * scalefac[sfb2];\n }\n sfb2++;\n }\n }\n }\n /* block type short */\n gfc.pinfo.LAMEqss[gr][ch] = cod_info.global_gain;\n gfc.pinfo.LAMEmainbits[gr][ch] = cod_info.part2_3_length\n + cod_info.part2_length;\n gfc.pinfo.LAMEsfbits[gr][ch] = cod_info.part2_length;\n\n gfc.pinfo.over[gr][ch] = noise.over_count;\n gfc.pinfo.max_noise[gr][ch] = noise.max_noise * 10.0;\n gfc.pinfo.over_noise[gr][ch] = noise.over_noise * 10.0;\n gfc.pinfo.tot_noise[gr][ch] = noise.tot_noise * 10.0;\n gfc.pinfo.over_SSD[gr][ch] = noise.over_SSD;\n }\n\n /**\n * updates plotting data for a whole frame\n *\n * Robert Hegemann 2000-10-21\n */\n function set_frame_pinfo(gfp, ratio) {\n var gfc = gfp.internal_flags;\n\n gfc.masking_lower = 1.0;\n\n /*\n * for every granule and channel patch l3_enc and set info\n */\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n var scalefac_sav = new_int(L3Side.SFBMAX);\n System.arraycopy(cod_info.scalefac, 0, scalefac_sav, 0,\n scalefac_sav.length);\n\n /*\n * reconstruct the scalefactors in case SCFSI was used\n */\n if (gr == 1) {\n var sfb;\n for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n if (cod_info.scalefac[sfb] < 0) /* scfsi */\n cod_info.scalefac[sfb] = gfc.l3_side.tt[0][ch].scalefac[sfb];\n }\n }\n\n set_pinfo(gfp, cod_info, ratio[gr][ch], gr, ch);\n System.arraycopy(scalefac_sav, 0, cod_info.scalefac, 0,\n scalefac_sav.length);\n }\n /* for ch */\n }\n /* for gr */\n }\n\n}\n\nmodule.exports = QuantizePVT;\n","// Simple typographyc replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// (p) (P) -> §\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → –, --- → —\n//\n'use strict';\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - miltiplication 2 x 4 -> 2 × 4\n\nvar RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/;\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nvar SCOPED_ABBR_TEST_RE = /\\((c|tm|r|p)\\)/i;\n\nvar SCOPED_ABBR_RE = /\\((c|tm|r|p)\\)/ig;\nvar SCOPED_ABBR = {\n c: '©',\n r: '®',\n p: '§',\n tm: '™'\n};\n\nfunction replaceFn(match, name) {\n return SCOPED_ABBR[name.toLowerCase()];\n}\n\nfunction replace_scoped(inlineTokens) {\n var i, token;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n if (token.type === 'text') {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn);\n }\n }\n}\n\nfunction replace_rare(inlineTokens) {\n var i, token;\n\n for (i = inlineTokens.length - 1; i >= 0; i--) {\n token = inlineTokens[i];\n if (token.type === 'text') {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---([^-]|$)/mg, '$1\\u2014$2')\n // en-dash\n .replace(/(^|\\s)--(\\s|$)/mg, '$1\\u2013$2')\n .replace(/(^|[^-\\s])--([^-\\s]|$)/mg, '$1\\u2013$2');\n }\n }\n }\n}\n\n\nmodule.exports = function replace(state) {\n var blkIdx;\n\n if (!state.md.options.typographer) { return; }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n\n if (state.tokens[blkIdx].type !== 'inline') { continue; }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children);\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children);\n }\n\n }\n};\n","// HTML5 entities map: { name -> utf16string }\n//\n'use strict';\n\n/*eslint quotes:0*/\nmodule.exports = require('entities/maps/entities.json');\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar IIISideInfo = require('./IIISideInfo.js');\nvar ScaleFac = require('./ScaleFac.js');\nvar NsPsy = require('./NsPsy.js');\nvar VBRSeekInfo = require('./VBRSeekInfo.js');\nvar III_psy_xmin = require('./III_psy_xmin.js');\nvar Encoder = require('./Encoder.js');\nvar L3Side = require('./L3Side.js');\n\n\nLameInternalFlags.MFSIZE = (3 * 1152 + Encoder.ENCDELAY - Encoder.MDCTDELAY);\nLameInternalFlags.MAX_HEADER_BUF = 256;\nLameInternalFlags.MAX_BITS_PER_CHANNEL = 4095;\nLameInternalFlags.MAX_BITS_PER_GRANULE = 7680;\nLameInternalFlags.BPC = 320;\n\nfunction LameInternalFlags() {\n var MAX_HEADER_LEN = 40;\n\n\n /********************************************************************\n * internal variables NOT set by calling program, and should not be *\n * modified by the calling program *\n ********************************************************************/\n\n /**\n * Some remarks to the Class_ID field: The Class ID is an Identifier for a\n * pointer to this struct. It is very unlikely that a pointer to\n * lame_global_flags has the same 32 bits in it's structure (large and other\n * special properties, for instance prime).\n *\n * To test that the structure is right and initialized, use: if ( gfc .\n * Class_ID == LAME_ID ) ... Other remark: If you set a flag to 0 for uninit\n * data and 1 for init data, the right test should be \"if (flag == 1)\" and\n * NOT \"if (flag)\". Unintended modification of this element will be\n * otherwise misinterpreted as an init.\n */\n this.Class_ID = 0;\n\n this.lame_encode_frame_init = 0;\n this.iteration_init_init = 0;\n this.fill_buffer_resample_init = 0;\n\n //public float mfbuf[][] = new float[2][MFSIZE];\n this.mfbuf = new_float_n([2, LameInternalFlags.MFSIZE]);\n\n /**\n * granules per frame\n */\n this.mode_gr = 0;\n /**\n * number of channels in the input data stream (PCM or decoded PCM)\n */\n this.channels_in = 0;\n /**\n * number of channels in the output data stream (not used for decoding)\n */\n this.channels_out = 0;\n /**\n * input_samp_rate/output_samp_rate\n */\n //public double resample_ratio;\n this.resample_ratio = 0.;\n\n this.mf_samples_to_encode = 0;\n this.mf_size = 0;\n /**\n * min bitrate index\n */\n this.VBR_min_bitrate = 0;\n /**\n * max bitrate index\n */\n this.VBR_max_bitrate = 0;\n this.bitrate_index = 0;\n this.samplerate_index = 0;\n this.mode_ext = 0;\n\n /* lowpass and highpass filter control */\n /**\n * normalized frequency bounds of passband\n */\n this.lowpass1 = 0.;\n this.lowpass2 = 0.;\n /**\n * normalized frequency bounds of passband\n */\n this.highpass1 = 0.;\n this.highpass2 = 0.;\n\n /**\n * 0 = none 1 = ISO AAC model 2 = allow scalefac_select=1\n */\n this.noise_shaping = 0;\n\n /**\n * 0 = ISO model: amplify all distorted bands
\n * 1 = amplify within 50% of max (on db scale)
\n * 2 = amplify only most distorted band
\n * 3 = method 1 and refine with method 2
\n */\n this.noise_shaping_amp = 0;\n /**\n * 0 = no substep
\n * 1 = use substep shaping at last step(VBR only)
\n * (not implemented yet)
\n * 2 = use substep inside loop
\n * 3 = use substep inside loop and last step
\n */\n this.substep_shaping = 0;\n\n /**\n * 1 = gpsycho. 0 = none\n */\n this.psymodel = 0;\n /**\n * 0 = stop at over=0, all scalefacs amplified or
\n * a scalefac has reached max value
\n * 1 = stop when all scalefacs amplified or a scalefac has reached max value
\n * 2 = stop when all scalefacs amplified\n */\n this.noise_shaping_stop = 0;\n\n /**\n * 0 = no, 1 = yes\n */\n this.subblock_gain = 0;\n /**\n * 0 = no. 1=outside loop 2=inside loop(slow)\n */\n this.use_best_huffman = 0;\n\n /**\n * 0 = stop early after 0 distortion found. 1 = full search\n */\n this.full_outer_loop = 0;\n\n //public IIISideInfo l3_side = new IIISideInfo();\n this.l3_side = new IIISideInfo();\n this.ms_ratio = new_float(2);\n\n /* used for padding */\n /**\n * padding for the current frame?\n */\n this.padding = 0;\n this.frac_SpF = 0;\n this.slot_lag = 0;\n\n /**\n * optional ID3 tags\n */\n //public ID3TagSpec tag_spec;\n this.tag_spec = null;\n this.nMusicCRC = 0;\n\n /* variables used by Quantize */\n //public int OldValue[] = new int[2];\n this.OldValue = new_int(2);\n //public int CurrentStep[] = new int[2];\n this.CurrentStep = new_int(2);\n\n this.masking_lower = 0.;\n //public int bv_scf[] = new int[576];\n this.bv_scf = new_int(576);\n //public int pseudohalf[] = new int[L3Side.SFBMAX];\n this.pseudohalf = new_int(L3Side.SFBMAX);\n\n /**\n * will be set in lame_init_params\n */\n this.sfb21_extra = false;\n\n /* BPC = maximum number of filter convolution windows to precompute */\n //public float[][] inbuf_old = new float[2][];\n this.inbuf_old = new Array(2);\n //public float[][] blackfilt = new float[2 * BPC + 1][];\n this.blackfilt = new Array(2 * LameInternalFlags.BPC + 1);\n //public double itime[] = new double[2];\n this.itime = new_double(2);\n this.sideinfo_len = 0;\n\n /* variables for newmdct.c */\n //public float sb_sample[][][][] = new float[2][2][18][Encoder.SBLIMIT];\n this.sb_sample = new_float_n([2, 2, 18, Encoder.SBLIMIT]);\n this.amp_filter = new_float(32);\n\n /* variables for BitStream */\n\n /**\n * \n * mpeg1: buffer=511 bytes smallest frame: 96-38(sideinfo)=58\n * max number of frames in reservoir: 8\n * mpeg2: buffer=255 bytes. smallest frame: 24-23bytes=1\n * with VBR, if you are encoding all silence, it is possible to\n * have 8kbs/24khz frames with 1byte of data each, which means we need\n * to buffer up to 255 headers!\n *
\n */\n /**\n * also, max_header_buf has to be a power of two\n */\n /**\n * max size of header is 38\n */\n\n function Header() {\n this.write_timing = 0;\n this.ptr = 0;\n //public byte buf[] = new byte[MAX_HEADER_LEN];\n this.buf = new_byte(MAX_HEADER_LEN);\n }\n\n this.header = new Array(LameInternalFlags.MAX_HEADER_BUF);\n\n this.h_ptr = 0;\n this.w_ptr = 0;\n this.ancillary_flag = 0;\n\n /* variables for Reservoir */\n /**\n * in bits\n */\n this.ResvSize = 0;\n /**\n * in bits\n */\n this.ResvMax = 0;\n\n //public ScaleFac scalefac_band = new ScaleFac();\n this.scalefac_band = new ScaleFac();\n\n /* daa from PsyModel */\n /* The static variables \"r\", \"phi_sav\", \"new\", \"old\" and \"oldest\" have */\n /* to be remembered for the unpredictability measure. For \"r\" and */\n /* \"phi_sav\", the first index from the left is the channel select and */\n /* the second index is the \"age\" of the data. */\n this.minval_l = new_float(Encoder.CBANDS);\n this.minval_s = new_float(Encoder.CBANDS);\n this.nb_1 = new_float_n([4, Encoder.CBANDS]);\n this.nb_2 = new_float_n([4, Encoder.CBANDS]);\n this.nb_s1 = new_float_n([4, Encoder.CBANDS]);\n this.nb_s2 = new_float_n([4, Encoder.CBANDS]);\n this.s3_ss = null;\n this.s3_ll = null;\n this.decay = 0.;\n\n //public III_psy_xmin[] thm = new III_psy_xmin[4];\n //public III_psy_xmin[] en = new III_psy_xmin[4];\n this.thm = new Array(4);\n this.en = new Array(4);\n\n /**\n * fft and energy calculation\n */\n this.tot_ener = new_float(4);\n\n /* loudness calculation (for adaptive threshold of hearing) */\n /**\n * loudness^2 approx. per granule and channel\n */\n this.loudness_sq = new_float_n([2, 2]);\n /**\n * account for granule delay of L3psycho_anal\n */\n this.loudness_sq_save = new_float(2);\n\n /**\n * Scale Factor Bands\n */\n this.mld_l = new_float(Encoder.SBMAX_l);\n this.mld_s = new_float(Encoder.SBMAX_s);\n this.bm_l = new_int(Encoder.SBMAX_l);\n this.bo_l = new_int(Encoder.SBMAX_l);\n this.bm_s = new_int(Encoder.SBMAX_s);\n this.bo_s = new_int(Encoder.SBMAX_s);\n this.npart_l = 0;\n this.npart_s = 0;\n\n this.s3ind = new_int_n([Encoder.CBANDS, 2]);\n this.s3ind_s = new_int_n([Encoder.CBANDS, 2]);\n\n this.numlines_s = new_int(Encoder.CBANDS);\n this.numlines_l = new_int(Encoder.CBANDS);\n this.rnumlines_l = new_float(Encoder.CBANDS);\n this.mld_cb_l = new_float(Encoder.CBANDS);\n this.mld_cb_s = new_float(Encoder.CBANDS);\n this.numlines_s_num1 = 0;\n this.numlines_l_num1 = 0;\n\n /* ratios */\n this.pe = new_float(4);\n this.ms_ratio_s_old = 0.;\n this.ms_ratio_l_old = 0.;\n this.ms_ener_ratio_old = 0.;\n\n /**\n * block type\n */\n this.blocktype_old = new_int(2);\n\n /**\n * variables used for --nspsytune\n */\n this.nsPsy = new NsPsy();\n\n /**\n * used for Xing VBR header\n */\n this.VBR_seek_table = new VBRSeekInfo();\n\n /**\n * all ATH related stuff\n */\n //public ATH ATH;\n this.ATH = null;\n\n this.PSY = null;\n\n this.nogap_total = 0;\n this.nogap_current = 0;\n\n /* ReplayGain */\n this.decode_on_the_fly = true;\n this.findReplayGain = true;\n this.findPeakSample = true;\n this.PeakSample = 0.;\n this.RadioGain = 0;\n this.AudiophileGain = 0;\n //public ReplayGain rgdata;\n this.rgdata = null;\n\n /**\n * gain change required for preventing clipping\n */\n this.noclipGainChange = 0;\n /**\n * user-specified scale factor required for preventing clipping\n */\n this.noclipScale = 0.;\n\n /* simple statistics */\n this.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n /**\n * norm/start/short/stop/mixed(short)/sum\n */\n this.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n\n //public PlottingData pinfo;\n //public MPGLib.mpstr_tag hip;\n this.pinfo = null;\n this.hip = null;\n\n this.in_buffer_nsamples = 0;\n //public float[] in_buffer_0;\n //public float[] in_buffer_1;\n this.in_buffer_0 = null;\n this.in_buffer_1 = null;\n\n //public IIterationLoop iteration_loop;\n this.iteration_loop = null;\n\n for (var i = 0; i < this.en.length; i++) {\n this.en[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.thm.length; i++) {\n this.thm[i] = new III_psy_xmin();\n }\n for (var i = 0; i < this.header.length; i++) {\n this.header[i] = new Header();\n }\n\n}\n\nmodule.exports = LameInternalFlags;\n","// Markdown-it plugin to render GitHub-style task lists; see\n//\n// https://github.com/blog/1375-task-lists-in-gfm-issues-pulls-comments\n// https://github.com/blog/1825-task-lists-in-all-markdown-documents\n\nvar disableCheckboxes = true;\nvar useLabelWrapper = false;\nvar useLabelAfter = false;\n\nmodule.exports = function(md, options) {\n\tif (options) {\n\t\tdisableCheckboxes = !options.enabled;\n\t\tuseLabelWrapper = !!options.label;\n\t\tuseLabelAfter = !!options.labelAfter;\n\t}\n\n\tmd.core.ruler.after('inline', 'github-task-lists', function(state) {\n\t\tvar tokens = state.tokens;\n\t\tfor (var i = 2; i < tokens.length; i++) {\n\t\t\tif (isTodoItem(tokens, i)) {\n\t\t\t\ttodoify(tokens[i], state.Token);\n\t\t\t\tattrSet(tokens[i-2], 'class', 'task-list-item' + (!disableCheckboxes ? ' enabled' : ''));\n\t\t\t\tattrSet(tokens[parentToken(tokens, i-2)], 'class', 'contains-task-list');\n\t\t\t}\n\t\t}\n\t});\n};\n\nfunction attrSet(token, name, value) {\n\tvar index = token.attrIndex(name);\n\tvar attr = [name, value];\n\n\tif (index < 0) {\n\t\ttoken.attrPush(attr);\n\t} else {\n\t\ttoken.attrs[index] = attr;\n\t}\n}\n\nfunction parentToken(tokens, index) {\n\tvar targetLevel = tokens[index].level - 1;\n\tfor (var i = index - 1; i >= 0; i--) {\n\t\tif (tokens[i].level === targetLevel) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction isTodoItem(tokens, index) {\n\treturn isInline(tokens[index]) &&\n\t isParagraph(tokens[index - 1]) &&\n\t isListItem(tokens[index - 2]) &&\n\t startsWithTodoMarkdown(tokens[index]);\n}\n\nfunction todoify(token, TokenConstructor) {\n\ttoken.children.unshift(makeCheckbox(token, TokenConstructor));\n\ttoken.children[1].content = token.children[1].content.slice(3);\n\ttoken.content = token.content.slice(3);\n\n\tif (useLabelWrapper) {\n\t\tif (useLabelAfter) {\n\t\t\ttoken.children.pop();\n\n\t\t\t// Use large random number as id property of the checkbox.\n\t\t\tvar id = 'task-item-' + Math.ceil(Math.random() * (10000 * 1000) - 1000);\n\t\t\ttoken.children[0].content = token.children[0].content.slice(0, -1) + ' id=\"' + id + '\">';\n\t\t\ttoken.children.push(afterLabel(token.content, id, TokenConstructor));\n\t\t} else {\n\t\t\ttoken.children.unshift(beginLabel(TokenConstructor));\n\t\t\ttoken.children.push(endLabel(TokenConstructor));\n\t\t}\n\t}\n}\n\nfunction makeCheckbox(token, TokenConstructor) {\n\tvar checkbox = new TokenConstructor('html_inline', '', 0);\n\tvar disabledAttr = disableCheckboxes ? ' disabled=\"\" ' : '';\n\tif (token.content.indexOf('[ ] ') === 0) {\n\t\tcheckbox.content = '';\n\t} else if (token.content.indexOf('[x] ') === 0 || token.content.indexOf('[X] ') === 0) {\n\t\tcheckbox.content = '';\n\t}\n\treturn checkbox;\n}\n\n// these next two functions are kind of hacky; probably should really be a\n// true block-level token with .tag=='label'\nfunction beginLabel(TokenConstructor) {\n\tvar token = new TokenConstructor('html_inline', '', 0);\n\ttoken.content = '';\n\treturn token;\n}\n\nfunction afterLabel(content, id, TokenConstructor) {\n\tvar token = new TokenConstructor('html_inline', '', 0);\n\ttoken.content = '';\n\ttoken.attrs = [{for: id}];\n\treturn token;\n}\n\nfunction isInline(token) { return token.type === 'inline'; }\nfunction isParagraph(token) { return token.type === 'paragraph_open'; }\nfunction isListItem(token) { return token.type === 'list_item_open'; }\n\nfunction startsWithTodoMarkdown(token) {\n\t// leading whitespace in a list item is already trimmed off by markdown-it\n\treturn token.content.indexOf('[ ] ') === 0 || token.content.indexOf('[x] ') === 0 || token.content.indexOf('[X] ') === 0;\n}\n","// fences (``` lang, ~~~ lang)\n\n'use strict';\n\n\nmodule.exports = function fence(state, startLine, endLine, silent) {\n var marker, len, params, nextLine, mem, token, markup,\n haveEndMarker = false,\n pos = state.bMarks[startLine] + state.tShift[startLine],\n max = state.eMarks[startLine];\n\n if (pos + 3 > max) { return false; }\n\n marker = state.src.charCodeAt(pos);\n\n if (marker !== 0x7E/* ~ */ && marker !== 0x60 /* ` */) {\n return false;\n }\n\n // scan marker length\n mem = pos;\n pos = state.skipChars(pos, marker);\n\n len = pos - mem;\n\n if (len < 3) { return false; }\n\n markup = state.src.slice(mem, pos);\n params = state.src.slice(pos, max);\n\n if (params.indexOf('`') >= 0) { return false; }\n\n // Since start is found, we can report success here in validation mode\n if (silent) { return true; }\n\n // search end of block\n nextLine = startLine;\n\n for (;;) {\n nextLine++;\n if (nextLine >= endLine) {\n // unclosed block should be autoclosed by end of document.\n // also block seems to be autoclosed by end of parent\n break;\n }\n\n pos = mem = state.bMarks[nextLine] + state.tShift[nextLine];\n max = state.eMarks[nextLine];\n\n if (pos < max && state.sCount[nextLine] < state.blkIndent) {\n // non-empty line with negative indent should stop the list:\n // - ```\n // test\n break;\n }\n\n if (state.src.charCodeAt(pos) !== marker) { continue; }\n\n if (state.sCount[nextLine] - state.blkIndent >= 4) {\n // closing fence should be indented less than 4 spaces\n continue;\n }\n\n pos = state.skipChars(pos, marker);\n\n // closing code fence must be at least as long as the opening one\n if (pos - mem < len) { continue; }\n\n // make sure tail has spaces only\n pos = state.skipSpaces(pos);\n\n if (pos < max) { continue; }\n\n haveEndMarker = true;\n // found!\n break;\n }\n\n // If a fence has heading spaces, they should be removed from its inner block\n len = state.sCount[startLine];\n\n state.line = nextLine + (haveEndMarker ? 1 : 0);\n\n token = state.push('fence', 'code', 0);\n token.info = params;\n token.content = state.getLines(startLine + 1, nextLine, len, true);\n token.markup = markup;\n token.map = [ startLine, state.line ];\n\n return true;\n};\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar assert = common.assert;\n\nvar Encoder = require('./Encoder.js');\n\n//package mp3;\n\n/**\n * Variables used for --nspsytune\n *\n * @author Ken\n *\n */\nfunction NsPsy() {\n this.last_en_subshort = new_float_n([4, 9]);\n this.lastAttacks = new_int(4);\n this.pefirbuf = new_float(19);\n this.longfact = new_float(Encoder.SBMAX_l);\n this.shortfact = new_float(Encoder.SBMAX_s);\n\n /**\n * short block tuning\n */\n this.attackthre = 0.;\n this.attackthre_s = 0.;\n}\n\nmodule.exports = NsPsy;\n","// Process html tags\n\n'use strict';\n\n\nvar HTML_TAG_RE = require('../common/html_re').HTML_TAG_RE;\n\n\nfunction isLetter(ch) {\n /*eslint no-bitwise:0*/\n var lc = ch | 0x20; // to lower case\n return (lc >= 0x61/* a */) && (lc <= 0x7a/* z */);\n}\n\n\nmodule.exports = function html_inline(state, silent) {\n var ch, match, max, token,\n pos = state.pos;\n\n if (!state.md.options.html) { return false; }\n\n // Check start\n max = state.posMax;\n if (state.src.charCodeAt(pos) !== 0x3C/* < */ ||\n pos + 2 >= max) {\n return false;\n }\n\n // Quick fail on second char\n ch = state.src.charCodeAt(pos + 1);\n if (ch !== 0x21/* ! */ &&\n ch !== 0x3F/* ? */ &&\n ch !== 0x2F/* / */ &&\n !isLetter(ch)) {\n return false;\n }\n\n match = state.src.slice(pos).match(HTML_TAG_RE);\n if (!match) { return false; }\n\n if (!silent) {\n token = state.push('html_inline', '', 0);\n token.content = state.src.slice(pos, pos + match[0].length);\n }\n state.pos += match[0].length;\n return true;\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","\n'use strict';\n\n\nvar encodeCache = {};\n\n\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) { return cache; }\n\n cache = encodeCache[exclude] = [];\n\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n } else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n\n return cache;\n}\n\n\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache,\n result = '';\n\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode.defaultChars;\n }\n\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n\n cache = getEncodeCache(exclude);\n\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n\n if (code < 128) {\n result += cache[code];\n continue;\n }\n\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n\n result += encodeURIComponent(string[i]);\n }\n\n return result;\n}\n\nencode.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode.componentChars = \"-_.!~*'()\";\n\n\nmodule.exports = encode;\n","/* eslint no-console:0 */\n/**\n * This is the main entry point for KaTeX. Here, we expose functions for\n * rendering expressions either to DOM nodes or to markup strings.\n *\n * We also expose the ParseError class to check if errors thrown from KaTeX are\n * errors in the expression, or errors in javascript handling.\n */\n\nvar ParseError = require(\"./src/ParseError\");\nvar Settings = require(\"./src/Settings\");\n\nvar buildTree = require(\"./src/buildTree\");\nvar parseTree = require(\"./src/parseTree\");\nvar utils = require(\"./src/utils\");\n\n/**\n * Parse and build an expression, and place that expression in the DOM node\n * given.\n */\nvar render = function(expression, baseNode, options) {\n utils.clearNode(baseNode);\n\n var settings = new Settings(options);\n\n var tree = parseTree(expression, settings);\n var node = buildTree(tree, expression, settings).toNode();\n\n baseNode.appendChild(node);\n};\n\n// KaTeX's styles don't work properly in quirks mode. Print out an error, and\n// disable rendering.\nif (typeof document !== \"undefined\") {\n if (document.compatMode !== \"CSS1Compat\") {\n typeof console !== \"undefined\" && console.warn(\n \"Warning: KaTeX doesn't work in quirks mode. Make sure your \" +\n \"website has a suitable doctype.\");\n\n render = function() {\n throw new ParseError(\"KaTeX doesn't work in quirks mode.\");\n };\n }\n}\n\n/**\n * Parse and build an expression, and return the markup for that.\n */\nvar renderToString = function(expression, options) {\n var settings = new Settings(options);\n\n var tree = parseTree(expression, settings);\n return buildTree(tree, expression, settings).toMarkup();\n};\n\n/**\n * Parse an expression and return the parse tree.\n */\nvar generateParseTree = function(expression, options) {\n var settings = new Settings(options);\n return parseTree(expression, settings);\n};\n\nmodule.exports = {\n render: render,\n renderToString: renderToString,\n /**\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __parse: generateParseTree,\n ParseError: ParseError,\n};\n","// Process *this* and _that_\n//\n'use strict';\n\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nmodule.exports.tokenize = function emphasis(state, silent) {\n var i, scanned, token,\n start = state.pos,\n marker = state.src.charCodeAt(start);\n\n if (silent) { return false; }\n\n if (marker !== 0x5F /* _ */ && marker !== 0x2A /* * */) { return false; }\n\n scanned = state.scanDelims(state.pos, marker === 0x2A);\n\n for (i = 0; i < scanned.length; i++) {\n token = state.push('text', '', 0);\n token.content = String.fromCharCode(marker);\n\n state.delimiters.push({\n // Char code of the starting marker (number).\n //\n marker: marker,\n\n // An amount of characters before this one that's equivalent to\n // current one. In plain English: if this delimiter does not open\n // an emphasis, neither do previous `jump` characters.\n //\n // Used to skip sequences like \"*****\" in one step, for 1st asterisk\n // value will be 0, for 2nd it's 1 and so on.\n //\n jump: i,\n\n // A position of the token this delimiter corresponds to.\n //\n token: state.tokens.length - 1,\n\n // Token level.\n //\n level: state.level,\n\n // If this delimiter is matched as a valid opener, `end` will be\n // equal to its position, otherwise it's `-1`.\n //\n end: -1,\n\n // Boolean flags that determine if this delimiter could open or close\n // an emphasis.\n //\n open: scanned.can_open,\n close: scanned.can_close\n });\n }\n\n state.pos += scanned.length;\n\n return true;\n};\n\n\n// Walk through delimiter list and replace text tokens with tags\n//\nmodule.exports.postProcess = function emphasis(state) {\n var i,\n startDelim,\n endDelim,\n token,\n ch,\n isStrong,\n delimiters = state.delimiters,\n max = state.delimiters.length;\n\n for (i = 0; i < max; i++) {\n startDelim = delimiters[i];\n\n if (startDelim.marker !== 0x5F/* _ */ && startDelim.marker !== 0x2A/* * */) {\n continue;\n }\n\n // Process only opening markers\n if (startDelim.end === -1) {\n continue;\n }\n\n endDelim = delimiters[startDelim.end];\n\n // If the next delimiter has the same marker and is adjacent to this one,\n // merge those into one strong delimiter.\n //\n // `whatever` -> `whatever`\n //\n isStrong = i + 1 < max &&\n delimiters[i + 1].end === startDelim.end - 1 &&\n delimiters[i + 1].token === startDelim.token + 1 &&\n delimiters[startDelim.end - 1].token === endDelim.token - 1 &&\n delimiters[i + 1].marker === startDelim.marker;\n\n ch = String.fromCharCode(startDelim.marker);\n\n token = state.tokens[startDelim.token];\n token.type = isStrong ? 'strong_open' : 'em_open';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = 1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n token = state.tokens[endDelim.token];\n token.type = isStrong ? 'strong_close' : 'em_close';\n token.tag = isStrong ? 'strong' : 'em';\n token.nesting = -1;\n token.markup = isStrong ? ch + ch : ch;\n token.content = '';\n\n if (isStrong) {\n state.tokens[delimiters[i + 1].token].content = '';\n state.tokens[delimiters[startDelim.end - 1].token].content = '';\n i++;\n }\n }\n};\n","/* eslint no-console:0 */\n/**\n * This module contains general functions that can be used for building\n * different kinds of domTree nodes in a consistent manner.\n */\n\nvar domTree = require(\"./domTree\");\nvar fontMetrics = require(\"./fontMetrics\");\nvar symbols = require(\"./symbols\");\nvar utils = require(\"./utils\");\n\nvar greekCapitals = [\n \"\\\\Gamma\",\n \"\\\\Delta\",\n \"\\\\Theta\",\n \"\\\\Lambda\",\n \"\\\\Xi\",\n \"\\\\Pi\",\n \"\\\\Sigma\",\n \"\\\\Upsilon\",\n \"\\\\Phi\",\n \"\\\\Psi\",\n \"\\\\Omega\",\n];\n\nvar dotlessLetters = [\n \"\\u0131\", // dotless i, \\imath\n \"\\u0237\", // dotless j, \\jmath\n];\n\n/**\n * Makes a symbolNode after translation via the list of symbols in symbols.js.\n * Correctly pulls out metrics for the character, and optionally takes a list of\n * classes to be attached to the node.\n */\nvar makeSymbol = function(value, style, mode, color, classes) {\n // Replace the value with its replaced value from symbol.js\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n var metrics = fontMetrics.getCharacterMetrics(value, style);\n\n var symbolNode;\n if (metrics) {\n symbolNode = new domTree.symbolNode(\n value, metrics.height, metrics.depth, metrics.italic, metrics.skew,\n classes);\n } else {\n // TODO(emily): Figure out a good way to only print this in development\n typeof console !== \"undefined\" && console.warn(\n \"No character metrics for '\" + value + \"' in style '\" +\n style + \"'\");\n symbolNode = new domTree.symbolNode(value, 0, 0, 0, 0, classes);\n }\n\n if (color) {\n symbolNode.style.color = color;\n }\n\n return symbolNode;\n};\n\n/**\n * Makes a symbol in Main-Regular or AMS-Regular.\n * Used for rel, bin, open, close, inner, and punct.\n */\nvar mathsym = function(value, mode, color, classes) {\n // Decide what font to render the symbol in by its entry in the symbols\n // table.\n // Have a special case for when the value = \\ because the \\ is used as a\n // textord in unsupported command errors but cannot be parsed as a regular\n // text ordinal and is therefore not present as a symbol in the symbols\n // table for text\n if (value === \"\\\\\" || symbols[mode][value].font === \"main\") {\n return makeSymbol(value, \"Main-Regular\", mode, color, classes);\n } else {\n return makeSymbol(\n value, \"AMS-Regular\", mode, color, classes.concat([\"amsrm\"]));\n }\n};\n\n/**\n * Makes a symbol in the default font for mathords and textords.\n */\nvar mathDefault = function(value, mode, color, classes, type) {\n if (type === \"mathord\") {\n return mathit(value, mode, color, classes);\n } else if (type === \"textord\") {\n return makeSymbol(\n value, \"Main-Regular\", mode, color, classes.concat([\"mathrm\"]));\n } else {\n throw new Error(\"unexpected type: \" + type + \" in mathDefault\");\n }\n};\n\n/**\n * Makes a symbol in the italic math font.\n */\nvar mathit = function(value, mode, color, classes) {\n if (/[0-9]/.test(value.charAt(0)) ||\n // glyphs for \\imath and \\jmath do not exist in Math-Italic so we\n // need to use Main-Italic instead\n utils.contains(dotlessLetters, value) ||\n utils.contains(greekCapitals, value)) {\n return makeSymbol(\n value, \"Main-Italic\", mode, color, classes.concat([\"mainit\"]));\n } else {\n return makeSymbol(\n value, \"Math-Italic\", mode, color, classes.concat([\"mathit\"]));\n }\n};\n\n/**\n * Makes either a mathord or textord in the correct font and color.\n */\nvar makeOrd = function(group, options, type) {\n var mode = group.mode;\n var value = group.value;\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n var classes = [\"mord\"];\n var color = options.getColor();\n\n var font = options.font;\n if (font) {\n if (font === \"mathit\" || utils.contains(dotlessLetters, value)) {\n return mathit(value, mode, color, classes);\n } else {\n var fontName = fontMap[font].fontName;\n if (fontMetrics.getCharacterMetrics(value, fontName)) {\n return makeSymbol(\n value, fontName, mode, color, classes.concat([font]));\n } else {\n return mathDefault(value, mode, color, classes, type);\n }\n }\n } else {\n return mathDefault(value, mode, color, classes, type);\n }\n};\n\n/**\n * Calculate the height, depth, and maxFontSize of an element based on its\n * children.\n */\nvar sizeElementFromChildren = function(elem) {\n var height = 0;\n var depth = 0;\n var maxFontSize = 0;\n\n if (elem.children) {\n for (var i = 0; i < elem.children.length; i++) {\n if (elem.children[i].height > height) {\n height = elem.children[i].height;\n }\n if (elem.children[i].depth > depth) {\n depth = elem.children[i].depth;\n }\n if (elem.children[i].maxFontSize > maxFontSize) {\n maxFontSize = elem.children[i].maxFontSize;\n }\n }\n }\n\n elem.height = height;\n elem.depth = depth;\n elem.maxFontSize = maxFontSize;\n};\n\n/**\n * Makes a span with the given list of classes, list of children, and color.\n */\nvar makeSpan = function(classes, children, color) {\n var span = new domTree.span(classes, children);\n\n sizeElementFromChildren(span);\n\n if (color) {\n span.style.color = color;\n }\n\n return span;\n};\n\n/**\n * Makes a document fragment with the given list of children.\n */\nvar makeFragment = function(children) {\n var fragment = new domTree.documentFragment(children);\n\n sizeElementFromChildren(fragment);\n\n return fragment;\n};\n\n/**\n * Makes an element placed in each of the vlist elements to ensure that each\n * element has the same max font size. To do this, we create a zero-width space\n * with the correct font size.\n */\nvar makeFontSizer = function(options, fontSize) {\n var fontSizeInner = makeSpan([], [new domTree.symbolNode(\"\\u200b\")]);\n fontSizeInner.style.fontSize =\n (fontSize / options.style.sizeMultiplier) + \"em\";\n\n var fontSizer = makeSpan(\n [\"fontsize-ensurer\", \"reset-\" + options.size, \"size5\"],\n [fontSizeInner]);\n\n return fontSizer;\n};\n\n/**\n * Makes a vertical list by stacking elements and kerns on top of each other.\n * Allows for many different ways of specifying the positioning method.\n *\n * Arguments:\n * - children: A list of child or kern nodes to be stacked on top of each other\n * (i.e. the first element will be at the bottom, and the last at\n * the top). Element nodes are specified as\n * {type: \"elem\", elem: node}\n * while kern nodes are specified as\n * {type: \"kern\", size: size}\n * - positionType: The method by which the vlist should be positioned. Valid\n * values are:\n * - \"individualShift\": The children list only contains elem\n * nodes, and each node contains an extra\n * \"shift\" value of how much it should be\n * shifted (note that shifting is always\n * moving downwards). positionData is\n * ignored.\n * - \"top\": The positionData specifies the topmost point of\n * the vlist (note this is expected to be a height,\n * so positive values move up)\n * - \"bottom\": The positionData specifies the bottommost point\n * of the vlist (note this is expected to be a\n * depth, so positive values move down\n * - \"shift\": The vlist will be positioned such that its\n * baseline is positionData away from the baseline\n * of the first child. Positive values move\n * downwards.\n * - \"firstBaseline\": The vlist will be positioned such that\n * its baseline is aligned with the\n * baseline of the first child.\n * positionData is ignored. (this is\n * equivalent to \"shift\" with\n * positionData=0)\n * - positionData: Data used in different ways depending on positionType\n * - options: An Options object\n *\n */\nvar makeVList = function(children, positionType, positionData, options) {\n var depth;\n var currPos;\n var i;\n if (positionType === \"individualShift\") {\n var oldChildren = children;\n children = [oldChildren[0]];\n\n // Add in kerns to the list of children to get each element to be\n // shifted to the correct specified shift\n depth = -oldChildren[0].shift - oldChildren[0].elem.depth;\n currPos = depth;\n for (i = 1; i < oldChildren.length; i++) {\n var diff = -oldChildren[i].shift - currPos -\n oldChildren[i].elem.depth;\n var size = diff -\n (oldChildren[i - 1].elem.height +\n oldChildren[i - 1].elem.depth);\n\n currPos = currPos + diff;\n\n children.push({type: \"kern\", size: size});\n children.push(oldChildren[i]);\n }\n } else if (positionType === \"top\") {\n // We always start at the bottom, so calculate the bottom by adding up\n // all the sizes\n var bottom = positionData;\n for (i = 0; i < children.length; i++) {\n if (children[i].type === \"kern\") {\n bottom -= children[i].size;\n } else {\n bottom -= children[i].elem.height + children[i].elem.depth;\n }\n }\n depth = bottom;\n } else if (positionType === \"bottom\") {\n depth = -positionData;\n } else if (positionType === \"shift\") {\n depth = -children[0].elem.depth - positionData;\n } else if (positionType === \"firstBaseline\") {\n depth = -children[0].elem.depth;\n } else {\n depth = 0;\n }\n\n // Make the fontSizer\n var maxFontSize = 0;\n for (i = 0; i < children.length; i++) {\n if (children[i].type === \"elem\") {\n maxFontSize = Math.max(maxFontSize, children[i].elem.maxFontSize);\n }\n }\n var fontSizer = makeFontSizer(options, maxFontSize);\n\n // Create a new list of actual children at the correct offsets\n var realChildren = [];\n currPos = depth;\n for (i = 0; i < children.length; i++) {\n if (children[i].type === \"kern\") {\n currPos += children[i].size;\n } else {\n var child = children[i].elem;\n\n var shift = -child.depth - currPos;\n currPos += child.height + child.depth;\n\n var childWrap = makeSpan([], [fontSizer, child]);\n childWrap.height -= shift;\n childWrap.depth += shift;\n childWrap.style.top = shift + \"em\";\n\n realChildren.push(childWrap);\n }\n }\n\n // Add in an element at the end with no offset to fix the calculation of\n // baselines in some browsers (namely IE, sometimes safari)\n var baselineFix = makeSpan(\n [\"baseline-fix\"], [fontSizer, new domTree.symbolNode(\"\\u200b\")]);\n realChildren.push(baselineFix);\n\n var vlist = makeSpan([\"vlist\"], realChildren);\n // Fix the final height and depth, in case there were kerns at the ends\n // since the makeSpan calculation won't take that in to account.\n vlist.height = Math.max(currPos, vlist.height);\n vlist.depth = Math.max(-depth, vlist.depth);\n return vlist;\n};\n\n// A table of size -> font size for the different sizing functions\nvar sizingMultiplier = {\n size1: 0.5,\n size2: 0.7,\n size3: 0.8,\n size4: 0.9,\n size5: 1.0,\n size6: 1.2,\n size7: 1.44,\n size8: 1.73,\n size9: 2.07,\n size10: 2.49,\n};\n\n// A map of spacing functions to their attributes, like size and corresponding\n// CSS class\nvar spacingFunctions = {\n \"\\\\qquad\": {\n size: \"2em\",\n className: \"qquad\",\n },\n \"\\\\quad\": {\n size: \"1em\",\n className: \"quad\",\n },\n \"\\\\enspace\": {\n size: \"0.5em\",\n className: \"enspace\",\n },\n \"\\\\;\": {\n size: \"0.277778em\",\n className: \"thickspace\",\n },\n \"\\\\:\": {\n size: \"0.22222em\",\n className: \"mediumspace\",\n },\n \"\\\\,\": {\n size: \"0.16667em\",\n className: \"thinspace\",\n },\n \"\\\\!\": {\n size: \"-0.16667em\",\n className: \"negativethinspace\",\n },\n};\n\n/**\n * Maps TeX font commands to objects containing:\n * - variant: string used for \"mathvariant\" attribute in buildMathML.js\n * - fontName: the \"style\" parameter to fontMetrics.getCharacterMetrics\n */\n// A map between tex font commands an MathML mathvariant attribute values\nvar fontMap = {\n // styles\n \"mathbf\": {\n variant: \"bold\",\n fontName: \"Main-Bold\",\n },\n \"mathrm\": {\n variant: \"normal\",\n fontName: \"Main-Regular\",\n },\n\n // \"mathit\" is missing because it requires the use of two fonts: Main-Italic\n // and Math-Italic. This is handled by a special case in makeOrd which ends\n // up calling mathit.\n\n // families\n \"mathbb\": {\n variant: \"double-struck\",\n fontName: \"AMS-Regular\",\n },\n \"mathcal\": {\n variant: \"script\",\n fontName: \"Caligraphic-Regular\",\n },\n \"mathfrak\": {\n variant: \"fraktur\",\n fontName: \"Fraktur-Regular\",\n },\n \"mathscr\": {\n variant: \"script\",\n fontName: \"Script-Regular\",\n },\n \"mathsf\": {\n variant: \"sans-serif\",\n fontName: \"SansSerif-Regular\",\n },\n \"mathtt\": {\n variant: \"monospace\",\n fontName: \"Typewriter-Regular\",\n },\n};\n\nmodule.exports = {\n fontMap: fontMap,\n makeSymbol: makeSymbol,\n mathsym: mathsym,\n makeSpan: makeSpan,\n makeFragment: makeFragment,\n makeVList: makeVList,\n makeOrd: makeOrd,\n sizingMultiplier: sizingMultiplier,\n spacingFunctions: spacingFunctions,\n};\n","/**\n * The resulting parse tree nodes of the parse tree.\n */\nfunction ParseNode(type, value, mode) {\n this.type = type;\n this.value = value;\n this.mode = mode;\n}\n\nmodule.exports = {\n ParseNode: ParseNode,\n};\n\n","module.exports=/[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/","/* eslint no-unused-vars:0 */\n\nvar Style = require(\"./Style\");\n\n/**\n * This file contains metrics regarding fonts and individual symbols. The sigma\n * and xi variables, as well as the metricMap map contain data extracted from\n * TeX, TeX font metrics, and the TTF files. These data are then exposed via the\n * `metrics` variable and the getCharacterMetrics function.\n */\n\n// These font metrics are extracted from TeX by using\n// \\font\\a=cmmi10\n// \\showthe\\fontdimenX\\a\n// where X is the corresponding variable number. These correspond to the font\n// parameters of the symbol fonts. In TeX, there are actually three sets of\n// dimensions, one for each of textstyle, scriptstyle, and scriptscriptstyle,\n// but we only use the textstyle ones, and scale certain dimensions accordingly.\n// See the TeXbook, page 441.\nvar sigma1 = 0.025;\nvar sigma2 = 0;\nvar sigma3 = 0;\nvar sigma4 = 0;\nvar sigma5 = 0.431;\nvar sigma6 = 1;\nvar sigma7 = 0;\nvar sigma8 = 0.677;\nvar sigma9 = 0.394;\nvar sigma10 = 0.444;\nvar sigma11 = 0.686;\nvar sigma12 = 0.345;\nvar sigma13 = 0.413;\nvar sigma14 = 0.363;\nvar sigma15 = 0.289;\nvar sigma16 = 0.150;\nvar sigma17 = 0.247;\nvar sigma18 = 0.386;\nvar sigma19 = 0.050;\nvar sigma20 = 2.390;\nvar sigma21 = 1.01;\nvar sigma21Script = 0.81;\nvar sigma21ScriptScript = 0.71;\nvar sigma22 = 0.250;\n\n// These font metrics are extracted from TeX by using\n// \\font\\a=cmex10\n// \\showthe\\fontdimenX\\a\n// where X is the corresponding variable number. These correspond to the font\n// parameters of the extension fonts (family 3). See the TeXbook, page 441.\nvar xi1 = 0;\nvar xi2 = 0;\nvar xi3 = 0;\nvar xi4 = 0;\nvar xi5 = 0.431;\nvar xi6 = 1;\nvar xi7 = 0;\nvar xi8 = 0.04;\nvar xi9 = 0.111;\nvar xi10 = 0.166;\nvar xi11 = 0.2;\nvar xi12 = 0.6;\nvar xi13 = 0.1;\n\n// This value determines how large a pt is, for metrics which are defined in\n// terms of pts.\n// This value is also used in katex.less; if you change it make sure the values\n// match.\nvar ptPerEm = 10.0;\n\n// The space between adjacent `|` columns in an array definition. From\n// `\\showthe\\doublerulesep` in LaTeX.\nvar doubleRuleSep = 2.0 / ptPerEm;\n\n/**\n * This is just a mapping from common names to real metrics\n */\nvar metrics = {\n xHeight: sigma5,\n quad: sigma6,\n num1: sigma8,\n num2: sigma9,\n num3: sigma10,\n denom1: sigma11,\n denom2: sigma12,\n sup1: sigma13,\n sup2: sigma14,\n sup3: sigma15,\n sub1: sigma16,\n sub2: sigma17,\n supDrop: sigma18,\n subDrop: sigma19,\n axisHeight: sigma22,\n defaultRuleThickness: xi8,\n bigOpSpacing1: xi9,\n bigOpSpacing2: xi10,\n bigOpSpacing3: xi11,\n bigOpSpacing4: xi12,\n bigOpSpacing5: xi13,\n ptPerEm: ptPerEm,\n emPerEx: sigma5 / sigma6,\n doubleRuleSep: doubleRuleSep,\n\n // TODO(alpert): Missing parallel structure here. We should probably add\n // style-specific metrics for all of these.\n delim1: sigma20,\n getDelim2: function(style) {\n if (style.size === Style.TEXT.size) {\n return sigma21;\n } else if (style.size === Style.SCRIPT.size) {\n return sigma21Script;\n } else if (style.size === Style.SCRIPTSCRIPT.size) {\n return sigma21ScriptScript;\n }\n throw new Error(\"Unexpected style size: \" + style.size);\n },\n};\n\n// This map contains a mapping from font name and character code to character\n// metrics, including height, depth, italic correction, and skew (kern from the\n// character to the corresponding \\skewchar)\n// This map is generated via `make metrics`. It should not be changed manually.\nvar metricMap = require(\"./fontMetricsData\");\n\n/**\n * This function is a convenience function for looking up information in the\n * metricMap table. It takes a character as a string, and a style.\n *\n * Note: the `width` property may be undefined if fontMetricsData.js wasn't\n * built using `Make extended_metrics`.\n */\nvar getCharacterMetrics = function(character, style) {\n var metrics = metricMap[style][character.charCodeAt(0)];\n if (metrics) {\n return {\n depth: metrics[0],\n height: metrics[1],\n italic: metrics[2],\n skew: metrics[3],\n width: metrics[4],\n };\n }\n};\n\nmodule.exports = {\n metrics: metrics,\n getCharacterMetrics: getCharacterMetrics,\n};\n","// Process [link](
\n * if XRPOW_FTOI(x) = nearest_int(x), then QUANTFAC(x)=adj43asm[x]
\n * ROUNDFAC= -0.0946
\n *\n * if XRPOW_FTOI(x) = floor(x), then QUANTFAC(x)=asj43[x]
\n * ROUNDFAC=0.4054
\n *\n * Note: using floor() or 0| is extremely slow. On machines where the\n * TAKEHIRO_IEEE754_HACK code above does not work, it is worthwile to write\n * some ASM for XRPOW_FTOI().\n */\n function quantize_lines_xrpow(l, istep, xr, xrPos, ix, ixPos) {\n assert(l > 0);\n\n l = l >> 1;\n var remaining = l % 2;\n l = l >> 1;\n while (l-- != 0) {\n var x0, x1, x2, x3;\n var rx0, rx1, rx2, rx3;\n\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n x2 = xr[xrPos++] * istep;\n rx1 = 0 | x1;\n x3 = xr[xrPos++] * istep;\n rx2 = 0 | x2;\n x0 += qupvt.adj43[rx0];\n rx3 = 0 | x3;\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n x2 += qupvt.adj43[rx2];\n ix[ixPos++] = 0 | x1;\n x3 += qupvt.adj43[rx3];\n ix[ixPos++] = 0 | x2;\n ix[ixPos++] = 0 | x3;\n }\n if (remaining != 0) {\n var x0, x1;\n var rx0, rx1;\n\n x0 = xr[xrPos++] * istep;\n x1 = xr[xrPos++] * istep;\n rx0 = 0 | x0;\n rx1 = 0 | x1;\n x0 += qupvt.adj43[rx0];\n x1 += qupvt.adj43[rx1];\n ix[ixPos++] = 0 | x0;\n ix[ixPos++] = 0 | x1;\n }\n }\n\n /**\n * Quantization function This function will select which lines to quantize\n * and call the proper quantization function\n */\n function quantize_xrpow(xp, pi, istep, codInfo, prevNoise) {\n /* quantize on xr^(3/4) instead of xr */\n var sfb;\n var sfbmax;\n var j = 0;\n var prev_data_use;\n var accumulate = 0;\n var accumulate01 = 0;\n var xpPos = 0;\n var iData = pi;\n var iDataPos = 0;\n var acc_iData = iData;\n var acc_iDataPos = 0;\n var acc_xp = xp;\n var acc_xpPos = 0;\n\n /*\n * Reusing previously computed data does not seems to work if global\n * gain is changed. Finding why it behaves this way would allow to use a\n * cache of previously computed values (let's 10 cached values per sfb)\n * that would probably provide a noticeable speedup\n */\n prev_data_use = (prevNoise != null && (codInfo.global_gain == prevNoise.global_gain));\n\n if (codInfo.block_type == Encoder.SHORT_TYPE)\n sfbmax = 38;\n else\n sfbmax = 21;\n\n for (sfb = 0; sfb <= sfbmax; sfb++) {\n var step = -1;\n\n if (prev_data_use || codInfo.block_type == Encoder.NORM_TYPE) {\n step = codInfo.global_gain\n - ((codInfo.scalefac[sfb] + (codInfo.preflag != 0 ? qupvt.pretab[sfb]\n : 0)) << (codInfo.scalefac_scale + 1))\n - codInfo.subblock_gain[codInfo.window[sfb]] * 8;\n }\n assert(codInfo.width[sfb] >= 0);\n if (prev_data_use && (prevNoise.step[sfb] == step)) {\n /*\n * do not recompute this part, but compute accumulated lines\n */\n if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos,\n acc_iData, acc_iDataPos);\n accumulate = 0;\n }\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n }\n } else { /* should compute this part */\n var l = codInfo.width[sfb];\n\n if ((j + codInfo.width[sfb]) > codInfo.max_nonzero_coeff) {\n /* do not compute upper zero part */\n var usefullsize;\n usefullsize = codInfo.max_nonzero_coeff - j + 1;\n Arrays.fill(pi, codInfo.max_nonzero_coeff, 576, 0);\n l = usefullsize;\n\n if (l < 0) {\n l = 0;\n }\n\n /* no need to compute higher sfb values */\n sfb = sfbmax + 1;\n }\n\n /* accumulate lines to quantize */\n if (0 == accumulate && 0 == accumulate01) {\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n if (prevNoise != null && prevNoise.sfb_count1 > 0\n && sfb >= prevNoise.sfb_count1\n && prevNoise.step[sfb] > 0\n && step >= prevNoise.step[sfb]) {\n\n if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate01 += l;\n } else {\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n acc_iData = iData;\n acc_iDataPos = iDataPos;\n acc_xp = xp;\n acc_xpPos = xpPos;\n }\n accumulate += l;\n }\n\n if (l <= 0) {\n /*\n * rh: 20040215 may happen due to \"prev_data_use\"\n * optimization\n */\n if (accumulate01 != 0) {\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate01 = 0;\n }\n if (accumulate != 0) {\n quantize_lines_xrpow(accumulate, istep, acc_xp,\n acc_xpPos, acc_iData, acc_iDataPos);\n accumulate = 0;\n }\n\n break;\n /* ends for-loop */\n }\n }\n if (sfb <= sfbmax) {\n iDataPos += codInfo.width[sfb];\n xpPos += codInfo.width[sfb];\n j += codInfo.width[sfb];\n }\n }\n if (accumulate != 0) { /* last data part */\n quantize_lines_xrpow(accumulate, istep, acc_xp, acc_xpPos,\n acc_iData, acc_iDataPos);\n accumulate = 0;\n }\n if (accumulate01 != 0) { /* last data part */\n quantize_lines_xrpow_01(accumulate01, istep, acc_xp, acc_xpPos,\n acc_iData, acc_iDataPos);\n accumulate01 = 0;\n }\n\n }\n\n /**\n * ix_max\n */\n function ix_max(ix, ixPos, endPos) {\n var max1 = 0, max2 = 0;\n\n do {\n var x1 = ix[ixPos++];\n var x2 = ix[ixPos++];\n if (max1 < x1)\n max1 = x1;\n\n if (max2 < x2)\n max2 = x2;\n } while (ixPos < endPos);\n if (max1 < max2)\n max1 = max2;\n return max1;\n }\n\n function count_bit_ESC(ix, ixPos, end, t1, t2, s) {\n /* ESC-table is used */\n var linbits = Tables.ht[t1].xlen * 65536 + Tables.ht[t2].xlen;\n var sum = 0, sum2;\n\n do {\n var x = ix[ixPos++];\n var y = ix[ixPos++];\n\n if (x != 0) {\n if (x > 14) {\n x = 15;\n sum += linbits;\n }\n x *= 16;\n }\n\n if (y != 0) {\n if (y > 14) {\n y = 15;\n sum += linbits;\n }\n x += y;\n }\n\n sum += Tables.largetbl[x];\n } while (ixPos < end);\n\n sum2 = sum & 0xffff;\n sum >>= 16;\n\n if (sum > sum2) {\n sum = sum2;\n t1 = t2;\n }\n\n s.bits += sum;\n return t1;\n }\n\n function count_bit_noESC(ix, ixPos, end, s) {\n /* No ESC-words */\n var sum1 = 0;\n var hlen1 = Tables.ht[1].hlen;\n\n do {\n var x = ix[ixPos + 0] * 2 + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n } while (ixPos < end);\n\n s.bits += sum1;\n return 1;\n }\n\n function count_bit_noESC_from2(ix, ixPos, end, t1, s) {\n /* No ESC-words */\n var sum = 0, sum2;\n var xlen = Tables.ht[t1].xlen;\n var hlen;\n if (t1 == 2)\n hlen = Tables.table23;\n else\n hlen = Tables.table56;\n\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum += hlen[x];\n } while (ixPos < end);\n\n sum2 = sum & 0xffff;\n sum >>= 16;\n\n if (sum > sum2) {\n sum = sum2;\n t1++;\n }\n\n s.bits += sum;\n return t1;\n }\n\n function count_bit_noESC_from3(ix, ixPos, end, t1, s) {\n /* No ESC-words */\n var sum1 = 0;\n var sum2 = 0;\n var sum3 = 0;\n var xlen = Tables.ht[t1].xlen;\n var hlen1 = Tables.ht[t1].hlen;\n var hlen2 = Tables.ht[t1 + 1].hlen;\n var hlen3 = Tables.ht[t1 + 2].hlen;\n\n do {\n var x = ix[ixPos + 0] * xlen + ix[ixPos + 1];\n ixPos += 2;\n sum1 += hlen1[x];\n sum2 += hlen2[x];\n sum3 += hlen3[x];\n } while (ixPos < end);\n var t = t1;\n if (sum1 > sum2) {\n sum1 = sum2;\n t++;\n }\n if (sum1 > sum3) {\n sum1 = sum3;\n t = t1 + 2;\n }\n s.bits += sum1;\n\n return t;\n }\n\n /*************************************************************************/\n /* choose table */\n /*************************************************************************/\n\n var huf_tbl_noESC = [1, 2, 5, 7, 7, 10, 10, 13, 13,\n 13, 13, 13, 13, 13, 13];\n\n /**\n * Choose the Huffman table that will encode ix[begin..end] with the fewest\n * bits.\n *\n * Note: This code contains knowledge about the sizes and characteristics of\n * the Huffman tables as defined in the IS (Table B.7), and will not work\n * with any arbitrary tables.\n */\n function choose_table(ix, ixPos, endPos, s) {\n var max = ix_max(ix, ixPos, endPos);\n\n switch (max) {\n case 0:\n return max;\n\n case 1:\n return count_bit_noESC(ix, ixPos, endPos, s);\n\n case 2:\n case 3:\n return count_bit_noESC_from2(ix, ixPos, endPos,\n huf_tbl_noESC[max - 1], s);\n\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n return count_bit_noESC_from3(ix, ixPos, endPos,\n huf_tbl_noESC[max - 1], s);\n\n default:\n /* try tables with linbits */\n if (max > QuantizePVT.IXMAX_VAL) {\n s.bits = QuantizePVT.LARGE_BITS;\n return -1;\n }\n max -= 15;\n var choice2;\n for (choice2 = 24; choice2 < 32; choice2++) {\n if (Tables.ht[choice2].linmax >= max) {\n break;\n }\n }\n var choice;\n for (choice = choice2 - 8; choice < 24; choice++) {\n if (Tables.ht[choice].linmax >= max) {\n break;\n }\n }\n return count_bit_ESC(ix, ixPos, endPos, choice, choice2, s);\n }\n }\n\n /**\n * count_bit\n */\n this.noquant_count_bits = function (gfc, gi, prev_noise) {\n var ix = gi.l3_enc;\n var i = Math.min(576, ((gi.max_nonzero_coeff + 2) >> 1) << 1);\n\n if (prev_noise != null)\n prev_noise.sfb_count1 = 0;\n\n /* Determine count1 region */\n for (; i > 1; i -= 2)\n if ((ix[i - 1] | ix[i - 2]) != 0)\n break;\n gi.count1 = i;\n\n /* Determines the number of bits to encode the quadruples. */\n var a1 = 0;\n var a2 = 0;\n for (; i > 3; i -= 4) {\n var p;\n /* hack to check if all values <= 1 */\n //throw \"TODO: HACK if ((((long) ix[i - 1] | (long) ix[i - 2] | (long) ix[i - 3] | (long) ix[i - 4]) & 0xffffffffL) > 1L \"\n //if (true) {\n if (((ix[i - 1] | ix[i - 2] | ix[i - 3] | ix[i - 4]) & 0x7fffffff) > 1) {\n break;\n }\n p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2 + ix[i - 1];\n a1 += Tables.t32l[p];\n a2 += Tables.t33l[p];\n }\n var bits = a1;\n gi.count1table_select = 0;\n if (a1 > a2) {\n bits = a2;\n gi.count1table_select = 1;\n }\n\n gi.count1bits = bits;\n gi.big_values = i;\n if (i == 0)\n return bits;\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n a1 = 3 * gfc.scalefac_band.s[3];\n if (a1 > gi.big_values)\n a1 = gi.big_values;\n a2 = gi.big_values;\n\n } else if (gi.block_type == Encoder.NORM_TYPE) {\n assert(i <= 576);\n /* bv_scf has 576 entries (0..575) */\n a1 = gi.region0_count = gfc.bv_scf[i - 2];\n a2 = gi.region1_count = gfc.bv_scf[i - 1];\n\n assert(a1 + a2 + 2 < Encoder.SBPSY_l);\n a2 = gfc.scalefac_band.l[a1 + a2 + 2];\n a1 = gfc.scalefac_band.l[a1 + 1];\n if (a2 < i) {\n var bi = new Bits(bits);\n gi.table_select[2] = choose_table(ix, a2, i, bi);\n bits = bi.bits;\n }\n } else {\n gi.region0_count = 7;\n /* gi.region1_count = SBPSY_l - 7 - 1; */\n gi.region1_count = Encoder.SBMAX_l - 1 - 7 - 1;\n a1 = gfc.scalefac_band.l[7 + 1];\n a2 = i;\n if (a1 > a2) {\n a1 = a2;\n }\n }\n\n /* have to allow for the case when bigvalues < region0 < region1 */\n /* (and region0, region1 are ignored) */\n a1 = Math.min(a1, i);\n a2 = Math.min(a2, i);\n\n assert(a1 >= 0);\n assert(a2 >= 0);\n\n /* Count the number of bits necessary to code the bigvalues region. */\n if (0 < a1) {\n var bi = new Bits(bits);\n gi.table_select[0] = choose_table(ix, 0, a1, bi);\n bits = bi.bits;\n }\n if (a1 < a2) {\n var bi = new Bits(bits);\n gi.table_select[1] = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n }\n if (gfc.use_best_huffman == 2) {\n gi.part2_3_length = bits;\n best_huffman_divide(gfc, gi);\n bits = gi.part2_3_length;\n }\n\n if (prev_noise != null) {\n if (gi.block_type == Encoder.NORM_TYPE) {\n var sfb = 0;\n while (gfc.scalefac_band.l[sfb] < gi.big_values) {\n sfb++;\n }\n prev_noise.sfb_count1 = sfb;\n }\n }\n\n return bits;\n }\n\n this.count_bits = function (gfc, xr, gi, prev_noise) {\n var ix = gi.l3_enc;\n\n /* since quantize_xrpow uses table lookup, we need to check this first: */\n var w = (QuantizePVT.IXMAX_VAL) / qupvt.IPOW20(gi.global_gain);\n\n if (gi.xrpow_max > w)\n return QuantizePVT.LARGE_BITS;\n\n quantize_xrpow(xr, ix, qupvt.IPOW20(gi.global_gain), gi, prev_noise);\n\n if ((gfc.substep_shaping & 2) != 0) {\n var j = 0;\n /* 0.634521682242439 = 0.5946*2**(.5*0.1875) */\n var gain = gi.global_gain + gi.scalefac_scale;\n var roundfac = 0.634521682242439 / qupvt.IPOW20(gain);\n for (var sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n assert(width >= 0);\n if (0 == gfc.pseudohalf[sfb]) {\n j += width;\n } else {\n var k;\n for (k = j, j += width; k < j; ++k) {\n ix[k] = (xr[k] >= roundfac) ? ix[k] : 0;\n }\n }\n }\n }\n return this.noquant_count_bits(gfc, gi, prev_noise);\n }\n\n /**\n * re-calculate the best scalefac_compress using scfsi the saved bits are\n * kept in the bit reservoir.\n */\n function recalc_divide_init(gfc, cod_info, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info.big_values;\n\n for (var r0 = 0; r0 <= 7 + 15; r0++) {\n r01_bits[r0] = QuantizePVT.LARGE_BITS;\n }\n\n for (var r0 = 0; r0 < 16; r0++) {\n var a1 = gfc.scalefac_band.l[r0 + 1];\n if (a1 >= bigv)\n break;\n var r0bits = 0;\n var bi = new Bits(r0bits);\n var r0t = choose_table(ix, 0, a1, bi);\n r0bits = bi.bits;\n\n for (var r1 = 0; r1 < 8; r1++) {\n var a2 = gfc.scalefac_band.l[r0 + r1 + 2];\n if (a2 >= bigv)\n break;\n var bits = r0bits;\n bi = new Bits(bits);\n var r1t = choose_table(ix, a1, a2, bi);\n bits = bi.bits;\n if (r01_bits[r0 + r1] > bits) {\n r01_bits[r0 + r1] = bits;\n r01_div[r0 + r1] = r0;\n r0_tbl[r0 + r1] = r0t;\n r1_tbl[r0 + r1] = r1t;\n }\n }\n }\n }\n\n function recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl) {\n var bigv = cod_info2.big_values;\n\n for (var r2 = 2; r2 < Encoder.SBMAX_l + 1; r2++) {\n var a2 = gfc.scalefac_band.l[r2];\n if (a2 >= bigv)\n break;\n var bits = r01_bits[r2 - 2] + cod_info2.count1bits;\n if (gi.part2_3_length <= bits)\n break;\n\n var bi = new Bits(bits);\n var r2t = choose_table(ix, a2, bigv, bi);\n bits = bi.bits;\n if (gi.part2_3_length <= bits)\n continue;\n\n gi.assign(cod_info2);\n gi.part2_3_length = bits;\n gi.region0_count = r01_div[r2 - 2];\n gi.region1_count = r2 - 2 - r01_div[r2 - 2];\n gi.table_select[0] = r0_tbl[r2 - 2];\n gi.table_select[1] = r1_tbl[r2 - 2];\n gi.table_select[2] = r2t;\n }\n }\n\n this.best_huffman_divide = function (gfc, gi) {\n var cod_info2 = new GrInfo();\n var ix = gi.l3_enc;\n var r01_bits = new_int(7 + 15 + 1);\n var r01_div = new_int(7 + 15 + 1);\n var r0_tbl = new_int(7 + 15 + 1);\n var r1_tbl = new_int(7 + 15 + 1);\n\n /* SHORT BLOCK stuff fails for MPEG2 */\n if (gi.block_type == Encoder.SHORT_TYPE && gfc.mode_gr == 1)\n return;\n\n cod_info2.assign(gi);\n if (gi.block_type == Encoder.NORM_TYPE) {\n recalc_divide_init(gfc, gi, ix, r01_bits, r01_div, r0_tbl, r1_tbl);\n recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div,\n r0_tbl, r1_tbl);\n }\n var i = cod_info2.big_values;\n if (i == 0 || (ix[i - 2] | ix[i - 1]) > 1)\n return;\n\n i = gi.count1 + 2;\n if (i > 576)\n return;\n\n /* Determines the number of bits to encode the quadruples. */\n cod_info2.assign(gi);\n cod_info2.count1 = i;\n var a1 = 0;\n var a2 = 0;\n\n assert(i <= 576);\n\n for (; i > cod_info2.big_values; i -= 4) {\n var p = ((ix[i - 4] * 2 + ix[i - 3]) * 2 + ix[i - 2]) * 2\n + ix[i - 1];\n a1 += Tables.t32l[p];\n a2 += Tables.t33l[p];\n }\n cod_info2.big_values = i;\n\n cod_info2.count1table_select = 0;\n if (a1 > a2) {\n a1 = a2;\n cod_info2.count1table_select = 1;\n }\n\n cod_info2.count1bits = a1;\n\n if (cod_info2.block_type == Encoder.NORM_TYPE)\n recalc_divide_sub(gfc, cod_info2, gi, ix, r01_bits, r01_div,\n r0_tbl, r1_tbl);\n else {\n /* Count the number of bits necessary to code the bigvalues region. */\n cod_info2.part2_3_length = a1;\n a1 = gfc.scalefac_band.l[7 + 1];\n if (a1 > i) {\n a1 = i;\n }\n if (a1 > 0) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[0] = choose_table(ix, 0, a1, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (i > a1) {\n var bi = new Bits(cod_info2.part2_3_length);\n cod_info2.table_select[1] = choose_table(ix, a1, i, bi);\n cod_info2.part2_3_length = bi.bits;\n }\n if (gi.part2_3_length > cod_info2.part2_3_length)\n gi.assign(cod_info2);\n }\n }\n\n var slen1_n = [1, 1, 1, 1, 8, 2, 2, 2, 4, 4, 4, 8, 8, 8, 16, 16];\n var slen2_n = [1, 2, 4, 8, 1, 2, 4, 8, 2, 4, 8, 2, 4, 8, 4, 8];\n var slen1_tab = [0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4];\n var slen2_tab = [0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3];\n Takehiro.slen1_tab = slen1_tab;\n Takehiro.slen2_tab = slen2_tab;\n\n function scfsi_calc(ch, l3_side) {\n var sfb;\n var gi = l3_side.tt[1][ch];\n var g0 = l3_side.tt[0][ch];\n\n for (var i = 0; i < Tables.scfsi_band.length - 1; i++) {\n for (sfb = Tables.scfsi_band[i]; sfb < Tables.scfsi_band[i + 1]; sfb++) {\n if (g0.scalefac[sfb] != gi.scalefac[sfb]\n && gi.scalefac[sfb] >= 0)\n break;\n }\n if (sfb == Tables.scfsi_band[i + 1]) {\n for (sfb = Tables.scfsi_band[i]; sfb < Tables.scfsi_band[i + 1]; sfb++) {\n gi.scalefac[sfb] = -1;\n }\n l3_side.scfsi[ch][i] = 1;\n }\n }\n var s1 = 0;\n var c1 = 0;\n for (sfb = 0; sfb < 11; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c1++;\n if (s1 < gi.scalefac[sfb])\n s1 = gi.scalefac[sfb];\n }\n var s2 = 0;\n var c2 = 0;\n for (; sfb < Encoder.SBPSY_l; sfb++) {\n if (gi.scalefac[sfb] == -1)\n continue;\n c2++;\n if (s2 < gi.scalefac[sfb])\n s2 = gi.scalefac[sfb];\n }\n\n for (var i = 0; i < 16; i++) {\n if (s1 < slen1_n[i] && s2 < slen2_n[i]) {\n var c = slen1_tab[i] * c1 + slen2_tab[i] * c2;\n if (gi.part2_length > c) {\n gi.part2_length = c;\n gi.scalefac_compress = i;\n }\n }\n }\n }\n\n /**\n * Find the optimal way to store the scalefactors. Only call this routine\n * after final scalefactors have been chosen and the channel/granule will\n * not be re-encoded.\n */\n this.best_scalefac_store = function (gfc, gr, ch, l3_side) {\n /* use scalefac_scale if we can */\n var gi = l3_side.tt[gr][ch];\n var sfb, i, j, l;\n var recalc = 0;\n\n /*\n * remove scalefacs from bands with ix=0. This idea comes from the AAC\n * ISO docs. added mt 3/00\n */\n /* check if l3_enc=0 */\n j = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n var width = gi.width[sfb];\n assert(width >= 0);\n j += width;\n for (l = -width; l < 0; l++) {\n if (gi.l3_enc[l + j] != 0)\n break;\n }\n if (l == 0)\n gi.scalefac[sfb] = recalc = -2;\n /* anything goes. */\n /*\n * only best_scalefac_store and calc_scfsi know--and only they\n * should know--about the magic number -2.\n */\n }\n\n if (0 == gi.scalefac_scale && 0 == gi.preflag) {\n var s = 0;\n for (sfb = 0; sfb < gi.sfbmax; sfb++)\n if (gi.scalefac[sfb] > 0)\n s |= gi.scalefac[sfb];\n\n if (0 == (s & 1) && s != 0) {\n for (sfb = 0; sfb < gi.sfbmax; sfb++)\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] >>= 1;\n\n gi.scalefac_scale = recalc = 1;\n }\n }\n\n if (0 == gi.preflag && gi.block_type != Encoder.SHORT_TYPE\n && gfc.mode_gr == 2) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n if (gi.scalefac[sfb] < qupvt.pretab[sfb]\n && gi.scalefac[sfb] != -2)\n break;\n if (sfb == Encoder.SBPSY_l) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n if (gi.scalefac[sfb] > 0)\n gi.scalefac[sfb] -= qupvt.pretab[sfb];\n\n gi.preflag = recalc = 1;\n }\n }\n\n for (i = 0; i < 4; i++)\n l3_side.scfsi[ch][i] = 0;\n\n if (gfc.mode_gr == 2 && gr == 1\n && l3_side.tt[0][ch].block_type != Encoder.SHORT_TYPE\n && l3_side.tt[1][ch].block_type != Encoder.SHORT_TYPE) {\n scfsi_calc(ch, l3_side);\n recalc = 0;\n }\n for (sfb = 0; sfb < gi.sfbmax; sfb++) {\n if (gi.scalefac[sfb] == -2) {\n gi.scalefac[sfb] = 0;\n /* if anything goes, then 0 is a good choice */\n }\n }\n if (recalc != 0) {\n if (gfc.mode_gr == 2) {\n this.scale_bitcount(gi);\n } else {\n this.scale_bitcount_lsf(gfc, gi);\n }\n }\n }\n\n function all_scalefactors_not_negative(scalefac, n) {\n for (var i = 0; i < n; ++i) {\n if (scalefac[i] < 0)\n return false;\n }\n return true;\n }\n\n /**\n * number of bits used to encode scalefacs.\n *\n * 18*slen1_tab[i] + 18*slen2_tab[i]\n */\n var scale_short = [0, 18, 36, 54, 54, 36, 54, 72,\n 54, 72, 90, 72, 90, 108, 108, 126];\n\n /**\n * number of bits used to encode scalefacs.\n *\n * 17*slen1_tab[i] + 18*slen2_tab[i]\n */\n var scale_mixed = [0, 18, 36, 54, 51, 35, 53, 71,\n 52, 70, 88, 69, 87, 105, 104, 122];\n\n /**\n * number of bits used to encode scalefacs.\n *\n * 11*slen1_tab[i] + 10*slen2_tab[i]\n */\n var scale_long = [0, 10, 20, 30, 33, 21, 31, 41, 32, 42,\n 52, 43, 53, 63, 64, 74];\n\n /**\n * Also calculates the number of bits necessary to code the scalefactors.\n */\n this.scale_bitcount = function (cod_info) {\n var k, sfb, max_slen1 = 0, max_slen2 = 0;\n\n /* maximum values */\n var tab;\n var scalefac = cod_info.scalefac;\n\n assert(all_scalefactors_not_negative(scalefac, cod_info.sfbmax));\n\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n tab = scale_short;\n if (cod_info.mixed_block_flag != 0)\n tab = scale_mixed;\n } else { /* block_type == 1,2,or 3 */\n tab = scale_long;\n if (0 == cod_info.preflag) {\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n if (scalefac[sfb] < qupvt.pretab[sfb])\n break;\n\n if (sfb == Encoder.SBPSY_l) {\n cod_info.preflag = 1;\n for (sfb = 11; sfb < Encoder.SBPSY_l; sfb++)\n scalefac[sfb] -= qupvt.pretab[sfb];\n }\n }\n }\n\n for (sfb = 0; sfb < cod_info.sfbdivide; sfb++)\n if (max_slen1 < scalefac[sfb])\n max_slen1 = scalefac[sfb];\n\n for (; sfb < cod_info.sfbmax; sfb++)\n if (max_slen2 < scalefac[sfb])\n max_slen2 = scalefac[sfb];\n\n /*\n * from Takehiro TOMINAGA
\n * Analog silence detection in partitionned sfb21 or sfb12 for short blocks\n *\n * From top to bottom of sfb, changes to 0 coeffs which are below ath. It\n * stops on the first coeff higher than ath.\n */\n function psfb21_analogsilence(gfc, cod_info) {\n var ath = gfc.ATH;\n var xr = cod_info.xr;\n\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n /* NORM, START or STOP type, but not SHORT blocks */\n var stop = false;\n for (var gsfb = Encoder.PSFB21 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start = gfc.scalefac_band.psfb21[gsfb];\n var end = gfc.scalefac_band.psfb21[gsfb + 1];\n var ath21 = qupvt.athAdjust(ath.adjust, ath.psfb21[gsfb],\n ath.floor);\n\n if (gfc.nsPsy.longfact[21] > 1e-12)\n ath21 *= gfc.nsPsy.longfact[21];\n\n for (var j = end - 1; j >= start; j--) {\n if (Math.abs(xr[j]) < ath21)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n } else {\n /* note: short blocks coeffs are reordered */\n for (var block = 0; block < 3; block++) {\n var stop = false;\n for (var gsfb = Encoder.PSFB12 - 1; gsfb >= 0 && !stop; gsfb--) {\n var start = gfc.scalefac_band.s[12]\n * 3\n + (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12])\n * block\n + (gfc.scalefac_band.psfb12[gsfb] - gfc.scalefac_band.psfb12[0]);\n var end = start\n + (gfc.scalefac_band.psfb12[gsfb + 1] - gfc.scalefac_band.psfb12[gsfb]);\n var ath12 = qupvt.athAdjust(ath.adjust, ath.psfb12[gsfb],\n ath.floor);\n\n if (gfc.nsPsy.shortfact[12] > 1e-12)\n ath12 *= gfc.nsPsy.shortfact[12];\n\n for (var j = end - 1; j >= start; j--) {\n if (Math.abs(xr[j]) < ath12)\n xr[j] = 0;\n else {\n stop = true;\n break;\n }\n }\n }\n }\n }\n\n }\n\n this.init_outer_loop = function (gfc, cod_info) {\n /*\n * initialize fresh cod_info\n */\n cod_info.part2_3_length = 0;\n cod_info.big_values = 0;\n cod_info.count1 = 0;\n cod_info.global_gain = 210;\n cod_info.scalefac_compress = 0;\n /* mixed_block_flag, block_type was set in psymodel.c */\n cod_info.table_select[0] = 0;\n cod_info.table_select[1] = 0;\n cod_info.table_select[2] = 0;\n cod_info.subblock_gain[0] = 0;\n cod_info.subblock_gain[1] = 0;\n cod_info.subblock_gain[2] = 0;\n cod_info.subblock_gain[3] = 0;\n /* this one is always 0 */\n cod_info.region0_count = 0;\n cod_info.region1_count = 0;\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 0;\n cod_info.count1table_select = 0;\n cod_info.part2_length = 0;\n cod_info.sfb_lmax = Encoder.SBPSY_l;\n cod_info.sfb_smin = Encoder.SBPSY_s;\n cod_info.psy_lmax = gfc.sfb21_extra ? Encoder.SBMAX_l : Encoder.SBPSY_l;\n cod_info.psymax = cod_info.psy_lmax;\n cod_info.sfbmax = cod_info.sfb_lmax;\n cod_info.sfbdivide = 11;\n for (var sfb = 0; sfb < Encoder.SBMAX_l; sfb++) {\n cod_info.width[sfb] = gfc.scalefac_band.l[sfb + 1]\n - gfc.scalefac_band.l[sfb];\n /* which is always 0. */\n cod_info.window[sfb] = 3;\n }\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n var ixwork = new_float(576);\n\n cod_info.sfb_smin = 0;\n cod_info.sfb_lmax = 0;\n if (cod_info.mixed_block_flag != 0) {\n /*\n * MPEG-1: sfbs 0-7 long block, 3-12 short blocks MPEG-2(.5):\n * sfbs 0-5 long block, 3-12 short blocks\n */\n cod_info.sfb_smin = 3;\n cod_info.sfb_lmax = gfc.mode_gr * 2 + 4;\n }\n cod_info.psymax = cod_info.sfb_lmax\n + 3\n * ((gfc.sfb21_extra ? Encoder.SBMAX_s : Encoder.SBPSY_s) - cod_info.sfb_smin);\n cod_info.sfbmax = cod_info.sfb_lmax + 3\n * (Encoder.SBPSY_s - cod_info.sfb_smin);\n cod_info.sfbdivide = cod_info.sfbmax - 18;\n cod_info.psy_lmax = cod_info.sfb_lmax;\n /* re-order the short blocks, for more efficient encoding below */\n /* By Takehiro TOMINAGA */\n /*\n * Within each scalefactor band, data is given for successive time\n * windows, beginning with window 0 and ending with window 2. Within\n * each window, the quantized values are then arranged in order of\n * increasing frequency...\n */\n var ix = gfc.scalefac_band.l[cod_info.sfb_lmax];\n System.arraycopy(cod_info.xr, 0, ixwork, 0, 576);\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n var start = gfc.scalefac_band.s[sfb];\n var end = gfc.scalefac_band.s[sfb + 1];\n for (var window = 0; window < 3; window++) {\n for (var l = start; l < end; l++) {\n cod_info.xr[ix++] = ixwork[3 * l + window];\n }\n }\n }\n\n var j = cod_info.sfb_lmax;\n for (var sfb = cod_info.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n cod_info.width[j] = cod_info.width[j + 1] = cod_info.width[j + 2] = gfc.scalefac_band.s[sfb + 1]\n - gfc.scalefac_band.s[sfb];\n cod_info.window[j] = 0;\n cod_info.window[j + 1] = 1;\n cod_info.window[j + 2] = 2;\n j += 3;\n }\n }\n\n cod_info.count1bits = 0;\n cod_info.sfb_partition_table = qupvt.nr_of_sfb_block[0][0];\n cod_info.slen[0] = 0;\n cod_info.slen[1] = 0;\n cod_info.slen[2] = 0;\n cod_info.slen[3] = 0;\n\n cod_info.max_nonzero_coeff = 575;\n\n /*\n * fresh scalefactors are all zero\n */\n Arrays.fill(cod_info.scalefac, 0);\n\n psfb21_analogsilence(gfc, cod_info);\n };\n\n function BinSearchDirection(ordinal) {\n this.ordinal = ordinal;\n }\n\n BinSearchDirection.BINSEARCH_NONE = new BinSearchDirection(0);\n BinSearchDirection.BINSEARCH_UP = new BinSearchDirection(1);\n BinSearchDirection.BINSEARCH_DOWN = new BinSearchDirection(2);\n\n /**\n * author/date??\n *\n * binary step size search used by outer_loop to get a quantizer step size\n * to start with\n */\n function bin_search_StepSize(gfc, cod_info, desired_rate, ch, xrpow) {\n var nBits;\n var CurrentStep = gfc.CurrentStep[ch];\n var flagGoneOver = false;\n var start = gfc.OldValue[ch];\n var Direction = BinSearchDirection.BINSEARCH_NONE;\n cod_info.global_gain = start;\n desired_rate -= cod_info.part2_length;\n\n assert(CurrentStep != 0);\n for (; ;) {\n var step;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n\n if (CurrentStep == 1 || nBits == desired_rate)\n break;\n /* nothing to adjust anymore */\n\n if (nBits > desired_rate) {\n /* increase Quantize_StepSize */\n if (Direction == BinSearchDirection.BINSEARCH_DOWN)\n flagGoneOver = true;\n\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_UP;\n step = CurrentStep;\n } else {\n /* decrease Quantize_StepSize */\n if (Direction == BinSearchDirection.BINSEARCH_UP)\n flagGoneOver = true;\n\n if (flagGoneOver)\n CurrentStep /= 2;\n Direction = BinSearchDirection.BINSEARCH_DOWN;\n step = -CurrentStep;\n }\n cod_info.global_gain += step;\n if (cod_info.global_gain < 0) {\n cod_info.global_gain = 0;\n flagGoneOver = true;\n }\n if (cod_info.global_gain > 255) {\n cod_info.global_gain = 255;\n flagGoneOver = true;\n }\n }\n\n assert(cod_info.global_gain >= 0);\n assert(cod_info.global_gain < 256);\n\n while (nBits > desired_rate && cod_info.global_gain < 255) {\n cod_info.global_gain++;\n nBits = tk.count_bits(gfc, xrpow, cod_info, null);\n }\n gfc.CurrentStep[ch] = (start - cod_info.global_gain >= 4) ? 4 : 2;\n gfc.OldValue[ch] = cod_info.global_gain;\n cod_info.part2_3_length = nBits;\n return nBits;\n }\n\n this.trancate_smallspectrums = function (gfc, gi, l3_xmin, work) {\n var distort = new_float(L3Side.SFBMAX);\n\n if ((0 == (gfc.substep_shaping & 4) && gi.block_type == Encoder.SHORT_TYPE)\n || (gfc.substep_shaping & 0x80) != 0)\n return;\n qupvt.calc_noise(gi, l3_xmin, distort, new CalcNoiseResult(), null);\n for (var j = 0; j < 576; j++) {\n var xr = 0.0;\n if (gi.l3_enc[j] != 0)\n xr = Math.abs(gi.xr[j]);\n work[j] = xr;\n }\n\n var j = 0;\n var sfb = 8;\n if (gi.block_type == Encoder.SHORT_TYPE)\n sfb = 6;\n do {\n var allowedNoise, trancateThreshold;\n var nsame, start;\n\n var width = gi.width[sfb];\n j += width;\n if (distort[sfb] >= 1.0)\n continue;\n\n Arrays.sort(work, j - width, width);\n if (BitStream.EQ(work[j - 1], 0.0))\n continue;\n /* all zero sfb */\n\n allowedNoise = (1.0 - distort[sfb]) * l3_xmin[sfb];\n trancateThreshold = 0.0;\n start = 0;\n do {\n var noise;\n for (nsame = 1; start + nsame < width; nsame++)\n if (BitStream.NEQ(work[start + j - width], work[start + j\n + nsame - width]))\n break;\n\n noise = work[start + j - width] * work[start + j - width]\n * nsame;\n if (allowedNoise < noise) {\n if (start != 0)\n trancateThreshold = work[start + j - width - 1];\n break;\n }\n allowedNoise -= noise;\n start += nsame;\n } while (start < width);\n if (BitStream.EQ(trancateThreshold, 0.0))\n continue;\n\n do {\n if (Math.abs(gi.xr[j - width]) <= trancateThreshold)\n gi.l3_enc[j - width] = 0;\n } while (--width > 0);\n } while (++sfb < gi.psymax);\n\n gi.part2_3_length = tk.noquant_count_bits(gfc, gi, null);\n };\n\n /**\n * author/date??\n *\n * Function: Returns zero if there is a scalefac which has not been\n * amplified. Otherwise it returns one.\n */\n function loop_break(cod_info) {\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++)\n if (cod_info.scalefac[sfb]\n + cod_info.subblock_gain[cod_info.window[sfb]] == 0)\n return false;\n\n return true;\n }\n\n /* mt 5/99: Function: Improved calc_noise for a single channel */\n\n function penalties(noise) {\n return Util.FAST_LOG10((0.368 + 0.632 * noise * noise * noise));\n }\n\n /**\n * author/date??\n *\n * several different codes to decide which quantization is better\n */\n function get_klemm_noise(distort, gi) {\n var klemm_noise = 1E-37;\n for (var sfb = 0; sfb < gi.psymax; sfb++)\n klemm_noise += penalties(distort[sfb]);\n\n return Math.max(1e-20, klemm_noise);\n }\n\n function quant_compare(quant_comp, best, calc, gi, distort) {\n /**\n * noise is given in decibels (dB) relative to masking thesholds.
\n *\n * over_noise: ??? (the previous comment is fully wrong)
\n * tot_noise: ??? (the previous comment is fully wrong)
\n * max_noise: max quantization noise\n */\n var better;\n\n switch (quant_comp) {\n default:\n case 9:\n {\n if (best.over_count > 0) {\n /* there are distorted sfb */\n better = calc.over_SSD <= best.over_SSD;\n if (calc.over_SSD == best.over_SSD)\n better = calc.bits < best.bits;\n } else {\n /* no distorted sfb */\n better = ((calc.max_noise < 0) && ((calc.max_noise * 10 + calc.bits) <= (best.max_noise * 10 + best.bits)));\n }\n break;\n }\n\n case 0:\n better = calc.over_count < best.over_count\n || (calc.over_count == best.over_count && calc.over_noise < best.over_noise)\n || (calc.over_count == best.over_count\n && BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise);\n break;\n\n case 8:\n calc.max_noise = get_klemm_noise(distort, gi);\n //$FALL-THROUGH$\n case 1:\n better = calc.max_noise < best.max_noise;\n break;\n case 2:\n better = calc.tot_noise < best.tot_noise;\n break;\n case 3:\n better = (calc.tot_noise < best.tot_noise)\n && (calc.max_noise < best.max_noise);\n break;\n case 4:\n better = (calc.max_noise <= 0.0 && best.max_noise > 0.2)\n || (calc.max_noise <= 0.0 && best.max_noise < 0.0\n && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise)\n || (calc.max_noise <= 0.0 && best.max_noise > 0.0\n && best.max_noise > calc.max_noise - 0.2 && calc.tot_noise < best.tot_noise\n + best.over_noise)\n || (calc.max_noise > 0.0 && best.max_noise > -0.05\n && best.max_noise > calc.max_noise - 0.1 && calc.tot_noise\n + calc.over_noise < best.tot_noise\n + best.over_noise)\n || (calc.max_noise > 0.0 && best.max_noise > -0.1\n && best.max_noise > calc.max_noise - 0.15 && calc.tot_noise\n + calc.over_noise + calc.over_noise < best.tot_noise\n + best.over_noise + best.over_noise);\n break;\n case 5:\n better = calc.over_noise < best.over_noise\n || (BitStream.EQ(calc.over_noise, best.over_noise) && calc.tot_noise < best.tot_noise);\n break;\n case 6:\n better = calc.over_noise < best.over_noise\n || (BitStream.EQ(calc.over_noise, best.over_noise) && (calc.max_noise < best.max_noise || (BitStream\n .EQ(calc.max_noise, best.max_noise) && calc.tot_noise <= best.tot_noise)));\n break;\n case 7:\n better = calc.over_count < best.over_count\n || calc.over_noise < best.over_noise;\n break;\n }\n\n if (best.over_count == 0) {\n /*\n * If no distorted bands, only use this quantization if it is\n * better, and if it uses less bits. Unfortunately, part2_3_length\n * is sometimes a poor estimator of the final size at low bitrates.\n */\n better = better && calc.bits < best.bits;\n }\n\n return better;\n }\n\n /**\n * author/date??\n *\n * \n * Amplify the scalefactor bands that violate the masking threshold.\n * See ISO 11172-3 Section C.1.5.4.3.5\n *\n * distort[] = noise/masking\n * distort[] > 1 ==> noise is not masked\n * distort[] < 1 ==> noise is masked\n * max_dist = maximum value of distort[]\n *\n * Three algorithms:\n * noise_shaping_amp\n * 0 Amplify all bands with distort[]>1.\n *\n * 1 Amplify all bands with distort[] >= max_dist^(.5);\n * ( 50% in the db scale)\n *\n * 2 Amplify first band with distort[] >= max_dist;\n *\n *\n * For algorithms 0 and 1, if max_dist < 1, then amplify all bands\n * with distort[] >= .95*max_dist. This is to make sure we always\n * amplify at least one band.\n *
\n */\n function amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n var ifqstep34;\n\n if (cod_info.scalefac_scale == 0) {\n ifqstep34 = 1.29683955465100964055;\n /* 2**(.75*.5) */\n } else {\n ifqstep34 = 1.68179283050742922612;\n /* 2**(.75*1) */\n }\n\n /* compute maximum value of distort[] */\n var trigger = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n if (trigger < distort[sfb])\n trigger = distort[sfb];\n }\n\n var noise_shaping_amp = gfc.noise_shaping_amp;\n if (noise_shaping_amp == 3) {\n if (bRefine)\n noise_shaping_amp = 2;\n else\n noise_shaping_amp = 1;\n }\n switch (noise_shaping_amp) {\n case 2:\n /* amplify exactly 1 band */\n break;\n\n case 1:\n /* amplify bands within 50% of max (on db scale) */\n if (trigger > 1.0)\n trigger = Math.pow(trigger, .5);\n else\n trigger *= .95;\n break;\n\n case 0:\n default:\n /* ISO algorithm. amplify all bands with distort>1 */\n if (trigger > 1.0)\n trigger = 1.0;\n else\n trigger *= .95;\n break;\n }\n\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var l;\n j += width;\n if (distort[sfb] < trigger)\n continue;\n\n if ((gfc.substep_shaping & 2) != 0) {\n gfc.pseudohalf[sfb] = (0 == gfc.pseudohalf[sfb]) ? 1 : 0;\n if (0 == gfc.pseudohalf[sfb] && gfc.noise_shaping_amp == 2)\n return;\n }\n cod_info.scalefac[sfb]++;\n for (l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n\n if (gfc.noise_shaping_amp == 2)\n return;\n }\n }\n\n /**\n * Takehiro Tominaga 2000-xx-xx\n *\n * turns on scalefac scale and adjusts scalefactors\n */\n function inc_scalefac_scale(cod_info, xrpow) {\n var ifqstep34 = 1.29683955465100964055;\n\n var j = 0;\n for (var sfb = 0; sfb < cod_info.sfbmax; sfb++) {\n var width = cod_info.width[sfb];\n var s = cod_info.scalefac[sfb];\n if (cod_info.preflag != 0)\n s += qupvt.pretab[sfb];\n j += width;\n if ((s & 1) != 0) {\n s++;\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= ifqstep34;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n cod_info.scalefac[sfb] = s >> 1;\n }\n cod_info.preflag = 0;\n cod_info.scalefac_scale = 1;\n }\n\n /**\n * Takehiro Tominaga 2000-xx-xx\n *\n * increases the subblock gain and adjusts scalefactors\n */\n function inc_subblock_gain(gfc, cod_info, xrpow) {\n var sfb;\n var scalefac = cod_info.scalefac;\n\n /* subbloc_gain can't do anything in the long block region */\n for (sfb = 0; sfb < cod_info.sfb_lmax; sfb++) {\n if (scalefac[sfb] >= 16)\n return true;\n }\n\n for (var window = 0; window < 3; window++) {\n var s1 = 0;\n var s2 = 0;\n\n for (sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbdivide; sfb += 3) {\n if (s1 < scalefac[sfb])\n s1 = scalefac[sfb];\n }\n for (; sfb < cod_info.sfbmax; sfb += 3) {\n if (s2 < scalefac[sfb])\n s2 = scalefac[sfb];\n }\n\n if (s1 < 16 && s2 < 8)\n continue;\n\n if (cod_info.subblock_gain[window] >= 7)\n return true;\n\n /*\n * even though there is no scalefactor for sfb12 subblock gain\n * affects upper frequencies too, that's why we have to go up to\n * SBMAX_s\n */\n cod_info.subblock_gain[window]++;\n var j = gfc.scalefac_band.l[cod_info.sfb_lmax];\n for (sfb = cod_info.sfb_lmax + window; sfb < cod_info.sfbmax; sfb += 3) {\n var amp;\n var width = cod_info.width[sfb];\n var s = scalefac[sfb];\n assert(s >= 0);\n s = s - (4 >> cod_info.scalefac_scale);\n if (s >= 0) {\n scalefac[sfb] = s;\n j += width * 3;\n continue;\n }\n\n scalefac[sfb] = 0;\n {\n var gain = 210 + (s << (cod_info.scalefac_scale + 1));\n amp = qupvt.IPOW20(gain);\n }\n j += width * (window + 1);\n for (var l = -width; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n j += width * (3 - window - 1);\n }\n\n {\n var amp = qupvt.IPOW20(202);\n j += cod_info.width[sfb] * (window + 1);\n for (var l = -cod_info.width[sfb]; l < 0; l++) {\n xrpow[j + l] *= amp;\n if (xrpow[j + l] > cod_info.xrpow_max)\n cod_info.xrpow_max = xrpow[j + l];\n }\n }\n }\n return false;\n }\n\n /**\n * \n * Takehiro Tominaga /date??\n * Robert Hegemann 2000-09-06: made a function of it\n *\n * amplifies scalefactor bands,\n * - if all are already amplified returns 0\n * - if some bands are amplified too much:\n * * try to increase scalefac_scale\n * * if already scalefac_scale was set\n * try on short blocks to increase subblock gain\n *
\n */\n function balance_noise(gfp, cod_info, distort, xrpow, bRefine) {\n var gfc = gfp.internal_flags;\n\n amp_scalefac_bands(gfp, cod_info, distort, xrpow, bRefine);\n\n /*\n * check to make sure we have not amplified too much loop_break returns\n * 0 if there is an unamplified scalefac scale_bitcount returns 0 if no\n * scalefactors are too large\n */\n\n var status = loop_break(cod_info);\n\n if (status)\n return false;\n /* all bands amplified */\n\n /*\n * not all scalefactors have been amplified. so these scalefacs are\n * possibly valid. encode them:\n */\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n\n if (!status)\n return true;\n /* amplified some bands not exceeding limits */\n\n /*\n * some scalefactors are too large. lets try setting scalefac_scale=1\n */\n if (gfc.noise_shaping > 1) {\n Arrays.fill(gfc.pseudohalf, 0);\n if (0 == cod_info.scalefac_scale) {\n inc_scalefac_scale(cod_info, xrpow);\n status = false;\n } else {\n if (cod_info.block_type == Encoder.SHORT_TYPE\n && gfc.subblock_gain > 0) {\n status = (inc_subblock_gain(gfc, cod_info, xrpow) || loop_break(cod_info));\n }\n }\n }\n\n if (!status) {\n if (gfc.mode_gr == 2)\n status = tk.scale_bitcount(cod_info);\n else\n status = tk.scale_bitcount_lsf(gfc, cod_info);\n }\n return !status;\n }\n\n /**\n * \n * Function: The outer iteration loop controls the masking conditions\n * of all scalefactorbands. It computes the best scalefac and\n * global gain. This module calls the inner iteration loop\n *\n * mt 5/99 completely rewritten to allow for bit reservoir control,\n * mid/side channels with L/R or mid/side masking thresholds,\n * and chooses best quantization instead of last quantization when\n * no distortion free quantization can be found.\n *\n * added VBR support mt 5/99\n *\n * some code shuffle rh 9/00\n *
\n *\n * @param l3_xmin\n * allowed distortion\n * @param xrpow\n * coloured magnitudes of spectral\n * @param targ_bits\n * maximum allowed bits\n */\n this.outer_loop = function (gfp, cod_info, l3_xmin, xrpow, ch, targ_bits) {\n var gfc = gfp.internal_flags;\n var cod_info_w = new GrInfo();\n var save_xrpow = new_float(576);\n var distort = new_float(L3Side.SFBMAX);\n var best_noise_info = new CalcNoiseResult();\n var better;\n var prev_noise = new CalcNoiseData();\n var best_part2_3_length = 9999999;\n var bEndOfSearch = false;\n var bRefine = false;\n var best_ggain_pass1 = 0;\n\n bin_search_StepSize(gfc, cod_info, targ_bits, ch, xrpow);\n\n if (0 == gfc.noise_shaping)\n /* fast mode, no noise shaping, we are ready */\n return 100;\n /* default noise_info.over_count */\n\n /* compute the distortion in this quantization */\n /* coefficients and thresholds both l/r (or both mid/side) */\n qupvt.calc_noise(cod_info, l3_xmin, distort, best_noise_info,\n prev_noise);\n best_noise_info.bits = cod_info.part2_3_length;\n\n cod_info_w.assign(cod_info);\n var age = 0;\n System.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n\n while (!bEndOfSearch) {\n /* BEGIN MAIN LOOP */\n do {\n var noise_info = new CalcNoiseResult();\n var search_limit;\n var maxggain = 255;\n\n /*\n * When quantization with no distorted bands is found, allow up\n * to X new unsuccesful tries in serial. This gives us more\n * possibilities for different quant_compare modes. Much more\n * than 3 makes not a big difference, it is only slower.\n */\n\n if ((gfc.substep_shaping & 2) != 0) {\n search_limit = 20;\n } else {\n search_limit = 3;\n }\n\n /*\n * Check if the last scalefactor band is distorted. in VBR mode\n * we can't get rid of the distortion, so quit now and VBR mode\n * will try again with more bits. (makes a 10% speed increase,\n * the files I tested were binary identical, 2000/05/20 Robert\n * Hegemann) distort[] > 1 means noise > allowed noise\n */\n if (gfc.sfb21_extra) {\n if (distort[cod_info_w.sfbmax] > 1.0)\n break;\n if (cod_info_w.block_type == Encoder.SHORT_TYPE\n && (distort[cod_info_w.sfbmax + 1] > 1.0 || distort[cod_info_w.sfbmax + 2] > 1.0))\n break;\n }\n\n /* try a new scalefactor conbination on cod_info_w */\n if (!balance_noise(gfp, cod_info_w, distort, xrpow, bRefine))\n break;\n if (cod_info_w.scalefac_scale != 0)\n maxggain = 254;\n\n /*\n * inner_loop starts with the initial quantization step computed\n * above and slowly increases until the bits < huff_bits. Thus\n * it is important not to start with too large of an inital\n * quantization step. Too small is ok, but inner_loop will take\n * longer\n */\n var huff_bits = targ_bits - cod_info_w.part2_length;\n if (huff_bits <= 0)\n break;\n\n /*\n * increase quantizer stepsize until needed bits are below\n * maximum\n */\n while ((cod_info_w.part2_3_length = tk.count_bits(gfc, xrpow,\n cod_info_w, prev_noise)) > huff_bits\n && cod_info_w.global_gain <= maxggain)\n cod_info_w.global_gain++;\n\n if (cod_info_w.global_gain > maxggain)\n break;\n\n if (best_noise_info.over_count == 0) {\n\n while ((cod_info_w.part2_3_length = tk.count_bits(gfc,\n xrpow, cod_info_w, prev_noise)) > best_part2_3_length\n && cod_info_w.global_gain <= maxggain)\n cod_info_w.global_gain++;\n\n if (cod_info_w.global_gain > maxggain)\n break;\n }\n\n /* compute the distortion in this quantization */\n qupvt.calc_noise(cod_info_w, l3_xmin, distort, noise_info,\n prev_noise);\n noise_info.bits = cod_info_w.part2_3_length;\n\n /*\n * check if this quantization is better than our saved\n * quantization\n */\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n // NORM, START or STOP type\n better = gfp.quant_comp;\n } else\n better = gfp.quant_comp_short;\n\n better = quant_compare(better, best_noise_info, noise_info,\n cod_info_w, distort) ? 1 : 0;\n\n /* save data so we can restore this quantization later */\n if (better != 0) {\n best_part2_3_length = cod_info.part2_3_length;\n best_noise_info = noise_info;\n cod_info.assign(cod_info_w);\n age = 0;\n /* save data so we can restore this quantization later */\n /* store for later reuse */\n System.arraycopy(xrpow, 0, save_xrpow, 0, 576);\n } else {\n /* early stop? */\n if (gfc.full_outer_loop == 0) {\n if (++age > search_limit\n && best_noise_info.over_count == 0)\n break;\n if ((gfc.noise_shaping_amp == 3) && bRefine && age > 30)\n break;\n if ((gfc.noise_shaping_amp == 3)\n && bRefine\n && (cod_info_w.global_gain - best_ggain_pass1) > 15)\n break;\n }\n }\n } while ((cod_info_w.global_gain + cod_info_w.scalefac_scale) < 255);\n\n if (gfc.noise_shaping_amp == 3) {\n if (!bRefine) {\n /* refine search */\n cod_info_w.assign(cod_info);\n System.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n age = 0;\n best_ggain_pass1 = cod_info_w.global_gain;\n\n bRefine = true;\n } else {\n /* search already refined, stop */\n bEndOfSearch = true;\n }\n\n } else {\n bEndOfSearch = true;\n }\n }\n\n assert((cod_info.global_gain + cod_info.scalefac_scale) <= 255);\n /*\n * finish up\n */\n if (gfp.VBR == VbrMode.vbr_rh || gfp.VBR == VbrMode.vbr_mtrh)\n /* restore for reuse on next try */\n System.arraycopy(save_xrpow, 0, xrpow, 0, 576);\n /*\n * do the 'substep shaping'\n */\n else if ((gfc.substep_shaping & 1) != 0)\n trancate_smallspectrums(gfc, cod_info, l3_xmin, xrpow);\n\n return best_noise_info.over_count;\n }\n\n /**\n * Robert Hegemann 2000-09-06\n *\n * update reservoir status after FINAL quantization/bitrate\n */\n this.iteration_finish_one = function (gfc, gr, ch) {\n var l3_side = gfc.l3_side;\n var cod_info = l3_side.tt[gr][ch];\n\n /*\n * try some better scalefac storage\n */\n tk.best_scalefac_store(gfc, gr, ch, l3_side);\n\n /*\n * best huffman_divide may save some bits too\n */\n if (gfc.use_best_huffman == 1)\n tk.best_huffman_divide(gfc, cod_info);\n\n /*\n * update reservoir status after FINAL quantization/bitrate\n */\n rv.ResvAdjust(gfc, cod_info);\n };\n\n /**\n *\n * 2000-09-04 Robert Hegemann\n *\n * @param l3_xmin\n * allowed distortion of the scalefactor\n * @param xrpow\n * coloured magnitudes of spectral values\n */\n this.VBR_encode_granule = function (gfp, cod_info, l3_xmin, xrpow, ch, min_bits, max_bits) {\n var gfc = gfp.internal_flags;\n var bst_cod_info = new GrInfo();\n var bst_xrpow = new_float(576);\n var Max_bits = max_bits;\n var real_bits = max_bits + 1;\n var this_bits = (max_bits + min_bits) / 2;\n var dbits, over, found = 0;\n var sfb21_extra = gfc.sfb21_extra;\n\n assert(Max_bits <= LameInternalFlags.MAX_BITS_PER_CHANNEL);\n Arrays.fill(bst_cod_info.l3_enc, 0);\n\n /*\n * search within round about 40 bits of optimal\n */\n do {\n assert(this_bits >= min_bits);\n assert(this_bits <= max_bits);\n assert(min_bits <= max_bits);\n\n if (this_bits > Max_bits - 42)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = sfb21_extra;\n\n over = outer_loop(gfp, cod_info, l3_xmin, xrpow, ch, this_bits);\n\n /*\n * is quantization as good as we are looking for ? in this case: is\n * no scalefactor band distorted?\n */\n if (over <= 0) {\n found = 1;\n /*\n * now we know it can be done with \"real_bits\" and maybe we can\n * skip some iterations\n */\n real_bits = cod_info.part2_3_length;\n\n /*\n * store best quantization so far\n */\n bst_cod_info.assign(cod_info);\n System.arraycopy(xrpow, 0, bst_xrpow, 0, 576);\n\n /*\n * try with fewer bits\n */\n max_bits = real_bits - 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n } else {\n /*\n * try with more bits\n */\n min_bits = this_bits + 32;\n dbits = max_bits - min_bits;\n this_bits = (max_bits + min_bits) / 2;\n\n if (found != 0) {\n found = 2;\n /*\n * start again with best quantization so far\n */\n cod_info.assign(bst_cod_info);\n System.arraycopy(bst_xrpow, 0, xrpow, 0, 576);\n }\n }\n } while (dbits > 12);\n\n gfc.sfb21_extra = sfb21_extra;\n\n /*\n * found=0 => nothing found, use last one found=1 => we just found the\n * best and left the loop found=2 => we restored a good one and have now\n * l3_enc to restore too\n */\n if (found == 2) {\n System.arraycopy(bst_cod_info.l3_enc, 0, cod_info.l3_enc, 0, 576);\n }\n assert(cod_info.part2_3_length <= Max_bits);\n }\n\n /**\n * Robert Hegemann 2000-09-05\n *\n * calculates * how many bits are available for analog silent granules * how\n * many bits to use for the lowest allowed bitrate * how many bits each\n * bitrate would provide\n */\n this.get_framebits = function (gfp, frameBits) {\n var gfc = gfp.internal_flags;\n\n /*\n * always use at least this many bits per granule per channel unless we\n * detect analog silence, see below\n */\n gfc.bitrate_index = gfc.VBR_min_bitrate;\n var bitsPerFrame = bs.getframebits(gfp);\n\n /*\n * bits for analog silence\n */\n gfc.bitrate_index = 1;\n bitsPerFrame = bs.getframebits(gfp);\n\n for (var i = 1; i <= gfc.VBR_max_bitrate; i++) {\n gfc.bitrate_index = i;\n var mb = new MeanBits(bitsPerFrame);\n frameBits[i] = rv.ResvFrameBegin(gfp, mb);\n bitsPerFrame = mb.bits;\n }\n };\n\n /* RH: this one needs to be overhauled sometime */\n\n /**\n * \n * 2000-09-04 Robert Hegemann\n *\n * * converts LR to MS coding when necessary\n * * calculates allowed/adjusted quantization noise amounts\n * * detects analog silent frames\n *\n * some remarks:\n * - lower masking depending on Quality setting\n * - quality control together with adjusted ATH MDCT scaling\n * on lower quality setting allocate more noise from\n * ATH masking, and on higher quality setting allocate\n * less noise from ATH masking.\n * - experiments show that going more than 2dB over GPSYCHO's\n * limits ends up in very annoying artefacts\n *
\n */\n this.VBR_old_prepare = function (gfp, pe, ms_ener_ratio, ratio, l3_xmin, frameBits, min_bits,\n max_bits, bands) {\n var gfc = gfp.internal_flags;\n\n var masking_lower_db, adjust = 0.0;\n var analog_silence = 1;\n var bits = 0;\n\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var avg = rv.ResvFrameBegin(gfp, new MeanBits(0)) / gfc.mode_gr;\n\n get_framebits(gfp, frameBits);\n\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n var mxb = qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n qupvt.reduce_side(max_bits[gr], ms_ener_ratio[gr], avg, mxb);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n\n if (cod_info.block_type != Encoder.SHORT_TYPE) {\n // NORM, START or STOP type\n adjust = 1.28 / (1 + Math\n .exp(3.5 - pe[gr][ch] / 300.)) - 0.05;\n masking_lower_db = gfc.PSY.mask_adjust - adjust;\n } else {\n adjust = 2.56 / (1 + Math\n .exp(3.5 - pe[gr][ch] / 300.)) - 0.14;\n masking_lower_db = gfc.PSY.mask_adjust_short - adjust;\n }\n gfc.masking_lower = Math.pow(10.0,\n masking_lower_db * 0.1);\n\n init_outer_loop(gfc, cod_info);\n bands[gr][ch] = qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,\n l3_xmin[gr][ch]);\n if (bands[gr][ch] != 0)\n analog_silence = 0;\n\n min_bits[gr][ch] = 126;\n\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > frameBits[gfc.VBR_max_bitrate]) {\n max_bits[gr][ch] *= frameBits[gfc.VBR_max_bitrate];\n max_bits[gr][ch] /= bits;\n }\n if (min_bits[gr][ch] > max_bits[gr][ch])\n min_bits[gr][ch] = max_bits[gr][ch];\n\n }\n /* for ch */\n }\n /* for gr */\n\n return analog_silence;\n };\n\n this.bitpressure_strategy = function (gfc, l3_xmin, min_bits, max_bits) {\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n var gi = gfc.l3_side.tt[gr][ch];\n var pxmin = l3_xmin[gr][ch];\n var pxminPos = 0;\n for (var sfb = 0; sfb < gi.psy_lmax; sfb++)\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n / Encoder.SBMAX_l / Encoder.SBMAX_l;\n\n if (gi.block_type == Encoder.SHORT_TYPE) {\n for (var sfb = gi.sfb_smin; sfb < Encoder.SBMAX_s; sfb++) {\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n / Encoder.SBMAX_s / Encoder.SBMAX_s;\n pxmin[pxminPos++] *= 1. + .029 * sfb * sfb\n / Encoder.SBMAX_s / Encoder.SBMAX_s;\n }\n }\n max_bits[gr][ch] = 0 | Math.max(min_bits[gr][ch],\n 0.9 * max_bits[gr][ch]);\n }\n }\n };\n\n this.VBR_new_prepare = function (gfp, pe, ratio, l3_xmin, frameBits, max_bits) {\n var gfc = gfp.internal_flags;\n\n var analog_silence = 1;\n var avg = 0, bits = 0;\n var maximum_framebits;\n\n if (!gfp.free_format) {\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n\n var mb = new MeanBits(avg);\n rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n\n get_framebits(gfp, frameBits);\n maximum_framebits = frameBits[gfc.VBR_max_bitrate];\n } else {\n gfc.bitrate_index = 0;\n var mb = new MeanBits(avg);\n maximum_framebits = rv.ResvFrameBegin(gfp, mb);\n avg = mb.bits;\n frameBits[0] = maximum_framebits;\n }\n\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.on_pe(gfp, pe, max_bits[gr], avg, gr, 0);\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR) {\n ms_convert(gfc.l3_side, gr);\n }\n for (var ch = 0; ch < gfc.channels_out; ++ch) {\n var cod_info = gfc.l3_side.tt[gr][ch];\n\n gfc.masking_lower = Math.pow(10.0,\n gfc.PSY.mask_adjust * 0.1);\n\n init_outer_loop(gfc, cod_info);\n if (0 != qupvt.calc_xmin(gfp, ratio[gr][ch], cod_info,\n l3_xmin[gr][ch]))\n analog_silence = 0;\n\n bits += max_bits[gr][ch];\n }\n }\n for (var gr = 0; gr < gfc.mode_gr; gr++) {\n for (var ch = 0; ch < gfc.channels_out; ch++) {\n if (bits > maximum_framebits) {\n max_bits[gr][ch] *= maximum_framebits;\n max_bits[gr][ch] /= bits;\n }\n\n }\n /* for ch */\n }\n /* for gr */\n\n return analog_silence;\n };\n\n /**\n * calculates target bits for ABR encoding\n *\n * mt 2000/05/31\n */\n this.calc_target_bits = function (gfp, pe, ms_ener_ratio, targ_bits, analog_silence_bits, max_frame_bits) {\n var gfc = gfp.internal_flags;\n var l3_side = gfc.l3_side;\n var res_factor;\n var gr, ch, totbits, mean_bits = 0;\n\n gfc.bitrate_index = gfc.VBR_max_bitrate;\n var mb = new MeanBits(mean_bits);\n max_frame_bits[0] = rv.ResvFrameBegin(gfp, mb);\n mean_bits = mb.bits;\n\n gfc.bitrate_index = 1;\n mean_bits = bs.getframebits(gfp) - gfc.sideinfo_len * 8;\n analog_silence_bits[0] = mean_bits / (gfc.mode_gr * gfc.channels_out);\n\n mean_bits = gfp.VBR_mean_bitrate_kbps * gfp.framesize * 1000;\n if ((gfc.substep_shaping & 1) != 0)\n mean_bits *= 1.09;\n mean_bits /= gfp.out_samplerate;\n mean_bits -= gfc.sideinfo_len * 8;\n mean_bits /= (gfc.mode_gr * gfc.channels_out);\n\n /**\n * \n * res_factor is the percentage of the target bitrate that should\n * be used on average. the remaining bits are added to the\n * bitreservoir and used for difficult to encode frames.\n *\n * Since we are tracking the average bitrate, we should adjust\n * res_factor \"on the fly\", increasing it if the average bitrate\n * is greater than the requested bitrate, and decreasing it\n * otherwise. Reasonable ranges are from .9 to 1.0\n *\n * Until we get the above suggestion working, we use the following\n * tuning:\n * compression ratio res_factor\n * 5.5 (256kbps) 1.0 no need for bitreservoir\n * 11 (128kbps) .93 7% held for reservoir\n *\n * with linear interpolation for other values.\n *
\n */\n res_factor = .93 + .07 * (11.0 - gfp.compression_ratio)\n / (11.0 - 5.5);\n if (res_factor < .90)\n res_factor = .90;\n if (res_factor > 1.00)\n res_factor = 1.00;\n\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n var sum = 0;\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] = (int)(res_factor * mean_bits);\n\n if (pe[gr][ch] > 700) {\n var add_bits = (int)((pe[gr][ch] - 700) / 1.4);\n\n var cod_info = l3_side.tt[gr][ch];\n targ_bits[gr][ch] = (int)(res_factor * mean_bits);\n\n /* short blocks use a little extra, no matter what the pe */\n if (cod_info.block_type == Encoder.SHORT_TYPE) {\n if (add_bits < mean_bits / 2)\n add_bits = mean_bits / 2;\n }\n /* at most increase bits by 1.5*average */\n if (add_bits > mean_bits * 3 / 2)\n add_bits = mean_bits * 3 / 2;\n else if (add_bits < 0)\n add_bits = 0;\n\n targ_bits[gr][ch] += add_bits;\n }\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL) {\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n }\n sum += targ_bits[gr][ch];\n }\n /* for ch */\n if (sum > LameInternalFlags.MAX_BITS_PER_GRANULE) {\n for (ch = 0; ch < gfc.channels_out; ++ch) {\n targ_bits[gr][ch] *= LameInternalFlags.MAX_BITS_PER_GRANULE;\n targ_bits[gr][ch] /= sum;\n }\n }\n }\n /* for gr */\n\n if (gfc.mode_ext == Encoder.MPG_MD_MS_LR)\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n qupvt.reduce_side(targ_bits[gr], ms_ener_ratio[gr], mean_bits\n * gfc.channels_out,\n LameInternalFlags.MAX_BITS_PER_GRANULE);\n }\n\n /*\n * sum target bits\n */\n totbits = 0;\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n if (targ_bits[gr][ch] > LameInternalFlags.MAX_BITS_PER_CHANNEL)\n targ_bits[gr][ch] = LameInternalFlags.MAX_BITS_PER_CHANNEL;\n totbits += targ_bits[gr][ch];\n }\n }\n\n /*\n * repartion target bits if needed\n */\n if (totbits > max_frame_bits[0]) {\n for (gr = 0; gr < gfc.mode_gr; gr++) {\n for (ch = 0; ch < gfc.channels_out; ch++) {\n targ_bits[gr][ch] *= max_frame_bits[0];\n targ_bits[gr][ch] /= totbits;\n }\n }\n }\n }\n\n}\n\nmodule.exports = Quantize;\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var common = require('./common.js');\nvar System = common.System;\nvar VbrMode = common.VbrMode;\nvar Float = common.Float;\nvar ShortBlock = common.ShortBlock;\nvar Util = common.Util;\nvar Arrays = common.Arrays;\nvar new_array_n = common.new_array_n;\nvar new_byte = common.new_byte;\nvar new_double = common.new_double;\nvar new_float = common.new_float;\nvar new_float_n = common.new_float_n;\nvar new_int = common.new_int;\nvar new_int_n = common.new_int_n;\nvar new_short_n = common.new_short_n;\nvar assert = common.assert;\n\nvar PsyModel = require('./PsyModel.js');\nvar LameGlobalFlags = require('./LameGlobalFlags.js');\nvar LameInternalFlags = require('./LameInternalFlags.js');\nvar ATH = require('./ATH.js');\nvar ReplayGain = require('./ReplayGain.js');\nvar CBRNewIterationLoop = require('./CBRNewIterationLoop.js');\nvar BitStream = require('./BitStream.js');\nvar Tables = require('./Tables.js');\nvar Encoder = require('./Encoder.js');\n\nfunction Lame() {\n var self = this;\n var LAME_MAXALBUMART = (128 * 1024);\n\n Lame.V9 = 410;\n Lame.V8 = 420;\n Lame.V7 = 430;\n Lame.V6 = 440;\n Lame.V5 = 450;\n Lame.V4 = 460;\n Lame.V3 = 470;\n Lame.V2 = 480;\n Lame.V1 = 490;\n Lame.V0 = 500;\n\n /* still there for compatibility */\n\n Lame.R3MIX = 1000;\n Lame.STANDARD = 1001;\n Lame.EXTREME = 1002;\n Lame.INSANE = 1003;\n Lame.STANDARD_FAST = 1004;\n Lame.EXTREME_FAST = 1005;\n Lame.MEDIUM = 1006;\n Lame.MEDIUM_FAST = 1007;\n\n /**\n * maximum size of mp3buffer needed if you encode at most 1152 samples for\n * each call to lame_encode_buffer. see lame_encode_buffer() below\n * (LAME_MAXMP3BUFFER is now obsolete)\n */\n var LAME_MAXMP3BUFFER = (16384 + LAME_MAXALBUMART);\n Lame.LAME_MAXMP3BUFFER = LAME_MAXMP3BUFFER;\n\n var ga;\n var bs;\n var p;\n var qupvt;\n var qu;\n var psy = new PsyModel();\n var vbr;\n var ver;\n var id3;\n var mpglib;\n this.enc = new Encoder();\n\n this.setModules = function (_ga, _bs, _p, _qupvt, _qu, _vbr, _ver, _id3, _mpglib) {\n ga = _ga;\n bs = _bs;\n p = _p;\n qupvt = _qupvt;\n qu = _qu;\n vbr = _vbr;\n ver = _ver;\n id3 = _id3;\n mpglib = _mpglib;\n this.enc.setModules(bs, psy, qupvt, vbr);\n }\n\n /**\n * PSY Model related stuff\n */\n function PSY() {\n /**\n * The dbQ stuff.\n */\n this.mask_adjust = 0.;\n /**\n * The dbQ stuff.\n */\n this.mask_adjust_short = 0.;\n /* at transition from one scalefactor band to next */\n /**\n * Band weight long scalefactor bands.\n */\n this.bo_l_weight = new_float(Encoder.SBMAX_l);\n /**\n * Band weight short scalefactor bands.\n */\n this.bo_s_weight = new_float(Encoder.SBMAX_s);\n }\n\n function LowPassHighPass() {\n this.lowerlimit = 0.;\n }\n\n function BandPass(bitrate, lPass) {\n this.lowpass = lPass;\n }\n\n var LAME_ID = 0xFFF88E3B;\n\n function lame_init_old(gfp) {\n var gfc;\n\n gfp.class_id = LAME_ID;\n\n gfc = gfp.internal_flags = new LameInternalFlags();\n\n /* Global flags. set defaults here for non-zero values */\n /* see lame.h for description */\n /*\n * set integer values to -1 to mean that LAME will compute the best\n * value, UNLESS the calling program as set it (and the value is no\n * longer -1)\n */\n\n gfp.mode = MPEGMode.NOT_SET;\n gfp.original = 1;\n gfp.in_samplerate = 44100;\n gfp.num_channels = 2;\n gfp.num_samples = -1;\n\n gfp.bWriteVbrTag = true;\n gfp.quality = -1;\n gfp.short_blocks = null;\n gfc.subblock_gain = -1;\n\n gfp.lowpassfreq = 0;\n gfp.highpassfreq = 0;\n gfp.lowpasswidth = -1;\n gfp.highpasswidth = -1;\n\n gfp.VBR = VbrMode.vbr_off;\n gfp.VBR_q = 4;\n gfp.ATHcurve = -1;\n gfp.VBR_mean_bitrate_kbps = 128;\n gfp.VBR_min_bitrate_kbps = 0;\n gfp.VBR_max_bitrate_kbps = 0;\n gfp.VBR_hard_min = 0;\n gfc.VBR_min_bitrate = 1;\n /* not 0 ????? */\n gfc.VBR_max_bitrate = 13;\n /* not 14 ????? */\n\n gfp.quant_comp = -1;\n gfp.quant_comp_short = -1;\n\n gfp.msfix = -1;\n\n gfc.resample_ratio = 1;\n\n gfc.OldValue[0] = 180;\n gfc.OldValue[1] = 180;\n gfc.CurrentStep[0] = 4;\n gfc.CurrentStep[1] = 4;\n gfc.masking_lower = 1;\n gfc.nsPsy.attackthre = -1;\n gfc.nsPsy.attackthre_s = -1;\n\n gfp.scale = -1;\n\n gfp.athaa_type = -1;\n gfp.ATHtype = -1;\n /* default = -1 = set in lame_init_params */\n gfp.athaa_loudapprox = -1;\n /* 1 = flat loudness approx. (total energy) */\n /* 2 = equal loudness curve */\n gfp.athaa_sensitivity = 0.0;\n /* no offset */\n gfp.useTemporal = null;\n gfp.interChRatio = -1;\n\n /*\n * The reason for int mf_samples_to_encode = ENCDELAY + POSTDELAY;\n * ENCDELAY = internal encoder delay. And then we have to add\n * POSTDELAY=288 because of the 50% MDCT overlap. A 576 MDCT granule\n * decodes to 1152 samples. To synthesize the 576 samples centered under\n * this granule we need the previous granule for the first 288 samples\n * (no problem), and the next granule for the next 288 samples (not\n * possible if this is last granule). So we need to pad with 288 samples\n * to make sure we can encode the 576 samples we are interested in.\n */\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n gfp.encoder_padding = 0;\n gfc.mf_size = Encoder.ENCDELAY - Encoder.MDCTDELAY;\n /*\n * we pad input with this many 0's\n */\n\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n\n gfc.decode_on_the_fly = false;\n gfc.findReplayGain = false;\n gfc.findPeakSample = false;\n\n gfc.RadioGain = 0;\n gfc.AudiophileGain = 0;\n gfc.noclipGainChange = 0;\n gfc.noclipScale = -1.0;\n\n gfp.preset = 0;\n\n gfp.write_id3tag_automatic = true;\n return 0;\n }\n\n this.lame_init = function () {\n var gfp = new LameGlobalFlags();\n\n var ret = lame_init_old(gfp);\n if (ret != 0) {\n return null;\n }\n\n gfp.lame_allocated_gfp = 1;\n return gfp;\n }\n\n function filter_coef(x) {\n if (x > 1.0)\n return 0.0;\n if (x <= 0.0)\n return 1.0;\n\n return Math.cos(Math.PI / 2 * x);\n }\n\n this.nearestBitrateFullIndex = function (bitrate) {\n /* borrowed from DM abr presets */\n\n var full_bitrate_table = [8, 16, 24, 32, 40, 48, 56, 64, 80,\n 96, 112, 128, 160, 192, 224, 256, 320];\n\n var lower_range = 0, lower_range_kbps = 0, upper_range = 0, upper_range_kbps = 0;\n\n /* We assume specified bitrate will be 320kbps */\n upper_range_kbps = full_bitrate_table[16];\n upper_range = 16;\n lower_range_kbps = full_bitrate_table[16];\n lower_range = 16;\n\n /*\n * Determine which significant bitrates the value specified falls\n * between, if loop ends without breaking then we were correct above\n * that the value was 320\n */\n for (var b = 0; b < 16; b++) {\n if ((Math.max(bitrate, full_bitrate_table[b + 1])) != bitrate) {\n upper_range_kbps = full_bitrate_table[b + 1];\n upper_range = b + 1;\n lower_range_kbps = full_bitrate_table[b];\n lower_range = (b);\n break;\n /* We found upper range */\n }\n }\n\n /* Determine which range the value specified is closer to */\n if ((upper_range_kbps - bitrate) > (bitrate - lower_range_kbps)) {\n return lower_range;\n }\n return upper_range;\n }\n\n function optimum_samplefreq(lowpassfreq, input_samplefreq) {\n /*\n * Rules:\n *\n * - if possible, sfb21 should NOT be used\n */\n var suggested_samplefreq = 44100;\n\n if (input_samplefreq >= 48000)\n suggested_samplefreq = 48000;\n else if (input_samplefreq >= 44100)\n suggested_samplefreq = 44100;\n else if (input_samplefreq >= 32000)\n suggested_samplefreq = 32000;\n else if (input_samplefreq >= 24000)\n suggested_samplefreq = 24000;\n else if (input_samplefreq >= 22050)\n suggested_samplefreq = 22050;\n else if (input_samplefreq >= 16000)\n suggested_samplefreq = 16000;\n else if (input_samplefreq >= 12000)\n suggested_samplefreq = 12000;\n else if (input_samplefreq >= 11025)\n suggested_samplefreq = 11025;\n else if (input_samplefreq >= 8000)\n suggested_samplefreq = 8000;\n\n if (lowpassfreq == -1)\n return suggested_samplefreq;\n\n if (lowpassfreq <= 15960)\n suggested_samplefreq = 44100;\n if (lowpassfreq <= 15250)\n suggested_samplefreq = 32000;\n if (lowpassfreq <= 11220)\n suggested_samplefreq = 24000;\n if (lowpassfreq <= 9970)\n suggested_samplefreq = 22050;\n if (lowpassfreq <= 7230)\n suggested_samplefreq = 16000;\n if (lowpassfreq <= 5420)\n suggested_samplefreq = 12000;\n if (lowpassfreq <= 4510)\n suggested_samplefreq = 11025;\n if (lowpassfreq <= 3970)\n suggested_samplefreq = 8000;\n\n if (input_samplefreq < suggested_samplefreq) {\n /*\n * choose a valid MPEG sample frequency above the input sample\n * frequency to avoid SFB21/12 bitrate bloat rh 061115\n */\n if (input_samplefreq > 44100) {\n return 48000;\n }\n if (input_samplefreq > 32000) {\n return 44100;\n }\n if (input_samplefreq > 24000) {\n return 32000;\n }\n if (input_samplefreq > 22050) {\n return 24000;\n }\n if (input_samplefreq > 16000) {\n return 22050;\n }\n if (input_samplefreq > 12000) {\n return 16000;\n }\n if (input_samplefreq > 11025) {\n return 12000;\n }\n if (input_samplefreq > 8000) {\n return 11025;\n }\n return 8000;\n }\n return suggested_samplefreq;\n }\n\n /**\n * convert samp freq in Hz to index\n */\n function SmpFrqIndex(sample_freq, gpf) {\n switch (sample_freq) {\n case 44100:\n gpf.version = 1;\n return 0;\n case 48000:\n gpf.version = 1;\n return 1;\n case 32000:\n gpf.version = 1;\n return 2;\n case 22050:\n gpf.version = 0;\n return 0;\n case 24000:\n gpf.version = 0;\n return 1;\n case 16000:\n gpf.version = 0;\n return 2;\n case 11025:\n gpf.version = 0;\n return 0;\n case 12000:\n gpf.version = 0;\n return 1;\n case 8000:\n gpf.version = 0;\n return 2;\n default:\n gpf.version = 0;\n return -1;\n }\n }\n\n /**\n * @param bRate\n * legal rates from 8 to 320\n */\n function FindNearestBitrate(bRate, version, samplerate) {\n /* MPEG-1 or MPEG-2 LSF */\n if (samplerate < 16000)\n version = 2;\n\n var bitrate = Tables.bitrate_table[version][1];\n\n for (var i = 2; i <= 14; i++) {\n if (Tables.bitrate_table[version][i] > 0) {\n if (Math.abs(Tables.bitrate_table[version][i] - bRate) < Math\n .abs(bitrate - bRate))\n bitrate = Tables.bitrate_table[version][i];\n }\n }\n return bitrate;\n }\n\n /**\n * @param bRate\n * legal rates from 32 to 448 kbps\n * @param version\n * MPEG-1 or MPEG-2/2.5 LSF\n */\n function BitrateIndex(bRate, version, samplerate) {\n /* convert bitrate in kbps to index */\n if (samplerate < 16000)\n version = 2;\n for (var i = 0; i <= 14; i++) {\n if (Tables.bitrate_table[version][i] > 0) {\n if (Tables.bitrate_table[version][i] == bRate) {\n return i;\n }\n }\n }\n return -1;\n }\n\n function optimum_bandwidth(lh, bitrate) {\n /**\n * \n * Input:\n * bitrate total bitrate in kbps\n *\n * Output:\n * lowerlimit: best lowpass frequency limit for input filter in Hz\n * upperlimit: best highpass frequency limit for input filter in Hz\n *
\n */\n var freq_map = [new BandPass(8, 2000),\n new BandPass(16, 3700), new BandPass(24, 3900),\n new BandPass(32, 5500), new BandPass(40, 7000),\n new BandPass(48, 7500), new BandPass(56, 10000),\n new BandPass(64, 11000), new BandPass(80, 13500),\n new BandPass(96, 15100), new BandPass(112, 15600),\n new BandPass(128, 17000), new BandPass(160, 17500),\n new BandPass(192, 18600), new BandPass(224, 19400),\n new BandPass(256, 19700), new BandPass(320, 20500)];\n\n var table_index = self.nearestBitrateFullIndex(bitrate);\n lh.lowerlimit = freq_map[table_index].lowpass;\n }\n\n function lame_init_params_ppflt(gfp) {\n var gfc = gfp.internal_flags;\n /***************************************************************/\n /* compute info needed for polyphase filter (filter type==0, default) */\n /***************************************************************/\n\n var lowpass_band = 32;\n var highpass_band = -1;\n\n if (gfc.lowpass1 > 0) {\n var minband = 999;\n for (var band = 0; band <= 31; band++) {\n var freq = (band / 31.0);\n /* this band and above will be zeroed: */\n if (freq >= gfc.lowpass2) {\n lowpass_band = Math.min(lowpass_band, band);\n }\n if (gfc.lowpass1 < freq && freq < gfc.lowpass2) {\n minband = Math.min(minband, band);\n }\n }\n\n /*\n * compute the *actual* transition band implemented by the polyphase\n * filter\n */\n if (minband == 999) {\n gfc.lowpass1 = (lowpass_band - .75) / 31.0;\n } else {\n gfc.lowpass1 = (minband - .75) / 31.0;\n }\n gfc.lowpass2 = lowpass_band / 31.0;\n }\n\n /*\n * make sure highpass filter is within 90% of what the effective\n * highpass frequency will be\n */\n if (gfc.highpass2 > 0) {\n if (gfc.highpass2 < .9 * (.75 / 31.0)) {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n System.err.println(\"Warning: highpass filter disabled. \"\n + \"highpass frequency too small\\n\");\n }\n }\n\n if (gfc.highpass2 > 0) {\n var maxband = -1;\n for (var band = 0; band <= 31; band++) {\n var freq = band / 31.0;\n /* this band and below will be zereod */\n if (freq <= gfc.highpass1) {\n highpass_band = Math.max(highpass_band, band);\n }\n if (gfc.highpass1 < freq && freq < gfc.highpass2) {\n maxband = Math.max(maxband, band);\n }\n }\n /*\n * compute the *actual* transition band implemented by the polyphase\n * filter\n */\n gfc.highpass1 = highpass_band / 31.0;\n if (maxband == -1) {\n gfc.highpass2 = (highpass_band + .75) / 31.0;\n } else {\n gfc.highpass2 = (maxband + .75) / 31.0;\n }\n }\n\n for (var band = 0; band < 32; band++) {\n var fc1, fc2;\n var freq = band / 31.0;\n if (gfc.highpass2 > gfc.highpass1) {\n fc1 = filter_coef((gfc.highpass2 - freq)\n / (gfc.highpass2 - gfc.highpass1 + 1e-20));\n } else {\n fc1 = 1.0;\n }\n if (gfc.lowpass2 > gfc.lowpass1) {\n fc2 = filter_coef((freq - gfc.lowpass1)\n / (gfc.lowpass2 - gfc.lowpass1 + 1e-20));\n } else {\n fc2 = 1.0;\n }\n gfc.amp_filter[band] = (fc1 * fc2);\n }\n }\n\n function lame_init_qval(gfp) {\n var gfc = gfp.internal_flags;\n\n switch (gfp.quality) {\n default:\n case 9: /* no psymodel, no noise shaping */\n gfc.psymodel = 0;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n\n case 8:\n gfp.quality = 7;\n //$FALL-THROUGH$\n case 7:\n /*\n * use psymodel (for short block and m/s switching), but no noise\n * shapping\n */\n gfc.psymodel = 1;\n gfc.noise_shaping = 0;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n\n case 6:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n\n case 5:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 0;\n gfc.full_outer_loop = 0;\n break;\n\n case 4:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 0;\n gfc.noise_shaping_stop = 0;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n\n case 3:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n\n case 2:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 1;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n /* inner loop */\n gfc.full_outer_loop = 0;\n break;\n\n case 1:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n gfc.full_outer_loop = 0;\n break;\n\n case 0:\n gfc.psymodel = 1;\n if (gfc.noise_shaping == 0)\n gfc.noise_shaping = 1;\n if (gfc.substep_shaping == 0)\n gfc.substep_shaping = 2;\n gfc.noise_shaping_amp = 2;\n gfc.noise_shaping_stop = 1;\n if (gfc.subblock_gain == -1)\n gfc.subblock_gain = 1;\n gfc.use_best_huffman = 1;\n /*\n * type 2 disabled because of it slowness, in favor of full outer\n * loop search\n */\n gfc.full_outer_loop = 0;\n /*\n * full outer loop search disabled because of audible distortions it\n * may generate rh 060629\n */\n break;\n }\n\n }\n\n function lame_init_bitstream(gfp) {\n var gfc = gfp.internal_flags;\n gfp.frameNum = 0;\n\n if (gfp.write_id3tag_automatic) {\n id3.id3tag_write_v2(gfp);\n }\n /* initialize histogram data optionally used by frontend */\n\n gfc.bitrate_stereoMode_Hist = new_int_n([16, 4 + 1]);\n gfc.bitrate_blockType_Hist = new_int_n([16, 4 + 1 + 1]);\n\n gfc.PeakSample = 0.0;\n\n /* Write initial VBR Header to bitstream and init VBR data */\n if (gfp.bWriteVbrTag)\n vbr.InitVbrTag(gfp);\n }\n\n /********************************************************************\n * initialize internal params based on data in gf (globalflags struct filled\n * in by calling program)\n *\n * OUTLINE:\n *\n * We first have some complex code to determine bitrate, output samplerate\n * and mode. It is complicated by the fact that we allow the user to set\n * some or all of these parameters, and need to determine best possible\n * values for the rest of them:\n *\n * 1. set some CPU related flags 2. check if we are mono.mono, stereo.mono\n * or stereo.stereo 3. compute bitrate and output samplerate: user may have\n * set compression ratio user may have set a bitrate user may have set a\n * output samplerate 4. set some options which depend on output samplerate\n * 5. compute the actual compression ratio 6. set mode based on compression\n * ratio\n *\n * The remaining code is much simpler - it just sets options based on the\n * mode & compression ratio:\n *\n * set allow_diff_short based on mode select lowpass filter based on\n * compression ratio & mode set the bitrate index, and min/max bitrates for\n * VBR modes disable VBR tag if it is not appropriate initialize the\n * bitstream initialize scalefac_band data set sideinfo_len (based on\n * channels, CRC, out_samplerate) write an id3v2 tag into the bitstream\n * write VBR tag into the bitstream set mpeg1/2 flag estimate the number of\n * frames (based on a lot of data)\n *\n * now we set more flags: nspsytune: see code VBR modes see code CBR/ABR see\n * code\n *\n * Finally, we set the algorithm flags based on the gfp.quality value\n * lame_init_qval(gfp);\n *\n ********************************************************************/\n this.lame_init_params = function (gfp) {\n var gfc = gfp.internal_flags;\n\n gfc.Class_ID = 0;\n if (gfc.ATH == null)\n gfc.ATH = new ATH();\n if (gfc.PSY == null)\n gfc.PSY = new PSY();\n if (gfc.rgdata == null)\n gfc.rgdata = new ReplayGain();\n\n gfc.channels_in = gfp.num_channels;\n if (gfc.channels_in == 1)\n gfp.mode = MPEGMode.MONO;\n gfc.channels_out = (gfp.mode == MPEGMode.MONO) ? 1 : 2;\n gfc.mode_ext = Encoder.MPG_MD_MS_LR;\n if (gfp.mode == MPEGMode.MONO)\n gfp.force_ms = false;\n /*\n * don't allow forced mid/side stereo for mono output\n */\n\n if (gfp.VBR == VbrMode.vbr_off && gfp.VBR_mean_bitrate_kbps != 128\n && gfp.brate == 0)\n gfp.brate = gfp.VBR_mean_bitrate_kbps;\n\n if (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_mtrh\n || gfp.VBR == VbrMode.vbr_mt) {\n /* these modes can handle free format condition */\n } else {\n gfp.free_format = false;\n /* mode can't be mixed with free format */\n }\n\n if (gfp.VBR == VbrMode.vbr_off && gfp.brate == 0) {\n /* no bitrate or compression ratio specified, use 11.025 */\n if (BitStream.EQ(gfp.compression_ratio, 0))\n gfp.compression_ratio = 11.025;\n /*\n * rate to compress a CD down to exactly 128000 bps\n */\n }\n\n /* find bitrate if user specify a compression ratio */\n if (gfp.VBR == VbrMode.vbr_off && gfp.compression_ratio > 0) {\n\n if (gfp.out_samplerate == 0)\n gfp.out_samplerate = map2MP3Frequency((int)(0.97 * gfp.in_samplerate));\n /*\n * round up with a margin of 3 %\n */\n\n /*\n * choose a bitrate for the output samplerate which achieves\n * specified compression ratio\n */\n gfp.brate = 0 | (gfp.out_samplerate * 16 * gfc.channels_out / (1.e3 * gfp.compression_ratio));\n\n /* we need the version for the bitrate table look up */\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n\n if (!gfp.free_format) /*\n * for non Free Format find the nearest allowed\n * bitrate\n */\n gfp.brate = FindNearestBitrate(gfp.brate, gfp.version,\n gfp.out_samplerate);\n }\n\n if (gfp.out_samplerate != 0) {\n if (gfp.out_samplerate < 16000) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,\n 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,\n 64);\n } else if (gfp.out_samplerate < 32000) {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,\n 8);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,\n 160);\n } else {\n gfp.VBR_mean_bitrate_kbps = Math.max(gfp.VBR_mean_bitrate_kbps,\n 32);\n gfp.VBR_mean_bitrate_kbps = Math.min(gfp.VBR_mean_bitrate_kbps,\n 320);\n }\n }\n\n /****************************************************************/\n /* if a filter has not been enabled, see if we should add one: */\n /****************************************************************/\n if (gfp.lowpassfreq == 0) {\n var lowpass = 16000.;\n\n switch (gfp.VBR) {\n case VbrMode.vbr_off:\n {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.brate);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode.vbr_abr:\n {\n var lh = new LowPassHighPass();\n optimum_bandwidth(lh, gfp.VBR_mean_bitrate_kbps);\n lowpass = lh.lowerlimit;\n break;\n }\n case VbrMode.vbr_rh:\n {\n var x = [19500, 19000, 18600, 18000, 17500, 16000,\n 15600, 14900, 12500, 10000, 3950];\n if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n break;\n }\n default:\n {\n var x = [19500, 19000, 18500, 18000, 17500, 16500,\n 15500, 14500, 12500, 9500, 3950];\n if (0 <= gfp.VBR_q && gfp.VBR_q <= 9) {\n var a = x[gfp.VBR_q], b = x[gfp.VBR_q + 1], m = gfp.VBR_q_frac;\n lowpass = linear_int(a, b, m);\n } else {\n lowpass = 19500;\n }\n }\n }\n if (gfp.mode == MPEGMode.MONO\n && (gfp.VBR == VbrMode.vbr_off || gfp.VBR == VbrMode.vbr_abr))\n lowpass *= 1.5;\n\n gfp.lowpassfreq = lowpass | 0;\n }\n\n if (gfp.out_samplerate == 0) {\n if (2 * gfp.lowpassfreq > gfp.in_samplerate) {\n gfp.lowpassfreq = gfp.in_samplerate / 2;\n }\n gfp.out_samplerate = optimum_samplefreq(gfp.lowpassfreq | 0,\n gfp.in_samplerate);\n }\n\n gfp.lowpassfreq = Math.min(20500, gfp.lowpassfreq);\n gfp.lowpassfreq = Math.min(gfp.out_samplerate / 2, gfp.lowpassfreq);\n\n if (gfp.VBR == VbrMode.vbr_off) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n / (1.e3 * gfp.brate);\n }\n if (gfp.VBR == VbrMode.vbr_abr) {\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n / (1.e3 * gfp.VBR_mean_bitrate_kbps);\n }\n\n /*\n * do not compute ReplayGain values and do not find the peak sample if\n * we can't store them\n */\n if (!gfp.bWriteVbrTag) {\n gfp.findReplayGain = false;\n gfp.decode_on_the_fly = false;\n gfc.findPeakSample = false;\n }\n gfc.findReplayGain = gfp.findReplayGain;\n gfc.decode_on_the_fly = gfp.decode_on_the_fly;\n\n if (gfc.decode_on_the_fly)\n gfc.findPeakSample = true;\n\n if (gfc.findReplayGain) {\n if (ga.InitGainAnalysis(gfc.rgdata, gfp.out_samplerate) == GainAnalysis.INIT_GAIN_ANALYSIS_ERROR) {\n gfp.internal_flags = null;\n return -6;\n }\n }\n\n if (gfc.decode_on_the_fly && !gfp.decode_only) {\n if (gfc.hip != null) {\n mpglib.hip_decode_exit(gfc.hip);\n }\n gfc.hip = mpglib.hip_decode_init();\n }\n\n gfc.mode_gr = gfp.out_samplerate <= 24000 ? 1 : 2;\n /*\n * Number of granules per frame\n */\n gfp.framesize = 576 * gfc.mode_gr;\n gfp.encoder_delay = Encoder.ENCDELAY;\n\n gfc.resample_ratio = gfp.in_samplerate / gfp.out_samplerate;\n\n /**\n * \n * sample freq bitrate compression ratio\n * [kHz] [kbps/channel] for 16 bit input\n * 44.1 56 12.6\n * 44.1 64 11.025\n * 44.1 80 8.82\n * 22.05 24 14.7\n * 22.05 32 11.025\n * 22.05 40 8.82\n * 16 16 16.0\n * 16 24 10.667\n *
\n */\n /**\n * \n * For VBR, take a guess at the compression_ratio.\n * For example:\n *\n * VBR_q compression like\n * - 4.4 320 kbps/44 kHz\n * 0...1 5.5 256 kbps/44 kHz\n * 2 7.3 192 kbps/44 kHz\n * 4 8.8 160 kbps/44 kHz\n * 6 11 128 kbps/44 kHz\n * 9 14.7 96 kbps\n *\n * for lower bitrates, downsample with --resample\n *
\n */\n switch (gfp.VBR) {\n case VbrMode.vbr_mt:\n case VbrMode.vbr_rh:\n case VbrMode.vbr_mtrh:\n {\n /* numbers are a bit strange, but they determine the lowpass value */\n var cmp = [5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14,\n 15, 16.5];\n gfp.compression_ratio = cmp[gfp.VBR_q];\n }\n break;\n case VbrMode.vbr_abr:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n / (1.e3 * gfp.VBR_mean_bitrate_kbps);\n break;\n default:\n gfp.compression_ratio = gfp.out_samplerate * 16 * gfc.channels_out\n / (1.e3 * gfp.brate);\n break;\n }\n\n /*\n * mode = -1 (not set by user) or mode = MONO (because of only 1 input\n * channel). If mode has not been set, then select J-STEREO\n */\n if (gfp.mode == MPEGMode.NOT_SET) {\n gfp.mode = MPEGMode.JOINT_STEREO;\n }\n\n /* apply user driven high pass filter */\n if (gfp.highpassfreq > 0) {\n gfc.highpass1 = 2. * gfp.highpassfreq;\n\n if (gfp.highpasswidth >= 0)\n gfc.highpass2 = 2. * (gfp.highpassfreq + gfp.highpasswidth);\n else\n /* 0% above on default */\n gfc.highpass2 = (1 + 0.00) * 2. * gfp.highpassfreq;\n\n gfc.highpass1 /= gfp.out_samplerate;\n gfc.highpass2 /= gfp.out_samplerate;\n } else {\n gfc.highpass1 = 0;\n gfc.highpass2 = 0;\n }\n /* apply user driven low pass filter */\n if (gfp.lowpassfreq > 0) {\n gfc.lowpass2 = 2. * gfp.lowpassfreq;\n if (gfp.lowpasswidth >= 0) {\n gfc.lowpass1 = 2. * (gfp.lowpassfreq - gfp.lowpasswidth);\n if (gfc.lowpass1 < 0) /* has to be >= 0 */\n gfc.lowpass1 = 0;\n } else { /* 0% below on default */\n gfc.lowpass1 = (1 - 0.00) * 2. * gfp.lowpassfreq;\n }\n gfc.lowpass1 /= gfp.out_samplerate;\n gfc.lowpass2 /= gfp.out_samplerate;\n } else {\n gfc.lowpass1 = 0;\n gfc.lowpass2 = 0;\n }\n\n /**********************************************************************/\n /* compute info needed for polyphase filter (filter type==0, default) */\n /**********************************************************************/\n lame_init_params_ppflt(gfp);\n /*******************************************************\n * samplerate and bitrate index\n *******************************************************/\n gfc.samplerate_index = SmpFrqIndex(gfp.out_samplerate, gfp);\n if (gfc.samplerate_index < 0) {\n gfp.internal_flags = null;\n return -1;\n }\n\n if (gfp.VBR == VbrMode.vbr_off) {\n if (gfp.free_format) {\n gfc.bitrate_index = 0;\n } else {\n gfp.brate = FindNearestBitrate(gfp.brate, gfp.version,\n gfp.out_samplerate);\n gfc.bitrate_index = BitrateIndex(gfp.brate, gfp.version,\n gfp.out_samplerate);\n if (gfc.bitrate_index <= 0) {\n gfp.internal_flags = null;\n return -1;\n }\n }\n } else {\n gfc.bitrate_index = 1;\n }\n\n /* for CBR, we will write an \"info\" tag. */\n\n if (gfp.analysis)\n gfp.bWriteVbrTag = false;\n\n /* some file options not allowed if output is: not specified or stdout */\n if (gfc.pinfo != null)\n gfp.bWriteVbrTag = false;\n /* disable Xing VBR tag */\n\n bs.init_bit_stream_w(gfc);\n\n var j = gfc.samplerate_index + (3 * gfp.version) + 6\n * (gfp.out_samplerate < 16000 ? 1 : 0);\n for (var i = 0; i < Encoder.SBMAX_l + 1; i++)\n gfc.scalefac_band.l[i] = qupvt.sfBandIndex[j].l[i];\n\n for (var i = 0; i < Encoder.PSFB21 + 1; i++) {\n var size = (gfc.scalefac_band.l[22] - gfc.scalefac_band.l[21])\n / Encoder.PSFB21;\n var start = gfc.scalefac_band.l[21] + i * size;\n gfc.scalefac_band.psfb21[i] = start;\n }\n gfc.scalefac_band.psfb21[Encoder.PSFB21] = 576;\n\n for (var i = 0; i < Encoder.SBMAX_s + 1; i++)\n gfc.scalefac_band.s[i] = qupvt.sfBandIndex[j].s[i];\n\n for (var i = 0; i < Encoder.PSFB12 + 1; i++) {\n var size = (gfc.scalefac_band.s[13] - gfc.scalefac_band.s[12])\n / Encoder.PSFB12;\n var start = gfc.scalefac_band.s[12] + i * size;\n gfc.scalefac_band.psfb12[i] = start;\n }\n gfc.scalefac_band.psfb12[Encoder.PSFB12] = 192;\n /* determine the mean bitrate for main data */\n if (gfp.version == 1) /* MPEG 1 */\n gfc.sideinfo_len = (gfc.channels_out == 1) ? 4 + 17 : 4 + 32;\n else\n /* MPEG 2 */\n gfc.sideinfo_len = (gfc.channels_out == 1) ? 4 + 9 : 4 + 17;\n\n if (gfp.error_protection)\n gfc.sideinfo_len += 2;\n\n lame_init_bitstream(gfp);\n\n gfc.Class_ID = LAME_ID;\n\n {\n var k;\n\n for (k = 0; k < 19; k++)\n gfc.nsPsy.pefirbuf[k] = 700 * gfc.mode_gr * gfc.channels_out;\n\n if (gfp.ATHtype == -1)\n gfp.ATHtype = 4;\n }\n assert(gfp.VBR_q <= 9);\n assert(gfp.VBR_q >= 0);\n\n switch (gfp.VBR) {\n\n case VbrMode.vbr_mt:\n gfp.VBR = VbrMode.vbr_mtrh;\n //$FALL-THROUGH$\n case VbrMode.vbr_mtrh:\n {\n if (gfp.useTemporal == null) {\n gfp.useTemporal = false;\n /* off by default for this VBR mode */\n }\n\n p.apply_preset(gfp, 500 - (gfp.VBR_q * 10), 0);\n /**\n * \n * The newer VBR code supports only a limited\n * subset of quality levels:\n * 9-5=5 are the same, uses x^3/4 quantization\n * 4-0=0 are the same 5 plus best huffman divide code\n *
\n */\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n if (gfp.quality < 5)\n gfp.quality = 0;\n if (gfp.quality > 5)\n gfp.quality = 5;\n\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n\n /*\n * sfb21 extra only with MPEG-1 at higher sampling rates\n */\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = (gfp.out_samplerate > 44000);\n\n gfc.iteration_loop = new VBRNewIterationLoop(qu);\n break;\n\n }\n case VbrMode.vbr_rh:\n {\n\n p.apply_preset(gfp, 500 - (gfp.VBR_q * 10), 0);\n\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n\n /*\n * sfb21 extra only with MPEG-1 at higher sampling rates\n */\n if (gfp.experimentalY)\n gfc.sfb21_extra = false;\n else\n gfc.sfb21_extra = (gfp.out_samplerate > 44000);\n\n /*\n * VBR needs at least the output of GPSYCHO, so we have to garantee\n * that by setting a minimum quality level, actually level 6 does\n * it. down to level 6\n */\n if (gfp.quality > 6)\n gfp.quality = 6;\n\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n\n gfc.iteration_loop = new VBROldIterationLoop(qu);\n break;\n }\n\n default: /* cbr/abr */\n {\n var vbrmode;\n\n /*\n * no sfb21 extra with CBR code\n */\n gfc.sfb21_extra = false;\n\n if (gfp.quality < 0)\n gfp.quality = LAME_DEFAULT_QUALITY;\n\n vbrmode = gfp.VBR;\n if (vbrmode == VbrMode.vbr_off)\n gfp.VBR_mean_bitrate_kbps = gfp.brate;\n /* second, set parameters depending on bitrate */\n p.apply_preset(gfp, gfp.VBR_mean_bitrate_kbps, 0);\n gfp.VBR = vbrmode;\n\n gfc.PSY.mask_adjust = gfp.maskingadjust;\n gfc.PSY.mask_adjust_short = gfp.maskingadjust_short;\n\n if (vbrmode == VbrMode.vbr_off) {\n gfc.iteration_loop = new CBRNewIterationLoop(qu);\n } else {\n gfc.iteration_loop = new ABRIterationLoop(qu);\n }\n break;\n }\n }\n assert(gfp.scale >= 0);\n /* initialize default values common for all modes */\n\n if (gfp.VBR != VbrMode.vbr_off) { /* choose a min/max bitrate for VBR */\n /* if the user didn't specify VBR_max_bitrate: */\n gfc.VBR_min_bitrate = 1;\n /*\n * default: allow 8 kbps (MPEG-2) or 32 kbps (MPEG-1)\n */\n gfc.VBR_max_bitrate = 14;\n /*\n * default: allow 160 kbps (MPEG-2) or 320 kbps (MPEG-1)\n */\n if (gfp.out_samplerate < 16000)\n gfc.VBR_max_bitrate = 8;\n /* default: allow 64 kbps (MPEG-2.5) */\n if (gfp.VBR_min_bitrate_kbps != 0) {\n gfp.VBR_min_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_min_bitrate_kbps, gfp.version,\n gfp.out_samplerate);\n gfc.VBR_min_bitrate = BitrateIndex(gfp.VBR_min_bitrate_kbps,\n gfp.version, gfp.out_samplerate);\n if (gfc.VBR_min_bitrate < 0)\n return -1;\n }\n if (gfp.VBR_max_bitrate_kbps != 0) {\n gfp.VBR_max_bitrate_kbps = FindNearestBitrate(\n gfp.VBR_max_bitrate_kbps, gfp.version,\n gfp.out_samplerate);\n gfc.VBR_max_bitrate = BitrateIndex(gfp.VBR_max_bitrate_kbps,\n gfp.version, gfp.out_samplerate);\n if (gfc.VBR_max_bitrate < 0)\n return -1;\n }\n gfp.VBR_min_bitrate_kbps = Tables.bitrate_table[gfp.version][gfc.VBR_min_bitrate];\n gfp.VBR_max_bitrate_kbps = Tables.bitrate_table[gfp.version][gfc.VBR_max_bitrate];\n gfp.VBR_mean_bitrate_kbps = Math.min(\n Tables.bitrate_table[gfp.version][gfc.VBR_max_bitrate],\n gfp.VBR_mean_bitrate_kbps);\n gfp.VBR_mean_bitrate_kbps = Math.max(\n Tables.bitrate_table[gfp.version][gfc.VBR_min_bitrate],\n gfp.VBR_mean_bitrate_kbps);\n }\n\n /* just another daily changing developer switch */\n if (gfp.tune) {\n gfc.PSY.mask_adjust += gfp.tune_value_a;\n gfc.PSY.mask_adjust_short += gfp.tune_value_a;\n }\n\n /* initialize internal qval settings */\n lame_init_qval(gfp);\n assert(gfp.scale >= 0);\n /*\n * automatic ATH adjustment on\n */\n if (gfp.athaa_type < 0)\n gfc.ATH.useAdjust = 3;\n else\n gfc.ATH.useAdjust = gfp.athaa_type;\n\n /* initialize internal adaptive ATH settings -jd */\n gfc.ATH.aaSensitivityP = Math.pow(10.0, gfp.athaa_sensitivity\n / -10.0);\n\n if (gfp.short_blocks == null) {\n gfp.short_blocks = ShortBlock.short_block_allowed;\n }\n\n /*\n * Note Jan/2003: Many hardware decoders cannot handle short blocks in\n * regular stereo mode unless they are coupled (same type in both\n * channels) it is a rare event (1 frame per min. or so) that LAME would\n * use uncoupled short blocks, so lets turn them off until we decide how\n * to handle this. No other encoders allow uncoupled short blocks, even\n * though it is in the standard.\n */\n /*\n * rh 20040217: coupling makes no sense for mono and dual-mono streams\n */\n if (gfp.short_blocks == ShortBlock.short_block_allowed\n && (gfp.mode == MPEGMode.JOINT_STEREO || gfp.mode == MPEGMode.STEREO)) {\n gfp.short_blocks = ShortBlock.short_block_coupled;\n }\n\n if (gfp.quant_comp < 0)\n gfp.quant_comp = 1;\n if (gfp.quant_comp_short < 0)\n gfp.quant_comp_short = 0;\n\n if (gfp.msfix < 0)\n gfp.msfix = 0;\n\n /* select psychoacoustic model */\n gfp.exp_nspsytune = gfp.exp_nspsytune | 1;\n\n if (gfp.internal_flags.nsPsy.attackthre < 0)\n gfp.internal_flags.nsPsy.attackthre = PsyModel.NSATTACKTHRE;\n if (gfp.internal_flags.nsPsy.attackthre_s < 0)\n gfp.internal_flags.nsPsy.attackthre_s = PsyModel.NSATTACKTHRE_S;\n\n assert(gfp.scale >= 0);\n\n if (gfp.scale < 0)\n gfp.scale = 1;\n\n if (gfp.ATHtype < 0)\n gfp.ATHtype = 4;\n\n if (gfp.ATHcurve < 0)\n gfp.ATHcurve = 4;\n\n if (gfp.athaa_loudapprox < 0)\n gfp.athaa_loudapprox = 2;\n\n if (gfp.interChRatio < 0)\n gfp.interChRatio = 0;\n\n if (gfp.useTemporal == null)\n gfp.useTemporal = true;\n /* on by default */\n\n /*\n * padding method as described in\n * \"MPEG-Layer3 / Bitstream Syntax and Decoding\" by Martin Sieler, Ralph\n * Sperschneider\n *\n * note: there is no padding for the very first frame\n *\n * Robert Hegemann 2000-06-22\n */\n gfc.slot_lag = gfc.frac_SpF = 0;\n if (gfp.VBR == VbrMode.vbr_off)\n gfc.slot_lag = gfc.frac_SpF = (((gfp.version + 1) * 72000 * gfp.brate) % gfp.out_samplerate) | 0;\n\n qupvt.iteration_init(gfp);\n psy.psymodel_init(gfp);\n assert(gfp.scale >= 0);\n return 0;\n }\n\n function update_inbuffer_size(gfc, nsamples) {\n if (gfc.in_buffer_0 == null || gfc.in_buffer_nsamples < nsamples) {\n gfc.in_buffer_0 = new_float(nsamples);\n gfc.in_buffer_1 = new_float(nsamples);\n gfc.in_buffer_nsamples = nsamples;\n }\n }\n\n this.lame_encode_flush = function (gfp, mp3buffer, mp3bufferPos, mp3buffer_size) {\n var gfc = gfp.internal_flags;\n var buffer = new_short_n([2, 1152]);\n var imp3 = 0, mp3count, mp3buffer_size_remaining;\n\n /*\n * we always add POSTDELAY=288 padding to make sure granule with real\n * data can be complety decoded (because of 50% overlap with next\n * granule\n */\n var end_padding;\n var frames_left;\n var samples_to_encode = gfc.mf_samples_to_encode - Encoder.POSTDELAY;\n var mf_needed = calcNeeded(gfp);\n\n /* Was flush already called? */\n if (gfc.mf_samples_to_encode < 1) {\n return 0;\n }\n mp3count = 0;\n\n if (gfp.in_samplerate != gfp.out_samplerate) {\n /*\n * delay due to resampling; needs to be fixed, if resampling code\n * gets changed\n */\n samples_to_encode += 16. * gfp.out_samplerate / gfp.in_samplerate;\n }\n end_padding = gfp.framesize - (samples_to_encode % gfp.framesize);\n if (end_padding < 576)\n end_padding += gfp.framesize;\n gfp.encoder_padding = end_padding;\n\n frames_left = (samples_to_encode + end_padding) / gfp.framesize;\n\n /*\n * send in a frame of 0 padding until all internal sample buffers are\n * flushed\n */\n while (frames_left > 0 && imp3 >= 0) {\n var bunch = mf_needed - gfc.mf_size;\n var frame_num = gfp.frameNum;\n\n bunch *= gfp.in_samplerate;\n bunch /= gfp.out_samplerate;\n if (bunch > 1152)\n bunch = 1152;\n if (bunch < 1)\n bunch = 1;\n\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n\n /* if user specifed buffer size = 0, dont check size */\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n\n imp3 = this.lame_encode_buffer(gfp, buffer[0], buffer[1], bunch,\n mp3buffer, mp3bufferPos, mp3buffer_size_remaining);\n\n mp3bufferPos += imp3;\n mp3count += imp3;\n frames_left -= (frame_num != gfp.frameNum) ? 1 : 0;\n }\n /*\n * Set gfc.mf_samples_to_encode to 0, so we may detect and break loops\n * calling it more than once in a row.\n */\n gfc.mf_samples_to_encode = 0;\n\n if (imp3 < 0) {\n /* some type of fatal error */\n return imp3;\n }\n\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n /* if user specifed buffer size = 0, dont check size */\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n\n /* mp3 related stuff. bit buffer might still contain some mp3 data */\n bs.flush_bitstream(gfp);\n imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos,\n mp3buffer_size_remaining, 1);\n if (imp3 < 0) {\n /* some type of fatal error */\n return imp3;\n }\n mp3bufferPos += imp3;\n mp3count += imp3;\n mp3buffer_size_remaining = mp3buffer_size - mp3count;\n /* if user specifed buffer size = 0, dont check size */\n if (mp3buffer_size == 0)\n mp3buffer_size_remaining = 0;\n\n if (gfp.write_id3tag_automatic) {\n /* write a id3 tag to the bitstream */\n id3.id3tag_write_v1(gfp);\n\n imp3 = bs.copy_buffer(gfc, mp3buffer, mp3bufferPos,\n mp3buffer_size_remaining, 0);\n\n if (imp3 < 0) {\n return imp3;\n }\n mp3count += imp3;\n }\n return mp3count;\n };\n\n this.lame_encode_buffer = function (gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var in_buffer = [null, null];\n\n if (gfc.Class_ID != LAME_ID)\n return -3;\n\n if (nsamples == 0)\n return 0;\n\n update_inbuffer_size(gfc, nsamples);\n\n in_buffer[0] = gfc.in_buffer_0;\n in_buffer[1] = gfc.in_buffer_1;\n\n /* make a copy of input buffer, changing type to sample_t */\n for (var i = 0; i < nsamples; i++) {\n in_buffer[0][i] = buffer_l[i];\n if (gfc.channels_in > 1)\n in_buffer[1][i] = buffer_r[i];\n }\n\n return lame_encode_buffer_sample(gfp, in_buffer[0], in_buffer[1],\n nsamples, mp3buf, mp3bufPos, mp3buf_size);\n }\n\n function calcNeeded(gfp) {\n var mf_needed = Encoder.BLKSIZE + gfp.framesize - Encoder.FFTOFFSET;\n /*\n * amount needed for FFT\n */\n mf_needed = Math.max(mf_needed, 512 + gfp.framesize - 32);\n assert(LameInternalFlags.MFSIZE >= mf_needed);\n\n return mf_needed;\n }\n\n function lame_encode_buffer_sample(gfp, buffer_l, buffer_r, nsamples, mp3buf, mp3bufPos, mp3buf_size) {\n var gfc = gfp.internal_flags;\n var mp3size = 0, ret, i, ch, mf_needed;\n var mp3out;\n var mfbuf = [null, null];\n var in_buffer = [null, null];\n\n if (gfc.Class_ID != LAME_ID)\n return -3;\n\n if (nsamples == 0)\n return 0;\n\n /* copy out any tags that may have been written into bitstream */\n mp3out = bs.copy_buffer(gfc, mp3buf, mp3bufPos, mp3buf_size, 0);\n if (mp3out < 0)\n return mp3out;\n /* not enough buffer space */\n mp3bufPos += mp3out;\n mp3size += mp3out;\n\n in_buffer[0] = buffer_l;\n in_buffer[1] = buffer_r;\n\n /* Apply user defined re-scaling */\n\n /* user selected scaling of the samples */\n if (BitStream.NEQ(gfp.scale, 0) && BitStream.NEQ(gfp.scale, 1.0)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale;\n if (gfc.channels_out == 2)\n in_buffer[1][i] *= gfp.scale;\n }\n }\n\n /* user selected scaling of the channel 0 (left) samples */\n if (BitStream.NEQ(gfp.scale_left, 0)\n && BitStream.NEQ(gfp.scale_left, 1.0)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] *= gfp.scale_left;\n }\n }\n\n /* user selected scaling of the channel 1 (right) samples */\n if (BitStream.NEQ(gfp.scale_right, 0)\n && BitStream.NEQ(gfp.scale_right, 1.0)) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[1][i] *= gfp.scale_right;\n }\n }\n\n /* Downsample to Mono if 2 channels in and 1 channel out */\n if (gfp.num_channels == 2 && gfc.channels_out == 1) {\n for (i = 0; i < nsamples; ++i) {\n in_buffer[0][i] = 0.5 * ( in_buffer[0][i] + in_buffer[1][i]);\n in_buffer[1][i] = 0.0;\n }\n }\n\n mf_needed = calcNeeded(gfp);\n\n mfbuf[0] = gfc.mfbuf[0];\n mfbuf[1] = gfc.mfbuf[1];\n\n var in_bufferPos = 0;\n while (nsamples > 0) {\n var in_buffer_ptr = [null, null];\n var n_in = 0;\n /* number of input samples processed with fill_buffer */\n var n_out = 0;\n /* number of samples output with fill_buffer */\n /* n_in <> n_out if we are resampling */\n\n in_buffer_ptr[0] = in_buffer[0];\n in_buffer_ptr[1] = in_buffer[1];\n /* copy in new samples into mfbuf, with resampling */\n var inOut = new InOut();\n fill_buffer(gfp, mfbuf, in_buffer_ptr, in_bufferPos, nsamples,\n inOut);\n n_in = inOut.n_in;\n n_out = inOut.n_out;\n\n /* compute ReplayGain of resampled input if requested */\n if (gfc.findReplayGain && !gfc.decode_on_the_fly)\n if (ga.AnalyzeSamples(gfc.rgdata, mfbuf[0], gfc.mf_size,\n mfbuf[1], gfc.mf_size, n_out, gfc.channels_out) == GainAnalysis.GAIN_ANALYSIS_ERROR)\n return -6;\n\n /* update in_buffer counters */\n nsamples -= n_in;\n in_bufferPos += n_in;\n if (gfc.channels_out == 2)\n ;// in_bufferPos += n_in;\n\n /* update mfbuf[] counters */\n gfc.mf_size += n_out;\n assert(gfc.mf_size <= LameInternalFlags.MFSIZE);\n\n /*\n * lame_encode_flush may have set gfc.mf_sample_to_encode to 0 so we\n * have to reinitialize it here when that happened.\n */\n if (gfc.mf_samples_to_encode < 1) {\n gfc.mf_samples_to_encode = Encoder.ENCDELAY + Encoder.POSTDELAY;\n }\n gfc.mf_samples_to_encode += n_out;\n\n if (gfc.mf_size >= mf_needed) {\n /* encode the frame. */\n /* mp3buf = pointer to current location in buffer */\n /* mp3buf_size = size of original mp3 output buffer */\n /* = 0 if we should not worry about the */\n /* buffer size because calling program is */\n /* to lazy to compute it */\n /* mp3size = size of data written to buffer so far */\n /* mp3buf_size-mp3size = amount of space avalable */\n\n var buf_size = mp3buf_size - mp3size;\n if (mp3buf_size == 0)\n buf_size = 0;\n\n ret = lame_encode_frame(gfp, mfbuf[0], mfbuf[1], mp3buf,\n mp3bufPos, buf_size);\n\n if (ret < 0)\n return ret;\n mp3bufPos += ret;\n mp3size += ret;\n\n /* shift out old samples */\n gfc.mf_size -= gfp.framesize;\n gfc.mf_samples_to_encode -= gfp.framesize;\n for (ch = 0; ch < gfc.channels_out; ch++)\n for (i = 0; i < gfc.mf_size; i++)\n mfbuf[ch][i] = mfbuf[ch][i + gfp.framesize];\n }\n }\n assert(nsamples == 0);\n\n return mp3size;\n }\n\n function lame_encode_frame(gfp, inbuf_l, inbuf_r, mp3buf, mp3bufPos, mp3buf_size) {\n var ret = self.enc.lame_encode_mp3_frame(gfp, inbuf_l, inbuf_r, mp3buf,\n mp3bufPos, mp3buf_size);\n gfp.frameNum++;\n return ret;\n }\n\n function InOut() {\n this.n_in = 0;\n this.n_out = 0;\n }\n\n\n function NumUsed() {\n this.num_used = 0;\n }\n\n /**\n * Greatest common divisor.\n *
\n * The Vbr header (optionally) contains\n * \n *
\n *\n * toc (table of contents) gives seek points for random access.
\n * The ith entry determines the seek point for i-percent duration.
\n * seek point in bytes = (toc[i]/256.0) * total_bitstream_bytes
\n * e.g. half duration seek point = (toc[50]/256.0) * total_bitstream_bytes\n */\nVBRTag.NUMTOCENTRIES = 100;\nVBRTag.MAXFRAMESIZE = 2880;\n\nfunction VBRTag() {\n\n var lame;\n var bs;\n var v;\n\n this.setModules = function (_lame, _bs, _v) {\n lame = _lame;\n bs = _bs;\n v = _v;\n };\n\n var FRAMES_FLAG = 0x0001;\n var BYTES_FLAG = 0x0002;\n var TOC_FLAG = 0x0004;\n var VBR_SCALE_FLAG = 0x0008;\n\n var NUMTOCENTRIES = VBRTag.NUMTOCENTRIES;\n\n /**\n * (0xB40) the max freeformat 640 32kHz framesize.\n */\n var MAXFRAMESIZE = VBRTag.MAXFRAMESIZE;\n\n /**\n * \n * 4 bytes for Header Tag\n * 4 bytes for Header Flags\n * 100 bytes for entry (toc)\n * 4 bytes for frame size\n * 4 bytes for stream size\n * 4 bytes for VBR scale. a VBR quality indicator: 0=best 100=worst\n * 20 bytes for LAME tag. for example, \"LAME3.12 (beta 6)\"\n * ___________\n * 140 bytes\n *
\n */\n var VBRHEADERSIZE = (NUMTOCENTRIES + 4 + 4 + 4 + 4 + 4);\n\n var LAMEHEADERSIZE = (VBRHEADERSIZE + 9 + 1 + 1 + 8\n + 1 + 1 + 3 + 1 + 1 + 2 + 4 + 2 + 2);\n\n /**\n * The size of the Xing header MPEG-1, bit rate in kbps.\n */\n var XING_BITRATE1 = 128;\n /**\n * The size of the Xing header MPEG-2, bit rate in kbps.\n */\n var XING_BITRATE2 = 64;\n /**\n * The size of the Xing header MPEG-2.5, bit rate in kbps.\n */\n var XING_BITRATE25 = 32;\n\n /**\n * ISO-8859-1 charset for byte to string operations.\n */\n var ISO_8859_1 = null; //Charset.forName(\"ISO-8859-1\");\n\n /**\n * VBR header magic string.\n */\n var VBRTag0 = \"Xing\";\n /**\n * VBR header magic string (VBR == VBRMode.vbr_off).\n */\n var VBRTag1 = \"Info\";\n\n /**\n * Lookup table for fast CRC-16 computation. Uses the polynomial\n * x^16+x^15+x^2+1\n */\n var crc16Lookup = [0x0000, 0xC0C1, 0xC181, 0x0140,\n 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741,\n 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41,\n 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40,\n 0xC901, 0x09C0, 0x0880, 0xC841, 0xD801, 0x18C0, 0x1980, 0xD941,\n 0x1B00, 0xDBC1, 0xDA81, 0x1A40, 0x1E00, 0xDEC1, 0xDF81, 0x1F40,\n 0xDD01, 0x1DC0, 0x1C80, 0xDC41, 0x1400, 0xD4C1, 0xD581, 0x1540,\n 0xD701, 0x17C0, 0x1680, 0xD641, 0xD201, 0x12C0, 0x1380, 0xD341,\n 0x1100, 0xD1C1, 0xD081, 0x1040, 0xF001, 0x30C0, 0x3180, 0xF141,\n 0x3300, 0xF3C1, 0xF281, 0x3240, 0x3600, 0xF6C1, 0xF781, 0x3740,\n 0xF501, 0x35C0, 0x3480, 0xF441, 0x3C00, 0xFCC1, 0xFD81, 0x3D40,\n 0xFF01, 0x3FC0, 0x3E80, 0xFE41, 0xFA01, 0x3AC0, 0x3B80, 0xFB41,\n 0x3900, 0xF9C1, 0xF881, 0x3840, 0x2800, 0xE8C1, 0xE981, 0x2940,\n 0xEB01, 0x2BC0, 0x2A80, 0xEA41, 0xEE01, 0x2EC0, 0x2F80, 0xEF41,\n 0x2D00, 0xEDC1, 0xEC81, 0x2C40, 0xE401, 0x24C0, 0x2580, 0xE541,\n 0x2700, 0xE7C1, 0xE681, 0x2640, 0x2200, 0xE2C1, 0xE381, 0x2340,\n 0xE101, 0x21C0, 0x2080, 0xE041, 0xA001, 0x60C0, 0x6180, 0xA141,\n 0x6300, 0xA3C1, 0xA281, 0x6240, 0x6600, 0xA6C1, 0xA781, 0x6740,\n 0xA501, 0x65C0, 0x6480, 0xA441, 0x6C00, 0xACC1, 0xAD81, 0x6D40,\n 0xAF01, 0x6FC0, 0x6E80, 0xAE41, 0xAA01, 0x6AC0, 0x6B80, 0xAB41,\n 0x6900, 0xA9C1, 0xA881, 0x6840, 0x7800, 0xB8C1, 0xB981, 0x7940,\n 0xBB01, 0x7BC0, 0x7A80, 0xBA41, 0xBE01, 0x7EC0, 0x7F80, 0xBF41,\n 0x7D00, 0xBDC1, 0xBC81, 0x7C40, 0xB401, 0x74C0, 0x7580, 0xB541,\n 0x7700, 0xB7C1, 0xB681, 0x7640, 0x7200, 0xB2C1, 0xB381, 0x7340,\n 0xB101, 0x71C0, 0x7080, 0xB041, 0x5000, 0x90C1, 0x9181, 0x5140,\n 0x9301, 0x53C0, 0x5280, 0x9241, 0x9601, 0x56C0, 0x5780, 0x9741,\n 0x5500, 0x95C1, 0x9481, 0x5440, 0x9C01, 0x5CC0, 0x5D80, 0x9D41,\n 0x5F00, 0x9FC1, 0x9E81, 0x5E40, 0x5A00, 0x9AC1, 0x9B81, 0x5B40,\n 0x9901, 0x59C0, 0x5880, 0x9841, 0x8801, 0x48C0, 0x4980, 0x8941,\n 0x4B00, 0x8BC1, 0x8A81, 0x4A40, 0x4E00, 0x8EC1, 0x8F81, 0x4F40,\n 0x8D01, 0x4DC0, 0x4C80, 0x8C41, 0x4400, 0x84C1, 0x8581, 0x4540,\n 0x8701, 0x47C0, 0x4680, 0x8641, 0x8201, 0x42C0, 0x4380, 0x8341,\n 0x4100, 0x81C1, 0x8081, 0x4040];\n\n /***********************************************************************\n * Robert Hegemann 2001-01-17\n ***********************************************************************/\n\n function addVbr(v, bitrate) {\n v.nVbrNumFrames++;\n v.sum += bitrate;\n v.seen++;\n\n if (v.seen < v.want) {\n return;\n }\n\n if (v.pos < v.size) {\n v.bag[v.pos] = v.sum;\n v.pos++;\n v.seen = 0;\n }\n if (v.pos == v.size) {\n for (var i = 1; i < v.size; i += 2) {\n v.bag[i / 2] = v.bag[i];\n }\n v.want *= 2;\n v.pos /= 2;\n }\n }\n\n function xingSeekTable(v, t) {\n if (v.pos <= 0)\n return;\n\n for (var i = 1; i < NUMTOCENTRIES; ++i) {\n var j = i / NUMTOCENTRIES, act, sum;\n var indx = 0 | (Math.floor(j * v.pos));\n if (indx > v.pos - 1)\n indx = v.pos - 1;\n act = v.bag[indx];\n sum = v.sum;\n var seek_point = 0 | (256. * act / sum);\n if (seek_point > 255)\n seek_point = 255;\n t[i] = 0xff & seek_point;\n }\n }\n\n /**\n * Add VBR entry, used to fill the VBR TOC entries.\n *\n * @param gfp\n * global flags\n */\n this.addVbrFrame = function (gfp) {\n var gfc = gfp.internal_flags;\n var kbps = Tables.bitrate_table[gfp.version][gfc.bitrate_index];\n assert(gfc.VBR_seek_table.bag != null);\n addVbr(gfc.VBR_seek_table, kbps);\n }\n\n /**\n * Read big endian integer (4-bytes) from header.\n *\n * @param buf\n * header containing the integer\n * @param bufPos\n * offset into the header\n * @return extracted integer\n */\n function extractInteger(buf, bufPos) {\n var x = buf[bufPos + 0] & 0xff;\n x <<= 8;\n x |= buf[bufPos + 1] & 0xff;\n x <<= 8;\n x |= buf[bufPos + 2] & 0xff;\n x <<= 8;\n x |= buf[bufPos + 3] & 0xff;\n return x;\n }\n\n /**\n * Write big endian integer (4-bytes) in the header.\n *\n * @param buf\n * header to write the integer into\n * @param bufPos\n * offset into the header\n * @param value\n * integer value to write\n */\n function createInteger(buf, bufPos, value) {\n buf[bufPos + 0] = 0xff & ((value >> 24) & 0xff);\n buf[bufPos + 1] = 0xff & ((value >> 16) & 0xff);\n buf[bufPos + 2] = 0xff & ((value >> 8) & 0xff);\n buf[bufPos + 3] = 0xff & (value & 0xff);\n }\n\n /**\n * Write big endian short (2-bytes) in the header.\n *\n * @param buf\n * header to write the integer into\n * @param bufPos\n * offset into the header\n * @param value\n * integer value to write\n */\n function createShort(buf, bufPos, value) {\n buf[bufPos + 0] = 0xff & ((value >> 8) & 0xff);\n buf[bufPos + 1] = 0xff & (value & 0xff);\n }\n\n /**\n * Check for magic strings (Xing/Info).\n *\n * @param buf\n * header to check\n * @param bufPos\n * header offset to check\n * @return magic string found\n */\n function isVbrTag(buf, bufPos) {\n return new String(buf, bufPos, VBRTag0.length(), ISO_8859_1)\n .equals(VBRTag0)\n || new String(buf, bufPos, VBRTag1.length(), ISO_8859_1)\n .equals(VBRTag1);\n }\n\n function shiftInBitsValue(x, n, v) {\n return 0xff & ((x << n) | (v & ~(-1 << n)));\n }\n\n /**\n * Construct the MP3 header using the settings of the global flags.\n *\n * \n *\n * @param gfp\n * global flags\n * @param buffer\n * header\n */\n function setLameTagFrameHeader(gfp, buffer) {\n var gfc = gfp.internal_flags;\n\n // MP3 Sync Word\n buffer[0] = shiftInBitsValue(buffer[0], 8, 0xff);\n\n buffer[1] = shiftInBitsValue(buffer[1], 3, 7);\n buffer[1] = shiftInBitsValue(buffer[1], 1,\n (gfp.out_samplerate < 16000) ? 0 : 1);\n // Version\n buffer[1] = shiftInBitsValue(buffer[1], 1, gfp.version);\n // 01 == Layer 3\n buffer[1] = shiftInBitsValue(buffer[1], 2, 4 - 3);\n // Error protection\n buffer[1] = shiftInBitsValue(buffer[1], 1, (!gfp.error_protection) ? 1\n : 0);\n\n // Bit rate\n buffer[2] = shiftInBitsValue(buffer[2], 4, gfc.bitrate_index);\n // Frequency\n buffer[2] = shiftInBitsValue(buffer[2], 2, gfc.samplerate_index);\n // Pad. Bit\n buffer[2] = shiftInBitsValue(buffer[2], 1, 0);\n // Priv. Bit\n buffer[2] = shiftInBitsValue(buffer[2], 1, gfp.extension);\n\n // Mode\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.mode.ordinal());\n // Mode extension (Used with Joint Stereo)\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfc.mode_ext);\n // Copy\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.copyright);\n // Original\n buffer[3] = shiftInBitsValue(buffer[3], 1, gfp.original);\n // Emphasis\n buffer[3] = shiftInBitsValue(buffer[3], 2, gfp.emphasis);\n\n /* the default VBR header. 48 kbps layer III, no padding, no crc */\n /* but sampling freq, mode and copyright/copy protection taken */\n /* from first valid frame */\n buffer[0] = 0xff;\n var abyte = 0xff & (buffer[1] & 0xf1);\n var bitrate;\n if (1 == gfp.version) {\n bitrate = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16000)\n bitrate = XING_BITRATE25;\n else\n bitrate = XING_BITRATE2;\n }\n\n if (gfp.VBR == VbrMode.vbr_off)\n bitrate = gfp.brate;\n\n var bbyte;\n if (gfp.free_format)\n bbyte = 0x00;\n else\n bbyte = 0xff & (16 * lame.BitrateIndex(bitrate, gfp.version,\n gfp.out_samplerate));\n\n /*\n * Use as much of the info from the real frames in the Xing header:\n * samplerate, channels, crc, etc...\n */\n if (gfp.version == 1) {\n /* MPEG1 */\n buffer[1] = 0xff & (abyte | 0x0a);\n /* was 0x0b; */\n abyte = 0xff & (buffer[2] & 0x0d);\n /* AF keep also private bit */\n buffer[2] = 0xff & (bbyte | abyte);\n /* 64kbs MPEG1 frame */\n } else {\n /* MPEG2 */\n buffer[1] = 0xff & (abyte | 0x02);\n /* was 0x03; */\n abyte = 0xff & (buffer[2] & 0x0d);\n /* AF keep also private bit */\n buffer[2] = 0xff & (bbyte | abyte);\n /* 64kbs MPEG2 frame */\n }\n }\n\n /**\n * Get VBR tag information\n *\n * @param buf\n * header to analyze\n * @param bufPos\n * offset into the header\n * @return VBR tag data\n */\n this.getVbrTag = function (buf) {\n var pTagData = new VBRTagData();\n var bufPos = 0;\n\n /* get Vbr header data */\n pTagData.flags = 0;\n\n /* get selected MPEG header data */\n var hId = (buf[bufPos + 1] >> 3) & 1;\n var hSrIndex = (buf[bufPos + 2] >> 2) & 3;\n var hMode = (buf[bufPos + 3] >> 6) & 3;\n var hBitrate = ((buf[bufPos + 2] >> 4) & 0xf);\n hBitrate = Tables.bitrate_table[hId][hBitrate];\n\n /* check for FFE syncword */\n if ((buf[bufPos + 1] >> 4) == 0xE)\n pTagData.samprate = Tables.samplerate_table[2][hSrIndex];\n else\n pTagData.samprate = Tables.samplerate_table[hId][hSrIndex];\n\n /* determine offset of header */\n if (hId != 0) {\n /* mpeg1 */\n if (hMode != 3)\n bufPos += (32 + 4);\n else\n bufPos += (17 + 4);\n } else {\n /* mpeg2 */\n if (hMode != 3)\n bufPos += (17 + 4);\n else\n bufPos += (9 + 4);\n }\n\n if (!isVbrTag(buf, bufPos))\n return null;\n\n bufPos += 4;\n\n pTagData.hId = hId;\n\n /* get flags */\n var head_flags = pTagData.flags = extractInteger(buf, bufPos);\n bufPos += 4;\n\n if ((head_flags & FRAMES_FLAG) != 0) {\n pTagData.frames = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n\n if ((head_flags & BYTES_FLAG) != 0) {\n pTagData.bytes = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n\n if ((head_flags & TOC_FLAG) != 0) {\n if (pTagData.toc != null) {\n for (var i = 0; i < NUMTOCENTRIES; i++)\n pTagData.toc[i] = buf[bufPos + i];\n }\n bufPos += NUMTOCENTRIES;\n }\n\n pTagData.vbrScale = -1;\n\n if ((head_flags & VBR_SCALE_FLAG) != 0) {\n pTagData.vbrScale = extractInteger(buf, bufPos);\n bufPos += 4;\n }\n\n pTagData.headersize = ((hId + 1) * 72000 * hBitrate)\n / pTagData.samprate;\n\n bufPos += 21;\n var encDelay = buf[bufPos + 0] << 4;\n encDelay += buf[bufPos + 1] >> 4;\n var encPadding = (buf[bufPos + 1] & 0x0F) << 8;\n encPadding += buf[bufPos + 2] & 0xff;\n /* check for reasonable values (this may be an old Xing header, */\n /* not a INFO tag) */\n if (encDelay < 0 || encDelay > 3000)\n encDelay = -1;\n if (encPadding < 0 || encPadding > 3000)\n encPadding = -1;\n\n pTagData.encDelay = encDelay;\n pTagData.encPadding = encPadding;\n\n /* success */\n return pTagData;\n }\n\n /**\n * Initializes the header\n *\n * @param gfp\n * global flags\n */\n this.InitVbrTag = function (gfp) {\n var gfc = gfp.internal_flags;\n\n /**\n *
\n * Xing VBR pretends to be a 48kbs layer III frame. (at 44.1kHz).\n * (at 48kHz they use 56kbs since 48kbs frame not big enough for\n * table of contents)\n * let's always embed Xing header inside a 64kbs layer III frame.\n * this gives us enough room for a LAME version string too.\n * size determined by sampling frequency (MPEG1)\n * 32kHz: 216 bytes@48kbs 288bytes@ 64kbs\n * 44.1kHz: 156 bytes 208bytes@64kbs (+1 if padding = 1)\n * 48kHz: 144 bytes 192\n *\n * MPEG 2 values are the same since the framesize and samplerate\n * are each reduced by a factor of 2.\n *
\n */\n var kbps_header;\n if (1 == gfp.version) {\n kbps_header = XING_BITRATE1;\n } else {\n if (gfp.out_samplerate < 16000)\n kbps_header = XING_BITRATE25;\n else\n kbps_header = XING_BITRATE2;\n }\n\n if (gfp.VBR == VbrMode.vbr_off)\n kbps_header = gfp.brate;\n\n // make sure LAME Header fits into Frame\n var totalFrameSize = ((gfp.version + 1) * 72000 * kbps_header)\n / gfp.out_samplerate;\n var headerSize = (gfc.sideinfo_len + LAMEHEADERSIZE);\n gfc.VBR_seek_table.TotalFrameSize = totalFrameSize;\n if (totalFrameSize < headerSize || totalFrameSize > MAXFRAMESIZE) {\n /* disable tag, it wont fit */\n gfp.bWriteVbrTag = false;\n return;\n }\n\n gfc.VBR_seek_table.nVbrNumFrames = 0;\n gfc.VBR_seek_table.nBytesWritten = 0;\n gfc.VBR_seek_table.sum = 0;\n\n gfc.VBR_seek_table.seen = 0;\n gfc.VBR_seek_table.want = 1;\n gfc.VBR_seek_table.pos = 0;\n\n if (gfc.VBR_seek_table.bag == null) {\n gfc.VBR_seek_table.bag = new int[400];\n gfc.VBR_seek_table.size = 400;\n }\n\n // write dummy VBR tag of all 0's into bitstream\n var buffer = new_byte(MAXFRAMESIZE);\n\n setLameTagFrameHeader(gfp, buffer);\n var n = gfc.VBR_seek_table.TotalFrameSize;\n for (var i = 0; i < n; ++i) {\n bs.add_dummy_byte(gfp, buffer[i] & 0xff, 1);\n }\n }\n\n /**\n * Fast CRC-16 computation (uses table crc16Lookup).\n *\n * @param value\n * @param crc\n * @return\n */\n function crcUpdateLookup(value, crc) {\n var tmp = crc ^ value;\n crc = (crc >> 8) ^ crc16Lookup[tmp & 0xff];\n return crc;\n }\n\n this.updateMusicCRC = function (crc, buffer, bufferPos, size) {\n for (var i = 0; i < size; ++i)\n crc[0] = crcUpdateLookup(buffer[bufferPos + i], crc[0]);\n }\n\n /**\n * Write LAME info: mini version + info on various switches used (Jonathan\n * Dee 2001/08/31).\n *\n * @param gfp\n * global flags\n * @param musicLength\n * music length\n * @param streamBuffer\n * pointer to output buffer\n * @param streamBufferPos\n * offset into the output buffer\n * @param crc\n * computation of CRC-16 of Lame Tag so far (starting at frame\n * sync)\n * @return number of bytes written to the stream\n */\n function putLameVBR(gfp, musicLength, streamBuffer, streamBufferPos, crc) {\n var gfc = gfp.internal_flags;\n var bytesWritten = 0;\n\n /* encoder delay */\n var encDelay = gfp.encoder_delay;\n /* encoder padding */\n var encPadding = gfp.encoder_padding;\n\n /* recall: gfp.VBR_q is for example set by the switch -V */\n /* gfp.quality by -q, -h, -f, etc */\n var quality = (100 - 10 * gfp.VBR_q - gfp.quality);\n\n var version = v.getLameVeryShortVersion();\n var vbr;\n var revision = 0x00;\n var revMethod;\n // numbering different in vbr_mode vs. Lame tag\n var vbrTypeTranslator = [1, 5, 3, 2, 4, 0, 3];\n var lowpass = 0 | (((gfp.lowpassfreq / 100.0) + .5) > 255 ? 255\n : (gfp.lowpassfreq / 100.0) + .5);\n var peakSignalAmplitude = 0;\n var radioReplayGain = 0;\n var audiophileReplayGain = 0;\n var noiseShaping = gfp.internal_flags.noise_shaping;\n var stereoMode = 0;\n var nonOptimal = 0;\n var sourceFreq = 0;\n var misc = 0;\n var musicCRC = 0;\n\n // psy model type: Gpsycho or NsPsytune\n var expNPsyTune = (gfp.exp_nspsytune & 1) != 0;\n var safeJoint = (gfp.exp_nspsytune & 2) != 0;\n var noGapMore = false;\n var noGapPrevious = false;\n var noGapCount = gfp.internal_flags.nogap_total;\n var noGapCurr = gfp.internal_flags.nogap_current;\n\n // 4 bits\n var athType = gfp.ATHtype;\n var flags = 0;\n\n // vbr modes\n var abrBitrate;\n switch (gfp.VBR) {\n case vbr_abr:\n abrBitrate = gfp.VBR_mean_bitrate_kbps;\n break;\n case vbr_off:\n abrBitrate = gfp.brate;\n break;\n default:\n abrBitrate = gfp.VBR_min_bitrate_kbps;\n }\n\n // revision and vbr method\n if (gfp.VBR.ordinal() < vbrTypeTranslator.length)\n vbr = vbrTypeTranslator[gfp.VBR.ordinal()];\n else\n vbr = 0x00; // unknown\n\n revMethod = 0x10 * revision + vbr;\n\n // ReplayGain\n if (gfc.findReplayGain) {\n if (gfc.RadioGain > 0x1FE)\n gfc.RadioGain = 0x1FE;\n if (gfc.RadioGain < -0x1FE)\n gfc.RadioGain = -0x1FE;\n\n // set name code\n radioReplayGain = 0x2000;\n // set originator code to `determined automatically'\n radioReplayGain |= 0xC00;\n\n if (gfc.RadioGain >= 0) {\n // set gain adjustment\n radioReplayGain |= gfc.RadioGain;\n } else {\n // set the sign bit\n radioReplayGain |= 0x200;\n // set gain adjustment\n radioReplayGain |= -gfc.RadioGain;\n }\n }\n\n // peak sample\n if (gfc.findPeakSample)\n peakSignalAmplitude = Math\n .abs(0 | ((( gfc.PeakSample) / 32767.0) * Math.pow(2, 23) + .5));\n\n // nogap\n if (noGapCount != -1) {\n if (noGapCurr > 0)\n noGapPrevious = true;\n\n if (noGapCurr < noGapCount - 1)\n noGapMore = true;\n }\n\n // flags\n flags = athType + ((expNPsyTune ? 1 : 0) << 4)\n + ((safeJoint ? 1 : 0) << 5) + ((noGapMore ? 1 : 0) << 6)\n + ((noGapPrevious ? 1 : 0) << 7);\n\n if (quality < 0)\n quality = 0;\n\n // stereo mode field (Intensity stereo is not implemented)\n switch (gfp.mode) {\n case MONO:\n stereoMode = 0;\n break;\n case STEREO:\n stereoMode = 1;\n break;\n case DUAL_CHANNEL:\n stereoMode = 2;\n break;\n case JOINT_STEREO:\n if (gfp.force_ms)\n stereoMode = 4;\n else\n stereoMode = 3;\n break;\n case NOT_SET:\n //$FALL-THROUGH$\n default:\n stereoMode = 7;\n break;\n }\n\n if (gfp.in_samplerate <= 32000)\n sourceFreq = 0x00;\n else if (gfp.in_samplerate == 48000)\n sourceFreq = 0x02;\n else if (gfp.in_samplerate > 48000)\n sourceFreq = 0x03;\n else {\n // default is 44100Hz\n sourceFreq = 0x01;\n }\n\n // Check if the user overrided the default LAME behavior with some\n // nasty options\n if (gfp.short_blocks == ShortBlock.short_block_forced\n || gfp.short_blocks == ShortBlock.short_block_dispensed\n || ((gfp.lowpassfreq == -1) && (gfp.highpassfreq == -1)) || /* \"-k\" */\n (gfp.scale_left < gfp.scale_right)\n || (gfp.scale_left > gfp.scale_right)\n || (gfp.disable_reservoir && gfp.brate < 320) || gfp.noATH\n || gfp.ATHonly || (athType == 0) || gfp.in_samplerate <= 32000)\n nonOptimal = 1;\n\n misc = noiseShaping + (stereoMode << 2) + (nonOptimal << 5)\n + (sourceFreq << 6);\n\n musicCRC = gfc.nMusicCRC;\n\n // Write all this information into the stream\n\n createInteger(streamBuffer, streamBufferPos + bytesWritten, quality);\n bytesWritten += 4;\n\n for (var j = 0; j < 9; j++) {\n streamBuffer[streamBufferPos + bytesWritten + j] = 0xff & version .charAt(j);\n }\n bytesWritten += 9;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & revMethod;\n bytesWritten++;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & lowpass;\n bytesWritten++;\n\n createInteger(streamBuffer, streamBufferPos + bytesWritten,\n peakSignalAmplitude);\n bytesWritten += 4;\n\n createShort(streamBuffer, streamBufferPos + bytesWritten,\n radioReplayGain);\n bytesWritten += 2;\n\n createShort(streamBuffer, streamBufferPos + bytesWritten,\n audiophileReplayGain);\n bytesWritten += 2;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & flags;\n bytesWritten++;\n\n if (abrBitrate >= 255)\n streamBuffer[streamBufferPos + bytesWritten] = 0xFF;\n else\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & abrBitrate;\n bytesWritten++;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & (encDelay >> 4);\n streamBuffer[streamBufferPos + bytesWritten + 1] = 0xff & ((encDelay << 4) + (encPadding >> 8));\n streamBuffer[streamBufferPos + bytesWritten + 2] = 0xff & encPadding;\n\n bytesWritten += 3;\n\n streamBuffer[streamBufferPos + bytesWritten] = 0xff & misc;\n bytesWritten++;\n\n // unused in rev0\n streamBuffer[streamBufferPos + bytesWritten++] = 0;\n\n createShort(streamBuffer, streamBufferPos + bytesWritten, gfp.preset);\n bytesWritten += 2;\n\n createInteger(streamBuffer, streamBufferPos + bytesWritten, musicLength);\n bytesWritten += 4;\n\n createShort(streamBuffer, streamBufferPos + bytesWritten, musicCRC);\n bytesWritten += 2;\n\n // Calculate tag CRC.... must be done here, since it includes previous\n // information\n\n for (var i = 0; i < bytesWritten; i++)\n crc = crcUpdateLookup(streamBuffer[streamBufferPos + i], crc);\n\n createShort(streamBuffer, streamBufferPos + bytesWritten, crc);\n bytesWritten += 2;\n\n return bytesWritten;\n }\n\n function skipId3v2(fpStream) {\n // seek to the beginning of the stream\n fpStream.seek(0);\n // read 10 bytes in case there's an ID3 version 2 header here\n var id3v2Header = new_byte(10);\n fpStream.readFully(id3v2Header);\n /* does the stream begin with the ID3 version 2 file identifier? */\n var id3v2TagSize;\n if (!new String(id3v2Header, \"ISO-8859-1\").startsWith(\"ID3\")) {\n /*\n * the tag size (minus the 10-byte header) is encoded into four\n * bytes where the most significant bit is clear in each byte\n */\n id3v2TagSize = (((id3v2Header[6] & 0x7f) << 21)\n | ((id3v2Header[7] & 0x7f) << 14)\n | ((id3v2Header[8] & 0x7f) << 7) | (id3v2Header[9] & 0x7f))\n + id3v2Header.length;\n } else {\n /* no ID3 version 2 tag in this stream */\n id3v2TagSize = 0;\n }\n return id3v2TagSize;\n }\n\n this.getLameTagFrame = function (gfp, buffer) {\n var gfc = gfp.internal_flags;\n\n if (!gfp.bWriteVbrTag) {\n return 0;\n }\n if (gfc.Class_ID != Lame.LAME_ID) {\n return 0;\n }\n if (gfc.VBR_seek_table.pos <= 0) {\n return 0;\n }\n if (buffer.length < gfc.VBR_seek_table.TotalFrameSize) {\n return gfc.VBR_seek_table.TotalFrameSize;\n }\n\n Arrays.fill(buffer, 0, gfc.VBR_seek_table.TotalFrameSize, 0);\n\n // 4 bytes frame header\n setLameTagFrameHeader(gfp, buffer);\n\n // Create TOC entries\n var toc = new_byte(NUMTOCENTRIES);\n\n if (gfp.free_format) {\n for (var i = 1; i < NUMTOCENTRIES; ++i)\n toc[i] = 0xff & (255 * i / 100);\n } else {\n xingSeekTable(gfc.VBR_seek_table, toc);\n }\n\n // Start writing the tag after the zero frame\n var streamIndex = gfc.sideinfo_len;\n /**\n * Note: Xing header specifies that Xing data goes in the ancillary data\n * with NO ERROR PROTECTION. If error protecton in enabled, the Xing\n * data still starts at the same offset, and now it is in sideinfo data\n * block, and thus will not decode correctly by non-Xing tag aware\n * players\n */\n if (gfp.error_protection)\n streamIndex -= 2;\n\n // Put Vbr tag\n if (gfp.VBR == VbrMode.vbr_off) {\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(0);\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(1);\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(2);\n buffer[streamIndex++] = 0xff & VBRTag1.charAt(3);\n\n } else {\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(0);\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(1);\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(2);\n buffer[streamIndex++] = 0xff & VBRTag0.charAt(3);\n }\n\n // Put header flags\n createInteger(buffer, streamIndex, FRAMES_FLAG + BYTES_FLAG + TOC_FLAG\n + VBR_SCALE_FLAG);\n streamIndex += 4;\n\n // Put Total Number of frames\n createInteger(buffer, streamIndex, gfc.VBR_seek_table.nVbrNumFrames);\n streamIndex += 4;\n\n // Put total audio stream size, including Xing/LAME Header\n var streamSize = (gfc.VBR_seek_table.nBytesWritten + gfc.VBR_seek_table.TotalFrameSize);\n createInteger(buffer, streamIndex, 0 | streamSize);\n streamIndex += 4;\n\n /* Put TOC */\n System.arraycopy(toc, 0, buffer, streamIndex, toc.length);\n streamIndex += toc.length;\n\n if (gfp.error_protection) {\n // (jo) error_protection: add crc16 information to header\n bs.CRC_writeheader(gfc, buffer);\n }\n\n // work out CRC so far: initially crc = 0\n var crc = 0x00;\n for (var i = 0; i < streamIndex; i++)\n crc = crcUpdateLookup(buffer[i], crc);\n // Put LAME VBR info\n streamIndex += putLameVBR(gfp, streamSize, buffer, streamIndex, crc);\n\n return gfc.VBR_seek_table.TotalFrameSize;\n }\n\n /**\n * Write final VBR tag to the file.\n *\n * @param gfp\n * global flags\n * @param stream\n * stream to add the VBR tag to\n * @return 0 (OK), -1 else\n * @throws IOException\n * I/O error\n */\n this.putVbrTag = function (gfp, stream) {\n var gfc = gfp.internal_flags;\n\n if (gfc.VBR_seek_table.pos <= 0)\n return -1;\n\n // Seek to end of file\n stream.seek(stream.length());\n\n // Get file size, abort if file has zero length.\n if (stream.length() == 0)\n return -1;\n\n // The VBR tag may NOT be located at the beginning of the stream. If an\n // ID3 version 2 tag was added, then it must be skipped to write the VBR\n // tag data.\n var id3v2TagSize = skipId3v2(stream);\n\n // Seek to the beginning of the stream\n stream.seek(id3v2TagSize);\n\n var buffer = new_byte(MAXFRAMESIZE);\n var bytes = getLameTagFrame(gfp, buffer);\n if (bytes > buffer.length) {\n return -1;\n }\n\n if (bytes < 1) {\n return 0;\n }\n\n // Put it all to disk again\n stream.write(buffer, 0, bytes);\n // success\n return 0;\n }\n\n}\n\nmodule.exports = VBRTag;\n","// List of valid html blocks names, accorting to commonmark spec\n// http://jgm.github.io/CommonMark/spec.html#html-blocks\n\n'use strict';\n\n\nmodule.exports = [\n 'address',\n 'article',\n 'aside',\n 'base',\n 'basefont',\n 'blockquote',\n 'body',\n 'caption',\n 'center',\n 'col',\n 'colgroup',\n 'dd',\n 'details',\n 'dialog',\n 'dir',\n 'div',\n 'dl',\n 'dt',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'frame',\n 'frameset',\n 'h1',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'iframe',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'menu',\n 'menuitem',\n 'meta',\n 'nav',\n 'noframes',\n 'ol',\n 'optgroup',\n 'option',\n 'p',\n 'param',\n 'pre',\n 'section',\n 'source',\n 'title',\n 'summary',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'title',\n 'tr',\n 'track',\n 'ul'\n];\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// Parse link destination\n//\n'use strict';\n\n\nvar isSpace = require('../common/utils').isSpace;\nvar unescapeAll = require('../common/utils').unescapeAll;\n\n\nmodule.exports = function parseLinkDestination(str, pos, max) {\n var code, level,\n lines = 0,\n start = pos,\n result = {\n ok: false,\n pos: 0,\n lines: 0,\n str: ''\n };\n\n if (str.charCodeAt(pos) === 0x3C /* < */) {\n pos++;\n while (pos < max) {\n code = str.charCodeAt(pos);\n if (code === 0x0A /* \\n */ || isSpace(code)) { return result; }\n if (code === 0x3E /* > */) {\n result.pos = pos + 1;\n result.str = unescapeAll(str.slice(start + 1, pos));\n result.ok = true;\n return result;\n }\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n pos++;\n }\n\n // no closing '>'\n return result;\n }\n\n // this should be ... } else { ... branch\n\n level = 0;\n while (pos < max) {\n code = str.charCodeAt(pos);\n\n if (code === 0x20) { break; }\n\n // ascii control characters\n if (code < 0x20 || code === 0x7F) { break; }\n\n if (code === 0x5C /* \\ */ && pos + 1 < max) {\n pos += 2;\n continue;\n }\n\n if (code === 0x28 /* ( */) {\n level++;\n if (level > 1) { break; }\n }\n\n if (code === 0x29 /* ) */) {\n level--;\n if (level < 0) { break; }\n }\n\n pos++;\n }\n\n if (start === pos) { return result; }\n\n result.str = unescapeAll(str.slice(start, pos));\n result.lines = lines;\n result.pos = pos;\n result.ok = true;\n return result;\n};\n","(function() {\n var L = require('./L').L,\n N = require('./N').N,\n Z = require('./Z').Z,\n M = require('./M').M,\n unorm = require('unorm');\n\n var _unicodeCategory = function(code) {\n if (~L.indexOf(code)) return 'L';\n if (~N.indexOf(code)) return 'N';\n if (~Z.indexOf(code)) return 'Z';\n if (~M.indexOf(code)) return 'M';\n return undefined;\n };\n\n module.exports = function(string, options) {\n string = string || '';\n options = options || {};\n var allowedChars = options.allowedChars || '-_~';\n var lower = typeof options.lower === 'boolean' ? options.lower : true;\n var spaces = typeof options.spaces === 'boolean' ? options.spaces : false;\n var rv = [];\n var chars = unorm.nfkc(string);\n for(var i = 0; i < chars.length; i++) {\n var c = chars[i];\n var code = c.charCodeAt(0);\n // Allow Common CJK Unified Ideographs\n // See: http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf - Table 12-2 \n if (0x4E00 <= code && code <= 0x9FFF) {\n rv.push(c);\n continue;\n }\n\n // Allow Hangul\n if (0xAC00 <= code && code <= 0xD7A3) {\n rv.push(c);\n continue;\n }\n\n // Japanese ideographic punctuation\n if ((0x3000 <= code && code <= 0x3002) || (0xFF01 <= code && code <= 0xFF02)) {\n rv.push(' ');\n }\n\n if (allowedChars.indexOf(c) != -1) {\n rv.push(c);\n continue;\n }\n var val = _unicodeCategory(code);\n if (val && ~'LNM'.indexOf(val)) rv.push(c);\n if (val && ~'Z'.indexOf(val)) rv.push(' ');\n }\n var slug = rv.join('').replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g,' ');\n if (!spaces) slug = slug.replace(/[\\s\\-]+/g,'-');\n if (lower) slug = slug.toLowerCase();\n return slug;\n };\n}());","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","/**\n * The Lexer class handles tokenizing the input in various ways. Since our\n * parser expects us to be able to backtrack, the lexer allows lexing from any\n * given starting point.\n *\n * Its main exposed function is the `lex` function, which takes a position to\n * lex from and a type of token to lex. It defers to the appropriate `_innerLex`\n * function.\n *\n * The various `_innerLex` functions perform the actual lexing of different\n * kinds.\n */\n\nvar matchAt = require(\"match-at\");\n\nvar ParseError = require(\"./ParseError\");\n\n// The main lexer class\nfunction Lexer(input) {\n this._input = input;\n}\n\n// The resulting token returned from `lex`.\nfunction Token(text, data, position) {\n this.text = text;\n this.data = data;\n this.position = position;\n}\n\n/* The following tokenRegex\n * - matches typical whitespace (but not NBSP etc.) using its first group\n * - matches symbol combinations which result in a single output character\n * - does not match any control character \\x00-\\x1f except whitespace\n * - does not match a bare backslash\n * - matches any ASCII character except those just mentioned\n * - does not match the BMP private use area \\uE000-\\uF8FF\n * - does not match bare surrogate code units\n * - matches any BMP character except for those just described\n * - matches any valid Unicode surrogate pair\n * - matches a backslash followed by one or more letters\n * - matches a backslash followed by any BMP character, including newline\n * Just because the Lexer matches something doesn't mean it's valid input:\n * If there is no matching function or symbol definition, the Parser will\n * still reject the input.\n */\nvar tokenRegex = new RegExp(\n \"([ \\r\\n\\t]+)|(\" + // whitespace\n \"---?\" + // special combinations\n \"|[!-\\\\[\\\\]-\\u2027\\u202A-\\uD7FF\\uF900-\\uFFFF]\" + // single codepoint\n \"|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\" + // surrogate pair\n \"|\\\\\\\\(?:[a-zA-Z]+|[^\\uD800-\\uDFFF])\" + // function name\n \")\"\n);\n\nvar whitespaceRegex = /\\s*/;\n\n/**\n * This function lexes a single normal token. It takes a position and\n * whether it should completely ignore whitespace or not.\n */\nLexer.prototype._innerLex = function(pos, ignoreWhitespace) {\n var input = this._input;\n if (pos === input.length) {\n return new Token(\"EOF\", null, pos);\n }\n var match = matchAt(tokenRegex, input, pos);\n if (match === null) {\n throw new ParseError(\n \"Unexpected character: '\" + input[pos] + \"'\",\n this, pos);\n } else if (match[2]) { // matched non-whitespace\n return new Token(match[2], null, pos + match[2].length);\n } else if (ignoreWhitespace) {\n return this._innerLex(pos + match[1].length, true);\n } else { // concatenate whitespace to a single space\n return new Token(\" \", null, pos + match[1].length);\n }\n};\n\n// A regex to match a CSS color (like #ffffff or BlueViolet)\nvar cssColor = /#[a-z0-9]+|[a-z]+/i;\n\n/**\n * This function lexes a CSS color.\n */\nLexer.prototype._innerLexColor = function(pos) {\n var input = this._input;\n\n // Ignore whitespace\n var whitespace = matchAt(whitespaceRegex, input, pos)[0];\n pos += whitespace.length;\n\n var match;\n if ((match = matchAt(cssColor, input, pos))) {\n // If we look like a color, return a color\n return new Token(match[0], null, pos + match[0].length);\n } else {\n throw new ParseError(\"Invalid color\", this, pos);\n }\n};\n\n// A regex to match a dimension. Dimensions look like\n// \"1.2em\" or \".4pt\" or \"1 ex\"\nvar sizeRegex = /(-?)\\s*(\\d+(?:\\.\\d*)?|\\.\\d+)\\s*([a-z]{2})/;\n\n/**\n * This function lexes a dimension.\n */\nLexer.prototype._innerLexSize = function(pos) {\n var input = this._input;\n\n // Ignore whitespace\n var whitespace = matchAt(whitespaceRegex, input, pos)[0];\n pos += whitespace.length;\n\n var match;\n if ((match = matchAt(sizeRegex, input, pos))) {\n var unit = match[3];\n // We only currently handle \"em\" and \"ex\" units\n if (unit !== \"em\" && unit !== \"ex\") {\n throw new ParseError(\"Invalid unit: '\" + unit + \"'\", this, pos);\n }\n return new Token(match[0], {\n number: +(match[1] + match[2]),\n unit: unit,\n }, pos + match[0].length);\n }\n\n throw new ParseError(\"Invalid size\", this, pos);\n};\n\n/**\n * This function lexes a string of whitespace.\n */\nLexer.prototype._innerLexWhitespace = function(pos) {\n var input = this._input;\n\n var whitespace = matchAt(whitespaceRegex, input, pos)[0];\n pos += whitespace.length;\n\n return new Token(whitespace[0], null, pos);\n};\n\n/**\n * This function lexes a single token starting at `pos` and of the given mode.\n * Based on the mode, we defer to one of the `_innerLex` functions.\n */\nLexer.prototype.lex = function(pos, mode) {\n if (mode === \"math\") {\n return this._innerLex(pos, true);\n } else if (mode === \"text\") {\n return this._innerLex(pos, false);\n } else if (mode === \"color\") {\n return this._innerLexColor(pos);\n } else if (mode === \"size\") {\n return this._innerLexSize(pos);\n } else if (mode === \"whitespace\") {\n return this._innerLexWhitespace(pos);\n }\n};\n\nmodule.exports = Lexer;\n","/**\n * This file converts a parse tree into a cooresponding MathML tree. The main\n * entry point is the `buildMathML` function, which takes a parse tree from the\n * parser.\n */\n\nvar buildCommon = require(\"./buildCommon\");\nvar fontMetrics = require(\"./fontMetrics\");\nvar mathMLTree = require(\"./mathMLTree\");\nvar ParseError = require(\"./ParseError\");\nvar symbols = require(\"./symbols\");\nvar utils = require(\"./utils\");\n\nvar makeSpan = buildCommon.makeSpan;\nvar fontMap = buildCommon.fontMap;\n\n/**\n * Takes a symbol and converts it into a MathML text node after performing\n * optional replacement from symbols.js.\n */\nvar makeText = function(text, mode) {\n if (symbols[mode][text] && symbols[mode][text].replace) {\n text = symbols[mode][text].replace;\n }\n\n return new mathMLTree.TextNode(text);\n};\n\n/**\n * Returns the math variant as a string or null if none is required.\n */\nvar getVariant = function(group, options) {\n var font = options.font;\n if (!font) {\n return null;\n }\n\n var mode = group.mode;\n if (font === \"mathit\") {\n return \"italic\";\n }\n\n var value = group.value;\n if (utils.contains([\"\\\\imath\", \"\\\\jmath\"], value)) {\n return null;\n }\n\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n var fontName = fontMap[font].fontName;\n if (fontMetrics.getCharacterMetrics(value, fontName)) {\n return fontMap[options.font].variant;\n }\n\n return null;\n};\n\n/**\n * Functions for handling the different types of groups found in the parse\n * tree. Each function should take a parse group and return a MathML node.\n */\nvar groupTypes = {};\n\ngroupTypes.mathord = function(group, options) {\n var node = new mathMLTree.MathNode(\n \"mi\",\n [makeText(group.value, group.mode)]);\n\n var variant = getVariant(group, options);\n if (variant) {\n node.setAttribute(\"mathvariant\", variant);\n }\n return node;\n};\n\ngroupTypes.textord = function(group, options) {\n var text = makeText(group.value, group.mode);\n\n var variant = getVariant(group, options) || \"normal\";\n\n var node;\n if (/[0-9]/.test(group.value)) {\n // TODO(kevinb) merge adjacent