diff --git a/ja-beta/AskAboutImage.html b/ja-beta/AskAboutImage.html new file mode 100644 index 0000000..d6bc639 --- /dev/null +++ b/ja-beta/AskAboutImage.html @@ -0,0 +1,806 @@ + + + + + + + 画像ファイルについて質問する · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + +
+ +
+ +
+ + + +
+
+ +
+
+ +
+ +

画像ファイルについて質問する

+

画像ファイルをインデックスに登録するとその画像について質問をすることができます。 + 画面左上のアプリメニューは「チャット」にしておいてください。

+
    +
  1. 画像ファイルを画面下のチャットボックスにドラッグ&ドロップします。
    + (Windowsの場合はエクスプローラー、Macの場合はファインダーからもチャットボックスに直接ドラッグ&ドロップすることができます)
    + Ask_image_01
  2. +
  3. チャットボックスの中にドロップした画像が表示されるので、質問を入力し、送信します。
    + Ask_image_02
  4. +
  5. AIからの回答が表示されます。
    + Ask_image_03
  6. +
+


+

次のページへ >

+

一覧に戻る

+ + +
+ +
+
+
+ +

results matching ""

+
    + +
    +
    + +

    No results matching ""

    + +
    +
    +
    + +
    +
    + +
    + + + + + + + + + + +
    + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/AskToAI.html b/ja-beta/AskToAI.html new file mode 100644 index 0000000..b1d2970 --- /dev/null +++ b/ja-beta/AskToAI.html @@ -0,0 +1,816 @@ + + + + + + + AIに質問する · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + +
    + +
    + +
    + + + +
    +
    + +
    +
    + +
    + +

    AIに質問する

    +

    AIにチャットで質問する

    +
      +
    1. 画面左上のアプリメニューを開き、一覧の中から「チャット」を選択します。(起動時のデフォルトではチャットの状態になっています)
      + useai_02_01.png
    2. +
    3. 画面中央下のチャットボックスに質問を入力し、送信ボタンをクリック(またはWindowsの場合はCtrl + Enter、macOSの場合はCmd + Enter)します。
      + useai_03.png
        +
      • 送信前にチャットボックスの左のLLM名から、使用するLLMを選択・変更することができます。
        + useai_03_02.png
      • +
      +
    4. +
    5. AIからの回答が表示されます。
    6. +
    7. 音声入力を利用する場合
    8. +
    +

    コードのコピー

    + チャットでAIにコードを生成させた場合、AIからの回答の中のコードに該当する部分が小窓で表示されます。
    + 小窓内の右上のコピーボタンをクリックすることで、対象のコードだけをコピーすることができます。
    + UseAI_code_01.png
    +

    +

    + マークダウン形式で生成した場合も同様に小窓で表示され、右上のコピーボタンから対象のマークダウン記述のみをコピーすることができます。
    + UseAI_code_02.png

    +


    +

    次のページへ >

    +

    一覧に戻る

    + + +
    + +
    +
    +
    + +

    results matching ""

    +
      + +
      +
      + +

      No results matching ""

      + +
      +
      +
      + +
      +
      + +
      + + + + + + + + + + +
      + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/AzureOpenAI.html b/ja-beta/AzureOpenAI.html new file mode 100644 index 0000000..c0b71e7 --- /dev/null +++ b/ja-beta/AzureOpenAI.html @@ -0,0 +1,825 @@ + + + + + + + Azure OpenAI Service · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      +
      + + + + + + +
      + +
      + +
      + + + +
      +
      + +
      +
      + +
      + +
      + +

      Azure OpenAI Service

      +

      ailia DX insightは、文章の生成をChatGPTで行います。 + OpenAI APIだけでなく、Azure OpenAI Serviceを介してChatGPTを利用することも可能です。 + Azure OpenAI Serviceについての詳細はこちらをご覧ください。

      +

      Azure OpenAI Serviceへの接続方法

      +

      設定画面の呼び出し

      +
        +
      1. ailia DX insightの初期画面にて、右上の歯車アイコンをクリックして設定ウィンドウを表示させます。
        + setup_03.png
      2. +
      3. 「チャットAI」の項目の中にある「Azure OpenAI Service」をクリックし、「+追加」を選択します + azure_01.png
      4. +
      +

      Azure OpenAI Serviceの設定を登録

      +

      AzureにデプロイしたChatGPTを登録するウィンドウが開きます。各項目を記入します。
      + azure_02.png

      +
        +
      • 名前:UI表示に使用する名称
      • +
      • APIキー: ChatGPTをデプロイしたリソースのAPIキー
      • +
      • デプロイ名: ChatGPTをデプロイした際に設定したデプロイ名
      • +
      • APIバージョン: 利用するAPIバージョン
          +
        • こちらのページの、「サポートされているバージョン」が利用可能です。
        • +
        +
      • +
      • リソース名: ChatGPTをデプロイしたリソースの名前
          +
        • ChatGPTをデプロイしたエンドポイントhttps://RESOURCE_NAME.openai.azure.com/のRESOURCE_NAMEにあたる部分です。
        • +
        +
      • +
      • モデル: デプロイしたモデル名(gpt-3.5-turbo等)
      • +
      • 説明:必要に応じてメモとして使用
      • +
      +


      +

      次のページへ >

      + + +
      + +
      +
      +
      + +

      results matching ""

      +
        + +
        +
        + +

        No results matching ""

        + +
        +
        +
        + +
        +
        + +
        + + + + + + + + + + +
        + + +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/Benchmark.html b/ja-beta/Benchmark.html new file mode 100644 index 0000000..7c71395 --- /dev/null +++ b/ja-beta/Benchmark.html @@ -0,0 +1,806 @@ + + + + + + + ベンチマーク機能 · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        +
        + + + + + + +
        + +
        + +
        + + + +
        +
        + +
        +
        + +
        + +

        ベンチマーク機能

        +

        ailia DX Insight内の機能を使い、お使いのハードウェアでのAI実行環境のベンチマークを測定することができます。 + 数多くあるLLMの中からご利用されるLLMに迷った場合や、ご利用されるPCを決める際の指標にご活用ください。

        +
          +
        1. 設定gearの「AI実行環境」の項目を選択します。
          + benchmark_01
        2. +
        3. 実行環境を選択します。
          + 画像検索および音声検索のクエリ処理、リランクはFP16に非対応のモデルです。それ以外の、文章登録、画像登録、音声登録、OCR、音声認識のモデルはFP16に対応しています。ベンチマーク対象のモデルはすべてFP16モデルとなっています。そのため、上の「実行環境(FP16対応モデル)」の項目を変更してください。
          + benchmark_02
          + GPUとCPUの選択肢が表示されるので、生成時に使用するものを選択します。
          + benchmark_03
        4. +
        5. 生成の際にドキュメント登録にかかる時間が計測され、結果が表示されます。
          + benchmark_04
        6. +
        +


        +

        次のページへ >

        + + +
        + +
        +
        +
        + +

        results matching ""

        +
          + +
          +
          + +

          No results matching ""

          + +
          +
          +
          + +
          +
          + +
          + + + + + + + + + +
          + + +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/ConfigFile.html b/ja-beta/ConfigFile.html new file mode 100644 index 0000000..071577f --- /dev/null +++ b/ja-beta/ConfigFile.html @@ -0,0 +1,817 @@ + + + + + + + コンフィグファイルを作成する · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          +
          + + + + + + +
          + +
          + +
          + + + +
          +
          + +
          +
          + +
          + +

          コンフィグファイルを作成する

          +

          コンフィグファイルを作成することによって利用規約の画像をアプリケーション起動時に表示させたり、企業ロゴを常時表示させることができます。
          +

          +

          コンフィグファイルの作成例

          +

          コンフィグのファイルフォーマットはjsonで作成してください。

          +
          {
          "apiKey" : {
          "openAI": "YourOpenAIApiKey"
          }
          "licenseFile": "/path/to/license/file",
          "terms": {
          "image": "/path/to/terms/image"
          },
          "logo": "path/to/logo/image",
          "watermark": ""path/to/watermark/image",
          } +

          "apiKey"
          + OpenAIのAPIキーをこちらに入力します。
          + "licenseFile"
          + ライセンスファイルへのパスをコンフィグファイルからの相対パスで指定します。
          + "terms" "logo"
          + 画像ファイルへのパスをコンフィグファイルからの相対パスで指定します。

          +

          ライセンスファイル以外の項目は省略してもアプリの起動には影響はありません。

          +

          作成したコンフィグファイルは、社内の共有フォルダなどに配置してください。
          + 設定や画像ファイルはローカルにコピーされるため、初期設定以外では共有フォルダへのアクセスは不要です。

          +

          コンフィグファイルの適用/ライセンスの適用

          +

          ailia DX Insightの初回起動時に「ライセンスファイルもしくはコンフィグファイルを選択してください」というウィンドウが表示されます。フォルダを指定して適用させてください。
          + setup_001
          + または、設定画面gearの「コンフィグファイル」項目内にてライセンスの登録/更新をすることができます。
          + また、同項目内にて、コンフィグファイルの登録を解除することができます。
          + ConfigFile_01_02

          +

          ライセンスファイルの有効期限の確認

          +

          設定画面の「コンフィグファイル」項目内にてライセンスの有効期限を確認することができます。 + ConfigFile_01_03

          +


          +

          次のページへ >

          + + +
          + +
          +
          +
          + +

          results matching ""

          +
            + +
            +
            + +

            No results matching ""

            + +
            +
            +
            + +
            +
            + +
            + + + + + + + + + + +
            + + +
            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/CustomLLM.html b/ja-beta/CustomLLM.html new file mode 100644 index 0000000..b2cbdc7 --- /dev/null +++ b/ja-beta/CustomLLM.html @@ -0,0 +1,826 @@ + + + + + + + カスタムLLMの設定 · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
            +
            + + + + + + +
            + +
            + +
            + + + +
            +
            + +
            +
            + +
            + +

            カスタムLLMの設定

            +

            ailia DX Insightではローカルに構築したカスタムLLMを使用することで完全にオフライン環境でより安全な環境で動作させることができます。 + カスタムLLMはailia DX Insightを動作させるPC上で動かすことも出来ますし、別のPCやサーバーなどで動作させているものに接続することも可能です。

            +

            ChatGPTの互換サーバについて

            +

            ailia DX InsightはChatGPTの互換サーバに対応しています。
            + ローカルLLMを使用する方法には以下のものがあります。

            + +

            カスタムLLMのクライアントの設定

            +

            設定画面の呼び出し

            +
              +
            1. ailia DX Insightの初期画面にて、右上の歯車アイコンをクリックして設定ウィンドウを表示させます。
              + setup_03.png
            2. +
            3. 「チャットAI」の項目の中にある「カスタム(OpenAIサーバー)」をクリックし、「+追加」を選択します。
              + CustomLLM_01.png
            4. +
            +

            カスタムモデル登録

            +

            カスタムモデル登録ウィンドウが開きます。各項目を記入します。
            + CustomLLM_02.png

            +
              +
            • 名前:使用するLLMの名称 (UI表示にのみ使用するため何でも構わない)
            • +
            • 説明:必要に応じてメモとして使用
            • +
            • モデル:OpenAI互換APIサーバーで指定したモデル名 (gpt-3.5-turbo等)
            • +
            • URL(*):OpenAI互換APIサーバーが発信しているIPアドレスとport番号 (サーバー公開が–host 192.168.1.10 –port 8000の場合、http://192.168.1.10:8000)
            • +
            • 最大トークン長:モデルの対応している最大トークン数を設定(4096以上の値を設定する、この値に応じてRAGのtopKが決定される) +
            • +
            +

            (*)未記入の場合、HTTPの接続エラーになります。

            +


            +

            次のページへ >

            + + +
            + +
            +
            +
            + +

            results matching ""

            +
              + +
              +
              + +

              No results matching ""

              + +
              +
              +
              + +
              +
              + +
              + + + + + + + + + + +
              + + +
              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/CustomLLM_FastChat.html b/ja-beta/CustomLLM_FastChat.html new file mode 100644 index 0000000..b587f4e --- /dev/null +++ b/ja-beta/CustomLLM_FastChat.html @@ -0,0 +1,816 @@ + + + + + + + FastChatを使用したカスタムLLM構築 · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
              +
              + + + + + + +
              + +
              + +
              + + + +
              +
              + +
              +
              + +
              + +
              + +

              FastChatを使用したカスタムLLM構築

              +

              FastChatのインストール

              +

              サーバーを立てる端末にpythonモジュールとしてfschatをインストールします。 + pip3 install fschat

              +

              サーバの起動

              +

              vicuna-7b-v1.5をChatGPT API互換サーバーとして起動します。
              + python3 -m fastchat.serve.controller
              + python3 -m fastchat.serve.model_worker –model-names “vicuna” –model-path lmsys/vicuna-7b-v1.5 –load-8bit
              + python3 -m fastchat.serve.openai_api_server –-host localhost –-port 8000

              +

              aillia DX InsightでカスタムLLMの登録

              +

              詳しい設定画面の呼び出し方はこちらをご参照ください。
              + CustomLLM_02.png

              +
                +
              • 名前:使用するLLMの名称 (UI表示にのみ使用するため何でも構わない)
              • +
              • 説明:必要に応じてメモとして使用
              • +
              • モデル:OpenAI互換APIサーバーで指定したモデル名 (gpt-3.5-turbo等)
              • +
              • URL(*):OpenAI互換APIサーバーが発信しているIPアドレスとport番号 (サーバー公開が–host 192.168.1.10 –port 8000の場合、http://192.168.1.10:8000)
              • +
              • 最大トークン長:モデルの対応している最大トークン数を設定(4096以上の値を設定する、この値に応じてRAGのtopKが決定される) +
              • +
              +

              (*)未記入の場合、HTTPの接続エラーになります。

              +


              +

              次のページへ >

              + + +
              + +
              +
              +
              + +

              results matching ""

              +
                + +
                +
                + +

                No results matching ""

                + +
                +
                +
                + +
                +
                + +
                + + + + + + + + + + +
                + + +
                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/CustomLLM_LMstudio.html b/ja-beta/CustomLLM_LMstudio.html new file mode 100644 index 0000000..8f852a2 --- /dev/null +++ b/ja-beta/CustomLLM_LMstudio.html @@ -0,0 +1,836 @@ + + + + + + + LMスタジオを使用したカスタムLLM構築 · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                +
                + + + + + + +
                + +
                + +
                + + + +
                +
                + +
                +
                + +
                + +

                LMスタジオを使用したカスタムLLM構築

                +

                LMスタジオのインストール

                +
                  +
                1. https://lmstudio.ai/よりLMスタジオをインストールします。
                  + CustomLLM_03
                2. +
                +

                カスタムLLMのダウンロード

                +
                  +
                1. LMスタジオを起動させ、画面中央にある検索バーからLLMを検索します。
                  + ここでは例として「DataPilot-ArrowPro-7B-KUJIRA-gguf」を使用してLLMを構築していきます。
                  + CustomLLM_04
                2. +
                3. 検索をすると画面右側に該当する検索候補が複数表示されます。
                  + 目的のLLMを見つけたら「Download」をクリックしてモデルのダウンロードを開始します。
                  + CustomLLM_05
                4. +
                +

                カスタムLLMの立ち上げ

                +
                  +
                1. ダウンロード完了後、左サイドバー内にある「↔」ボタンをクリックして画面のモードを変更します。
                  + 画面上部にある「Select a model to load」をクリックすると、プルダウンでダウンロード済みのLLMが一覧で表示されるので、ダウンロードしたモデルを選択します。
                  + CustomLLM_06
                    +
                  • 画面中央付近にailia DX Insight内の設定で使用するカスタムLLMのURLが表示されます。(通常はlocalhost:1234に設定されます)
                    + CustomLLM_07
                  • +
                  • 画面右側「Model Inspector」内に記載のcontext_lengthの数値がailia DX Insight内の設定で使用する「最大トークン数」となります。
                    + CustomLLM_08
                  • +
                  +
                2. +
                +

                aillia DX InsightでカスタムLLMの登録

                +

                詳しい設定画面の呼び出し方はこちらをご参照ください。
                + CustomLLM_02_02.png

                +
                  +
                • 名前:使用するLLMの名称 (UI表示にのみ使用するため何でも構わない)
                • +
                • 説明:必要に応じてメモとして使用
                • +
                • モデル:ダウンロードしたモデルの名称
                • +
                • URL(*):カスタムLLMの立ち上げで表示されたURL(通常はlocalhost:1234に設定されます)
                • +
                • 最大トークン長:カスタムLLMの立ち上げで表示されたcontext_lengthの数値 +
                • +
                +

                (*)未記入の場合、HTTPの接続エラーになります。

                +

                ローカルLLMの処理速度を向上させる方法

                +

                画面右側の「Advanced Configration」内にある「GPU Settings」のパラメータ値を変更することでGPUメモリを使用する割合を変更することができます。
                + GPU Offloadパラメータを最大に設定すると、GPUメモリを使用した高速処理をおこなうことができます。
                + CustomLLM_09

                +


                +

                次のページへ >

                + + +
                + +
                +
                +
                + +

                results matching ""

                +
                  + +
                  +
                  + +

                  No results matching ""

                  + +
                  +
                  +
                  + +
                  +
                  + +
                  + + + + + + + + + + +
                  + + +
                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/CustomLLM_Ollama.html b/ja-beta/CustomLLM_Ollama.html new file mode 100644 index 0000000..0be06e0 --- /dev/null +++ b/ja-beta/CustomLLM_Ollama.html @@ -0,0 +1,844 @@ + + + + + + + Ollamaを使用したカスタムLLM構築 · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                  +
                  + + + + + + +
                  + +
                  + +
                  + + + +
                  +
                  + +
                  +
                  + +
                  + +

                  Ollamaを使用したカスタムLLM構築

                  +

                  Ollamaのインストール

                  +

                  https://ollama.comよりOllamaをインストールしてください。
                  + CustomLLM_10

                  +

                  Ollamaの起動(Windows)

                  +
                    +
                  1. インストールした「OllamaSetup.exe」を起動し、インストールをします。
                    + CustomLLM_11

                    +
                  2. +
                  3. インストールが完了したら、コマンドプロンプトを起動してパスが通っていることを確認します。
                    + コマンドプロンプトでollama --helpを実行し、次のようなヘルプ画面が表示されることを確認してください。

                    +
                  4. +
                  +
                  Large language model runner

                  Usage:
                  ollama [flags]
                  ollama [command]

                  Available Commands:
                  serve Start ollama
                  create Create a model from a Modelfile
                  show Show information for a model
                  run Run a model
                  pull Pull a model
                  from a registry
                  push Push a model to a registry
                  list List models
                  ps List running models
                  cp Copy a model
                  rm Remove a model
                  help Help about any command

                  Flags:
                  -h, --help help for ollama
                  -v, --version Show version information

                  Use "ollama [command] --help" for more information about a command.
                  +

                  LLMのダウンロード

                  +
                    +
                  1. ローカルで動かしたいLLMをollama pullのコマンドでダウンロードします。 + 例:Googleのgemma-2-9Bをダウンロードする場合、コマンドプロンプトにollama pull gemma2と入力します。
                    + CustomLLM_12

                    +
                      +
                    • 他のPCからもこのローカルLLMにアクセスしたい場合はコマンドプロンプトでset OLLAMA_HOST=0.0.0.0を実行し、OLLAMA_HOSTの環境を「0.0.0.0」に設定します。
                    • +
                    +
                  2. +
                  3. コマンドプロンプトでollama serveを実行することでLLMを起動させます。
                    + CustomLLM_14

                    +
                      +
                    • 「Listening on [::]:11434」と表示されている場合は他のPCからもアクセス可能です。
                    • +
                    • 「Listening on 127.0.0.1:11434」の場合はそのPC内からのみアクセスできます。 + ここの「11434」の数値がポート番号となり、aillia DX Insight内での設定に使用します。
                    • +
                    +
                  4. +
                  +

                  aillia DX InsightでカスタムLLMの登録

                  +

                  詳しい設定画面の呼び出し方はこちらをご参照ください。
                  + CustomLLM_02_03.png

                  +
                    +
                  • 名前:使用するLLMの名称 (UI表示にのみ使用するため何でも構わない)
                  • +
                  • 説明:必要に応じてメモとして使用
                  • +
                  • モデル:ダウンロードしたモデルの名称(今回の例ではgemma2)
                  • +
                  • URL(*):ollama serveで表示されたポートのURL(今回の例ではhttp://localhost:11434)
                  • +
                  • 最大トークン長:gemma-2-9Bの場合、「8192」となります。 +
                  • +
                  +

                  (*)未記入の場合、HTTPの接続エラーになります。

                  +

                  ダウンロードしたLLMの削除

                  +

                  LLMが容量を圧迫する場合や、間違えたモデルをダウンロードしてしまった場合、以下の手順でLLMを削除することができます。

                  +
                    +
                  1. コマンドプロンプトでollama listを実行すると、ダウンロード済みのモデルが一覧で表示されます。
                  2. +
                  3. コマンドプロンプトでollama rm モデル名を実行することでダウンロード済みのモデルを削除をすることができます。
                    + CustomLLM_13.png
                  4. +
                  +


                  +

                  次のページへ >

                  + + +
                  + +
                  +
                  +
                  + +

                  results matching ""

                  +
                    + +
                    +
                    + +

                    No results matching ""

                    + +
                    +
                    +
                    + +
                    +
                    + +
                    + + + + + + + + + + +
                    + + +
                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/CustomLLM_Recomend.html b/ja-beta/CustomLLM_Recomend.html new file mode 100644 index 0000000..90490b2 --- /dev/null +++ b/ja-beta/CustomLLM_Recomend.html @@ -0,0 +1,905 @@ + + + + + + + 弊社推奨LLM · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    +
                    + + + + + + +
                    + +
                    + +
                    + + + +
                    +
                    + +
                    +
                    + +
                    + +
                    + +

                    弊社推奨LLM

                    +

                    GPUメモリ8GB未満~8GBのPCをご利用になる場合に推奨するLLMの一覧です。

                    +

                    超小型(0.5B ~ 4B)

                    +

                    Qwen/Qwen2-0.5B -Instruct-GGUF(RAM使用量 1.17~1.35GB)

                    +

                    Qwen/Qwen2-7B-Instruct-GGUF(RAM使用量 3.65~5.05GB)

                    +

                    特徴: + アリババクラウドが提供するLLMとなっております。 + 英語と中国語に加えて27の言語での学習データを活用し、自然言語理解、知識獲得、コーディング、数学、多言語対応などのベンチマークで高いパフォーマンスを示しています。 + 0.5Bと非常に小さなモデルですので、知識量は少ないですが低スペックのPCで使用する際に最適です。

                    +


                    +

                    lmstudio-community/gemma-2-9b-it-GGUF(RAM使用量 5.69~10.07GB)

                    +

                    bartowski/gemma-2-2b-it-GGUF(RAM使用量 1.79~3.05GB)

                    +

                    特徴: + Gemma2は、Googleの最先端のAIモデルであるGeminiと同じアーキテクチャを用いて構築されており、 + 軽量でありながら高い性能を発揮します。特に270億パラメータモデルは、そのサイズクラスで最高の性能を発揮し、 + 2倍以上の規模のモデルに匹敵する性能を実現しています。また、90億パラメータモデルも、 + 同サイズの他のオープンモデルを上回る優れた性能を示しています。 + また、20億パラメータモデルはサイズに対してクラス最高のパフォーマンスとなりノートPC等での活用に適します。

                    +


                    +

                    microsoft/Phi-3-mini-4k-instruct-gguf(RAM使用量 2.99GB)

                    +

                    QuantFactory/Phi-3-mini-128k-instruct-GGUF(RAM使用量 2.08~4.54GB)

                    +

                    特徴: + Microsoft社が提供するLLMとなっております。3.8B(38 億個のパラメータ)という非常に小型なモデルながら、 + 2倍以上大きいモデルと同等の性能を有しています。 + 現在、4Kトークンと128Kトークンに対応した2つのモデルが公開されています。

                    +


                    +

                    小型(7B ~ 9B)

                    +

                    mmnga/umiyuki-Umievo-itr012-Gleipnir-7B-gguf(RAM使用量 2.33~6.34GB)

                    +

                    特徴: + Japanese-Starling-ChatV-7B、Ninja-v1-RP-expressive-v2、Vecteus-v1、Japanese-Chat-Umievo-itr004-7b4 + の4モデルを統合することで完成した日本語性能の高いLLMです。

                    +


                    +

                    mmnga/DataPilot-ArrowPro-7B-KUJIRA-gguf(RAM使用量 2.26~3.49GB)

                    +

                    mmnga/ArrowPro-7B-KillerWhale-gguf(RAM使用量 2.26~6.24GB)

                    +

                    特徴: + オープンソースのLLM「NTQAI/chatntq-ja-7b-v1.0」を基にして、 + AIを活用したバーチャルYouTuber(AITuber)やAIアシスタントでの使用を目的に開発されました。 + 日本語での性能が高く、会話の品質においても高評価を得ています。 + 「ArrowPro-7B-KillerWhale」は「DataPilot/ArrowPro-7B-KUJIRA」の強化版という位置づけです。

                    +


                    +

                    mmnga/Llama-3.1-8B-Instruct-gguf(RAM使用量 2.26~5.79GB)

                    +

                    特徴: + Meta社が提供するこれまでで最も先進的かつ高性能なLLMとなっております。 + Llama 3.1は128Kのコンテキスト長、最先端のツール使用、推論機能の強化により、長文テキストの要約、 + 多言語会話エージェント、コーディング支援などの高度なユースケースをサポートしています。

                    +


                    +

                    mmnga/Llama-3-ELYZA-JP-8B-gguf(RAM使用量 2.73~8.75GB)

                    +

                    東大松尾研究室発のAIカンパニー株式会社ELYZA(イライザ)が提供する日本語に特化したLLMとなっております。 + Meta社のLlama 3 8B-Instructをベースに日本語の大規模データセットを用いて訓練され、 + 日本語の文法、語彙、文化的背景に精通しており、日本語特有の表現やニュアンスを正確に理解し、 + 洗練された日本語文章を生成することができます。

                    +


                    +

                    中型(それ以上)

                    +

                    mmnga/ELYZA-japanese-Llama-2-13b-fast-instruct-gguf(RAM使用量 6.13~14.31GB)

                    +

                    特徴: + 東大松尾研究室発のAIカンパニー株式会社ELYZA(イライザ)が提供する日本語に特化したLLMとなっております。 + Meta社のLlama 2 13Bをベースに日本語の大規模データセットを用いて訓練され、 + 日本語の文法、語彙、文化的背景に精通しており、日本語特有の表現やニュアンスを正確に理解し、 + 洗練された日本語文章を生成することができます。

                    +

                    ※まもなくLlama3ベースの新しいELYZAモデルが公開される予定です(2024年6月27日現在)

                    +


                    +

                    lmstudio-community/gemma-2-27b-it-GGUF(RAM使用量 8~29.65GB)

                    +

                    特徴: + Gemma2は、Googleの最先端のAIモデルであるGeminiと同じアーキテクチャを用いて構築されており、 + 軽量でありながら高い性能を発揮します。特に270億パラメータモデルは、そのサイズクラスで最高の性能を発揮し、 + 2倍以上の規模のモデルに匹敵する性能を実現しています。また、90億パラメータモデルも、 + 同サイズの他のオープンモデルを上回る優れた性能を示しています。

                    +


                    +

                    andrewcanis/c4ai-command-r-v01-GGUF(RAM使用量 8~10.27GB)

                    +

                    特徴: + Command-Rは、CohereForAIが作ったLLMで、35B(350億)のパラメータが含まれています。 + このモデルは、大量の情報を元に、文章を生成したり、要約したり、質問に答えたりするのが得意です。 + また、最大128kトークンの長文コンテキストに対応します。

                    +


                    +

                    pmysl/c4ai-command-r-plus-GGUF(RAM使用量 8~212.71GB)

                    +

                    特徴: + Command R+は、command Rの強化版となる104B(1,040億)のパラメータを含むLLMです。 + このモデルはエンタープライズ向けに優れた性能を発揮するようにデザインされ、 + 誰でも使えるオープンソースでありながら、GPT-4 Turboに迫る性能を持っています。 + また、最大128Kの長文コンテキストに対応します。

                    +

                    (補足)command-r-v01/Command R Plusの利用について: + command-r-v01/Command R Plusは非営利目的での使用を前提に、モデルの変更や配布をおこなうLLMとなります。 + 商用利用(ビジネス利用)については、提供元の有償のAPIサービスを利用する必要がありますのでご注意ください。 + 有償APIの取得については右記サイトよりおこなっていただくことができます(https://cohere.com/command)

                    +


                    +

                    Qwen/Qwen2-72B-Instruct-GGUF(RAM使用量 8~148.98GB)

                    +

                    アリババクラウドが提供するLLMとなっております。 + 英語と中国語に加えて27の言語での学習データを活用し、自然言語理解、知識獲得、コーディング、数学、 + 多言語対応などのベンチマークで高いパフォーマンスを示しています。 + 7B・72Bモデルについては、最大128Kトークンまでの長文コンテキストに対応します。

                    +


                    +

                    mmnga/Llama-3.1-70B-Instruct-gguf(RAM使用量 7.66~9.07GB)

                    +

                    特徴: + Meta社が提供するこれまでで最も先進的かつ高性能なLLMとなっております。 + Llama 3.1は128Kのコンテキスト長、最先端のツール使用、推論機能の強化により、長文テキストの要約、 + 多言語会話エージェント、コーディング支援などの高度なユースケースをサポートしています。

                    +


                    +

                    弊社推奨LLMについての補足

                    +

                    推奨LLMをLMスタジオで検索いただくと、以下のように、多くのモデルが表示されるかと思います。
                    + 弊社では、サイズと性能のバランスに優れた4ビット量子化モデルの利用を推奨させていただいております。
                    + ※具体的にはQ4_K_Mの記載のあるもの、またはそれに近しい量子化がされているものとなります。
                    + CustomLLM_15

                    +


                    +

                    LinuxサーバーでLMスタジオを動作させる場合

                    +

                    LinuxサーバーでLMスタジオを動作させてailia DX insightから接続しようとした際に以下のようなエラーが表示された際はLinuxサーバーのファイヤーウォール設定でポートへのアクセスが禁止されている可能性があります。
                    + CustomLLM_16.png
                    + 以下のコマンドでポートをアクセスを許可してください。
                    + sudo ufw allow 1234/tcp
                    + ※上記のポート番号「1234」はLMスタジオで設定した番号に置き換えてください。
                    + CustomLLM_17.png

                    +


                    +

                    次のページへ >

                    + + +
                    + +
                    +
                    +
                    + +

                    results matching ""

                    +
                      + +
                      +
                      + +

                      No results matching ""

                      + +
                      +
                      +
                      + +
                      +
                      + +
                      + + + + + + + + + + +
                      + + +
                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/DocumentFile.html b/ja-beta/DocumentFile.html new file mode 100644 index 0000000..93aa56d --- /dev/null +++ b/ja-beta/DocumentFile.html @@ -0,0 +1,858 @@ + + + + + + + 文書ファイルについて質問する · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                      +
                      + + + + + + +
                      + +
                      + +
                      + + + +
                      +
                      + +
                      +
                      + +
                      + +

                      文書ファイルについて質問する

                      +

                      文書ファイルをインデックスに登録すると、登録した文書に記載された情報についてAIに質問することができます。 +

                      +

                      ファイルをインデックス登録する方法についてはこちらをご確認ください。

                      +

                      文書ファイル内の情報について質問する

                      +
                        +
                      1. 画面左上のアプリメニューから「チャット」を選択します。
                        + useai_02_02.png

                        +
                      2. +
                      3. インデックス登録した質問したい文書ファイルを右クリックし、「この文章を対象にチャット」を選択します。
                        + useai_08_02.png

                        +
                      4. +
                      5. 指定されたファイル、またはフォルダが上部に表示されていることを確認します。
                        + useai_08_04.png

                        +
                      6. +
                      7. チャットボックスの左側の表示が「RAG」となるので、質問を入力し、送信します。
                        + useai_08.png

                        +
                      8. +
                      9. AIが関連するファイルを調べた回答が表示されます。(検索はローカルAIで行われます)
                        + useai_08_05.png

                        +
                      10. +
                      +


                      +
                        +
                      • 生成された回答を上にスクロールしてくと、AIが参照した文章が表示されます。
                        + 参照された文章をクリックすることで参照箇所を確認することができます。
                        + useai_08_06.png
                      • +
                      +


                      +
                        +
                      • 通常のチャットに戻る場合には「絞り込みを解除」をクリックします。
                        + useai_08_07.png
                      • +
                      +

                      文書全体を渡して質問

                      +

                      ailia DX InsightではRAGを使用することによって回答性能を向上させています。RAGについてはこちらをご確認ください。
                      + しかし、要件によってはテキストのすべての要素を洗い出したい場面があります。
                      + その場合は、文章ファイルを右クリックして、「この文章全体を渡して質問(DOC)」を選択してください。
                      + useai_08_07_01.png
                      + DOCの場合、RAGによる情報検索をを行わず、ドキュメント全体をChatGPTに投げます。コストはかかりますが、より高精度になります。なお、チャットを継続した場合も、その都度、ドキュメント全体のトークンのコストがかかります。

                      +

                      複数の文書ファイルについて質問する

                      +

                      関連の文書ファイルをフォルダにまとめておくことで、フォルダ内の複数文書ファイルに跨った内容の質問をすることができます。
                      + 画面左上のアプリメニューはチャットの状態にしておいてください。

                      +
                        +
                      1. インデックス登録済みのファイルが格納されたフォルダを右クリックし、「このフォルダを対象にチャット」を選択します。
                        + useai_08_08.png
                      2. +
                      3. 指定されたフォルダが上部に表示されていることを確認します。
                        下部にはフォルダに含まれるファイルが一覧で表示されます。
                        + useai_08_09.png
                      4. +
                      5. チャットボックスの左側の表示が「RAG」となるので、質問を入力し、送信します。
                          + useai_08_10.png
                      6. +
                      7. AIが関連するファイルを調べた回答が表示されます。(検索はローカルAIで行われます)
                        + useai_08_11.png
                        +

                        +
                      8. +
                      9. 生成された回答を上にスクロールしてくと、AIが参照したファイル、文章を確認することができます。
                        また、参照された文章をクリックすることで参照箇所を確認することができます。
                        + useai_08_12.png

                        +
                      10. +
                      +


                      +
                        +
                      • 通常のチャットに戻る場合には「絞り込みを解除」をクリックします。
                      • +
                      +

                      RAG

                      +

                      ailia DX Insightは回答を生成する際、Retrieval-Augmented Generation(RAG)を使用することで出力結果の根拠を明確にし、事実に基づかない情報の生成を抑制しています。
                      + RAGに関して、詳しくはこちらをご参照ください。

                      +


                      +

                      次のページへ >

                      +

                      一覧に戻る

                      + + +
                      + +
                      +
                      +
                      + +

                      results matching ""

                      +
                        + +
                        +
                        + +

                        No results matching ""

                        + +
                        +
                        +
                        + +
                        +
                        + +
                        + + + + + + + + + + +
                        + + +
                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/Embedding.html b/ja-beta/Embedding.html new file mode 100644 index 0000000..e688d2c --- /dev/null +++ b/ja-beta/Embedding.html @@ -0,0 +1,800 @@ + + + + + + + エンベディングについて · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                        +
                        + + + + + + +
                        + +
                        + +
                        + + + +
                        +
                        + +
                        +
                        + +
                        + +
                        + +

                        エンベディングとは

                        +

                        エンベディング(Embedding)とはチャンクのテキストをベクトルデータに変換する技術です。 + ベクトル間の距離を計算することで、テキストとテキストの意味が近いかを判定可能です。 + RAGでは、質問文のテキストのベクトルと、チャンクのベクトルの距離を計測することで、質問文に近いチャンクを検索します。

                        +

                        Embedding_01.png

                        +


                        +

                        次のページへ >

                        + + +
                        + +
                        +
                        +
                        + +

                        results matching ""

                        +
                          + +
                          +
                          + +

                          No results matching ""

                          + +
                          +
                          +
                          + +
                          +
                          + +
                          + + + + + + + + + + +
                          + + +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/FileView.html b/ja-beta/FileView.html new file mode 100644 index 0000000..fb49116 --- /dev/null +++ b/ja-beta/FileView.html @@ -0,0 +1,841 @@ + + + + + + + ファイルビューの操作 · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          +
                          + + + + + + +
                          + +
                          + +
                          + + + +
                          +
                          + +
                          +
                          + +
                          + +

                          ファイルビューの操作

                          +

                          ファイルの並び順を変える

                          +

                          ファイルビュー上部に並んでいる項目名をクリックすると、ファイルの並び順が変わります。
                          + file_view_01.png

                          +
                            +
                          • ファイル名で並び替え
                            + 「ファイル名」をクリックすると、名前順(A-Z/Z-A)に並びます。

                            +
                          • +
                          • ファイルサイズで並び替え
                            + 「サイズ」をクリックすると、サイズが大きい/小さい順に並びます。

                            +
                          • +
                          • インデックス登録の有無で並び替え
                            + 「AIステータス」をクリックすると、インデックス登録済/未登録で並びます。

                            +
                          • +
                          • 更新日時で並び替え
                            + 「更新日時」をクリックすると、ファイルの更新日時の新しい/古い順に並びます。 +

                            +
                          • +
                          +

                          ディレクトリの移動

                          +

                          ファイルビューの項目の左上の記号から、ディレクトリ間を移動することができます。
                          また、カレントディレクトリの表示から、上の階層に直接移動することもできます。
                          + file_view_01_01.png

                          +

                          ファイルの表示方法を変える

                          +

                          ファイルビューの右上にある表示モードボタンをクリックすると、ファイルの表示方法(リスト表示/グリッド表示)を変えることができます。 + グリッド表示では、画像ファイルのサムネイルがグリッド状に並びます。
                          + file_view_02.png
                          + file_view_02_01.png
                          +

                          +

                          フォルダをブックマークに追加する

                          +

                          頻繁に開くフォルダをブックマークに追加することができます。

                          +
                            +
                          1. ブックマークに追加したいフォルダにカーソルを合わせ右クリックし、「このフォルダをブックマークに追加する」を選択します。
                            + file_view_03.png
                          2. +
                          3. 左のサイドバーにあるブックマークにフォルダが追加されます。
                            + file_view_04.png
                            +
                          4. +
                          +

                          フォルダをブックマークから削除する

                          +

                          この操作ではフォルダ本体の削除は行われません。

                          +
                            +
                          1. 左サイドバーにあるブックマーク内の、削除したいフォルダを右クリックし、「このフォルダをブックマークから削除」を選択します
                            + file_view_05.png
                          2. +
                          3. ブックマークからフォルダが削除されます。 +
                          4. +
                          +

                          初期ディレクトリを設定する

                          +

                          設定gearの中にあるファイルビューの項目から起動時の初期ディレクトリを選択することができます。
                          + file_view_06.png

                          +


                          +

                          次のページへ >

                          + + +
                          + +
                          +
                          +
                          + +

                          results matching ""

                          +
                            + +
                            +
                            + +

                            No results matching ""

                            + +
                            +
                            +
                            + +
                            +
                            + +
                            + + + + + + + + + + +
                            + + +
                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/Gemini.html b/ja-beta/Gemini.html new file mode 100644 index 0000000..77785bd --- /dev/null +++ b/ja-beta/Gemini.html @@ -0,0 +1,816 @@ + + + + + + + Gemini · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                            +
                            + + + + + + +
                            + +
                            + +
                            + + + +
                            +
                            + +
                            +
                            + +
                            + +
                            + +

                            Gemini

                            +

                            ailia DX insightは、Geminiを使用して文章の生成を行うこともできます。 + Geminiについての詳細はこちらをご覧ください。

                            +

                            Geminiへの接続方法

                            +

                            設定画面の呼び出し

                            +
                              +
                            1. ailia DX insightの初期画面にて、右上の歯車アイコンをクリックして設定ウィンドウを表示させます。
                              + setup_03.png
                            2. +
                            3. 「チャットAI」の項目の中にある「Gemini」をクリックし、「+追加」を選択します + gemini_01.png
                            4. +
                            +

                            Geminiの設定を登録

                            +
                              +
                            1. GeminiにデプロイしたChatGPTを登録するウィンドウが開きます。各項目を記入します。
                              + gemini_02.png

                              +
                                +
                              • 名前:UI表示に使用する名称
                              • +
                              • 説明:必要に応じてメモとして使用
                              • +
                              • モデル: デプロイしたモデル名
                              • +
                              • 最大トークン長: モデルの最大トークン数
                              • +
                              +
                            2. +
                            3. APIキーを登録してくださいとAPIキーのセクションに表示されているので、設定します。
                              + APIキー、モデル名についてはこちらをご覧ください。

                              +
                            4. +
                            +


                            +

                            HOMEに戻る

                            + + +
                            + +
                            +
                            +
                            + +

                            results matching ""

                            +
                              + +
                              +
                              + +

                              No results matching ""

                              + +
                              +
                              +
                              + +
                              +
                              + +
                              + + + + + +
                              + + +
                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/GenerateImage.html b/ja-beta/GenerateImage.html new file mode 100644 index 0000000..9d570e5 --- /dev/null +++ b/ja-beta/GenerateImage.html @@ -0,0 +1,845 @@ + + + + + + + 画像を生成する · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                              +
                              + + + + + + +
                              + +
                              + +
                              + + + +
                              +
                              + +
                              +
                              + +
                              + +

                              画像を生成する

                              +

                              チャットボックスに入力した文書を元にAIによる画像生成を行うことができます。
                              + また、ailia DX Insightでは生成された画像を編集し、より望むものに近づけることができる他、著作権保護や改ざん防止の為にウォーターマークを埋め込んで画像を生成させることができます。

                              +

                              ※画像生成にはDALL-Eを使用するため、GPT-4以降で動作します。
                              + ※GPTのバージョンは設定歯車の中の「チャットAI」の項目の中で「OpenAI」をクリックすると選択できます。

                              +

                              プロンプトから画像を生成する

                              +

                              キーワード等の文字から画像を生成することができます。

                              +
                                +
                              1. 画面左上のアプリメニューから「画像生成」を選択します。
                                + useai_16.png
                              2. +
                              3. 生成したい画像の概要を入力し、送信します。
                              4. +
                              5. AIが画像を生成した結果が表示されます。
                                + useai_17.png
                                +
                              6. +
                              +

                              生成された画像を編集する

                              +

                              生成された画像を編集し、より望むものに近づけることができます。

                              +
                                +
                              1. 生成された画像の右上に表示されている「編集」を選択します。
                                + EditImage_01
                              2. +
                              3. 編集画面が表示されます
                                + EditImage_02
                              4. +
                              5. 編集したい箇所をマウスでドラッグして囲み、マスクを作成します。
                                + マスクを作成した状態で「Done」を選択し、マスクの作成を完了します。
                                + EditImage_03
                              6. +
                              7. 画面下のチャットボックスに編集したい内容を入力し、送信します。
                                + EditImage_04
                              8. +
                              9. AIが画像を再生成した結果が表示されます。
                                + EditImage_05

                                +
                                  +
                                • 画像の編集画面で左上の「すべてを選択」を押すことで、画面全体を選択することができます。
                                  + EditImage_06
                                • +
                                +
                              10. +
                              +

                              生成される画像にウォーターマークを追加する

                              +

                              ailia DX Insightでは生成する画像に、ウォーターマークを手軽に追加することができます。

                              +

                              ここでは見本としてこちらのロゴマークを50%透過させた画像を使用します。
                              + logo_02

                              +
                                +
                              1. 画面右上にある歯車アイコンを押します。
                                + setup_03
                              2. +
                              3. 「透かし画像」の項目内にある透かし画像ファイルパスの「登録」を選択し、表示されるエクスプローラー内にて使用する画像を選択します。
                                + watermark_01
                              4. +
                              5. ウォーターマークに使用する画像ファイルのディレクトリが表示されれば、設定は完了です。
                                + watermark_02

                                +
                              6. +
                              7. 画像を生成すると、画像の右下にウォーターマークが追加されます。
                                + watermark_03
                                +

                                +
                              8. +
                              +

                              次のページへ >

                              +

                              一覧に戻る

                              + + +
                              + +
                              +
                              +
                              + +

                              results matching ""

                              +
                                + +
                                +
                                + +

                                No results matching ""

                                + +
                                +
                                +
                                + +
                                +
                                + +
                                + + + + + + + + + + +
                                + + +
                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/IndexRegister.html b/ja-beta/IndexRegister.html new file mode 100644 index 0000000..b3602e4 --- /dev/null +++ b/ja-beta/IndexRegister.html @@ -0,0 +1,811 @@ + + + + + + + ファイルをインデックスに登録する · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                +
                                + + + + + + +
                                + +
                                + +
                                + + + +
                                +
                                + +
                                +
                                + +
                                + +

                                ファイルをインデックスに登録する

                                +

                                ファイルをインデックス登録することでAI機能を活用した各種機能をそのファイルに対して実行することが出来ます。

                                +

                                文書ファイルについて質問する

                                +

                                文書ファイルを要約する

                                +

                                文書ファイルを翻訳する

                                +

                                画像を検索する

                                +

                                ファイルをインデックス登録する

                                +
                                  +
                                • 登録したいファイルを右クリックし、「このファイルをインデックスに追加」を選択します。選択したファイルのAIステータスアイコンが status_icon_done.pngとなれば、登録完了です。
                                  + useai_06.png
                                • +
                                • フォルダを右クリックし、「このフォルダ内のファイルをインデックスに追加」を選択すると、フォルダ内の全てのファイルをインデックス登録することができます。 +
                                • +
                                +

                                ファイルをインデックスから削除する

                                +
                                  +
                                1. インデックスから削除したい場合、登録済のファイルを右クリックし、「このファイルをインデックスから削除」を選択します。選択したファイルのAIステータスアイコンが hourglass.pngとなれば、削除完了です。
                                  + useai_09.png
                                2. +
                                +


                                +

                                次のページへ >

                                + + +
                                + +
                                +
                                +
                                + +

                                results matching ""

                                +
                                  + +
                                  +
                                  + +

                                  No results matching ""

                                  + +
                                  +
                                  +
                                  + +
                                  +
                                  + +
                                  + + + + + + + + + + +
                                  + + +
                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/LocalLLM.html b/ja-beta/LocalLLM.html new file mode 100644 index 0000000..7d4e022 --- /dev/null +++ b/ja-beta/LocalLLM.html @@ -0,0 +1,810 @@ + + + + + + + ローカルLLMの設定 · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                  +
                                  + + + + + + +
                                  + +
                                  + +
                                  + + + +
                                  +
                                  + +
                                  +
                                  + +
                                  + +

                                  ローカルLLMの設定

                                  +

                                  ailia DX Insight内でのローカルLLMの構築

                                  +

                                  GGUF形式で圧縮されたLLMモデルを使用することで、ailia DX Insightの中だけで簡単にローカルLLMとの接続をすることができます。

                                  +
                                    +
                                  1. 設定gearの中のチャットAIの項目を選択し、「ローカル(ailiaLLM)」の「+追加」を選択します。
                                  2. +
                                  +

                                  localLLM01

                                  +
                                    +
                                  1. ローカルLLMモデル登録用ウィンドウが開きます。各項目を記入します。
                                    「local LLM モデルタイプ」の項目を「GGUF model」に変更することで、「GGUF モデルパス」の項目が表示されます。
                                  2. +
                                  +

                                  localLLM02

                                  +
                                    +
                                  • 名前:使用するLLMの名称 (UI表示にのみ使用するため何でも構わない)
                                  • +
                                  • 説明:必要に応じてメモとして使用
                                  • +
                                  • 最大トークン長:ダウンロードしたモデルの名称
                                  • +
                                  • local LLM モデルタイプ:GGUF modelを選択
                                  • +
                                  • 最大トークン長:GGUFファイルのディレクトリを入力 +
                                  • +
                                  +

                                  次のページへ >

                                  + + +
                                  + +
                                  +
                                  +
                                  + +

                                  results matching ""

                                  +
                                    + +
                                    +
                                    + +

                                    No results matching ""

                                    + +
                                    +
                                    +
                                    + +
                                    +
                                    + +
                                    + + + + + + + + + +
                                    + + +
                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/MainOperation.html b/ja-beta/MainOperation.html new file mode 100644 index 0000000..2a94f63 --- /dev/null +++ b/ja-beta/MainOperation.html @@ -0,0 +1,811 @@ + + + + + + + 主な操作方法 · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                    +
                                    + + + + + + +
                                    + +
                                    + +
                                    + + + +
                                    +
                                    + +
                                    +
                                    + +
                                    + +

                                    主な操作方法

                                    +

                                    画面構成

                                    +

                                    aillia DX insightの主な画面構成

                                    +

                                    useai_01_01

                                    +

                                    1. アプリメニュー

                                    +

                                    使用したいailia DX insightの機能をカテゴリの中から選ぶことができます。

                                    +

                                    2. チュートリアル

                                    +

                                    ailia DX insightのチュートリアルをいつでもここから確認できます。

                                    +

                                    3. 設定

                                    +

                                    アプリに関する各種設定をここから行います。

                                    +

                                    4. サイドバー

                                    +

                                    アプリ中央に表示させるものを選ぶことができます。フォルダのブックマーク機能があり、ファイルアプリ内で使用するファイルを使いやすくまとめることができます。

                                    +

                                    5. チャットボックス

                                    +

                                    AIに質問や、画像生成のプロンプト、翻訳するテキストをここに入力します。何も入力せずに右のマイクをクリックすることで音声入力を行うことができます。

                                    +

                                    6. ダウンロードステータス

                                    +

                                    各種ダウンロードを行う際に進行状況がこちらに表示されます。

                                    +

                                    7. ステータスバー

                                    +

                                    ファイルサイズ、インデックス登録の有無等、選択中のファイルに関する情報を確認することができます。

                                    +


                                    +

                                    次のページへ >

                                    + + +
                                    + +
                                    +
                                    +
                                    + +

                                    results matching ""

                                    +
                                      + +
                                      +
                                      + +

                                      No results matching ""

                                      + +
                                      +
                                      +
                                      + +
                                      +
                                      + +
                                      + + + + + + + + + + +
                                      + + +
                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/News_01.html b/ja-beta/News_01.html new file mode 100644 index 0000000..4d51794 --- /dev/null +++ b/ja-beta/News_01.html @@ -0,0 +1,744 @@ + + + + + + + アップデートガイド · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                      +
                                      + + + + + + +
                                      + +
                                      + +
                                      + + + +
                                      +
                                      + +
                                      +
                                      + +
                                      + +
                                      + +

                                      ailia DX Insight 1.0から1.1へのアップデートガイド

                                      +

                                      ailia DX Insight 1.1では、アプリケーションの電子証明書が更新されています。 Microsoftのインストーラであるmsixでは、電子証明書が更新された場合、別のアプリケーションとして認識されます。 (参考情報:https://github.com/microsoft/msix-packaging/issues/365) そのため、ailia DX Insight 1.0から1.1にアップデートする場合、下記の手順に従い、旧バージョンをアンインストール後にインストールを行なってください。
                                      + + +

                                      windowsの場合

                                      +

                                      スタートメニューからailia_dx_insightを選択し、右クリックでアンインストールを行います。
                                      + (スタートメニューの中に見当たらない場合は「すべてのアプリ」の中からお探しください)

                                      +

                                      UpdateGuide_01

                                      +

                                      ailia_dx_insight.msixをダブルクリックし、インストールを行います。

                                      +

                                      UpdateGuide_02.png

                                      +

                                      ユーザデータはc:/Users/[UserName]/Documents(*)/ailia DX Insightに保存されているため、保持されます。

                                      + +

                                      (*)「マイドキュメント」と表示されることもあります。

                                      + +

                                      Macの場合

                                      +

                                      ailia_dx_insight.dmgを開き、ailia_dx_insight.appをApplicationフォルダにドロップすることで上書きします。

                                      + +

                                      コンフィグファイルの更新

                                      +

                                      ailia DX Insight 1.0でコンフィグファイルを使用している場合、コンフィグファイルの更新が必要です。ailia DX Insight 1.1の初回起動時に、下記のダイアログが表示されるため、コンフィグファイルのパスを設定してください。

                                      +

                                      ConfigFile_02.png

                                      +

                                      コンフィグファイルの登録時以降にファイルに変更があった場合、リロードするか確認する下記のダイアログが表示されます。 + 「はい」を選択するとコンフィグファイルがリロードされ、変更が適用されます。

                                      +

                                      ConfigFile_03.png

                                      +

                                      また、設定画面→コンフィグファイルより、手動でのコンフィグファイルの登録が可能です。
                                      同画面にてコンフィグファイルの登録解除も可能です。

                                      +

                                      ConfigFile_01.png

                                      + + +


                                      +

                                      HOMEに戻る

                                      + + +
                                      + +
                                      +
                                      +
                                      + +

                                      results matching ""

                                      +
                                        + +
                                        +
                                        + +

                                        No results matching ""

                                        + +
                                        +
                                        +
                                        + +
                                        +
                                        + +
                                        + + + +
                                        + + +
                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/OpenAI_APIKey.html b/ja-beta/OpenAI_APIKey.html new file mode 100644 index 0000000..0919aa4 --- /dev/null +++ b/ja-beta/OpenAI_APIKey.html @@ -0,0 +1,1138 @@ + + + + + + APIキーの取得 · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                        +
                                        + + + + + + + + +
                                        + +
                                        + +
                                        + + + + + + + + +
                                        +
                                        + +
                                        +
                                        + +
                                        + +

                                        OpenAI APIキーの取得方法

                                        +

                                        「ailia DX insight」内でOpenAIの機能を使用する場合にはOpenAIのAPIキーの取得が必要となります。
                                        +また、OpenAIではレート制限を設けている為、特に多人数で利用される場合はレート制限の上限を上げることをお勧めいたします。それには規定日数(最低7日~)の経過が必要となる為、お早目の対応が必要となります。

                                        +

                                        OpenAIアカウントを作成する

                                        +
                                          +
                                        1. OpenAI Platformから「Sign up」を選択します。
                                          +API_key_01
                                        2. +
                                        3. 案内に沿ってメールアドレス、パスワードを入力し、続けるを選択します。
                                          +API_key_02
                                        4. +
                                        5. 登録したメールアドレス宛に「OpenAI - Verify your email」という件名のメールが届くので、メールアドレスの確認を選択すると、ブラウザが起動します。
                                          +API_key_03
                                        6. +
                                        7. 起動されたブラウザで「氏名」「組織名(オプション)」「生年月日」を入力し、規約、プライバシーポリシーを確認後、同意するを選択します。
                                          +API_key_04
                                        8. +
                                        +

                                        電話番号を登録する

                                        +

                                        APIキーを取得するにはショートメッセージを受け取ることのできる電話番号の登録が必要となります。

                                        +
                                          +
                                        1. OpenAIのDocsページ右上の「Dashboard」を選択します。
                                          +API_key_05
                                        2. +
                                        3. 左側のメニューから「API keys」を選択して、「Verify your phone number to create an API key」という案内の横にある「Start varification」を選択します。
                                          +API_key_06
                                        4. +
                                        5. 電話番号を入力し、「Send code」を選択します。
                                          +API_key_07
                                        6. +
                                        7. 電話番号宛てにOpenAI認証コードがショートメッセージで届くので、次の画面で入力し、電話番号の登録が完了となります。
                                          +API_key_08
                                        8. +
                                        +

                                        APIキーを生成する

                                        +
                                          +
                                        1. 「+ Create new secret key」を選択します。
                                          +API_key_09
                                        2. +
                                        3. 「Create new secret key」のウィンドウが表示されるので、任意の名称を入力してAPIキーを生成します。
                                          +API_key_10
                                        4. +
                                        5. APIキーが表示されます。
                                          +※生成されたAPIキーが表示されるのは一度きりとなるので、この時点でコピーして保存しておくことをお勧めします。
                                          +API_key_11
                                        6. +
                                        +

                                        支払い情報を登録する

                                        +
                                          +
                                        1. OpenAIのホーム画面右上のご自身のアカウントのアイコンをクリックし、「Your profile」を選択します。
                                            +API_key_12
                                        2. +
                                        3. Settingsという画面になります。左のメニューから「Billing」を選択し、「Add payment details」を選択します。
                                          +API_key_13
                                        4. +
                                        5. 「What best describes you?」(あなたに当てはまるものを選択してください)というウィンドウが表示されます。「individual」(個人)か「Company」(会社)を選択します。
                                          +API_key_14
                                        6. +
                                        7. 表示されるウィンドウにてカード情報/請求先住所を入力し、「Continue」を選択することで、支払い情報の登録が完了します。
                                          +API_key_15
                                        8. +
                                        9. 月の支払い限度額を設定することで、APIにかかる費用を管理することができます。
                                        10. +
                                        +

                                        次のページへ >

                                        + + +
                                        + +
                                        +
                                        +
                                        + +

                                        results matching ""

                                        +
                                          + +
                                          +
                                          + +

                                          No results matching ""

                                          + +
                                          +
                                          +
                                          + +
                                          +
                                          + +
                                          + + + + + + + + + + +
                                          + + +
                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/Pricing.html b/ja-beta/Pricing.html new file mode 100644 index 0000000..a6ac01b --- /dev/null +++ b/ja-beta/Pricing.html @@ -0,0 +1,1182 @@ + + + + + + 料金体系 · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                          +
                                          + + + + + + + + +
                                          + +
                                          + +
                                          + + + + + + + + +
                                          +
                                          + +
                                          +
                                          + +
                                          + +

                                          OpenAIの料金体系

                                          +

                                          ailia DX InsightにてOpenAIの機能(ChatGPT/dall-e等)を使用する場合、料金体系とレート制限について留意いただく必要がございます。 +レート制限とはOpenAIではサービスの安定性等の観点から設けているもので、ユーザーのTier(利用レベル)によって、リクエスト数の制限がかかります。 +特に多人数で1アカウントのご利用を考えている場合はレート制限を解除する為に準備期間として1週間以上(場合によっては3週間ほど)が掛かる場合がある為、ご注意ください。

                                          +

                                          ChatGPTのトークンについて

                                          +

                                          OpenAIの各モデルはトークンという単位で従量課金のお支払い金額が決まります。 +入力したトークン数に応じた単価と出力したトークン数に応じた単価を足した金額が利用料金となります。

                                          +

                                          トークンとは、英語の場合は1単語が1トークン、日本語の場合は1文字が基本的には1~2トークンに該当します。また、日本語の場合、「です」「ます」等が2文字で1トークンとなることがあります。(ChatGPTのバージョンによってトークン数の判定が異なります)
                                          +また、句読点やクエスチョンマーク等もそれぞれ1トークンとしてカウントされます。

                                          +
                                          例) アメリカの首都はどこですか? → 13トークン
                                          +例) What is the capital of the United States? → 9トークン
                                          +

                                          OpenAIが提供している「Tokenizer」というツールを使用すると、入力したトークンがどのようにカウントされているか確認することができます。
                                          +API_key_17

                                          +

                                          モデル毎の利用料金に関しては変動がある為、こちらからご確認ください。 +

                                          +

                                          レート制限

                                          +

                                          OpenAIではサービスの安定性等の観点からレート制限を設けています。
                                          +レート制限はRPM (リクエスト数/1分)、RPD (リクエスト数/1日)、TPM (トークン数/1分)、TPD (トークン数/1日)、IPM (イメージ数/1分) の5つの方法で測定されます。
                                          +レート制限は、最初に何が起こるかに応じて、どのオプションでもヒットする可能性があります。たとえば、100 トークンのみを含むリクエストを 20 回 ChatCompletions エンドポイントに送信すると、その 20 回のリクエスト内で 150,000 トークンを送信していなくても (TPM 制限が 150,000 の場合)、制限に達してしまいます (RPM が 20 の場合)。
                                          +また、レート制限はユーザーのTierと使用するモデルに毎に異なります。

                                          +

                                          レート制限について詳しくはOpenAIのHPよりご確認ください。

                                          +

                                          Tier

                                          +

                                          Tierは支払金額と最初の支払いからの経過日数によってTier1~Tier5の5段階に分かれています。(ユーザー登録のみの無料枠もあります)

                                          +
                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                          Tier条件使用制限
                                          無料$100/月
                                          Tier1$5の支払い実績$100/月
                                          Tier2$50の支払い実績と最初の支払いから7日間以上の経過$500/月
                                          Tier3$100の支払い実績と最初の支払いから7日間以上の経過$1,000/月
                                          Tier4$250の支払い実績と最初の支払いから14日間以上の経過$5,000/月
                                          Tier5$1,000の支払い実績と最初の支払いから30日間以上の経過$50,000/月
                                          +
                                          + +

                                          ※Tierの条件については変動の可能性がある為、OpenAIの公式HPも合わせてご参照ください。

                                          +

                                          レート制限の引き上げをリクエストする

                                          +

                                          Tier2以上になると、レート制限の引き上げをリクエストすることができます。

                                          +
                                            +
                                          1. Your profile内の「Limits」の項目内、一番下にある「Request an exception」を選択します。
                                            +RateLimit_01
                                          2. +
                                          3. 「Request a limit increase」のウィンドウが表示されますので、引き上げたい制限の要項を入力し、「Submit」を選択します。
                                            +RateLimit_02

                                            +
                                              +
                                            • Limit type
                                              制限タイプ:1分あたりのリクエスト数(RPM)/1分あたりのトークン数(TPM)/1分あたりの画像数(IPM)/月間使用制限(Monthly usage limit)の中から一つを選択します。
                                            • +
                                            • Model(*)
                                              制限を引き上げたいモデルを選択します。
                                              (チャットとしての使用がメインであればgpt-4 / 画像生成の使用がメインであればdal-eとなると思います)
                                            • +
                                            • Request rate limit
                                              希望するレート制限の数値を入力します。
                                            • +
                                            • Reasonレート制限の引き上げがどのように役立つか、現在のレート制限によってどのような不便があるか等について、簡単な文章で説明を入力してください。
                                            • +
                                            +

                                            (*)Limit typeでMonthly usage limitを選択している場合はモデルの選択はありません。

                                            +
                                          4. +
                                          +

                                          支払い限度額を設定する

                                          +

                                          OpenAIのモデルは従量課金となっていて、使用制限をつけることで利用料金を管理することができます。

                                          +
                                            +
                                          1. OpenAIのホーム画面右上にアカウントのアイコンがあるので、クリックし、「Your profile」を選択します。
                                            +API_key_12
                                          2. +
                                          3. Settingsという画面になるので、左のメニューから「Billing」を選択し、「Usage limits」を選択します。
                                            +API_key_16
                                          4. +
                                          +

                                          HOMEへ戻る

                                          + + +
                                          + +
                                          +
                                          +
                                          + +

                                          results matching ""

                                          +
                                            + +
                                            +
                                            + +

                                            No results matching ""

                                            + +
                                            +
                                            +
                                            + +
                                            +
                                            + +
                                            + + + + + + + + + + +
                                            + + +
                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/RAG.html b/ja-beta/RAG.html new file mode 100644 index 0000000..89e054e --- /dev/null +++ b/ja-beta/RAG.html @@ -0,0 +1,817 @@ + + + + + + + RAGによる回答精度の向上 · ailia DX Insight · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                            +
                                            + + + + + + +
                                            + +
                                            + +
                                            + + + +
                                            +
                                            + +
                                            +
                                            + +
                                            + +
                                            + +

                                            RAGによる回答精度の向上

                                            +

                                            RAGとは

                                            +

                                            Retrieval-Augmented Generation(RAG)とは大規模言語モデル(LLM)によるテキスト生成と外部情報の検索を組み合わせることで、事実に基づかない情報の生成を抑制し、AIによる回答精度を向上させる技術のことです。

                                            +

                                            RAG_01.png

                                            +

                                            ChatGPTにはトークン数に上限があるため、大量の文書をそのまま供給することはできません。 + そのため、ailia DX InsightではRAGによる情報検索を事前に行い、その一部を元に回答を生成されることが行われています。

                                            +

                                            RAG_02.png

                                            +

                                            最大トークン数について

                                            +

                                            chatgpt-3.5 : 2k
                                            + chatgpt-3.5-turbo (16kと統合された):16k
                                            + chatgpt-4 : 8k
                                            + chatgpt-4-turbo : 128k

                                            +

                                            トークン数が多いほど、複数チャンクの情報をまとめて投入可能で、精度が向上します。 + ただし、その分回答が遅くなったり、コストが高くなります。

                                            +

                                            RAGの設定

                                            +
                                              +
                                            1. ailia DX insightの初期画面にて、右上の歯車アイコンをクリックして設定ウィンドウを表示させます。
                                              + setup_03.png
                                            2. +
                                            3. 左側の項目から「RAG」を選択します。
                                              + RAG_03.png
                                            4. +
                                            5. リランク、TOPKについて設定することができます。
                                            6. +
                                            +


                                            +

                                            次のページへ >

                                            + + +
                                            + +
                                            +
                                            +
                                            + +

                                            results matching ""

                                            +
                                              + +
                                              +
                                              + +

                                              No results matching ""

                                              + +
                                              +
                                              +
                                              + +
                                              +
                                              + +
                                              + + + + + + + + + + +
                                              + + +
                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/Recording.html b/ja-beta/Recording.html new file mode 100644 index 0000000..c3ff438 --- /dev/null +++ b/ja-beta/Recording.html @@ -0,0 +1,830 @@ + + + + + + + 議事録を取る · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                              +
                                              + + + + + + +
                                              + +
                                              + +
                                              + + + +
                                              +
                                              + +
                                              +
                                              + +
                                              + +

                                              議事録を取る

                                              +

                                              音声認識AIによって、手を動かすことなく議事録を取ることができます。

                                              +
                                                +
                                              1. 画面左上のアプリメニューから「議事録作成」をクリックし、議事録画面を開きます。
                                                + useai_18.png
                                              2. +
                                              3. 画面右上の「会議場所」に会議場所を入力します。会議名を変更することもできます。
                                                + useai_19.png
                                              4. +
                                              5. 画面下部の「記録を開始」ボタンをクリックし、議事録の記録を開始します。
                                                + useai_20.png
                                              6. +
                                              7. 音声認識に必要なAIモデルのダウンロードがお済みでない場合は、ダウンロードが開始されます。 ダウンロード完了後より利用可能となります。
                                              8. +
                                              9. 記録を終えるタイミングで、画面下部の「記録を停止」ボタンをクリックし、議事録を保存します。
                                                + useai_21.png
                                                +
                                              10. +
                                              +

                                              記録した議事録を確認する

                                              +

                                              議事録画面の左側に並ぶ議事録をクリックすると、記録した議事録を見ることができます。
                                              + useai_22.png
                                              + 記録された文の右側にあるボタンをクリックすると、文の訂正ができます。
                                              + useai_23.png
                                              + また、画面下部の「記録を開始」ボタンをクリックすることで、再度議事録を記録することができます。

                                              +

                                              音声ファイルから議事録を作成する

                                              +

                                              クエリバーの「マイク」をクリックし、「ファイル」に変更した後に「記録を開始」を選択することで、音声ファイルから議事録を作成することができます。

                                              + UseAI_21_01

                                              +

                                              対応形式

                                              +

                                              議事録機能で標準で読み込めるファイルはwavファイルのみとなります。
                                              別途、ffmpegをインストールすることで、mp3とmp4の読み込みが可能となります。

                                              +

                                              Windowsの場合、環境変数のPATHの通った場所、もしくは下記のフォルダにffmpeg.exeを配置してください。

                                              +

                                              /Users/[UserName]/Documents(*)/ailia DX Insight/ffmpeg/

                                              +


                                              +

                                              macOSの場合、環境変数のPATHの通った場所、もしくは下記のフォルダのいずれかにffmpegを配置してください。

                                              +

                                              ~/Documents(*)/ailia DX Insight/ffmpeg/

                                              +

                                              /usr/local/bin/

                                              +

                                              /opt/homebrew/bin/

                                              +

                                              /opt/local/bin/

                                              +

                                              議事録を書き出す

                                              +

                                              議事録画面の左側に並ぶ議事録を右クリックし、「内容をエクスポート」を選択すると、議事録をtxt形式のファイルとして書き出すことができます。
                                              + useai_24.png

                                              +


                                              +

                                              次のページへ >

                                              +

                                              一覧に戻る

                                              + + +
                                              + +
                                              +
                                              +
                                              + +

                                              results matching ""

                                              +
                                                + +
                                                +
                                                + +

                                                No results matching ""

                                                + +
                                                +
                                                +
                                                + +
                                                +
                                                + +
                                                + + + + + + + + + + +
                                                + + +
                                                + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/SearchImage.html b/ja-beta/SearchImage.html new file mode 100644 index 0000000..3d45b70 --- /dev/null +++ b/ja-beta/SearchImage.html @@ -0,0 +1,813 @@ + + + + + + + 画像を検索する · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                +
                                                + + + + + + +
                                                + +
                                                + +
                                                + + + +
                                                +
                                                + +
                                                +
                                                + +
                                                + +

                                                画像を検索する

                                                +

                                                画像ファイルをインデックス登録することで、類似画像検索を行うことができます。 インデックス登録された画像ファイルを対象に検索が実行されます。 テキストによる検索と、画像による検索の2通りの検索方法があります。

                                                +

                                                ファイルをインデックス登録する方法についてはこちらをご確認ください。

                                                +

                                                テキストで検索

                                                +

                                                検索ワードに類似した画像を検索することができます。

                                                +
                                                  +
                                                1. 画面左上のアプリメニューから「画像検索」を選択します。
                                                  + useai_13.png
                                                2. +
                                                3. チャットボックスに検索ワードを入力し、送信します。
                                                4. +
                                                5. 類似度順に検索結果が表示されます。表示された検索結果をクリックすると、全ての画像が類似度順に並べられグリッド表示されます。
                                                6. +
                                                +


                                                +

                                                画像で検索

                                                +

                                                選択した画像に類似した画像を検索することができます。 画像はインデックス登録済である必要があります。

                                                +
                                                  +
                                                1. 「画像検索」モードの状態で検索したい画像ファイルを右クリックし、「この画像で類似検索」を選択します。
                                                  + useai_15.png
                                                2. +
                                                3. 類似度順に検索結果が表示されます。表示された検索結果をクリックすると、全ての画像が類似度順に並べられグリッド表示されます。
                                                4. +
                                                +


                                                +

                                                次のページへ >

                                                +

                                                一覧に戻る

                                                + + +
                                                + +
                                                +
                                                +
                                                + +

                                                results matching ""

                                                +
                                                  + +
                                                  +
                                                  + +

                                                  No results matching ""

                                                  + +
                                                  +
                                                  +
                                                  + +
                                                  +
                                                  + +
                                                  + + + + + + + + + + +
                                                  + + +
                                                  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/Security.html b/ja-beta/Security.html new file mode 100644 index 0000000..4d0c84f --- /dev/null +++ b/ja-beta/Security.html @@ -0,0 +1,801 @@ + + + + + + + セキュアな環境構築 · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                  +
                                                  + + + + + + +
                                                  + +
                                                  + +
                                                  + + + +
                                                  +
                                                  + +
                                                  +
                                                  + +
                                                  + +

                                                  セキュアな環境構築

                                                  +

                                                  ailia DX Insightはオフラインとオンラインのハイブリッドです。
                                                  + 質問に対する情報検索はオフラインで動作するため安全かつ低コストです。

                                                  +

                                                  Security_01.png

                                                  +

                                                  カスタムLLM

                                                  +

                                                  ailia DX Insightは、文章の生成をChatGPTで行います。 ChatGPTを使用する場合、クラウドへのデータ転送を伴うので、使用を制限せざるを得ないケースがあります。 ailia DX insightでは、ローカルに構築したカスタムLLMを接続することが可能です。 これにより、完全にセキュアな環境でailia DX Insightを動作させることが可能です。

                                                  +

                                                  Security_02.png

                                                  +

                                                  カスタムLLMの設定方法はこちらから

                                                  +


                                                  +

                                                  次のページへ >

                                                  + + +
                                                  + +
                                                  +
                                                  +
                                                  + +

                                                  results matching ""

                                                  +
                                                    + +
                                                    +
                                                    + +

                                                    No results matching ""

                                                    + +
                                                    +
                                                    +
                                                    + +
                                                    +
                                                    + +
                                                    + + + + + + + + + + +
                                                    + + +
                                                    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/SetUp.html b/ja-beta/SetUp.html new file mode 100644 index 0000000..64145c9 --- /dev/null +++ b/ja-beta/SetUp.html @@ -0,0 +1,830 @@ + + + + + + + セットアップ · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                    +
                                                    + + + + + + +
                                                    + +
                                                    + +
                                                    + + + +
                                                    +
                                                    + +
                                                    +
                                                    + +
                                                    + +

                                                    セットアップ

                                                    +

                                                    ailia DX Insight 1.0から1.1へのアップデートがまだの方はこちらをご確認ください。

                                                    +

                                                    ailia DX Insight 1.2のアップデート内容はこちらをご確認ください

                                                    +

                                                    ダウンロード

                                                    +

                                                    ailia DX Insightをダウンロードして、zipを解凍します。

                                                    +

                                                    インストーラの起動

                                                    +

                                                    Windowsの場合は、aillia_dx_insight.msixをダブルクリックしてインストーラを起動します。 macOSの場合は、ailia_dx_insight.dmgを右クリックして開くで起動します。
                                                    + setup_00.png

                                                    +

                                                    ライセンスもしくはコンフィグファイルの選択

                                                    +

                                                    初回起動時に「ライセンスもしくはコンフィグファイルを選択してください」とウィンドウに表示されます。ライセンスファイルをフォルダから選択します。

                                                    +

                                                    起動に必要なライセンスファイルはmacOSの場合は[HOME]/Library/SHALO、windowsの場合は[ROOT]/ProgramData/SHALOに格納されます。
                                                    + seyup_001
                                                    + コンフィグファイルを選択することでアプリケーションをカスタマイズすることができます。

                                                    +

                                                    OpenAIのAPIキーの取得

                                                    +

                                                    OpenAIのWEBページでアカウント登録を行い、OpenAIのAPIキーを取得します。 OpenAIのAPIキーを入力しなくてもailia DX Insightは使用できますが、機能が制限されます。

                                                    +

                                                    セットアップ

                                                    +

                                                    ライセンスもしくはコンフィグファイルを選択後、チュートリアル画面が表示されます。
                                                    + setup_01.png
                                                    + チュートリアルの最終画面にて、OpenAI APIキーの設定が可能です。

                                                    +

                                                    OpenAI APIキーの設定

                                                    +

                                                    チュートリアルから設定する場合

                                                    +
                                                      +
                                                    1. チュートリアルの最後、「APIキーの設定」まで進みます。
                                                    2. +
                                                    3. 「OpenAI APIキー」の下にあるテキストボックスに、"sk-"から始まるOpenAI APIキーを入力します。
                                                      + setup_02.png
                                                    4. +
                                                    5. 「完了」ボタンを押します。

                                                      通常画面から設定する場合

                                                      +
                                                    6. +
                                                    7. 画面右上にある歯車アイコンを押します。
                                                      + setup_03.png
                                                    8. +
                                                    9. 表示されたダイアログ内のテキストボックスに、"sk-"から始まるOpenAIのAPIキーを入力します。
                                                      + setup_04.png
                                                    10. +
                                                    11. 「OpenAI」をクリックして、使用するchatGPTのバージョンを選択し、「閉じる」ボタンを押します。

                                                      AIモデルのダウンロード

                                                      + 初回起動時のチュートリアルの終了後、AIモデルのダウンロードが開始されます。 + ダウンロードの進捗は左のサイドバー下部にて確認できます。
                                                      + download_model.png
                                                      + ダウンロード完了後、ailia DX Insightが使用可能となります。
                                                    12. +
                                                    +


                                                    +

                                                    次のページへ >

                                                    + + +
                                                    + +
                                                    +
                                                    +
                                                    + +

                                                    results matching ""

                                                    +
                                                      + +
                                                      +
                                                      + +

                                                      No results matching ""

                                                      + +
                                                      +
                                                      +
                                                      + +
                                                      +
                                                      + +
                                                      + + + + + + + + + + +
                                                      + + +
                                                      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/SummarizeDocument.html b/ja-beta/SummarizeDocument.html new file mode 100644 index 0000000..73956a6 --- /dev/null +++ b/ja-beta/SummarizeDocument.html @@ -0,0 +1,805 @@ + + + + + + + 文書ファイルを要約する · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                      +
                                                      + + + + + + +
                                                      + +
                                                      + +
                                                      + + + +
                                                      +
                                                      + +
                                                      +
                                                      + +
                                                      + +

                                                      文書ファイルを要約する。

                                                      +

                                                      文書ファイルをインデックスに登録すると、登録した文書ファイルに記載された情報についてAIに要約させることができます。 +

                                                      +

                                                      ファイルをインデックス登録する方法についてはこちらをご確認ください。

                                                      +
                                                        +
                                                      1. 画面左上のアプリメニューから「テキスト要約」を選択します。
                                                        + useai_07.png
                                                      2. +
                                                      3. 要約したいファイルを右クリックし、「要約」をクリックします。
                                                        + useai_11.png
                                                      4. +
                                                      5. AIが要約した結果が表示されます。
                                                      6. +
                                                      +


                                                      +

                                                      次のページへ >

                                                      +

                                                      一覧に戻る

                                                      + + +
                                                      + +
                                                      +
                                                      +
                                                      + +

                                                      results matching ""

                                                      +
                                                        + +
                                                        +
                                                        + +

                                                        No results matching ""

                                                        + +
                                                        +
                                                        +
                                                        + +
                                                        +
                                                        + +
                                                        + + + + + + + + + + +
                                                        + + +
                                                        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/Translation.html b/ja-beta/Translation.html new file mode 100644 index 0000000..92e71dd --- /dev/null +++ b/ja-beta/Translation.html @@ -0,0 +1,821 @@ + + + + + + + 文書ファイルを翻訳する · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                        +
                                                        + + + + + + +
                                                        + +
                                                        + +
                                                        + + + +
                                                        +
                                                        + +
                                                        +
                                                        + +
                                                        + +

                                                        文書ファイルを翻訳する

                                                        +

                                                        文書ファイルをインデックスに登録すると、登録した文書ファイルをAI機能によって翻訳することができます。 + 画面中央下のチャットボックスに文書を直接入力することで、その文書を翻訳することもできます。

                                                        +

                                                        ファイルをインデックス登録する方法についてはこちらをご確認ください。

                                                        +
                                                          +
                                                        1. 画面左上のアプリメニューから「テキスト翻訳」を選択します。
                                                          + useai_10.png
                                                        2. +
                                                        3. 翻訳したいファイルを右クリックし、「翻訳」をクリックします。 対応しているファイルフォーマットはpdf, txt, md, docx, xlsx,です。
                                                          + useai_12.png
                                                        4. +
                                                        5. 翻訳元のテキストに並んでAIが翻訳した結果が表示されます。翻訳結果の右下にある「保存」ボタンを押すと、翻訳結果をファイルとして保存することができます。
                                                          + useai_12_01.png
                                                        6. +
                                                        7. PDFファイルは翻訳をすると、PDFのまま出力することができます。(*1)
                                                          +
                                                          + useai_12_02.png

                                                          +


                                                          + (*1)なお、PDFは非常に複雑な構造を持っており、ailia DX Insightの内部でレイアウトを推定しています。PDFの種類によっては、翻訳後のレイアウトが崩れる場合があります。

                                                          +
                                                        8. +
                                                        +

                                                        文章を翻訳する

                                                        +

                                                        日本語で書かれた文章は英語へ、日本語以外の言語で書かれた文は日本語へ翻訳されます。

                                                        +
                                                          +
                                                        1. 画面左上のアプリメニューから「テキスト翻訳」を選択します。
                                                          + useai_10.png
                                                        2. +
                                                        3. 翻訳したい文書を画面中央下のチャットボックスに入力し、送信します。
                                                        4. +
                                                        5. AIが翻訳した結果が表示されます。
                                                          + useai_12_03.png
                                                        6. +
                                                        +


                                                        +

                                                        次のページへ >

                                                        +

                                                        一覧に戻る

                                                        + + +
                                                        + +
                                                        +
                                                        +
                                                        + +

                                                        results matching ""

                                                        +
                                                          + +
                                                          +
                                                          + +

                                                          No results matching ""

                                                          + +
                                                          +
                                                          +
                                                          + +
                                                          +
                                                          + +
                                                          + + + + + + + + + + +
                                                          + + +
                                                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/UseAI.html b/ja-beta/UseAI.html new file mode 100644 index 0000000..1a84e51 --- /dev/null +++ b/ja-beta/UseAI.html @@ -0,0 +1,803 @@ + + + + + + + AIを使う · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                          +
                                                          + + + + + + +
                                                          + +
                                                          + +
                                                          + + + +
                                                          +
                                                          + +
                                                          + +
                                                          +
                                                          + +

                                                          results matching ""

                                                          +
                                                            + +
                                                            +
                                                            + +

                                                            No results matching ""

                                                            + +
                                                            +
                                                            +
                                                            + +
                                                            +
                                                            + +
                                                            + + + + + + + + + + +
                                                            + + +
                                                            + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/VoiceInput.html b/ja-beta/VoiceInput.html new file mode 100644 index 0000000..86418aa --- /dev/null +++ b/ja-beta/VoiceInput.html @@ -0,0 +1,803 @@ + + + + + + + 音声入力を利用する場合 · ailia DX Insight + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                                                            +
                                                            + + + + + + +
                                                            + +
                                                            + +
                                                            + + + +
                                                            +
                                                            + +
                                                            +
                                                            + +
                                                            + +

                                                            音声入力を利用する場合

                                                            +
                                                              +
                                                            1. 文章入力前のチャットボックス右のマイクアイコンをクリックします。
                                                              + useai_04.png
                                                              + ※当アプリをインストール後、初めてマイクアイコンをクリックした場合、音声認識に必要なAIモデルのダウンロードが開始されます。 ダウンロード完了後より音声入力が利用可能となります。
                                                              + useai_05.png
                                                            2. +
                                                            3. 質問内容をマイクに向かって話します
                                                            4. +
                                                            5. 再度マイクボタンをクリックし音声入力を完了します。
                                                            6. +
                                                            +


                                                            +

                                                            次のページへ >

                                                            +

                                                            一覧に戻る

                                                            + + +
                                                            + +
                                                            +
                                                            +
                                                            + +

                                                            results matching ""

                                                            +
                                                              + +
                                                              +
                                                              + +

                                                              No results matching ""

                                                              + +
                                                              +
                                                              +
                                                              + +
                                                              +
                                                              + +
                                                              + + + + + + + + + + +
                                                              + + +
                                                              + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ja-beta/gitbook/@honkit/honkit-plugin-highlight/ebook.css b/ja-beta/gitbook/@honkit/honkit-plugin-highlight/ebook.css new file mode 100644 index 0000000..12a99c7 --- /dev/null +++ b/ja-beta/gitbook/@honkit/honkit-plugin-highlight/ebook.css @@ -0,0 +1,157 @@ +pre, +code { + /* From highlight.js@11.8.0/styles/tomorrow.css */ + /*! + Theme: Tomorrow + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/ +} +pre pre code.hljs, +code pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +pre code.hljs, +code code.hljs { + padding: 3px 5px; +} +pre .hljs, +code .hljs { + color: #4d4d4c; + background: #fff; +} +pre .hljs ::selection, +code .hljs ::selection, +pre .hljs::selection, +code .hljs::selection { + background-color: #d6d6d6; + color: #4d4d4c; +} +pre .hljs-comment, +code .hljs-comment { + color: #8e908c; +} +pre .hljs-tag, +code .hljs-tag { + color: #969896; +} +pre .hljs-operator, +code .hljs-operator, +pre .hljs-punctuation, +code .hljs-punctuation, +pre .hljs-subst, +code .hljs-subst { + color: #4d4d4c; +} +pre .hljs-operator, +code .hljs-operator { + opacity: 0.7; +} +pre .hljs-bullet, +code .hljs-bullet, +pre .hljs-deletion, +code .hljs-deletion, +pre .hljs-name, +code .hljs-name, +pre .hljs-selector-tag, +code .hljs-selector-tag, +pre .hljs-template-variable, +code .hljs-template-variable, +pre .hljs-variable, +code .hljs-variable { + color: #c82829; +} +pre .hljs-attr, +code .hljs-attr, +pre .hljs-link, +code .hljs-link, +pre .hljs-literal, +code .hljs-literal, +pre .hljs-number, +code .hljs-number, +pre .hljs-symbol, +code .hljs-symbol, +pre .hljs-variable.constant_, +code .hljs-variable.constant_ { + color: #f5871f; +} +pre .hljs-class .hljs-title, +code .hljs-class .hljs-title, +pre .hljs-title, +code .hljs-title, +pre .hljs-title.class_, +code .hljs-title.class_ { + color: #eab700; +} +pre .hljs-strong, +code .hljs-strong { + font-weight: 700; + color: #eab700; +} +pre .hljs-addition, +code .hljs-addition, +pre .hljs-code, +code .hljs-code, +pre .hljs-string, +code .hljs-string, +pre .hljs-title.class_.inherited__, +code .hljs-title.class_.inherited__ { + color: #718c00; +} +pre .hljs-built_in, +code .hljs-built_in, +pre .hljs-doctag, +code .hljs-doctag, +pre .hljs-keyword.hljs-atrule, +code .hljs-keyword.hljs-atrule, +pre .hljs-quote, +code .hljs-quote, +pre .hljs-regexp, +code .hljs-regexp { + color: #3e999f; +} +pre .hljs-attribute, +code .hljs-attribute, +pre .hljs-function .hljs-title, +code .hljs-function .hljs-title, +pre .hljs-section, +code .hljs-section, +pre .hljs-title.function_, +code .hljs-title.function_, +pre .ruby .hljs-property, +code .ruby .hljs-property { + color: #4271ae; +} +pre .diff .hljs-meta, +code .diff .hljs-meta, +pre .hljs-keyword, +code .hljs-keyword, +pre .hljs-template-tag, +code .hljs-template-tag, +pre .hljs-type, +code .hljs-type { + color: #8959a8; +} +pre .hljs-emphasis, +code .hljs-emphasis { + color: #8959a8; + font-style: italic; +} +pre .hljs-meta, +code .hljs-meta, +pre .hljs-meta .hljs-keyword, +code .hljs-meta .hljs-keyword, +pre .hljs-meta .hljs-string, +code .hljs-meta .hljs-string { + color: #a3685a; +} +pre .hljs-meta .hljs-keyword, +code .hljs-meta .hljs-keyword, +pre .hljs-meta-keyword, +code .hljs-meta-keyword { + font-weight: 700; +} diff --git a/ja-beta/gitbook/@honkit/honkit-plugin-highlight/website.css b/ja-beta/gitbook/@honkit/honkit-plugin-highlight/website.css new file mode 100644 index 0000000..8ecc614 --- /dev/null +++ b/ja-beta/gitbook/@honkit/honkit-plugin-highlight/website.css @@ -0,0 +1,407 @@ +.book .book-body .page-wrapper .page-inner section.normal pre, +.book .book-body .page-wrapper .page-inner section.normal code { + /* From highlight.js@11.8.0/styles/tomorrow.css */ + /*! + Theme: Tomorrow + Author: Chris Kempson (http://chriskempson.com) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/ +} +.book .book-body .page-wrapper .page-inner section.normal pre pre code.hljs, +.book .book-body .page-wrapper .page-inner section.normal code pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +.book .book-body .page-wrapper .page-inner section.normal pre code.hljs, +.book .book-body .page-wrapper .page-inner section.normal code code.hljs { + padding: 3px 5px; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs, +.book .book-body .page-wrapper .page-inner section.normal code .hljs { + color: #4d4d4c; + background: #fff; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs ::selection, +.book .book-body .page-wrapper .page-inner section.normal code .hljs ::selection, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs::selection, +.book .book-body .page-wrapper .page-inner section.normal code .hljs::selection { + background-color: #d6d6d6; + color: #4d4d4c; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-comment { + color: #8e908c; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-tag { + color: #969896; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-operator, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-operator, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-punctuation, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-punctuation, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-subst, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-subst { + color: #4d4d4c; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-operator, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-operator { + opacity: 0.7; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-bullet, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-deletion, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-name, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-name, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable { + color: #c82829; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attr, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-attr, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-link, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-link, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-literal, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-number, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-number, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-symbol, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable.constant_, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable.constant_ { + color: #f5871f; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title.class_, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-title.class_ { + color: #eab700; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-strong, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-strong { + font-weight: 700; + color: #eab700; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-addition, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-code, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-code, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-string, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-string, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title.class_.inherited__, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-title.class_.inherited__ { + color: #718c00; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-doctag, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-doctag, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword.hljs-atrule, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword.hljs-atrule, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-quote, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-quote, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-regexp { + color: #3e999f; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-function .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-function .hljs-title, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-section, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-section, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title.function_, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-title.function_, +.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-property, +.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-property { + color: #4271ae; +} +.book .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-meta, +.book .book-body .page-wrapper .page-inner section.normal code .diff .hljs-meta, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-template-tag, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-template-tag, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-type, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-type { + color: #8959a8; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis { + color: #8959a8; + font-style: italic; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-string, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-string { + color: #a3685a; +} +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword, +.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta-keyword, +.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta-keyword { + font-weight: 700; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { + /* From highlight.js@11.8.0/styles/solarized-light.css */ + /*! + Theme: Solarized Light + Author: Ethan Schoonover (modified by aramisgithub) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/ +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre pre code.hljs, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre code.hljs, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code code.hljs { + padding: 3px 5px; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs { + color: #586e75; + background: #fdf6e3; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs ::selection, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs ::selection, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs::selection, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs::selection { + background-color: #93a1a1; + color: #586e75; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-comment { + color: #839496; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-tag { + color: #657b83; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-operator, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-operator, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-punctuation, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-punctuation, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-subst, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-subst { + color: #586e75; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-operator, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-operator { + opacity: 0.7; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-name, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-name, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable { + color: #dc322f; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-literal, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-number, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-number, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable.constant_, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable.constant_ { + color: #cb4b16; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title.class_, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title.class_ { + color: #b58900; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-strong { + font-weight: 700; + color: #b58900; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-code, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-code, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title.class_.inherited__, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title.class_.inherited__ { + color: #859900; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword.hljs-atrule, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword.hljs-atrule, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-quote, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp { + color: #2aa198; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-function .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-function .hljs-title, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-section, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-section, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title.function_, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title.function_, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-property, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-property { + color: #268bd2; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-meta, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-meta, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template-tag, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-type, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-type { + color: #6c71c4; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis { + color: #6c71c4; + font-style: italic; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-string, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-string { + color: #d33682; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta-keyword, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta-keyword { + font-weight: 700; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { + /* From highlight.js@11.8.0/styles/tomorrow-night-bright.css */ +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre pre code.hljs, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre code.hljs, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code code.hljs { + padding: 3px 5px; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-comment, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-quote { + color: #969896; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-name, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-name, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-tag, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-variable { + color: #d54e53; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-link, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-link, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-literal, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-meta, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-number, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-number, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-params, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-params, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-type, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-type { + color: #e78c45; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute { + color: #e7c547; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-addition, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-string, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-string, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol { + color: #b9ca4a; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-section, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-section, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title { + color: #7aa6da; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag { + color: #c397d8; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs { + background: #000; + color: #eaeaea; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis { + font-style: italic; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-strong { + font-weight: 700; +} diff --git a/ja-beta/gitbook/fonts/fontawesome/FontAwesome.otf b/ja-beta/gitbook/fonts/fontawesome/FontAwesome.otf new file mode 100644 index 0000000..d4de13e Binary files /dev/null and b/ja-beta/gitbook/fonts/fontawesome/FontAwesome.otf differ diff --git a/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.eot b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.eot new file mode 100644 index 0000000..c7b00d2 Binary files /dev/null and b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.eot differ diff --git a/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.svg b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.svg new file mode 100644 index 0000000..8b66187 --- /dev/null +++ b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.svg @@ -0,0 +1,685 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.ttf b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.ttf new file mode 100644 index 0000000..f221e50 Binary files /dev/null and b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.ttf differ diff --git a/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.woff b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.woff new file mode 100644 index 0000000..6e7483c Binary files /dev/null and b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.woff differ diff --git a/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 new file mode 100644 index 0000000..7eb74fd Binary files /dev/null and b/ja-beta/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 differ diff --git a/ja-beta/gitbook/gitbook-plugin-back-to-top-button/plugin.css b/ja-beta/gitbook/gitbook-plugin-back-to-top-button/plugin.css new file mode 100644 index 0000000..1e52d06 --- /dev/null +++ b/ja-beta/gitbook/gitbook-plugin-back-to-top-button/plugin.css @@ -0,0 +1,55 @@ +.back-to-top { + position: fixed; + bottom: 25px; + right: 25px; + background: rgba(0, 0, 0, 0.5); + width: 50px; + height: 50px; + display: block; + text-decoration: none; + -webkit-border-radius: 35px; + -moz-border-radius: 35px; + border-radius: 35px; + display: none; +} +.back-to-top i { + color: #fff; + margin: 0; + position: relative; + left: 15px; + top: 14px; + font-size: 22px; +} +.back-to-top:hover { + background: rgba(0, 0, 0, 0.9); + cursor: pointer; +} +.book.color-theme-1 .back-to-top { + background: rgba(112, 66, 20, 0.5); +} +.book.color-theme-1 .back-to-top i { + color: #f3eacb; +} +.book.color-theme-1 .back-to-top:hover { + background: rgba(112, 66, 20, 0.9); +} +.book.color-theme-2 .back-to-top { + background: rgba(189, 202, 219, 0.5); +} +.book.color-theme-2 .back-to-top i { + color: #1C1F2B; +} +.book.color-theme-2 .back-to-top:hover { + background: rgba(189, 202, 219, 0.9); +} + +@media only screen + and (min-device-width: 320px) + and (max-device-width: 480px) + and (-webkit-min-device-pixel-ratio: 2) + and (orientation: portrait) { + .back-to-top { + bottom: 10px; + right: 10px; + } +} \ No newline at end of file diff --git a/ja-beta/gitbook/gitbook-plugin-back-to-top-button/plugin.js b/ja-beta/gitbook/gitbook-plugin-back-to-top-button/plugin.js new file mode 100644 index 0000000..6392901 --- /dev/null +++ b/ja-beta/gitbook/gitbook-plugin-back-to-top-button/plugin.js @@ -0,0 +1,25 @@ +var gitbook = window.gitbook; + +gitbook.events.on('page.change', function() { + + var back_to_top_button = ['
                                                              '].join(""); + $(".book").append(back_to_top_button) + + $(".back-to-top").hide(); + + $('.book-body,.body-inner').on('scroll', function () { + if ($(this).scrollTop() > 100) { + $('.back-to-top').fadeIn(); + } else { + $('.back-to-top').fadeOut(); + } + }); + + $('.back-to-top').click(function () { + $('.book-body,.body-inner').animate({ + scrollTop: 0 + }, 800); + return false; + }); + +}); diff --git a/ja-beta/gitbook/gitbook-plugin-fontsettings/fontsettings.js b/ja-beta/gitbook/gitbook-plugin-fontsettings/fontsettings.js new file mode 100644 index 0000000..ff7be71 --- /dev/null +++ b/ja-beta/gitbook/gitbook-plugin-fontsettings/fontsettings.js @@ -0,0 +1,240 @@ +require(['gitbook', 'jquery'], function(gitbook, $) { + // Configuration + var MAX_SIZE = 4, + MIN_SIZE = 0, + BUTTON_ID; + + // Current fontsettings state + var fontState; + + // Default themes + var THEMES = [ + { + config: 'white', + text: 'White', + id: 0 + }, + { + config: 'sepia', + text: 'Sepia', + id: 1 + }, + { + config: 'night', + text: 'Night', + id: 2 + } + ]; + + // Default font families + var FAMILIES = [ + { + config: 'serif', + text: 'Serif', + id: 0 + }, + { + config: 'sans', + text: 'Sans', + id: 1 + } + ]; + + // Return configured themes + function getThemes() { + return THEMES; + } + + // Modify configured themes + function setThemes(themes) { + THEMES = themes; + updateButtons(); + } + + // Return configured font families + function getFamilies() { + return FAMILIES; + } + + // Modify configured font families + function setFamilies(families) { + FAMILIES = families; + updateButtons(); + } + + // Save current font settings + function saveFontSettings() { + gitbook.storage.set('fontState', fontState); + update(); + } + + // Increase font size + function enlargeFontSize(e) { + e.preventDefault(); + if (fontState.size >= MAX_SIZE) return; + + fontState.size++; + saveFontSettings(); + } + + // Decrease font size + function reduceFontSize(e) { + e.preventDefault(); + if (fontState.size <= MIN_SIZE) return; + + fontState.size--; + saveFontSettings(); + } + + // Change font family + function changeFontFamily(configName, e) { + if (e && e instanceof Event) { + e.preventDefault(); + } + + var familyId = getFontFamilyId(configName); + fontState.family = familyId; + saveFontSettings(); + } + + // Change type of color theme + function changeColorTheme(configName, e) { + if (e && e instanceof Event) { + e.preventDefault(); + } + + var $book = gitbook.state.$book; + + // Remove currently applied color theme + if (fontState.theme !== 0) + $book.removeClass('color-theme-'+fontState.theme); + + // Set new color theme + var themeId = getThemeId(configName); + fontState.theme = themeId; + if (fontState.theme !== 0) + $book.addClass('color-theme-'+fontState.theme); + + saveFontSettings(); + } + + // Return the correct id for a font-family config key + // Default to first font-family + function getFontFamilyId(configName) { + // Search for plugin configured font family + var configFamily = $.grep(FAMILIES, function(family) { + return family.config == configName; + })[0]; + // Fallback to default font family + return (!!configFamily)? configFamily.id : 0; + } + + // Return the correct id for a theme config key + // Default to first theme + function getThemeId(configName) { + // Search for plugin configured theme + var configTheme = $.grep(THEMES, function(theme) { + return theme.config == configName; + })[0]; + // Fallback to default theme + return (!!configTheme)? configTheme.id : 0; + } + + function update() { + var $book = gitbook.state.$book; + + $('.font-settings .font-family-list li').removeClass('active'); + $('.font-settings .font-family-list li:nth-child('+(fontState.family+1)+')').addClass('active'); + + $book[0].className = $book[0].className.replace(/\bfont-\S+/g, ''); + $book.addClass('font-size-'+fontState.size); + $book.addClass('font-family-'+fontState.family); + + if(fontState.theme !== 0) { + $book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, ''); + $book.addClass('color-theme-'+fontState.theme); + } + } + + function init(config) { + // Search for plugin configured font family + var configFamily = getFontFamilyId(config.family), + configTheme = getThemeId(config.theme); + + // Instantiate font state object + fontState = gitbook.storage.get('fontState', { + size: config.size || 2, + family: configFamily, + theme: configTheme + }); + + update(); + } + + function updateButtons() { + // Remove existing fontsettings buttons + if (!!BUTTON_ID) { + gitbook.toolbar.removeButton(BUTTON_ID); + } + + // Create buttons in toolbar + BUTTON_ID = gitbook.toolbar.createButton({ + icon: 'fa fa-font', + label: 'Font Settings', + className: 'font-settings', + dropdown: [ + [ + { + text: 'A', + className: 'font-reduce', + onClick: reduceFontSize + }, + { + text: 'A', + className: 'font-enlarge', + onClick: enlargeFontSize + } + ], + $.map(FAMILIES, function(family) { + family.onClick = function(e) { + return changeFontFamily(family.config, e); + }; + + return family; + }), + $.map(THEMES, function(theme) { + theme.onClick = function(e) { + return changeColorTheme(theme.config, e); + }; + + return theme; + }) + ] + }); + } + + // Init configuration at start + gitbook.events.bind('start', function(e, config) { + var opts = config.fontsettings; + + // Generate buttons at start + updateButtons(); + + // Init current settings + init(opts); + }); + + // Expose API + gitbook.fontsettings = { + enlargeFontSize: enlargeFontSize, + reduceFontSize: reduceFontSize, + setTheme: changeColorTheme, + setFamily: changeFontFamily, + getThemes: getThemes, + setThemes: setThemes, + getFamilies: getFamilies, + setFamilies: setFamilies + }; +}); + + diff --git a/ja-beta/gitbook/gitbook-plugin-fontsettings/website.css b/ja-beta/gitbook/gitbook-plugin-fontsettings/website.css new file mode 100644 index 0000000..26591fe --- /dev/null +++ b/ja-beta/gitbook/gitbook-plugin-fontsettings/website.css @@ -0,0 +1,291 @@ +/* + * Theme 1 + */ +.color-theme-1 .dropdown-menu { + background-color: #111111; + border-color: #7e888b; +} +.color-theme-1 .dropdown-menu .dropdown-caret .caret-inner { + border-bottom: 9px solid #111111; +} +.color-theme-1 .dropdown-menu .buttons { + border-color: #7e888b; +} +.color-theme-1 .dropdown-menu .button { + color: #afa790; +} +.color-theme-1 .dropdown-menu .button:hover { + color: #73553c; +} +/* + * Theme 2 + */ +.color-theme-2 .dropdown-menu { + background-color: #2d3143; + border-color: #272a3a; +} +.color-theme-2 .dropdown-menu .dropdown-caret .caret-inner { + border-bottom: 9px solid #2d3143; +} +.color-theme-2 .dropdown-menu .buttons { + border-color: #272a3a; +} +.color-theme-2 .dropdown-menu .button { + color: #62677f; +} +.color-theme-2 .dropdown-menu .button:hover { + color: #f4f4f5; +} +.book .book-header .font-settings .font-enlarge { + line-height: 30px; + font-size: 1.4em; +} +.book .book-header .font-settings .font-reduce { + line-height: 30px; + font-size: 1em; +} +.book.color-theme-1 .book-body { + color: #704214; + background: #f3eacb; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section { + background: #f3eacb; +} +.book.color-theme-2 .book-body { + color: #bdcadb; + background: #1c1f2b; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section { + background: #1c1f2b; +} +.book.font-size-0 .book-body .page-inner section { + font-size: 1.2rem; +} +.book.font-size-1 .book-body .page-inner section { + font-size: 1.4rem; +} +.book.font-size-2 .book-body .page-inner section { + font-size: 1.6rem; +} +.book.font-size-3 .book-body .page-inner section { + font-size: 2.2rem; +} +.book.font-size-4 .book-body .page-inner section { + font-size: 4rem; +} +.book.font-family-0 { + font-family: Georgia, serif; +} +.book.font-family-1 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal { + color: #704214; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 { + border-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { + color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr { + background-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote { + border-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { + background: #fdf6e3; + color: #657b83; + border-color: #f8df9c; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight { + background-color: inherit; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th, +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td { + border-color: #f5d06c; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr { + color: inherit; + background-color: #fdf6e3; + border-color: #444444; +} +.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { + background-color: #fbeecb; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal { + color: #bdcadb; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a { + color: #3eb1d0; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { + color: #fffffa; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 { + border-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { + color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr { + background-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote { + border-color: #373b4e; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { + color: #9dbed8; + background: #2d3143; + border-color: #2d3143; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight { + background-color: #282a39; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th, +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td { + border-color: #3b3f54; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr { + color: #b6c2d2; + background-color: #2d3143; + border-color: #3b3f54; +} +.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { + background-color: #35394b; +} +.book.color-theme-1 .book-header { + color: #afa790; + background: transparent; +} +.book.color-theme-1 .book-header .btn { + color: #afa790; +} +.book.color-theme-1 .book-header .btn:hover { + color: #73553c; + background: none; +} +.book.color-theme-1 .book-header h1 { + color: #704214; +} +.book.color-theme-2 .book-header { + color: #7e888b; + background: transparent; +} +.book.color-theme-2 .book-header .btn { + color: #3b3f54; +} +.book.color-theme-2 .book-header .btn:hover { + color: #fffff5; + background: none; +} +.book.color-theme-2 .book-header h1 { + color: #bdcadb; +} +.book.color-theme-1 .book-body .navigation { + color: #afa790; +} +.book.color-theme-1 .book-body .navigation:hover { + color: #73553c; +} +.book.color-theme-2 .book-body .navigation { + color: #383f52; +} +.book.color-theme-2 .book-body .navigation:hover { + color: #fffff5; +} +/* + * Theme 1 + */ +.book.color-theme-1 .book-summary { + color: #afa790; + background: #111111; + border-right: 1px solid rgba(0, 0, 0, 0.07); +} +.book.color-theme-1 .book-summary .book-search { + background: transparent; +} +.book.color-theme-1 .book-summary .book-search input, +.book.color-theme-1 .book-summary .book-search input:focus { + border: 1px solid transparent; +} +.book.color-theme-1 .book-summary ul.summary li.divider { + background: #7e888b; + box-shadow: none; +} +.book.color-theme-1 .book-summary ul.summary li i.fa-check { + color: #33cc33; +} +.book.color-theme-1 .book-summary ul.summary li.done > a { + color: #877f6a; +} +.book.color-theme-1 .book-summary ul.summary li a, +.book.color-theme-1 .book-summary ul.summary li span { + color: #877f6a; + background: transparent; + font-weight: normal; +} +.book.color-theme-1 .book-summary ul.summary li.active > a, +.book.color-theme-1 .book-summary ul.summary li a:hover { + color: #704214; + background: transparent; + font-weight: normal; +} +/* + * Theme 2 + */ +.book.color-theme-2 .book-summary { + color: #bcc1d2; + background: #2d3143; + border-right: none; +} +.book.color-theme-2 .book-summary .book-search { + background: transparent; +} +.book.color-theme-2 .book-summary .book-search input, +.book.color-theme-2 .book-summary .book-search input:focus { + border: 1px solid transparent; +} +.book.color-theme-2 .book-summary ul.summary li.divider { + background: #272a3a; + box-shadow: none; +} +.book.color-theme-2 .book-summary ul.summary li i.fa-check { + color: #33cc33; +} +.book.color-theme-2 .book-summary ul.summary li.done > a { + color: #62687f; +} +.book.color-theme-2 .book-summary ul.summary li a, +.book.color-theme-2 .book-summary ul.summary li span { + color: #c1c6d7; + background: transparent; + font-weight: 600; +} +.book.color-theme-2 .book-summary ul.summary li.active > a, +.book.color-theme-2 .book-summary ul.summary li a:hover { + color: #f4f4f5; + background: #252737; + font-weight: 600; +} diff --git a/ja-beta/gitbook/gitbook-plugin-lunr/lunr.min.js b/ja-beta/gitbook/gitbook-plugin-lunr/lunr.min.js new file mode 100644 index 0000000..6aa6bc7 --- /dev/null +++ b/ja-beta/gitbook/gitbook-plugin-lunr/lunr.min.js @@ -0,0 +1,7 @@ +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 0.5.12 + * Copyright (C) 2015 Oliver Nightingale + * MIT Licensed + * @license + */ +!function(){var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.5.12",t.utils={},t.utils.warn=function(t){return function(e){t.console&&console.warn&&console.warn(e)}}(this),t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=t;if("function"!=typeof e)throw new TypeError("last argument must be a function");n.forEach(function(t){this.hasHandler(t)||(this.events[t]=[]),this.events[t].push(e)},this)},t.EventEmitter.prototype.removeListener=function(t,e){if(this.hasHandler(t)){var n=this.events[t].indexOf(e);this.events[t].splice(n,1),this.events[t].length||delete this.events[t]}},t.EventEmitter.prototype.emit=function(t){if(this.hasHandler(t)){var e=Array.prototype.slice.call(arguments,1);this.events[t].forEach(function(t){t.apply(void 0,e)})}},t.EventEmitter.prototype.hasHandler=function(t){return t in this.events},t.tokenizer=function(t){return arguments.length&&null!=t&&void 0!=t?Array.isArray(t)?t.map(function(t){return t.toLowerCase()}):t.toString().trim().toLowerCase().split(/[\s\-]+/):[]},t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.registeredFunctions[e];if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._stack.indexOf(e);if(-1==i)throw new Error("Cannot find existingFn");this._stack.splice(i,0,n)},t.Pipeline.prototype.remove=function(t){var e=this._stack.indexOf(t);-1!=e&&this._stack.splice(e,1)},t.Pipeline.prototype.run=function(t){for(var e=[],n=t.length,i=this._stack.length,o=0;n>o;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;no;o++){for(var r=t[o],s=0;i>s&&(r=this._stack[s](r,o,t),void 0!==r);s++);void 0!==r&&e.push(r)}return e},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Vector=function(){this._magnitude=null,this.list=void 0,this.length=0},t.Vector.Node=function(t,e,n){this.idx=t,this.val=e,this.next=n},t.Vector.prototype.insert=function(e,n){this._magnitude=void 0;var i=this.list;if(!i)return this.list=new t.Vector.Node(e,n,i),this.length++;if(en.idx?n=n.next:(i+=e.val*n.val,e=e.next,n=n.next);return i},t.Vector.prototype.similarity=function(t){return this.dot(t)/(this.magnitude()*t.magnitude())},t.SortedSet=function(){this.length=0,this.elements=[]},t.SortedSet.load=function(t){var e=new this;return e.elements=t,e.length=t.length,e},t.SortedSet.prototype.add=function(){var t,e;for(t=0;t1;){if(r===t)return o;t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o]}return r===t?o:-1},t.SortedSet.prototype.locationFor=function(t){for(var e=0,n=this.elements.length,i=n-e,o=e+Math.floor(i/2),r=this.elements[o];i>1;)t>r&&(e=o),r>t&&(n=o),i=n-e,o=e+Math.floor(i/2),r=this.elements[o];return r>t?o:t>r?o+1:void 0},t.SortedSet.prototype.intersect=function(e){for(var n=new t.SortedSet,i=0,o=0,r=this.length,s=e.length,a=this.elements,h=e.elements;;){if(i>r-1||o>s-1)break;a[i]!==h[o]?a[i]h[o]&&o++:(n.add(a[i]),i++,o++)}return n},t.SortedSet.prototype.clone=function(){var e=new t.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},t.SortedSet.prototype.union=function(t){var e,n,i;return this.length>=t.length?(e=this,n=t):(e=t,n=this),i=e.clone(),i.add.apply(i,n.toArray()),i},t.SortedSet.prototype.toJSON=function(){return this.toArray()},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.Store,this.tokenStore=new t.TokenStore,this.corpusTokens=new t.SortedSet,this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var t=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,t)},t.Index.prototype.off=function(t,e){return this.eventEmitter.removeListener(t,e)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;return n._fields=e.fields,n._ref=e.ref,n.documentStore=t.Store.load(e.documentStore),n.tokenStore=t.TokenStore.load(e.tokenStore),n.corpusTokens=t.SortedSet.load(e.corpusTokens),n.pipeline=t.Pipeline.load(e.pipeline),n},t.Index.prototype.field=function(t,e){var e=e||{},n={name:t,boost:e.boost||1};return this._fields.push(n),this},t.Index.prototype.ref=function(t){return this._ref=t,this},t.Index.prototype.add=function(e,n){var i={},o=new t.SortedSet,r=e[this._ref],n=void 0===n?!0:n;this._fields.forEach(function(n){var r=this.pipeline.run(t.tokenizer(e[n.name]));i[n.name]=r,t.SortedSet.prototype.add.apply(o,r)},this),this.documentStore.set(r,o),t.SortedSet.prototype.add.apply(this.corpusTokens,o.toArray());for(var s=0;s0&&(i=1+Math.log(this.documentStore.length/n)),this._idfCache[e]=i},t.Index.prototype.search=function(e){var n=this.pipeline.run(t.tokenizer(e)),i=new t.Vector,o=[],r=this._fields.reduce(function(t,e){return t+e.boost},0),s=n.some(function(t){return this.tokenStore.has(t)},this);if(!s)return[];n.forEach(function(e,n,s){var a=1/s.length*this._fields.length*r,h=this,l=this.tokenStore.expand(e).reduce(function(n,o){var r=h.corpusTokens.indexOf(o),s=h.idf(o),l=1,u=new t.SortedSet;if(o!==e){var c=Math.max(3,o.length-e.length);l=1/Math.log(c)}return r>-1&&i.insert(r,a*s*l),Object.keys(h.tokenStore.get(o)).forEach(function(t){u.add(t)}),n.union(u)},new t.SortedSet);o.push(l)},this);var a=o.reduce(function(t,e){return t.intersect(e)});return a.map(function(t){return{ref:t,score:i.similarity(this.documentVector(t))}},this).sort(function(t,e){return e.score-t.score})},t.Index.prototype.documentVector=function(e){for(var n=this.documentStore.get(e),i=n.length,o=new t.Vector,r=0;i>r;r++){var s=n.elements[r],a=this.tokenStore.get(s)[e].tf,h=this.idf(s);o.insert(this.corpusTokens.indexOf(s),a*h)}return o},t.Index.prototype.toJSON=function(){return{version:t.version,fields:this._fields,ref:this._ref,documentStore:this.documentStore.toJSON(),tokenStore:this.tokenStore.toJSON(),corpusTokens:this.corpusTokens.toJSON(),pipeline:this.pipeline.toJSON()}},t.Index.prototype.use=function(t){var e=Array.prototype.slice.call(arguments,1);e.unshift(this),t.apply(this,e)},t.Store=function(){this.store={},this.length=0},t.Store.load=function(e){var n=new this;return n.length=e.length,n.store=Object.keys(e.store).reduce(function(n,i){return n[i]=t.SortedSet.load(e.store[i]),n},{}),n},t.Store.prototype.set=function(t,e){this.has(t)||this.length++,this.store[t]=e},t.Store.prototype.get=function(t){return this.store[t]},t.Store.prototype.has=function(t){return t in this.store},t.Store.prototype.remove=function(t){this.has(t)&&(delete this.store[t],this.length--)},t.Store.prototype.toJSON=function(){return{store:this.store,length:this.length}},t.stemmer=function(){var t={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},e={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",o=n+"[^aeiouy]*",r=i+"[aeiou]*",s="^("+o+")?"+r+o,a="^("+o+")?"+r+o+"("+r+")?$",h="^("+o+")?"+r+o+r+o,l="^("+o+")?"+i,u=new RegExp(s),c=new RegExp(h),f=new RegExp(a),d=new RegExp(l),p=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,y=/^(.+?)(ed|ing)$/,g=/.$/,S=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),x=new RegExp("^"+o+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,b=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,_=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,F=/^(.+?)(s|t)(ion)$/,O=/^(.+?)e$/,P=/ll$/,N=new RegExp("^"+o+i+"[^aeiouwxy]$"),T=function(n){var i,o,r,s,a,h,l;if(n.length<3)return n;if(r=n.substr(0,1),"y"==r&&(n=r.toUpperCase()+n.substr(1)),s=p,a=m,s.test(n)?n=n.replace(s,"$1$2"):a.test(n)&&(n=n.replace(a,"$1$2")),s=v,a=y,s.test(n)){var T=s.exec(n);s=u,s.test(T[1])&&(s=g,n=n.replace(s,""))}else if(a.test(n)){var T=a.exec(n);i=T[1],a=d,a.test(i)&&(n=i,a=S,h=w,l=x,a.test(n)?n+="e":h.test(n)?(s=g,n=n.replace(s,"")):l.test(n)&&(n+="e"))}if(s=k,s.test(n)){var T=s.exec(n);i=T[1],n=i+"i"}if(s=b,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+t[o])}if(s=E,s.test(n)){var T=s.exec(n);i=T[1],o=T[2],s=u,s.test(i)&&(n=i+e[o])}if(s=_,a=F,s.test(n)){var T=s.exec(n);i=T[1],s=c,s.test(i)&&(n=i)}else if(a.test(n)){var T=a.exec(n);i=T[1]+T[2],a=c,a.test(i)&&(n=i)}if(s=O,s.test(n)){var T=s.exec(n);i=T[1],s=c,a=f,h=N,(s.test(i)||a.test(i)&&!h.test(i))&&(n=i)}return s=P,a=c,s.test(n)&&a.test(n)&&(s=g,n=n.replace(s,"")),"y"==r&&(n=r.toLowerCase()+n.substr(1)),n};return T}(),t.Pipeline.registerFunction(t.stemmer,"stemmer"),t.stopWordFilter=function(e){return e&&t.stopWordFilter.stopWords[e]!==e?e:void 0},t.stopWordFilter.stopWords={a:"a",able:"able",about:"about",across:"across",after:"after",all:"all",almost:"almost",also:"also",am:"am",among:"among",an:"an",and:"and",any:"any",are:"are",as:"as",at:"at",be:"be",because:"because",been:"been",but:"but",by:"by",can:"can",cannot:"cannot",could:"could",dear:"dear",did:"did","do":"do",does:"does",either:"either","else":"else",ever:"ever",every:"every","for":"for",from:"from",get:"get",got:"got",had:"had",has:"has",have:"have",he:"he",her:"her",hers:"hers",him:"him",his:"his",how:"how",however:"however",i:"i","if":"if","in":"in",into:"into",is:"is",it:"it",its:"its",just:"just",least:"least",let:"let",like:"like",likely:"likely",may:"may",me:"me",might:"might",most:"most",must:"must",my:"my",neither:"neither",no:"no",nor:"nor",not:"not",of:"of",off:"off",often:"often",on:"on",only:"only",or:"or",other:"other",our:"our",own:"own",rather:"rather",said:"said",say:"say",says:"says",she:"she",should:"should",since:"since",so:"so",some:"some",than:"than",that:"that",the:"the",their:"their",them:"them",then:"then",there:"there",these:"these",they:"they","this":"this",tis:"tis",to:"to",too:"too",twas:"twas",us:"us",wants:"wants",was:"was",we:"we",were:"were",what:"what",when:"when",where:"where",which:"which","while":"while",who:"who",whom:"whom",why:"why",will:"will","with":"with",would:"would",yet:"yet",you:"you",your:"your"},t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter"),t.trimmer=function(t){var e=t.replace(/^\W+/,"").replace(/\W+$/,"");return""===e?void 0:e},t.Pipeline.registerFunction(t.trimmer,"trimmer"),t.TokenStore=function(){this.root={docs:{}},this.length=0},t.TokenStore.load=function(t){var e=new this;return e.root=t.root,e.length=t.length,e},t.TokenStore.prototype.add=function(t,e,n){var n=n||this.root,i=t[0],o=t.slice(1);return i in n||(n[i]={docs:{}}),0===o.length?(n[i].docs[e.ref]=e,void(this.length+=1)):this.add(o,e,n[i])},t.TokenStore.prototype.has=function(t){if(!t)return!1;for(var e=this.root,n=0;n element for each result + res.results.forEach(function(res) { + var $li = $('
                                                            • ', { + 'class': 'search-results-item' + }); + + var $title = $('

                                                              '); + + var $link = $('', { + 'href': gitbook.state.basePath + '/' + res.url, + 'text': res.title + }); + + var content = res.body.trim(); + if (content.length > MAX_DESCRIPTION_SIZE) { + content = content.slice(0, MAX_DESCRIPTION_SIZE).trim()+'...'; + } + var $content = $('

                                                              ').html(content); + + $link.appendTo($title); + $title.appendTo($li); + $content.appendTo($li); + $li.appendTo($searchList); + }); + } + + function launchSearch(q) { + // Add class for loading + $body.addClass('with-search'); + $body.addClass('search-loading'); + + // Launch search query + throttle(gitbook.search.query(q, 0, MAX_RESULTS) + .then(function(results) { + displayResults(results); + }) + .always(function() { + $body.removeClass('search-loading'); + }), 1000); + } + + function closeSearch() { + $body.removeClass('with-search'); + $bookSearchResults.removeClass('open'); + } + + function launchSearchFromQueryString() { + var q = getParameterByName('q'); + if (q && q.length > 0) { + // Update search input + $searchInput.val(q); + + // Launch search + launchSearch(q); + } + } + + function bindSearch() { + // Bind DOM + $searchInput = $('#book-search-input input'); + $bookSearchResults = $('#book-search-results'); + $searchList = $bookSearchResults.find('.search-results-list'); + $searchTitle = $bookSearchResults.find('.search-results-title'); + $searchResultsCount = $searchTitle.find('.search-results-count'); + $searchQuery = $searchTitle.find('.search-query'); + + // Launch query based on input content + function handleUpdate() { + var q = $searchInput.val(); + + if (q.length == 0) { + closeSearch(); + } + else { + launchSearch(q); + } + } + + // Detect true content change in search input + // Workaround for IE < 9 + var propertyChangeUnbound = false; + $searchInput.on('propertychange', function(e) { + if (e.originalEvent.propertyName == 'value') { + handleUpdate(); + } + }); + + // HTML5 (IE9 & others) + $searchInput.on('input', function(e) { + // Unbind propertychange event for IE9+ + if (!propertyChangeUnbound) { + $(this).unbind('propertychange'); + propertyChangeUnbound = true; + } + + handleUpdate(); + }); + + // Push to history on blur + $searchInput.on('blur', function(e) { + // Update history state + if (usePushState) { + var uri = updateQueryString('q', $(this).val()); + history.pushState({ path: uri }, null, uri); + } + }); + } + + gitbook.events.on('page.change', function() { + bindSearch(); + closeSearch(); + + // Launch search based on query parameter + if (gitbook.search.isInitialized()) { + launchSearchFromQueryString(); + } + }); + + gitbook.events.on('search.ready', function() { + bindSearch(); + + // Launch search from query param at start + launchSearchFromQueryString(); + }); + + function getParameterByName(name) { + var url = window.location.href; + name = name.replace(/[\[\]]/g, '\\$&'); + var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)', 'i'), + results = regex.exec(url); + if (!results) return null; + if (!results[2]) return ''; + return decodeURIComponent(results[2].replace(/\+/g, ' ')); + } + + function updateQueryString(key, value) { + value = encodeURIComponent(value); + + var url = window.location.href; + var re = new RegExp('([?&])' + key + '=.*?(&|#|$)(.*)', 'gi'), + hash; + + if (re.test(url)) { + if (typeof value !== 'undefined' && value !== null) + return url.replace(re, '$1' + key + '=' + value + '$2$3'); + else { + hash = url.split('#'); + url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, ''); + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + } + else { + if (typeof value !== 'undefined' && value !== null) { + var separator = url.indexOf('?') !== -1 ? '&' : '?'; + hash = url.split('#'); + url = hash[0] + separator + key + '=' + value; + if (typeof hash[1] !== 'undefined' && hash[1] !== null) + url += '#' + hash[1]; + return url; + } + else + return url; + } + } +}); diff --git a/ja-beta/gitbook/gitbook.js b/ja-beta/gitbook/gitbook.js new file mode 100644 index 0000000..74e2b3b --- /dev/null +++ b/ja-beta/gitbook/gitbook.js @@ -0,0 +1 @@ +!function r(o,i,a){function s(t,e){if(!i[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(u)return u(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=i[t]={exports:{}},o[t][0].call(n.exports,function(e){return s(o[t][1][e]||e)},n,n.exports,r,o,i,a)}return i[t].exports}for(var u="function"==typeof require&&require,e=0;e= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=m-1,b=Math.floor,x=String.fromCharCode;function w(e){throw new RangeError(f[e])}function h(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function d(e,t){var n=e.split("@"),r="",n=(1>>10&1023|55296),e=56320|1023&e),t+=x(e)}).join("")}function A(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function j(e,t,n){var r=0;for(e=n?b(e/s):e>>1,e+=b(e/t);p*v>>1b((g-c)/i))&&w("overflow"),c+=s*i,!(s<(s=a<=p?1:p+v<=a?v:a-p));a+=m)i>b(g/(s=m-s))&&w("overflow"),i*=s;p=j(c-o,t=u.length+1,0==o),b(c/t)>g-f&&w("overflow"),f+=b(c/t),c%=t,u.splice(c++,0,f)}return y(u)}function C(e){for(var t,n,r,o,i,a,s,u,l,c,f=[],p=(e=S(e)).length,h=128,d=72,y=t=0;yb((g-t)/(u=n+1))&&w("overflow"),t+=(o-h)*u,h=o,y=0;yg&&w("overflow"),s==h){for(i=t,a=m;!(i<(l=a<=d?1:d+v<=a?v:a-d));a+=m)f.push(x(A(l+(c=i-l)%(l=m-l),0))),i=b(c/l);f.push(x(A(i,0))),d=j(t,u,n==r),t=0,++n}++t,++h}return f.join("")}if(o={version:"1.4.1",ucs2:{decode:S,encode:y},decode:T,encode:C,toASCII:function(e){return d(e,function(e){return l.test(e)?"xn--"+C(e):e})},toUnicode:function(e){return d(e,function(e){return u.test(e)?T(e.slice(4).toLowerCase()):e})}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return o});else if(t&&n)if(k.exports==t)n.exports=o;else for(i in o)o.hasOwnProperty(i)&&(t[i]=o[i]);else e.punycode=o}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,n){"use strict";var r=e("get-intrinsic"),o=e("./"),i=o(r("String.prototype.indexOf"));t.exports=function(e,t){t=r(e,!!t);return"function"==typeof t&&-1=n.length?(u=!!(f=d(i,l)))&&"get"in f&&!("originalValue"in f.get)?f.get:i[l]:(u=b(i,l),i[l]),u&&!a&&(g[c]=i)}}return i}},{"function-bind":6,has:11,"has-proto":8,"has-symbols":9}],8:[function(e,t,n){"use strict";var r={foo:{}},o=Object;t.exports=function(){return{__proto__:r}.foo===r.foo&&!({__proto__:null}instanceof o)}},{}],9:[function(e,t,n){"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=e("./shams");t.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&o())))}},{"./shams":10}],10:[function(e,t,n){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"!=typeof Symbol.iterator){var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){n=Object.getOwnPropertyDescriptor(e,t);if(42!==n.value||!0!==n.enumerable)return!1}}return!0}},{}],11:[function(e,t,n){"use strict";e=e("function-bind");t.exports=e.call(Function.call,Object.prototype.hasOwnProperty)},{"function-bind":6}],12:[function(e,n,t){!function(e,t){"use strict";"object"==typeof n&&"object"==typeof n.exports?n.exports=e.document?t(e,!0):function(e){if(e.document)return t(e);throw new Error("jQuery requires a window with a document")}:t(e)}("undefined"!=typeof window?window:this,function(w,I){"use strict";function v(e){return"function"==typeof e&&"number"!=typeof e.nodeType}function y(e){return null!=e&&e===e.window}var t=[],F=Object.getPrototypeOf,s=t.slice,M=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},H=t.push,_=t.indexOf,B={},W=B.toString,$=B.hasOwnProperty,U=$.toString,z=U.call(Object),g={},S=w.document,G={type:!0,src:!0,nonce:!0,noModule:!0};function V(e,t,n){var r,o,i=(n=n||S).createElement("script");if(i.text=e,t)for(r in G)(o=t[r]||t.getAttribute&&t.getAttribute(r))&&i.setAttribute(r,o);n.head.appendChild(i).parentNode.removeChild(i)}function d(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?B[W.call(e)]||"object":typeof e}var A=function(e,t){return new A.fn.init(e,t)};function X(e){var t=!!e&&"length"in e&&e.length,n=d(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&e|56320))}function F(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}function M(){S()}var e,p,x,i,H,h,_,B,w,u,l,S,A,n,j,d,r,o,y,T="sizzle"+ +new Date,c=I.document,C=0,W=0,$=D(),U=D(),z=D(),g=D(),G=function(e,t){return e===t&&(l=!0),0},V={}.hasOwnProperty,t=[],X=t.pop,Q=t.push,E=t.push,J=t.slice,v=function(e,t){for(var n=0,r=e.length;n+~]|"+a+")"+a+"*"),re=new RegExp(a+"|>"),oe=new RegExp(Z),ie=new RegExp("^"+s+"$"),b={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),TAG:new RegExp("^("+s+"|[*])"),ATTR:new RegExp("^"+K),PSEUDO:new RegExp("^"+Z),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+a+"*(even|odd|(([+-]|)(\\d*)n|)"+a+"*(?:([+-]|)"+a+"*(\\d+)|))"+a+"*\\)|)","i"),bool:new RegExp("^(?:"+Y+")$","i"),needsContext:new RegExp("^"+a+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+a+"*((?:-\\d)?\\d*)"+a+"*\\)|)(?=[^-]|$)","i")},ae=/HTML$/i,se=/^(?:input|select|textarea|button)$/i,ue=/^h\d$/i,k=/^[^{]+\{\s*\[native \w/,le=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ce=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+a+"?|\\\\([^\\r\\n\\f])","g"),fe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,pe=ve(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{E.apply(t=J.call(c.childNodes),c.childNodes),t[c.childNodes.length].nodeType}catch(e){E={apply:t.length?function(e,t){Q.apply(e,J.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function N(t,e,n,r){var o,i,a,s,u,l,c=e&&e.ownerDocument,f=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==f&&9!==f&&11!==f)return n;if(!r&&(S(e),e=e||A,j)){if(11!==f&&(s=le.exec(t)))if(o=s[1]){if(9===f){if(!(l=e.getElementById(o)))return n;if(l.id===o)return n.push(l),n}else if(c&&(l=c.getElementById(o))&&y(e,l)&&l.id===o)return n.push(l),n}else{if(s[2])return E.apply(n,e.getElementsByTagName(t)),n;if((o=s[3])&&p.getElementsByClassName&&e.getElementsByClassName)return E.apply(n,e.getElementsByClassName(o)),n}if(p.qsa&&!g[t+" "]&&(!d||!d.test(t))&&(1!==f||"object"!==e.nodeName.toLowerCase())){if(l=t,c=e,1===f&&(re.test(t)||ne.test(t))){for((c=ce.test(t)&&ge(e.parentNode)||e)===e&&p.scope||((a=e.getAttribute("id"))?a=a.replace(fe,F):e.setAttribute("id",a=T)),i=(u=h(t)).length;i--;)u[i]=(a?"#"+a:":scope")+" "+R(u[i]);l=u.join(",")}try{return E.apply(n,c.querySelectorAll(l)),n}catch(e){g(t,!0)}finally{a===T&&e.removeAttribute("id")}}}return B(t.replace(m,"$1"),e,n,r)}function D(){var n=[];function r(e,t){return n.push(e+" ")>x.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function P(e){return e[T]=!0,e}function q(e){var t=A.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function he(e,t){for(var n=e.split("|"),r=n.length;r--;)x.attrHandle[n[r]]=t}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ye(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&pe(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function L(a){return P(function(i){return i=+i,P(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=N.support={},H=N.isXML=function(e){var t=e.namespaceURI,e=(e.ownerDocument||e).documentElement;return!ae.test(t||e&&e.nodeName||"HTML")},S=N.setDocument=function(e){var e=e?e.ownerDocument||e:c;return e!=A&&9===e.nodeType&&e.documentElement&&(n=(A=e).documentElement,j=!H(A),c!=A&&(e=A.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",M,!1):e.attachEvent&&e.attachEvent("onunload",M)),p.scope=q(function(e){return n.appendChild(e).appendChild(A.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),p.attributes=q(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=q(function(e){return e.appendChild(A.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=k.test(A.getElementsByClassName),p.getById=q(function(e){return n.appendChild(e).id=T,!A.getElementsByName||!A.getElementsByName(T).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(O,f);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&j)return(t=t.getElementById(e))?[t]:[]}):(x.filter.ID=function(e){var t=e.replace(O,f);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&j){var n,r,o,i=t.getElementById(e);if(i){if((n=i.getAttributeNode("id"))&&n.value===e)return[i];for(o=t.getElementsByName(e),r=0;i=o[r++];)if((n=i.getAttributeNode("id"))&&n.value===e)return[i]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"!==e)return i;for(;n=i[o++];)1===n.nodeType&&r.push(n);return r},x.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&j)return t.getElementsByClassName(e)},r=[],d=[],(p.qsa=k.test(A.querySelectorAll))&&(q(function(e){var t;n.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&d.push("[*^$]="+a+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||d.push("\\["+a+"*(?:value|"+Y+")"),e.querySelectorAll("[id~="+T+"-]").length||d.push("~="),(t=A.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+a+"*name"+a+"*="+a+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||d.push(":checked"),e.querySelectorAll("a#"+T+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll("\\\f"),d.push("[\\r\\n\\f]")}),q(function(e){e.innerHTML="";var t=A.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&d.push("name"+a+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&d.push(":enabled",":disabled"),n.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(p.matchesSelector=k.test(o=n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.oMatchesSelector||n.msMatchesSelector))&&q(function(e){p.disconnectedMatch=o.call(e,"*"),o.call(e,"[s!='']:x"),r.push("!=",Z)}),d=d.length&&new RegExp(d.join("|")),r=r.length&&new RegExp(r.join("|")),e=k.test(n.compareDocumentPosition),y=e||k.test(n.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},G=e?function(e,t){var n;return e===t?(l=!0,0):(n=!e.compareDocumentPosition-!t.compareDocumentPosition)||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e==A||e.ownerDocument==c&&y(c,e)?-1:t==A||t.ownerDocument==c&&y(c,t)?1:u?v(u,e)-v(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],s=[t];if(!o||!i)return e==A?-1:t==A?1:o?-1:i?1:u?v(u,e)-v(u,t):0;if(o===i)return de(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?de(a[r],s[r]):a[r]==c?-1:s[r]==c?1:0}),A},N.matches=function(e,t){return N(e,null,null,t)},N.matchesSelector=function(e,t){if(S(e),p.matchesSelector&&j&&!g[t+" "]&&(!r||!r.test(t))&&(!d||!d.test(t)))try{var n=o.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){g(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,f),e[3]=(e[3]||e[4]||e[5]||"").replace(O,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||N.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&N.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return b.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&oe.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+a+")"+e+"("+a+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=N.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function K(e,n,r){return v(n)?A.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?A.grep(e,function(e){return e===n!==r}):"string"!=typeof n?A.grep(e,function(e){return-1<_.call(n,e)!==r}):A.filter(n,e,r)}A.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?A.find.matchesSelector(r,e)?[r]:[]:A.find.matches(e,A.grep(t,function(e){return 1===e.nodeType}))},A.fn.extend({find:function(e){var t,n,r=this.length,o=this;if("string"!=typeof e)return this.pushStack(A(e).filter(function(){for(t=0;t)[^>]*|#([\w-]+))$/,te=((A.fn.init=function(e,t,n){if(e){if(n=n||Z,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(A):A.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:ee.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof A?t[0]:t,A.merge(this,A.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),Y.test(r[1])&&A.isPlainObject(t))for(var r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r])}else(n=S.getElementById(r[2]))&&(this[0]=n,this.length=1)}return this}).prototype=A.fn,Z=A(S),/^(?:parents|prev(?:Until|All))/),ne={children:!0,contents:!0,next:!0,prev:!0};function re(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}A.fn.extend({has:function(e){var t=A(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ae=/^$|^module$|\/(?:java|ecma)script/i,k=(P=S.createDocumentFragment().appendChild(S.createElement("div")),(a=S.createElement("input")).setAttribute("type","radio"),a.setAttribute("checked","checked"),a.setAttribute("name","t"),P.appendChild(a),g.checkClone=P.cloneNode(!0).cloneNode(!0).lastChild.checked,P.innerHTML="",g.noCloneChecked=!!P.cloneNode(!0).lastChild.defaultValue,P.innerHTML="",g.option=!!P.lastChild,{thead:[1,"","
                                                              "],col:[2,"","
                                                              "],tr:[2,"","
                                                              "],td:[3,"","
                                                              "],_default:[0,"",""]});function O(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&u(e,t)?A.merge([e],n):n}function je(e,t){for(var n=0,r=e.length;n",""]);var Te=/<|&#?\w+;/;function Ce(e,t,n,r,o){for(var i,a,s,u,l,c=t.createDocumentFragment(),f=[],p=0,h=e.length;p\s*$/g;function Ie(e,t){return u(e,"table")&&u(11!==t.nodeType?t:t.firstChild,"tr")&&A(e).children("tbody")[0]||e}function Fe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Me(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,r,o,i;if(1===t.nodeType){if(x.hasData(e)&&(i=x.get(e).events))for(o in x.remove(t,"handle events"),i)for(n=0,r=i[o].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",o=function(e){r.remove(),o=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){o&&o()}}}),[]),Yt=/(=)\?(?=&|$)|\?\?/,Kt=(A.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Jt.pop()||A.expando+"_"+Ot.guid++;return this[e]=!0,e}}),A.ajaxPrefilter("json jsonp",function(e,t,n){var r,o,i,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(Nt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return i||A.error(r+" was not called"),i[0]},e.dataTypes[0]="json",o=w[r],w[r]=function(){i=arguments},n.always(function(){void 0===o?A(w).removeProp(r):w[r]=o,e[r]&&(e.jsonpCallback=t.jsonpCallback,Jt.push(r)),i&&v(o)&&o(i[0]),i=o=void 0}),"script"}),g.createHTMLDocument=((e=S.implementation.createHTMLDocument("").body).innerHTML="

                                                              ",2===e.childNodes.length),A.parseHTML=function(e,t,n){var r;return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(g.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),r=!n&&[],(n=Y.exec(e))?[t.createElement(n[1])]:(n=Ce([e],t,r),r&&r.length&&A(r).remove(),A.merge([],n.childNodes)))},A.fn.load=function(e,t,n){var r,o,i,a=this,s=e.indexOf(" ");return-1").append(A.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,i||[e.responseText,t,e])})}),this},A.expr.pseudos.animated=function(t){return A.grep(A.timers,function(e){return t===e.elem}).length},A.offset={setOffset:function(e,t,n){var r,o,i,a,s=A.css(e,"position"),u=A(e),l={};"static"===s&&(e.style.position="relative"),i=u.offset(),r=A.css(e,"top"),a=A.css(e,"left"),s=("absolute"===s||"fixed"===s)&&-1<(r+a).indexOf("auto")?(o=(s=u.position()).top,s.left):(o=parseFloat(r)||0,parseFloat(a)||0),null!=(t=v(t)?t.call(e,n,A.extend({},i)):t).top&&(l.top=t.top-i.top+o),null!=t.left&&(l.left=t.left-i.left+s),"using"in t?t.using.call(e,l):("number"==typeof l.top&&(l.top+="px"),"number"==typeof l.left&&(l.left+="px"),u.css(l))}},A.fn.extend({offset:function(t){var e,n;return arguments.length?void 0===t?this:this.each(function(e){A.offset.setOffset(this,t,e)}):(n=this[0])?n.getClientRects().length?(e=n.getBoundingClientRect(),n=n.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],o={top:0,left:0};if("fixed"===A.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===A.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((o=A(e).offset()).top+=A.css(e,"borderTopWidth",!0),o.left+=A.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-A.css(r,"marginTop",!0),left:t.left-o.left-A.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===A.css(e,"position");)e=e.offsetParent;return e||T})}}),A.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,o){var i="pageYOffset"===o;A.fn[t]=function(e){return f(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[o]:e[t];r?r.scrollTo(i?r.pageXOffset:n,i?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),A.each(["top","left"],function(e,n){A.cssHooks[n]=tt(g.pixelPosition,function(e,t){if(t)return t=et(e,n),Je.test(t)?A(e).position()[n]+"px":t})}),A.each({Height:"height",Width:"width"},function(a,s){A.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,i){A.fn[i]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),o=r||(!0===e||!0===t?"margin":"border");return f(this,function(e,t,n){var r;return y(e)?0===i.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?A.css(e,t,o):A.style(e,t,n,o)},s,n?e:void 0,n)}})}),A.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){A.fn[t]=function(e){return this.on(t,e)}}),A.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),A.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){A.fn[n]=function(e,t){return 0 0, or `null`');if(U(a,"numericSeparator")&&"boolean"!=typeof a.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var t=a.numericSeparator;if(void 0===n)return"undefined";if(null===n)return"null";if("boolean"==typeof n)return n?"true":"false";if("string"==typeof n)return function e(t,n){if(t.length>n.maxStringLength)return r=t.length-n.maxStringLength,r="... "+r+" more character"+(1"}if(B(n))return 0===n.length?"[]":(u=Q(n,y),d&&!function(e){for(var t=0;t "+y(e,n))}),ne("Map",b.call(n),l,d)):function(e){if(w&&e&&"object"==typeof e)try{w.call(e);try{b.call(e)}catch(e){return 1}return e instanceof Set}catch(e){}return}(n)?(c=[],S&&S.call(n,function(e){c.push(y(e,n))}),ne("Set",w.call(n),c,d)):function(e){if(A&&e&&"object"==typeof e)try{A.call(e,A);try{j.call(e,j)}catch(e){return 1}return e instanceof WeakMap}catch(e){}return}(n)?V("WeakMap"):function(e){if(j&&e&&"object"==typeof e)try{j.call(e,j);try{A.call(e,A)}catch(e){return 1}return e instanceof WeakSet}catch(e){}return}(n)?V("WeakSet"):function(e){if(T&&e&&"object"==typeof e)try{return T.call(e),1}catch(e){}return}(n)?V("WeakRef"):"[object Number]"!==z(f=n)||L&&"object"==typeof f&&L in f?function(e){if(e&&"object"==typeof e&&D)try{return D.call(e),1}catch(e){}return}(n)?G(y(D.call(n))):"[object Boolean]"!==z(t=n)||L&&"object"==typeof t&&L in t?"[object String]"!==z(e=n)||L&&"object"==typeof e&&L in e?("[object Date]"!==z(t=n)||L&&"object"==typeof t&&L in t)&&!W(n)?(e=Q(n,y),t=I?I(n)===Object.prototype:n instanceof Object||n.constructor===Object,p=n instanceof Object?"":"null prototype",h=!t&&L&&Object(n)===n&&L in n?C.call(z(n),8,-1):p?"Object":"",t=(!t&&"function"==typeof n.constructor&&n.constructor.name?n.constructor.name+" ":"")+(h||p?"["+N.call(O.call([],h||[],p||[]),": ")+"] ":""),0===e.length?t+"{}":d?t+"{"+X(e,d)+"}":t+"{ "+N.call(e,", ")+" }"):String(n):G(y(String(n))):G(J.call(n)):G(y(Number(n)))};var u=Object.prototype.hasOwnProperty||function(e){return e in this};function U(e,t){return u.call(e,t)}function z(e){return a.call(e)}function ee(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n>6]+c[128|63&u]:u<55296||57344<=u?a+=c[224|u>>12]+c[128|u>>6&63]+c[128|63&u]:(s+=1,u=65536+((1023&u)<<10|1023&i.charCodeAt(s)),a+=c[240|u>>18]+c[128|u>>12&63]+c[128|u>>6&63]+c[128|63&u])}return a},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(y(e)){for(var n=[],r=0;r",'"',"`"," ","\r","\n","\t"]),C=["'"].concat(o),E=["%","/","?",";","#"].concat(C),k=["/","?","#"],O=/^[+a-z0-9A-Z_-]{0,63}$/,N=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,D={javascript:!0,"javascript:":!0},P={javascript:!0,"javascript:":!0},q={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},L=e("qs");function i(e,t,n){var r;return e&&"object"==typeof e&&e instanceof w?e:((r=new w).parse(e,t,n),r)}w.prototype.parse=function(e,t,n){if("string"!=typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e.indexOf("?"),r=-1!==r&&rli{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}/*! + * Preboot v2 + * git+https://github.com/mdo/preboot.git#4aab4edd85f076d50609cbe28e4fe66cc0771701 + * + * Open sourced under MIT license by @mdo. + * Some variables and mixins from Bootstrap (Apache 2 license). + */.book-langs-index{width:100%;height:100%;padding:40px 0;margin:0;overflow:auto}@media (max-width:600px){.book-langs-index{padding:0}}.book-langs-index .inner{max-width:600px;width:100%;margin:0 auto;padding:30px;background:#fff;border-radius:3px}.book-langs-index .inner h3{margin:0}.book-langs-index .inner .languages{list-style:none;padding:20px 30px;margin-top:20px;border-top:1px solid #eee}.book-langs-index .inner .languages:after,.book-langs-index .inner .languages:before{content:" ";display:table;line-height:0}.book-langs-index .inner .languages:after{clear:both}.book-langs-index .inner .languages li{width:50%;float:left;padding:10px 5px;font-size:16px}@media (max-width:600px){.book-langs-index .inner .languages li{width:100%;max-width:100%}}.book-header{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;overflow:visible;height:50px;padding:0 8px;z-index:2;font-size:.85em;color:#7e888b;background:0 0}.book-header .btn{display:block;height:50px;padding:0 15px;border-bottom:none;color:#ccc;text-transform:uppercase;line-height:50px;-webkit-box-shadow:none!important;box-shadow:none!important;position:relative;font-size:14px}.book-header .btn:hover{position:relative;text-decoration:none;color:#444;background:0 0}.book-header .btn:focus{outline:0}.book-header h1{margin:0;font-size:20px;font-weight:200;text-align:center;line-height:50px;opacity:0;-webkit-transition:opacity ease .4s;-moz-transition:opacity ease .4s;-o-transition:opacity ease .4s;transition:opacity ease .4s;padding-left:200px;padding-right:200px;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;-o-transition:opacity .2s ease;transition:opacity .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-header h1 a,.book-header h1 a:hover{color:inherit;text-decoration:none}@media screen and (max-width:1000px){.book-header h1{display:none}}.book-header h1 i{display:none}.book-header:hover h1{opacity:1}.book.is-loading .book-header h1 i{display:inline-block}.book.is-loading .book-header h1 a{display:none}@media print{.book-header{display:none}}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;z-index:100;display:none;float:left;min-width:160px;padding:0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fafafa;border:1px solid rgba(0,0,0,.07);border-radius:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.open{display:block}.dropdown-menu.dropdown-left{left:auto;right:4%}.dropdown-menu.dropdown-left .dropdown-caret{right:14px;left:auto}.dropdown-menu .dropdown-caret{position:absolute;top:-8px;left:14px;width:18px;height:10px;float:left;overflow:hidden}.dropdown-menu .dropdown-caret .caret-outer{position:absolute;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid rgba(0,0,0,.1);height:auto;left:0;top:0;width:auto;display:inline-block;margin-left:-1px}.dropdown-menu .dropdown-caret .caret-inner{position:absolute;display:inline-block;margin-top:-1px;top:0;top:1px;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid #fafafa}.dropdown-menu .buttons{border-bottom:1px solid rgba(0,0,0,.07)}.dropdown-menu .buttons:after,.dropdown-menu .buttons:before{content:" ";display:table;line-height:0}.dropdown-menu .buttons:after{clear:both}.dropdown-menu .buttons:last-child{border-bottom:none}.dropdown-menu .buttons .button{border:0;background-color:transparent;color:#a6a6a6;width:100%;text-align:center;float:left;line-height:1.42857143;padding:8px 4px}.dropdown-menu .buttons .button:hover{color:#444}.dropdown-menu .buttons .button:focus,.dropdown-menu .buttons .button:hover{outline:0}.dropdown-menu .buttons .button.size-2{width:50%}.dropdown-menu .buttons .button.size-3{width:33%}.book-summary{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;position:absolute;top:0;left:-300px;bottom:0;z-index:1;overflow-y:auto;width:300px;color:#364149;background:#fafafa;border-right:1px solid rgba(0,0,0,.07);-webkit-transition:left 250ms ease;-moz-transition:left 250ms ease;-o-transition:left 250ms ease;transition:left 250ms ease}.book-summary ul.summary{list-style:none;margin:0;padding:0;-webkit-transition:top .5s ease;-moz-transition:top .5s ease;-o-transition:top .5s ease;transition:top .5s ease}.book-summary ul.summary li{list-style:none}.book-summary ul.summary li.header{padding:10px 15px;padding-top:20px;text-transform:uppercase;color:#939da3}.book-summary ul.summary li.divider{height:1px;margin:7px 0;overflow:hidden;background:rgba(0,0,0,.07)}.book-summary ul.summary li i.fa-check{display:none;position:absolute;right:9px;top:16px;font-size:9px;color:#3c3}.book-summary ul.summary li.done>a{color:#364149;font-weight:400}.book-summary ul.summary li.done>a i{display:inline}.book-summary ul.summary li a,.book-summary ul.summary li span{display:block;padding:10px 15px;border-bottom:none;color:#364149;background:0 0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative}.book-summary ul.summary li a:hover{text-decoration:underline}.book-summary ul.summary li a:focus{outline:0}.book-summary ul.summary li.active>a{color:#008cff;background:0 0;text-decoration:none}.book-summary ul.summary li ul{padding-left:20px}@media screen and (max-width:600px){.book-summary{width:calc(100% - 60px);bottom:0;left:-100%}}.book.with-summary .book-summary{left:0}.book.without-animation .book-summary{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}@media print{.book-summary{display:none}.book-body{left:0}}.book{position:relative;width:100%;height:100%}@media screen and (min-width:600px){.book.with-summary .book-body{left:300px}}@media screen and (max-width:600px){.book.with-summary{overflow:hidden}.book.with-summary .book-body{-webkit-transform:translate(calc(100% - 60px),0);-moz-transform:translate(calc(100% - 60px),0);-ms-transform:translate(calc(100% - 60px),0);-o-transform:translate(calc(100% - 60px),0);transform:translate(calc(100% - 60px),0)}}.book.without-animation .book-body{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.book-body{position:absolute;top:0;right:0;left:0;bottom:0;overflow-y:auto;color:#000;background:#fff;-webkit-transition:left 250ms ease;-moz-transition:left 250ms ease;-o-transition:left 250ms ease;transition:left 250ms ease}.book-body .body-inner{position:absolute;top:0;right:0;left:0;bottom:0;overflow-y:auto}@media screen and (max-width:1240px){.book-body{-webkit-transition:-webkit-transform 250ms ease;-moz-transition:-moz-transform 250ms ease;-o-transition:-o-transform 250ms ease;transition:transform 250ms ease;padding-bottom:20px}.book-body .body-inner{position:static;min-height:calc(100% - 50px)}}.honkit-cloak{display:none}@media print{.book{position:static}.book-body{position:static}.book-body .body-inner{position:static}}.page-wrapper{position:relative;outline:0}.page-inner{position:relative;max-width:800px;margin:0 auto;padding:20px 15px 40px 15px}.page-inner .btn-group .btn{border-radius:0;background:#eee;border:0}.buttons:after,.buttons:before{content:" ";display:table;line-height:0}.buttons:after{clear:both}.button{border:0;background-color:transparent;background:#eee;color:#666;width:100%;text-align:center;float:left;line-height:1.42857143;padding:8px 4px}.button:hover{color:#444}.button:focus,.button:hover{outline:0}.button.size-2{width:50%}.button.size-3{width:33%}.markdown-section{display:block;word-wrap:break-word;overflow:hidden;color:#333;line-height:1.7;text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%}.markdown-section *{box-sizing:border-box;-webkit-box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section>:last-child{margin-bottom:0!important}.markdown-section blockquote,.markdown-section code,.markdown-section figure,.markdown-section img,.markdown-section pre,.markdown-section table,.markdown-section tr{page-break-inside:avoid}.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5,.markdown-section p{orphans:3;widows:3}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5{page-break-after:avoid}.markdown-section b,.markdown-section strong{font-weight:700}.markdown-section em{font-style:italic}.markdown-section blockquote,.markdown-section dl,.markdown-section ol,.markdown-section p,.markdown-section table,.markdown-section ul{margin-top:0;margin-bottom:.85em}.markdown-section a{color:#4183c4;text-decoration:none;background:0 0}.markdown-section a:active,.markdown-section a:focus,.markdown-section a:hover{outline:0;text-decoration:underline}.markdown-section img{border:0;max-width:100%}.markdown-section hr{height:4px;padding:0;margin:1.7em 0;overflow:hidden;background-color:#e7e7e7;border:none}.markdown-section hr:after,.markdown-section hr:before{display:table;content:" "}.markdown-section hr:after{clear:both}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5,.markdown-section h6{margin-top:1.275em;margin-bottom:.85em;font-weight:700}.markdown-section h1{font-size:2em}.markdown-section h2{font-size:1.75em}.markdown-section h3{font-size:1.5em}.markdown-section h4{font-size:1.25em}.markdown-section h5{font-size:1em}.markdown-section h6{font-size:1em;color:#777}.markdown-section code,.markdown-section pre{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;direction:ltr;margin:0;padding:0;border:none;color:inherit}.markdown-section pre{overflow:auto;word-wrap:normal;margin:0;padding:.85em 1em;margin-bottom:1.275em;background:#f7f7f7}.markdown-section pre>code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;font-size:.85em;white-space:pre;background:0 0}.markdown-section pre>code:after,.markdown-section pre>code:before{content:normal}.markdown-section code{padding:.2em;margin:0;font-size:.85em;background-color:#f7f7f7}.markdown-section code:after,.markdown-section code:before{letter-spacing:-.2em;content:"\00a0"}.markdown-section table{display:table;width:100%;border-collapse:collapse;border-spacing:0;overflow:auto}.markdown-section table td,.markdown-section table th{padding:6px 13px;border:1px solid #ddd}.markdown-section table tr{background-color:#fff;border-top:1px solid #ccc}.markdown-section table tr:nth-child(2n){background-color:#f8f8f8}.markdown-section table th{font-weight:700}.markdown-section ol,.markdown-section ul{padding:0;margin:0;margin-bottom:.85em;padding-left:2em}.markdown-section ol ol,.markdown-section ol ul,.markdown-section ul ol,.markdown-section ul ul{margin-top:0;margin-bottom:0}.markdown-section ol ol{list-style-type:lower-roman}.markdown-section blockquote{margin:0;margin-bottom:.85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5}.markdown-section blockquote:first-child{margin-top:0}.markdown-section blockquote:last-child{margin-bottom:0}.markdown-section dl{padding:0}.markdown-section dl dt{padding:0;margin-top:.85em;font-style:italic;font-weight:700}.markdown-section dl dd{padding:0 .85em;margin-bottom:.85em}.markdown-section dd{margin-left:0}.markdown-section .glossary-term{cursor:help;text-decoration:underline}.navigation{position:absolute;top:50px;bottom:0;margin:0;max-width:150px;min-width:90px;display:flex;justify-content:center;align-content:center;flex-direction:column;font-size:40px;color:#ccc;text-align:center;-webkit-transition:all 350ms ease;-moz-transition:all 350ms ease;-o-transition:all 350ms ease;transition:all 350ms ease}.navigation:hover{text-decoration:none;color:#444}.navigation.navigation-next{right:0}.navigation.navigation-prev{left:0}@media screen and (max-width:1240px){.navigation{position:static;top:auto;max-width:50%;width:50%;display:inline-block;float:left}.navigation.navigation-unique{max-width:100%;width:100%}}@media print{.navigation{display:none}}#book-search-input{padding:6px;background:0 0;transition:top .5s ease;background:#fff;border-bottom:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);margin-bottom:10px;margin-top:-1px}#book-search-input input,#book-search-input input:focus,#book-search-input input:hover{width:100%;background:0 0;border:1px solid transparent;box-shadow:none;outline:0;line-height:22px;padding:7px 7px;color:inherit}#book-search-results{opacity:1}#book-search-results .search-results .search-results-title{text-transform:uppercase;text-align:center;font-weight:200;margin-bottom:35px;opacity:.6}#book-search-results .search-results .has-results .search-results-item{display:block;word-wrap:break-word;overflow:hidden;color:#333;line-height:1.7;text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%}#book-search-results .search-results .has-results .search-results-item *{box-sizing:border-box;-webkit-box-sizing:border-box;font-size:inherit}#book-search-results .search-results .has-results .search-results-item>:first-child{margin-top:0!important}#book-search-results .search-results .has-results .search-results-item>:last-child{margin-bottom:0!important}#book-search-results .search-results .has-results .search-results-item blockquote,#book-search-results .search-results .has-results .search-results-item code,#book-search-results .search-results .has-results .search-results-item figure,#book-search-results .search-results .has-results .search-results-item img,#book-search-results .search-results .has-results .search-results-item pre,#book-search-results .search-results .has-results .search-results-item table,#book-search-results .search-results .has-results .search-results-item tr{page-break-inside:avoid}#book-search-results .search-results .has-results .search-results-item h2,#book-search-results .search-results .has-results .search-results-item h3,#book-search-results .search-results .has-results .search-results-item h4,#book-search-results .search-results .has-results .search-results-item h5,#book-search-results .search-results .has-results .search-results-item p{orphans:3;widows:3}#book-search-results .search-results .has-results .search-results-item h1,#book-search-results .search-results .has-results .search-results-item h2,#book-search-results .search-results .has-results .search-results-item h3,#book-search-results .search-results .has-results .search-results-item h4,#book-search-results .search-results .has-results .search-results-item h5{page-break-after:avoid}#book-search-results .search-results .has-results .search-results-item b,#book-search-results .search-results .has-results .search-results-item strong{font-weight:700}#book-search-results .search-results .has-results .search-results-item em{font-style:italic}#book-search-results .search-results .has-results .search-results-item blockquote,#book-search-results .search-results .has-results .search-results-item dl,#book-search-results .search-results .has-results .search-results-item ol,#book-search-results .search-results .has-results .search-results-item p,#book-search-results .search-results .has-results .search-results-item table,#book-search-results .search-results .has-results .search-results-item ul{margin-top:0;margin-bottom:.85em}#book-search-results .search-results .has-results .search-results-item a{color:#4183c4;text-decoration:none;background:0 0}#book-search-results .search-results .has-results .search-results-item a:active,#book-search-results .search-results .has-results .search-results-item a:focus,#book-search-results .search-results .has-results .search-results-item a:hover{outline:0;text-decoration:underline}#book-search-results .search-results .has-results .search-results-item img{border:0;max-width:100%}#book-search-results .search-results .has-results .search-results-item hr{height:4px;padding:0;margin:1.7em 0;overflow:hidden;background-color:#e7e7e7;border:none}#book-search-results .search-results .has-results .search-results-item hr:after,#book-search-results .search-results .has-results .search-results-item hr:before{display:table;content:" "}#book-search-results .search-results .has-results .search-results-item hr:after{clear:both}#book-search-results .search-results .has-results .search-results-item h1,#book-search-results .search-results .has-results .search-results-item h2,#book-search-results .search-results .has-results .search-results-item h3,#book-search-results .search-results .has-results .search-results-item h4,#book-search-results .search-results .has-results .search-results-item h5,#book-search-results .search-results .has-results .search-results-item h6{margin-top:1.275em;margin-bottom:.85em;font-weight:700}#book-search-results .search-results .has-results .search-results-item h1{font-size:2em}#book-search-results .search-results .has-results .search-results-item h2{font-size:1.75em}#book-search-results .search-results .has-results .search-results-item h3{font-size:1.5em}#book-search-results .search-results .has-results .search-results-item h4{font-size:1.25em}#book-search-results .search-results .has-results .search-results-item h5{font-size:1em}#book-search-results .search-results .has-results .search-results-item h6{font-size:1em;color:#777}#book-search-results .search-results .has-results .search-results-item code,#book-search-results .search-results .has-results .search-results-item pre{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;direction:ltr;margin:0;padding:0;border:none;color:inherit}#book-search-results .search-results .has-results .search-results-item pre{overflow:auto;word-wrap:normal;margin:0;padding:.85em 1em;margin-bottom:1.275em;background:#f7f7f7}#book-search-results .search-results .has-results .search-results-item pre>code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;font-size:.85em;white-space:pre;background:0 0}#book-search-results .search-results .has-results .search-results-item pre>code:after,#book-search-results .search-results .has-results .search-results-item pre>code:before{content:normal}#book-search-results .search-results .has-results .search-results-item code{padding:.2em;margin:0;font-size:.85em;background-color:#f7f7f7}#book-search-results .search-results .has-results .search-results-item code:after,#book-search-results .search-results .has-results .search-results-item code:before{letter-spacing:-.2em;content:"\00a0"}#book-search-results .search-results .has-results .search-results-item table{display:table;width:100%;border-collapse:collapse;border-spacing:0;overflow:auto}#book-search-results .search-results .has-results .search-results-item table td,#book-search-results .search-results .has-results .search-results-item table th{padding:6px 13px;border:1px solid #ddd}#book-search-results .search-results .has-results .search-results-item table tr{background-color:#fff;border-top:1px solid #ccc}#book-search-results .search-results .has-results .search-results-item table tr:nth-child(2n){background-color:#f8f8f8}#book-search-results .search-results .has-results .search-results-item table th{font-weight:700}#book-search-results .search-results .has-results .search-results-item ol,#book-search-results .search-results .has-results .search-results-item ul{padding:0;margin:0;margin-bottom:.85em;padding-left:2em}#book-search-results .search-results .has-results .search-results-item ol ol,#book-search-results .search-results .has-results .search-results-item ol ul,#book-search-results .search-results .has-results .search-results-item ul ol,#book-search-results .search-results .has-results .search-results-item ul ul{margin-top:0;margin-bottom:0}#book-search-results .search-results .has-results .search-results-item ol ol{list-style-type:lower-roman}#book-search-results .search-results .has-results .search-results-item blockquote{margin:0;margin-bottom:.85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5}#book-search-results .search-results .has-results .search-results-item blockquote:first-child{margin-top:0}#book-search-results .search-results .has-results .search-results-item blockquote:last-child{margin-bottom:0}#book-search-results .search-results .has-results .search-results-item dl{padding:0}#book-search-results .search-results .has-results .search-results-item dl dt{padding:0;margin-top:.85em;font-style:italic;font-weight:700}#book-search-results .search-results .has-results .search-results-item dl dd{padding:0 .85em;margin-bottom:.85em}#book-search-results .search-results .has-results .search-results-item dd{margin-left:0}#book-search-results .search-results .has-results .search-results-item h3{margin-top:0;margin-bottom:0}#book-search-results .search-results .no-results{padding:40px 0}body.search-loading #book-search-results{opacity:.3}body.with-search .navigation{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:none;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased}a{text-decoration:none}body,html{height:100%}html{font-size:62.5%}body{text-rendering:optimizeLegibility;font-smoothing:antialiased;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;letter-spacing:.2px;text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} \ No newline at end of file diff --git a/ja-beta/gitbook/theme.js b/ja-beta/gitbook/theme.js new file mode 100644 index 0000000..1768ac6 --- /dev/null +++ b/ja-beta/gitbook/theme.js @@ -0,0 +1 @@ +!function r(o,i,a){function s(t,e){if(!i[t]){if(!o[t]){var n="function"==typeof require&&require;if(!e&&n)return n(t,!0);if(l)return l(t,!0);throw(e=new Error("Cannot find module '"+t+"'")).code="MODULE_NOT_FOUND",e}n=i[t]={exports:{}},o[t][0].call(n.exports,function(e){return s(o[t][1][e]||e)},n,n.exports,r,o,i,a)}return i[t].exports}for(var l="function"==typeof require&&require,e=0;e= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=m-1,b=Math.floor,x=String.fromCharCode;function w(e){throw new RangeError(f[e])}function d(e,t){for(var n=e.length,r=[];n--;)r[n]=t(e[n]);return r}function h(e,t){var n=e.split("@"),r="",n=(1>>10&1023|55296),e=56320|1023&e),t+=x(e)}).join("")}function j(e,t){return e+22+75*(e<26)-((0!=t)<<5)}function A(e,t,n){var r=0;for(e=n?b(e/s):e>>1,e+=b(e/t);p*v>>1b((g-c)/i))&&w("overflow"),c+=s*i,!(s<(s=a<=p?1:p+v<=a?v:a-p));a+=m)i>b(g/(s=m-s))&&w("overflow"),i*=s;p=A(c-o,t=l.length+1,0==o),b(c/t)>g-f&&w("overflow"),f+=b(c/t),c%=t,l.splice(c++,0,f)}return y(l)}function C(e){for(var t,n,r,o,i,a,s,l,u,c,f=[],p=(e=S(e)).length,d=128,h=72,y=t=0;yb((g-t)/(l=n+1))&&w("overflow"),t+=(o-d)*l,d=o,y=0;yg&&w("overflow"),s==d){for(i=t,a=m;!(i<(u=a<=h?1:h+v<=a?v:a-h));a+=m)f.push(x(j(u+(c=i-u)%(u=m-u),0))),i=b(c/u);f.push(x(j(i,0))),h=A(t,l,n==r),t=0,++n}++t,++d}return f.join("")}if(o={version:"1.4.1",ucs2:{decode:S,encode:y},decode:k,encode:C,toASCII:function(e){return h(e,function(e){return u.test(e)?"xn--"+C(e):e})},toUnicode:function(e){return h(e,function(e){return l.test(e)?k(e.slice(4).toLowerCase()):e})}},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return o});else if(t&&n)if(E.exports==t)n.exports=o;else for(i in o)o.hasOwnProperty(i)&&(t[i]=o[i]);else e.punycode=o}.call(this)}.call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],3:[function(e,t,n){"use strict";var r=e("get-intrinsic"),o=e("./"),i=o(r("String.prototype.indexOf"));t.exports=function(e,t){t=r(e,!!t);return"function"==typeof t&&-1=n.length?(l=!!(f=h(i,u)))&&"get"in f&&!("originalValue"in f.get)?f.get:i[u]:(l=b(i,u),i[u]),l&&!a&&(g[c]=i)}}return i}},{"function-bind":6,has:11,"has-proto":8,"has-symbols":9}],8:[function(e,t,n){"use strict";var r={foo:{}},o=Object;t.exports=function(){return{__proto__:r}.foo===r.foo&&!({__proto__:null}instanceof o)}},{}],9:[function(e,t,n){"use strict";var r="undefined"!=typeof Symbol&&Symbol,o=e("./shams");t.exports=function(){return"function"==typeof r&&("function"==typeof Symbol&&("symbol"==typeof r("foo")&&("symbol"==typeof Symbol("bar")&&o())))}},{"./shams":10}],10:[function(e,t,n){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"!=typeof Symbol.iterator){var e={},t=Symbol("test"),n=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(n))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){n=Object.getOwnPropertyDescriptor(e,t);if(42!==n.value||!0!==n.enumerable)return!1}}return!0}},{}],11:[function(e,t,n){"use strict";e=e("function-bind");t.exports=e.call(Function.call,Object.prototype.hasOwnProperty)},{"function-bind":6}],12:[function(e,n,t){!function(e,t){"use strict";"object"==typeof n&&"object"==typeof n.exports?n.exports=e.document?t(e,!0):function(e){if(e.document)return t(e);throw new Error("jQuery requires a window with a document")}:t(e)}("undefined"!=typeof window?window:this,function(w,I){"use strict";function v(e){return"function"==typeof e&&"number"!=typeof e.nodeType}function y(e){return null!=e&&e===e.window}var t=[],M=Object.getPrototypeOf,s=t.slice,F=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},H=t.push,_=t.indexOf,B={},W=B.toString,$=B.hasOwnProperty,U=$.toString,z=U.call(Object),g={},S=w.document,G={type:!0,src:!0,nonce:!0,noModule:!0};function V(e,t,n){var r,o,i=(n=n||S).createElement("script");if(i.text=e,t)for(r in G)(o=t[r]||t.getAttribute&&t.getAttribute(r))&&i.setAttribute(r,o);n.head.appendChild(i).parentNode.removeChild(i)}function h(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?B[W.call(e)]||"object":typeof e}var j=function(e,t){return new j.fn.init(e,t)};function X(e){var t=!!e&&"length"in e&&e.length,n=h(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0>10|55296,1023&e|56320))}function M(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e}function F(){S()}var e,p,x,i,H,d,_,B,w,l,u,S,j,n,A,h,r,o,y,k="sizzle"+ +new Date,c=I.document,C=0,W=0,$=P(),U=P(),z=P(),g=P(),G=function(e,t){return e===t&&(u=!0),0},V={}.hasOwnProperty,t=[],X=t.pop,K=t.push,T=t.push,Q=t.slice,v=function(e,t){for(var n=0,r=e.length;n+~]|"+a+")"+a+"*"),re=new RegExp(a+"|>"),oe=new RegExp(Z),ie=new RegExp("^"+s+"$"),b={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),TAG:new RegExp("^("+s+"|[*])"),ATTR:new RegExp("^"+Y),PSEUDO:new RegExp("^"+Z),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+a+"*(even|odd|(([+-]|)(\\d*)n|)"+a+"*(?:([+-]|)"+a+"*(\\d+)|))"+a+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+a+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+a+"*((?:-\\d)?\\d*)"+a+"*\\)|)(?=[^-]|$)","i")},ae=/HTML$/i,se=/^(?:input|select|textarea|button)$/i,le=/^h\d$/i,E=/^[^{]+\{\s*\[native \w/,ue=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ce=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+a+"?|\\\\([^\\r\\n\\f])","g"),fe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,pe=ve(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{T.apply(t=Q.call(c.childNodes),c.childNodes),t[c.childNodes.length].nodeType}catch(e){T={apply:t.length?function(e,t){K.apply(e,Q.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}function N(t,e,n,r){var o,i,a,s,l,u,c=e&&e.ownerDocument,f=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==f&&9!==f&&11!==f)return n;if(!r&&(S(e),e=e||j,A)){if(11!==f&&(s=ue.exec(t)))if(o=s[1]){if(9===f){if(!(u=e.getElementById(o)))return n;if(u.id===o)return n.push(u),n}else if(c&&(u=c.getElementById(o))&&y(e,u)&&u.id===o)return n.push(u),n}else{if(s[2])return T.apply(n,e.getElementsByTagName(t)),n;if((o=s[3])&&p.getElementsByClassName&&e.getElementsByClassName)return T.apply(n,e.getElementsByClassName(o)),n}if(p.qsa&&!g[t+" "]&&(!h||!h.test(t))&&(1!==f||"object"!==e.nodeName.toLowerCase())){if(u=t,c=e,1===f&&(re.test(t)||ne.test(t))){for((c=ce.test(t)&&ge(e.parentNode)||e)===e&&p.scope||((a=e.getAttribute("id"))?a=a.replace(fe,M):e.setAttribute("id",a=k)),i=(l=d(t)).length;i--;)l[i]=(a?"#"+a:":scope")+" "+R(l[i]);u=l.join(",")}try{return T.apply(n,c.querySelectorAll(u)),n}catch(e){g(t,!0)}finally{a===k&&e.removeAttribute("id")}}}return B(t.replace(m,"$1"),e,n,r)}function P(){var n=[];function r(e,t){return n.push(e+" ")>x.cacheLength&&delete r[n.shift()],r[e+" "]=t}return r}function D(e){return e[k]=!0,e}function q(e){var t=j.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t)}}function de(e,t){for(var n=e.split("|"),r=n.length;r--;)x.attrHandle[n[r]]=t}function he(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ye(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&pe(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function L(a){return D(function(i){return i=+i,D(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}for(e in p=N.support={},H=N.isXML=function(e){var t=e.namespaceURI,e=(e.ownerDocument||e).documentElement;return!ae.test(t||e&&e.nodeName||"HTML")},S=N.setDocument=function(e){var e=e?e.ownerDocument||e:c;return e!=j&&9===e.nodeType&&e.documentElement&&(n=(j=e).documentElement,A=!H(j),c!=j&&(e=j.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",F,!1):e.attachEvent&&e.attachEvent("onunload",F)),p.scope=q(function(e){return n.appendChild(e).appendChild(j.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),p.attributes=q(function(e){return e.className="i",!e.getAttribute("className")}),p.getElementsByTagName=q(function(e){return e.appendChild(j.createComment("")),!e.getElementsByTagName("*").length}),p.getElementsByClassName=E.test(j.getElementsByClassName),p.getById=q(function(e){return n.appendChild(e).id=k,!j.getElementsByName||!j.getElementsByName(k).length}),p.getById?(x.filter.ID=function(e){var t=e.replace(O,f);return function(e){return e.getAttribute("id")===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&A)return(t=t.getElementById(e))?[t]:[]}):(x.filter.ID=function(e){var t=e.replace(O,f);return function(e){e=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return e&&e.value===t}},x.find.ID=function(e,t){if(void 0!==t.getElementById&&A){var n,r,o,i=t.getElementById(e);if(i){if((n=i.getAttributeNode("id"))&&n.value===e)return[i];for(o=t.getElementsByName(e),r=0;i=o[r++];)if((n=i.getAttributeNode("id"))&&n.value===e)return[i]}return[]}}),x.find.TAG=p.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):p.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"!==e)return i;for(;n=i[o++];)1===n.nodeType&&r.push(n);return r},x.find.CLASS=p.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&A)return t.getElementsByClassName(e)},r=[],h=[],(p.qsa=E.test(j.querySelectorAll))&&(q(function(e){var t;n.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&h.push("[*^$]="+a+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||h.push("\\["+a+"*(?:value|"+J+")"),e.querySelectorAll("[id~="+k+"-]").length||h.push("~="),(t=j.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||h.push("\\["+a+"*name"+a+"*="+a+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||h.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||h.push(".#.+[+~]"),e.querySelectorAll("\\\f"),h.push("[\\r\\n\\f]")}),q(function(e){e.innerHTML="";var t=j.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&h.push("name"+a+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&h.push(":enabled",":disabled"),n.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(p.matchesSelector=E.test(o=n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.oMatchesSelector||n.msMatchesSelector))&&q(function(e){p.disconnectedMatch=o.call(e,"*"),o.call(e,"[s!='']:x"),r.push("!=",Z)}),h=h.length&&new RegExp(h.join("|")),r=r.length&&new RegExp(r.join("|")),e=E.test(n.compareDocumentPosition),y=e||E.test(n.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,t=t&&t.parentNode;return e===t||!(!t||1!==t.nodeType||!(n.contains?n.contains(t):e.compareDocumentPosition&&16&e.compareDocumentPosition(t)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},G=e?function(e,t){var n;return e===t?(u=!0,0):(n=!e.compareDocumentPosition-!t.compareDocumentPosition)||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!p.sortDetached&&t.compareDocumentPosition(e)===n?e==j||e.ownerDocument==c&&y(c,e)?-1:t==j||t.ownerDocument==c&&y(c,t)?1:l?v(l,e)-v(l,t):0:4&n?-1:1)}:function(e,t){if(e===t)return u=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],s=[t];if(!o||!i)return e==j?-1:t==j?1:o?-1:i?1:l?v(l,e)-v(l,t):0;if(o===i)return he(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)s.unshift(n);for(;a[r]===s[r];)r++;return r?he(a[r],s[r]):a[r]==c?-1:s[r]==c?1:0}),j},N.matches=function(e,t){return N(e,null,null,t)},N.matchesSelector=function(e,t){if(S(e),p.matchesSelector&&A&&!g[t+" "]&&(!r||!r.test(t))&&(!h||!h.test(t)))try{var n=o.call(e,t);if(n||p.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){g(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,f),e[3]=(e[3]||e[4]||e[5]||"").replace(O,f),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||N.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&N.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return b.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&oe.test(n)&&(t=d(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,f).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+a+")"+e+"("+a+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(e){e=N.attr(e,t);return null==e?"!="===n:!n||(e+="","="===n?e===r:"!="===n?e!==r:"^="===n?r&&0===e.indexOf(r):"*="===n?r&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function Y(e,n,r){return v(n)?j.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?j.grep(e,function(e){return e===n!==r}):"string"!=typeof n?j.grep(e,function(e){return-1<_.call(n,e)!==r}):j.filter(n,e,r)}j.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?j.find.matchesSelector(r,e)?[r]:[]:j.find.matches(e,j.grep(t,function(e){return 1===e.nodeType}))},j.fn.extend({find:function(e){var t,n,r=this.length,o=this;if("string"!=typeof e)return this.pushStack(j(e).filter(function(){for(t=0;t)[^>]*|#([\w-]+))$/,te=((j.fn.init=function(e,t,n){if(e){if(n=n||Z,"string"!=typeof e)return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(j):j.makeArray(e,this);if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:ee.exec(e))||!r[1]&&t)return(!t||t.jquery?t||n:this.constructor(t)).find(e);if(r[1]){if(t=t instanceof j?t[0]:t,j.merge(this,j.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:S,!0)),J.test(r[1])&&j.isPlainObject(t))for(var r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r])}else(n=S.getElementById(r[2]))&&(this[0]=n,this.length=1)}return this}).prototype=j.fn,Z=j(S),/^(?:parents|prev(?:Until|All))/),ne={children:!0,contents:!0,next:!0,prev:!0};function re(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}j.fn.extend({has:function(e){var t=j(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,je=/^$|^module$|\/(?:java|ecma)script/i,E=(D=S.createDocumentFragment().appendChild(S.createElement("div")),(a=S.createElement("input")).setAttribute("type","radio"),a.setAttribute("checked","checked"),a.setAttribute("name","t"),D.appendChild(a),g.checkClone=D.cloneNode(!0).cloneNode(!0).lastChild.checked,D.innerHTML="",g.noCloneChecked=!!D.cloneNode(!0).lastChild.defaultValue,D.innerHTML="",g.option=!!D.lastChild,{thead:[1,"","
                                                              "],col:[2,"","
                                                              "],tr:[2,"","
                                                              "],td:[3,"","
                                                              "],_default:[0,"",""]});function O(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&l(e,t)?j.merge([e],n):n}function Ae(e,t){for(var n=0,r=e.length;n",""]);var ke=/<|&#?\w+;/;function Ce(e,t,n,r,o){for(var i,a,s,l,u,c=t.createDocumentFragment(),f=[],p=0,d=e.length;p\s*$/g;function Ie(e,t){return l(e,"table")&&l(11!==t.nodeType?t:t.firstChild,"tr")&&j(e).children("tbody")[0]||e}function Me(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Fe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,r,o,i;if(1===t.nodeType){if(x.hasData(e)&&(i=x.get(e).events))for(o in x.remove(t,"handle events"),i)for(n=0,r=i[o].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",o=function(e){r.remove(),o=null,e&&t("error"===e.type?404:200,e.type)}),S.head.appendChild(r[0])},abort:function(){o&&o()}}}),[]),Jt=/(=)\?(?=&|$)|\?\?/,Yt=(j.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Qt.pop()||j.expando+"_"+Ot.guid++;return this[e]=!0,e}}),j.ajaxPrefilter("json jsonp",function(e,t,n){var r,o,i,a=!1!==e.jsonp&&(Jt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Jt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Jt,"$1"+r):!1!==e.jsonp&&(e.url+=(Nt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return i||j.error(r+" was not called"),i[0]},e.dataTypes[0]="json",o=w[r],w[r]=function(){i=arguments},n.always(function(){void 0===o?j(w).removeProp(r):w[r]=o,e[r]&&(e.jsonpCallback=t.jsonpCallback,Qt.push(r)),i&&v(o)&&o(i[0]),i=o=void 0}),"script"}),g.createHTMLDocument=((e=S.implementation.createHTMLDocument("").body).innerHTML="
                                                              ",2===e.childNodes.length),j.parseHTML=function(e,t,n){var r;return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(g.createHTMLDocument?((r=(t=S.implementation.createHTMLDocument("")).createElement("base")).href=S.location.href,t.head.appendChild(r)):t=S),r=!n&&[],(n=J.exec(e))?[t.createElement(n[1])]:(n=Ce([e],t,r),r&&r.length&&j(r).remove(),j.merge([],n.childNodes)))},j.fn.load=function(e,t,n){var r,o,i,a=this,s=e.indexOf(" ");return-1").append(j.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,i||[e.responseText,t,e])})}),this},j.expr.pseudos.animated=function(t){return j.grep(j.timers,function(e){return t===e.elem}).length},j.offset={setOffset:function(e,t,n){var r,o,i,a,s=j.css(e,"position"),l=j(e),u={};"static"===s&&(e.style.position="relative"),i=l.offset(),r=j.css(e,"top"),a=j.css(e,"left"),s=("absolute"===s||"fixed"===s)&&-1<(r+a).indexOf("auto")?(o=(s=l.position()).top,s.left):(o=parseFloat(r)||0,parseFloat(a)||0),null!=(t=v(t)?t.call(e,n,j.extend({},i)):t).top&&(u.top=t.top-i.top+o),null!=t.left&&(u.left=t.left-i.left+s),"using"in t?t.using.call(e,u):("number"==typeof u.top&&(u.top+="px"),"number"==typeof u.left&&(u.left+="px"),l.css(u))}},j.fn.extend({offset:function(t){var e,n;return arguments.length?void 0===t?this:this.each(function(e){j.offset.setOffset(this,t,e)}):(n=this[0])?n.getClientRects().length?(e=n.getBoundingClientRect(),n=n.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],o={top:0,left:0};if("fixed"===j.css(r,"position"))t=r.getBoundingClientRect();else{for(t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===j.css(e,"position");)e=e.parentNode;e&&e!==r&&1===e.nodeType&&((o=j(e).offset()).top+=j.css(e,"borderTopWidth",!0),o.left+=j.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-j.css(r,"marginTop",!0),left:t.left-o.left-j.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===j.css(e,"position");)e=e.offsetParent;return e||k})}}),j.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,o){var i="pageYOffset"===o;j.fn[t]=function(e){return f(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[o]:e[t];r?r.scrollTo(i?r.pageXOffset:n,i?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),j.each(["top","left"],function(e,n){j.cssHooks[n]=tt(g.pixelPosition,function(e,t){if(t)return t=et(e,n),Qe.test(t)?j(e).position()[n]+"px":t})}),j.each({Height:"height",Width:"width"},function(a,s){j.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,i){j.fn[i]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),o=r||(!0===e||!0===t?"margin":"border");return f(this,function(e,t,n){var r;return y(e)?0===i.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?j.css(e,t,o):j.style(e,t,n,o)},s,n?e:void 0,n)}})}),j.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){j.fn[t]=function(e){return this.on(t,e)}}),j.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),j.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){j.fn[n]=function(e,t){return 0":".","?":"/","|":"\\"},u={option:"alt",command:"meta",return:"enter",escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},c=1;c<20;++c)a[111+c]="f"+c;for(c=0;c<=9;++c)a[c+96]=c;S.prototype.bind=function(e,t,n){return e=e instanceof Array?e:[e],this._bindMultiple.call(this,e,t,n),this},S.prototype.unbind=function(e,t){return this.bind.call(this,e,function(){},t)},S.prototype.trigger=function(e,t){return this._directMap[e+":"+t]&&this._directMap[e+":"+t]({},e),this},S.prototype.reset=function(){return this._callbacks={},this._directMap={},this},S.prototype.stopCallback=function(e,t){return!(-1<(" "+t.className+" ").indexOf(" mousetrap "))&&(!function e(t,n){return null!==t&&t!==o&&(t===n||e(t.parentNode,n))}(t,this.target)&&("INPUT"==t.tagName||"SELECT"==t.tagName||"TEXTAREA"==t.tagName||t.isContentEditable))},S.prototype.handleKey=function(){return this._handleKey.apply(this,arguments)},S.addKeycodes=function(e){for(var t in e)e.hasOwnProperty(t)&&(a[t]=e[t]);i=null},(S.init=function(){var e,t=S(o);for(e in t)"_"!==e.charAt(0)&&(S[e]=function(e){return function(){return t[e].apply(t,arguments)}}(e))})(),r.Mousetrap=S,void 0!==t&&t.exports&&(t.exports=S),"function"==typeof define&&define.amd&&define(function(){return S})}function v(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function b(e){var t;return"keypress"==e.type?(t=String.fromCharCode(e.which),e.shiftKey?t:t.toLowerCase()):a[e.which]||s[e.which]||String.fromCharCode(e.which).toLowerCase()}function x(e){return"shift"==e||"ctrl"==e||"alt"==e||"meta"==e}function f(e,t,n){return n="keypress"==(n=n||(function(){if(!i)for(var e in i={},a)95 0, or `null`');if(U(a,"numericSeparator")&&"boolean"!=typeof a.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var t=a.numericSeparator;if(void 0===n)return"undefined";if(null===n)return"null";if("boolean"==typeof n)return n?"true":"false";if("string"==typeof n)return function e(t,n){if(t.length>n.maxStringLength)return r=t.length-n.maxStringLength,r="... "+r+" more character"+(1"}if(B(n))return 0===n.length?"[]":(l=K(n,y),h&&!function(e){for(var t=0;t "+y(e,n))}),ne("Map",b.call(n),u,h)):function(e){if(w&&e&&"object"==typeof e)try{w.call(e);try{b.call(e)}catch(e){return 1}return e instanceof Set}catch(e){}return}(n)?(c=[],S&&S.call(n,function(e){c.push(y(e,n))}),ne("Set",w.call(n),c,h)):function(e){if(j&&e&&"object"==typeof e)try{j.call(e,j);try{A.call(e,A)}catch(e){return 1}return e instanceof WeakMap}catch(e){}return}(n)?V("WeakMap"):function(e){if(A&&e&&"object"==typeof e)try{A.call(e,A);try{j.call(e,j)}catch(e){return 1}return e instanceof WeakSet}catch(e){}return}(n)?V("WeakSet"):function(e){if(k&&e&&"object"==typeof e)try{return k.call(e),1}catch(e){}return}(n)?V("WeakRef"):"[object Number]"!==z(f=n)||L&&"object"==typeof f&&L in f?function(e){if(e&&"object"==typeof e&&P)try{return P.call(e),1}catch(e){}return}(n)?G(y(P.call(n))):"[object Boolean]"!==z(t=n)||L&&"object"==typeof t&&L in t?"[object String]"!==z(e=n)||L&&"object"==typeof e&&L in e?("[object Date]"!==z(t=n)||L&&"object"==typeof t&&L in t)&&!W(n)?(e=K(n,y),t=I?I(n)===Object.prototype:n instanceof Object||n.constructor===Object,p=n instanceof Object?"":"null prototype",d=!t&&L&&Object(n)===n&&L in n?C.call(z(n),8,-1):p?"Object":"",t=(!t&&"function"==typeof n.constructor&&n.constructor.name?n.constructor.name+" ":"")+(d||p?"["+N.call(O.call([],d||[],p||[]),": ")+"] ":""),0===e.length?t+"{}":h?t+"{"+X(e,h)+"}":t+"{ "+N.call(e,", ")+" }"):String(n):G(y(String(n))):G(Q.call(n)):G(y(Number(n)))};var l=Object.prototype.hasOwnProperty||function(e){return e in this};function U(e,t){return l.call(e,t)}function z(e){return a.call(e)}function ee(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,r=e.length;n>6]+c[128|63&l]:l<55296||57344<=l?a+=c[224|l>>12]+c[128|l>>6&63]+c[128|63&l]:(s+=1,l=65536+((1023&l)<<10|1023&i.charCodeAt(s)),a+=c[240|l>>18]+c[128|l>>12&63]+c[128|l>>6&63]+c[128|63&l])}return a},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(y(e)){for(var n=[],r=0;r",'"',"`"," ","\r","\n","\t"]),C=["'"].concat(o),T=["%","/","?",";","#"].concat(C),E=["/","?","#"],O=/^[+a-z0-9A-Z_-]{0,63}$/,N=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,P={javascript:!0,"javascript:":!0},D={javascript:!0,"javascript:":!0},q={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},L=e("qs");function i(e,t,n){var r;return e&&"object"==typeof e&&e instanceof w?e:((r=new w).parse(e,t,n),r)}w.prototype.parse=function(e,t,n){if("string"!=typeof e)throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var r=e.indexOf("?"),r=-1!==r&&r]*)>/i,function(e,t,n,r){return"<"+t+"div"+(t?"":' data-element="'+n+'"')+r+">"}).replace(/<(\/?)(head)([^>]*)>/i,function(e,t,n,r){return"<"+t+"div"+(t?"":' data-element="'+n+'"')+r+">"}).replace(/<(\/?)(body)([^>]*)>/i,function(e,t,n,r){return"<"+t+"div"+(t?"":' data-element="'+n+'"')+r+">"}),c(e)),i=o.find(".book");if(0===i.length)return r=new Error("Invalid gitbook page, redirecting..."),a.reject(r);s&&history.pushState({path:n},null,n),r=(o=c(e)).find("[data-element=head]"),i=o.find(".book"),document.title=r.find("title").text();n=c("head"),n.find("link[rel=prev]").remove(),n.find("link[rel=next]").remove(),n.append(r.find("link[rel=prev]")),n.append(r.find("link[rel=next]")),e=c(".book").attr("class"),o=c(".book-summary").scrollTop();i.toggleClass("with-summary",c(".book").hasClass("with-summary")),c(".book").replaceWith(i),c(".book").attr("class",e),c(".book-summary").scrollTop(o),f.state.$book=c(".book"),w(!u),u&&d(u),a.resolve()}})}).promise();return a.show(n.fail(function(e){console.log(e)}))}location.href=e}function x(){var e=parseInt(c(".body-inner").css("width"),10),t=parseInt(c(".page-wrapper").css("width"),10),e=(c(".navigation-next").css("margin-right",e-t+"px"),l());e.unbind("scroll"),e.scroll(m)}function w(e){var t=c(".book-body").find(".body-inner").find(".page-wrapper"),t=(x(),t&&t[0]&&t[0].focus({preventScroll:!0}),l());e&&t.scrollTop(0),1<(i=c(".book-summary .summary .chapter").filter(function(){var e=c(this).children("a"),t=null;return!!e.length&&(t=e.attr("href").split("#")[0],e=o.resolve(window.location.pathname,t),window.location.pathname==e)})).length?t.scroll(m):r=i.first()}function S(e){var t,n=c(this),r=n.attr("target");(t=e).metaKey||t.altKey||t.ctrlKey||t.shiftKey||0!==e.button||r||(e.stopPropagation(),e.preventDefault(),(t=n.attr("href"))&&b(t,!0))}t.exports={init:function(){c.ajaxSetup({cache:!1}),history.replaceState({path:window.location.href},""),window.onpopstate=function(e){if(null!==e.state)return b(e.state.path,!1)},c(document).on("click",".navigation-prev",S),c(document).on("click",".navigation-next",S),c(document).on("click",".summary [data-path] a",S),c(document).on("click",".page-inner a",S),c(window).resize(x),w(!1)},goNext:function(){var e=c(".navigation-next").attr("href");e&&b(e,!0)},goPrev:function(){var e=c(".navigation-prev").attr("href");e&&b(e,!0)}}},{"./loading":25,"./platform":27,jquery:12,url:21}],27:[function(e,t,n){var r=e("jquery");t.exports={isMobile:function(){return r(document).width()<=600},isSmallScreen:function(){return r(document).width()<=1240}}},{jquery:12}],28:[function(e,t,n){var r=e("jquery"),o=e("./platform"),i=window.gitbook;function a(e,t){null!=i.state&&s()==e||(i.state.$book.toggleClass("without-animation",!(t=null==t?!0:t)),i.state.$book.toggleClass("with-summary",e),i.storage.set("sidebar",s()))}function s(){return i.state.$book.hasClass("with-summary")}t.exports={init:function(){r(document).on("click",".book-summary li.chapter a",function(e){o.isMobile()&&a(!1,!1)})},isOpen:s,toggle:a,filter:function(t){r(".book-summary").find("li").each(function(){var e=r(this).data("path"),e=null==t||-1!==t.indexOf(e);r(this).toggle(e),e&&r(this).parents("li").show()})}}},{"./platform":27,jquery:12}],29:[function(e,t,n){var l=e("jquery"),e=window.gitbook,r=[],o=0;function u(e){e.preventDefault()}function i(e){var t,o,n,r=l(".book-header"),i=r.find("h1"),a="pull-"+e.position,s=l("",{class:"btn",text:e.text?" "+e.text:"","aria-label":e.label,href:"#"});s.click(e.onClick),e.icon&&l("",{class:e.icon}).prependTo(s),(t=e.dropdown?(n=l("
                                                              ",{class:"dropdown "+a+" "+e.className}),s.addClass("toggle-dropdown"),n.append(s),t=e.dropdown,o=l("
                                                              ",{class:"dropdown-menu",html:''}),"string"==typeof t?o.append(t):t.map(function(e){return l.isArray(e)?e:[e]}).forEach(function(e){var n=l("
                                                              ",{class:"buttons"}),r="size-"+e.length;e.forEach(function(e){e=l.extend({text:"",className:"",onClick:u},e||{});var t=l("