From 5467a1dcafdff86da6a1d90c3f311fc6cf4942d8 Mon Sep 17 00:00:00 2001 From: Dylan Bannon Date: Tue, 17 Oct 2023 17:40:49 -0400 Subject: [PATCH 01/52] Implement index load with no explicit params in Java (#31) * implement load methods without params * tests, docs * add StringIndex convenience methods, add tests, regen docs * clang-fmt * java fmt * Update java/com_spotify_voyager_jni_Index.cpp Co-authored-by: Peter Sobot * Update java/com_spotify_voyager_jni_Index.cpp Co-authored-by: Peter Sobot --------- Co-authored-by: Peter Sobot --- docs/java/allclasses-index.html | 234 +-- docs/java/allpackages-index.html | 178 +- .../voyager/jni/Index.QueryResults.html | 504 ++---- .../spotify/voyager/jni/Index.SpaceType.html | 465 ++--- .../voyager/jni/Index.StorageDataType.html | 465 ++--- docs/java/com/spotify/voyager/jni/Index.html | 1496 +++++++---------- .../voyager/jni/StringIndex.QueryResults.html | 467 ++--- .../com/spotify/voyager/jni/StringIndex.html | 817 ++++----- .../jni/class-use/Index.QueryResults.html | 256 +-- .../jni/class-use/Index.SpaceType.html | 395 ++--- .../jni/class-use/Index.StorageDataType.html | 363 ++-- .../spotify/voyager/jni/class-use/Index.html | 252 +-- .../class-use/StringIndex.QueryResults.html | 214 +-- .../voyager/jni/class-use/StringIndex.html | 248 +-- .../spotify/voyager/jni/package-summary.html | 261 +-- .../com/spotify/voyager/jni/package-tree.html | 166 +- .../com/spotify/voyager/jni/package-use.html | 238 +-- .../voyager/jni/utils/JniLibExtractor.html | 350 ++-- .../spotify/voyager/jni/utils/TinyJson.html | 383 ++--- .../jni/utils/class-use/JniLibExtractor.html | 145 +- .../voyager/jni/utils/class-use/TinyJson.html | 145 +- .../voyager/jni/utils/package-summary.html | 201 +-- .../voyager/jni/utils/package-tree.html | 152 +- .../voyager/jni/utils/package-use.html | 143 +- .../com/spotify/voyager/package-summary.html | 171 +- .../com/spotify/voyager/package-tree.html | 142 +- .../java/com/spotify/voyager/package-use.html | 143 +- docs/java/help-doc.html | 327 ++-- docs/java/index-all.html | 438 ++--- docs/java/index.html | 180 +- docs/java/member-search-index.js | 2 +- docs/java/overview-summary.html | 13 +- docs/java/overview-tree.html | 170 +- docs/java/package-search-index.js | 2 +- docs/java/script.js | 183 +- docs/java/search.js | 408 ++--- docs/java/stylesheet.css | 779 ++++----- docs/java/type-search-index.js | 2 +- java/com_spotify_voyager_jni_Index.cpp | 53 + java/pom.xml | 10 +- .../com/spotify/voyager/jni/StringIndex.java | 47 +- .../com/spotify/voyager/jni/IndexTest.java | 41 +- .../spotify/voyager/jni/StringIndexTest.java | 17 + .../com/spotify/voyager/jni/TestUtils.java | 2 +- java/src/test/resources/index-v2.hnsw | Bin 0 -> 46991 bytes java/src/test/resources/names-v2.json | 1 + 46 files changed, 4065 insertions(+), 7604 deletions(-) create mode 100644 java/src/test/resources/index-v2.hnsw create mode 100644 java/src/test/resources/names-v2.json diff --git a/docs/java/allclasses-index.html b/docs/java/allclasses-index.html index 8a6338b8..4cf07cb3 100644 --- a/docs/java/allclasses-index.html +++ b/docs/java/allclasses-index.html @@ -1,216 +1,108 @@ - - -All Classes (voyager 2.0.1 API) + +All Classes and Interfaces (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

All Classes

-
-
- +
+
+
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/allpackages-index.html b/docs/java/allpackages-index.html index 92597bf6..f7d1eadd 100644 --- a/docs/java/allpackages-index.html +++ b/docs/java/allpackages-index.html @@ -1,180 +1,78 @@ - - + All Packages (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +

All Packages

-
- +
+ +
 
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html index df17f433..362f30fd 100644 --- a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html @@ -1,433 +1,261 @@ - - + Index.QueryResults (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ - +
+
- -

Class Index.QueryResults

+ +

Class Index.QueryResults

-
- -
-
    -
  • -
    +
    java.lang.Object +
    com.spotify.voyager.jni.Index.QueryResults
    +
    +
    +
    Enclosing class:
    Index

    -
    public static class Index.QueryResults
    -extends Object
    +
    public static class Index.QueryResults +extends Object
    A container for query results, returned by Index. Note that this class is instantiated from C++, and as such, any changes to its location, visibility, or constructor will need to include corresponding C++ changes.
    -
  • -
-
-
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Field Summary

        - - - - - - - - - - - - - - - - - -
        Fields 
        Modifier and TypeFieldDescription
        float[]distances +
      • +
        +

        Field Summary

        +
        Fields
        +
        +
        Modifier and Type
        +
        Field
        +
        Description
        +
        final float[]
        + +
        A list of distances from each item ID to the query vector for this query.
        -
      • long[]labels + +
        final long[]
        + +
        A list of item IDs ("labels").
        -
        -
      • -
      +
+
+ -
-
    -
  • - - -

    Constructor Summary

    - - - - - - - - - - -
    Constructors 
    ConstructorDescription
    QueryResults​(long[] labels, - float[] distances) +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    QueryResults(long[] labels, + float[] distances)
    +
    Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
    -
  • -
  • -
+
+
+ -
- + + + +
 
+ + + +
+

Methods inherited from class java.lang.Object

+clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
- -
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Field Detail

        - - - -
          -
        • -

          labels

          -
          public final long[] labels
          +
        • +
          +

          Field Details

          +
            +
          • +
            +

            labels

            +
            public final long[] labels
            A list of item IDs ("labels").
            +
          • -
          - - - -
            -
          • -

            distances

            -
            public final float[] distances
            +
          • +
            +

            distances

            +
            public final float[] distances
            A list of distances from each item ID to the query vector for this query.
            -
          • -
          +
      + -
      -
        -
      • - - -

        Constructor Detail

        - - - -
          -
        • -

          QueryResults

          -
          public QueryResults​(long[] labels,
          -                    float[] distances)
          +
        • +
          +

          Constructor Details

          +
            +
          • +
            +

            QueryResults

            +
            public QueryResults(long[] labels, + float[] distances)
            Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances. This method should probably not be used directly, as this class is primarily used as a return type from the query method on Index.
            -
            -
            Throws:
            -
            IllegalArgumentException - if the length of the labels and distances arrays vary
            +
            +
            Throws:
            +
            IllegalArgumentException - if the length of the labels and distances arrays vary
            -
          • -
          +
      + -
      -
        -
      • - - -

        Method Detail

        - - - -
          -
        • -

          toString

          -
          public String toString()
          -
          -
          Overrides:
          -
          toString in class Object
          +
        • +
          +

          Method Details

          + - - - -
            -
          • -

            getLabels

            -
            public long[] getLabels()
            +
          • +
            +

            getLabels

            +
            public long[] getLabels()
            Retrieve the list of item IDs ("labels") returned by this query. This array is sorted by distance: the first item is the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the distances returned by getDistances().
            +
          • -
          - - - -
            -
          • -

            getDistances

            -
            public float[] getDistances()
            +
          • +
            +

            getDistances

            +
            public float[] getDistances()
            Retrieve the list of distances between query vectors and item vectors for the results of this query. This array is sorted by distance: the first distance corresponds with the item the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the labels returned by getLabels().
            -
          • -
          +
    -
- - + +
-
-
- -
- - - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html index 01cde00a..fb147eb4 100644 --- a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html @@ -1,415 +1,244 @@ - - + Index.SpaceType (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+
+ +
- +
+
- -

Enum Index.SpaceType

+ +

Enum Index.SpaceType

-
- -
- -
-
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Enum Constant Summary

        - - - - - - - - - - - - - - - - - - -
        Enum Constants 
        Enum ConstantDescription
        Cosine +
      • +
        +

        Enum Constant Summary

        +
        Enum Constants
        +
        +
        Enum Constant
        +
        Description
        + +
        Cosine distance; i.e.
        -
      • Euclidean + + +
        Euclidean distance, also known as L2 distance.
        -
        InnerProduct + + +
        Inner (dot) product.
        -
        -
      • -
      +
+
+ -
- +
+ + + +
+

Methods inherited from class java.lang.Enum

+clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
+
+

Methods inherited from class java.lang.Object

+getClass, notify, notifyAll, wait, wait, wait
- -
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Enum Constant Detail

        - - - -
          -
        • -

          Euclidean

          -
          public static final Index.SpaceType Euclidean
          +
        • +
          +

          Enum Constant Details

          +
            +
          • +
            +

            Euclidean

            +
            public static final Index.SpaceType Euclidean
            Euclidean distance, also known as L2 distance. Computed by taking the square root of the sum of squared differences between each element of each vector.
            +
          • -
          - - - -
            -
          • -

            InnerProduct

            -
            public static final Index.SpaceType InnerProduct
            +
          • +
            +

            InnerProduct

            +
            public static final Index.SpaceType InnerProduct
            Inner (dot) product. Computed by taking the sum of the products of each element of each vector. Since v2.0, this is implemented using the order preserving transform defined in this paper from Microsoft: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/XboxInnerProduct.pdf
            +
          • -
          - - - -
            -
          • -

            Cosine

            -
            public static final Index.SpaceType Cosine
            +
          • +
            +

            Cosine

            +
            public static final Index.SpaceType Cosine
            Cosine distance; i.e. normalized dot product. Computed by taking the sum of the products of each element of each vector, divided by the product of the magnitudes of each vector.
            -
          • -
          +
      + -
      -
        -
      • - - -

        Method Detail

        - - - -
          -
        • -

          values

          -
          public static Index.SpaceType[] values()
          +
        • +
          +

          Method Details

          +
            +
          • +
            +

            values

            +
            public static Index.SpaceType[] values()
            Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
            -for (Index.SpaceType c : Index.SpaceType.values())
            -    System.out.println(c);
            -
            -
            -
            Returns:
            +the order they are declared.
+
+
Returns:
an array containing the constants of this enum type, in the order they are declared
+ - - - - -
    -
  • -

    valueOf

    -
    public static Index.SpaceType valueOf​(String name)
    +
  • +
    +

    valueOf

    +
    public static Index.SpaceType valueOf(String name)
    Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
    -
    -
    Parameters:
    +
    +
    Parameters:
    name - the name of the enum constant to be returned.
    -
    Returns:
    +
    Returns:
    the enum constant with the specified name
    -
    Throws:
    -
    IllegalArgumentException - if this enum type has no constant with the specified name
    -
    NullPointerException - if the argument is null
    +
    Throws:
    +
    IllegalArgumentException - if this enum type has no constant with the specified name
    +
    NullPointerException - if the argument is null
    -
  • -
+ - - - + +
-
-
- -
- - - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html index 373e1533..d5cecef8 100644 --- a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html @@ -1,261 +1,167 @@ - - + Index.StorageDataType (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+
+ +
- +
+
- -

Enum Index.StorageDataType

+ +

Enum Index.StorageDataType

-
- -
- -
-
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Enum Constant Summary

        - - - - - - - - - - - - - - - - - - -
        Enum Constants 
        Enum ConstantDescription
        E4M3 +
      • +
        +

        Enum Constant Summary

        +
        Enum Constants
        +
        +
        Enum Constant
        +
        Description
        + +
        A custom 8-bit floating point data type with range [-448, 448] and variable precision.
        -
      • Float32 + + +
        A 32-bit floating point ("Float") data type.
        -
        Float8 + + +
        An 8-bit floating point data type that expects all values to be on [-1, 1].
        -
        -
      • -
      +
+
+ -
- +
+ + + +
+

Methods inherited from class java.lang.Enum

+clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
+
+

Methods inherited from class java.lang.Object

+getClass, notify, notifyAll, wait, wait, wait
- -
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Enum Constant Detail

        - - - -
          -
        • -

          Float8

          -
          public static final Index.StorageDataType Float8
          +
        • +
          +

          Enum Constant Details

          +
            +
          • +
            +

            Float8

            +
            public static final Index.StorageDataType Float8
            An 8-bit floating point data type that expects all values to be on [-1, 1]. This data type provides adequate precision for many use cases, but cuts down memory usage bu a factor of 4x compared to Float32, while also increasing query speed. @@ -263,155 +169,78 @@

            Float8

            Float8 provides 8 bits of resolution; i.e.: the distance between successive values is 1/127, or 0.00787. For a variable-precision (i.e.: _actually_ floating point) representation, use E4M3.

            +
          • -
          - - - - - - - -
            -
          • -

            E4M3

            -
            public static final Index.StorageDataType E4M3
            +
          • +
            +

            E4M3

            +
            public static final Index.StorageDataType E4M3
            A custom 8-bit floating point data type with range [-448, 448] and variable precision. Use this data type to get 4x less memory usage compared to Float32, but when the values of vectors to be stored in an Index may exceed [-1, 1].

            E4M3 uses a 4-bit exponent and 3-bit mantissa field, and was inspired by the paper "FP8 Formats for Deep Learning" by Micikevicus et al (arXiv:2209.05433).

            -
          • -
          +
      + -
      -
        -
      • - - -

        Method Detail

        - - - -
          -
        • -

          values

          -
          public static Index.StorageDataType[] values()
          +
        • +
          +

          Method Details

          +
            +
          • +
            +

            values

            +
            public static Index.StorageDataType[] values()
            Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
            -for (Index.StorageDataType c : Index.StorageDataType.values())
            -    System.out.println(c);
            -
            -
            -
            Returns:
            +the order they are declared.
+
+
Returns:
an array containing the constants of this enum type, in the order they are declared
+ - - - - -
    -
  • -

    valueOf

    -
    public static Index.StorageDataType valueOf​(String name)
    +
  • +
    +

    valueOf

    +
    public static Index.StorageDataType valueOf(String name)
    Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
    -
    -
    Parameters:
    +
    +
    Parameters:
    name - the name of the enum constant to be returned.
    -
    Returns:
    +
    Returns:
    the enum constant with the specified name
    -
    Throws:
    -
    IllegalArgumentException - if this enum type has no constant with the specified name
    -
    NullPointerException - if the argument is null
    +
    Throws:
    +
    IllegalArgumentException - if this enum type has no constant with the specified name
    +
    NullPointerException - if the argument is null
    -
  • -
+ - - - + +
-
-
- -
- - - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/Index.html b/docs/java/com/spotify/voyager/jni/Index.html index 5019650d..68af6bbc 100644 --- a/docs/java/com/spotify/voyager/jni/Index.html +++ b/docs/java/com/spotify/voyager/jni/Index.html @@ -1,144 +1,89 @@ - - + Index (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+
+ +
- +
+
- -

Class Index

+ +

Class Index

-
- -
-
    -
  • -
    +
    java.lang.Object +
    com.spotify.voyager.jni.Index
    +
    +
    +
    All Implemented Interfaces:
    -
    Closeable, AutoCloseable
    +
    Closeable, AutoCloseable

    -
    public class Index
    -extends Object
    -implements Closeable
    +
    public class Index +extends Object +implements Closeable
    A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors. @@ -161,407 +106,302 @@

    Class Index

    // Serialize this index to use it again later: index.saveIndex("my_tiny_index.voy");
    -
  • -
-
-
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Nested Class Summary

        - - - - - - - - - - - - - - - - - - - - - - -
        Nested Classes 
        Modifier and TypeClassDescription
        static class Index.QueryResults +
      • +
        +

        Nested Class Summary

        +
        Nested Classes
        +
        +
        Modifier and Type
        +
        Class
        +
        Description
        +
        static class 
        + +
        A container for query results, returned by Index.
        -
      • static class Index.SpaceType + +
        static enum 
        + +
        The space, also known as distance metric, to use when searching.
        -
        static class Index.StorageDataType + +
        static enum 
        + +
        The datatype used to use when storing vectors on disk.
        -
        -
      • -
      +
+
+ -
-
    -
  • - - -

    Constructor Summary

    - - - - - - - - - - - - - - -
    Constructors 
    ConstructorDescription
    Index​(Index.SpaceType space, - int numDimensions) +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    Index(Index.SpaceType space, + int numDimensions)
    +
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
  • Index​(Index.SpaceType space, - int numDimensions, - long indexM, - long efConstruction, - long randomSeed, - long maxElements, - Index.StorageDataType storageDataType) + +
    Index(Index.SpaceType space, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
    +
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
    -
  • -
+
+ + -
- + + + + +
+

Methods inherited from class java.lang.Object

+clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- -
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Constructor Detail

        - - - -
          -
        • -

          Index

          -
          public Index​(Index.SpaceType space,
          -             int numDimensions)
          +
        • +
          +

          Constructor Details

          +
            +
          • +
            +

            Index

            +
            public Index(Index.SpaceType space, + int numDimensions)
            Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
            -
            -
            Parameters:
            +
            +
            Parameters:
            space - the space type to use when storing and comparing vectors.
            numDimensions - the number of dimensions per vector.
            +
          • -
          - - - -
            -
          • -

            Index

            -
            public Index​(Index.SpaceType space,
            -             int numDimensions,
            -             long indexM,
            -             long efConstruction,
            -             long randomSeed,
            -             long maxElements,
            -             Index.StorageDataType storageDataType)
            +
          • +
            +

            Index

            +
            public Index(Index.SpaceType space, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
            Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
            -
            -
            Parameters:
            +
            +
            Parameters:
            space - The space type to use when storing and comparing vectors.
            numDimensions - The number of dimensions per vector.
            indexM - Controls the degree of interconnectedness between vectors. Higher values of @@ -576,349 +416,293 @@

            Index

            storageDataType - The datatype to use under-the-hood when storing vectors. Different data type options trade off precision for memory usage and query speed; see Index.StorageDataType for available data types.
            -
          • -
          +
      + -
      -
        -
      • - - -

        Method Detail

        - - - -
          -
        • -

          load

          -
          public static Index load​(String filename,
          -                         Index.SpaceType space,
          -                         int numDimensions,
          -                         Index.StorageDataType storageDataType)
          +
        • +
          +

          Method Details

          +
            +
          • +
            +

            load

            +
            public static Index load(String filename, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
            Load a Voyager index file and create a new Index initialized with the data in that file.
            -
            -
            Parameters:
            +
            +
            Parameters:
            filename - A filename to load.
            space - The Index.SpaceType to use when loading the index.
            numDimensions - The number of dimensions per vector.
            storageDataType - The Index.StorageDataType used by the index being loaded.
            -
            Returns:
            +
            Returns:
            An Index whose contents have been initialized with the data provided by the file.
            -
            Throws:
            -
            RuntimeException - if the index cannot be loaded from the file, or the file contains +
            Throws:
            +
            RuntimeException - if the index cannot be loaded from the file, or the file contains invalid data.
            +
          • -
          - - - -
            -
          • -

            load

            -
            public static Index load​(String filename)
            +
          • +
            +

            load

            +
            public static Index load(String filename)
            Load a Voyager index file and create a new Index initialized with the data in that file.
            -
            -
            Parameters:
            +
            +
            Parameters:
            filename - A filename to load.
            -
            Returns:
            +
            Returns:
            An Index whose contents have been initialized with the data provided by the file.
            -
            Throws:
            -
            RuntimeException - if the index cannot be loaded from the file, the file contains invalid +
            Throws:
            +
            RuntimeException - if the index cannot be loaded from the file, the file contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
            +
          • -
          - - - -
            -
          • -

            load

            -
            public static Index load​(InputStream inputStream,
            -                         Index.SpaceType space,
            -                         int numDimensions,
            -                         Index.StorageDataType storageDataType)
            +
          • +
            +

            load

            +
            public static Index load(InputStream inputStream, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
            Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
            -
            -
            Parameters:
            -
            inputStream - A InputStream that will provide the contents of a Voyager +
            +
            Parameters:
            +
            inputStream - A InputStream that will provide the contents of a Voyager index.
            space - The Index.SpaceType to use when loading the index.
            numDimensions - The number of dimensions per vector.
            storageDataType - The Index.StorageDataType used by the index being loaded.
            -
            Returns:
            +
            Returns:
            An Index whose contents have been initialized with the data provided by the input stream.
            -
            Throws:
            -
            RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
            Throws:
            +
            RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data.
            +
          • -
          - - - -
            -
          • -

            load

            -
            public static Index load​(InputStream inputStream)
            +
          • +
            +

            load

            +
            public static Index load(InputStream inputStream)
            Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
            -
            -
            Parameters:
            -
            inputStream - A InputStream that will provide the contents of a Voyager +
            +
            Parameters:
            +
            inputStream - A InputStream that will provide the contents of a Voyager index.
            -
            Returns:
            +
            Returns:
            An Index whose contents have been initialized with the data provided by the input stream.
            -
            Throws:
            -
            RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
            Throws:
            +
            RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
            +
          • -
          - - - -
            -
          • -

            close

            -
            public void close()
            -           throws IOException
            +
          • +
            +

            close

            +
            public void close() + throws IOException
            Close this Index and release any memory held by it. Note that this method must be called to release the memory backing this Index; failing to do so may cause a memory leak.

            Any calls to methods after close() is called will fail, as the underlying native C++ object will have been deallocated.

            -
            -
            Specified by:
            -
            close in interface AutoCloseable
            -
            Specified by:
            -
            close in interface Closeable
            -
            Throws:
            -
            IOException - if the C++ destructor fails.
            +
            +
            Specified by:
            +
            close in interface AutoCloseable
            +
            Specified by:
            +
            close in interface Closeable
            +
            Throws:
            +
            IOException - if the C++ destructor fails.
            +
          • -
          - - - - - - - -
            -
          • -

            setEf

            -
            public void setEf​(long ef)
            +
          • +
            +

            setEf

            +
            public void setEf(long ef)
            Set the default EF ("query search depth") to use when query(float[], int) is called.
            -
            -
            Parameters:
            +
            +
            Parameters:
            ef - The new default EF value to use. This value can be overridden on a per-query basis at query time.
            +
          • -
          - - - -
            -
          • -

            getEf

            -
            public int getEf()
            +
          • +
            +

            getEf

            +
            public int getEf()
            Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
            -
            -
            Returns:
            +
            +
            Returns:
            The current default EF value, used by the Index if no value is provided at query time.
            +
          • -
          - - - - - - - -
            -
          • -

            getNumDimensions

            -
            public int getNumDimensions()
            +
          • +
            +

            getNumDimensions

            +
            public int getNumDimensions()
            Get the number of dimensions used in this Index.
            -
            -
            Returns:
            +
            +
            Returns:
            The number of dimensions used by this Index, and which all vectors within this Index must have.
            +
          • -
          - - - -
            -
          • -

            setNumThreads

            -
            public void setNumThreads​(int numThreads)
            +
          • +
            +

            setNumThreads

            +
            public void setNumThreads(int numThreads)
            Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
            -
            -
            Parameters:
            +
            +
            Parameters:
            numThreads - The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call. Note that this affects the number of threads started for each method call - Voyager keeps no long-lived thread pool. For maximum efficiency, pass as much data as possible to each bulk-add or bulk-query method call to minimize overhead.
            +
          • -
          - - - -
            -
          • -

            getNumThreads

            -
            public int getNumThreads()
            +
          • +
            +

            getNumThreads

            +
            public int getNumThreads()
            Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
            -
            -
            Returns:
            +
            +
            Returns:
            The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call.
            +
          • -
          - - - -
            -
          • -

            saveIndex

            -
            public void saveIndex​(String pathToIndex)
            +
          • +
            +

            saveIndex

            +
            public void saveIndex(String pathToIndex)
            Save this Index to a file at the provided filename. This file can be reloaded by using Index.load(...).
            -
            -
            Parameters:
            +
            +
            Parameters:
            pathToIndex - The output filename to write to.
            +
          • -
          - - - -
            -
          • -

            saveIndex

            -
            public void saveIndex​(OutputStream outputStream)
            +
          • +
            +

            saveIndex

            +
            public void saveIndex(OutputStream outputStream)
            Save this Index to the provided output stream. The stream will not be closed automatically - be sure to close the stream saveIndex has completed. The data written to the stream can be reloaded by using Index.load(...).
            -
            -
            Parameters:
            +
            +
            Parameters:
            outputStream - The output stream to write to. This stream will not be closed automatically.
            +
          • -
          - - - -
            -
          • -

            addItem

            -
            public void addItem​(float[] vector)
            +
          • +
            +

            addItem

            +
            public void addItem(float[] vector)
            Add an item (a vector) to this Index. The item will automatically be given an identifier equal to the return value of getNumElements().
            -
            -
            Parameters:
            +
            +
            Parameters:
            vector - The vector to add to the index.
            -
            Throws:
            -
            RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
            +
            Throws:
            +
            RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
            +
          • -
          - - - -
            -
          • -

            addItem

            -
            public void addItem​(float[] vector,
            -                    long id)
            +
          • +
            +

            addItem

            +
            public void addItem(float[] vector, + long id)
            Add an item (a vector) to this Index with the provided identifier.
            -
            -
            Parameters:
            +
            +
            Parameters:
            vector - The vector to add to the index.
            id - The 64-bit integer denoting the identifier of this vector.
            -
            Throws:
            -
            RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
            +
            Throws:
            +
            RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
            +
          • -
          - - - -
            -
          • -

            addItems

            -
            public void addItems​(float[][] vectors,
            -                     int numThreads)
            +
          • +
            +

            addItems

            +
            public void addItems(float[][] vectors, + int numThreads)
            Add multiple items (vectors) to this Index.
            -
            -
            Parameters:
            +
            +
            Parameters:
            vectors - The vectors to add to the index.
            numThreads - The number of threads to use when adding the provided vectors. If -1 (the default), the number of CPUs available on the current machine will be used.
            -
            Throws:
            -
            RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
            +
            Throws:
            +
            RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
            +
          • -
          - - - -
            -
          • -

            addItems

            -
            public void addItems​(float[][] vectors,
            -                     long[] ids,
            -                     int numThreads)
            +
          • +
            +

            addItems

            +
            public void addItems(float[][] vectors, + long[] ids, + int numThreads)
            Add multiple items (vectors) to this Index.
            -
            -
            Parameters:
            +
            +
            Parameters:
            vectors - The vectors to add to the index.
            ids - The 64-bit identifiers that correspond with each of the provided vectors.
            numThreads - The number of threads to use when adding the provided vectors. If -1 (the @@ -926,149 +710,128 @@

            addItems

            causes a temporary C++ thread pool to be used. Instead of calling addItems(float[][],int) in a tight loop, consider passing more data to each addItems(float[][],int) call instead to reduce overhead.
            -
            Throws:
            -
            RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
            -
            RuntimeException - If the list of IDs does not have the same length as the list of +
            Throws:
            +
            RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
            +
            RuntimeException - If the list of IDs does not have the same length as the list of provided vectors.
            +
          • -
          - - - -
            -
          • -

            getVector

            -
            public float[] getVector​(long id)
            +
          • +
            +

            getVector

            +
            public float[] getVector(long id)
            Get the vector for the provided identifier.
            -
            -
            Parameters:
            +
            +
            Parameters:
            id - The identifier whose vector will be fetched.
            -
            Returns:
            +
            Returns:
            A float array representing the values of the vector.
            -
            Throws:
            -
            RuntimeException - If the provided identifier is not present in the Index.
            +
            Throws:
            +
            RuntimeException - If the provided identifier is not present in the Index.
            +
          • -
          - - - -
            -
          • -

            getVectors

            -
            public float[][] getVectors​(long[] ids)
            +
          • +
            +

            getVectors

            +
            public float[][] getVectors(long[] ids)
            Get the vectors for a provided array of identifiers.
            -
            -
            Parameters:
            +
            +
            Parameters:
            ids - The identifiers whose vector will be fetched.
            -
            Returns:
            +
            Returns:
            A nested float array representing the values of the vectors corresponding with each ID.
            -
            Throws:
            -
            RuntimeException - If any of the provided identifiers are not present in the Index.
            +
            Throws:
            +
            RuntimeException - If any of the provided identifiers are not present in the Index.
            +
          • -
          - - - -
            -
          • -

            getIDs

            -
            public long[] getIDs()
            +
          • +
            +

            getIDs

            +
            public long[] getIDs()
            Get the list of identifiers currently stored by this index.
            -
            -
            Returns:
            +
            +
            Returns:
            a long array of identifiers.
            +
          • -
          - - - -
            -
          • -

            query

            -
            public Index.QueryResults query​(float[] queryVector,
            -                                int k)
            +
          • +
            +

            query

            +
            public Index.QueryResults query(float[] queryVector, + int k)
            Query this Index for approximate nearest neighbors of a single query vector.
            -
            -
            Parameters:
            +
            +
            Parameters:
            queryVector - A query vector to use for searching.
            k - The number of nearest neighbors to return.
            -
            Returns:
            +
            Returns:
            A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
            -
            Throws:
            -
            RuntimeException - if fewer than k results can be found in the index.
            +
            Throws:
            +
            RuntimeException - if fewer than k results can be found in the index.
            +
          • -
          - - - -
            -
          • -

            query

            -
            public Index.QueryResults[] query​(float[][] queryVectors,
            -                                  int k,
            -                                  int numThreads)
            +
          • +
            +

            query

            +
            public Index.QueryResults[] query(float[][] queryVectors, + int k, + int numThreads)
            Query this Index for approximate nearest neighbors of multiple query vectors.
            -
            -
            Parameters:
            +
            +
            Parameters:
            queryVectors - The query vectors to use for searching.
            k - The number of nearest neighbors to return for each query vector
            numThreads - The number of threads to use when searching. If -1, all available CPU cores will be used. Note that passing a number of threads other than 1 will cause a temporary C++ thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing more data to each call instead to reduce overhead.
            -
            Returns:
            +
            Returns:
            An array of Index.QueryResults objects, each containing the neighbors found that are (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
            -
            Throws:
            -
            RuntimeException - if fewer than k results can be found in the index for one or +
            Throws:
            +
            RuntimeException - if fewer than k results can be found in the index for one or more queries.
            +
          • -
          - - - -
            -
          • -

            query

            -
            public Index.QueryResults query​(float[] queryVector,
            -                                int k,
            -                                long queryEf)
            +
          • +
            +

            query

            +
            public Index.QueryResults query(float[] queryVector, + int k, + long queryEf)
            Query this Index for approximate nearest neighbors of a single query vector.
            -
            -
            Parameters:
            +
            +
            Parameters:
            queryVector - A query vector to use for searching.
            k - The number of nearest neighbors to return.
            queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
            -
            Returns:
            +
            Returns:
            A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
            -
            Throws:
            -
            RuntimeException - if fewer than k results can be found in the index.
            +
            Throws:
            +
            RuntimeException - if fewer than k results can be found in the index.
            +
          • -
          - - - -
            -
          • -

            query

            -
            public Index.QueryResults[] query​(float[][] queryVectors,
            -                                  int k,
            -                                  int numThreads,
            -                                  long queryEf)
            +
          • +
            +

            query

            +
            public Index.QueryResults[] query(float[][] queryVectors, + int k, + int numThreads, + long queryEf)
            Query this Index for approximate nearest neighbors of multiple query vectors.
            -
            -
            Parameters:
            +
            +
            Parameters:
            queryVectors - The query vectors to use for searching.
            k - The number of nearest neighbors to return for each query vector
            numThreads - The number of threads to use when searching. If -1, all available CPU cores @@ -1077,194 +840,115 @@

            query

            more data to each call instead to reduce overhead.
            queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
            -
            Returns:
            +
            Returns:
            An array of Index.QueryResults objects, each containing the neighbors found that are (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
            -
            Throws:
            -
            RuntimeException - if fewer than k results can be found in the index for one or +
            Throws:
            +
            RuntimeException - if fewer than k results can be found in the index for one or more queries.
            +
          • -
          - - - -
            -
          • -

            markDeleted

            -
            public void markDeleted​(long label)
            +
          • +
            +

            markDeleted

            +
            public void markDeleted(long label)
            Mark an element of the index as deleted. Deleted elements will be skipped when querying, but will still be present in the index.
            -
            -
            Parameters:
            +
            +
            Parameters:
            label - The ID of the element to mark as deleted.
            -
            Throws:
            -
            RuntimeException - If the provided identifier is not present in the Index.
            +
            Throws:
            +
            RuntimeException - If the provided identifier is not present in the Index.
            +
          • -
          - - - -
            -
          • -

            unmarkDeleted

            -
            public void unmarkDeleted​(long label)
            +
          • +
            +

            unmarkDeleted

            +
            public void unmarkDeleted(long label)
            Un-mark an element of the index as deleted, making it available again.
            -
            -
            Parameters:
            +
            +
            Parameters:
            label - The ID of the element to unmark as deleted.
            -
            Throws:
            -
            RuntimeException - If the provided identifier is not present in the Index.
            +
            Throws:
            +
            RuntimeException - If the provided identifier is not present in the Index.
            +
          • -
          - - - -
            -
          • -

            resizeIndex

            -
            public void resizeIndex​(long newSize)
            +
          • +
            +

            resizeIndex

            +
            public void resizeIndex(long newSize)
            Change the maximum number of elements currently storable by this Index. This operation reallocates the memory used by the index and can be quite slow, so it may be useful to set the maximum number of elements in advance if that number is known.
            -
            -
            Parameters:
            +
            +
            Parameters:
            newSize - The new number of maximum elements to resize this Index to.
            +
          • -
          - - - -
            -
          • -

            getMaxElements

            -
            public long getMaxElements()
            +
          • +
            +

            getMaxElements

            +
            public long getMaxElements()
            Get the maximum number of elements currently storable by this Index. If more elements are added than getMaxElements(), the index will be automatically (but slowly) resized.
            -
            -
            Returns:
            +
            +
            Returns:
            The number of elements (vectors) that are currently storable in this Index.
            +
          • -
          - - - -
            -
          • -

            getNumElements

            -
            public long getNumElements()
            +
          • +
            +

            getNumElements

            +
            public long getNumElements()
            Get the number of elements currently in this Index.
            -
            -
            Returns:
            +
            +
            Returns:
            The number of elements (vectors) in this Index. This count includes any deleted elements.
            +
          • -
          - - - -
            -
          • -

            getEfConstruction

            -
            public long getEfConstruction()
            +
          • +
            +

            getEfConstruction

            +
            public long getEfConstruction()
            Get the EF Construction value used when adding new elements to this Index.
            -
            -
            Returns:
            +
            +
            Returns:
            The current EF Construction value (i.e.: the number of neighbors to search for when adding new elements).
            +
          • -
          - - - -
            -
          • -

            getM

            -
            public long getM()
            +
          • +
            +

            getM

            +
            public long getM()
            Get the M value used when adding new elements to this Index.
            -
            -
            Returns:
            +
            +
            Returns:
            The current M value (i.e.: the number of links between adjacent vectors to create when adding elements).
            -
          • -
          +
    -
- - + +
-
-
- -
- - - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html index 519e8da1..b26747cb 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -1,388 +1,219 @@ - - + StringIndex.QueryResults (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+
+ +
- +
+
- -

Class StringIndex.QueryResults

+ +

Class StringIndex.QueryResults

-
- -
-
    -
  • -
    +
    java.lang.Object +
    com.spotify.voyager.jni.StringIndex.QueryResults
    +
    +
    +
    Enclosing class:
    StringIndex

    -
    public static class StringIndex.QueryResults
    -extends Object
    +
    public static class StringIndex.QueryResults +extends Object
    A wrapper class for nearest neighbor query results.
    -
  • -
-
-
-
-
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Constructor Detail

        - - - -
          -
        • -

          QueryResults

          -
          public QueryResults​(String[] names,
          -                    float[] distances)
          -
        • -
        +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          QueryResults

          +
          public QueryResults(String[] names, + float[] distances)
          +
        +
      • -
        -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            getNames

            -
            public String[] getNames()
            +
          • +
            +

            Method Details

            +
              +
            • +
              +

              getNames

              +
              public String[] getNames()
              +
            • -
            - - - -
              -
            • -

              getDistances

              -
              public float[] getDistances()
              +
            • +
              +

              getDistances

              +
              public float[] getDistances()
              +
            • -
            - - - -
              -
            • -

              getName

              -
              public String getName​(int index)
              +
            • +
              +

              getName

              +
              public String getName(int index)
              +
            • -
            - - - -
              -
            • -

              getDistance

              -
              public float getDistance​(int index)
              +
            • +
              +

              getDistance

              +
              public float getDistance(int index)
              +
            • -
            - - - -
              -
            • -

              getNumResults

              -
              public int getNumResults()
              +
            • +
              +

              getNumResults

              +
              public int getNumResults()
              +
            • -
            - - - - +
      -
-
-
+ +
-
-
- -
- - - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.html b/docs/java/com/spotify/voyager/jni/StringIndex.html index 5b292427..fd50e650 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.html @@ -1,355 +1,262 @@ - - + StringIndex (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+
+ +
- +
+
- -

Class StringIndex

+ +

Class StringIndex

-
- -
-
    -
  • -
    +
    java.lang.Object +
    com.spotify.voyager.jni.StringIndex
    +
    +
    +
    All Implemented Interfaces:
    -
    Closeable, AutoCloseable
    +
    Closeable, AutoCloseable

    -
    public class StringIndex
    -extends Object
    -implements Closeable
    +
    public class StringIndex +extends Object +implements Closeable
    Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.

    StringIndex can only accommodate up to 2^31 - 1 (2.1B) items, despite typical Voyager indices allowing up to 2^63 - 1 (9e18) items.

    -
  • -
-
-
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Nested Class Summary

        - - - - - - - - - - - - -
        Nested Classes 
        Modifier and TypeClassDescription
        static class StringIndex.QueryResults +
      • +
        +

        Nested Class Summary

        +
        Nested Classes
        +
        +
        Modifier and Type
        +
        Class
        +
        Description
        +
        static class 
        + +
        A wrapper class for nearest neighbor query results.
        -
      • -
      • -
      +
+
+ -
-
    -
  • - - -

    Constructor Summary

    - - - - - - - - - - - - - - -
    Constructors 
    ConstructorDescription
    StringIndex​(Index.SpaceType spaceType, - int numDimensions) +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    StringIndex(Index.SpaceType spaceType, + int numDimensions)
    +
    Instantiate a new empty index with the specified space type and dimensionality
    -
  • StringIndex​(Index.SpaceType spaceType, - int numDimensions, - long indexM, - long efConstruction, - long randomSeed, - long maxElements, - Index.StorageDataType storageDataType) + +
    StringIndex(Index.SpaceType spaceType, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
    +
    Instantiate an empty index with the specified index parameters
    -
    -
  • -
+
+ + -
- + +
void
+
saveIndex(String outputDirectory, + String indexFilename, + String nameListFilename)
+
 
+ + + +
+

Methods inherited from class java.lang.Object

+clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- -
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Constructor Detail

        - - - -
          -
        • -

          StringIndex

          -
          public StringIndex​(Index.SpaceType spaceType,
          -                   int numDimensions)
          +
        • +
          +

          Constructor Details

          +
            +
          • +
            +

            StringIndex

            +
            public StringIndex(Index.SpaceType spaceType, + int numDimensions)
            Instantiate a new empty index with the specified space type and dimensionality
            -
            -
            Parameters:
            +
            +
            Parameters:
            spaceType - Type of space and distance calculation used when determining distance between embeddings in the index, @see com.spotify.voyager.jni.Index.SpaceType
            numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
            +
          • -
          - - - -
            -
          • -

            StringIndex

            -
            public StringIndex​(Index.SpaceType spaceType,
            -                   int numDimensions,
            -                   long indexM,
            -                   long efConstruction,
            -                   long randomSeed,
            -                   long maxElements,
            -                   Index.StorageDataType storageDataType)
            +
          • +
            +

            StringIndex

            +
            public StringIndex(Index.SpaceType spaceType, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
            Instantiate an empty index with the specified index parameters
            -
            -
            Parameters:
            +
            +
            Parameters:
            spaceType - Type of space and distance calculation used when determining distance between embeddings in the index, @see com.spotify.voyager.jni.Index.SpaceType
            numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
            @@ -362,153 +269,178 @@

            StringIndex

            storageDataType - Type to store the embedding values as, @see com.spotify.voyager.jni.StorageDataType
            -
          • -
          +
      + -
      -
        -
      • - - -

        Method Detail

        - - - -
          -
        • -

          load

          -
          public static StringIndex load​(String indexFilename,
          -                               String nameListFilename,
          -                               Index.SpaceType spaceType,
          -                               int numDimensions,
          -                               Index.StorageDataType storageDataType)
          +
        • +
          +

          Method Details

          +
            +
          • +
            +

            load

            +
            public static StringIndex load(String indexFilename, + String nameListFilename, + Index.SpaceType spaceType, + int numDimensions, + Index.StorageDataType storageDataType)
            Load a previously constructed index from the provided file location. It is important that the dimensions, space type, and storage data type provided are the same that the index was constructed with.
            -
            -
            Parameters:
            +
            +
            Parameters:
            indexFilename - Filename of the underlying HNSW index
            nameListFilename - Filename of the JSON encoded names list
            spaceType -
            numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
            storageDataType -
            -
            Returns:
            +
            Returns:
            reference to the loaded StringIndex
            -
            See Also:
            -
            Index.SpaceType, -Index.StorageDataType
            +
            See Also:
            +
            + +
            +
          • -
          - - - -
            -
          • -

            load

            -
            public static StringIndex load​(InputStream indexInputStream,
            -                               InputStream nameListInputStream,
            -                               Index.SpaceType spaceType,
            -                               int numDimensions,
            -                               Index.StorageDataType storageDataType)
            +
          • +
            +

            load

            +
            public static StringIndex load(InputStream indexInputStream, + InputStream nameListInputStream, + Index.SpaceType spaceType, + int numDimensions, + Index.StorageDataType storageDataType)
            Load a previously constructed index from the provided input streams. It is important that the dimensions, space type, and storage data type provided are the same that the index was constructed with.
            -
            -
            Parameters:
            +
            +
            Parameters:
            indexInputStream - input stream pointing to the underlying HNSW index
            nameListInputStream - input stream pointing to the JSON encoded names list
            spaceType -
            numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
            storageDataType -
            -
            Returns:
            +
            Returns:
            +
            reference to the loaded StringIndex
            +
            See Also:
            +
            + +
            +
            +
            +
          • +
          • +
            +

            load

            +
            public static StringIndex load(String indexFilename, + String nameListFilename)
            +
            Load a previously constructed index from the provided file location. The space type, dimensions, and storage data type are read from the file metadata.
            +
            +
            Parameters:
            +
            indexFilename - Filename of the underlying HNSW index
            +
            nameListFilename - Filename of the JSON encoded names list
            +
            Returns:
            reference to the loaded StringIndex
            -
            See Also:
            -
            Index.SpaceType, -Index.StorageDataType
            +
          • -
          - - - -
            -
          • -

            saveIndex

            -
            public void saveIndex​(String outputDirectory)
            -               throws IOException
            +
          • +
            +

            load

            +
            public static StringIndex load(InputStream indexInputStream, + InputStream nameListInputStream)
            +
            Load a previously constructed index from the provided input stream. The space type, dimensions, and storage data type are read from the file metadata.
            +
            +
            Parameters:
            +
            indexInputStream - input stream pointing to the underlying HNSW index
            +
            nameListInputStream - input stream pointing to the JSON encoded names list
            +
            Returns:
            +
            reference to the loaded StringIndex
            +
            +
            +
          • +
          • +
            +

            saveIndex

            +
            public void saveIndex(String outputDirectory) + throws IOException
            Save the underlying index and JSON encoded name list to the provided output directory
            -
            -
            Parameters:
            +
            +
            Parameters:
            outputDirectory - directory to output files to
            -
            Throws:
            -
            IOException - when there is an error writing to JSON or saving to disk
            +
            Throws:
            +
            IOException - when there is an error writing to JSON or saving to disk
            +
          • -
          - - - -
            -
          • -

            saveIndex

            -
            public void saveIndex​(OutputStream indexOutputStream,
            -                      OutputStream namesListOutputStream)
            -               throws IOException
            +
          • +
            +

            saveIndex

            +
            public void saveIndex(String outputDirectory, + String indexFilename, + String nameListFilename) + throws IOException
            +
            +
            Throws:
            +
            IOException
            +
            +
            +
          • +
          • +
            +

            saveIndex

            +
            public void saveIndex(OutputStream indexOutputStream, + OutputStream namesListOutputStream) + throws IOException
            Save the underlying HNSW index and JSON encoded names list to the provided output streams
            -
            -
            Parameters:
            +
            +
            Parameters:
            indexOutputStream - output stream pointing to the location to save the HNSW index
            namesListOutputStream - output stream pointing to the location to save the JSON names list
            -
            Throws:
            -
            IOException - when there is an error writing to JSON or the output streams
            +
            Throws:
            +
            IOException - when there is an error writing to JSON or the output streams
            +
          • -
          - - - -
            -
          • -

            addItem

            -
            public void addItem​(String name,
            -                    float[] vector)
            +
          • +
            +

            addItem

            +
            public void addItem(String name, + float[] vector)
            +
          • -
          - - - -
            -
          • -

            addItem

            -
            public void addItem​(String name,
            -                    List<Float> vector)
            +
          • +
            +

            addItem

            +
            public void addItem(String name, + List<Float> vector)
            +
          • -
          - - - - - - - -
            -
          • -

            query

            -
            public StringIndex.QueryResults query​(float[] queryVector,
            -                                      int numNeighbors,
            -                                      int ef)
            +
          • +
            +

            query

            +
            public StringIndex.QueryResults query(float[] queryVector, + int numNeighbors, + int ef)
            Find the nearest neighbors of the provided embedding.
            -
            -
            Parameters:
            +
            +
            Parameters:
            queryVector - The vector to center the search around.
            numNeighbors - The number of neighbors to return. The number of results returned may be smaller than this value if the index does not contain enough items.
            @@ -516,100 +448,39 @@

            query

            Increasing this value can improve recall (up to a point) at the cost of increased search latency. The minimum value of this parameter is the requested number of neighbors, and the maximum value is the number of items in the index. -
            Returns:
            +
            Returns:
            a QueryResults object, containing the names of the neighbors and each neighbor's distance from the query vector, sorted in ascending order of distance
            +
          • -
          - - - - +
    -
- - + + - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html index 72046760..3126af38 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html @@ -1,226 +1,114 @@ - - + Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

Uses of Class
com.spotify.voyager.jni.Index.QueryResults

+

Uses of Class
com.spotify.voyager.jni.Index.QueryResults

-
-
+
- - -
+ - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html index 8e7197af..6c8a267d 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html @@ -1,315 +1,186 @@ - - -Uses of Class com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.1 API) + +Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

Uses of Class
com.spotify.voyager.jni.Index.SpaceType

+

Uses of Enum
com.spotify.voyager.jni.Index.SpaceType

-
-
+
- - -
+ - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html index c25de0cc..f7359deb 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html @@ -1,293 +1,168 @@ - - -Uses of Class com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.1 API) + +Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

Uses of Class
com.spotify.voyager.jni.Index.StorageDataType

+

Uses of Enum
com.spotify.voyager.jni.Index.StorageDataType

-
-
+
- - -
+ - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.html b/docs/java/com/spotify/voyager/jni/class-use/Index.html index 88b0a6a5..a7f682a6 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.html @@ -1,228 +1,116 @@ - - + Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

Uses of Class
com.spotify.voyager.jni.Index

+

Uses of Class
com.spotify.voyager.jni.Index

-
-
+
- - -
+ - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html index 630670df..db8c7d69 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html @@ -1,199 +1,93 @@ - - + Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

Uses of Class
com.spotify.voyager.jni.StringIndex.QueryResults

+

Uses of Class
com.spotify.voyager.jni.StringIndex.QueryResults

-
-
+
- - -
+ - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html index 2e38b5f6..c33b79c9 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html @@ -1,212 +1,116 @@ - - + Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

Uses of Class
com.spotify.voyager.jni.StringIndex

+

Uses of Class
com.spotify.voyager.jni.StringIndex

-
-
+ +
StringIndex.load(String indexFilename, + String nameListFilename, + Index.SpaceType spaceType, + int numDimensions, + Index.StorageDataType storageDataType)
+
+
Load a previously constructed index from the provided file location.
+
+
- - -
+ - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/package-summary.html b/docs/java/com/spotify/voyager/jni/package-summary.html index e8128c3a..26d67965 100644 --- a/docs/java/com/spotify/voyager/jni/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/package-summary.html @@ -1,217 +1,136 @@ - - + com.spotify.voyager.jni (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

Package com.spotify.voyager.jni

+

Package com.spotify.voyager.jni

-
-
- - +
+
package com.spotify.voyager.jni
+
Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
-
    -
  • - - - - - - - - - - - - - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    Index +
    +
      +
    • + +
    • +
    • +
      +
      +
      +
      +
      Class
      +
      Description
      + +
      A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
      -
    Index.QueryResults + + +
    A container for query results, returned by Index.
    -
    StringIndex + + +
    +
    The space, also known as distance metric, to use when searching.
    +
    + +
    +
    The datatype used to use when storing vectors on disk.
    +
    + +
    Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
    -
    StringIndex.QueryResults + + +
    A wrapper class for nearest neighbor query results.
    -
    -
  • -
  • - - - - - - - - - - - - - - - - -
    Enum Summary 
    EnumDescription
    Index.SpaceType -
    The space, also known as distance metric, to use when searching.
    -
    Index.StorageDataType -
    The datatype used to use when storing vectors on disk.
    -
    +
+
+
+ - + - - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/package-tree.html b/docs/java/com/spotify/voyager/jni/package-tree.html index 4c24ff4c..145045c2 100644 --- a/docs/java/com/spotify/voyager/jni/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/package-tree.html @@ -1,182 +1,94 @@ - - + com.spotify.voyager.jni Class Hierarchy (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +

Hierarchy For Package com.spotify.voyager.jni

-Package Hierarchies: +Package Hierarchies:
-
-
+

Class Hierarchy

-
+

Enum Hierarchy

-
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/package-use.html b/docs/java/com/spotify/voyager/jni/package-use.html index 58fbd698..764458dd 100644 --- a/docs/java/com/spotify/voyager/jni/package-use.html +++ b/docs/java/com/spotify/voyager/jni/package-use.html @@ -1,220 +1,110 @@ - - + Uses of Package com.spotify.voyager.jni (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +

Uses of Package
com.spotify.voyager.jni

-
-
+
+ -
+
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html index e449c2bb..32d74744 100644 --- a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html @@ -1,307 +1,163 @@ - - + JniLibExtractor (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ - +
+
- -

Class JniLibExtractor

+ +

Class JniLibExtractor

-
- -
-
    -
  • -
    -
    public class JniLibExtractor
    -extends Object
    -
  • -
+
java.lang.Object +
com.spotify.voyager.jni.utils.JniLibExtractor
-
-
-
-
    -
  • + +
    +
      -
      -
        -
      • - - -

        Constructor Detail

        - - - -
          -
        • -

          JniLibExtractor

          -
          public JniLibExtractor()
          -
        • -
        +
      • +
        +

        Constructor Details

        +
          +
        • +
          +

          JniLibExtractor

          +
          public JniLibExtractor()
          +
        - -
        -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            extractBinaries

            -
            public static String extractBinaries​(String libname)
          • -
          + +
        • +
          +

          Method Details

          +
            +
          • +
            +

            extractBinaries

            +
            public static String extractBinaries(String libname)
            +
        -
-
-
+ +
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html index 1a22535d..8ef67736 100644 --- a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html @@ -1,330 +1,181 @@ - - + TinyJson (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ - +
+
- -

Class TinyJson

+ +

Class TinyJson

-
- -
-
    -
  • +
    java.lang.Object +
    com.spotify.voyager.jni.utils.TinyJson
    +
    +

    -
    public class TinyJson
    -extends Object
    +
    public class TinyJson +extends Object
    A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
    -
  • -
-
-
-
-
-
-
-
+ +
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html index fd5007f9..9360855b 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html @@ -1,149 +1,62 @@ - - + Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

Uses of Class
com.spotify.voyager.jni.utils.JniLibExtractor

+

Uses of Class
com.spotify.voyager.jni.utils.JniLibExtractor

-
No usage of com.spotify.voyager.jni.utils.JniLibExtractor
-
+No usage of com.spotify.voyager.jni.utils.JniLibExtractor
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html index 6edcce54..50631593 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html @@ -1,149 +1,62 @@ - - + Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-

Uses of Class
com.spotify.voyager.jni.utils.TinyJson

+

Uses of Class
com.spotify.voyager.jni.utils.TinyJson

-
No usage of com.spotify.voyager.jni.utils.TinyJson
-
+No usage of com.spotify.voyager.jni.utils.TinyJson
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/utils/package-summary.html b/docs/java/com/spotify/voyager/jni/utils/package-summary.html index 92898b71..05e6774c 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-summary.html @@ -1,174 +1,105 @@ - - + com.spotify.voyager.jni.utils (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+
+ +
+
-

Package com.spotify.voyager.jni.utils

+

Package com.spotify.voyager.jni.utils

+
+
+
package com.spotify.voyager.jni.utils
+
+
    +
  • + +
-
+
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/utils/package-tree.html b/docs/java/com/spotify/voyager/jni/utils/package-tree.html index 0d9fda7b..1738bdf2 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-tree.html @@ -1,165 +1,77 @@ - - + com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +

Hierarchy For Package com.spotify.voyager.jni.utils

-Package Hierarchies: +Package Hierarchies:
-
-
+

Class Hierarchy

-
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/jni/utils/package-use.html b/docs/java/com/spotify/voyager/jni/utils/package-use.html index 69a5e178..11c484ee 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-use.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-use.html @@ -1,149 +1,62 @@ - - + Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +

Uses of Package
com.spotify.voyager.jni.utils

-
No usage of com.spotify.voyager.jni.utils
-
+No usage of com.spotify.voyager.jni.utils
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/package-summary.html b/docs/java/com/spotify/voyager/package-summary.html index 10346699..71e42e48 100644 --- a/docs/java/com/spotify/voyager/package-summary.html +++ b/docs/java/com/spotify/voyager/package-summary.html @@ -1,105 +1,67 @@ - - + com.spotify.voyager (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+
+ +
+
-

Package com.spotify.voyager

+

Package com.spotify.voyager

-
-
- - +
+
package com.spotify.voyager
+
Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector data. For most use cases, Index will be the primary interface to Voyager's functionality. @@ -125,54 +87,29 @@

Package com.spotify.voyager

index.saveIndex("my_tiny_index.voy");
+
+
    +
  • + +
  • +
+
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/package-tree.html b/docs/java/com/spotify/voyager/package-tree.html index 0d8113fa..bdc3e56e 100644 --- a/docs/java/com/spotify/voyager/package-tree.html +++ b/docs/java/com/spotify/voyager/package-tree.html @@ -1,152 +1,66 @@ - - + com.spotify.voyager Class Hierarchy (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +

Hierarchy For Package com.spotify.voyager

-Package Hierarchies: +Package Hierarchies:
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/com/spotify/voyager/package-use.html b/docs/java/com/spotify/voyager/package-use.html index e8bfbf3d..225d8f99 100644 --- a/docs/java/com/spotify/voyager/package-use.html +++ b/docs/java/com/spotify/voyager/package-use.html @@ -1,149 +1,62 @@ - - + Uses of Package com.spotify.voyager (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +

Uses of Package
com.spotify.voyager

-
No usage of com.spotify.voyager
-
+No usage of com.spotify.voyager
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/help-doc.html b/docs/java/help-doc.html index 167fbb01..af27be1f 100644 --- a/docs/java/help-doc.html +++ b/docs/java/help-doc.html @@ -1,115 +1,108 @@ - - + API Help (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+
+ +
+
-
-

How This API Document Is Organized

-
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+

JavaDoc Help

+ +
+
+

Navigation

+Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces +
-
-
    -
  • -
    -

    Overview

    +
    +
    +

    Kinds of Pages

    +The following sections describe the different kinds of pages in this collection. +
    +

    Overview

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    -
  • -
  • -
    -

    Package

    -

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:

    -
      +
      +

      Package

      +

      Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

      +
      • Interfaces
      • Classes
      • Enums
      • @@ -118,12 +111,10 @@

        Package

      • Annotation Types
      - -
    • -
      -

      Class or Interface

      -

      Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

      -
        +
        +

        Class or Interface

        +

        Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

        +
        • Class Inheritance Diagram
        • Direct Subclasses
        • All Known Subinterfaces
        • @@ -132,150 +123,64 @@

          Class or Interface

        • Class or Interface Description

        -
          +
          • Nested Class Summary
          • +
          • Enum Constant Summary
          • Field Summary
          • Property Summary
          • Constructor Summary
          • Method Summary
          • -
          -
          -
            -
          • Field Detail
          • -
          • Property Detail
          • -
          • Constructor Detail
          • -
          • Method Detail
          • -
          -

          Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

          -
        - -
      • -
        -

        Annotation Type

        -

        Each annotation type has its own separate page with the following sections:

        -
          -
        • Annotation Type Declaration
        • -
        • Annotation Type Description
        • Required Element Summary
        • Optional Element Summary
        • -
        • Element Detail
        -
        -
      • -
      • -
        -

        Enum

        -

        Each enum has its own separate page with the following sections:

        -
          -
        • Enum Declaration
        • -
        • Enum Description
        • -
        • Enum Constant Summary
        • -
        • Enum Constant Detail
        • +
          +
            +
          • Enum Constant Details
          • +
          • Field Details
          • +
          • Property Details
          • +
          • Constructor Details
          • +
          • Method Details
          • +
          • Element Details
          +

          Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

          +

          The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

        -
      • -
      • -
        -

        Use

        -

        Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

        +
        +

        Other Files

        +

        Packages and modules may contain pages with additional information related to the declarations nearby.

        -
      • -
      • -
        -

        Tree (Class Hierarchy)

        +
        +

        Use

        +

        Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

        +
        +
        +

        Tree (Class Hierarchy)

        There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

        -
          -
        • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
        • -
        • When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
        • +
            +
          • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
          • +
          • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
        -
      • -
      • -
        -

        Deprecated API

        -

        The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

        -
        -
      • -
      • -
        -

        Index

        -

        The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.

        -
        -
      • -
      • -
        -

        All Classes

        -

        The All Classes link shows all classes and interfaces except non-static nested types.

        -
        -
      • -
      • -
        -

        Serialized Form

        -

        Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

        +
        +

        All Packages

        +

        The All Packages page contains an alphabetic index of all packages contained in the documentation.

        -
      • -
      • -
        -

        Constant Field Values

        -

        The Constant Field Values page lists the static final fields and their values.

        +
        +

        All Classes and Interfaces

        +

        The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

        -
      • -
      • -
        -

        Search

        -

        You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".

        +
        +

        Index

        +

        The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

        -
      • -
      +

-This help file applies to API documentation generated by the standard doclet.
-
+This help file applies to API documentation generated by the standard doclet.
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/index-all.html b/docs/java/index-all.html index 97d48447..44b32893 100644 --- a/docs/java/index-all.html +++ b/docs/java/index-all.html @@ -1,136 +1,89 @@ - - + Index (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
-
A C D E F G I J L M Q R S T U V W 
All Classes All Packages - - -

A

-
-
addItem(float[]) - Method in class com.spotify.voyager.jni.Index
+
+

Index

+
+A C D E F G I J L M Q R S T U V W 
All Classes and Interfaces|All Packages +

A

+
+
addItem(float[]) - Method in class com.spotify.voyager.jni.Index
Add an item (a vector) to this Index.
-
addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
+
addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
Add an item (a vector) to this Index with the provided identifier.
-
addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
+
addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
 
-
addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
+
addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
 
-
addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
+
addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
Add multiple items (vectors) to this Index.
-
addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
+
addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
Add multiple items (vectors) to this Index.
-
addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
+
addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
 
- - - -

C

-
-
close() - Method in class com.spotify.voyager.jni.Index
+

C

+
+
close() - Method in class com.spotify.voyager.jni.Index
Close this Index and release any memory held by it.
-
close() - Method in class com.spotify.voyager.jni.StringIndex
+
close() - Method in class com.spotify.voyager.jni.StringIndex
 
com.spotify.voyager - package com.spotify.voyager
@@ -143,418 +96,341 @@

C

com.spotify.voyager.jni.utils - package com.spotify.voyager.jni.utils
 
-
Cosine - com.spotify.voyager.jni.Index.SpaceType
+
Cosine - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
Cosine distance; i.e.
- - - -

D

-
-
distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
+

D

+
+
distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
A list of distances from each item ID to the query vector for this query.
- - - -

E

-
-
E4M3 - com.spotify.voyager.jni.Index.StorageDataType
+

E

+
+
E4M3 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
A custom 8-bit floating point data type with range [-448, 448] and variable precision.
-
Euclidean - com.spotify.voyager.jni.Index.SpaceType
+
Euclidean - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
Euclidean distance, also known as L2 distance.
-
extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
+
extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
 
- - - -

F

-
-
finalize() - Method in class com.spotify.voyager.jni.Index
+

F

+
+
finalize() - Method in class com.spotify.voyager.jni.Index
 
-
Float32 - com.spotify.voyager.jni.Index.StorageDataType
+
Float32 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
A 32-bit floating point ("Float") data type.
-
Float8 - com.spotify.voyager.jni.Index.StorageDataType
+
Float8 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
An 8-bit floating point data type that expects all values to be on [-1, 1].
- - - -

G

-
-
getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
+

G

+
+
getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
 
-
getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
+
getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
Retrieve the list of distances between query vectors and item vectors for the results of this query.
-
getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
+
getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
 
-
getEf() - Method in class com.spotify.voyager.jni.Index
+
getEf() - Method in class com.spotify.voyager.jni.Index
Get the default EF ("query search depth") that will be uses when Index.query(float[], int) is called.
-
getEfConstruction() - Method in class com.spotify.voyager.jni.Index
+
getEfConstruction() - Method in class com.spotify.voyager.jni.Index
Get the EF Construction value used when adding new elements to this Index.
-
getIDs() - Method in class com.spotify.voyager.jni.Index
+
getIDs() - Method in class com.spotify.voyager.jni.Index
Get the list of identifiers currently stored by this index.
-
getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
+
getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
Retrieve the list of item IDs ("labels") returned by this query.
-
getM() - Method in class com.spotify.voyager.jni.Index
+
getM() - Method in class com.spotify.voyager.jni.Index
Get the M value used when adding new elements to this Index.
-
getMaxElements() - Method in class com.spotify.voyager.jni.Index
+
getMaxElements() - Method in class com.spotify.voyager.jni.Index
Get the maximum number of elements currently storable by this Index.
-
getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
+
getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
 
-
getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
+
getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
 
-
getNumDimensions() - Method in class com.spotify.voyager.jni.Index
+
getNumDimensions() - Method in class com.spotify.voyager.jni.Index
Get the number of dimensions used in this Index.
-
getNumElements() - Method in class com.spotify.voyager.jni.Index
+
getNumElements() - Method in class com.spotify.voyager.jni.Index
Get the number of elements currently in this Index.
-
getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
+
getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
 
-
getNumThreads() - Method in class com.spotify.voyager.jni.Index
+
getNumThreads() - Method in class com.spotify.voyager.jni.Index
Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
-
getSpace() - Method in class com.spotify.voyager.jni.Index
+
getSpace() - Method in class com.spotify.voyager.jni.Index
Get the Index.SpaceType that this Index uses to store and compare vectors.
-
getVector(long) - Method in class com.spotify.voyager.jni.Index
+
getVector(long) - Method in class com.spotify.voyager.jni.Index
Get the vector for the provided identifier.
-
getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
+
getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
Get the vectors for a provided array of identifiers.
- - - -

I

-
-
Index - Class in com.spotify.voyager.jni
+

I

+
+
Index - Class in com.spotify.voyager.jni
A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
-
Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
+
Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
-
Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
+
Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
-
Index.QueryResults - Class in com.spotify.voyager.jni
+
Index.QueryResults - Class in com.spotify.voyager.jni
A container for query results, returned by Index.
-
Index.SpaceType - Enum in com.spotify.voyager.jni
+
Index.SpaceType - Enum in com.spotify.voyager.jni
The space, also known as distance metric, to use when searching.
-
Index.StorageDataType - Enum in com.spotify.voyager.jni
+
Index.StorageDataType - Enum in com.spotify.voyager.jni
The datatype used to use when storing vectors on disk.
-
InnerProduct - com.spotify.voyager.jni.Index.SpaceType
+
InnerProduct - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
Inner (dot) product.
- - - -

J

-
-
JniLibExtractor - Class in com.spotify.voyager.jni.utils
+

J

+
+
JniLibExtractor - Class in com.spotify.voyager.jni.utils
 
-
JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
+
JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
 
- - - -

L

-
-
labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
+

L

+
+
labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
A list of item IDs ("labels").
-
load(InputStream) - Static method in class com.spotify.voyager.jni.Index
+
load(InputStream) - Static method in class com.spotify.voyager.jni.Index
Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
-
load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
+
load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
-
load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
+
load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
+
+
Load a previously constructed index from the provided input stream.
+
+
load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
Load a previously constructed index from the provided input streams.
-
load(String) - Static method in class com.spotify.voyager.jni.Index
+
load(String) - Static method in class com.spotify.voyager.jni.Index
Load a Voyager index file and create a new Index initialized with the data in that file.
-
load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
+
load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
Load a Voyager index file and create a new Index initialized with the data in that file.
-
load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
+
load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
+
+
Load a previously constructed index from the provided file location.
+
+
load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
Load a previously constructed index from the provided file location.
- - - -

M

-
-
markDeleted(long) - Method in class com.spotify.voyager.jni.Index
+

M

+
+
markDeleted(long) - Method in class com.spotify.voyager.jni.Index
Mark an element of the index as deleted.
- - - -

Q

-
-
query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
+

Q

+
+
query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
Query this Index for approximate nearest neighbors of multiple query vectors.
-
query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
+
query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
Query this Index for approximate nearest neighbors of multiple query vectors.
-
query(float[], int) - Method in class com.spotify.voyager.jni.Index
+
query(float[], int) - Method in class com.spotify.voyager.jni.Index
Query this Index for approximate nearest neighbors of a single query vector.
-
query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
+
query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
Find the nearest neighbors of the provided embedding.
-
query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
+
query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
Query this Index for approximate nearest neighbors of a single query vector.
-
QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
+
QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
-
QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
+
QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
 
- - - -

R

-
-
readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
+

R

+
+
readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
 
-
resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
+
resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
Change the maximum number of elements currently storable by this Index.
- - - -

S

-
-
saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
+

S

+
+
saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
Save this Index to the provided output stream.
-
saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
+
saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
Save the underlying HNSW index and JSON encoded names list to the provided output streams
-
saveIndex(String) - Method in class com.spotify.voyager.jni.Index
+
saveIndex(String) - Method in class com.spotify.voyager.jni.Index
Save this Index to a file at the provided filename.
-
saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
+
saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
Save the underlying index and JSON encoded name list to the provided output directory
-
setEf(long) - Method in class com.spotify.voyager.jni.Index
+
saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
+
 
+
setEf(long) - Method in class com.spotify.voyager.jni.Index
Set the default EF ("query search depth") to use when Index.query(float[], int) is called.
-
setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
+
setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
-
StringIndex - Class in com.spotify.voyager.jni
+
StringIndex - Class in com.spotify.voyager.jni
Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
-
StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
+
StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
Instantiate a new empty index with the specified space type and dimensionality
-
StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
+
StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
Instantiate an empty index with the specified index parameters
-
StringIndex.QueryResults - Class in com.spotify.voyager.jni
+
StringIndex.QueryResults - Class in com.spotify.voyager.jni
A wrapper class for nearest neighbor query results.
- - - -

T

-
-
TinyJson - Class in com.spotify.voyager.jni.utils
+

T

+
+
TinyJson - Class in com.spotify.voyager.jni.utils
A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
-
TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
+
TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
 
-
toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
+
toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
 
-
toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
+
toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
 
- - - -

U

-
-
unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
+

U

+
+
unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
Un-mark an element of the index as deleted, making it available again.
- - - -

V

-
-
valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
+

V

+
+
valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
Returns the enum constant of this type with the specified name.
-
valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
+
valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
Returns the enum constant of this type with the specified name.
-
values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
+
values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
Returns an array containing the constants of this enum type, in the order they are declared.
-
values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
+
values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
Returns an array containing the constants of this enum type, in the order they are declared.
- - - -

W

-
-
writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
+

W

+
+
writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
 
-A C D E F G I J L M Q R S T U V W 
All Classes All Packages
-
+A C D E F G I J L M Q R S T U V W 
All Classes and Interfaces|All Packages
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/index.html b/docs/java/index.html index 4ea516bf..82acbf19 100644 --- a/docs/java/index.html +++ b/docs/java/index.html @@ -1,176 +1,80 @@ - - + Overview (voyager 2.0.1 API) + + + - + + - - - - - + + - - -
+
+ +
+

voyager 2.0.1 API

-
-
- - - - - - - - - - - - - - - - - - - - -
Packages 
PackageDescription
com.spotify.voyager +
+
Packages
+
+
Package
+
Description
+ +
Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector data.
-
com.spotify.voyager.jni + + +
Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
-
com.spotify.voyager.jni.utils 
+
+ +
 
+
- - - -

Copyright © 2023. All rights reserved.

- diff --git a/docs/java/member-search-index.js b/docs/java/member-search-index.js index f4b2518e..2499c325 100644 --- a/docs/java/member-search-index.js +++ b/docs/java/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[], long)","url":"addItem(float[],long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, float[])","url":"addItem(java.lang.String,float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, List)","url":"addItem(java.lang.String,java.util.List)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], int)","url":"addItems(float[][],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], long[], int)","url":"addItems(float[][],long[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItems(Map>)","url":"addItems(java.util.Map)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"close()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"close()"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Cosine"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"distances"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"E4M3"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Euclidean"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"extractBinaries(String)","url":"extractBinaries(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"finalize()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float32"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float8"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistance(int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEf()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEfConstruction()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getIDs()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getLabels()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getM()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getName(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNames()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumDimensions()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNumResults()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumThreads()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getSpace()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVector(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVectors(long[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"InnerProduct"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"JniLibExtractor()","url":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"labels"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.io.InputStream,java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream)","url":"load(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.lang.String,java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String)","url":"load(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"markDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[], int, int)","url":"query(float[],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int, long)","url":"query(float[],int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int)","url":"query(float[],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int, long)","url":"query(float[][],int,int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int)","url":"query(float[][],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"QueryResults(long[], float[])","url":"%3Cinit%3E(long[],float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"QueryResults(String[], float[])","url":"%3Cinit%3E(java.lang.String[],float[])"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"readStringList(InputStream)","url":"readStringList(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(OutputStream, OutputStream)","url":"saveIndex(java.io.OutputStream,java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(OutputStream)","url":"saveIndex(java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(String)","url":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String)","url":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setEf(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setNumThreads(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"TinyJson()","url":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"unmarkDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"values()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"values()"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"writeStringList(Iterable, OutputStream)","url":"writeStringList(java.lang.Iterable,java.io.OutputStream)"}] \ No newline at end of file +memberSearchIndex = [{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[], long)","u":"addItem(float[],long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, float[])","u":"addItem(java.lang.String,float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, List)","u":"addItem(java.lang.String,java.util.List)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], int)","u":"addItems(float[][],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], long[], int)","u":"addItems(float[][],long[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItems(Map>)","u":"addItems(java.util.Map)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"close()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"close()"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Cosine"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"distances"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"E4M3"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Euclidean"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"extractBinaries(String)","u":"extractBinaries(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"finalize()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float32"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float8"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistance(int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEf()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEfConstruction()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getIDs()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getLabels()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getM()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getName(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNames()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumDimensions()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNumResults()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumThreads()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getSpace()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVector(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVectors(long[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"InnerProduct"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"JniLibExtractor()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"labels"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream)","u":"load(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream)","u":"load(java.io.InputStream,java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String)","u":"load(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String)","u":"load(java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"markDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int)","u":"query(float[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[], int, int)","u":"query(float[],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int, long)","u":"query(float[],int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int)","u":"query(float[][],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int, long)","u":"query(float[][],int,int,long)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"QueryResults(long[], float[])","u":"%3Cinit%3E(long[],float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"QueryResults(String[], float[])","u":"%3Cinit%3E(java.lang.String[],float[])"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"readStringList(InputStream)","u":"readStringList(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(OutputStream)","u":"saveIndex(java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(OutputStream, OutputStream)","u":"saveIndex(java.io.OutputStream,java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String, String, String)","u":"saveIndex(java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setEf(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setNumThreads(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"TinyJson()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"unmarkDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"values()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"values()"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"writeStringList(Iterable, OutputStream)","u":"writeStringList(java.lang.Iterable,java.io.OutputStream)"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/java/overview-summary.html b/docs/java/overview-summary.html index 4441a5fe..c3b883c7 100644 --- a/docs/java/overview-summary.html +++ b/docs/java/overview-summary.html @@ -1,18 +1,21 @@ - - + voyager 2.0.1 API + + + + + + - - - +
-

All Packages

-
Package Summary
-
-
Package
-
Description
- -
+
+
-
- -
+ +

Copyright © 2023. All rights reserved.

+ diff --git a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html index 362f30fd..9ca2a741 100644 --- a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html @@ -1,261 +1,433 @@ + - -Index.QueryResults (voyager 2.0.1 API) - + +Index.QueryResults (voyager 2.0.2 API) - - - - + - - + + + + + - - -
-
+ + +
-
-
+
- -

Class Index.QueryResults

+ +

Class Index.QueryResults

-
java.lang.Object -
com.spotify.voyager.jni.Index.QueryResults
-
-
-
+
+ +
+
    +
  • +
    Enclosing class:
    Index

    -
    public static class Index.QueryResults -extends Object
    +
    public static class Index.QueryResults
    +extends Object
    A container for query results, returned by Index. Note that this class is instantiated from C++, and as such, any changes to its location, visibility, or constructor will need to include corresponding C++ changes.
    -
-
-
    + +
+
+
+
    +
  • -
  • -
    -

    Field Summary

    -
    Fields
    -
    -
    Modifier and Type
    -
    Field
    -
    Description
    -
    final float[]
    - -
    +
    +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeFieldDescription
      float[]distances
      A list of distances from each item ID to the query vector for this query.
      - -
      final long[]
      - -
      +
      long[]labels
      A list of item IDs ("labels").
      - - - +
    • +
    +
    -
  • -
    -

    Constructor Summary

    -
    Constructors
    -
    -
    Constructor
    -
    Description
    -
    QueryResults(long[] labels, - float[] distances)
    -
    +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      QueryResults​(long[] labels, + float[] distances)
      Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
      - - - +
    • +
    +
    -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    float[]
    - -
    +
    +
    -
    -
      + +
    +
    +
    +
      +
    • -
    • -
      -

      Field Details

      -
        -
      • -
        -

        labels

        -
        public final long[] labels
        +
        +
          +
        • + + +

          Field Detail

          + + + +
            +
          • +

            labels

            +
            public final long[] labels
            A list of item IDs ("labels").
            -
      • -
      • -
        -

        distances

        -
        public final float[] distances
        +
      + + + +
        +
      • +

        distances

        +
        public final float[] distances
        A list of distances from each item ID to the query vector for this query.
        -
    -
  • +
+ -
  • -
    -

    Constructor Details

    -
      -
    • -
      -

      QueryResults

      -
      public QueryResults(long[] labels, - float[] distances)
      +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          QueryResults

          +
          public QueryResults​(long[] labels,
          +                    float[] distances)
          Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances. This method should probably not be used directly, as this class is primarily used as a return type from the query method on Index.
          -
          -
          Throws:
          -
          IllegalArgumentException - if the length of the labels and distances arrays vary
          +
          +
          Throws:
          +
          IllegalArgumentException - if the length of the labels and distances arrays vary
          -
    -
  • + + -
  • -
    -

    Method Details

    -
      -
    • -
      -

      toString

      -
      public String toString()
      -
      -
      Overrides:
      -
      toString in class Object
      +
      +
    • -
    • -
      -

      getLabels

      -
      public long[] getLabels()
      +
    + + + +
      +
    • +

      getLabels

      +
      public long[] getLabels()
      Retrieve the list of item IDs ("labels") returned by this query. This array is sorted by distance: the first item is the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the distances returned by getDistances().
      -
  • -
  • -
    -

    getDistances

    -
    public float[] getDistances()
    + + + + +
      +
    • +

      getDistances

      +
      public float[] getDistances()
      Retrieve the list of distances between query vectors and item vectors for the results of this query. This array is sorted by distance: the first distance corresponds with the item the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the labels returned by getLabels().
      -
  • - - + + +
    +
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html index fb147eb4..bbb69c76 100644 --- a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html @@ -1,244 +1,415 @@ + - -Index.SpaceType (voyager 2.0.1 API) - + +Index.SpaceType (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Enum Index.SpaceType

    -
    -
    java.lang.Object -
    java.lang.Enum<Index.SpaceType> -
    com.spotify.voyager.jni.Index.SpaceType
    -
    + +

    Enum Index.SpaceType

    -
    -
    +
    + +
    +
    -
    -
      + +
    +
    +
    + - + + -
  • -
    -

    Method Details

    -
      -
    • -
      -

      values

      -
      public static Index.SpaceType[] values()
      +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static Index.SpaceType[] values()
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
          Returns:
          +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (Index.SpaceType c : Index.SpaceType.values())
          +    System.out.println(c);
          +
  • +
    +
    Returns:
    an array containing the constants of this enum type, in the order they are declared
    - -
  • -
    -

    valueOf

    -
    public static Index.SpaceType valueOf(String name)
    + + + + +
      +
    • +

      valueOf

      +
      public static Index.SpaceType valueOf​(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      -
      -
      Parameters:
      +
      +
      Parameters:
      name - the name of the enum constant to be returned.
      -
      Returns:
      +
      Returns:
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      +
      Throws:
      +
      IllegalArgumentException - if this enum type has no constant with the specified name
      +
      NullPointerException - if the argument is null
      -
  • - - + + +
    +
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html index d5cecef8..65c35153 100644 --- a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html @@ -1,167 +1,261 @@ + - -Index.StorageDataType (voyager 2.0.1 API) - + +Index.StorageDataType (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Enum Index.StorageDataType

    -
    -
    java.lang.Object -
    java.lang.Enum<Index.StorageDataType> -
    com.spotify.voyager.jni.Index.StorageDataType
    -
    + +

    Enum Index.StorageDataType

    -
    -
    +
    + +
    +
    -
    -
      + +
    +
    +
    +
      +
    • -
    • -
      -

      Enum Constant Summary

      -
      Enum Constants
      -
      -
      Enum Constant
      -
      Description
      - -
      +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        E4M3
        A custom 8-bit floating point data type with range [-448, 448] and variable precision.
        - - -
        +
        Float32
        A 32-bit floating point ("Float") data type.
        - - -
        +
        Float8
        An 8-bit floating point data type that expects all values to be on [-1, 1].
        - - - +
      • +
      +
      -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - - -
      +
      +
      -
      -
        + +
      +
      +
      +
        +
      • -
      • -
        -

        Enum Constant Details

        -
          -
        • -
          -

          Float8

          -
          public static final Index.StorageDataType Float8
          +
          +
            +
          • + + +

            Enum Constant Detail

            + + + +
              +
            • +

              Float8

              +
              public static final Index.StorageDataType Float8
              An 8-bit floating point data type that expects all values to be on [-1, 1]. This data type provides adequate precision for many use cases, but cuts down memory usage bu a factor of 4x compared to Float32, while also increasing query speed. @@ -169,78 +263,155 @@

              Float8

              Float8 provides 8 bits of resolution; i.e.: the distance between successive values is 1/127, or 0.00787. For a variable-precision (i.e.: _actually_ floating point) representation, use E4M3.

              -
        • -
        • -
          -

          Float32

          -
          public static final Index.StorageDataType Float32
          +
        + + + +
          +
        • +

          Float32

          +
          public static final Index.StorageDataType Float32
          A 32-bit floating point ("Float") data type. The default.
          -
      • -
      • -
        -

        E4M3

        -
        public static final Index.StorageDataType E4M3
        +
      + + + +
        +
      • +

        E4M3

        +
        public static final Index.StorageDataType E4M3
        A custom 8-bit floating point data type with range [-448, 448] and variable precision. Use this data type to get 4x less memory usage compared to Float32, but when the values of vectors to be stored in an Index may exceed [-1, 1].

        E4M3 uses a 4-bit exponent and 3-bit mantissa field, and was inspired by the paper "FP8 Formats for Deep Learning" by Micikevicus et al (arXiv:2209.05433).

        -
    - + + -
  • -
    -

    Method Details

    -
      -
    • -
      -

      values

      -
      public static Index.StorageDataType[] values()
      +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static Index.StorageDataType[] values()
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
          Returns:
          +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (Index.StorageDataType c : Index.StorageDataType.values())
          +    System.out.println(c);
          +
  • +
    +
    Returns:
    an array containing the constants of this enum type, in the order they are declared
    - -
  • -
    -

    valueOf

    -
    public static Index.StorageDataType valueOf(String name)
    + + + + +
      +
    • +

      valueOf

      +
      public static Index.StorageDataType valueOf​(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      -
      -
      Parameters:
      +
      +
      Parameters:
      name - the name of the enum constant to be returned.
      -
      Returns:
      +
      Returns:
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      +
      Throws:
      +
      IllegalArgumentException - if this enum type has no constant with the specified name
      +
      NullPointerException - if the argument is null
      -
  • - - + + +
    +
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/Index.html b/docs/java/com/spotify/voyager/jni/Index.html index 68af6bbc..b6ffcd38 100644 --- a/docs/java/com/spotify/voyager/jni/Index.html +++ b/docs/java/com/spotify/voyager/jni/Index.html @@ -1,89 +1,144 @@ + - -Index (voyager 2.0.1 API) - + +Index (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Class Index

    -
    -
    java.lang.Object -
    com.spotify.voyager.jni.Index
    + +

    Class Index

    -
    -
    +
    + +
    +
      +
    • +
      All Implemented Interfaces:
      -
      Closeable, AutoCloseable
      +
      Closeable, AutoCloseable

      -
      public class Index -extends Object -implements Closeable
      +
      public class Index
      +extends Object
      +implements Closeable
      A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors. @@ -106,302 +161,407 @@

      Class Index

      // Serialize this index to use it again later: index.saveIndex("my_tiny_index.voy");
      -
    -
    -
      + +
    +
    +
    +
      +
    • -
    • -
      -

      Nested Class Summary

      -
      Nested Classes
      -
      -
      Modifier and Type
      -
      Class
      -
      Description
      -
      static class 
      - -
      +
      +
        +
      • + + +

        Nested Class Summary

        + + + + + + + + + + + + + + + + + + + + + + +
        Nested Classes 
        Modifier and TypeClassDescription
        static class Index.QueryResults
        A container for query results, returned by Index.
        - -
        static enum 
        - -
        +
        static class Index.SpaceType
        The space, also known as distance metric, to use when searching.
        - -
        static enum 
        - -
        +
        static class Index.StorageDataType
        The datatype used to use when storing vectors on disk.
        - - - +
      • +
      +
      -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      -
      Index(Index.SpaceType space, - int numDimensions)
      -
      +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        Index​(Index.SpaceType space, + int numDimensions)
        Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
        - -
        Index(Index.SpaceType space, - int numDimensions, - long indexM, - long efConstruction, - long randomSeed, - long maxElements, - Index.StorageDataType storageDataType)
        -
        +
        Index​(Index.SpaceType space, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
        Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
        - - - +
      • +
      +
      -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      void
      -
      addItem(float[] vector)
      -
      +
      +
      -
      -
        + +
      +
      +
      +
        +
      • -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Index

          -
          public Index(Index.SpaceType space, - int numDimensions)
          +
          +
            +
          • + + +

            Constructor Detail

            + + + +
              +
            • +

              Index

              +
              public Index​(Index.SpaceType space,
              +             int numDimensions)
              Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
              -
              -
              Parameters:
              +
              +
              Parameters:
              space - the space type to use when storing and comparing vectors.
              numDimensions - the number of dimensions per vector.
              -
        • -
        • -
          -

          Index

          -
          public Index(Index.SpaceType space, - int numDimensions, - long indexM, - long efConstruction, - long randomSeed, - long maxElements, - Index.StorageDataType storageDataType)
          +
        + + + +
          +
        • +

          Index

          +
          public Index​(Index.SpaceType space,
          +             int numDimensions,
          +             long indexM,
          +             long efConstruction,
          +             long randomSeed,
          +             long maxElements,
          +             Index.StorageDataType storageDataType)
          Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
          -
          -
          Parameters:
          +
          +
          Parameters:
          space - The space type to use when storing and comparing vectors.
          numDimensions - The number of dimensions per vector.
          indexM - Controls the degree of interconnectedness between vectors. Higher values of @@ -416,293 +576,349 @@

          Index

          storageDataType - The datatype to use under-the-hood when storing vectors. Different data type options trade off precision for memory usage and query speed; see Index.StorageDataType for available data types.
          -
      -
    • +
    + -
  • -
    -

    Method Details

    -
      -
    • -
      -

      load

      -
      public static Index load(String filename, - Index.SpaceType space, - int numDimensions, - Index.StorageDataType storageDataType)
      +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          load

          +
          public static Index load​(String filename,
          +                         Index.SpaceType space,
          +                         int numDimensions,
          +                         Index.StorageDataType storageDataType)
          Load a Voyager index file and create a new Index initialized with the data in that file.
          -
          -
          Parameters:
          +
          +
          Parameters:
          filename - A filename to load.
          space - The Index.SpaceType to use when loading the index.
          numDimensions - The number of dimensions per vector.
          storageDataType - The Index.StorageDataType used by the index being loaded.
          -
          Returns:
          +
          Returns:
          An Index whose contents have been initialized with the data provided by the file.
          -
          Throws:
          -
          RuntimeException - if the index cannot be loaded from the file, or the file contains +
          Throws:
          +
          RuntimeException - if the index cannot be loaded from the file, or the file contains invalid data.
          -
    • -
    • -
      -

      load

      -
      public static Index load(String filename)
      +
    + + + +
      +
    • +

      load

      +
      public static Index load​(String filename)
      Load a Voyager index file and create a new Index initialized with the data in that file.
      -
      -
      Parameters:
      +
      +
      Parameters:
      filename - A filename to load.
      -
      Returns:
      +
      Returns:
      An Index whose contents have been initialized with the data provided by the file.
      -
      Throws:
      -
      RuntimeException - if the index cannot be loaded from the file, the file contains invalid +
      Throws:
      +
      RuntimeException - if the index cannot be loaded from the file, the file contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
      -
  • -
  • -
    -

    load

    -
    public static Index load(InputStream inputStream, - Index.SpaceType space, - int numDimensions, - Index.StorageDataType storageDataType)
    + + + + +
      +
    • +

      load

      +
      public static Index load​(InputStream inputStream,
      +                         Index.SpaceType space,
      +                         int numDimensions,
      +                         Index.StorageDataType storageDataType)
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
      -
      -
      Parameters:
      -
      inputStream - A InputStream that will provide the contents of a Voyager +
      +
      Parameters:
      +
      inputStream - A InputStream that will provide the contents of a Voyager index.
      space - The Index.SpaceType to use when loading the index.
      numDimensions - The number of dimensions per vector.
      storageDataType - The Index.StorageDataType used by the index being loaded.
      -
      Returns:
      +
      Returns:
      An Index whose contents have been initialized with the data provided by the input stream.
      -
      Throws:
      -
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
      Throws:
      +
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data.
      -
  • -
  • -
    -

    load

    -
    public static Index load(InputStream inputStream)
    + + + + +
      +
    • +

      load

      +
      public static Index load​(InputStream inputStream)
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
      -
      -
      Parameters:
      -
      inputStream - A InputStream that will provide the contents of a Voyager +
      +
      Parameters:
      +
      inputStream - A InputStream that will provide the contents of a Voyager index.
      -
      Returns:
      +
      Returns:
      An Index whose contents have been initialized with the data provided by the input stream.
      -
      Throws:
      -
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
      Throws:
      +
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
      -
  • -
  • -
    -

    close

    -
    public void close() - throws IOException
    + + + + +
      +
    • +

      close

      +
      public void close()
      +           throws IOException
      Close this Index and release any memory held by it. Note that this method must be called to release the memory backing this Index; failing to do so may cause a memory leak.

      Any calls to methods after close() is called will fail, as the underlying native C++ object will have been deallocated.

      -
      -
      Specified by:
      -
      close in interface AutoCloseable
      -
      Specified by:
      -
      close in interface Closeable
      -
      Throws:
      -
      IOException - if the C++ destructor fails.
      +
      +
      Specified by:
      +
      close in interface AutoCloseable
      +
      Specified by:
      +
      close in interface Closeable
      +
      Throws:
      +
      IOException - if the C++ destructor fails.
      -
  • -
  • -
    -

    finalize

    -
    protected void finalize() - throws Throwable
    -
    -
    Overrides:
    -
    finalize in class Object
    -
    Throws:
    -
    Throwable
    + + + + +
  • -
  • -
    -

    setEf

    -
    public void setEf(long ef)
    + + + + +
      +
    • +

      setEf

      +
      public void setEf​(long ef)
      Set the default EF ("query search depth") to use when query(float[], int) is called.
      -
      -
      Parameters:
      +
      +
      Parameters:
      ef - The new default EF value to use. This value can be overridden on a per-query basis at query time.
      -
  • -
  • -
    -

    getEf

    -
    public int getEf()
    + + + + +
      +
    • +

      getEf

      +
      public int getEf()
      Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
      -
      -
      Returns:
      +
      +
      Returns:
      The current default EF value, used by the Index if no value is provided at query time.
      -
  • -
  • -
    -

    getSpace

    -
    public Index.SpaceType getSpace()
    + + + + +
  • -
  • -
    -

    getNumDimensions

    -
    public int getNumDimensions()
    + + + + +
      +
    • +

      getNumDimensions

      +
      public int getNumDimensions()
      Get the number of dimensions used in this Index.
      -
      -
      Returns:
      +
      +
      Returns:
      The number of dimensions used by this Index, and which all vectors within this Index must have.
      -
  • -
  • -
    -

    setNumThreads

    -
    public void setNumThreads(int numThreads)
    + + + + +
      +
    • +

      setNumThreads

      +
      public void setNumThreads​(int numThreads)
      Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
      -
      -
      Parameters:
      +
      +
      Parameters:
      numThreads - The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call. Note that this affects the number of threads started for each method call - Voyager keeps no long-lived thread pool. For maximum efficiency, pass as much data as possible to each bulk-add or bulk-query method call to minimize overhead.
      -
  • -
  • -
    -

    getNumThreads

    -
    public int getNumThreads()
    + + + + +
      +
    • +

      getNumThreads

      +
      public int getNumThreads()
      Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
      -
      -
      Returns:
      +
      +
      Returns:
      The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call.
      -
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(String pathToIndex)
    + + + + +
      +
    • +

      saveIndex

      +
      public void saveIndex​(String pathToIndex)
      Save this Index to a file at the provided filename. This file can be reloaded by using Index.load(...).
      -
      -
      Parameters:
      +
      +
      Parameters:
      pathToIndex - The output filename to write to.
      -
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(OutputStream outputStream)
    + + + + +
      +
    • +

      saveIndex

      +
      public void saveIndex​(OutputStream outputStream)
      Save this Index to the provided output stream. The stream will not be closed automatically - be sure to close the stream saveIndex has completed. The data written to the stream can be reloaded by using Index.load(...).
      -
      -
      Parameters:
      +
      +
      Parameters:
      outputStream - The output stream to write to. This stream will not be closed automatically.
      -
  • -
  • -
    -

    addItem

    -
    public void addItem(float[] vector)
    + + + + +
      +
    • +

      addItem

      +
      public void addItem​(float[] vector)
      Add an item (a vector) to this Index. The item will automatically be given an identifier equal to the return value of getNumElements().
      -
      -
      Parameters:
      +
      +
      Parameters:
      vector - The vector to add to the index.
      -
      Throws:
      -
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
      Throws:
      +
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      -
  • -
  • -
    -

    addItem

    -
    public void addItem(float[] vector, - long id)
    + + + + +
      +
    • +

      addItem

      +
      public void addItem​(float[] vector,
      +                    long id)
      Add an item (a vector) to this Index with the provided identifier.
      -
      -
      Parameters:
      +
      +
      Parameters:
      vector - The vector to add to the index.
      id - The 64-bit integer denoting the identifier of this vector.
      -
      Throws:
      -
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
      Throws:
      +
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      -
  • -
  • -
    -

    addItems

    -
    public void addItems(float[][] vectors, - int numThreads)
    + + + + +
      +
    • +

      addItems

      +
      public void addItems​(float[][] vectors,
      +                     int numThreads)
      Add multiple items (vectors) to this Index.
      -
      -
      Parameters:
      +
      +
      Parameters:
      vectors - The vectors to add to the index.
      numThreads - The number of threads to use when adding the provided vectors. If -1 (the default), the number of CPUs available on the current machine will be used.
      -
      Throws:
      -
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      +
      Throws:
      +
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      -
  • -
  • -
    -

    addItems

    -
    public void addItems(float[][] vectors, - long[] ids, - int numThreads)
    + + + + +
      +
    • +

      addItems

      +
      public void addItems​(float[][] vectors,
      +                     long[] ids,
      +                     int numThreads)
      Add multiple items (vectors) to this Index.
      -
      -
      Parameters:
      +
      +
      Parameters:
      vectors - The vectors to add to the index.
      ids - The 64-bit identifiers that correspond with each of the provided vectors.
      numThreads - The number of threads to use when adding the provided vectors. If -1 (the @@ -710,128 +926,149 @@

      addItems

      causes a temporary C++ thread pool to be used. Instead of calling addItems(float[][],int) in a tight loop, consider passing more data to each addItems(float[][],int) call instead to reduce overhead.
      -
      Throws:
      -
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      -
      RuntimeException - If the list of IDs does not have the same length as the list of +
      Throws:
      +
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      +
      RuntimeException - If the list of IDs does not have the same length as the list of provided vectors.
      -
  • -
  • -
    -

    getVector

    -
    public float[] getVector(long id)
    + + + + +
      +
    • +

      getVector

      +
      public float[] getVector​(long id)
      Get the vector for the provided identifier.
      -
      -
      Parameters:
      +
      +
      Parameters:
      id - The identifier whose vector will be fetched.
      -
      Returns:
      +
      Returns:
      A float array representing the values of the vector.
      -
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      Throws:
      +
      RuntimeException - If the provided identifier is not present in the Index.
      -
  • -
  • -
    -

    getVectors

    -
    public float[][] getVectors(long[] ids)
    + + + + +
      +
    • +

      getVectors

      +
      public float[][] getVectors​(long[] ids)
      Get the vectors for a provided array of identifiers.
      -
      -
      Parameters:
      +
      +
      Parameters:
      ids - The identifiers whose vector will be fetched.
      -
      Returns:
      +
      Returns:
      A nested float array representing the values of the vectors corresponding with each ID.
      -
      Throws:
      -
      RuntimeException - If any of the provided identifiers are not present in the Index.
      +
      Throws:
      +
      RuntimeException - If any of the provided identifiers are not present in the Index.
      -
  • -
  • -
    -

    getIDs

    -
    public long[] getIDs()
    + + + + +
      +
    • +

      getIDs

      +
      public long[] getIDs()
      Get the list of identifiers currently stored by this index.
      -
      -
      Returns:
      +
      +
      Returns:
      a long array of identifiers.
      -
  • -
  • -
    -

    query

    -
    public Index.QueryResults query(float[] queryVector, - int k)
    + + + + +
      +
    • +

      query

      +
      public Index.QueryResults query​(float[] queryVector,
      +                                int k)
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVector - A query vector to use for searching.
      k - The number of nearest neighbors to return.
      -
      Returns:
      +
      Returns:
      A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
      -
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index.
      +
      Throws:
      +
      RuntimeException - if fewer than k results can be found in the index.
      -
  • -
  • -
    -

    query

    -
    public Index.QueryResults[] query(float[][] queryVectors, - int k, - int numThreads)
    + + + + +
      +
    • +

      query

      +
      public Index.QueryResults[] query​(float[][] queryVectors,
      +                                  int k,
      +                                  int numThreads)
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVectors - The query vectors to use for searching.
      k - The number of nearest neighbors to return for each query vector
      numThreads - The number of threads to use when searching. If -1, all available CPU cores will be used. Note that passing a number of threads other than 1 will cause a temporary C++ thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing more data to each call instead to reduce overhead.
      -
      Returns:
      +
      Returns:
      An array of Index.QueryResults objects, each containing the neighbors found that are (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      -
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index for one or +
      Throws:
      +
      RuntimeException - if fewer than k results can be found in the index for one or more queries.
      -
  • -
  • -
    -

    query

    -
    public Index.QueryResults query(float[] queryVector, - int k, - long queryEf)
    + + + + +
      +
    • +

      query

      +
      public Index.QueryResults query​(float[] queryVector,
      +                                int k,
      +                                long queryEf)
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVector - A query vector to use for searching.
      k - The number of nearest neighbors to return.
      queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
      -
      Returns:
      +
      Returns:
      A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
      -
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index.
      +
      Throws:
      +
      RuntimeException - if fewer than k results can be found in the index.
      -
  • -
  • -
    -

    query

    -
    public Index.QueryResults[] query(float[][] queryVectors, - int k, - int numThreads, - long queryEf)
    + + + + +
      +
    • +

      query

      +
      public Index.QueryResults[] query​(float[][] queryVectors,
      +                                  int k,
      +                                  int numThreads,
      +                                  long queryEf)
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVectors - The query vectors to use for searching.
      k - The number of nearest neighbors to return for each query vector
      numThreads - The number of threads to use when searching. If -1, all available CPU cores @@ -840,115 +1077,194 @@

      query

      more data to each call instead to reduce overhead.
      queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
      -
      Returns:
      +
      Returns:
      An array of Index.QueryResults objects, each containing the neighbors found that are (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      -
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index for one or +
      Throws:
      +
      RuntimeException - if fewer than k results can be found in the index for one or more queries.
      -
  • -
  • -
    -

    markDeleted

    -
    public void markDeleted(long label)
    + + + + +
      +
    • +

      markDeleted

      +
      public void markDeleted​(long label)
      Mark an element of the index as deleted. Deleted elements will be skipped when querying, but will still be present in the index.
      -
      -
      Parameters:
      +
      +
      Parameters:
      label - The ID of the element to mark as deleted.
      -
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      Throws:
      +
      RuntimeException - If the provided identifier is not present in the Index.
      -
  • -
  • -
    -

    unmarkDeleted

    -
    public void unmarkDeleted(long label)
    + + + + +
      +
    • +

      unmarkDeleted

      +
      public void unmarkDeleted​(long label)
      Un-mark an element of the index as deleted, making it available again.
      -
      -
      Parameters:
      +
      +
      Parameters:
      label - The ID of the element to unmark as deleted.
      -
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      Throws:
      +
      RuntimeException - If the provided identifier is not present in the Index.
      -
  • -
  • -
    -

    resizeIndex

    -
    public void resizeIndex(long newSize)
    + + + + +
      +
    • +

      resizeIndex

      +
      public void resizeIndex​(long newSize)
      Change the maximum number of elements currently storable by this Index. This operation reallocates the memory used by the index and can be quite slow, so it may be useful to set the maximum number of elements in advance if that number is known.
      -
      -
      Parameters:
      +
      +
      Parameters:
      newSize - The new number of maximum elements to resize this Index to.
      -
  • -
  • -
    -

    getMaxElements

    -
    public long getMaxElements()
    + + + + +
      +
    • +

      getMaxElements

      +
      public long getMaxElements()
      Get the maximum number of elements currently storable by this Index. If more elements are added than getMaxElements(), the index will be automatically (but slowly) resized.
      -
      -
      Returns:
      +
      +
      Returns:
      The number of elements (vectors) that are currently storable in this Index.
      -
  • -
  • -
    -

    getNumElements

    -
    public long getNumElements()
    + + + + +
      +
    • +

      getNumElements

      +
      public long getNumElements()
      Get the number of elements currently in this Index.
      -
      -
      Returns:
      +
      +
      Returns:
      The number of elements (vectors) in this Index. This count includes any deleted elements.
      -
  • -
  • -
    -

    getEfConstruction

    -
    public long getEfConstruction()
    + + + + +
      +
    • +

      getEfConstruction

      +
      public long getEfConstruction()
      Get the EF Construction value used when adding new elements to this Index.
      -
      -
      Returns:
      +
      +
      Returns:
      The current EF Construction value (i.e.: the number of neighbors to search for when adding new elements).
      -
  • -
  • -
    -

    getM

    -
    public long getM()
    + + + + +
      +
    • +

      getM

      +
      public long getM()
      Get the M value used when adding new elements to this Index.
      -
      -
      Returns:
      +
      +
      Returns:
      The current M value (i.e.: the number of links between adjacent vectors to create when adding elements).
      -
  • - - + + +
    + +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html index b26747cb..ecb59a12 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -1,219 +1,388 @@ + - -StringIndex.QueryResults (voyager 2.0.1 API) - + +StringIndex.QueryResults (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Class StringIndex.QueryResults

    -
    -
    java.lang.Object -
    com.spotify.voyager.jni.StringIndex.QueryResults
    + +

    Class StringIndex.QueryResults

    -
    -
    +
    + +
    +
      +
    • +
      Enclosing class:
      StringIndex

      -
      public static class StringIndex.QueryResults -extends Object
      +
      public static class StringIndex.QueryResults
      +extends Object
      A wrapper class for nearest neighbor query results.
      -
    -
    -
    -
    -

    Methods inherited from class java.lang.Object

    -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +
    +
    +
      +
    • -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        QueryResults

        -
        public QueryResults(String[] names, - float[] distances)
        -
        +
        +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            QueryResults

            +
            public QueryResults​(String[] names,
            +                    float[] distances)
          -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getNames

          -
          public String[] getNames()
          +
        + +
        +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getNames

            +
            public String[] getNames()
          • -
          • -
            -

            getDistances

            -
            public float[] getDistances()
            -
            +
          + + + +
            +
          • +

            getDistances

            +
            public float[] getDistances()
          • -
          • -
            -

            getName

            -
            public String getName(int index)
            -
            +
          + + + +
            +
          • +

            getName

            +
            public String getName​(int index)
          • -
          • -
            -

            getDistance

            -
            public float getDistance(int index)
            -
            +
          + + + +
            +
          • +

            getDistance

            +
            public float getDistance​(int index)
          • -
          • -
            -

            getNumResults

            -
            public int getNumResults()
            -
            +
          + + + +
            +
          • +

            getNumResults

            +
            public int getNumResults()
          • -
          • -
            -

            toString

            -
            public String toString()
            -
            -
            Overrides:
            -
            toString in class Object
            +
          + + + +
      -
    - + + +
    + +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.html b/docs/java/com/spotify/voyager/jni/StringIndex.html index fd50e650..cf4753c9 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.html @@ -1,262 +1,378 @@ + - -StringIndex (voyager 2.0.1 API) - + +StringIndex (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Class StringIndex

    -
    -
    java.lang.Object -
    com.spotify.voyager.jni.StringIndex
    + +

    Class StringIndex

    -
    -
    +
    + +
    +
      +
    • +
      All Implemented Interfaces:
      -
      Closeable, AutoCloseable
      +
      Closeable, AutoCloseable

      -
      public class StringIndex -extends Object -implements Closeable
      +
      public class StringIndex
      +extends Object
      +implements Closeable
      Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.

      StringIndex can only accommodate up to 2^31 - 1 (2.1B) items, despite typical Voyager indices allowing up to 2^63 - 1 (9e18) items.

      -
    -
    -
      + +
    +
    +
    + + -
  • -
    -

    Method Details

    - + + + +
      +
    • +

      load

      +
      public static StringIndex load​(InputStream indexInputStream,
      +                               InputStream nameListInputStream,
      +                               Index.SpaceType spaceType,
      +                               int numDimensions,
      +                               Index.StorageDataType storageDataType)
      Load a previously constructed index from the provided input streams. It is important that the dimensions, space type, and storage data type provided are the same that the index was constructed with.
      -
      -
      Parameters:
      +
      +
      Parameters:
      indexInputStream - input stream pointing to the underlying HNSW index
      nameListInputStream - input stream pointing to the JSON encoded names list
      spaceType -
      numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
      storageDataType -
      -
      Returns:
      +
      Returns:
      reference to the loaded StringIndex
      -
      See Also:
      -
      - -
      +
      See Also:
      +
      Index.SpaceType, +Index.StorageDataType
      -
  • -
  • -
    -

    load

    -
    public static StringIndex load(String indexFilename, - String nameListFilename)
    -
    Load a previously constructed index from the provided file location. The space type, dimensions, and storage data type are read from the file metadata.
    -
    -
    Parameters:
    + + + + +
      +
    • +

      load

      +
      public static StringIndex load​(String indexFilename,
      +                               String nameListFilename)
      +
      Load a previously constructed index from the provided file location. The space type, + dimensions, and storage data type are read from the file metadata.
      +
      +
      Parameters:
      indexFilename - Filename of the underlying HNSW index
      nameListFilename - Filename of the JSON encoded names list
      -
      Returns:
      +
      Returns:
      reference to the loaded StringIndex
      -
  • -
  • -
    -

    load

    -
    public static StringIndex load(InputStream indexInputStream, - InputStream nameListInputStream)
    -
    Load a previously constructed index from the provided input stream. The space type, dimensions, and storage data type are read from the file metadata.
    -
    -
    Parameters:
    + + + + +
      +
    • +

      load

      +
      public static StringIndex load​(InputStream indexInputStream,
      +                               InputStream nameListInputStream)
      +
      Load a previously constructed index from the provided input stream. The space type, dimensions, + and storage data type are read from the file metadata.
      +
      +
      Parameters:
      indexInputStream - input stream pointing to the underlying HNSW index
      nameListInputStream - input stream pointing to the JSON encoded names list
      -
      Returns:
      +
      Returns:
      reference to the loaded StringIndex
      -
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(String outputDirectory) - throws IOException
    + + + + +
      +
    • +

      saveIndex

      +
      public void saveIndex​(String outputDirectory)
      +               throws IOException
      Save the underlying index and JSON encoded name list to the provided output directory
      -
      -
      Parameters:
      +
      +
      Parameters:
      outputDirectory - directory to output files to
      -
      Throws:
      -
      IOException - when there is an error writing to JSON or saving to disk
      +
      Throws:
      +
      IOException - when there is an error writing to JSON or saving to disk
      -
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(String outputDirectory, - String indexFilename, - String nameListFilename) - throws IOException
    -
    -
    Throws:
    -
    IOException
    + + + + +
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(OutputStream indexOutputStream, - OutputStream namesListOutputStream) - throws IOException
    + + + + +
      +
    • +

      saveIndex

      +
      public void saveIndex​(OutputStream indexOutputStream,
      +                      OutputStream namesListOutputStream)
      +               throws IOException
      Save the underlying HNSW index and JSON encoded names list to the provided output streams
      -
      -
      Parameters:
      +
      +
      Parameters:
      indexOutputStream - output stream pointing to the location to save the HNSW index
      namesListOutputStream - output stream pointing to the location to save the JSON names list
      -
      Throws:
      -
      IOException - when there is an error writing to JSON or the output streams
      +
      Throws:
      +
      IOException - when there is an error writing to JSON or the output streams
      -
  • -
  • -
    -

    addItem

    -
    public void addItem(String name, - float[] vector)
    -
    + + + + +
      +
    • +

      addItem

      +
      public void addItem​(String name,
      +                    float[] vector)
    • -
    • -
      -

      addItem

      -
      public void addItem(String name, - List<Float> vector)
      -
      +
    + + + + + + + + + + + +
      +
    • +

      query

      +
      public StringIndex.QueryResults query​(float[] queryVector,
      +                                      int numNeighbors,
      +                                      int ef)
      Find the nearest neighbors of the provided embedding.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVector - The vector to center the search around.
      numNeighbors - The number of neighbors to return. The number of results returned may be smaller than this value if the index does not contain enough items.
      @@ -448,39 +593,100 @@

      query

      Increasing this value can improve recall (up to a point) at the cost of increased search latency. The minimum value of this parameter is the requested number of neighbors, and the maximum value is the number of items in the index. -
      Returns:
      +
      Returns:
      a QueryResults object, containing the names of the neighbors and each neighbor's distance from the query vector, sorted in ascending order of distance
      -
    • -
    • -
      -

      close

      -
      public void close() - throws IOException
      -
      -
      Specified by:
      -
      close in interface AutoCloseable
      -
      Specified by:
      -
      close in interface Closeable
      -
      Throws:
      -
      IOException
      +
    + + + + -
  • - + + +
    + +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html index 3126af38..39135421 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html @@ -1,114 +1,226 @@ + - -Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.1 API) - + +Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -

    Uses of Class
    com.spotify.voyager.jni.Index.QueryResults

    +

    Uses of Class
    com.spotify.voyager.jni.Index.QueryResults

    -
    Packages that use Index.QueryResults
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html index 6c8a267d..2ba232fd 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html @@ -1,186 +1,315 @@ + - -Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.1 API) - + +Uses of Class com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -

    Uses of Enum
    com.spotify.voyager.jni.Index.SpaceType

    +

    Uses of Class
    com.spotify.voyager.jni.Index.SpaceType

    -
    Packages that use Index.SpaceType
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html index f7359deb..b495e421 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html @@ -1,168 +1,293 @@ + - -Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.1 API) - + +Uses of Class com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -

    Uses of Enum
    com.spotify.voyager.jni.Index.StorageDataType

    +

    Uses of Class
    com.spotify.voyager.jni.Index.StorageDataType

    -
    Packages that use Index.StorageDataType
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.html b/docs/java/com/spotify/voyager/jni/class-use/Index.html index a7f682a6..b0d432f3 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.html @@ -1,116 +1,228 @@ + - -Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.1 API) - + +Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -

    Uses of Class
    com.spotify.voyager.jni.Index

    +

    Uses of Class
    com.spotify.voyager.jni.Index

    -
    Packages that use Index
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html index db8c7d69..c7a3fcb3 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html @@ -1,93 +1,199 @@ + - -Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.1 API) - + +Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex.QueryResults

    +

    Uses of Class
    com.spotify.voyager.jni.StringIndex.QueryResults

    -
    Packages that use StringIndex.QueryResults
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html index c33b79c9..662fe29c 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html @@ -1,116 +1,228 @@ + - -Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.1 API) - + +Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex

    +

    Uses of Class
    com.spotify.voyager.jni.StringIndex

    -
    Packages that use StringIndex
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/package-summary.html b/docs/java/com/spotify/voyager/jni/package-summary.html index 26d67965..ac831a0d 100644 --- a/docs/java/com/spotify/voyager/jni/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/package-summary.html @@ -1,136 +1,217 @@ + - -com.spotify.voyager.jni (voyager 2.0.1 API) - + +com.spotify.voyager.jni (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -
    -

    Package com.spotify.voyager.jni

    +

    Package com.spotify.voyager.jni

    -
    -
    package com.spotify.voyager.jni
    -
    +
    +
    + +
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    -
    -
      -
    • - -
    • -
    • -
      -
      -
      -
      -
      Class
      -
      Description
      - -
      +
        +
      • + + + + + + + + + + + + + + + + + + + + + + + + +
        Class Summary 
        ClassDescription
        Index
        A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
        - - -
        +
        Index.QueryResults
        A container for query results, returned by Index.
        - - -
        -
        The space, also known as distance metric, to use when searching.
        -
        - -
        -
        The datatype used to use when storing vectors on disk.
        -
        - -
        +
        StringIndex
        Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
        - - -
        +
        StringIndex.QueryResults
        A wrapper class for nearest neighbor query results.
        - - - - +
        +
      • +
      • + + + + + + + + + + + + + + + + +
        Enum Summary 
        EnumDescription
        Index.SpaceType +
        The space, also known as distance metric, to use when searching.
        +
        Index.StorageDataType +
        The datatype used to use when storing vectors on disk.
        +
      -
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/package-tree.html b/docs/java/com/spotify/voyager/jni/package-tree.html index 145045c2..a4c770d4 100644 --- a/docs/java/com/spotify/voyager/jni/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/package-tree.html @@ -1,94 +1,182 @@ + - -com.spotify.voyager.jni Class Hierarchy (voyager 2.0.1 API) - + +com.spotify.voyager.jni Class Hierarchy (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -

    Hierarchy For Package com.spotify.voyager.jni

    -Package Hierarchies: +Package Hierarchies:
    -
    +
    +

    Class Hierarchy

    -
    +

    Enum Hierarchy

    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/package-use.html b/docs/java/com/spotify/voyager/jni/package-use.html index 764458dd..a8c6e149 100644 --- a/docs/java/com/spotify/voyager/jni/package-use.html +++ b/docs/java/com/spotify/voyager/jni/package-use.html @@ -1,110 +1,220 @@ + - -Uses of Package com.spotify.voyager.jni (voyager 2.0.1 API) - + +Uses of Package com.spotify.voyager.jni (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + +
    -

    Uses of Package
    com.spotify.voyager.jni

    -
    Packages that use com.spotify.voyager.jni
    -
    -
    Package
    -
    Description
    - -
    +
    + - +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html index 32d74744..777a6d58 100644 --- a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html @@ -1,163 +1,307 @@ + - -JniLibExtractor (voyager 2.0.1 API) - + +JniLibExtractor (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -
    -
    +
    - -

    Class JniLibExtractor

    + +

    Class JniLibExtractor

    -
    java.lang.Object -
    com.spotify.voyager.jni.utils.JniLibExtractor
    -
    -
    -
    -
    public class JniLibExtractor -extends Object
    -
    -
    -
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html index 8ef67736..bc91109b 100644 --- a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html @@ -1,181 +1,330 @@ + - -TinyJson (voyager 2.0.1 API) - + +TinyJson (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -
    -
    +
    - -

    Class TinyJson

    + +

    Class TinyJson

    -
    java.lang.Object -
    com.spotify.voyager.jni.utils.TinyJson
    -
    -
    +
    + +
    +
      +

    • -
      public class TinyJson -extends Object
      +
      public class TinyJson
      +extends Object
      A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
      -
    -
    -
    -
    -

    Methods inherited from class java.lang.Object

    -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
    +
    + - + + +
    +
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html index 9360855b..2b3d08bd 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html @@ -1,62 +1,149 @@ + - -Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.1 API) - + +Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -
    -

    Uses of Class
    com.spotify.voyager.jni.utils.JniLibExtractor

    +

    Uses of Class
    com.spotify.voyager.jni.utils.JniLibExtractor

    -No usage of com.spotify.voyager.jni.utils.JniLibExtractor
    +
    No usage of com.spotify.voyager.jni.utils.JniLibExtractor
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html index 50631593..b7b3848f 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html @@ -1,62 +1,149 @@ + - -Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.1 API) - + +Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -
    -

    Uses of Class
    com.spotify.voyager.jni.utils.TinyJson

    +

    Uses of Class
    com.spotify.voyager.jni.utils.TinyJson

    -No usage of com.spotify.voyager.jni.utils.TinyJson
    +
    No usage of com.spotify.voyager.jni.utils.TinyJson
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-summary.html b/docs/java/com/spotify/voyager/jni/utils/package-summary.html index 05e6774c..94a71419 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-summary.html @@ -1,105 +1,174 @@ + - -com.spotify.voyager.jni.utils (voyager 2.0.1 API) - + +com.spotify.voyager.jni.utils (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -
    -

    Package com.spotify.voyager.jni.utils

    -
    -
    -
    package com.spotify.voyager.jni.utils
    -
    -
      -
    • - -
    • -
    • -
      -
      Classes
      -
      -
      Class
      -
      Description
      - -
       
      - -
      +
      +
        +
      • + + + + + + + + + + + + + + + + +
        Class Summary 
        ClassDescription
        JniLibExtractor 
        TinyJson
        A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
        - - - +
      -
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-tree.html b/docs/java/com/spotify/voyager/jni/utils/package-tree.html index 1738bdf2..9f26b212 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-tree.html @@ -1,77 +1,165 @@ + - -com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.1 API) - + +com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -

    Hierarchy For Package com.spotify.voyager.jni.utils

    -Package Hierarchies: +Package Hierarchies:
    -
    +
    +

    Class Hierarchy

    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-use.html b/docs/java/com/spotify/voyager/jni/utils/package-use.html index 11c484ee..1c089783 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-use.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-use.html @@ -1,62 +1,149 @@ + - -Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.1 API) - + +Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -

    Uses of Package
    com.spotify.voyager.jni.utils

    -No usage of com.spotify.voyager.jni.utils
    +
    No usage of com.spotify.voyager.jni.utils
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/package-summary.html b/docs/java/com/spotify/voyager/package-summary.html index 71e42e48..6ed69d00 100644 --- a/docs/java/com/spotify/voyager/package-summary.html +++ b/docs/java/com/spotify/voyager/package-summary.html @@ -1,67 +1,105 @@ + - -com.spotify.voyager (voyager 2.0.1 API) - + +com.spotify.voyager (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -
    -

    Package com.spotify.voyager

    +

    Package com.spotify.voyager

    -
    -
    package com.spotify.voyager
    -
    +
    +
    + +
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector data. For most use cases, Index will be the primary interface to Voyager's functionality. @@ -87,29 +125,54 @@

    Package com.spotify.voyage index.saveIndex("my_tiny_index.voy");

    -
    -
      -
    • - -
    • -
    -
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/package-tree.html b/docs/java/com/spotify/voyager/package-tree.html index bdc3e56e..b658c470 100644 --- a/docs/java/com/spotify/voyager/package-tree.html +++ b/docs/java/com/spotify/voyager/package-tree.html @@ -1,66 +1,152 @@ + - -com.spotify.voyager Class Hierarchy (voyager 2.0.1 API) - + +com.spotify.voyager Class Hierarchy (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -

    Hierarchy For Package com.spotify.voyager

    -Package Hierarchies: +Package Hierarchies:
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/package-use.html b/docs/java/com/spotify/voyager/package-use.html index 225d8f99..b672c230 100644 --- a/docs/java/com/spotify/voyager/package-use.html +++ b/docs/java/com/spotify/voyager/package-use.html @@ -1,62 +1,149 @@ + - -Uses of Package com.spotify.voyager (voyager 2.0.1 API) - + +Uses of Package com.spotify.voyager (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -

    Uses of Package
    com.spotify.voyager

    -No usage of com.spotify.voyager
    +
    No usage of com.spotify.voyager
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/constant-values.html b/docs/java/constant-values.html index 377d6d02..8f3e48fd 100644 --- a/docs/java/constant-values.html +++ b/docs/java/constant-values.html @@ -2,8 +2,8 @@ - -Constant Field Values (voyager 2.0.1 API) + +Constant Field Values (voyager 2.0.2 API) @@ -21,7 +21,7 @@ - - + + + + + - - -
    -
    + + + -
    -

    JavaDoc Help

    - -
    -
    -

    Navigation

    -Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces - +
    +

    How This API Document Is Organized

    +
    This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
    -
    -
    -

    Kinds of Pages

    -The following sections describe the different kinds of pages in this collection. -
    -

    Overview

    +
    +
      +
    • +
      +

      Overview

      The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

      -
      -

      Package

      -

      Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

      -
        + +
      • +
        +

        Package

        +

        Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:

        +
        • Interfaces
        • Classes
        • Enums
        • @@ -111,10 +118,12 @@

          Package

        • Annotation Types
        -
        -

        Class or Interface

        -

        Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

        -
          + +
        • +
          +

          Class or Interface

          +

          Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

          +
          • Class Inheritance Diagram
          • Direct Subclasses
          • All Known Subinterfaces
          • @@ -123,64 +132,150 @@

            Class or Interface

          • Class or Interface Description

          -
            +
            • Nested Class Summary
            • -
            • Enum Constant Summary
            • Field Summary
            • Property Summary
            • Constructor Summary
            • Method Summary
            • -
            • Required Element Summary
            • -
            • Optional Element Summary

            -
              -
            • Enum Constant Details
            • -
            • Field Details
            • -
            • Property Details
            • -
            • Constructor Details
            • -
            • Method Details
            • -
            • Element Details
            • +
                +
              • Field Detail
              • +
              • Property Detail
              • +
              • Constructor Detail
              • +
              • Method Detail
              -

              Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

              -

              The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

              +

              Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

          -
          -

          Other Files

          -

          Packages and modules may contain pages with additional information related to the declarations nearby.

          +
        • +
        • +
          +

          Annotation Type

          +

          Each annotation type has its own separate page with the following sections:

          +
            +
          • Annotation Type Declaration
          • +
          • Annotation Type Description
          • +
          • Required Element Summary
          • +
          • Optional Element Summary
          • +
          • Element Detail
          • +
          +
          +
        • +
        • +
          +

          Enum

          +

          Each enum has its own separate page with the following sections:

          +
            +
          • Enum Declaration
          • +
          • Enum Description
          • +
          • Enum Constant Summary
          • +
          • Enum Constant Detail
          • +
          -
          -

          Use

          -

          Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

          +
        • +
        • +
          +

          Use

          +

          Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

          -
          -

          Tree (Class Hierarchy)

          +
        • +
        • +
          +

          Tree (Class Hierarchy)

          There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

          -
            -
          • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
          • -
          • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
          • +
              +
            • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
            • +
            • When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
          -
          -

          All Packages

          -

          The All Packages page contains an alphabetic index of all packages contained in the documentation.

          +
        • +
        • +
          +

          Deprecated API

          +

          The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

          -
          -

          All Classes and Interfaces

          -

          The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

          +
        • +
        • +
          +

          Index

          +

          The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.

          -
          -

          Index

          -

          The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

          +
        • +
        • +
          +

          All Classes

          +

          The All Classes link shows all classes and interfaces except non-static nested types.

          -
    + +
  • +
    +

    Serialized Form

    +

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

    +
    +
  • +
  • +
    +

    Constant Field Values

    +

    The Constant Field Values page lists the static final fields and their values.

    +
    +
  • +
  • +
    +

    Search

    +

    You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".

    +
    +
  • +
    -This help file applies to API documentation generated by the standard doclet.
    +This help file applies to API documentation generated by the standard doclet.
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/index-all.html b/docs/java/index-all.html index 44b32893..5190f72f 100644 --- a/docs/java/index-all.html +++ b/docs/java/index-all.html @@ -1,89 +1,136 @@ + - -Index (voyager 2.0.1 API) - + +Index (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -
    -
    -

    Index

    -
    -A C D E F G I J L M Q R S T U V W 
    All Classes and Interfaces|All Packages -

    A

    -
    -
    addItem(float[]) - Method in class com.spotify.voyager.jni.Index
    +
    A C D E F G I J L M Q R S T U V W 
    All Classes All Packages + + +

    A

    +
    +
    addItem(float[]) - Method in class com.spotify.voyager.jni.Index
    Add an item (a vector) to this Index.
    -
    addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
    +
    addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
    Add an item (a vector) to this Index with the provided identifier.
    -
    addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
    +
    addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
    Add multiple items (vectors) to this Index.
    -
    addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
    +
    addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
    Add multiple items (vectors) to this Index.
    -
    addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
     
    -

    C

    -
    -
    close() - Method in class com.spotify.voyager.jni.Index
    + + + +

    C

    +
    +
    close() - Method in class com.spotify.voyager.jni.Index
    Close this Index and release any memory held by it.
    -
    close() - Method in class com.spotify.voyager.jni.StringIndex
    +
    close() - Method in class com.spotify.voyager.jni.StringIndex
     
    com.spotify.voyager - package com.spotify.voyager
    @@ -96,341 +143,428 @@

    C

    com.spotify.voyager.jni.utils - package com.spotify.voyager.jni.utils
     
    -
    Cosine - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    +
    Cosine - com.spotify.voyager.jni.Index.SpaceType
    Cosine distance; i.e.
    -

    D

    -
    -
    distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
    + + + +

    D

    +
    +
    distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
    A list of distances from each item ID to the query vector for this query.
    -

    E

    -
    -
    E4M3 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    + + + +

    E

    +
    +
    E4M3 - com.spotify.voyager.jni.Index.StorageDataType
    A custom 8-bit floating point data type with range [-448, 448] and variable precision.
    -
    Euclidean - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    +
    Euclidean - com.spotify.voyager.jni.Index.SpaceType
    Euclidean distance, also known as L2 distance.
    -
    extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
    +
    extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
     
    -

    F

    -
    -
    finalize() - Method in class com.spotify.voyager.jni.Index
    + + + +

    F

    +
    +
    finalize() - Method in class com.spotify.voyager.jni.Index
     
    -
    Float32 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    Float32 - com.spotify.voyager.jni.Index.StorageDataType
    A 32-bit floating point ("Float") data type.
    -
    Float8 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    Float8 - com.spotify.voyager.jni.Index.StorageDataType
    An 8-bit floating point data type that expects all values to be on [-1, 1].
    -

    G

    -
    -
    getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    + + + +

    G

    +
    +
    getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
    Retrieve the list of distances between query vectors and item vectors for the results of this query.
    -
    getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getEf() - Method in class com.spotify.voyager.jni.Index
    +
    getEf() - Method in class com.spotify.voyager.jni.Index
    Get the default EF ("query search depth") that will be uses when Index.query(float[], int) is called.
    -
    getEfConstruction() - Method in class com.spotify.voyager.jni.Index
    +
    getEfConstruction() - Method in class com.spotify.voyager.jni.Index
    Get the EF Construction value used when adding new elements to this Index.
    -
    getIDs() - Method in class com.spotify.voyager.jni.Index
    +
    getIDs() - Method in class com.spotify.voyager.jni.Index
    Get the list of identifiers currently stored by this index.
    -
    getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
    Retrieve the list of item IDs ("labels") returned by this query.
    -
    getM() - Method in class com.spotify.voyager.jni.Index
    +
    getM() - Method in class com.spotify.voyager.jni.Index
    Get the M value used when adding new elements to this Index.
    -
    getMaxElements() - Method in class com.spotify.voyager.jni.Index
    +
    getMaxElements() - Method in class com.spotify.voyager.jni.Index
    Get the maximum number of elements currently storable by this Index.
    -
    getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNumDimensions() - Method in class com.spotify.voyager.jni.Index
    +
    getNumDimensions() - Method in class com.spotify.voyager.jni.Index
    Get the number of dimensions used in this Index.
    -
    getNumElements() - Method in class com.spotify.voyager.jni.Index
    +
    getNumElements() - Method in class com.spotify.voyager.jni.Index
    Get the number of elements currently in this Index.
    -
    getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNumThreads() - Method in class com.spotify.voyager.jni.Index
    +
    getNumThreads() - Method in class com.spotify.voyager.jni.Index
    Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
    -
    getSpace() - Method in class com.spotify.voyager.jni.Index
    +
    getSpace() - Method in class com.spotify.voyager.jni.Index
    Get the Index.SpaceType that this Index uses to store and compare vectors.
    -
    getVector(long) - Method in class com.spotify.voyager.jni.Index
    +
    getVector(long) - Method in class com.spotify.voyager.jni.Index
    Get the vector for the provided identifier.
    -
    getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
    +
    getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
    Get the vectors for a provided array of identifiers.
    -

    I

    -
    -
    Index - Class in com.spotify.voyager.jni
    + + + +

    I

    +
    +
    Index - Class in com.spotify.voyager.jni
    A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
    -
    Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
    +
    Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
    Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
    +
    Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
    Index.QueryResults - Class in com.spotify.voyager.jni
    +
    Index.QueryResults - Class in com.spotify.voyager.jni
    A container for query results, returned by Index.
    -
    Index.SpaceType - Enum in com.spotify.voyager.jni
    +
    Index.SpaceType - Enum in com.spotify.voyager.jni
    The space, also known as distance metric, to use when searching.
    -
    Index.StorageDataType - Enum in com.spotify.voyager.jni
    +
    Index.StorageDataType - Enum in com.spotify.voyager.jni
    The datatype used to use when storing vectors on disk.
    -
    InnerProduct - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    +
    InnerProduct - com.spotify.voyager.jni.Index.SpaceType
    Inner (dot) product.
    -

    J

    -
    -
    JniLibExtractor - Class in com.spotify.voyager.jni.utils
    + + + +

    J

    +
    +
    JniLibExtractor - Class in com.spotify.voyager.jni.utils
     
    -
    JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
    +
    JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
     
    -

    L

    -
    -
    labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
    + + + +

    L

    +
    +
    labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
    A list of item IDs ("labels").
    -
    load(InputStream) - Static method in class com.spotify.voyager.jni.Index
    +
    load(InputStream) - Static method in class com.spotify.voyager.jni.Index
    Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
    -
    load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    +
    load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
    -
    load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided input stream.
    -
    load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided input streams.
    -
    load(String) - Static method in class com.spotify.voyager.jni.Index
    +
    load(String) - Static method in class com.spotify.voyager.jni.Index
    Load a Voyager index file and create a new Index initialized with the data in that file.
    -
    load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    +
    load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    Load a Voyager index file and create a new Index initialized with the data in that file.
    -
    load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided file location.
    -
    load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided file location.
    -

    M

    -
    -
    markDeleted(long) - Method in class com.spotify.voyager.jni.Index
    + + + +

    M

    +
    +
    markDeleted(long) - Method in class com.spotify.voyager.jni.Index
    Mark an element of the index as deleted.
    -

    Q

    -
    -
    query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
    + + + +

    Q

    +
    +
    query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of multiple query vectors.
    -
    query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of multiple query vectors.
    -
    query(float[], int) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[], int) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of a single query vector.
    -
    query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
    +
    query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
    Find the nearest neighbors of the provided embedding.
    -
    query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of a single query vector.
    -
    QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
    +
    QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
    Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
    -
    QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -

    R

    -
    -
    readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
    + + + +

    R

    +
    +
    readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
     
    -
    resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
    +
    resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
    Change the maximum number of elements currently storable by this Index.
    -

    S

    -
    -
    saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
    + + + +

    S

    +
    +
    saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
    Save this Index to the provided output stream.
    -
    saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
    Save the underlying HNSW index and JSON encoded names list to the provided output streams
    -
    saveIndex(String) - Method in class com.spotify.voyager.jni.Index
    +
    saveIndex(String) - Method in class com.spotify.voyager.jni.Index
    Save this Index to a file at the provided filename.
    -
    saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
    Save the underlying index and JSON encoded name list to the provided output directory
    -
    saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    setEf(long) - Method in class com.spotify.voyager.jni.Index
    +
    setEf(long) - Method in class com.spotify.voyager.jni.Index
    Set the default EF ("query search depth") to use when Index.query(float[], int) is called.
    -
    setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
    +
    setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
    Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
    -
    StringIndex - Class in com.spotify.voyager.jni
    +
    StringIndex - Class in com.spotify.voyager.jni
    Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
    -
    StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
    +
    StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
    Instantiate a new empty index with the specified space type and dimensionality
    -
    StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
    +
    StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
    Instantiate an empty index with the specified index parameters
    -
    StringIndex.QueryResults - Class in com.spotify.voyager.jni
    +
    StringIndex.QueryResults - Class in com.spotify.voyager.jni
    A wrapper class for nearest neighbor query results.
    -

    T

    -
    -
    TinyJson - Class in com.spotify.voyager.jni.utils
    + + + +

    T

    +
    +
    TinyJson - Class in com.spotify.voyager.jni.utils
    A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
    -
    TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
    +
    TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
     
    -
    toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
     
    -
    toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -

    U

    -
    -
    unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
    + + + +

    U

    +
    +
    unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
    Un-mark an element of the index as deleted, making it available again.
    -

    V

    -
    -
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    + + + +

    V

    +
    +
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    Returns the enum constant of this type with the specified name.
    -
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    Returns the enum constant of this type with the specified name.
    -
    values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    +
    values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    Returns an array containing the constants of this enum type, in the order they are declared.
    -
    values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    Returns an array containing the constants of this enum type, in the order they are declared.
    -

    W

    -
    -
    writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
    + + + +

    W

    +
    +
    writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
     
    -A C D E F G I J L M Q R S T U V W 
    All Classes and Interfaces|All Packages
    +A C D E F G I J L M Q R S T U V W 
    All Classes All Packages
    +
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/index.html b/docs/java/index.html index 82acbf19..cd21a37f 100644 --- a/docs/java/index.html +++ b/docs/java/index.html @@ -1,80 +1,176 @@ + - -Overview (voyager 2.0.1 API) - + +Overview (voyager 2.0.2 API) - - - - + - - + + + + + - - -
    -
    + + + -
    -
    -

    voyager 2.0.1 API

    +

    voyager 2.0.2 API

    -
    -
    Packages
    -
    -
    Package
    -
    Description
    - -
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    Packages 
    PackageDescription
    com.spotify.voyager
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector data.
    - - -
    +
    com.spotify.voyager.jni
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    - - -
     
    - +
    com.spotify.voyager.jni.utils 
    -
    - -
    + +

    Copyright © 2023. All rights reserved.

    + diff --git a/docs/java/member-search-index.js b/docs/java/member-search-index.js index 2499c325..5240a750 100644 --- a/docs/java/member-search-index.js +++ b/docs/java/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[], long)","u":"addItem(float[],long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, float[])","u":"addItem(java.lang.String,float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, List)","u":"addItem(java.lang.String,java.util.List)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], int)","u":"addItems(float[][],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], long[], int)","u":"addItems(float[][],long[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItems(Map>)","u":"addItems(java.util.Map)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"close()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"close()"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Cosine"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"distances"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"E4M3"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Euclidean"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"extractBinaries(String)","u":"extractBinaries(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"finalize()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float32"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float8"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistance(int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEf()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEfConstruction()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getIDs()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getLabels()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getM()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getName(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNames()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumDimensions()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNumResults()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumThreads()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getSpace()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVector(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVectors(long[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"InnerProduct"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"JniLibExtractor()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"labels"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream)","u":"load(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream)","u":"load(java.io.InputStream,java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String)","u":"load(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String)","u":"load(java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"markDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int)","u":"query(float[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[], int, int)","u":"query(float[],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int, long)","u":"query(float[],int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int)","u":"query(float[][],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int, long)","u":"query(float[][],int,int,long)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"QueryResults(long[], float[])","u":"%3Cinit%3E(long[],float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"QueryResults(String[], float[])","u":"%3Cinit%3E(java.lang.String[],float[])"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"readStringList(InputStream)","u":"readStringList(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(OutputStream)","u":"saveIndex(java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(OutputStream, OutputStream)","u":"saveIndex(java.io.OutputStream,java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String, String, String)","u":"saveIndex(java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setEf(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setNumThreads(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"TinyJson()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"unmarkDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"values()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"values()"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"writeStringList(Iterable, OutputStream)","u":"writeStringList(java.lang.Iterable,java.io.OutputStream)"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[], long)","url":"addItem(float[],long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, float[])","url":"addItem(java.lang.String,float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, List)","url":"addItem(java.lang.String,java.util.List)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], int)","url":"addItems(float[][],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], long[], int)","url":"addItems(float[][],long[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItems(Map>)","url":"addItems(java.util.Map)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"close()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"close()"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Cosine"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"distances"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"E4M3"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Euclidean"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"extractBinaries(String)","url":"extractBinaries(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"finalize()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float32"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float8"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistance(int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEf()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEfConstruction()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getIDs()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getLabels()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getM()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getName(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNames()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumDimensions()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNumResults()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumThreads()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getSpace()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVector(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVectors(long[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"InnerProduct"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"JniLibExtractor()","url":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"labels"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.io.InputStream,java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream)","url":"load(java.io.InputStream,java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream)","url":"load(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.lang.String,java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String)","url":"load(java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String)","url":"load(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"markDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[], int, int)","url":"query(float[],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int, long)","url":"query(float[],int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int)","url":"query(float[],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int, long)","url":"query(float[][],int,int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int)","url":"query(float[][],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"QueryResults(long[], float[])","url":"%3Cinit%3E(long[],float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"QueryResults(String[], float[])","url":"%3Cinit%3E(java.lang.String[],float[])"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"readStringList(InputStream)","url":"readStringList(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(OutputStream, OutputStream)","url":"saveIndex(java.io.OutputStream,java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(OutputStream)","url":"saveIndex(java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String, String, String)","url":"saveIndex(java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(String)","url":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String)","url":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setEf(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setNumThreads(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"TinyJson()","url":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"unmarkDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"values()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"values()"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"writeStringList(Iterable, OutputStream)","url":"writeStringList(java.lang.Iterable,java.io.OutputStream)"}] \ No newline at end of file diff --git a/docs/java/member-search-index.zip b/docs/java/member-search-index.zip index 4a22145a9642526e4c2402d549836e39b8e75d93..d602f158e2c6e5587a296936433769b2be637b32 100644 GIT binary patch delta 967 zcmV;&133JQ2%88DP)h>@6aWYa2mnWokqj+=Z<{a_{wr0aN=%A)SoSbYRUg)5QmS6I zwc1P72NzBE9A~5mOeLZx@3nix3!c;V9 zR~M-HVMwK>??N(PXF++ds=0TGHYWysHxBv6H;#hc4nFOe2WKyV0%wxKBF z@f_=%;tTw+coGZ+lCK;KvhVkpB8GwIN3nDUeO^C>E^e`sU<5x~Th^#e<-W7mLm|Dj zcUF_XtU=6km+@>PMhhNyIZ%UPR_!PO7AyCiXEEi1C4s;(bwyduEm_~Ahzs<80K{1f zm(Cl}(}F+*R19g=D->CIT{lE$?OY|%97`Fwv~wSjF*KD#`B)FWZoe`>p)-Pt?yj4^ zKpM+E*CO%-fqPkz;R2%GJuOwKswOLOOiyDRF0;<@>_J7s4o#a*taxvLlJKh>^N zOY99wd&9Gpi)?KhANq;2;Hg&P z-D0{s=P}JWN$)QiVA>HhCoXNxKq-s?$IpAQl%eNLJ&RRNP8yj0h61ZM9j&w2J>p<`MH!w0ylZ3X7 z?E{Q=fI8%?KNuEJtq%k+^gtm0k9fK-$?E$`B^3z!67BtOP)i3V2(tcsI(Y*C0Cpb$ p08mQ-0u%rg00;;O07s2cSF-+mI(Y*C0Cpdf$^$$GzXJdO000+xzvKV_ delta 952 zcmV;p14sOu2#g2}P)h>@6aWYa2mtSPkqj+=Yuhjs{wpO=@F4hM*~1v64{I_=>1A8X zUP>QS`y^8*%b6r+O~?NGWZAB7@D-;+-T|Y!?>s&>_5=$Mq^z#sqDJ&HQ>DmCfZoe}?zBPi%?zY6= zAkO8EZ4>!|z@4PYumMruol2=vT}{&B=svZ1IIlX#i!)5II9{xrrqWjB7qe5?m5&bk zssv-IKUAM#jnA4=V4qp&%M3ezLZeVwb+pP2PQ^s!VGA$F+U-jx>>?p=J)qzv#3}*V z5qJtl^*A_mi*P1kI7!IWyJMZolj;8|ZPI3qZk?>TWY4F87B0SJ|G6m}!YfmC0+nB% z4H~rXP{am3KIqYt<Jsv-_Tv#&|_XMAWv4(m$8?h(vI`sa@%8eb9w&m^e?&Q>UTnxU@y^9#Cz;`io%!#ri9N zp$7u#zf-48MXXAf8!1C*DrEP60Z>Z^2xD>f(P{$#0L&c#08mR90Rj{N6aWYa2mtSP aQCDMe_R(qs007J#li3422CxGF0000UG0F}A diff --git a/docs/java/overview-summary.html b/docs/java/overview-summary.html index c3b883c7..83de49a6 100644 --- a/docs/java/overview-summary.html +++ b/docs/java/overview-summary.html @@ -1,21 +1,18 @@ + - -voyager 2.0.1 API - + +voyager 2.0.2 API - - - - - + + - +
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/allpackages-index.html b/docs/java/allpackages-index.html index 5ddf1c61..3f8297b4 100644 --- a/docs/java/allpackages-index.html +++ b/docs/java/allpackages-index.html @@ -1,180 +1,78 @@ - - -All Packages (voyager 2.0.2 API) + +All Packages (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +

    All Packages

    -
    - +
    + +
     
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html index 9ca2a741..9b644a71 100644 --- a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html @@ -1,433 +1,261 @@ - - -Index.QueryResults (voyager 2.0.2 API) + +Index.QueryResults (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + - +
    +
    - -

    Class Index.QueryResults

    + +

    Class Index.QueryResults

    -
    - -
    -
      -
    • -
      +
      java.lang.Object +
      com.spotify.voyager.jni.Index.QueryResults
      +
      +
      +
      Enclosing class:
      Index

      -
      public static class Index.QueryResults
      -extends Object
      +
      public static class Index.QueryResults +extends Object
      A container for query results, returned by Index. Note that this class is instantiated from C++, and as such, any changes to its location, visibility, or constructor will need to include corresponding C++ changes.
      -
    • -
    -
    -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Field Summary

          - - - - - - - - - - - - - - - - - -
          Fields 
          Modifier and TypeFieldDescription
          float[]distances +
        • +
          +

          Field Summary

          +
          Fields
          +
          +
          Modifier and Type
          +
          Field
          +
          Description
          +
          final float[]
          + +
          A list of distances from each item ID to the query vector for this query.
          -
        • long[]labels + +
          final long[]
          + +
          A list of item IDs ("labels").
          -
          -
        • -
        +
    +
    + -
    -
      -
    • - - -

      Constructor Summary

      - - - - - - - - - - -
      Constructors 
      ConstructorDescription
      QueryResults​(long[] labels, - float[] distances) +
    • +
      +

      Constructor Summary

      +
      Constructors
      +
      +
      Constructor
      +
      Description
      +
      QueryResults(long[] labels, + float[] distances)
      +
      Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
      -
    • -
    • -
    +
    +
    + -
    - +
    + + +
     
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    -
    -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Field Detail

          - - - -
            -
          • -

            labels

            -
            public final long[] labels
            +
          • +
            +

            Field Details

            +
              +
            • +
              +

              labels

              +
              public final long[] labels
              A list of item IDs ("labels").
              +
            • -
            - - - -
              -
            • -

              distances

              -
              public final float[] distances
              +
            • +
              +

              distances

              +
              public final float[] distances
              A list of distances from each item ID to the query vector for this query.
              -
            • -
            +
        + -
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            QueryResults

            -
            public QueryResults​(long[] labels,
            -                    float[] distances)
            +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              QueryResults

              +
              public QueryResults(long[] labels, + float[] distances)
              Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances. This method should probably not be used directly, as this class is primarily used as a return type from the query method on Index.
              -
              -
              Throws:
              -
              IllegalArgumentException - if the length of the labels and distances arrays vary
              +
              +
              Throws:
              +
              IllegalArgumentException - if the length of the labels and distances arrays vary
              -
            • -
            +
        + -
        -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            toString

            -
            public String toString()
            -
            -
            Overrides:
            -
            toString in class Object
            +
          • +
            +

            Method Details

            + - - - -
              -
            • -

              getLabels

              -
              public long[] getLabels()
              +
            • +
              +

              getLabels

              +
              public long[] getLabels()
              Retrieve the list of item IDs ("labels") returned by this query. This array is sorted by distance: the first item is the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the distances returned by getDistances().
              +
            • -
            - - - -
              -
            • -

              getDistances

              -
              public float[] getDistances()
              +
            • +
              +

              getDistances

              +
              public float[] getDistances()
              Retrieve the list of distances between query vectors and item vectors for the results of this query. This array is sorted by distance: the first distance corresponds with the item the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the labels returned by getLabels().
              -
            • -
            +
      -
    -
    - + +
    -
    -
    - -
    - - -
    - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html index bbb69c76..1bfe990e 100644 --- a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html @@ -1,415 +1,244 @@ - - -Index.SpaceType (voyager 2.0.2 API) + +Index.SpaceType (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    +
    + +
    - +
    +
    - -

    Enum Index.SpaceType

    + +

    Enum Index.SpaceType

    -
    - -
    - -
    -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Enum Constant Summary

          - - - - - - - - - - - - - - - - - - -
          Enum Constants 
          Enum ConstantDescription
          Cosine +
        • +
          +

          Enum Constant Summary

          +
          Enum Constants
          +
          +
          Enum Constant
          +
          Description
          + +
          Cosine distance; i.e.
          -
        • Euclidean + + +
          Euclidean distance, also known as L2 distance.
          -
          InnerProduct + + +
          Inner (dot) product.
          -
          -
        • -
        +
    +
    + -
    - +
    + + + +
    +

    Methods inherited from class java.lang.Enum

    +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
    +
    +

    Methods inherited from class java.lang.Object

    +getClass, notify, notifyAll, wait, wait, wait
    - -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Enum Constant Detail

          - - - -
            -
          • -

            Euclidean

            -
            public static final Index.SpaceType Euclidean
            +
          • +
            +

            Enum Constant Details

            +
              +
            • +
              +

              Euclidean

              +
              public static final Index.SpaceType Euclidean
              Euclidean distance, also known as L2 distance. Computed by taking the square root of the sum of squared differences between each element of each vector.
              +
            • -
            - - - -
              -
            • -

              InnerProduct

              -
              public static final Index.SpaceType InnerProduct
              +
            • +
              +

              InnerProduct

              +
              public static final Index.SpaceType InnerProduct
              Inner (dot) product. Computed by taking the sum of the products of each element of each vector. Since v2.0, this is implemented using the order preserving transform defined in this paper from Microsoft: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/XboxInnerProduct.pdf
              +
            • -
            - - - -
              -
            • -

              Cosine

              -
              public static final Index.SpaceType Cosine
              +
            • +
              +

              Cosine

              +
              public static final Index.SpaceType Cosine
              Cosine distance; i.e. normalized dot product. Computed by taking the sum of the products of each element of each vector, divided by the product of the magnitudes of each vector.
              -
            • -
            +
        + -
        -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            values

            -
            public static Index.SpaceType[] values()
            +
          • +
            +

            Method Details

            +
              +
            • +
              +

              values

              +
              public static Index.SpaceType[] values()
              Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
              -for (Index.SpaceType c : Index.SpaceType.values())
              -    System.out.println(c);
              -
              -
              -
              Returns:
              +the order they are declared.
    +
    +
    Returns:
    an array containing the constants of this enum type, in the order they are declared
    + - - - - -
      -
    • -

      valueOf

      -
      public static Index.SpaceType valueOf​(String name)
      +
    • +
      +

      valueOf

      +
      public static Index.SpaceType valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      -
      -
      Parameters:
      +
      +
      Parameters:
      name - the name of the enum constant to be returned.
      -
      Returns:
      +
      Returns:
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      +
      Throws:
      +
      IllegalArgumentException - if this enum type has no constant with the specified name
      +
      NullPointerException - if the argument is null
      -
    • -
    + - - - + +
    -
    -
    - -
    - - - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html index 65c35153..8c5907bb 100644 --- a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html @@ -1,261 +1,167 @@ - - -Index.StorageDataType (voyager 2.0.2 API) + +Index.StorageDataType (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    +
    + +
    - +
    +
    - -

    Enum Index.StorageDataType

    + +

    Enum Index.StorageDataType

    -
    - -
    - -
    -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Enum Constant Summary

          - - - - - - - - - - - - - - - - - - -
          Enum Constants 
          Enum ConstantDescription
          E4M3 +
        • +
          +

          Enum Constant Summary

          +
          Enum Constants
          +
          +
          Enum Constant
          +
          Description
          + +
          A custom 8-bit floating point data type with range [-448, 448] and variable precision.
          -
        • Float32 + + +
          A 32-bit floating point ("Float") data type.
          -
          Float8 + + +
          An 8-bit floating point data type that expects all values to be on [-1, 1].
          -
          -
        • -
        +
    +
    + -
    - +
    + + + +
    +

    Methods inherited from class java.lang.Enum

    +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
    +
    +

    Methods inherited from class java.lang.Object

    +getClass, notify, notifyAll, wait, wait, wait
    - -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Enum Constant Detail

          - - - -
            -
          • -

            Float8

            -
            public static final Index.StorageDataType Float8
            +
          • +
            +

            Enum Constant Details

            +
              +
            • +
              +

              Float8

              +
              public static final Index.StorageDataType Float8
              An 8-bit floating point data type that expects all values to be on [-1, 1]. This data type provides adequate precision for many use cases, but cuts down memory usage bu a factor of 4x compared to Float32, while also increasing query speed. @@ -263,155 +169,78 @@

              Float8

              Float8 provides 8 bits of resolution; i.e.: the distance between successive values is 1/127, or 0.00787. For a variable-precision (i.e.: _actually_ floating point) representation, use E4M3.

              +
            • -
            - - - - - - - -
              -
            • -

              E4M3

              -
              public static final Index.StorageDataType E4M3
              +
            • +
              +

              E4M3

              +
              public static final Index.StorageDataType E4M3
              A custom 8-bit floating point data type with range [-448, 448] and variable precision. Use this data type to get 4x less memory usage compared to Float32, but when the values of vectors to be stored in an Index may exceed [-1, 1].

              E4M3 uses a 4-bit exponent and 3-bit mantissa field, and was inspired by the paper "FP8 Formats for Deep Learning" by Micikevicus et al (arXiv:2209.05433).

              -
            • -
            +
        + -
        -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            values

            -
            public static Index.StorageDataType[] values()
            +
          • +
            +

            Method Details

            +
              +
            • +
              +

              values

              +
              public static Index.StorageDataType[] values()
              Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
              -for (Index.StorageDataType c : Index.StorageDataType.values())
              -    System.out.println(c);
              -
              -
              -
              Returns:
              +the order they are declared.
    +
    +
    Returns:
    an array containing the constants of this enum type, in the order they are declared
    + - - - - -
      -
    • -

      valueOf

      -
      public static Index.StorageDataType valueOf​(String name)
      +
    • +
      +

      valueOf

      +
      public static Index.StorageDataType valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      -
      -
      Parameters:
      +
      +
      Parameters:
      name - the name of the enum constant to be returned.
      -
      Returns:
      +
      Returns:
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      +
      Throws:
      +
      IllegalArgumentException - if this enum type has no constant with the specified name
      +
      NullPointerException - if the argument is null
      -
    • -
    + - - - + +
    -
    -
    - -
    - - - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/Index.html b/docs/java/com/spotify/voyager/jni/Index.html index b6ffcd38..94dda8e0 100644 --- a/docs/java/com/spotify/voyager/jni/Index.html +++ b/docs/java/com/spotify/voyager/jni/Index.html @@ -1,144 +1,89 @@ - - -Index (voyager 2.0.2 API) + +Index (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    +
    + +
    - +
    +
    - -

    Class Index

    + +

    Class Index

    -
    - -
    -
      -
    • -
      +
      java.lang.Object +
      com.spotify.voyager.jni.Index
      +
      +
      +
      All Implemented Interfaces:
      -
      Closeable, AutoCloseable
      +
      Closeable, AutoCloseable

      -
      public class Index
      -extends Object
      -implements Closeable
      +
      public class Index +extends Object +implements Closeable
      A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors. @@ -161,407 +106,302 @@

      Class Index

      // Serialize this index to use it again later: index.saveIndex("my_tiny_index.voy");
      -
    • -
    -
    -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Nested Class Summary

          - - - - - - - - - - - - - - - - - - - - - - -
          Nested Classes 
          Modifier and TypeClassDescription
          static class Index.QueryResults +
        • +
          +

          Nested Class Summary

          +
          Nested Classes
          +
          +
          Modifier and Type
          +
          Class
          +
          Description
          +
          static class 
          + +
          A container for query results, returned by Index.
          -
        • static class Index.SpaceType + +
          static enum 
          + +
          The space, also known as distance metric, to use when searching.
          -
          static class Index.StorageDataType + +
          static enum 
          + +
          The datatype used to use when storing vectors on disk.
          -
          -
        • -
        +
    +
    + -
    -
      -
    • - - -

      Constructor Summary

      - - - - - - - - - - - - - - -
      Constructors 
      ConstructorDescription
      Index​(Index.SpaceType space, - int numDimensions) +
    • +
      +

      Constructor Summary

      +
      Constructors
      +
      +
      Constructor
      +
      Description
      +
      Index(Index.SpaceType space, + int numDimensions)
      +
      Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
      -
    • Index​(Index.SpaceType space, - int numDimensions, - long indexM, - long efConstruction, - long randomSeed, - long maxElements, - Index.StorageDataType storageDataType) + +
      Index(Index.SpaceType space, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
      +
      Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
      -
      -
    • -
    +
    + + -
    - + + + + +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    - -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            Index

            -
            public Index​(Index.SpaceType space,
            -             int numDimensions)
            +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              Index

              +
              public Index(Index.SpaceType space, + int numDimensions)
              Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
              -
              -
              Parameters:
              +
              +
              Parameters:
              space - the space type to use when storing and comparing vectors.
              numDimensions - the number of dimensions per vector.
              +
            • -
            - - - -
              -
            • -

              Index

              -
              public Index​(Index.SpaceType space,
              -             int numDimensions,
              -             long indexM,
              -             long efConstruction,
              -             long randomSeed,
              -             long maxElements,
              -             Index.StorageDataType storageDataType)
              +
            • +
              +

              Index

              +
              public Index(Index.SpaceType space, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
              Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
              -
              -
              Parameters:
              +
              +
              Parameters:
              space - The space type to use when storing and comparing vectors.
              numDimensions - The number of dimensions per vector.
              indexM - Controls the degree of interconnectedness between vectors. Higher values of @@ -576,349 +416,293 @@

              Index

              storageDataType - The datatype to use under-the-hood when storing vectors. Different data type options trade off precision for memory usage and query speed; see Index.StorageDataType for available data types.
              -
            • -
            +
        + -
        -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            load

            -
            public static Index load​(String filename,
            -                         Index.SpaceType space,
            -                         int numDimensions,
            -                         Index.StorageDataType storageDataType)
            +
          • +
            +

            Method Details

            +
              +
            • +
              +

              load

              +
              public static Index load(String filename, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
              Load a Voyager index file and create a new Index initialized with the data in that file.
              -
              -
              Parameters:
              +
              +
              Parameters:
              filename - A filename to load.
              space - The Index.SpaceType to use when loading the index.
              numDimensions - The number of dimensions per vector.
              storageDataType - The Index.StorageDataType used by the index being loaded.
              -
              Returns:
              +
              Returns:
              An Index whose contents have been initialized with the data provided by the file.
              -
              Throws:
              -
              RuntimeException - if the index cannot be loaded from the file, or the file contains +
              Throws:
              +
              RuntimeException - if the index cannot be loaded from the file, or the file contains invalid data.
              +
            • -
            - - - -
              -
            • -

              load

              -
              public static Index load​(String filename)
              +
            • +
              +

              load

              +
              public static Index load(String filename)
              Load a Voyager index file and create a new Index initialized with the data in that file.
              -
              -
              Parameters:
              +
              +
              Parameters:
              filename - A filename to load.
              -
              Returns:
              +
              Returns:
              An Index whose contents have been initialized with the data provided by the file.
              -
              Throws:
              -
              RuntimeException - if the index cannot be loaded from the file, the file contains invalid +
              Throws:
              +
              RuntimeException - if the index cannot be loaded from the file, the file contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
              +
            • -
            - - - -
              -
            • -

              load

              -
              public static Index load​(InputStream inputStream,
              -                         Index.SpaceType space,
              -                         int numDimensions,
              -                         Index.StorageDataType storageDataType)
              +
            • +
              +

              load

              +
              public static Index load(InputStream inputStream, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
              Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
              -
              -
              Parameters:
              -
              inputStream - A InputStream that will provide the contents of a Voyager +
              +
              Parameters:
              +
              inputStream - A InputStream that will provide the contents of a Voyager index.
              space - The Index.SpaceType to use when loading the index.
              numDimensions - The number of dimensions per vector.
              storageDataType - The Index.StorageDataType used by the index being loaded.
              -
              Returns:
              +
              Returns:
              An Index whose contents have been initialized with the data provided by the input stream.
              -
              Throws:
              -
              RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
              Throws:
              +
              RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data.
              +
            • -
            - - - -
              -
            • -

              load

              -
              public static Index load​(InputStream inputStream)
              +
            • +
              +

              load

              +
              public static Index load(InputStream inputStream)
              Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
              -
              -
              Parameters:
              -
              inputStream - A InputStream that will provide the contents of a Voyager +
              +
              Parameters:
              +
              inputStream - A InputStream that will provide the contents of a Voyager index.
              -
              Returns:
              +
              Returns:
              An Index whose contents have been initialized with the data provided by the input stream.
              -
              Throws:
              -
              RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
              Throws:
              +
              RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
              +
            • -
            - - - -
              -
            • -

              close

              -
              public void close()
              -           throws IOException
              +
            • +
              +

              close

              +
              public void close() + throws IOException
              Close this Index and release any memory held by it. Note that this method must be called to release the memory backing this Index; failing to do so may cause a memory leak.

              Any calls to methods after close() is called will fail, as the underlying native C++ object will have been deallocated.

              -
              -
              Specified by:
              -
              close in interface AutoCloseable
              -
              Specified by:
              -
              close in interface Closeable
              -
              Throws:
              -
              IOException - if the C++ destructor fails.
              +
              +
              Specified by:
              +
              close in interface AutoCloseable
              +
              Specified by:
              +
              close in interface Closeable
              +
              Throws:
              +
              IOException - if the C++ destructor fails.
              +
            • -
            - - - - - - - -
              -
            • -

              setEf

              -
              public void setEf​(long ef)
              +
            • +
              +

              setEf

              +
              public void setEf(long ef)
              Set the default EF ("query search depth") to use when query(float[], int) is called.
              -
              -
              Parameters:
              +
              +
              Parameters:
              ef - The new default EF value to use. This value can be overridden on a per-query basis at query time.
              +
            • -
            - - - -
              -
            • -

              getEf

              -
              public int getEf()
              +
            • +
              +

              getEf

              +
              public int getEf()
              Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
              -
              -
              Returns:
              +
              +
              Returns:
              The current default EF value, used by the Index if no value is provided at query time.
              +
            • -
            - - - - - - - -
              -
            • -

              getNumDimensions

              -
              public int getNumDimensions()
              +
            • +
              +

              getNumDimensions

              +
              public int getNumDimensions()
              Get the number of dimensions used in this Index.
              -
              -
              Returns:
              +
              +
              Returns:
              The number of dimensions used by this Index, and which all vectors within this Index must have.
              +
            • -
            - - - -
              -
            • -

              setNumThreads

              -
              public void setNumThreads​(int numThreads)
              +
            • +
              +

              setNumThreads

              +
              public void setNumThreads(int numThreads)
              Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
              -
              -
              Parameters:
              +
              +
              Parameters:
              numThreads - The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call. Note that this affects the number of threads started for each method call - Voyager keeps no long-lived thread pool. For maximum efficiency, pass as much data as possible to each bulk-add or bulk-query method call to minimize overhead.
              +
            • -
            - - - -
              -
            • -

              getNumThreads

              -
              public int getNumThreads()
              +
            • +
              +

              getNumThreads

              +
              public int getNumThreads()
              Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
              -
              -
              Returns:
              +
              +
              Returns:
              The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call.
              +
            • -
            - - - -
              -
            • -

              saveIndex

              -
              public void saveIndex​(String pathToIndex)
              +
            • +
              +

              saveIndex

              +
              public void saveIndex(String pathToIndex)
              Save this Index to a file at the provided filename. This file can be reloaded by using Index.load(...).
              -
              -
              Parameters:
              +
              +
              Parameters:
              pathToIndex - The output filename to write to.
              +
            • -
            - - - -
              -
            • -

              saveIndex

              -
              public void saveIndex​(OutputStream outputStream)
              +
            • +
              +

              saveIndex

              +
              public void saveIndex(OutputStream outputStream)
              Save this Index to the provided output stream. The stream will not be closed automatically - be sure to close the stream saveIndex has completed. The data written to the stream can be reloaded by using Index.load(...).
              -
              -
              Parameters:
              +
              +
              Parameters:
              outputStream - The output stream to write to. This stream will not be closed automatically.
              +
            • -
            - - - -
              -
            • -

              addItem

              -
              public void addItem​(float[] vector)
              +
            • +
              +

              addItem

              +
              public void addItem(float[] vector)
              Add an item (a vector) to this Index. The item will automatically be given an identifier equal to the return value of getNumElements().
              -
              -
              Parameters:
              +
              +
              Parameters:
              vector - The vector to add to the index.
              -
              Throws:
              -
              RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
              +
              Throws:
              +
              RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
              +
            • -
            - - - -
              -
            • -

              addItem

              -
              public void addItem​(float[] vector,
              -                    long id)
              +
            • +
              +

              addItem

              +
              public void addItem(float[] vector, + long id)
              Add an item (a vector) to this Index with the provided identifier.
              -
              -
              Parameters:
              +
              +
              Parameters:
              vector - The vector to add to the index.
              id - The 64-bit integer denoting the identifier of this vector.
              -
              Throws:
              -
              RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
              +
              Throws:
              +
              RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
              +
            • -
            - - - -
              -
            • -

              addItems

              -
              public void addItems​(float[][] vectors,
              -                     int numThreads)
              +
            • +
              +

              addItems

              +
              public void addItems(float[][] vectors, + int numThreads)
              Add multiple items (vectors) to this Index.
              -
              -
              Parameters:
              +
              +
              Parameters:
              vectors - The vectors to add to the index.
              numThreads - The number of threads to use when adding the provided vectors. If -1 (the default), the number of CPUs available on the current machine will be used.
              -
              Throws:
              -
              RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
              +
              Throws:
              +
              RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
              +
            • -
            - - - -
              -
            • -

              addItems

              -
              public void addItems​(float[][] vectors,
              -                     long[] ids,
              -                     int numThreads)
              +
            • +
              +

              addItems

              +
              public void addItems(float[][] vectors, + long[] ids, + int numThreads)
              Add multiple items (vectors) to this Index.
              -
              -
              Parameters:
              +
              +
              Parameters:
              vectors - The vectors to add to the index.
              ids - The 64-bit identifiers that correspond with each of the provided vectors.
              numThreads - The number of threads to use when adding the provided vectors. If -1 (the @@ -926,149 +710,128 @@

              addItems

              causes a temporary C++ thread pool to be used. Instead of calling addItems(float[][],int) in a tight loop, consider passing more data to each addItems(float[][],int) call instead to reduce overhead.
              -
              Throws:
              -
              RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
              -
              RuntimeException - If the list of IDs does not have the same length as the list of +
              Throws:
              +
              RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
              +
              RuntimeException - If the list of IDs does not have the same length as the list of provided vectors.
              +
            • -
            - - - -
              -
            • -

              getVector

              -
              public float[] getVector​(long id)
              +
            • +
              +

              getVector

              +
              public float[] getVector(long id)
              Get the vector for the provided identifier.
              -
              -
              Parameters:
              +
              +
              Parameters:
              id - The identifier whose vector will be fetched.
              -
              Returns:
              +
              Returns:
              A float array representing the values of the vector.
              -
              Throws:
              -
              RuntimeException - If the provided identifier is not present in the Index.
              +
              Throws:
              +
              RuntimeException - If the provided identifier is not present in the Index.
              +
            • -
            - - - -
              -
            • -

              getVectors

              -
              public float[][] getVectors​(long[] ids)
              +
            • +
              +

              getVectors

              +
              public float[][] getVectors(long[] ids)
              Get the vectors for a provided array of identifiers.
              -
              -
              Parameters:
              +
              +
              Parameters:
              ids - The identifiers whose vector will be fetched.
              -
              Returns:
              +
              Returns:
              A nested float array representing the values of the vectors corresponding with each ID.
              -
              Throws:
              -
              RuntimeException - If any of the provided identifiers are not present in the Index.
              +
              Throws:
              +
              RuntimeException - If any of the provided identifiers are not present in the Index.
              +
            • -
            - - - -
              -
            • -

              getIDs

              -
              public long[] getIDs()
              +
            • +
              +

              getIDs

              +
              public long[] getIDs()
              Get the list of identifiers currently stored by this index.
              -
              -
              Returns:
              +
              +
              Returns:
              a long array of identifiers.
              +
            • -
            - - - -
              -
            • -

              query

              -
              public Index.QueryResults query​(float[] queryVector,
              -                                int k)
              +
            • +
              +

              query

              +
              public Index.QueryResults query(float[] queryVector, + int k)
              Query this Index for approximate nearest neighbors of a single query vector.
              -
              -
              Parameters:
              +
              +
              Parameters:
              queryVector - A query vector to use for searching.
              k - The number of nearest neighbors to return.
              -
              Returns:
              +
              Returns:
              A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
              -
              Throws:
              -
              RuntimeException - if fewer than k results can be found in the index.
              +
              Throws:
              +
              RuntimeException - if fewer than k results can be found in the index.
              +
            • -
            - - - -
              -
            • -

              query

              -
              public Index.QueryResults[] query​(float[][] queryVectors,
              -                                  int k,
              -                                  int numThreads)
              +
            • +
              +

              query

              +
              public Index.QueryResults[] query(float[][] queryVectors, + int k, + int numThreads)
              Query this Index for approximate nearest neighbors of multiple query vectors.
              -
              -
              Parameters:
              +
              +
              Parameters:
              queryVectors - The query vectors to use for searching.
              k - The number of nearest neighbors to return for each query vector
              numThreads - The number of threads to use when searching. If -1, all available CPU cores will be used. Note that passing a number of threads other than 1 will cause a temporary C++ thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing more data to each call instead to reduce overhead.
              -
              Returns:
              +
              Returns:
              An array of Index.QueryResults objects, each containing the neighbors found that are (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
              -
              Throws:
              -
              RuntimeException - if fewer than k results can be found in the index for one or +
              Throws:
              +
              RuntimeException - if fewer than k results can be found in the index for one or more queries.
              +
            • -
            - - - -
              -
            • -

              query

              -
              public Index.QueryResults query​(float[] queryVector,
              -                                int k,
              -                                long queryEf)
              +
            • +
              +

              query

              +
              public Index.QueryResults query(float[] queryVector, + int k, + long queryEf)
              Query this Index for approximate nearest neighbors of a single query vector.
              -
              -
              Parameters:
              +
              +
              Parameters:
              queryVector - A query vector to use for searching.
              k - The number of nearest neighbors to return.
              queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
              -
              Returns:
              +
              Returns:
              A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
              -
              Throws:
              -
              RuntimeException - if fewer than k results can be found in the index.
              +
              Throws:
              +
              RuntimeException - if fewer than k results can be found in the index.
              +
            • -
            - - - -
              -
            • -

              query

              -
              public Index.QueryResults[] query​(float[][] queryVectors,
              -                                  int k,
              -                                  int numThreads,
              -                                  long queryEf)
              +
            • +
              +

              query

              +
              public Index.QueryResults[] query(float[][] queryVectors, + int k, + int numThreads, + long queryEf)
              Query this Index for approximate nearest neighbors of multiple query vectors.
              -
              -
              Parameters:
              +
              +
              Parameters:
              queryVectors - The query vectors to use for searching.
              k - The number of nearest neighbors to return for each query vector
              numThreads - The number of threads to use when searching. If -1, all available CPU cores @@ -1077,194 +840,115 @@

              query

              more data to each call instead to reduce overhead.
              queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
              -
              Returns:
              +
              Returns:
              An array of Index.QueryResults objects, each containing the neighbors found that are (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
              -
              Throws:
              -
              RuntimeException - if fewer than k results can be found in the index for one or +
              Throws:
              +
              RuntimeException - if fewer than k results can be found in the index for one or more queries.
              +
            • -
            - - - -
              -
            • -

              markDeleted

              -
              public void markDeleted​(long label)
              +
            • +
              +

              markDeleted

              +
              public void markDeleted(long label)
              Mark an element of the index as deleted. Deleted elements will be skipped when querying, but will still be present in the index.
              -
              -
              Parameters:
              +
              +
              Parameters:
              label - The ID of the element to mark as deleted.
              -
              Throws:
              -
              RuntimeException - If the provided identifier is not present in the Index.
              +
              Throws:
              +
              RuntimeException - If the provided identifier is not present in the Index.
              +
            • -
            - - - -
              -
            • -

              unmarkDeleted

              -
              public void unmarkDeleted​(long label)
              +
            • +
              +

              unmarkDeleted

              +
              public void unmarkDeleted(long label)
              Un-mark an element of the index as deleted, making it available again.
              -
              -
              Parameters:
              +
              +
              Parameters:
              label - The ID of the element to unmark as deleted.
              -
              Throws:
              -
              RuntimeException - If the provided identifier is not present in the Index.
              +
              Throws:
              +
              RuntimeException - If the provided identifier is not present in the Index.
              +
            • -
            - - - -
              -
            • -

              resizeIndex

              -
              public void resizeIndex​(long newSize)
              +
            • +
              +

              resizeIndex

              +
              public void resizeIndex(long newSize)
              Change the maximum number of elements currently storable by this Index. This operation reallocates the memory used by the index and can be quite slow, so it may be useful to set the maximum number of elements in advance if that number is known.
              -
              -
              Parameters:
              +
              +
              Parameters:
              newSize - The new number of maximum elements to resize this Index to.
              +
            • -
            - - - -
              -
            • -

              getMaxElements

              -
              public long getMaxElements()
              +
            • +
              +

              getMaxElements

              +
              public long getMaxElements()
              Get the maximum number of elements currently storable by this Index. If more elements are added than getMaxElements(), the index will be automatically (but slowly) resized.
              -
              -
              Returns:
              +
              +
              Returns:
              The number of elements (vectors) that are currently storable in this Index.
              +
            • -
            - - - -
              -
            • -

              getNumElements

              -
              public long getNumElements()
              +
            • +
              +

              getNumElements

              +
              public long getNumElements()
              Get the number of elements currently in this Index.
              -
              -
              Returns:
              +
              +
              Returns:
              The number of elements (vectors) in this Index. This count includes any deleted elements.
              +
            • -
            - - - -
              -
            • -

              getEfConstruction

              -
              public long getEfConstruction()
              +
            • +
              +

              getEfConstruction

              +
              public long getEfConstruction()
              Get the EF Construction value used when adding new elements to this Index.
              -
              -
              Returns:
              +
              +
              Returns:
              The current EF Construction value (i.e.: the number of neighbors to search for when adding new elements).
              +
            • -
            - - - -
              -
            • -

              getM

              -
              public long getM()
              +
            • +
              +

              getM

              +
              public long getM()
              Get the M value used when adding new elements to this Index.
              -
              -
              Returns:
              +
              +
              Returns:
              The current M value (i.e.: the number of links between adjacent vectors to create when adding elements).
              -
            • -
            +
      -
    - - + +
    -
    -
    - -
    - - - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html index ecb59a12..b28fa9ee 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -1,388 +1,219 @@ - - -StringIndex.QueryResults (voyager 2.0.2 API) + +StringIndex.QueryResults (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    +
    + +
    - +
    +
    - -

    Class StringIndex.QueryResults

    + +

    Class StringIndex.QueryResults

    -
    - -
    -
      -
    • -
      +
      java.lang.Object +
      com.spotify.voyager.jni.StringIndex.QueryResults
      +
      +
      +
      Enclosing class:
      StringIndex

      -
      public static class StringIndex.QueryResults
      -extends Object
      +
      public static class StringIndex.QueryResults +extends Object
      A wrapper class for nearest neighbor query results.
      -
    • -
    -
    -
    -
    -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            QueryResults

            -
            public QueryResults​(String[] names,
            -                    float[] distances)
            -
          • -
          +
        • +
          +

          Constructor Details

          +
            +
          • +
            +

            QueryResults

            +
            public QueryResults(String[] names, + float[] distances)
            +
          +
        • -
          -
            -
          • - - -

            Method Detail

            - - - -
              -
            • -

              getNames

              -
              public String[] getNames()
              +
            • +
              +

              Method Details

              +
                +
              • +
                +

                getNames

                +
                public String[] getNames()
                +
              • -
              - - - -
                -
              • -

                getDistances

                -
                public float[] getDistances()
                +
              • +
                +

                getDistances

                +
                public float[] getDistances()
                +
              • -
              - - - -
                -
              • -

                getName

                -
                public String getName​(int index)
                +
              • +
                +

                getName

                +
                public String getName(int index)
                +
              • -
              - - - -
                -
              • -

                getDistance

                -
                public float getDistance​(int index)
                +
              • +
                +

                getDistance

                +
                public float getDistance(int index)
                +
              • -
              - - - -
                -
              • -

                getNumResults

                -
                public int getNumResults()
                +
              • +
                +

                getNumResults

                +
                public int getNumResults()
                +
              • -
              - - - - +
        -
    -
    -
    + +
    -
    -
    - -
    - - - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.html b/docs/java/com/spotify/voyager/jni/StringIndex.html index cf4753c9..1f311a23 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.html @@ -1,378 +1,262 @@ - - -StringIndex (voyager 2.0.2 API) + +StringIndex (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + - +
    +
    - -

    Class StringIndex

    + +

    Class StringIndex

    -
    - -
    -
      -
    • -
      +
      java.lang.Object +
      com.spotify.voyager.jni.StringIndex
      +
      +
      +
      All Implemented Interfaces:
      -
      Closeable, AutoCloseable
      +
      Closeable, AutoCloseable

      -
      public class StringIndex
      -extends Object
      -implements Closeable
      +
      public class StringIndex +extends Object +implements Closeable
      Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.

      StringIndex can only accommodate up to 2^31 - 1 (2.1B) items, despite typical Voyager indices allowing up to 2^63 - 1 (9e18) items.

      -
    • -
    -
    -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Nested Class Summary

          - - - - - - - - - - - - -
          Nested Classes 
          Modifier and TypeClassDescription
          static class StringIndex.QueryResults +
        • +
          +

          Nested Class Summary

          +
          Nested Classes
          +
          +
          Modifier and Type
          +
          Class
          +
          Description
          +
          static class 
          + +
          A wrapper class for nearest neighbor query results.
          -
        • -
        • -
        +
    +
    + -
    -
      -
    • - - -

      Constructor Summary

      - - - - - - - - - - - - - - -
      Constructors 
      ConstructorDescription
      StringIndex​(Index.SpaceType spaceType, - int numDimensions) +
    • +
      +

      Constructor Summary

      +
      Constructors
      +
      +
      Constructor
      +
      Description
      +
      StringIndex(Index.SpaceType spaceType, + int numDimensions)
      +
      Instantiate a new empty index with the specified space type and dimensionality
      -
    • StringIndex​(Index.SpaceType spaceType, - int numDimensions, - long indexM, - long efConstruction, - long randomSeed, - long maxElements, - Index.StorageDataType storageDataType) + +
      StringIndex(Index.SpaceType spaceType, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
      +
      Instantiate an empty index with the specified index parameters
      -
      -
    • -
    +
    +
    + -
    - + +
    void
    +
    saveIndex(String outputDirectory, + String indexFilename, + String nameListFilename)
    +
     
    + + + +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    - -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            StringIndex

            -
            public StringIndex​(Index.SpaceType spaceType,
            -                   int numDimensions)
            +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              StringIndex

              +
              public StringIndex(Index.SpaceType spaceType, + int numDimensions)
              Instantiate a new empty index with the specified space type and dimensionality
              -
              -
              Parameters:
              +
              +
              Parameters:
              spaceType - Type of space and distance calculation used when determining distance between embeddings in the index, @see com.spotify.voyager.jni.Index.SpaceType
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              +
            • -
            - - - -
              -
            • -

              StringIndex

              -
              public StringIndex​(Index.SpaceType spaceType,
              -                   int numDimensions,
              -                   long indexM,
              -                   long efConstruction,
              -                   long randomSeed,
              -                   long maxElements,
              -                   Index.StorageDataType storageDataType)
              +
            • +
              +

              StringIndex

              +
              public StringIndex(Index.SpaceType spaceType, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
              Instantiate an empty index with the specified index parameters
              -
              -
              Parameters:
              +
              +
              Parameters:
              spaceType - Type of space and distance calculation used when determining distance between embeddings in the index, @see com.spotify.voyager.jni.Index.SpaceType
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              @@ -385,207 +269,180 @@

              StringIndex

              storageDataType - Type to store the embedding values as, @see com.spotify.voyager.jni.StorageDataType
              -
            • -
            +
        + -
        -
          -
        • - - -

          Method Detail

          - - - -
            -
          • -

            load

            -
            public static StringIndex load​(String indexFilename,
            -                               String nameListFilename,
            -                               Index.SpaceType spaceType,
            -                               int numDimensions,
            -                               Index.StorageDataType storageDataType)
            +
          • +
            +

            Method Details

            +
              +
            • +
              +

              load

              +
              public static StringIndex load(String indexFilename, + String nameListFilename, + Index.SpaceType spaceType, + int numDimensions, + Index.StorageDataType storageDataType)
              Load a previously constructed index from the provided file location. It is important that the dimensions, space type, and storage data type provided are the same that the index was constructed with.
              -
              -
              Parameters:
              +
              +
              Parameters:
              indexFilename - Filename of the underlying HNSW index
              nameListFilename - Filename of the JSON encoded names list
              spaceType -
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              storageDataType -
              -
              Returns:
              +
              Returns:
              reference to the loaded StringIndex
              -
              See Also:
              -
              Index.SpaceType, -Index.StorageDataType
              +
              See Also:
              +
              + +
              +
            • -
            - - - -
              -
            • -

              load

              -
              public static StringIndex load​(InputStream indexInputStream,
              -                               InputStream nameListInputStream,
              -                               Index.SpaceType spaceType,
              -                               int numDimensions,
              -                               Index.StorageDataType storageDataType)
              +
            • +
              +

              load

              +
              public static StringIndex load(InputStream indexInputStream, + InputStream nameListInputStream, + Index.SpaceType spaceType, + int numDimensions, + Index.StorageDataType storageDataType)
              Load a previously constructed index from the provided input streams. It is important that the dimensions, space type, and storage data type provided are the same that the index was constructed with.
              -
              -
              Parameters:
              +
              +
              Parameters:
              indexInputStream - input stream pointing to the underlying HNSW index
              nameListInputStream - input stream pointing to the JSON encoded names list
              spaceType -
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              storageDataType -
              -
              Returns:
              +
              Returns:
              reference to the loaded StringIndex
              -
              See Also:
              -
              Index.SpaceType, -Index.StorageDataType
              +
              See Also:
              +
              + +
              +
            • -
            - - - -
              -
            • -

              load

              -
              public static StringIndex load​(String indexFilename,
              -                               String nameListFilename)
              +
            • +
              +

              load

              +
              public static StringIndex load(String indexFilename, + String nameListFilename)
              Load a previously constructed index from the provided file location. The space type, dimensions, and storage data type are read from the file metadata.
              -
              -
              Parameters:
              +
              +
              Parameters:
              indexFilename - Filename of the underlying HNSW index
              nameListFilename - Filename of the JSON encoded names list
              -
              Returns:
              +
              Returns:
              reference to the loaded StringIndex
              +
            • -
            - - - -
              -
            • -

              load

              -
              public static StringIndex load​(InputStream indexInputStream,
              -                               InputStream nameListInputStream)
              +
            • +
              +

              load

              +
              public static StringIndex load(InputStream indexInputStream, + InputStream nameListInputStream)
              Load a previously constructed index from the provided input stream. The space type, dimensions, and storage data type are read from the file metadata.
              -
              -
              Parameters:
              +
              +
              Parameters:
              indexInputStream - input stream pointing to the underlying HNSW index
              nameListInputStream - input stream pointing to the JSON encoded names list
              -
              Returns:
              +
              Returns:
              reference to the loaded StringIndex
              +
            • -
            - - - -
              -
            • -

              saveIndex

              -
              public void saveIndex​(String outputDirectory)
              -               throws IOException
              +
            • +
              +

              saveIndex

              +
              public void saveIndex(String outputDirectory) + throws IOException
              Save the underlying index and JSON encoded name list to the provided output directory
              -
              -
              Parameters:
              +
              +
              Parameters:
              outputDirectory - directory to output files to
              -
              Throws:
              -
              IOException - when there is an error writing to JSON or saving to disk
              +
              Throws:
              +
              IOException - when there is an error writing to JSON or saving to disk
              +
            • -
            - - - - - - - -
              -
            • -

              saveIndex

              -
              public void saveIndex​(OutputStream indexOutputStream,
              -                      OutputStream namesListOutputStream)
              -               throws IOException
              +
            • +
              +

              saveIndex

              +
              public void saveIndex(OutputStream indexOutputStream, + OutputStream namesListOutputStream) + throws IOException
              Save the underlying HNSW index and JSON encoded names list to the provided output streams
              -
              -
              Parameters:
              +
              +
              Parameters:
              indexOutputStream - output stream pointing to the location to save the HNSW index
              namesListOutputStream - output stream pointing to the location to save the JSON names list
              -
              Throws:
              -
              IOException - when there is an error writing to JSON or the output streams
              +
              Throws:
              +
              IOException - when there is an error writing to JSON or the output streams
              +
            • -
            - - - -
              -
            • -

              addItem

              -
              public void addItem​(String name,
              -                    float[] vector)
              +
            • +
              +

              addItem

              +
              public void addItem(String name, + float[] vector)
              +
            • -
            - - - -
              -
            • -

              addItem

              -
              public void addItem​(String name,
              -                    List<Float> vector)
              +
            • +
              +

              addItem

              +
              public void addItem(String name, + List<Float> vector)
              +
            • -
            - - - - - - - -
              -
            • -

              query

              -
              public StringIndex.QueryResults query​(float[] queryVector,
              -                                      int numNeighbors,
              -                                      int ef)
              +
            • +
              +

              query

              +
              public StringIndex.QueryResults query(float[] queryVector, + int numNeighbors, + int ef)
              Find the nearest neighbors of the provided embedding.
              -
              -
              Parameters:
              +
              +
              Parameters:
              queryVector - The vector to center the search around.
              numNeighbors - The number of neighbors to return. The number of results returned may be smaller than this value if the index does not contain enough items.
              @@ -593,100 +450,39 @@

              query

              Increasing this value can improve recall (up to a point) at the cost of increased search latency. The minimum value of this parameter is the requested number of neighbors, and the maximum value is the number of items in the index. -
              Returns:
              +
              Returns:
              a QueryResults object, containing the names of the neighbors and each neighbor's distance from the query vector, sorted in ascending order of distance
              +
            • -
            - - - - +
      -
    - - + +
    -
    -
    - -
    - - - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html index 39135421..bd64d03b 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html @@ -1,226 +1,114 @@ - - -Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.2 API) + +Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -

    Uses of Class
    com.spotify.voyager.jni.Index.QueryResults

    +

    Uses of Class
    com.spotify.voyager.jni.Index.QueryResults

    -
    -
    +
    - - -
    + - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html index 2ba232fd..83a120fc 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html @@ -1,315 +1,186 @@ - - -Uses of Class com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.2 API) + +Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -

    Uses of Class
    com.spotify.voyager.jni.Index.SpaceType

    +

    Uses of Enum
    com.spotify.voyager.jni.Index.SpaceType

    -
    -
    +
    - - -
    + - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html index b495e421..d00adb08 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html @@ -1,293 +1,168 @@ - - -Uses of Class com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.2 API) + +Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -

    Uses of Class
    com.spotify.voyager.jni.Index.StorageDataType

    +

    Uses of Enum
    com.spotify.voyager.jni.Index.StorageDataType

    -
    -
    +
    - - -
    + - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.html b/docs/java/com/spotify/voyager/jni/class-use/Index.html index b0d432f3..97cab75f 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.html @@ -1,228 +1,116 @@ - - -Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.2 API) + +Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -

    Uses of Class
    com.spotify.voyager.jni.Index

    +

    Uses of Class
    com.spotify.voyager.jni.Index

    -
    -
    +
    - - -
    + - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html index c7a3fcb3..389d8018 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html @@ -1,199 +1,93 @@ - - -Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.2 API) + +Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex.QueryResults

    +

    Uses of Class
    com.spotify.voyager.jni.StringIndex.QueryResults

    -
    -
    +
    - - -
    + - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html index 662fe29c..0bb3341f 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html @@ -1,228 +1,116 @@ - - -Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.2 API) + +Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex

    +

    Uses of Class
    com.spotify.voyager.jni.StringIndex

    -
    -
    +
    - - -
    + - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/package-summary.html b/docs/java/com/spotify/voyager/jni/package-summary.html index ac831a0d..e8fea423 100644 --- a/docs/java/com/spotify/voyager/jni/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/package-summary.html @@ -1,217 +1,136 @@ - - -com.spotify.voyager.jni (voyager 2.0.2 API) + +com.spotify.voyager.jni (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -

    Package com.spotify.voyager.jni

    +

    Package com.spotify.voyager.jni

    -
    -
    - - +
    +
    package com.spotify.voyager.jni
    +
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    -
      -
    • - - - - - - - - - - - - - - - - - - - - - - - - -
      Class Summary 
      ClassDescription
      Index +
      +
        +
      • + +
      • +
      • +
        +
        +
        +
        +
        Class
        +
        Description
        + +
        A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
        -
      Index.QueryResults + + +
      A container for query results, returned by Index.
      -
      StringIndex + + +
      +
      The space, also known as distance metric, to use when searching.
      +
      + +
      +
      The datatype used to use when storing vectors on disk.
      +
      + +
      Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
      -
      StringIndex.QueryResults + + +
      A wrapper class for nearest neighbor query results.
      -
      -
    • -
    • - - - - - - - - - - - - - - - - -
      Enum Summary 
      EnumDescription
      Index.SpaceType -
      The space, also known as distance metric, to use when searching.
      -
      Index.StorageDataType -
      The datatype used to use when storing vectors on disk.
      -
      +
    +
    +
    + - + - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/package-tree.html b/docs/java/com/spotify/voyager/jni/package-tree.html index a4c770d4..400c1cda 100644 --- a/docs/java/com/spotify/voyager/jni/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/package-tree.html @@ -1,182 +1,94 @@ - - -com.spotify.voyager.jni Class Hierarchy (voyager 2.0.2 API) + +com.spotify.voyager.jni Class Hierarchy (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +

    Hierarchy For Package com.spotify.voyager.jni

    -Package Hierarchies: +Package Hierarchies:
    -
    -
    +

    Class Hierarchy

    -
    +

    Enum Hierarchy

    -
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/package-use.html b/docs/java/com/spotify/voyager/jni/package-use.html index a8c6e149..6fd42b41 100644 --- a/docs/java/com/spotify/voyager/jni/package-use.html +++ b/docs/java/com/spotify/voyager/jni/package-use.html @@ -1,220 +1,110 @@ - - -Uses of Package com.spotify.voyager.jni (voyager 2.0.2 API) + +Uses of Package com.spotify.voyager.jni (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +

    Uses of Package
    com.spotify.voyager.jni

    -
    -
    +
    + -
    +
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html index 777a6d58..0a0d318f 100644 --- a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html @@ -1,307 +1,163 @@ - - -JniLibExtractor (voyager 2.0.2 API) + +JniLibExtractor (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + - +
    +
    - -

    Class JniLibExtractor

    + +

    Class JniLibExtractor

    -
    - -
    -
      -
    • -
      -
      public class JniLibExtractor
      -extends Object
      -
    • -
    +
    java.lang.Object +
    com.spotify.voyager.jni.utils.JniLibExtractor
    -
    -
    -
    -
      -
    • + +
      +
        -
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            JniLibExtractor

            -
            public JniLibExtractor()
            -
          • -
          +
        • +
          +

          Constructor Details

          +
            +
          • +
            +

            JniLibExtractor

            +
            public JniLibExtractor()
            +
          - -
          -
            -
          • - - -

            Method Detail

            - - - -
              -
            • -

              extractBinaries

              -
              public static String extractBinaries​(String libname)
            • -
            + +
          • +
            +

            Method Details

            +
              +
            • +
              +

              extractBinaries

              +
              public static String extractBinaries(String libname)
              +
          -
    -
    -
    + +
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html index bc91109b..3a7bafd0 100644 --- a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html @@ -1,330 +1,181 @@ - - -TinyJson (voyager 2.0.2 API) + +TinyJson (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + - +
    +
    - -

    Class TinyJson

    + +

    Class TinyJson

    -
    - -
    -
      -
    • +
      java.lang.Object +
      com.spotify.voyager.jni.utils.TinyJson
      +
      +

      -
      public class TinyJson
      -extends Object
      +
      public class TinyJson +extends Object
      A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
      -
    • -
    -
    -
    -
    -
    -
    -
    -
    + +
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html index 2b3d08bd..a3d82dbe 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html @@ -1,149 +1,62 @@ - - -Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.2 API) + +Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -

    Uses of Class
    com.spotify.voyager.jni.utils.JniLibExtractor

    +

    Uses of Class
    com.spotify.voyager.jni.utils.JniLibExtractor

    -
    No usage of com.spotify.voyager.jni.utils.JniLibExtractor
    -
    +No usage of com.spotify.voyager.jni.utils.JniLibExtractor
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html index b7b3848f..f8708b1c 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html @@ -1,149 +1,62 @@ - - -Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.2 API) + +Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -

    Uses of Class
    com.spotify.voyager.jni.utils.TinyJson

    +

    Uses of Class
    com.spotify.voyager.jni.utils.TinyJson

    -
    No usage of com.spotify.voyager.jni.utils.TinyJson
    -
    +No usage of com.spotify.voyager.jni.utils.TinyJson
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/utils/package-summary.html b/docs/java/com/spotify/voyager/jni/utils/package-summary.html index 94a71419..1902c967 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-summary.html @@ -1,174 +1,105 @@ - - -com.spotify.voyager.jni.utils (voyager 2.0.2 API) + +com.spotify.voyager.jni.utils (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    +
    + +
    +
    -

    Package com.spotify.voyager.jni.utils

    +

    Package com.spotify.voyager.jni.utils

    +
    +
    +
    package com.spotify.voyager.jni.utils
    +
    +
      +
    • + +
    -
    +
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/utils/package-tree.html b/docs/java/com/spotify/voyager/jni/utils/package-tree.html index 9f26b212..f1ef455a 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-tree.html @@ -1,165 +1,77 @@ - - -com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.2 API) + +com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +

    Hierarchy For Package com.spotify.voyager.jni.utils

    -Package Hierarchies: +Package Hierarchies:
    -
    -
    +

    Class Hierarchy

    -
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/jni/utils/package-use.html b/docs/java/com/spotify/voyager/jni/utils/package-use.html index 1c089783..be4daedf 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-use.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-use.html @@ -1,149 +1,62 @@ - - -Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.2 API) + +Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +

    Uses of Package
    com.spotify.voyager.jni.utils

    -
    No usage of com.spotify.voyager.jni.utils
    -
    +No usage of com.spotify.voyager.jni.utils
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/package-summary.html b/docs/java/com/spotify/voyager/package-summary.html index 6ed69d00..4db475e4 100644 --- a/docs/java/com/spotify/voyager/package-summary.html +++ b/docs/java/com/spotify/voyager/package-summary.html @@ -1,105 +1,67 @@ - - -com.spotify.voyager (voyager 2.0.2 API) + +com.spotify.voyager (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    +
    + +
    +
    -

    Package com.spotify.voyager

    +

    Package com.spotify.voyager

    -
    -
    - - +
    +
    package com.spotify.voyager
    +
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector data. For most use cases, Index will be the primary interface to Voyager's functionality. @@ -125,54 +87,29 @@

    Package com.spotify.voyager

    index.saveIndex("my_tiny_index.voy");
    +
    +
      +
    • + +
    • +
    +
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/package-tree.html b/docs/java/com/spotify/voyager/package-tree.html index b658c470..4b97bc8c 100644 --- a/docs/java/com/spotify/voyager/package-tree.html +++ b/docs/java/com/spotify/voyager/package-tree.html @@ -1,152 +1,66 @@ - - -com.spotify.voyager Class Hierarchy (voyager 2.0.2 API) + +com.spotify.voyager Class Hierarchy (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +

    Hierarchy For Package com.spotify.voyager

    -Package Hierarchies: +Package Hierarchies:
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/com/spotify/voyager/package-use.html b/docs/java/com/spotify/voyager/package-use.html index b672c230..f2f174e9 100644 --- a/docs/java/com/spotify/voyager/package-use.html +++ b/docs/java/com/spotify/voyager/package-use.html @@ -1,149 +1,62 @@ - - -Uses of Package com.spotify.voyager (voyager 2.0.2 API) + +Uses of Package com.spotify.voyager (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +

    Uses of Package
    com.spotify.voyager

    -
    No usage of com.spotify.voyager
    -
    +No usage of com.spotify.voyager
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/help-doc.html b/docs/java/help-doc.html index a0f372ba..24648553 100644 --- a/docs/java/help-doc.html +++ b/docs/java/help-doc.html @@ -1,115 +1,108 @@ - - -API Help (voyager 2.0.2 API) + +API Help (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    +
    + +
    +
    -
    -

    How This API Document Is Organized

    -
    This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
    +

    JavaDoc Help

    + +
    +
    +

    Navigation

    +Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces +
    -
    -
      -
    • -
      -

      Overview

      +
      +
      +

      Kinds of Pages

      +The following sections describe the different kinds of pages in this collection. +
      +

      Overview

      The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

      -
    • -
    • -
      -

      Package

      -

      Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:

      -
        +
        +

        Package

        +

        Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

        +
        • Interfaces
        • Classes
        • Enums
        • @@ -118,12 +111,10 @@

          Package

        • Annotation Types
        - -
      • -
        -

        Class or Interface

        -

        Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

        -
          +
          +

          Class or Interface

          +

          Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

          +
          • Class Inheritance Diagram
          • Direct Subclasses
          • All Known Subinterfaces
          • @@ -132,150 +123,64 @@

            Class or Interface

          • Class or Interface Description

          -
            +
            • Nested Class Summary
            • +
            • Enum Constant Summary
            • Field Summary
            • Property Summary
            • Constructor Summary
            • Method Summary
            • -
            -
            -
              -
            • Field Detail
            • -
            • Property Detail
            • -
            • Constructor Detail
            • -
            • Method Detail
            • -
            -

            Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

            -
          - -
        • -
          -

          Annotation Type

          -

          Each annotation type has its own separate page with the following sections:

          -
            -
          • Annotation Type Declaration
          • -
          • Annotation Type Description
          • Required Element Summary
          • Optional Element Summary
          • -
          • Element Detail
          -
          -
        • -
        • -
          -

          Enum

          -

          Each enum has its own separate page with the following sections:

          -
            -
          • Enum Declaration
          • -
          • Enum Description
          • -
          • Enum Constant Summary
          • -
          • Enum Constant Detail
          • +
            +
              +
            • Enum Constant Details
            • +
            • Field Details
            • +
            • Property Details
            • +
            • Constructor Details
            • +
            • Method Details
            • +
            • Element Details
            +

            Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

            +

            The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

          -
        • -
        • -
          -

          Use

          -

          Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

          +
          +

          Other Files

          +

          Packages and modules may contain pages with additional information related to the declarations nearby.

          -
        • -
        • -
          -

          Tree (Class Hierarchy)

          +
          +

          Use

          +

          Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

          +
          +
          +

          Tree (Class Hierarchy)

          There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

          -
            -
          • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
          • -
          • When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
          • +
              +
            • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
            • +
            • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
          -
        • -
        • -
          -

          Deprecated API

          -

          The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

          -
          -
        • -
        • -
          -

          Index

          -

          The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.

          -
          -
        • -
        • -
          -

          All Classes

          -

          The All Classes link shows all classes and interfaces except non-static nested types.

          -
          -
        • -
        • -
          -

          Serialized Form

          -

          Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

          +
          +

          All Packages

          +

          The All Packages page contains an alphabetic index of all packages contained in the documentation.

          -
        • -
        • -
          -

          Constant Field Values

          -

          The Constant Field Values page lists the static final fields and their values.

          +
          +

          All Classes and Interfaces

          +

          The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

          -
        • -
        • -
          -

          Search

          -

          You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".

          +
          +

          Index

          +

          The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

          -
        • -
        +

    -This help file applies to API documentation generated by the standard doclet.
    -
    +This help file applies to API documentation generated by the standard doclet.
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/index-all.html b/docs/java/index-all.html index 5190f72f..ef2d63de 100644 --- a/docs/java/index-all.html +++ b/docs/java/index-all.html @@ -1,136 +1,89 @@ - - -Index (voyager 2.0.2 API) + +Index (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    -
    A C D E F G I J L M Q R S T U V W 
    All Classes All Packages - - -

    A

    -
    -
    addItem(float[]) - Method in class com.spotify.voyager.jni.Index
    +
    +

    Index

    +
    +A C D E F G I J L M Q R S T U V W 
    All Classes and Interfaces|All Packages +

    A

    +
    +
    addItem(float[]) - Method in class com.spotify.voyager.jni.Index
    Add an item (a vector) to this Index.
    -
    addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
    +
    addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
    Add an item (a vector) to this Index with the provided identifier.
    -
    addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
    +
    addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
    Add multiple items (vectors) to this Index.
    -
    addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
    +
    addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
    Add multiple items (vectors) to this Index.
    -
    addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
     
    - - - -

    C

    -
    -
    close() - Method in class com.spotify.voyager.jni.Index
    +

    C

    +
    +
    close() - Method in class com.spotify.voyager.jni.Index
    Close this Index and release any memory held by it.
    -
    close() - Method in class com.spotify.voyager.jni.StringIndex
    +
    close() - Method in class com.spotify.voyager.jni.StringIndex
     
    com.spotify.voyager - package com.spotify.voyager
    @@ -143,428 +96,341 @@

    C

    com.spotify.voyager.jni.utils - package com.spotify.voyager.jni.utils
     
    -
    Cosine - com.spotify.voyager.jni.Index.SpaceType
    +
    Cosine - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    Cosine distance; i.e.
    - - - -

    D

    -
    -
    distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
    +

    D

    +
    +
    distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
    A list of distances from each item ID to the query vector for this query.
    - - - -

    E

    -
    -
    E4M3 - com.spotify.voyager.jni.Index.StorageDataType
    +

    E

    +
    +
    E4M3 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    A custom 8-bit floating point data type with range [-448, 448] and variable precision.
    -
    Euclidean - com.spotify.voyager.jni.Index.SpaceType
    +
    Euclidean - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    Euclidean distance, also known as L2 distance.
    -
    extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
    +
    extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
     
    - - - -

    F

    -
    -
    finalize() - Method in class com.spotify.voyager.jni.Index
    +

    F

    +
    +
    finalize() - Method in class com.spotify.voyager.jni.Index
     
    -
    Float32 - com.spotify.voyager.jni.Index.StorageDataType
    +
    Float32 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    A 32-bit floating point ("Float") data type.
    -
    Float8 - com.spotify.voyager.jni.Index.StorageDataType
    +
    Float8 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    An 8-bit floating point data type that expects all values to be on [-1, 1].
    - - - -

    G

    -
    -
    getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +

    G

    +
    +
    getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
    Retrieve the list of distances between query vectors and item vectors for the results of this query.
    -
    getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getEf() - Method in class com.spotify.voyager.jni.Index
    +
    getEf() - Method in class com.spotify.voyager.jni.Index
    Get the default EF ("query search depth") that will be uses when Index.query(float[], int) is called.
    -
    getEfConstruction() - Method in class com.spotify.voyager.jni.Index
    +
    getEfConstruction() - Method in class com.spotify.voyager.jni.Index
    Get the EF Construction value used when adding new elements to this Index.
    -
    getIDs() - Method in class com.spotify.voyager.jni.Index
    +
    getIDs() - Method in class com.spotify.voyager.jni.Index
    Get the list of identifiers currently stored by this index.
    -
    getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
    Retrieve the list of item IDs ("labels") returned by this query.
    -
    getM() - Method in class com.spotify.voyager.jni.Index
    +
    getM() - Method in class com.spotify.voyager.jni.Index
    Get the M value used when adding new elements to this Index.
    -
    getMaxElements() - Method in class com.spotify.voyager.jni.Index
    +
    getMaxElements() - Method in class com.spotify.voyager.jni.Index
    Get the maximum number of elements currently storable by this Index.
    -
    getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNumDimensions() - Method in class com.spotify.voyager.jni.Index
    +
    getNumDimensions() - Method in class com.spotify.voyager.jni.Index
    Get the number of dimensions used in this Index.
    -
    getNumElements() - Method in class com.spotify.voyager.jni.Index
    +
    getNumElements() - Method in class com.spotify.voyager.jni.Index
    Get the number of elements currently in this Index.
    -
    getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNumThreads() - Method in class com.spotify.voyager.jni.Index
    +
    getNumThreads() - Method in class com.spotify.voyager.jni.Index
    Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
    -
    getSpace() - Method in class com.spotify.voyager.jni.Index
    +
    getSpace() - Method in class com.spotify.voyager.jni.Index
    Get the Index.SpaceType that this Index uses to store and compare vectors.
    -
    getVector(long) - Method in class com.spotify.voyager.jni.Index
    +
    getVector(long) - Method in class com.spotify.voyager.jni.Index
    Get the vector for the provided identifier.
    -
    getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
    +
    getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
    Get the vectors for a provided array of identifiers.
    - - - -

    I

    -
    -
    Index - Class in com.spotify.voyager.jni
    +

    I

    +
    +
    Index - Class in com.spotify.voyager.jni
    A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
    -
    Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
    +
    Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
    Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
    +
    Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
    Index.QueryResults - Class in com.spotify.voyager.jni
    +
    Index.QueryResults - Class in com.spotify.voyager.jni
    A container for query results, returned by Index.
    -
    Index.SpaceType - Enum in com.spotify.voyager.jni
    +
    Index.SpaceType - Enum in com.spotify.voyager.jni
    The space, also known as distance metric, to use when searching.
    -
    Index.StorageDataType - Enum in com.spotify.voyager.jni
    +
    Index.StorageDataType - Enum in com.spotify.voyager.jni
    The datatype used to use when storing vectors on disk.
    -
    InnerProduct - com.spotify.voyager.jni.Index.SpaceType
    +
    InnerProduct - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    Inner (dot) product.
    - - - -

    J

    -
    -
    JniLibExtractor - Class in com.spotify.voyager.jni.utils
    +

    J

    +
    +
    JniLibExtractor - Class in com.spotify.voyager.jni.utils
     
    -
    JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
    +
    JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
     
    - - - -

    L

    -
    -
    labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
    +

    L

    +
    +
    labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
    A list of item IDs ("labels").
    -
    load(InputStream) - Static method in class com.spotify.voyager.jni.Index
    +
    load(InputStream) - Static method in class com.spotify.voyager.jni.Index
    Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
    -
    load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    +
    load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
    -
    load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided input stream.
    -
    load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided input streams.
    -
    load(String) - Static method in class com.spotify.voyager.jni.Index
    +
    load(String) - Static method in class com.spotify.voyager.jni.Index
    Load a Voyager index file and create a new Index initialized with the data in that file.
    -
    load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    +
    load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    Load a Voyager index file and create a new Index initialized with the data in that file.
    -
    load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided file location.
    -
    load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided file location.
    - - - -

    M

    -
    -
    markDeleted(long) - Method in class com.spotify.voyager.jni.Index
    +

    M

    +
    +
    markDeleted(long) - Method in class com.spotify.voyager.jni.Index
    Mark an element of the index as deleted.
    - - - -

    Q

    -
    -
    query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
    +

    Q

    +
    +
    query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of multiple query vectors.
    -
    query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of multiple query vectors.
    -
    query(float[], int) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[], int) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of a single query vector.
    -
    query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
    +
    query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
    Find the nearest neighbors of the provided embedding.
    -
    query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of a single query vector.
    -
    QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
    +
    QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
    Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
    -
    QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
     
    - - - -

    R

    -
    -
    readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
    +

    R

    +
    +
    readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
     
    -
    resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
    +
    resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
    Change the maximum number of elements currently storable by this Index.
    - - - -

    S

    -
    -
    saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
    +

    S

    +
    +
    saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
    Save this Index to the provided output stream.
    -
    saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
    Save the underlying HNSW index and JSON encoded names list to the provided output streams
    -
    saveIndex(String) - Method in class com.spotify.voyager.jni.Index
    +
    saveIndex(String) - Method in class com.spotify.voyager.jni.Index
    Save this Index to a file at the provided filename.
    -
    saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
    Save the underlying index and JSON encoded name list to the provided output directory
    -
    saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    setEf(long) - Method in class com.spotify.voyager.jni.Index
    +
    setEf(long) - Method in class com.spotify.voyager.jni.Index
    Set the default EF ("query search depth") to use when Index.query(float[], int) is called.
    -
    setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
    +
    setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
    Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
    -
    StringIndex - Class in com.spotify.voyager.jni
    +
    StringIndex - Class in com.spotify.voyager.jni
    Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
    -
    StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
    +
    StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
    Instantiate a new empty index with the specified space type and dimensionality
    -
    StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
    +
    StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
    Instantiate an empty index with the specified index parameters
    -
    StringIndex.QueryResults - Class in com.spotify.voyager.jni
    +
    StringIndex.QueryResults - Class in com.spotify.voyager.jni
    A wrapper class for nearest neighbor query results.
    - - - -

    T

    -
    -
    TinyJson - Class in com.spotify.voyager.jni.utils
    +

    T

    +
    +
    TinyJson - Class in com.spotify.voyager.jni.utils
    A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
    -
    TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
    +
    TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
     
    -
    toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
     
    -
    toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    - - - -

    U

    -
    -
    unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
    +

    U

    +
    +
    unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
    Un-mark an element of the index as deleted, making it available again.
    - - - -

    V

    -
    -
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    +

    V

    +
    +
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    Returns the enum constant of this type with the specified name.
    -
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    Returns the enum constant of this type with the specified name.
    -
    values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    +
    values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    Returns an array containing the constants of this enum type, in the order they are declared.
    -
    values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    Returns an array containing the constants of this enum type, in the order they are declared.
    - - - -

    W

    -
    -
    writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
    +

    W

    +
    +
    writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
     
    -A C D E F G I J L M Q R S T U V W 
    All Classes All Packages
    -
    +A C D E F G I J L M Q R S T U V W 
    All Classes and Interfaces|All Packages
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/index.html b/docs/java/index.html index cd21a37f..241f7931 100644 --- a/docs/java/index.html +++ b/docs/java/index.html @@ -1,176 +1,80 @@ - - -Overview (voyager 2.0.2 API) + +Overview (voyager 2.0.4 API) + - + + + - + + - - - - - + + - - -
    +
    + +
    +
    -

    voyager 2.0.2 API

    +

    voyager 2.0.4 API

    -
    -
    - - - - - - - - - - - - - - - - - - - - -
    Packages 
    PackageDescription
    com.spotify.voyager +
    +
    Packages
    +
    +
    Package
    +
    Description
    + +
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector data.
    -
    com.spotify.voyager.jni + + +
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    -
    com.spotify.voyager.jni.utils 
    +
    + +
     
    +
    - - - -

    Copyright © 2023. All rights reserved.

    - diff --git a/docs/java/jquery-ui.overrides.css b/docs/java/jquery-ui.overrides.css index f89acb63..facf852c 100644 --- a/docs/java/jquery-ui.overrides.css +++ b/docs/java/jquery-ui.overrides.css @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2022, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,4 +31,5 @@ a.ui-button:active, .ui-button.ui-state-active:hover { /* Overrides the color of selection used in jQuery UI */ background: #F8981D; + border: 1px solid #F8981D; } diff --git a/docs/java/legal/jquery.md b/docs/java/legal/jquery.md index 8054a34c..d468b318 100644 --- a/docs/java/legal/jquery.md +++ b/docs/java/legal/jquery.md @@ -1,9 +1,9 @@ -## jQuery v3.5.1 +## jQuery v3.6.1 ### jQuery License ``` -jQuery v 3.5.1 -Copyright JS Foundation and other contributors, https://js.foundation/ +jQuery v 3.6.1 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -26,7 +26,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ****************************************** -The jQuery JavaScript Library v3.5.1 also includes Sizzle.js +The jQuery JavaScript Library v3.6.1 also includes Sizzle.js Sizzle.js includes the following license: diff --git a/docs/java/legal/jqueryUI.md b/docs/java/legal/jqueryUI.md index 8031bdb5..8bda9d7a 100644 --- a/docs/java/legal/jqueryUI.md +++ b/docs/java/legal/jqueryUI.md @@ -1,4 +1,4 @@ -## jQuery UI v1.12.1 +## jQuery UI v1.13.2 ### jQuery UI License ``` diff --git a/docs/java/member-search-index.js b/docs/java/member-search-index.js index 5240a750..2499c325 100644 --- a/docs/java/member-search-index.js +++ b/docs/java/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[], long)","url":"addItem(float[],long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, float[])","url":"addItem(java.lang.String,float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, List)","url":"addItem(java.lang.String,java.util.List)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], int)","url":"addItems(float[][],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], long[], int)","url":"addItems(float[][],long[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItems(Map>)","url":"addItems(java.util.Map)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"close()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"close()"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Cosine"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"distances"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"E4M3"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Euclidean"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"extractBinaries(String)","url":"extractBinaries(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"finalize()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float32"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float8"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistance(int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEf()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEfConstruction()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getIDs()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getLabels()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getM()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getName(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNames()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumDimensions()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNumResults()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumThreads()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getSpace()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVector(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVectors(long[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"InnerProduct"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"JniLibExtractor()","url":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"labels"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.io.InputStream,java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream)","url":"load(java.io.InputStream,java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream)","url":"load(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.lang.String,java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String)","url":"load(java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String)","url":"load(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"markDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[], int, int)","url":"query(float[],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int, long)","url":"query(float[],int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int)","url":"query(float[],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int, long)","url":"query(float[][],int,int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int)","url":"query(float[][],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"QueryResults(long[], float[])","url":"%3Cinit%3E(long[],float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"QueryResults(String[], float[])","url":"%3Cinit%3E(java.lang.String[],float[])"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"readStringList(InputStream)","url":"readStringList(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(OutputStream, OutputStream)","url":"saveIndex(java.io.OutputStream,java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(OutputStream)","url":"saveIndex(java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String, String, String)","url":"saveIndex(java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(String)","url":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String)","url":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setEf(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setNumThreads(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"TinyJson()","url":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"unmarkDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"values()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"values()"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"writeStringList(Iterable, OutputStream)","url":"writeStringList(java.lang.Iterable,java.io.OutputStream)"}] \ No newline at end of file +memberSearchIndex = [{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[], long)","u":"addItem(float[],long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, float[])","u":"addItem(java.lang.String,float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, List)","u":"addItem(java.lang.String,java.util.List)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], int)","u":"addItems(float[][],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], long[], int)","u":"addItems(float[][],long[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItems(Map>)","u":"addItems(java.util.Map)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"close()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"close()"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Cosine"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"distances"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"E4M3"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Euclidean"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"extractBinaries(String)","u":"extractBinaries(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"finalize()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float32"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float8"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistance(int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEf()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEfConstruction()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getIDs()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getLabels()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getM()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getName(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNames()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumDimensions()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNumResults()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumThreads()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getSpace()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVector(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVectors(long[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"InnerProduct"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"JniLibExtractor()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"labels"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream)","u":"load(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream)","u":"load(java.io.InputStream,java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String)","u":"load(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String)","u":"load(java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"markDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int)","u":"query(float[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[], int, int)","u":"query(float[],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int, long)","u":"query(float[],int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int)","u":"query(float[][],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int, long)","u":"query(float[][],int,int,long)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"QueryResults(long[], float[])","u":"%3Cinit%3E(long[],float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"QueryResults(String[], float[])","u":"%3Cinit%3E(java.lang.String[],float[])"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"readStringList(InputStream)","u":"readStringList(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(OutputStream)","u":"saveIndex(java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(OutputStream, OutputStream)","u":"saveIndex(java.io.OutputStream,java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String, String, String)","u":"saveIndex(java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setEf(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setNumThreads(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"TinyJson()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"unmarkDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"values()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"values()"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"writeStringList(Iterable, OutputStream)","u":"writeStringList(java.lang.Iterable,java.io.OutputStream)"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/java/overview-summary.html b/docs/java/overview-summary.html index 83de49a6..e923a8d4 100644 --- a/docs/java/overview-summary.html +++ b/docs/java/overview-summary.html @@ -1,18 +1,21 @@ - - -voyager 2.0.2 API + +voyager 2.0.4 API + + + + + + - - - +
    @@ -159,7 +159,7 @@
    - Voyager 2.0.5 Python Documentation + Voyager 2.0.6 Python Documentation @@ -869,7 +869,7 @@

    Utilities +

    diff --git a/docs/python/search.html b/docs/python/search.html index 35671938..bd731a1f 100644 --- a/docs/python/search.html +++ b/docs/python/search.html @@ -5,7 +5,7 @@ - Search - Voyager 2.0.5 Python Documentation + Search - Voyager 2.0.6 Python Documentation @@ -122,7 +122,7 @@
    @@ -148,7 +148,7 @@
    - Voyager 2.0.5 Python Documentation + Voyager 2.0.6 Python Documentation @@ -246,7 +246,7 @@
    -
    +
    diff --git a/java/pom.xml b/java/pom.xml index 73a3ba1a..dcb1e46f 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -12,7 +12,7 @@ voyager voyager - 2.0.5 + 2.0.6 Voyager is a library for performing fast approximate nearest-neighbor searches on an in-memory collection of vectors. diff --git a/python/scripts/generate_type_stubs_and_docs.py b/python/scripts/generate_type_stubs_and_docs.py old mode 100644 new mode 100755 diff --git a/python/voyager/version.py b/python/voyager/version.py index 47f5895c..cb1c958f 100644 --- a/python/voyager/version.py +++ b/python/voyager/version.py @@ -17,6 +17,6 @@ MAJOR = 2 MINOR = 0 -PATCH = 5 +PATCH = 6 __version__ = "%d.%d.%d" % (MAJOR, MINOR, PATCH) From d81e70bae6549294caff716a5be84c61ea89f723 Mon Sep 17 00:00:00 2001 From: Samo Gabrovec Date: Tue, 26 Mar 2024 21:12:48 +0100 Subject: [PATCH 23/52] Resizing of index. (#49) * Added resizing of index. * fmt of files. * com_spotify_voyager_jni_Index.cpp index getHandle change * fmt of com_spotify_voyager_jni_Index.h * renamed indexResize() to itResizesIndex() * renamed indexResize() to itResizesIndex() --------- Co-authored-by: samek --- .../com/spotify/voyager/jni/StringIndex.java | 21 ++++++++++++++++++ .../com/spotify/voyager/jni/IndexTest.java | 5 +++++ .../spotify/voyager/jni/StringIndexTest.java | 22 +++++++++++++++++++ 3 files changed, 48 insertions(+) diff --git a/java/src/main/java/com/spotify/voyager/jni/StringIndex.java b/java/src/main/java/com/spotify/voyager/jni/StringIndex.java index d303e1ce..097184f5 100644 --- a/java/src/main/java/com/spotify/voyager/jni/StringIndex.java +++ b/java/src/main/java/com/spotify/voyager/jni/StringIndex.java @@ -358,6 +358,27 @@ public void close() throws IOException { index.close(); } + /** + * Change the maximum number of elements currently storable by this {@link Index}. This operation + * reallocates the memory used by the index and can be quite slow, so it may be useful to set the + * maximum number of elements in advance if that number is known. + * + * @param newSize The new number of maximum elements to resize this {@link Index} to. + */ + public void resizeIndex(long newSize) { + index.resizeIndex(newSize); + } + + /** + * Get the maximum number of elements currently storable by this {@link Index}. If more elements + * are added than {@code getMaxElements()}, the index will be automatically (but slowly) resized. + * + * @return The number of elements (vectors) that are currently storable in this {@link Index}. + */ + public long getMaxElements() { + return index.getMaxElements(); + } + /** A wrapper class for nearest neighbor query results. */ public static class QueryResults { private final String[] names; diff --git a/java/src/test/java/com/spotify/voyager/jni/IndexTest.java b/java/src/test/java/com/spotify/voyager/jni/IndexTest.java index ddf18d11..60f88dec 100644 --- a/java/src/test/java/com/spotify/voyager/jni/IndexTest.java +++ b/java/src/test/java/com/spotify/voyager/jni/IndexTest.java @@ -281,6 +281,11 @@ private void runTestWith( // And the resulting call should pass: assertNotNull(index.getVector(0)); + + // Test resizing of index + long currentSize = index.getMaxElements(); + index.resizeIndex(currentSize + 1); + assertEquals(currentSize + 1, index.getMaxElements()); } } } diff --git a/java/src/test/java/com/spotify/voyager/jni/StringIndexTest.java b/java/src/test/java/com/spotify/voyager/jni/StringIndexTest.java index 1823697c..cc5ddadc 100644 --- a/java/src/test/java/com/spotify/voyager/jni/StringIndexTest.java +++ b/java/src/test/java/com/spotify/voyager/jni/StringIndexTest.java @@ -21,6 +21,7 @@ package com.spotify.voyager.jni; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; import com.google.common.io.Resources; import com.spotify.voyager.jni.Index.SpaceType; @@ -239,6 +240,27 @@ public void itLoadsFromInputStreamNoParams() throws Exception { } } + @Test + public void itResizesIndex() throws Exception { + List testVectors = TestUtils.getTestVectors(); + try (final StringIndex index = + new StringIndex( + SpaceType.Cosine, + testVectors.get(0).vector.length, + 20, + testVectors.size(), + 0, + testVectors.size(), + StorageDataType.E4M3)) { + for (Vector v : testVectors) { + index.addItem(v.name, v.vector); + } + long currentSize = index.getMaxElements(); + index.resizeIndex(currentSize + 1); + assertEquals(currentSize + 1, index.getMaxElements()); + } + } + public static class CustomResult { private final String name; private final float distance; From 26dd460fbf86cf9d0426790ccc4c70ef44a94fa7 Mon Sep 17 00:00:00 2001 From: Samo Gabrovec Date: Wed, 10 Apr 2024 00:41:04 +0200 Subject: [PATCH 24/52] Added getNumElements + getVector (#64) * Upsert while adding item/s Added getNumElements Added getVector * Upsert while adding item/s Added getNumElements Added getVector * Upsert while adding item/s Added getNumElements Added getVector * Removed upsert functionality. --------- Co-authored-by: samek --- .../main/java/com/spotify/voyager/jni/StringIndex.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/java/src/main/java/com/spotify/voyager/jni/StringIndex.java b/java/src/main/java/com/spotify/voyager/jni/StringIndex.java index 097184f5..701c4475 100644 --- a/java/src/main/java/com/spotify/voyager/jni/StringIndex.java +++ b/java/src/main/java/com/spotify/voyager/jni/StringIndex.java @@ -281,6 +281,14 @@ public void addItems(Map> vectors) { index.addItems(primitiveVectors, labels, -1); } + public long getNumElements() { + return index.getNumElements(); + } + + public float[] getVector(String name) { + return index.getVector(names.indexOf(name)); + } + private float[] toPrimitive(List vector) { float[] vectorValues = new float[vector.size()]; assignPrimitive(vector, vectorValues); From 9770a049b2d6d214929cb1581eb06af2d2c69ee4 Mon Sep 17 00:00:00 2001 From: Michele Gregori Date: Thu, 11 Jul 2024 22:52:35 +0200 Subject: [PATCH 25/52] add test and prepare for new release (#69) * update * update * bump clang-format-actions --- .github/workflows/all.yml | 6 +----- docs/java/allclasses-index.html | 6 +++--- docs/java/allpackages-index.html | 6 +++--- docs/java/com/spotify/voyager/jni/Index.QueryResults.html | 6 +++--- docs/java/com/spotify/voyager/jni/Index.SpaceType.html | 6 +++--- .../com/spotify/voyager/jni/Index.StorageDataType.html | 6 +++--- docs/java/com/spotify/voyager/jni/Index.html | 6 +++--- .../com/spotify/voyager/jni/StringIndex.QueryResults.html | 6 +++--- docs/java/com/spotify/voyager/jni/StringIndex.html | 6 +++--- .../spotify/voyager/jni/class-use/Index.QueryResults.html | 6 +++--- .../spotify/voyager/jni/class-use/Index.SpaceType.html | 6 +++--- .../voyager/jni/class-use/Index.StorageDataType.html | 6 +++--- docs/java/com/spotify/voyager/jni/class-use/Index.html | 6 +++--- .../voyager/jni/class-use/StringIndex.QueryResults.html | 6 +++--- .../com/spotify/voyager/jni/class-use/StringIndex.html | 6 +++--- docs/java/com/spotify/voyager/jni/package-summary.html | 6 +++--- docs/java/com/spotify/voyager/jni/package-tree.html | 6 +++--- docs/java/com/spotify/voyager/jni/package-use.html | 6 +++--- .../com/spotify/voyager/jni/utils/JniLibExtractor.html | 6 +++--- docs/java/com/spotify/voyager/jni/utils/TinyJson.html | 6 +++--- .../voyager/jni/utils/class-use/JniLibExtractor.html | 6 +++--- .../com/spotify/voyager/jni/utils/class-use/TinyJson.html | 6 +++--- .../com/spotify/voyager/jni/utils/package-summary.html | 6 +++--- docs/java/com/spotify/voyager/jni/utils/package-tree.html | 6 +++--- docs/java/com/spotify/voyager/jni/utils/package-use.html | 6 +++--- docs/java/com/spotify/voyager/package-summary.html | 6 +++--- docs/java/com/spotify/voyager/package-tree.html | 6 +++--- docs/java/com/spotify/voyager/package-use.html | 6 +++--- docs/java/help-doc.html | 6 +++--- docs/java/index-all.html | 6 +++--- docs/java/index.html | 8 ++++---- docs/java/overview-summary.html | 6 +++--- docs/java/overview-tree.html | 6 +++--- docs/python/_static/documentation_options.js | 2 +- docs/python/genindex.html | 6 +++--- docs/python/index.html | 8 ++++---- docs/python/reference.html | 8 ++++---- docs/python/search.html | 6 +++--- java/pom.xml | 2 +- python/tests/test_index_creation.py | 3 +++ python/voyager/version.py | 2 +- 41 files changed, 118 insertions(+), 119 deletions(-) diff --git a/.github/workflows/all.yml b/.github/workflows/all.yml index 802f8adc..faa331e9 100644 --- a/.github/workflows/all.yml +++ b/.github/workflows/all.yml @@ -37,7 +37,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Check C++ Formatting - uses: jidicula/clang-format-action@v4.4.1 + uses: jidicula/clang-format-action@v4.13.0 with: clang-format-version: 14 fallback-style: LLVM @@ -273,10 +273,6 @@ jobs: # on macOS and with Python 3.10: building NumPy from source fails without these options: CIBW_ENVIRONMENT: NPY_BLAS_ORDER="" NPY_LAPACK_ORDER="" CIBW_REPAIR_WHEEL_COMMAND_LINUX: pip install auditwheel-symbols && (auditwheel repair -w {dest_dir} {wheel} || auditwheel-symbols --manylinux 2010 {wheel}) - # The manylinux container doesn't have a new enough glibc version, - # so we can't run post-wheel-build tests there. - # Also testing any pypy versions fails, as TensorFlow isn't pypy compatible. - CIBW_TEST_SKIP: "*manylinux* *pp* *-macosx_universal2:arm64" # Use the minimum macOS deployment target that has C++17 support: MACOSX_DEPLOYMENT_TARGET: "10.13" - uses: actions/upload-artifact@v3 diff --git a/docs/java/allclasses-index.html b/docs/java/allclasses-index.html index 7cc78c41..29324ea1 100644 --- a/docs/java/allclasses-index.html +++ b/docs/java/allclasses-index.html @@ -1,11 +1,11 @@ - -All Classes and Interfaces (voyager 2.0.6 API) + +All Classes and Interfaces (voyager 2.0.7 API) - + diff --git a/docs/java/allpackages-index.html b/docs/java/allpackages-index.html index 3dc29141..150189af 100644 --- a/docs/java/allpackages-index.html +++ b/docs/java/allpackages-index.html @@ -1,11 +1,11 @@ - -All Packages (voyager 2.0.6 API) + +All Packages (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html index 79666204..c70d89c4 100644 --- a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html @@ -1,11 +1,11 @@ - -Index.QueryResults (voyager 2.0.6 API) + +Index.QueryResults (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html index a259900a..63a23483 100644 --- a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html @@ -1,11 +1,11 @@ - -Index.SpaceType (voyager 2.0.6 API) + +Index.SpaceType (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html index 9001e47d..83b1aeb7 100644 --- a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html @@ -1,11 +1,11 @@ - -Index.StorageDataType (voyager 2.0.6 API) + +Index.StorageDataType (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/Index.html b/docs/java/com/spotify/voyager/jni/Index.html index 3080bfca..54b5fc9b 100644 --- a/docs/java/com/spotify/voyager/jni/Index.html +++ b/docs/java/com/spotify/voyager/jni/Index.html @@ -1,11 +1,11 @@ - -Index (voyager 2.0.6 API) + +Index (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html index 781ace42..40386473 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -1,11 +1,11 @@ - -StringIndex.QueryResults (voyager 2.0.6 API) + +StringIndex.QueryResults (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.html b/docs/java/com/spotify/voyager/jni/StringIndex.html index 4724665f..a64969f4 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.html @@ -1,11 +1,11 @@ - -StringIndex (voyager 2.0.6 API) + +StringIndex (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html index a54d8b22..24cceeec 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.6 API) + +Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html index 8a8d9b18..b5c90abb 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html @@ -1,11 +1,11 @@ - -Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.6 API) + +Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html index 1da83764..82680c41 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html @@ -1,11 +1,11 @@ - -Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.6 API) + +Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.html b/docs/java/com/spotify/voyager/jni/class-use/Index.html index 31e28b4f..2e142634 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.6 API) + +Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html index 47b898ea..717d5af2 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.6 API) + +Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html index 6ef343d4..dcc602e9 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.6 API) + +Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/package-summary.html b/docs/java/com/spotify/voyager/jni/package-summary.html index 8874c213..61b9f616 100644 --- a/docs/java/com/spotify/voyager/jni/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/package-summary.html @@ -1,11 +1,11 @@ - -com.spotify.voyager.jni (voyager 2.0.6 API) + +com.spotify.voyager.jni (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/package-tree.html b/docs/java/com/spotify/voyager/jni/package-tree.html index 10345de9..c51f0b6f 100644 --- a/docs/java/com/spotify/voyager/jni/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/package-tree.html @@ -1,11 +1,11 @@ - -com.spotify.voyager.jni Class Hierarchy (voyager 2.0.6 API) + +com.spotify.voyager.jni Class Hierarchy (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/package-use.html b/docs/java/com/spotify/voyager/jni/package-use.html index b6805699..a46349fe 100644 --- a/docs/java/com/spotify/voyager/jni/package-use.html +++ b/docs/java/com/spotify/voyager/jni/package-use.html @@ -1,11 +1,11 @@ - -Uses of Package com.spotify.voyager.jni (voyager 2.0.6 API) + +Uses of Package com.spotify.voyager.jni (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html index 5a6b838f..b164e575 100644 --- a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html @@ -1,11 +1,11 @@ - -JniLibExtractor (voyager 2.0.6 API) + +JniLibExtractor (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html index 22efec91..cf2260df 100644 --- a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html @@ -1,11 +1,11 @@ - -TinyJson (voyager 2.0.6 API) + +TinyJson (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html index e2293f76..e69e288e 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.6 API) + +Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html index 37d74b16..4d7362c1 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.6 API) + +Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-summary.html b/docs/java/com/spotify/voyager/jni/utils/package-summary.html index 0b94ebeb..6ef05e99 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-summary.html @@ -1,11 +1,11 @@ - -com.spotify.voyager.jni.utils (voyager 2.0.6 API) + +com.spotify.voyager.jni.utils (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-tree.html b/docs/java/com/spotify/voyager/jni/utils/package-tree.html index 4c7d26a1..52d86e53 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-tree.html @@ -1,11 +1,11 @@ - -com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.6 API) + +com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-use.html b/docs/java/com/spotify/voyager/jni/utils/package-use.html index 741ff36b..655f67bd 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-use.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-use.html @@ -1,11 +1,11 @@ - -Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.6 API) + +Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/package-summary.html b/docs/java/com/spotify/voyager/package-summary.html index 62440e81..e67fce57 100644 --- a/docs/java/com/spotify/voyager/package-summary.html +++ b/docs/java/com/spotify/voyager/package-summary.html @@ -1,11 +1,11 @@ - -com.spotify.voyager (voyager 2.0.6 API) + +com.spotify.voyager (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/package-tree.html b/docs/java/com/spotify/voyager/package-tree.html index f7a9062d..cae542be 100644 --- a/docs/java/com/spotify/voyager/package-tree.html +++ b/docs/java/com/spotify/voyager/package-tree.html @@ -1,11 +1,11 @@ - -com.spotify.voyager Class Hierarchy (voyager 2.0.6 API) + +com.spotify.voyager Class Hierarchy (voyager 2.0.7 API) - + diff --git a/docs/java/com/spotify/voyager/package-use.html b/docs/java/com/spotify/voyager/package-use.html index 8366261c..ce43ad13 100644 --- a/docs/java/com/spotify/voyager/package-use.html +++ b/docs/java/com/spotify/voyager/package-use.html @@ -1,11 +1,11 @@ - -Uses of Package com.spotify.voyager (voyager 2.0.6 API) + +Uses of Package com.spotify.voyager (voyager 2.0.7 API) - + diff --git a/docs/java/help-doc.html b/docs/java/help-doc.html index 4a790257..f598e5f8 100644 --- a/docs/java/help-doc.html +++ b/docs/java/help-doc.html @@ -1,11 +1,11 @@ - -API Help (voyager 2.0.6 API) + +API Help (voyager 2.0.7 API) - + diff --git a/docs/java/index-all.html b/docs/java/index-all.html index ec19bac3..89b7161e 100644 --- a/docs/java/index-all.html +++ b/docs/java/index-all.html @@ -1,11 +1,11 @@ - -Index (voyager 2.0.6 API) + +Index (voyager 2.0.7 API) - + diff --git a/docs/java/index.html b/docs/java/index.html index 7a1cdf5a..60262248 100644 --- a/docs/java/index.html +++ b/docs/java/index.html @@ -1,11 +1,11 @@ - -Overview (voyager 2.0.6 API) + +Overview (voyager 2.0.7 API) - + @@ -49,7 +49,7 @@
    -

    voyager 2.0.6 API

    +

    voyager 2.0.7 API

    Packages
    diff --git a/docs/java/overview-summary.html b/docs/java/overview-summary.html index 03fd0719..60a4f69c 100644 --- a/docs/java/overview-summary.html +++ b/docs/java/overview-summary.html @@ -1,11 +1,11 @@ - -voyager 2.0.6 API + +voyager 2.0.7 API - + diff --git a/docs/java/overview-tree.html b/docs/java/overview-tree.html index 60bb1263..dae4119b 100644 --- a/docs/java/overview-tree.html +++ b/docs/java/overview-tree.html @@ -1,11 +1,11 @@ - -Class Hierarchy (voyager 2.0.6 API) + +Class Hierarchy (voyager 2.0.7 API) - + diff --git a/docs/python/_static/documentation_options.js b/docs/python/_static/documentation_options.js index bdca59d1..dcd5201a 100644 --- a/docs/python/_static/documentation_options.js +++ b/docs/python/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '2.0.6', + VERSION: '2.0.7', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/python/genindex.html b/docs/python/genindex.html index 6f591ae0..dc2d29e9 100644 --- a/docs/python/genindex.html +++ b/docs/python/genindex.html @@ -5,7 +5,7 @@ - Index - Voyager 2.0.6 Python Documentation + Index - Voyager 2.0.7 Python Documentation @@ -123,7 +123,7 @@
    @@ -149,7 +149,7 @@
    - Voyager 2.0.6 Python Documentation + Voyager 2.0.7 Python Documentation diff --git a/docs/python/index.html b/docs/python/index.html index 5fb5b4f8..b99e3595 100644 --- a/docs/python/index.html +++ b/docs/python/index.html @@ -6,7 +6,7 @@ - + @@ -15,7 +15,7 @@ - Voyager 2.0.6 Python Documentation + Voyager 2.0.7 Python Documentation @@ -133,7 +133,7 @@
    @@ -159,7 +159,7 @@
    - Voyager 2.0.6 Python Documentation + Voyager 2.0.7 Python Documentation diff --git a/docs/python/reference.html b/docs/python/reference.html index 3f5bb71d..3fe2d96d 100644 --- a/docs/python/reference.html +++ b/docs/python/reference.html @@ -6,7 +6,7 @@ - + @@ -15,7 +15,7 @@ - The voyager Python API - Voyager 2.0.6 Python Documentation + The voyager Python API - Voyager 2.0.7 Python Documentation @@ -133,7 +133,7 @@
    @@ -159,7 +159,7 @@
    - Voyager 2.0.6 Python Documentation + Voyager 2.0.7 Python Documentation diff --git a/docs/python/search.html b/docs/python/search.html index bd731a1f..afc01b97 100644 --- a/docs/python/search.html +++ b/docs/python/search.html @@ -5,7 +5,7 @@ - Search - Voyager 2.0.6 Python Documentation + Search - Voyager 2.0.7 Python Documentation @@ -122,7 +122,7 @@
    @@ -148,7 +148,7 @@
    - Voyager 2.0.6 Python Documentation + Voyager 2.0.7 Python Documentation diff --git a/java/pom.xml b/java/pom.xml index dcb1e46f..2cdcd527 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -12,7 +12,7 @@ voyager voyager - 2.0.6 + 2.0.7 Voyager is a library for performing fast approximate nearest-neighbor searches on an in-memory collection of vectors. diff --git a/python/tests/test_index_creation.py b/python/tests/test_index_creation.py index bb8b36a3..5ddaa0f4 100644 --- a/python/tests/test_index_creation.py +++ b/python/tests/test_index_creation.py @@ -101,6 +101,9 @@ def test_create_and_query( assert labels[0] == i assert distances[0] < (distance_tolerance * num_dimensions) + labels, _ = index.query(input_data[0], k=len(ids)) + assert set(ids) == set(labels) + output_file = tmp_path / "index.voy" index.save(str(output_file)) assert output_file.stat().st_size > 0 diff --git a/python/voyager/version.py b/python/voyager/version.py index cb1c958f..f4b30dd7 100644 --- a/python/voyager/version.py +++ b/python/voyager/version.py @@ -17,6 +17,6 @@ MAJOR = 2 MINOR = 0 -PATCH = 6 +PATCH = 7 __version__ = "%d.%d.%d" % (MAJOR, MINOR, PATCH) From 3fc184a8ee47984ba61cc92ca048cd8403bd740f Mon Sep 17 00:00:00 2001 From: Michele Gregori Date: Tue, 16 Jul 2024 18:29:13 +0200 Subject: [PATCH 26/52] Fix for concurrency bug (#70) * update * fix after comment * fix after comment * revert fix after comment --- cpp/TypedIndex.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/cpp/TypedIndex.h b/cpp/TypedIndex.h index 92cf0263..b9a52081 100644 --- a/cpp/TypedIndex.h +++ b/cpp/TypedIndex.h @@ -99,7 +99,7 @@ class TypedIndex : public Index { bool normalize = false; bool useOrderPreservingTransform = false; int numThreadsDefault; - hnswlib::labeltype currentLabel; + std::atomic currentLabel; std::unique_ptr> algorithmImpl; std::unique_ptr> spaceImpl; std::unique_ptr metadata; @@ -360,7 +360,7 @@ class TypedIndex : public Index { int start = 0; if (!ep_added) { - size_t id = ids.size() ? ids.at(0) : (currentLabel); + size_t id = ids.size() ? ids.at(0) : (currentLabel.fetch_add(1)); // TODO(psobot): Should inputVector be on the stack instead? std::vector inputVector(actualDimensions); std::vector convertedVector(actualDimensions); @@ -402,7 +402,7 @@ class TypedIndex : public Index { floatToDataType(&inputArray[startIndex], &convertedArray[startIndex], actualDimensions); - size_t id = ids.size() ? ids.at(row) : (currentLabel + row); + size_t id = ids.size() ? ids.at(row) : (currentLabel.fetch_add(1)); try { algorithmImpl->addPoint(convertedArray.data() + startIndex, id); } catch (IndexFullError &e) { @@ -438,7 +438,7 @@ class TypedIndex : public Index { normalizeVector( &inputArray[startIndex], &normalizedArray[startIndex], actualDimensions); - size_t id = ids.size() ? ids.at(row) : (currentLabel + row); + size_t id = ids.size() ? ids.at(row) : (currentLabel.fetch_add(1)); try { algorithmImpl->addPoint(normalizedArray.data() + startIndex, id); @@ -460,8 +460,6 @@ class TypedIndex : public Index { }); }; - currentLabel += rows; - return idsToReturn; } From 48f54f8eb3ed272463529473a8cd92ee99e0b425 Mon Sep 17 00:00:00 2001 From: Dylan Bannon Date: Wed, 17 Jul 2024 16:05:45 -0400 Subject: [PATCH 27/52] use user token for sonatype auth (#71) --- .github/workflows/all.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/all.yml b/.github/workflows/all.yml index faa331e9..0dfda38f 100644 --- a/.github/workflows/all.yml +++ b/.github/workflows/all.yml @@ -402,7 +402,7 @@ jobs: distribution: 'corretto' server-id: ossrh server-username: MAVEN_USERNAME - server-password: MAVEN_PASSWORD + server-password: MAVEN_USER_TOKEN gpg-private-key: ${{ secrets.SONATYPE_GPG_PRIVATE_KEY }} gpg-passphrase: MAVEN_GPG_PASSPHRASE - name: Deploy @@ -419,3 +419,4 @@ jobs: MAVEN_USERNAME: ${{ secrets.SONATYPE_USERNAME }} MAVEN_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} MAVEN_GPG_PASSPHRASE: ${{ secrets.SONATYPE_PASSPHRASE }} + MAVEN_USER_TOKEN: ${{ secrets.SONATYPE_USER_TOKEN }} From ee3d90a375d8a91ddb6d04de5d2573fae7ff37d5 Mon Sep 17 00:00:00 2001 From: Michele Gregori Date: Fri, 26 Jul 2024 20:04:51 +0200 Subject: [PATCH 28/52] Disable CI tests on `aarch64` (#73) * update * update --- .github/workflows/all.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/all.yml b/.github/workflows/all.yml index 0dfda38f..428cee6c 100644 --- a/.github/workflows/all.yml +++ b/.github/workflows/all.yml @@ -274,6 +274,7 @@ jobs: CIBW_ENVIRONMENT: NPY_BLAS_ORDER="" NPY_LAPACK_ORDER="" CIBW_REPAIR_WHEEL_COMMAND_LINUX: pip install auditwheel-symbols && (auditwheel repair -w {dest_dir} {wheel} || auditwheel-symbols --manylinux 2010 {wheel}) # Use the minimum macOS deployment target that has C++17 support: + CIBW_TEST_SKIP: "*aarch64" MACOSX_DEPLOYMENT_TARGET: "10.13" - uses: actions/upload-artifact@v3 with: From 177d12c6b9f2f4e99c2001ad98cbee570ff2ff01 Mon Sep 17 00:00:00 2001 From: Michele Gregori Date: Fri, 26 Jul 2024 20:05:05 +0200 Subject: [PATCH 29/52] Add benchmarking suite (#72) * update * update * update * update * update * update * update * update * update * update * update * update --- .github/workflows/all.yml | 30 ++++++++++++ .gitignore | 1 + CONTRIBUTING.md | 20 ++++++++ asv.conf.json | 20 ++++++++ benchmarks/__init__.py | 0 benchmarks/index_creation.py | 59 ++++++++++++++++++++++++ benchmarks/index_query.py | 88 ++++++++++++++++++++++++++++++++++++ python/dev-requirements.txt | 1 + 8 files changed, 219 insertions(+) create mode 100644 asv.conf.json create mode 100644 benchmarks/__init__.py create mode 100644 benchmarks/index_creation.py create mode 100644 benchmarks/index_query.py diff --git a/.github/workflows/all.yml b/.github/workflows/all.yml index 428cee6c..97b8d871 100644 --- a/.github/workflows/all.yml +++ b/.github/workflows/all.yml @@ -188,6 +188,36 @@ jobs: LD_PRELOAD=$(clang -print-file-name=libclang_rt.asan-x86_64.so) \ tox + run-benchmarks: + strategy: + matrix: + os: ['ubuntu-latest'] + runs-on: ${{ matrix.os }} + continue-on-error: true + if: github.event_name == 'pull_request' + name: Run benchmarks on ${{ matrix.os }} + steps: + - name: Set up Python + uses: actions/setup-python@v3 + with: + python-version: '3.9' + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + submodules: recursive + - name: Install Linux dependencies + if: runner.os == 'Linux' + run: sudo apt-get update && sudo apt-get install -y pkg-config + - name: Install dev dependencies + run: | + python -m pip install --upgrade pip + pip install wheel + pip install -r python/dev-requirements.txt + - name: Run benchmarks + run: | + asv machine --yes + asv continuous --sort name --no-only-changed refs/remotes/origin/main ${{ github.sha }} | tee >(sed '1,/All benchmarks:/d' > $GITHUB_STEP_SUMMARY) + build-python-wheels: needs: [run-python-tests, run-python-tests-with-address-sanitizer] runs-on: ${{ matrix.os }} diff --git a/.gitignore b/.gitignore index c42e469d..c4935192 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ java/com_*.h java/classpath.txt java/linux-build/include/* python/voyager-headers +.asv/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 058c4742..c4c28b8b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -90,6 +90,26 @@ pip3 install tox tox ``` +## Benchmarking + +We use `airspeed-velocity` for benchmarking - running all benchmarks to compare latest +commit against previous should be as simple as: + +``` +pip3 install asv +asv continuous --sort name --no-only-changed HEAD HEAD~1 +``` + +To compare current commit against `main` branch: + +``` +pip3 install asv +asv continuous --sort name --no-only-changed HEAD main +``` + +Please note that `airspeed-velocity` can only run benchmarks against a git commit, so if +you have uncommited code that you want to run benchmarks for you need to commit it first. + ## Style Use [`clang-format`](https://clang.llvm.org/docs/ClangFormat.html) for C++ code, and `black` with defaults for Python code. diff --git a/asv.conf.json b/asv.conf.json new file mode 100644 index 00000000..0b4fc2e1 --- /dev/null +++ b/asv.conf.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "project": "voyager", + "project_url": "https://spotify.github.io/voyager/", + "repo": ".", + "build_command": [ + "python -m pip install build", + "/usr/bin/cp -r {build_dir}/cpp {build_dir}/python/cpp", + "/usr/bin/cp {build_dir}/README.md {build_dir}/python/README.md", + "/usr/bin/sed -i '$ a\graft cpp' {build_dir}/python/MANIFEST.in", + "/usr/bin/sed -i '$ a\include voyager/version.py' {build_dir}/python/MANIFEST.in", + "in-dir={build_dir}/python python -m build", + "/usr/bin/cp -r {build_dir}/python/dist/. {build_cache_dir}" + ], + "benchmark_dir": "benchmarks", + "env_dir": ".asv/env", + "results_dir": ".asv/results", + "environment_type": "virtualenv", + "build_cache_size": 2, +} diff --git a/benchmarks/__init__.py b/benchmarks/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/benchmarks/index_creation.py b/benchmarks/index_creation.py new file mode 100644 index 00000000..1a2f587e --- /dev/null +++ b/benchmarks/index_creation.py @@ -0,0 +1,59 @@ +# +# Copyright 2022-2023 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import numpy as np + +import voyager + + +class IndexCreationSuite: + + repeat = (1, 10, 30.0) + params = ( + [256], + [1024], + [voyager.Space.Euclidean, voyager.Space.Cosine], + [voyager.StorageDataType.E4M3, voyager.StorageDataType.Float8, voyager.StorageDataType.Float32], + [24], + ) + param_names = ["num_dimensions", "num_elements", "space", "storage_data_type", "ef_construction"] + + def setup( + self, + num_dimensions: int, + num_elements: int, + space: voyager.Space, + storage_data_type: voyager.StorageDataType, + ef_construction: float, + ): + generator = np.random.default_rng(seed=1234) + input_data = generator.random((num_elements, num_dimensions)).astype(np.float32) * 2 - 1 + + if storage_data_type == voyager.StorageDataType.Float8: + input_data = np.round(input_data * 127) / 127 + + index = voyager.Index( + space=space, + num_dimensions=num_dimensions, + ef_construction=ef_construction, + M=20, + storage_data_type=storage_data_type, + ) + + self.input_data = input_data + self.index = index + + def time_create(self, *_): + self.index.add_items(self.input_data, num_threads=1) diff --git a/benchmarks/index_query.py b/benchmarks/index_query.py new file mode 100644 index 00000000..b3865f11 --- /dev/null +++ b/benchmarks/index_query.py @@ -0,0 +1,88 @@ +# +# Copyright 2022-2023 Spotify AB +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from io import BytesIO +from itertools import product +from typing import Dict + +import numpy as np + +import voyager + + +class IndexQuerySuite: + + repeat = (1, 10, 30.0) + params = ( + [256], + [1024], + [voyager.Space.Euclidean, voyager.Space.Cosine], + [voyager.StorageDataType.E4M3, voyager.StorageDataType.Float8, voyager.StorageDataType.Float32], + [24], + ) + param_names = ["num_dimensions", "num_elements", "space", "storage_data_type", "ef_construction"] + + def setup_cache(self) -> Dict: + + param_combinations = product(*self.params) + + data = {} + for param_combination in param_combinations: + num_dimensions, num_elements, space, storage_data_type, ef_construction = param_combination + + generator = np.random.default_rng(seed=1234) + input_data = generator.random((num_elements, num_dimensions)).astype(np.float32) * 2 - 1 + + if storage_data_type == voyager.StorageDataType.Float8: + input_data = np.round(input_data * 127) / 127 + + index = voyager.Index( + space=space, + num_dimensions=num_dimensions, + ef_construction=ef_construction, + M=20, + storage_data_type=storage_data_type, + ) + index.add_items(input_data) + + data[param_combination] = (index.as_bytes(), input_data) + + return data + + def setup( + self, + cached_data: Dict, + num_dimensions: int, + num_elements: int, + space: voyager.Space, + storage_data_type: voyager.StorageDataType, + ef_construction: float, + ): + index_as_bytes, self.input_data = cached_data[ + num_dimensions, num_elements, space, storage_data_type, ef_construction + ] + self.index = voyager.Index.load(BytesIO(index_as_bytes)) + + def time_query_k_1(self, *_): + self.index.query(self.input_data, k=1, num_threads=1) + + def time_query_k_20(self, *_): + self.index.query(self.input_data, k=20, num_threads=1) + + def track_recall(self, *_): + labels, _ = self.index.query(self.input_data, k=1, num_threads=1) + matches = np.sum(labels[:, 0] == np.arange(len(self.input_data))) + recall = matches / len(self.input_data) + return recall diff --git a/python/dev-requirements.txt b/python/dev-requirements.txt index 5507cebf..f6f333c2 100644 --- a/python/dev-requirements.txt +++ b/python/dev-requirements.txt @@ -5,6 +5,7 @@ pybind11-stubgen==0.16.2 ruff psutil mypy +asv==0.6.3 # Needed for sphinx documentation sphinx sphinxext-opengraph From 6580a4ba11b4b27c0f2a35c5c57e9cec20e3d9a9 Mon Sep 17 00:00:00 2001 From: Peter Sobot Date: Sat, 27 Jul 2024 12:26:58 -0400 Subject: [PATCH 30/52] Replace E4M3-to-float with a lookup table for a 20x speed boost. (#76) * Replace E4M3-to-float with a lookup table for speed. * Cut down the lookup table size. * Lay out lookup table more efficiently. * Inline E4M3::operator float(). --- cpp/E4M3.h | 274 +++++++++++++++++++++++++++++++++++++- python/bindings.cpp | 7 +- python/tests/test_e4m3.py | 20 ++- 3 files changed, 285 insertions(+), 16 deletions(-) diff --git a/cpp/E4M3.h b/cpp/E4M3.h index 752331f5..37f6b523 100644 --- a/cpp/E4M3.h +++ b/cpp/E4M3.h @@ -22,13 +22,275 @@ #include +static constexpr float ALL_E4M3_VALUES[256] = { + 0, + -0, + 0.015625, + -0.015625, + 0.031250, + -0.031250, + 0.0625, + -0.0625, + 0.1250, + -0.1250, + 0.2500, + -0.2500, + 0.5000, + -0.5000, + 1, + -1, + 2, + -2, + 4, + -4, + 8, + -8, + 16, + -16, + 32, + -32, + 64, + -64, + 128, + -128, + 256, + -256, + 0.0009765625, + -0.0009765625, + 0.0175781250, + -0.0175781250, + 0.03515625, + -0.03515625, + 0.07031250, + -0.07031250, + 0.140625, + -0.140625, + 0.281250, + -0.281250, + 0.5625, + -0.5625, + 1.1250, + -1.1250, + 2.2500, + -2.2500, + 4.5000, + -4.5000, + 9, + -9, + 18, + -18, + 36, + -36, + 72, + -72, + 144, + -144, + 288, + -288, + 0.0019531250, + -0.0019531250, + 0.01953125, + -0.01953125, + 0.03906250, + -0.03906250, + 0.078125, + -0.078125, + 0.156250, + -0.156250, + 0.3125, + -0.3125, + 0.6250, + -0.6250, + 1.2500, + -1.2500, + 2.5000, + -2.5000, + 5, + -5, + 10, + -10, + 20, + -20, + 40, + -40, + 80, + -80, + 160, + -160, + 320, + -320, + 0.0029296875, + -0.0029296875, + 0.0214843750, + -0.0214843750, + 0.04296875, + -0.04296875, + 0.08593750, + -0.08593750, + 0.171875, + -0.171875, + 0.343750, + -0.343750, + 0.6875, + -0.6875, + 1.3750, + -1.3750, + 2.7500, + -2.7500, + 5.5000, + -5.5000, + 11, + -11, + 22, + -22, + 44, + -44, + 88, + -88, + 176, + -176, + 352, + -352, + 0.00390625, + -0.00390625, + 0.02343750, + -0.02343750, + 0.046875, + -0.046875, + 0.093750, + -0.093750, + 0.1875, + -0.1875, + 0.3750, + -0.3750, + 0.7500, + -0.7500, + 1.5000, + -1.5000, + 3, + -3, + 6, + -6, + 12, + -12, + 24, + -24, + 48, + -48, + 96, + -96, + 192, + -192, + 384, + -384, + 0.0048828125, + -0.0048828125, + 0.0253906250, + -0.0253906250, + 0.05078125, + -0.05078125, + 0.10156250, + -0.10156250, + 0.203125, + -0.203125, + 0.406250, + -0.406250, + 0.8125, + -0.8125, + 1.6250, + -1.6250, + 3.2500, + -3.2500, + 6.5000, + -6.5000, + 13, + -13, + 26, + -26, + 52, + -52, + 104, + -104, + 208, + -208, + 416, + -416, + 0.0058593750, + -0.0058593750, + 0.02734375, + -0.02734375, + 0.05468750, + -0.05468750, + 0.109375, + -0.109375, + 0.218750, + -0.218750, + 0.4375, + -0.4375, + 0.8750, + -0.8750, + 1.7500, + -1.7500, + 3.5000, + -3.5000, + 7, + -7, + 14, + -14, + 28, + -28, + 56, + -56, + 112, + -112, + 224, + -224, + 448, + -448, + 0.0068359375, + -0.0068359375, + 0.0292968750, + -0.0292968750, + 0.05859375, + -0.05859375, + 0.11718750, + -0.11718750, + 0.234375, + -0.234375, + 0.468750, + -0.468750, + 0.9375, + -0.9375, + 1.8750, + -1.8750, + 3.7500, + -3.7500, + 7.5000, + -7.5000, + 15, + -15, + 30, + -30, + 60, + -60, + 120, + -120, + 240, + -240, + NAN, + NAN, +}; + /** * An 8-bit floating point format with a 4-bit exponent and 3-bit mantissa. * Inspired by: https://arxiv.org/pdf/2209.05433.pdf */ class E4M3 { public: - uint8_t sign : 1, exponent : 4, mantissa : 3; + // Note: This actually ends up laid out in a byte as: 0bMMMEEEES + uint8_t sign : 1; + uint8_t exponent : 4; + uint8_t mantissa : 3; E4M3() : E4M3(0, 0, 0) {} @@ -138,12 +400,10 @@ class E4M3 { } } - operator float() const { - if (exponent == 0b1111 && mantissa == 0b111) { - return NAN; - } - - return (sign ? -1 : 1) * powf(2, effectiveExponent()) * effectiveMantissa(); + inline operator float() const { + // This is implemented with a 512-byte lookup table for speed. + // Note that the Python tests ensure that this matches the expected logic. + return ALL_E4M3_VALUES[*(const uint8_t *)this]; } int8_t effectiveExponent() const { return -7 + exponent; } diff --git a/python/bindings.cpp b/python/bindings.cpp index 5132f6e2..6b64103e 100644 --- a/python/bindings.cpp +++ b/python/bindings.cpp @@ -298,14 +298,13 @@ memory usage and index size by a factor of 4 compared to :py:class:`Float32`. .def_property_readonly( "raw_exponent", [](E4M3 &self) { return self.exponent; }, "The raw value of the exponent part of this E4M3 number, expressed " - "as " - "an integer.") + "as an integer.") .def_property_readonly( - "mantissa", [](E4M3 &self) { return self.mantissa; }, + "mantissa", [](E4M3 &self) { return self.effectiveMantissa(); }, "The effective mantissa (non-exponent part) of this E4M3 number, " "expressed as an integer.") .def_property_readonly( - "raw_mantissa", [](E4M3 &self) { return self.effectiveMantissa(); }, + "raw_mantissa", [](E4M3 &self) { return self.mantissa; }, "The raw value of the mantissa (non-exponent part) of this E4M3 " "number, expressed as a floating point value.") .def_property_readonly( diff --git a/python/tests/test_e4m3.py b/python/tests/test_e4m3.py index 4f915099..b63e2cc7 100644 --- a/python/tests/test_e4m3.py +++ b/python/tests/test_e4m3.py @@ -14,13 +14,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -import pytest +import math import numpy as np - +import pytest from voyager import E4M3T, Index, Space, StorageDataType - RANGES_AND_EXPECTED_ERRORS = [ # (Min value, max value, step), expected maximum error ((-448, 448, 1), 16), @@ -47,6 +46,17 @@ def test_range(): assert roundtrip_value > 0 +@pytest.mark.parametrize("_input", list(range(256))) +def test_to_float(_input: int): + wrapper = E4M3T.from_char(_input) + + if wrapper.raw_exponent == 0b1111 and wrapper.raw_mantissa == 0b111: + assert np.isnan(float(wrapper)) + else: + expected = (-1 if wrapper.sign else 1) * math.pow(2, wrapper.exponent) * wrapper.mantissa + assert float(wrapper) == expected, f"Expected {expected}, but got {wrapper}" + + @pytest.mark.parametrize("_input", list(range(256))) def test_rounding_exact(_input: int): expected = E4M3T.from_char(_input) @@ -85,8 +95,8 @@ def test_rounding(): expected = min([closest_above, closest_below], key=lambda v: abs(v - _input)) if closest_above != closest_below and abs(closest_above - _input) == abs(closest_below - _input): # Round to nearest, ties to even: - above_is_even = E4M3T(closest_above).mantissa % 2 == 0 - below_is_even = E4M3T(closest_below).mantissa % 2 == 0 + above_is_even = E4M3T(closest_above).raw_mantissa % 2 == 0 + below_is_even = E4M3T(closest_below).raw_mantissa % 2 == 0 if above_is_even and below_is_even: raise NotImplementedError( "Both numbers above and below the target are even!" From 984854b7c753988e97522a34ba69cd9cc97c32ed Mon Sep 17 00:00:00 2001 From: Michele Gregori Date: Mon, 29 Jul 2024 15:03:05 +0200 Subject: [PATCH 31/52] Fix for flaky GLIBC check on CI build (#77) --- .github/workflows/all.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/all.yml b/.github/workflows/all.yml index 97b8d871..02a292d6 100644 --- a/.github/workflows/all.yml +++ b/.github/workflows/all.yml @@ -379,13 +379,13 @@ jobs: echo "Checking the Linux JARs to ensure a sufficiently old required GLIBC and GLIBCXX version in each..." echo "Checking linux-aarch64/libvoyager.so (should require at most GLIBC 2.27...)" - objdump -T combined-jar/linux-aarch64/libvoyager.so | grep GLIBC | sed 's/.*GLIBC_\([.0-9]*\).*/\1/g' | sort -Vu | tail -n 1 | grep 2\.27 || (echo "Expected linux-aarch64 binary to require at most glibc 2.27. Ensure the dockcross container has not been updated." && false) + objdump -T combined-jar/linux-aarch64/libvoyager.so | grep GLIBC | grep -v GLIBCXX | sed 's/.*GLIBC_\([.0-9]*\).*/\1/g' | cat - <(echo 2\.27) | sort -Vu | tail -n 1 | grep 2\.27 || (echo "Expected linux-aarch64 binary to require at most glibc 2.27. Ensure the dockcross container has not been updated." && false) echo "Checking linux-aarch64/libvoyager.so (should require at most GLIBCXX 3.4.22...)" - objdump -T combined-jar/linux-aarch64/libvoyager.so | grep GLIBCXX | sed 's/.*GLIBCXX_\([.0-9]*\).*/\1/g' | sort -Vu | tail -n 1 | grep 3\.4\.22 || (echo "Expected linux-aarch64 binary to require at most glibc++ 3.4.22. Ensure the dockcross container has not been updated." && false) + objdump -T combined-jar/linux-aarch64/libvoyager.so | grep GLIBCXX | sed 's/.*GLIBCXX_\([.0-9]*\).*/\1/g' | cat - <(echo 3\.4\.22) | sort -Vu | tail -n 1 | grep 3\.4\.22 || (echo "Expected linux-aarch64 binary to require at most glibc++ 3.4.22. Ensure the dockcross container has not been updated." && false) echo "Checking linux-x64/libvoyager.so (should require at most GLIBC 2.27...)" - objdump -T combined-jar/linux-x64/libvoyager.so | grep GLIBC | sed 's/.*GLIBC_\([.0-9]*\).*/\1/g' | sort -Vu | tail -n 1 | grep 2\.27 || (echo "Expected linux-x64 binary to require at most glibc 2.28. Ensure the dockcross container has not been updated." && false) + objdump -T combined-jar/linux-x64/libvoyager.so | grep GLIBC | grep -v GLIBCXX | sed 's/.*GLIBC_\([.0-9]*\).*/\1/g' | cat - <(echo 2\.27) | sort -Vu | tail -n 1 | grep 2\.27 || (echo "Expected linux-x64 binary to require at most glibc 2.28. Ensure the dockcross container has not been updated." && false) echo "Checking linux-x64/libvoyager.so (should require at most GLIBCXX 3.4.22...)" - objdump -T combined-jar/linux-x64/libvoyager.so | grep GLIBCXX | sed 's/.*GLIBCXX_\([.0-9]*\).*/\1/g' | sort -Vu | tail -n 1 | grep 3\.4\.22 || (echo "Expected linux-x64 binary to require at most glibc++ 3.4.22. Ensure the dockcross container has not been updated." && false) + objdump -T combined-jar/linux-x64/libvoyager.so | grep GLIBCXX | sed 's/.*GLIBCXX_\([.0-9]*\).*/\1/g' | cat - <(echo 3\.4\.22) | sort -Vu | tail -n 1 | grep 3\.4\.22 || (echo "Expected linux-x64 binary to require at most glibc++ 3.4.22. Ensure the dockcross container has not been updated." && false) zip -r $(ls java-* | grep jar | tail -n 1) combined-jar/* - uses: actions/upload-artifact@v3 From a706eca6d188c3dbf0f92b699c577666a82334d0 Mon Sep 17 00:00:00 2001 From: Peter Sobot Date: Mon, 29 Jul 2024 14:27:38 -0400 Subject: [PATCH 32/52] Enable some (but not all) fast-math optimizations for better vectorization. (#78) * Enable some (but not all) fast-math optimizations for better vectorization. * Remove -ffinite-math-only. --- python/setup.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/python/setup.py b/python/setup.py index 1d1a8549..272d28f0 100644 --- a/python/setup.py +++ b/python/setup.py @@ -14,8 +14,8 @@ import os -import sys import platform +import sys from pathlib import Path import numpy as np @@ -24,7 +24,6 @@ from setuptools import Extension, setup from setuptools.command.build_ext import build_ext - # Find the "cpp" folder depending on where this script is run from: for search_path in ["./cpp/", "../cpp/", "../../cpp/"]: path = os.path.abspath(os.path.join(os.path.dirname(__file__), search_path)) @@ -100,6 +99,20 @@ def build_extensions(self): if ct == "unix": opts.append('-DVERSION_INFO="%s"' % self.distribution.get_version()) opts.append("-std=c++17") + # Allow reordering floating-point operations for + # better automatic vectorization, even without -ffast-math + # See: https://simonbyrne.github.io/notes/fastmath/#flushing_subnormals_to_zero + # for why -ffast-math is not included: + opts.extend( + [ + "-fassociative-math", + "-fno-signaling-nans", + "-fno-trapping-math", + "-fno-signed-zeros", + "-freciprocal-math", + "-fno-math-errno", + ] + ) if has_flag(self.compiler, "-fvisibility=hidden"): opts.append("-fvisibility=hidden") elif ct == "msvc": From e2f232eebb9e7efae9e71465dc7f1087a7aa04b8 Mon Sep 17 00:00:00 2001 From: Dylan Bannon Date: Mon, 29 Jul 2024 14:27:51 -0400 Subject: [PATCH 33/52] bump version to 2.0.8 (#79) * bump java version and regen docs * update python version and regen docs * add new generated doc files * fmt --- docs/java/allclasses-index.html | 24 +- docs/java/allpackages-index.html | 18 +- .../voyager/jni/Index.QueryResults.html | 46 +- .../spotify/voyager/jni/Index.SpaceType.html | 48 +- .../voyager/jni/Index.StorageDataType.html | 46 +- docs/java/com/spotify/voyager/jni/Index.html | 65 +- .../voyager/jni/StringIndex.QueryResults.html | 46 +- .../com/spotify/voyager/jni/StringIndex.html | 155 +++- .../jni/class-use/Index.QueryResults.html | 18 +- .../jni/class-use/Index.SpaceType.html | 18 +- .../jni/class-use/Index.StorageDataType.html | 18 +- .../spotify/voyager/jni/class-use/Index.html | 18 +- .../class-use/StringIndex.QueryResults.html | 18 +- .../voyager/jni/class-use/StringIndex.html | 18 +- .../spotify/voyager/jni/package-summary.html | 35 +- .../com/spotify/voyager/jni/package-tree.html | 22 +- .../com/spotify/voyager/jni/package-use.html | 18 +- .../voyager/jni/utils/JniLibExtractor.html | 44 +- .../spotify/voyager/jni/utils/TinyJson.html | 46 +- .../jni/utils/class-use/JniLibExtractor.html | 18 +- .../voyager/jni/utils/class-use/TinyJson.html | 18 +- .../voyager/jni/utils/package-summary.html | 29 +- .../voyager/jni/utils/package-tree.html | 22 +- .../voyager/jni/utils/package-use.html | 18 +- .../com/spotify/voyager/package-summary.html | 29 +- .../com/spotify/voyager/package-tree.html | 22 +- .../java/com/spotify/voyager/package-use.html | 18 +- docs/java/copy.svg | 33 + docs/java/help-doc.html | 45 +- docs/java/index-all.html | 32 +- docs/java/index.html | 20 +- docs/java/legal/ASSEMBLY_EXCEPTION | 6 +- docs/java/link.svg | 31 + docs/java/member-search-index.js | 2 +- docs/java/overview-summary.html | 8 +- docs/java/overview-tree.html | 22 +- docs/java/script.js | 141 ++- docs/java/search-page.js | 284 ++++++ docs/java/search.html | 77 ++ docs/java/search.js | 612 +++++++----- docs/java/stylesheet.css | 869 +++++++++++++----- docs/python/_static/documentation_options.js | 2 +- docs/python/genindex.html | 8 +- docs/python/index.html | 12 +- docs/python/reference.html | 12 +- docs/python/search.html | 8 +- java/pom.xml | 2 +- python/voyager/version.py | 2 +- 48 files changed, 2190 insertions(+), 933 deletions(-) create mode 100644 docs/java/copy.svg create mode 100644 docs/java/link.svg create mode 100644 docs/java/search-page.js create mode 100644 docs/java/search.html diff --git a/docs/java/allclasses-index.html b/docs/java/allclasses-index.html index 29324ea1..4f2d0602 100644 --- a/docs/java/allclasses-index.html +++ b/docs/java/allclasses-index.html @@ -1,26 +1,21 @@ - + - -All Classes and Interfaces (voyager 2.0.7 API) + +All Classes and Interfaces (voyager 2.0.8 API) - + - -

    diff --git a/docs/java/com/spotify/voyager/package-use.html b/docs/java/com/spotify/voyager/package-use.html index ce43ad13..126a4fca 100644 --- a/docs/java/com/spotify/voyager/package-use.html +++ b/docs/java/com/spotify/voyager/package-use.html @@ -1,16 +1,15 @@ - + - -Uses of Package com.spotify.voyager (voyager 2.0.7 API) + +Uses of Package com.spotify.voyager (voyager 2.0.8 API) - + - @@ -25,7 +24,7 @@
    diff --git a/docs/java/com/spotify/voyager/jni/Index.html b/docs/java/com/spotify/voyager/jni/Index.html index c0b1acbc..bae61397 100644 --- a/docs/java/com/spotify/voyager/jni/Index.html +++ b/docs/java/com/spotify/voyager/jni/Index.html @@ -1,11 +1,11 @@ - -Index (voyager 2.0.8 API) + +Index (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html index 5490a7a0..52eaf1d0 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -1,11 +1,11 @@ - -StringIndex.QueryResults (voyager 2.0.8 API) + +StringIndex.QueryResults (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.html b/docs/java/com/spotify/voyager/jni/StringIndex.html index 52ceacd2..e366bd94 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.html @@ -1,11 +1,11 @@ - -StringIndex (voyager 2.0.8 API) + +StringIndex (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html index 4c506014..69176371 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.8 API) + +Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html index df899153..1fdf75a0 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html @@ -1,11 +1,11 @@ - -Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.8 API) + +Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html index fa8b31bc..70f247c3 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html @@ -1,11 +1,11 @@ - -Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.8 API) + +Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.html b/docs/java/com/spotify/voyager/jni/class-use/Index.html index 317b9272..7605bca8 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.8 API) + +Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html index b1a24b71..16b02912 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.8 API) + +Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html index 18cacd43..de3fc4ed 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.8 API) + +Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/package-summary.html b/docs/java/com/spotify/voyager/jni/package-summary.html index ae4eae1f..4fbfe56c 100644 --- a/docs/java/com/spotify/voyager/jni/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/package-summary.html @@ -1,11 +1,11 @@ - -com.spotify.voyager.jni (voyager 2.0.8 API) + +com.spotify.voyager.jni (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/package-tree.html b/docs/java/com/spotify/voyager/jni/package-tree.html index e4f746b5..eb39bb29 100644 --- a/docs/java/com/spotify/voyager/jni/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/package-tree.html @@ -1,11 +1,11 @@ - -com.spotify.voyager.jni Class Hierarchy (voyager 2.0.8 API) + +com.spotify.voyager.jni Class Hierarchy (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/package-use.html b/docs/java/com/spotify/voyager/jni/package-use.html index e98e5367..4497d824 100644 --- a/docs/java/com/spotify/voyager/jni/package-use.html +++ b/docs/java/com/spotify/voyager/jni/package-use.html @@ -1,11 +1,11 @@ - -Uses of Package com.spotify.voyager.jni (voyager 2.0.8 API) + +Uses of Package com.spotify.voyager.jni (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html index b2107cbc..cbd6067c 100644 --- a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html @@ -1,11 +1,11 @@ - -JniLibExtractor (voyager 2.0.8 API) + +JniLibExtractor (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html index 0b152ffd..12cbe522 100644 --- a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html @@ -1,11 +1,11 @@ - -TinyJson (voyager 2.0.8 API) + +TinyJson (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html index 573cf49e..de44d45e 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.8 API) + +Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html index 413e69af..74bf1fcd 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html @@ -1,11 +1,11 @@ - -Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.8 API) + +Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-summary.html b/docs/java/com/spotify/voyager/jni/utils/package-summary.html index 4e94a0a6..96984cc2 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-summary.html @@ -1,11 +1,11 @@ - -com.spotify.voyager.jni.utils (voyager 2.0.8 API) + +com.spotify.voyager.jni.utils (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-tree.html b/docs/java/com/spotify/voyager/jni/utils/package-tree.html index fb5afb1a..ae4fff7c 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-tree.html @@ -1,11 +1,11 @@ - -com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.8 API) + +com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-use.html b/docs/java/com/spotify/voyager/jni/utils/package-use.html index 7cd43ad3..5d5d8633 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-use.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-use.html @@ -1,11 +1,11 @@ - -Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.8 API) + +Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/package-summary.html b/docs/java/com/spotify/voyager/package-summary.html index e419037d..51e2123d 100644 --- a/docs/java/com/spotify/voyager/package-summary.html +++ b/docs/java/com/spotify/voyager/package-summary.html @@ -1,11 +1,11 @@ - -com.spotify.voyager (voyager 2.0.8 API) + +com.spotify.voyager (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/package-tree.html b/docs/java/com/spotify/voyager/package-tree.html index 8bc9cff9..1be1a971 100644 --- a/docs/java/com/spotify/voyager/package-tree.html +++ b/docs/java/com/spotify/voyager/package-tree.html @@ -1,11 +1,11 @@ - -com.spotify.voyager Class Hierarchy (voyager 2.0.8 API) + +com.spotify.voyager Class Hierarchy (voyager 2.0.9 API) - + diff --git a/docs/java/com/spotify/voyager/package-use.html b/docs/java/com/spotify/voyager/package-use.html index 126a4fca..e7d23c31 100644 --- a/docs/java/com/spotify/voyager/package-use.html +++ b/docs/java/com/spotify/voyager/package-use.html @@ -1,11 +1,11 @@ - -Uses of Package com.spotify.voyager (voyager 2.0.8 API) + +Uses of Package com.spotify.voyager (voyager 2.0.9 API) - + diff --git a/docs/java/help-doc.html b/docs/java/help-doc.html index be0d1d9e..fba82d8f 100644 --- a/docs/java/help-doc.html +++ b/docs/java/help-doc.html @@ -1,11 +1,11 @@ - -API Help (voyager 2.0.8 API) + +API Help (voyager 2.0.9 API) - + diff --git a/docs/java/index-all.html b/docs/java/index-all.html index 3900e6e3..d2987414 100644 --- a/docs/java/index-all.html +++ b/docs/java/index-all.html @@ -1,11 +1,11 @@ - -Index (voyager 2.0.8 API) + +Index (voyager 2.0.9 API) - + diff --git a/docs/java/index.html b/docs/java/index.html index 23271cc2..709eeb96 100644 --- a/docs/java/index.html +++ b/docs/java/index.html @@ -1,11 +1,11 @@ - -Overview (voyager 2.0.8 API) + +Overview (voyager 2.0.9 API) - + @@ -49,7 +49,7 @@
    -

    voyager 2.0.8 API

    +

    voyager 2.0.9 API

    Packages
    diff --git a/docs/java/overview-summary.html b/docs/java/overview-summary.html index 6f4dea5d..d7e3dfcb 100644 --- a/docs/java/overview-summary.html +++ b/docs/java/overview-summary.html @@ -1,11 +1,11 @@ - -voyager 2.0.8 API + +voyager 2.0.9 API - + diff --git a/docs/java/overview-tree.html b/docs/java/overview-tree.html index f9156d1f..aa6cdef3 100644 --- a/docs/java/overview-tree.html +++ b/docs/java/overview-tree.html @@ -1,11 +1,11 @@ - -Class Hierarchy (voyager 2.0.8 API) + +Class Hierarchy (voyager 2.0.9 API) - + diff --git a/docs/java/search.html b/docs/java/search.html index eb59b6e3..8693ece1 100644 --- a/docs/java/search.html +++ b/docs/java/search.html @@ -1,11 +1,11 @@ - -Search (voyager 2.0.8 API) + +Search (voyager 2.0.9 API) - + diff --git a/docs/python/_static/basic.css b/docs/python/_static/basic.css index 4e9a9f1f..30fee9d0 100644 --- a/docs/python/_static/basic.css +++ b/docs/python/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -237,6 +237,10 @@ a.headerlink { visibility: hidden; } +a:visited { + color: #551A8B; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, @@ -324,6 +328,7 @@ aside.sidebar { p.sidebar-title { font-weight: bold; } + nav.contents, aside.topic, div.admonition, div.topic, blockquote { @@ -331,6 +336,7 @@ div.admonition, div.topic, blockquote { } /* -- topics ---------------------------------------------------------------- */ + nav.contents, aside.topic, div.topic { @@ -606,6 +612,7 @@ ol.simple p, ul.simple p { margin-bottom: 0; } + aside.footnote > span, div.citation > span { float: left; @@ -667,6 +674,16 @@ dd { margin-left: 30px; } +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + dl > dd:last-child, dl > dd:last-child > :last-child { margin-bottom: 0; @@ -735,6 +752,14 @@ abbr, acronym { cursor: help; } +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + /* -- code displays --------------------------------------------------------- */ pre { diff --git a/docs/python/_static/copybutton.js b/docs/python/_static/copybutton.js index 02c5c82d..2ea7ff3e 100644 --- a/docs/python/_static/copybutton.js +++ b/docs/python/_static/copybutton.js @@ -20,7 +20,7 @@ const messages = { }, 'fr' : { 'copy': 'Copier', - 'copy_to_clipboard': 'Copié dans le presse-papier', + 'copy_to_clipboard': 'Copier dans le presse-papier', 'copy_success': 'Copié !', 'copy_failure': 'Échec de la copie', }, @@ -224,7 +224,7 @@ var copyTargetText = (trigger) => { var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); // get filtered text - let exclude = '.linenos, .gp'; + let exclude = '.linenos'; let text = filterText(target, exclude); return formatCopyText(text, '', false, true, true, true, '', '') diff --git a/docs/python/_static/debug.css b/docs/python/_static/debug.css index 3264805c..74d4aec3 100644 --- a/docs/python/_static/debug.css +++ b/docs/python/_static/debug.css @@ -64,6 +64,6 @@ body { .sb-footer__inner { background: salmon; } -[role="main"] { +.sb-article { background: white; } diff --git a/docs/python/_static/doctools.js b/docs/python/_static/doctools.js index 527b876c..d06a71d7 100644 --- a/docs/python/_static/doctools.js +++ b/docs/python/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/docs/python/_static/documentation_options.js b/docs/python/_static/documentation_options.js index a88fb686..fc2fe926 100644 --- a/docs/python/_static/documentation_options.js +++ b/docs/python/_static/documentation_options.js @@ -1,6 +1,5 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '2.0.8', +const DOCUMENTATION_OPTIONS = { + VERSION: '2.0.9', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/python/_static/language_data.js b/docs/python/_static/language_data.js index 2e22b06a..250f5665 100644 --- a/docs/python/_static/language_data.js +++ b/docs/python/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/docs/python/_static/pygments.css b/docs/python/_static/pygments.css index 75471509..c2e07c71 100644 --- a/docs/python/_static/pygments.css +++ b/docs/python/_static/pygments.css @@ -22,6 +22,7 @@ .highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ .highlight .gd { color: #a40000 } /* Generic.Deleted */ .highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ +.highlight .ges { color: #000000; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #ef2929 } /* Generic.Error */ .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .highlight .gi { color: #00A000 } /* Generic.Inserted */ @@ -101,12 +102,13 @@ body[data-theme="dark"] .highlight .x { color: #d0d0d0 } /* Other */ body[data-theme="dark"] .highlight .p { color: #d0d0d0 } /* Punctuation */ body[data-theme="dark"] .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ body[data-theme="dark"] .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ -body[data-theme="dark"] .highlight .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */ +body[data-theme="dark"] .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ body[data-theme="dark"] .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ body[data-theme="dark"] .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ body[data-theme="dark"] .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ body[data-theme="dark"] .highlight .gd { color: #d22323 } /* Generic.Deleted */ body[data-theme="dark"] .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body[data-theme="dark"] .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ body[data-theme="dark"] .highlight .gr { color: #d22323 } /* Generic.Error */ body[data-theme="dark"] .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ body[data-theme="dark"] .highlight .gi { color: #589819 } /* Generic.Inserted */ @@ -186,12 +188,13 @@ body:not([data-theme="light"]) .highlight .x { color: #d0d0d0 } /* Other */ body:not([data-theme="light"]) .highlight .p { color: #d0d0d0 } /* Punctuation */ body:not([data-theme="light"]) .highlight .ch { color: #ababab; font-style: italic } /* Comment.Hashbang */ body:not([data-theme="light"]) .highlight .cm { color: #ababab; font-style: italic } /* Comment.Multiline */ -body:not([data-theme="light"]) .highlight .cp { color: #cd2828; font-weight: bold } /* Comment.Preproc */ +body:not([data-theme="light"]) .highlight .cp { color: #ff3a3a; font-weight: bold } /* Comment.Preproc */ body:not([data-theme="light"]) .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ body:not([data-theme="light"]) .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ body:not([data-theme="light"]) .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ body:not([data-theme="light"]) .highlight .gd { color: #d22323 } /* Generic.Deleted */ body:not([data-theme="light"]) .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ +body:not([data-theme="light"]) .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ body:not([data-theme="light"]) .highlight .gr { color: #d22323 } /* Generic.Error */ body:not([data-theme="light"]) .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ body:not([data-theme="light"]) .highlight .gi { color: #589819 } /* Generic.Inserted */ diff --git a/docs/python/_static/scripts/furo.js b/docs/python/_static/scripts/furo.js index cbf64878..32e7c05b 100644 --- a/docs/python/_static/scripts/furo.js +++ b/docs/python/_static/scripts/furo.js @@ -1,3 +1,3 @@ /*! For license information please see furo.js.LICENSE.txt */ -(()=>{var t={212:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(212),e=n.n(t),o=null,r=null,c=window.pageYOffset||document.documentElement.scrollTop;function s(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function l(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",s)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;n=t,0==Math.floor(r.getBoundingClientRect().top)?r.classList.add("scrolled"):r.classList.remove("scrolled"),function(t){t<64?document.documentElement.classList.remove("show-back-to-top"):tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),l()}))})()})(); +(()=>{var t={212:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(212),e=n.n(t),o=null,r=null,c=window.pageYOffset||document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;n=t,0==Math.floor(r.getBoundingClientRect().top)?r.classList.add("scrolled"):r.classList.remove("scrolled"),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); //# sourceMappingURL=furo.js.map \ No newline at end of file diff --git a/docs/python/_static/scripts/furo.js.map b/docs/python/_static/scripts/furo.js.map index 7ed2be87..47053022 100644 --- a/docs/python/_static/scripts/furo.js.map +++ b/docs/python/_static/scripts/furo.js.map @@ -1 +1 @@ -{"version":3,"file":"scripts/furo.js","mappings":"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","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader() {\n if (Math.floor(header.getBoundingClientRect().top) == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader();\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 0.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","floor","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"scripts/furo.js","mappings":";iCAAA,MAQWA,SAWS,IAAX,EAAAC,EACH,EAAAA,EACkB,oBAAXC,OACLA,OACAC,KAbO,EAAF,WACP,OAaJ,SAAUD,GACR,aAMA,IAAIE,EAAW,CAEbC,SAAU,SACVC,aAAc,SAGdC,QAAQ,EACRC,YAAa,SAGbC,OAAQ,EACRC,QAAQ,EAGRC,QAAQ,GA6BNC,EAAY,SAAUC,EAAMC,EAAMC,GAEpC,GAAKA,EAAOC,SAASL,OAArB,CAGA,IAAIM,EAAQ,IAAIC,YAAYL,EAAM,CAChCM,SAAS,EACTC,YAAY,EACZL,OAAQA,IAIVD,EAAKO,cAAcJ,EAVgB,CAWrC,EAOIK,EAAe,SAAUR,GAC3B,IAAIS,EAAW,EACf,GAAIT,EAAKU,aACP,KAAOV,GACLS,GAAYT,EAAKW,UACjBX,EAAOA,EAAKU,aAGhB,OAAOD,GAAY,EAAIA,EAAW,CACpC,EAMIG,EAAe,SAAUC,GACvBA,GACFA,EAASC,MAAK,SAAUC,EAAOC,GAG7B,OAFcR,EAAaO,EAAME,SACnBT,EAAaQ,EAAMC,UACF,EACxB,CACT,GAEJ,EAwCIC,EAAW,SAAUlB,EAAME,EAAUiB,GACvC,IAAIC,EAASpB,EAAKqB,wBACd1B,EAnCU,SAAUO,GAExB,MAA+B,mBAApBA,EAASP,OACX2B,WAAWpB,EAASP,UAItB2B,WAAWpB,EAASP,OAC7B,CA2Be4B,CAAUrB,GACvB,OAAIiB,EAEAK,SAASJ,EAAOD,OAAQ,KACvB/B,EAAOqC,aAAeC,SAASC,gBAAgBC,cAG7CJ,SAASJ,EAAOS,IAAK,KAAOlC,CACrC,EAMImC,EAAa,WACf,OACEC,KAAKC,KAAK5C,EAAOqC,YAAcrC,EAAO6C,cAnCjCF,KAAKG,IACVR,SAASS,KAAKC,aACdV,SAASC,gBAAgBS,aACzBV,SAASS,KAAKE,aACdX,SAASC,gBAAgBU,aACzBX,SAASS,KAAKP,aACdF,SAASC,gBAAgBC,aAkC7B,EAmBIU,EAAY,SAAUzB,EAAUX,GAClC,IAAIqC,EAAO1B,EAASA,EAAS2B,OAAS,GACtC,GAbgB,SAAUC,EAAMvC,GAChC,SAAI4B,MAAgBZ,EAASuB,EAAKxB,QAASf,GAAU,GAEvD,CAUMwC,CAAYH,EAAMrC,GAAW,OAAOqC,EACxC,IAAK,IAAII,EAAI9B,EAAS2B,OAAS,EAAGG,GAAK,EAAGA,IACxC,GAAIzB,EAASL,EAAS8B,GAAG1B,QAASf,GAAW,OAAOW,EAAS8B,EAEjE,EAOIC,EAAmB,SAAUC,EAAK3C,GAEpC,GAAKA,EAAST,QAAWoD,EAAIC,WAA7B,CAGA,IAAIC,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASR,aAG7BkD,EAAiBG,EAAI7C,GAV0B,CAWjD,EAOIiD,EAAa,SAAUC,EAAOlD,GAEhC,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUC,OAAOhD,EAASX,UAC7B6D,EAAMnC,QAAQgC,UAAUC,OAAOhD,EAASV,cAGxCoD,EAAiBG,EAAI7C,GAGrBJ,EAAU,oBAAqBiD,EAAI,CACjCM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,EAOIoD,EAAiB,SAAUT,EAAK3C,GAElC,GAAKA,EAAST,OAAd,CAGA,IAAIsD,EAAKF,EAAIC,WAAWE,QAAQ,MAC3BD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASR,aAG1B4D,EAAeP,EAAI7C,GAVS,CAW9B,EA6LA,OA1JkB,SAAUsD,EAAUC,GAKpC,IACIC,EAAU7C,EAAU8C,EAASC,EAAS1D,EADtC2D,EAAa,CAUjBA,MAAmB,WAEjBH,EAAWhC,SAASoC,iBAAiBN,GAGrC3C,EAAW,GAGXkD,MAAMC,UAAUC,QAAQC,KAAKR,GAAU,SAAUjB,GAE/C,IAAIxB,EAAUS,SAASyC,eACrBC,mBAAmB3B,EAAK4B,KAAKC,OAAO,KAEjCrD,GAGLJ,EAAS0D,KAAK,CACZ1B,IAAKJ,EACLxB,QAASA,GAEb,IAGAL,EAAaC,EACf,EAKAgD,OAAoB,WAElB,IAAIW,EAASlC,EAAUzB,EAAUX,GAG5BsE,EASDb,GAAWa,EAAOvD,UAAY0C,EAAQ1C,UAG1CkC,EAAWQ,EAASzD,GAzFT,SAAUkD,EAAOlD,GAE9B,GAAKkD,EAAL,CAGA,IAAIL,EAAKK,EAAMP,IAAIG,QAAQ,MACtBD,IAGLA,EAAGE,UAAUM,IAAIrD,EAASX,UAC1B6D,EAAMnC,QAAQgC,UAAUM,IAAIrD,EAASV,cAGrC8D,EAAeP,EAAI7C,GAGnBJ,EAAU,kBAAmBiD,EAAI,CAC/BM,KAAMD,EAAMP,IACZ5B,QAASmC,EAAMnC,QACff,SAAUA,IAjBM,CAmBpB,CAqEIuE,CAASD,EAAQtE,GAGjByD,EAAUa,GAfJb,IACFR,EAAWQ,EAASzD,GACpByD,EAAU,KAchB,GAMIe,EAAgB,SAAUvE,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,sBAAsBf,EAAWgB,OACpD,EAMIC,EAAgB,SAAU3E,GAExByD,GACFxE,EAAOuF,qBAAqBf,GAI9BA,EAAUxE,EAAOwF,uBAAsB,WACrChE,EAAaC,GACbgD,EAAWgB,QACb,GACF,EAkDA,OA7CAhB,EAAWkB,QAAU,WAEfpB,GACFR,EAAWQ,EAASzD,GAItBd,EAAO4F,oBAAoB,SAAUN,GAAe,GAChDxE,EAASN,QACXR,EAAO4F,oBAAoB,SAAUF,GAAe,GAItDjE,EAAW,KACX6C,EAAW,KACXC,EAAU,KACVC,EAAU,KACV1D,EAAW,IACb,EAOEA,EA3XS,WACX,IAAI+E,EAAS,CAAC,EAOd,OANAlB,MAAMC,UAAUC,QAAQC,KAAKgB,WAAW,SAAUC,GAChD,IAAK,IAAIC,KAAOD,EAAK,CACnB,IAAKA,EAAIE,eAAeD,GAAM,OAC9BH,EAAOG,GAAOD,EAAIC,EACpB,CACF,IACOH,CACT,CAkXeK,CAAOhG,EAAUmE,GAAW,CAAC,GAGxCI,EAAW0B,QAGX1B,EAAWgB,SAGXzF,EAAOoG,iBAAiB,SAAUd,GAAe,GAC7CxE,EAASN,QACXR,EAAOoG,iBAAiB,SAAUV,GAAe,GAS9CjB,CACT,CAOF,CArcW4B,CAAQvG,EAChB,UAFM,SAEN,uBCXDwG,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAaE,QAGrB,IAAIC,EAASN,EAAyBE,GAAY,CAGjDG,QAAS,CAAC,GAOX,OAHAE,EAAoBL,GAAU1B,KAAK8B,EAAOD,QAASC,EAAQA,EAAOD,QAASJ,GAGpEK,EAAOD,OACf,CCrBAJ,EAAoBO,EAAKF,IACxB,IAAIG,EAASH,GAAUA,EAAOI,WAC7B,IAAOJ,EAAiB,QACxB,IAAM,EAEP,OADAL,EAAoBU,EAAEF,EAAQ,CAAEG,EAAGH,IAC5BA,CAAM,ECLdR,EAAoBU,EAAI,CAACN,EAASQ,KACjC,IAAI,IAAInB,KAAOmB,EACXZ,EAAoBa,EAAED,EAAYnB,KAASO,EAAoBa,EAAET,EAASX,IAC5EqB,OAAOC,eAAeX,EAASX,EAAK,CAAEuB,YAAY,EAAMC,IAAKL,EAAWnB,IAE1E,ECNDO,EAAoBxG,EAAI,WACvB,GAA0B,iBAAf0H,WAAyB,OAAOA,WAC3C,IACC,OAAOxH,MAAQ,IAAIyH,SAAS,cAAb,EAChB,CAAE,MAAOC,GACR,GAAsB,iBAAX3H,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxBuG,EAAoBa,EAAI,CAACrB,EAAK6B,IAAUP,OAAOzC,UAAUqB,eAAenB,KAAKiB,EAAK6B,4CCK9EC,EAAY,KACZC,EAAS,KACTC,EAAgB/H,OAAO6C,aAAeP,SAASC,gBAAgByF,UACnE,MAAMC,EAAmB,GA2EzB,SAASC,IACP,MAAMC,EAAeC,aAAaC,QAAQ,UAAY,OAZxD,IAAkBC,EACH,WADGA,EAaItI,OAAOuI,WAAW,gCAAgCC,QAI/C,SAAjBL,EACO,QACgB,SAAhBA,EACA,OAEA,OAIU,SAAjBA,EACO,OACgB,QAAhBA,EACA,QAEA,SA9BoB,SAATG,GAA4B,SAATA,IACzCG,QAAQC,MAAM,2BAA2BJ,yBACzCA,EAAO,QAGThG,SAASS,KAAK4F,QAAQC,MAAQN,EAC9BF,aAAaS,QAAQ,QAASP,GAC9BG,QAAQK,IAAI,cAAcR,UA0B5B,CAkDA,SAASnC,KART,WAEE,MAAM4C,EAAUzG,SAAS0G,uBAAuB,gBAChDrE,MAAMsE,KAAKF,GAASlE,SAASqE,IAC3BA,EAAI9C,iBAAiB,QAAS8B,EAAe,GAEjD,CAGEiB,GA9CF,WAEE,IAAIC,EAA6B,EAC7BC,GAAU,EAEdrJ,OAAOoG,iBAAiB,UAAU,SAAUuB,GAC1CyB,EAA6BpJ,OAAOsJ,QAE/BD,IACHrJ,OAAOwF,uBAAsB,WAzDnC,IAAuB+D,IA0DDH,EA9GkC,GAAlDzG,KAAK6G,MAAM1B,EAAO7F,wBAAwBQ,KAC5CqF,EAAOjE,UAAUM,IAAI,YAErB2D,EAAOjE,UAAUC,OAAO,YAI5B,SAAmCyF,GAC7BA,EAAYtB,EACd3F,SAASC,gBAAgBsB,UAAUC,OAAO,oBAEtCyF,EAAYxB,EACdzF,SAASC,gBAAgBsB,UAAUM,IAAI,oBAC9BoF,EAAYxB,GACrBzF,SAASC,gBAAgBsB,UAAUC,OAAO,oBAG9CiE,EAAgBwB,CAClB,CAoCEE,CAA0BF,GAlC5B,SAA6BA,GACT,OAAd1B,IAKa,GAAb0B,EACF1B,EAAU6B,SAAS,EAAG,GAGtB/G,KAAKC,KAAK2G,IACV5G,KAAK6G,MAAMlH,SAASC,gBAAgBS,aAAehD,OAAOqC,aAE1DwF,EAAU6B,SAAS,EAAG7B,EAAU7E,cAGhBV,SAASqH,cAAc,mBAc3C,CAKEC,CAAoBL,GAwDdF,GAAU,CACZ,IAEAA,GAAU,EAEd,IACArJ,OAAO6J,QACT,CA6BEC,GA1BkB,OAAdjC,GAKJ,IAAI,IAAJ,CAAY,cAAe,CACzBrH,QAAQ,EACRuJ,WAAW,EACX5J,SAAU,iBACVI,OAAQ,KACN,IAAIyJ,EAAM9H,WAAW+H,iBAAiB3H,SAASC,iBAAiB2H,UAChE,OAAOpC,EAAO7F,wBAAwBkI,OAAS,GAAMH,EAAM,CAAC,GAiBlE,CAcA1H,SAAS8D,iBAAiB,oBAT1B,WACE9D,SAASS,KAAKW,WAAWG,UAAUC,OAAO,SAE1CgE,EAASxF,SAASqH,cAAc,UAChC9B,EAAYvF,SAASqH,cAAc,eAEnCxD,GACF","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader() {\n if (Math.floor(header.getBoundingClientRect().top) == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader();\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 0.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","floor","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/python/_static/searchtools.js b/docs/python/_static/searchtools.js index e89e34d4..7918c3fa 100644 --- a/docs/python/_static/searchtools.js +++ b/docs/python/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2022 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -57,12 +57,12 @@ const _removeChildren = (element) => { const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -const _displayItem = (item, searchTerms) => { +const _displayItem = (item, searchTerms, highlightTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; const [docName, title, anchor, descr, score, _filename] = item; @@ -75,20 +75,24 @@ const _displayItem = (item, searchTerms) => { if (dirname.match(/\/index\/$/)) dirname = dirname.substring(0, dirname.length - 6); else if (dirname === "index/") dirname = ""; - requestUrl = docUrlRoot + dirname; + requestUrl = contentRoot + dirname; linkUrl = requestUrl; } else { // normal html builders - requestUrl = docUrlRoot + docName + docFileSuffix; + requestUrl = contentRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } let linkEl = listItem.appendChild(document.createElement("a")); linkEl.href = linkUrl + anchor; linkEl.dataset.score = score; linkEl.innerHTML = title; - if (descr) + if (descr) { listItem.appendChild(document.createElement("span")).innerHTML = " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) @@ -97,6 +101,9 @@ const _displayItem = (item, searchTerms) => { listItem.appendChild( Search.makeSearchSummary(data, searchTerms) ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); }); Search.output.appendChild(listItem); }; @@ -115,14 +122,15 @@ const _finishSearch = (resultCount) => { const _displayNextItem = ( results, resultCount, - searchTerms + searchTerms, + highlightTerms, ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { - _displayItem(results.pop(), searchTerms); + _displayItem(results.pop(), searchTerms, highlightTerms); setTimeout( - () => _displayNextItem(results, resultCount, searchTerms), + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), 5 ); } @@ -360,7 +368,7 @@ const Search = { // console.info("search results:", Search.lastresults); // print the results - _displayNextItem(results, results.length, searchTerms); + _displayNextItem(results, results.length, searchTerms, highlightTerms); }, /** diff --git a/docs/python/_static/skeleton.css b/docs/python/_static/skeleton.css index 01231167..467c878c 100644 --- a/docs/python/_static/skeleton.css +++ b/docs/python/_static/skeleton.css @@ -143,19 +143,19 @@ article { .sb-article-container, .sb-footer-content__inner, -.drop-secondary-sidebar-for-full-width-content [role="main"], +.drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 100vw; } -[role="main"], +.sb-article, .match-content-width { padding: 0 1rem; box-sizing: border-box; } @media (min-width: 32rem) { - [role="main"], + .sb-article, .match-content-width { padding: 0 2rem; } @@ -167,33 +167,33 @@ article { width: auto; } .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 42rem; } - [role="main"], + .sb-article, .match-content-width { width: 42rem; } } @media (min-width: 46rem) { .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 46rem; } - [role="main"], + .sb-article, .match-content-width { width: 46rem; } } @media (min-width: 50rem) { .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 50rem; } - [role="main"], + .sb-article, .match-content-width { width: 50rem; } @@ -208,33 +208,33 @@ article { display: none !important; } .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 59rem; } - [role="main"], + .sb-article, .match-content-width { width: 42rem; } } @media (min-width: 63rem) { .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 63rem; } - [role="main"], + .sb-article, .match-content-width { width: 46rem; } } @media (min-width: 67rem) { .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 67rem; } - [role="main"], + .sb-article, .match-content-width { width: 50rem; } @@ -249,11 +249,11 @@ article { display: none !important; } .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 59rem; } - [role="main"], + .sb-article, .match-content-width { width: 42rem; } @@ -261,24 +261,24 @@ article { /* Full desktop views */ @media (min-width: 80rem) { - [role="main"], + .sb-article, .match-content-width { width: 46rem; } .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 63rem; } } @media (min-width: 84rem) { - [role="main"], + .sb-article, .match-content-width { width: 50rem; } .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 67rem; } @@ -286,7 +286,7 @@ article { @media (min-width: 88rem) { .sb-footer-content__inner, - .drop-secondary-sidebar-for-full-width-content [role="main"], + .drop-secondary-sidebar-for-full-width-content .sb-article, .drop-secondary-sidebar-for-full-width-content .match-content-width { width: 67rem; } diff --git a/docs/python/_static/sphinx_highlight.js b/docs/python/_static/sphinx_highlight.js index aae669d7..8a96c69a 100644 --- a/docs/python/_static/sphinx_highlight.js +++ b/docs/python/_static/sphinx_highlight.js @@ -29,14 +29,19 @@ const _highlight = (node, addItems, text, className) => { } span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); parent.insertBefore( span, parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), + rest, node.nextSibling ) ); node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); if (isInSVG) { const rect = document.createElementNS( @@ -140,5 +145,10 @@ const SphinxHighlight = { }, }; -_ready(SphinxHighlight.highlightSearchWords); -_ready(SphinxHighlight.initEscapeListener); +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/docs/python/_static/styles/furo.css b/docs/python/_static/styles/furo.css index 16a3d67c..3d29a218 100644 --- a/docs/python/_static/styles/furo.css +++ b/docs/python/_static/styles/furo.css @@ -1,2 +1,2 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}}.visually-hidden{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.1);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.1);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.1);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.1);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.1);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.1);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.1);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.1);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.1);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.1);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.1);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.1);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.1);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#646776;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2962ff;--color-brand-content:#2a5adf;--color-api-background:var(--color-background-secondary);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link--hover:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link-underline--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto,body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}a:hover{color:var(--color-link--hover);-webkit-text-decoration-color:var(--color-link-underline--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link);-webkit-text-decoration-color:var(--color-link-underline--hover);text-decoration-color:var(--color-link-underline--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{background:var(--color-background-primary);color:var(--color-foreground-primary);height:100%}article{background:var(--color-content-background);color:var(--color-content-foreground)}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:-webkit-sticky;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);-webkit-text-decoration-color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);-webkit-text-decoration-color:var(--color-link--hover);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{vertical-align:middle}.theme-toggle{background:transparent;border:none;cursor:pointer;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1rem;vertical-align:middle;width:1rem}.theme-toggle-header{float:left;padding:1rem .5rem}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1rem;width:1rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg{color:inherit;height:1rem;width:1rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{fill:currentColor;display:inline-block;height:1rem;width:1rem}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.theme-toggle-header{display:block}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:-webkit-sticky;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;width:100%}:target{scroll-margin-top:var(--header-height)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig{background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em}.sig:hover{background:var(--color-api-background-hover)}.sig a.reference .viewcode-link{font-weight:400;width:3.5rem}.sig span.pre{overflow-wrap:anywhere}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}.versionmodified{font-style:italic}div.deprecated p,div.versionadded p,div.versionchanged p{margin-bottom:.125rem;margin-top:.125rem}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}p code.literal{border:1px solid var(--color-background-border)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);overflow:auto;padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:-webkit-max-content auto;grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{font-weight:500}aside.footnote>p,div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;-webkit-text-decoration-line:none;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;-webkit-text-decoration-color:var(--color-link-underline);text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='12' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23607D8B' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 0h24v24H0z' stroke='none'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree .reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling.Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#646776;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2962ff;--color-brand-content:#2a5adf;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link--hover:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link-underline--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto,body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link);text-decoration-color:var(--color-link-underline--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{background:var(--color-background-primary);color:var(--color-foreground-primary);height:100%}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{vertical-align:middle}.theme-toggle{background:transparent;border:none;cursor:pointer;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1rem;vertical-align:middle;width:1rem}.theme-toggle-header{float:left;padding:1rem .5rem}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1rem;width:1rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg{color:inherit;height:1rem;width:1rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{fill:currentColor;display:inline-block;height:1rem;width:1rem}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.theme-toggle-header{display:block}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.25rem;width:1.25rem}:target{scroll-margin-top:var(--header-height)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:3.5rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}.versionmodified{font-style:italic}div.deprecated p,div.versionadded p,div.versionchanged p{margin-bottom:.125rem;margin-top:.125rem}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>p,div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='12' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23607D8B' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 0h24v24H0z' stroke='none'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree .reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling.Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} /*# sourceMappingURL=furo.css.map*/ \ No newline at end of file diff --git a/docs/python/_static/styles/furo.css.map b/docs/python/_static/styles/furo.css.map index 03770b08..1924b333 100644 --- a/docs/python/_static/styles/furo.css.map +++ b/docs/python/_static/styles/furo.css.map @@ -1 +1 @@ -{"version":3,"file":"styles/furo.css","mappings":"AAAA,2EAA2E,CAU3E,KAEE,6BAA8B,CAD9B,gBAEF,CASA,KACE,QACF,CAMA,KACE,aACF,CAOA,GACE,aAAc,CACd,cACF,CAUA,GACE,sBAAuB,CACvB,QAAS,CACT,gBACF,CAOA,IACE,+BAAiC,CACjC,aACF,CASA,EACE,4BACF,CAOA,YACE,kBAAmB,CACnB,yBAA0B,CAC1B,gCACF,CAMA,SAEE,kBACF,CAOA,cAGE,+BAAiC,CACjC,aACF,CAeA,QAEE,aAAc,CACd,aAAc,CACd,iBAAkB,CAClB,uBACF,CAEA,IACE,aACF,CAEA,IACE,SACF,CASA,IACE,iBACF,CAUA,sCAKE,mBAAoB,CACpB,cAAe,CACf,gBAAiB,CACjB,QACF,CAOA,aAEE,gBACF,CAOA,cAEE,mBACF,CAMA,gDAIE,yBACF,CAMA,wHAIE,iBAAkB,CAClB,SACF,CAMA,4GAIE,6BACF,CAMA,SACE,0BACF,CASA,OACE,qBAAsB,CACtB,aAAc,CACd,aAAc,CACd,cAAe,CACf,SAAU,CACV,kBACF,CAMA,SACE,uBACF,CAMA,SACE,aACF,CAOA,6BAEE,qBAAsB,CACtB,SACF,CAMA,kFAEE,WACF,CAOA,cACE,4BAA6B,CAC7B,mBACF,CAMA,yCACE,uBACF,CAOA,6BACE,yBAA0B,CAC1B,YACF,CASA,QACE,aACF,CAMA,QACE,iBACF,CAiBA,kBACE,YACF,CCvVA,aAcE,kEACE,uBAOF,WACE,iDARA,CCpBJ,iBAOE,6BAEA,mBANA,qBAEA,sBACA,0BAFA,oBAHA,4BAOA,6BANA,mBAOA,CAEF,gBACE,aCPF,KCGE,mHAEA,wGAGA,wBAAyB,CACzB,wBAAyB,CACzB,4BAA6B,CAC7B,yBAA0B,CAC1B,2BAA4B,CAG5B,sDAAuD,CACvD,gDAAiD,CACjD,wDAAyD,CAGzD,0CAA2C,CAC3C,gDAAiD,CACjD,gDAAiD,CAKjD,gCAAiC,CACjC,sCAAuC,CAGvC,2CAA4C,CAG5C,uCAAwC,CChCxC,+FAGA,uBAAwB,CAGxB,iCAAkC,CAClC,kCAAmC,CAEnC,+BAAgC,CAChC,sCAAuC,CACvC,sCAAuC,CACvC,qGAIA,mDAAoD,CAEpD,mCAAoC,CACpC,8CAA+C,CAC/C,gDAAiD,CACjD,kCAAmC,CACnC,6DAA8D,CAG9D,6BAA8B,CAC9B,6BAA8B,CAC9B,+BAAgC,CAChC,kCAAmC,CACnC,kCAAmC,CCPjC,ukBCYA,srCAZF,kaCVA,mLAOA,oTAWA,2UAaA,0CACA,gEACA,0CAGA,gEAUA,yCACA,+DAIA,4CACA,kEAGA,sGAEA,mGAGA,sCACA,2DAEA,4CACA,kEACA,uCACA,6DAEA,2GACA,+CAGA,+MAOA,4BACA,2FAIA,4DACA,sEACA,kEACA,sEACA,gDAGA,kCACA,uEACA,mCACA,4DACA,yDAGA,2DACA,qDAGA,0CACA,8CACA,oDACA,oDL7GF,iCAEA,iEAME,oCKyGA,yDAIA,sCACA,kCACA,sDAGA,0CACA,kEACA,oDAEA,sDAGA,oCACA,oEAIA,CAGA,yDAGA,qDACA,oDAGA,6DAIA,iEAGA,2DAEA,2DL9IE,4DAEA,gEAIF,gEKgGA,gFAIA,oNAOA,qDAEA,gFAIA,4DAIA,oEAMA,yEAIA,6DACA,0DAGA,uDAGA,qDAEA,wDLpII,6DAEA,yDACE,2DAMN,uCAIA,yCACE,8CAGF,sDMjDA,6DAKA,oCAIA,4CACA,kBAGF,sBAMA,2BAME,qCAGA,qCAEA,iCAEA,+BAEA,mCAEA,qCAIA,CACA,gCACA,gDAKA,kCAIA,6BAEA,0CAQA,kCAIF,8BAGE,8BACA,uCAGF,sCAKE,kCAEA,sDACA,uEAGE,sDACA,gGACF,wCAGI,sBACA,yHCzEJ,2BACA,qCAGF,sEAGE,kEAGA,sHAGA,2IACE,8BACA,8BAOF,uCAEA,wEAGA,sDACA,iCAKA,CAEF,qCAEE,sDACA,gCACA,gEAKA,+CAOE,sBACA,gEAGA,GAYF,yLACA,gDAGA,mBAEA,wCACA,wCAGF,CAEE,iCAGF,wBACE,mBAIF,oBAFE,eAEF,CAJE,gBAEA,CAMA,mBACA,mBAGA,mDAIA,YACA,mBAEA,CACA,kBAGF,OAJE,kBAQA,CAJF,GACE,aAGA,IACA,mCACA,qBAEF,IACE,oBAEA,aACA,CAFA,WAEA,GAEE,oBAKJ,CAPE,gBAOF,aACE,+CAGA,UAHA,kCAGA,4BACA,GAEA,uBACA,CAHA,yBAEA,CACA,yDAGF,kDAEE,SACA,8BAEA,iEAGE,yDACA,sEAEA,iEAEE,yHAKN,kDAMA,0DAIE,CANA,oBAMA,0GAOA,aAEF,CAHE,YAGF,4HAWE,+CACE,iCAIJ,0CAGE,CALE,qCAEJ,CAHI,WAMF,SAIA,0CAIA,CANF,qCAME,mBACA,gBACA,gBAIA,+CAEE,CAIF,kDAGF,CAPI,8BAGJ,CAKE,YACF,CAbE,2BAEA,CAHA,WAYF,UAEA,yBACE,kBAIA,iEAKA,iCAGA,mDAEA,mBACF,OACE,iBAQA,0CAIA,CAPA,6DAGA,CALF,qBAEE,CAOA,qCAEE,CAGA,eAHA,sBAGA,gCAKF,qBACE,WACA,aACA,sCAEA,mBAOJ,6BASE,kCACA,CAHA,sBACA,aACA,CARA,uBAGA,gBAEA,MAIA,6BAEA,yBACA,2DAEA,sBAGA,8BACA,CANA,wBAMA,2BAEE,YACA,sBACA,WAEF,CAFE,UAEF,eAeF,kBAEE,CAhBE,qDAGA,qCAOJ,CAEI,YAEJ,CAJA,2BAEI,CAIF,eACE,qBACF,4CAIE,uBACA,sBACF,cACE,CAFA,aACF,CAEE,kBADA,kBACA,yBAGF,oCACE,6DAMF,qDAGE,CC1VY,8BDgWd,oCAEA,uDAEA,CACE,8CAIA,gCAEA,YACA,8CACA,CAEA,oCAGE,CAHF,oCAGE,mBAEA,mDADA,YADA,qBACA,WACA,sBAEE,WAGN,kBACE,qCAIA,eADF,YACE,iDAKA,uCAEA,YACA,+CAMA,kBAEJ,CAHI,sBAGJ,mBAEI,cAEF,qCAGE,YE1ZJ,CFyZI,WACA,CExZF,SAEA,CAFA,mBADA,gBACA,CAFF,iBAIE,6CAEA,yBACA,uFAEA,kCAGA,mBAOA,gCAGF,CAPE,SAIA,UAPA,cAGA,4DAIA,CAJA,OAOF,kBACE,wBACA,2BAEA,gCACA,CAFA,UAEA,aAGA,iCACA,CAHA,UAGA,wCAIA,sBAHA,UAGA,6CAGE,OADA,KACA,CACA,4BAIJ,WACE,WADF,UACE,kCACA,QADA,KACA,cAEE,0CACA,CADA,mBACA,wEAIF,CANE,aACA,mBADA,MACA,CAKF,eACE,CANA,iCADA,eADF,oBACE,CACA,SAMA,2BADF,UACE,kBACA,gFACA,kDAMF,mBADF,YACE,6BAGE,uCACE,2CAEE,oDADF,4BACE,YADF,KAEE,kEACE,yCACA,uDANN,iBACE,uBACA,CADA,+BACA,uEACE,kCACA,6BAEE,mBADA,0CACA,CAFF,uBACE,sBACA,0DALJ,wEACA,sEACE,YACA,yDACE,oDACA,6DANN,kCACE,kCACA,gBADA,UACA,yBACE,wDACA,cADA,UACA,qBACE,6CACA,yFALJ,sCACA,CAEE,gBACE,CAHJ,gBAGI,sBAHJ,uBACE,4DACA,4CACE,iDAJJ,2CACA,CADA,gBAEE,gBAGE,sBALJ,+BAII,iBAFF,gDACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCpEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDAGA,qCACA,6BAIA,kBACA,qDAIA,oCAGE,+DAIA,2CAKF,oDAIA,sCAEE,8BACJ,qBACE,wDAGA,uCAEA,kEAIF,8CAGE,uDAEE,oCAGJ,4BAEE,6BC9FA,gEAGE,+CCHJ,0EAGE,sDAKA,gEACE,qCACA,8BAEA,oCAGF,wBACE,4FCdF,gBAEA,yGAIE,kBAOJ,CAKE,2MAUE,oBAEF,wGASE,iCAEA,CAJF,wBAIE,8GAOF,mBAGA,2GAEE,mBAGF,6HAQF,YACE,mIAOA,eAEA,CAFA,YAEA,4FAEA,8BAEA,MAaA,sCAIA,CANE,oBAEF,CAXE,wCACE,CAHJ,8BAEE,CAFF,gBASA,+BACA,mBAOA,YACE,6EACA,eACA,aACA,eACA,mCACA,0CAEF,8BA7FwB,CA+FtB,qCACA,6CAGF,CAHE,eAGF,wCAGE,YACA,iBAEA,mCACE,0DAMF,qBACA,CAFF,kBAEE,+BAEA,4BACA,2EC/HF,8CACA,qDAKA,iCACA,kBAEA,2FACA,iCAEE,CAEE,eAEF,CAHA,kBACE,CAFF,wBAIA,8BAIE,gBAHA,YAGA,4DAEA,mBACE,qCAGJ,kBACA,gBAGJ,+CAEE,kDAEF,YAEE,CAFF,YAEE,CChCA,2FAGA,6CACE,eAGA,iEACE,CAGF,aACA,CAJE,uBAIF,mBAMA,6CAEF,CAJE,mBAEC,CAEH,kCAGE,CARF,kBACE,CAHA,eAUA,YACA,mBACA,CAFA,UAEA,wCC/BJ,mBACE,CDkCE,wBACA,sBCpCJ,iBACE,mDACA,2CACA,sBAGA,qBCDA,6CAIE,CAPF,uBAGA,CDGE,oBACF,yDAEE,CCDE,2CAGF,CAJA,kCACE,CDJJ,YACE,CAIA,eCTF,CDKE,uBCMA,gCACE,YAEF,oCAEE,wBACA,0BAIF,iBAEA,cADF,UACE,uBAEA,iCACF,YACE,4BACF,6CAOE,CAYF,gCATI,4BASJ,CAZE,mCAEE,iCAUJ,4BAGE,4DAFA,+BAEA,CAHF,qBAGE,sCACE,OAEF,iBAHA,SAGA,4KAMA,CANA,8EAMA,ySAEE,QAEF,2ICjEJ,WACE,yCAIA,WACA,yBAEA,uCAIA,uCAGA,CALE,iCAKF,uCAGE,eACA,iCClBJ,gBACE,KAGF,qBACE,YAGF,CAHE,cAGF,gCAEE,mBACA,iEAEA,oCACA,wCAEA,sBACA,WAEA,CAFA,YAEA,8EAEA,mCAFA,iBAEA,6BAIA,wEAKA,sDAIE,CARF,mDAIA,CAIE,cAEF,8CAIA,oBAFE,iBAEF,8CAGE,eAEF,CAFE,YAEF,OAEE,kBAGJ,CAJI,eACA,CAFF,mBAKF,yCCjDE,oBACA,CAFA,iBAEA,uCAKE,iBACA,qCAGA,mBCZJ,CDWI,gBCXJ,6BAEE,eACA,sBAGA,eAEA,sBACA,oDACA,iGAMA,gBAFE,YAEF,8FAME,iJClBF,YACA,gNAUE,6BAEF,oTAcI,kBACF,gHAIA,qBACE,eACF,qDACE,kBACF,6DACE,4BCxCJ,oBAEF,qCAEI,+CAGF,uBACE,uDAGJ,oBAkBE,mDAhBA,+CAaA,CAbA,oBAaA,0FAEE,CAFF,gGAbA,+BAaA,0BAGA,mQAIA,oNAEE,kCADA,gBACA,aAGJ,sDAHI,mBAGJ,yBAYI,+VACE,sDAGA,iBAHA,2BAGA,kWAGN,iDAEE,CALI,gGAGN,CAHM,gBAKJ,yCAGF,0EACE,2EAGF,iBACE,yDAOA,0EAGF,6EAEE,iBC/EA,wDACA,4DACA,qBAEA,oDCDA,6BACA,yBACA,sBAEA,iBAGF,sNAYE,iBAEA,kBAdF,wRA8BI,kBACA,iOAkBA,aACA,4DACE,uEAEA,uVAoBA,iDAKA,ieC1EJ,4BACA,CCFF,6JAEE,iDACA,sEAIA,mDAGA,iDAOF,4DAGE,8CAEA,CAEA,kBACA,CAHA,gCAEA,CACA,eADA,cACA,oBAEE,uBAFF,kCAEE,gCAEF,kBACE,CAIA,mDAEA,CAHA,uCACA,CALF,aACE,6BAEA,CAIA,gBAJA,mCACA,CADA,gBAIA,wBACA,6CAGF,YAHE,iBAGF,gCAGA,iEACA,6CAEA,qDACA,6EACA,2EACA,8GAEA,yCAGA,uBACA,CAFA,yBACA,CACA,yDAKA,kDACE,mFAKJ,oCACE,CANE,aAKJ,CACE,qEAIA,YAFA,WAEA,CAHA,aACA,CAEA,gBACE,4BACA,sBADA,aACA,gCAMF,oCACA,yDACA,2CAEA,qBAGE,kBAEA,CACA,mCAIF,CARE,YACA,CAOF,iCAEE,CAPA,oBACA,CAQA,oBACE,uDAEJ,sDAGA,CAHA,cAGA,0BACE,oDAIA,oCACA,4BACA,sBAGA,cAEA,oFAGA,sBAEA,yDACE,CAIA,iBAJA,wBAIA,6CAJA,6CAOA,4BAGJ,CAHI,cAGJ,yCAGA,kBACE,CAIA,iDAEA,CATA,YAEF,CACE,4CAGA,kBAKA,wEAIF,wDACE,kCAOA,kDAPA,UACA,CAKA,sCACA,CANA,2CAGA,CAGA,qCAKA,8BACE,CAZF,kBAGA,qCASE,iBAoBJ,sBAOA,CAvBE,sEAKF,CALE,wDAJE,qBAIF,CAaE,4CAGJ,CANA,gRAGI,YAUJ,iCAGA,+CACE,+CAMF,6EClNF,4BAKE,SAJA,qFAIA,kBACA,8BACA,uCACA,oCAIA,eAEF,uCACE,CAGA,kDAEA,CALA,0CAKA,kBAEA,mEAFA,YAEA,CAFA,SAEA,kBAGA,QACE,CADF,iBACE,qBACA,kDAEA,CAIA,6CAHE,oCAgBF,CAbA,yBAEA,qBACA,CACF,oBACE,CAGE,YAHF,2CAEA,uBACE,oFAKF,CANA,qBACE,UAKF,gCACA,sDAOJ,yCChDE,oCAGI,CD6CN,yXCnDE,gBAEF,sBAIE","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/variables/_layout.scss","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_search.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto\n display: block\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.1)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.1)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.1\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #646776; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2962ff;\n --color-brand-content: #2a5adf;\n\n // API documentation\n --color-api-background: var(--color-background-secondary);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link-underline--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #ffffffcc; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2b8cee;\n --color-brand-content: #368ce2;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n vertical-align: middle\n\n.theme-toggle\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n vertical-align: middle\n height: 1rem\n width: 1rem\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n float: left\n padding: 1rem 0.5rem\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: 1rem\n width: 1rem\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page svg\n color: inherit\n height: 1rem\n width: 1rem\n\n.sidebar-toggle\n position: absolute\n display: none\n// \n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// \n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $full-width - $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n .theme-toggle-header\n display: block\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: var(--header-height)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Center the page, and accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n .content\n margin-left: auto\n margin-right: auto\n\n@media (max-width: $content-width + 2* $content-padding)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n .content\n padding: 0 $content-padding--small\n // Don't float sidebars to the right.\n article aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","// Overall Layout Variables\n//\n// Because CSS variables can't be used in media queries. The fact that this\n// makes the layout non-user-configurable is a good thing.\n$content-padding: 3em;\n$content-padding--small: 1em;\n$content-width: 46em;\n$sidebar-width: 15em;\n$full-width: $content-width + 2 * ($content-padding + $sidebar-width);\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\np.admonition-title, p.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 3.5rem\n\n // Break words when they're too long\n span.pre\n overflow-wrap: anywhere\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\n.versionmodified\n font-style: italic\ndiv.versionadded, div.versionchanged, div.deprecated\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n p &\n border: 1px solid var(--color-background-border)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n overflow: auto\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n font-weight: 500\n\naside.footnote > p,\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n",".table-wrapper\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 0.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(0.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(0.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","//\n// Search Page Listing\n//\nul.search\n padding-left: 0\n list-style: none\n\n li\n padding: 1rem 0\n border-bottom: 1px solid var(--color-background-border)\n\n//\n// Highlighted by links in search page\n//\n[role=main] .highlighted\n background-color: var(--color-highlighted-background)\n color: var(--color-highlighted-text)\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the
    -
    - - - - - - - - +
    + + + + + \ No newline at end of file diff --git a/docs/python/index.html b/docs/python/index.html index a84b98c9..a2453d1e 100644 --- a/docs/python/index.html +++ b/docs/python/index.html @@ -1,12 +1,12 @@ - + - + @@ -14,12 +14,12 @@ - - Voyager 2.0.8 Python Documentation - - - - + + Voyager 2.0.9 Python Documentation + + + + @@ -133,7 +133,7 @@
    - - - - - - - - +
    + + + + + \ No newline at end of file diff --git a/docs/python/reference.html b/docs/python/reference.html index a6442bfe..144a40ff 100644 --- a/docs/python/reference.html +++ b/docs/python/reference.html @@ -1,12 +1,12 @@ - + - + @@ -14,12 +14,12 @@ - - The voyager Python API - Voyager 2.0.8 Python Documentation - - - - + + The voyager Python API - Voyager 2.0.9 Python Documentation + + + + @@ -133,7 +133,7 @@
    @@ -153,16 +153,16 @@
    -
    -

    All Classes and Interfaces

    -
    -
    -
    -
    -
    -
    Class
    -
    Description
    - -
    +

    All Classes

    +
    +
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/allclasses.html b/docs/java/allclasses.html index 6bfe778f..dfd02a61 100644 --- a/docs/java/allclasses.html +++ b/docs/java/allclasses.html @@ -1,25 +1,27 @@ - + - -All Classes (voyager 2.0.2 API) + +All Classes (voyager 2.0.9 API) - + - + + - - + + +

    All Classes

    -
    +
    +
    diff --git a/docs/java/allpackages-index.html b/docs/java/allpackages-index.html index ba11eca5..be18550c 100644 --- a/docs/java/allpackages-index.html +++ b/docs/java/allpackages-index.html @@ -1,78 +1,181 @@ + - + All Packages (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + +
    -

    All Packages

    -
    Package Summary
    -
    -
    Package
    -
    Description
    - -
    +
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html index 01f4f811..b08120e3 100644 --- a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html @@ -1,275 +1,434 @@ + - + Index.QueryResults (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Class Index.QueryResults

    + +

    Class Index.QueryResults

    -
    java.lang.Object -
    com.spotify.voyager.jni.Index.QueryResults
    -
    -
    -
    +
    + +
    +
      +
    • +
      Enclosing class:
      -
      Index
      +
      Index

      -
      public static class Index.QueryResults -extends Object
      +
      public static class Index.QueryResults
      +extends Object
      A container for query results, returned by Index. Note that this class is instantiated from C++, and as such, any changes to its location, visibility, or constructor will need to include corresponding C++ changes.
      -
    -
    -
      + +
    +
    +
    +
      +
    • -
    • -
      -

      Field Summary

      -
      Fields
      -
      -
      Modifier and Type
      -
      Field
      -
      Description
      -
      final float[]
      - -
      +
      +
        +
      • + + +

        Field Summary

        + + + + + + + + + + + + + + + + + +
        Fields 
        Modifier and TypeFieldDescription
        float[]distances
        A list of distances from each item ID to the query vector for this query.
        - -
        final long[]
        - -
        +
        long[]labels
        A list of item IDs ("labels").
        - - - +
      • +
      +
      -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      -
      QueryResults(long[] labels, - float[] distances)
      -
      +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        QueryResults​(long[] labels, + float[] distances)
        Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
        - - - +
      • +
      +
      -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      float[]
      - -
      +
      +
      -
      -
        + +
      +
      +
      +
        +
      • -
      • -
        -

        Field Details

        -
          -
        • -
          -

          labels

          -
          public final long[] labels
          +
          +
            +
          • + + +

            Field Detail

            + + + +
              +
            • +

              labels

              +
              public final long[] labels
              A list of item IDs ("labels").
              -
        • -
        • -
          -

          distances

          -
          public final float[] distances
          +
        + + + +
          +
        • +

          distances

          +
          public final float[] distances
          A list of distances from each item ID to the query vector for this query.
          -
      -
    • +
    + -
  • -
    -

    Constructor Details

    -
      -
    • -
      -

      QueryResults

      -
      public QueryResults(long[] labels, - float[] distances)
      +
      +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          QueryResults

          +
          public QueryResults​(long[] labels,
          +                    float[] distances)
          Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances. This method should probably not be used directly, as this class is primarily used as a return type from the query method on Index.
          -
          -
          Throws:
          -
          IllegalArgumentException - if the length of the labels and distances arrays vary
          +
          +
          Throws:
          +
          IllegalArgumentException - if the length of the labels and distances arrays vary
          -
    -
  • + + -
  • -
    -

    Method Details

    -
      -
    • -
      -

      toString

      -
      public String toString()
      -
      -
      Overrides:
      -
      toString in class Object
      +
      +
    • -
    • -
      -

      getLabels

      -
      public long[] getLabels()
      +
    + + + +
      +
    • +

      getLabels

      +
      public long[] getLabels()
      Retrieve the list of item IDs ("labels") returned by this query. This array is sorted by distance: the first item is the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the distances returned by getDistances().
      -
  • -
  • -
    -

    getDistances

    -
    public float[] getDistances()
    + + + + +
      +
    • +

      getDistances

      +
      public float[] getDistances()
      Retrieve the list of distances between query vectors and item vectors for the results of this query. This array is sorted by distance: the first distance corresponds with the item the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the labels returned by getLabels().
      -
  • - - + + +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html index 508756cb..9c7ca202 100644 --- a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html @@ -1,258 +1,416 @@ + - + Index.SpaceType (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Enum Index.SpaceType

    -
    -
    java.lang.Object -
    java.lang.Enum<Index.SpaceType> -
    com.spotify.voyager.jni.Index.SpaceType
    -
    + +

    Enum Index.SpaceType

    -
    -
    +
    + +
    +
    -
    -
      + +
    +
    +
    + - + + -
  • -
    -

    Method Details

    -
      -
    • -
      -

      values

      -
      public static Index.SpaceType[] values()
      +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static Index.SpaceType[] values()
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
          Returns:
          +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (Index.SpaceType c : Index.SpaceType.values())
          +    System.out.println(c);
          +
  • +
    +
    Returns:
    an array containing the constants of this enum type, in the order they are declared
    - -
  • -
    -

    valueOf

    -
    public static Index.SpaceType valueOf(String name)
    + + + + +
      +
    • +

      valueOf

      +
      public static Index.SpaceType valueOf​(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      -
      -
      Parameters:
      +
      +
      Parameters:
      name - the name of the enum constant to be returned.
      -
      Returns:
      +
      Returns:
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      +
      Throws:
      +
      IllegalArgumentException - if this enum type has no constant with the specified name
      +
      NullPointerException - if the argument is null
      -
  • - - + + + + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html index 05e269c7..71682d01 100644 --- a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html @@ -1,181 +1,262 @@ + - + Index.StorageDataType (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Enum Index.StorageDataType

    -
    -
    java.lang.Object -
    java.lang.Enum<Index.StorageDataType> -
    com.spotify.voyager.jni.Index.StorageDataType
    -
    + +

    Enum Index.StorageDataType

    -
    -
    +
    + +
    +
    -
    -
      + +
    +
    +
    +
      +
    • -
    • -
      -

      Enum Constant Summary

      -
      Enum Constants
      -
      -
      Enum Constant
      -
      Description
      - -
      +
      +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        E4M3
        A custom 8-bit floating point data type with range [-448, 448] and variable precision.
        - - -
        +
        Float32
        A 32-bit floating point ("Float") data type.
        - - -
        +
        Float8
        An 8-bit floating point data type that expects all values to be on [-1, 1].
        - - - +
      • +
      +
      -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - - -
      +
      +
      -
      -
        + +
      +
      +
      +
        +
      • -
      • -
        -

        Enum Constant Details

        -
          -
        • -
          -

          Float8

          -
          public static final Index.StorageDataType Float8
          +
          +
            +
          • + + +

            Enum Constant Detail

            + + + +
              +
            • +

              Float8

              +
              public static final Index.StorageDataType Float8
              An 8-bit floating point data type that expects all values to be on [-1, 1]. This data type provides adequate precision for many use cases, but cuts down memory usage bu a factor of 4x compared to Float32, while also increasing query speed. @@ -183,19 +264,25 @@

              Float8

              Float8 provides 8 bits of resolution; i.e.: the distance between successive values is 1/127, or 0.00787. For a variable-precision (i.e.: _actually_ floating point) representation, use E4M3.

              -
        • -
        • -
          -

          Float32

          -
          public static final Index.StorageDataType Float32
          +
        + + + +
          +
        • +

          Float32

          +
          public static final Index.StorageDataType Float32
          A 32-bit floating point ("Float") data type. The default.
          -
      • -
      • -
        -

        E4M3

        -
        public static final Index.StorageDataType E4M3
        +
      + + + +
        +
      • +

        E4M3

        +
        public static final Index.StorageDataType E4M3
        A custom 8-bit floating point data type with range [-448, 448] and variable precision. Use this data type to get 4x less memory usage compared to Float32, but when the values of vectors to be stored in an Index may exceed [-1, 1]. @@ -206,59 +293,130 @@

        E4M3

        Note that using E4M3 with the Cosine space may result in negative distances at query time due to reduced floating-point precision. While confusing, the query results are still correctly ordered.

        -
    - + + -
  • -
    -

    Method Details

    -
      -
    • -
      -

      values

      -
      public static Index.StorageDataType[] values()
      +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static Index.StorageDataType[] values()
          Returns an array containing the constants of this enum type, in -the order they are declared.
          -
          -
          Returns:
          +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (Index.StorageDataType c : Index.StorageDataType.values())
          +    System.out.println(c);
          +
  • +
    +
    Returns:
    an array containing the constants of this enum type, in the order they are declared
    - -
  • -
    -

    valueOf

    -
    public static Index.StorageDataType valueOf(String name)
    + + + + +
      +
    • +

      valueOf

      +
      public static Index.StorageDataType valueOf​(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      -
      -
      Parameters:
      +
      +
      Parameters:
      name - the name of the enum constant to be returned.
      -
      Returns:
      +
      Returns:
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      +
      Throws:
      +
      IllegalArgumentException - if this enum type has no constant with the specified name
      +
      NullPointerException - if the argument is null
      -
  • - - + + + + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/Index.html b/docs/java/com/spotify/voyager/jni/Index.html index bae61397..d4f14a29 100644 --- a/docs/java/com/spotify/voyager/jni/Index.html +++ b/docs/java/com/spotify/voyager/jni/Index.html @@ -1,103 +1,145 @@ + - + Index (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Class Index

    -
    -
    java.lang.Object -
    com.spotify.voyager.jni.Index
    + +

    Class Index

    -
    -
    +
    + +
    +
      +
    • +
      All Implemented Interfaces:
      -
      Closeable, AutoCloseable
      +
      Closeable, AutoCloseable

      -
      public class Index -extends Object -implements Closeable
      +
      public class Index
      +extends Object
      +implements Closeable
      A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors. @@ -120,302 +162,414 @@

      Class Index

      // Serialize this index to use it again later: index.saveIndex("my_tiny_index.voy");
      -
    -
    -
      + +
    +
    +
    +
      +
    • -
    • -
      -

      Nested Class Summary

      -
      Nested Classes
      -
      -
      Modifier and Type
      -
      Class
      -
      Description
      -
      static class 
      - -
      +
      +
        +
      • + + +

        Nested Class Summary

        + + + + + + + + + + + + + + + + + + + + + + +
        Nested Classes 
        Modifier and TypeClassDescription
        static class Index.QueryResults
        A container for query results, returned by Index.
        - -
        static enum 
        - -
        +
        static class Index.SpaceType
        The space, also known as distance metric, to use when searching.
        - -
        static enum 
        - -
        +
        static class Index.StorageDataType
        The datatype used to use when storing vectors on disk.
        - - - +
      • +
      +
      -
    • -
      -

      Constructor Summary

      -
      Constructors
      -
      -
      Constructor
      -
      Description
      -
      Index(Index.SpaceType space, - int numDimensions)
      -
      +
      +
        +
      • + + +

        Constructor Summary

        + + + + + + + + + + + + + + +
        Constructors 
        ConstructorDescription
        Index​(Index.SpaceType space, + int numDimensions)
        Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
        - -
        Index(Index.SpaceType space, - int numDimensions, - long indexM, - long efConstruction, - long randomSeed, - long maxElements, - Index.StorageDataType storageDataType)
        -
        +
        Index​(Index.SpaceType space, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
        Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
        - - - +
      • +
      +
      -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      void
      -
      addItem(float[] vector)
      -
      +
      +
      -
      -
        + +
      +
      +
      +
        +
      • -
      • -
        -

        Constructor Details

        -
          -
        • -
          -

          Index

          -
          public Index(Index.SpaceType space, - int numDimensions)
          +
          +
            +
          • + + +

            Constructor Detail

            + + + +
              +
            • +

              Index

              +
              public Index​(Index.SpaceType space,
              +             int numDimensions)
              Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
              -
              -
              Parameters:
              +
              +
              Parameters:
              space - the space type to use when storing and comparing vectors.
              numDimensions - the number of dimensions per vector.
              -
        • -
        • -
          -

          Index

          -
          public Index(Index.SpaceType space, - int numDimensions, - long indexM, - long efConstruction, - long randomSeed, - long maxElements, - Index.StorageDataType storageDataType)
          +
        + + + +
          +
        • +

          Index

          +
          public Index​(Index.SpaceType space,
          +             int numDimensions,
          +             long indexM,
          +             long efConstruction,
          +             long randomSeed,
          +             long maxElements,
          +             Index.StorageDataType storageDataType)
          Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
          -
          -
          Parameters:
          +
          +
          Parameters:
          space - The space type to use when storing and comparing vectors.
          numDimensions - The number of dimensions per vector.
          indexM - Controls the degree of interconnectedness between vectors. Higher values of @@ -430,293 +584,364 @@

          Index

          storageDataType - The datatype to use under-the-hood when storing vectors. Different data type options trade off precision for memory usage and query speed; see Index.StorageDataType for available data types.
          -
      -
    • +
    + -
  • -
    -

    Method Details

    -
      -
    • -
      -

      load

      -
      public static Index load(String filename, - Index.SpaceType space, - int numDimensions, - Index.StorageDataType storageDataType)
      +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          load

          +
          public static Index load​(String filename,
          +                         Index.SpaceType space,
          +                         int numDimensions,
          +                         Index.StorageDataType storageDataType)
          Load a Voyager index file and create a new Index initialized with the data in that file.
          -
          -
          Parameters:
          +
          +
          Parameters:
          filename - A filename to load.
          space - The Index.SpaceType to use when loading the index.
          numDimensions - The number of dimensions per vector.
          storageDataType - The Index.StorageDataType used by the index being loaded.
          -
          Returns:
          +
          Returns:
          An Index whose contents have been initialized with the data provided by the file.
          -
          Throws:
          -
          RuntimeException - if the index cannot be loaded from the file, or the file contains +
          Throws:
          +
          RuntimeException - if the index cannot be loaded from the file, or the file contains invalid data.
          -
    • -
    • -
      -

      load

      -
      public static Index load(String filename)
      +
    + + + +
      +
    • +

      load

      +
      public static Index load​(String filename)
      Load a Voyager index file and create a new Index initialized with the data in that file.
      -
      -
      Parameters:
      +
      +
      Parameters:
      filename - A filename to load.
      -
      Returns:
      +
      Returns:
      An Index whose contents have been initialized with the data provided by the file.
      -
      Throws:
      -
      RuntimeException - if the index cannot be loaded from the file, the file contains invalid +
      Throws:
      +
      RuntimeException - if the index cannot be loaded from the file, the file contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
      -
  • -
  • -
    -

    load

    -
    public static Index load(InputStream inputStream, - Index.SpaceType space, - int numDimensions, - Index.StorageDataType storageDataType)
    + + + + +
      +
    • +

      load

      +
      public static Index load​(InputStream inputStream,
      +                         Index.SpaceType space,
      +                         int numDimensions,
      +                         Index.StorageDataType storageDataType)
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
      -
      -
      Parameters:
      -
      inputStream - A InputStream that will provide the contents of a Voyager +
      +
      Parameters:
      +
      inputStream - A InputStream that will provide the contents of a Voyager index.
      space - The Index.SpaceType to use when loading the index.
      numDimensions - The number of dimensions per vector.
      storageDataType - The Index.StorageDataType used by the index being loaded.
      -
      Returns:
      +
      Returns:
      An Index whose contents have been initialized with the data provided by the input stream.
      -
      Throws:
      -
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
      Throws:
      +
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data.
      -
  • -
  • -
    -

    load

    -
    public static Index load(InputStream inputStream)
    + + + + +
      +
    • +

      load

      +
      public static Index load​(InputStream inputStream)
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
      -
      -
      Parameters:
      -
      inputStream - A InputStream that will provide the contents of a Voyager +
      +
      Parameters:
      +
      inputStream - A InputStream that will provide the contents of a Voyager index.
      -
      Returns:
      +
      Returns:
      An Index whose contents have been initialized with the data provided by the input stream.
      -
      Throws:
      -
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
      Throws:
      +
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
      -
  • -
  • -
    -

    close

    -
    public void close() - throws IOException
    + + + + +
      +
    • +

      close

      +
      public void close()
      +           throws IOException
      Close this Index and release any memory held by it. Note that this method must be called to release the memory backing this Index; failing to do so may cause a memory leak.

      Any calls to methods after close() is called will fail, as the underlying native C++ object will have been deallocated.

      -
      -
      Specified by:
      -
      close in interface AutoCloseable
      -
      Specified by:
      -
      close in interface Closeable
      -
      Throws:
      -
      IOException - if the C++ destructor fails.
      +
      +
      Specified by:
      +
      close in interface AutoCloseable
      +
      Specified by:
      +
      close in interface Closeable
      +
      Throws:
      +
      IOException - if the C++ destructor fails.
      -
  • -
  • -
    -

    finalize

    -
    protected void finalize() - throws Throwable
    -
    -
    Overrides:
    -
    finalize in class Object
    -
    Throws:
    -
    Throwable
    + + + + +
  • -
  • -
    -

    setEf

    -
    public void setEf(long ef)
    + + + + +
      +
    • +

      setEf

      +
      public void setEf​(long ef)
      Set the default EF ("query search depth") to use when query(float[], int) is called.
      -
      -
      Parameters:
      +
      +
      Parameters:
      ef - The new default EF value to use. This value can be overridden on a per-query basis at query time.
      -
  • -
  • -
    -

    getEf

    -
    public int getEf()
    + + + + +
      +
    • +

      getEf

      +
      public int getEf()
      Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
      -
      -
      Returns:
      +
      +
      Returns:
      The current default EF value, used by the Index if no value is provided at query time.
      -
  • -
  • -
    -

    getSpace

    -
    public Index.SpaceType getSpace()
    + + + + +
  • -
  • -
    -

    getNumDimensions

    -
    public int getNumDimensions()
    + + + + +
      +
    • +

      getNumDimensions

      +
      public int getNumDimensions()
      Get the number of dimensions used in this Index.
      -
      -
      Returns:
      +
      +
      Returns:
      The number of dimensions used by this Index, and which all vectors within this Index must have.
      -
  • -
  • -
    -

    setNumThreads

    -
    public void setNumThreads(int numThreads)
    + + + + +
      +
    • +

      setNumThreads

      +
      public void setNumThreads​(int numThreads)
      Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
      -
      -
      Parameters:
      +
      +
      Parameters:
      numThreads - The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call. Note that this affects the number of threads started for each method call - Voyager keeps no long-lived thread pool. For maximum efficiency, pass as much data as possible to each bulk-add or bulk-query method call to minimize overhead.
      -
  • -
  • -
    -

    getNumThreads

    -
    public int getNumThreads()
    + + + + +
      +
    • +

      getNumThreads

      +
      public int getNumThreads()
      Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
      -
      -
      Returns:
      +
      +
      Returns:
      The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call.
      -
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(String pathToIndex)
    + + + + +
      +
    • +

      saveIndex

      +
      public void saveIndex​(String pathToIndex)
      Save this Index to a file at the provided filename. This file can be reloaded by using Index.load(...).
      -
      -
      Parameters:
      +
      +
      Parameters:
      pathToIndex - The output filename to write to.
      -
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(OutputStream outputStream)
    + + + + +
      +
    • +

      saveIndex

      +
      public void saveIndex​(OutputStream outputStream)
      Save this Index to the provided output stream. The stream will not be closed automatically - be sure to close the stream saveIndex has completed. The data written to the stream can be reloaded by using Index.load(...).
      -
      -
      Parameters:
      +
      +
      Parameters:
      outputStream - The output stream to write to. This stream will not be closed automatically.
      -
  • -
  • -
    -

    addItem

    -
    public void addItem(float[] vector)
    + + + + +
      +
    • +

      asBytes

      +
      public byte[] asBytes()
      +
      Returns the contents of this index as an array of bytes. The resulting bytes will contain the + same data as if this index was serialized to disk and then read back into memory again.
      +
      +
      Returns:
      +
      A byte array representing the contents of the index
      +
      +
    • +
    + + + +
      +
    • +

      addItem

      +
      public void addItem​(float[] vector)
      Add an item (a vector) to this Index. The item will automatically be given an identifier equal to the return value of getNumElements().
      -
      -
      Parameters:
      +
      +
      Parameters:
      vector - The vector to add to the index.
      -
      Throws:
      -
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
      Throws:
      +
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      -
  • -
  • -
    -

    addItem

    -
    public void addItem(float[] vector, - long id)
    + + + + +
      +
    • +

      addItem

      +
      public void addItem​(float[] vector,
      +                    long id)
      Add an item (a vector) to this Index with the provided identifier.
      -
      -
      Parameters:
      +
      +
      Parameters:
      vector - The vector to add to the index.
      id - The 64-bit integer denoting the identifier of this vector.
      -
      Throws:
      -
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
      Throws:
      +
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      -
  • -
  • -
    -

    addItems

    -
    public void addItems(float[][] vectors, - int numThreads)
    + + + + +
      +
    • +

      addItems

      +
      public void addItems​(float[][] vectors,
      +                     int numThreads)
      Add multiple items (vectors) to this Index.
      -
      -
      Parameters:
      +
      +
      Parameters:
      vectors - The vectors to add to the index.
      numThreads - The number of threads to use when adding the provided vectors. If -1 (the default), the number of CPUs available on the current machine will be used.
      -
      Throws:
      -
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      +
      Throws:
      +
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      -
  • -
  • -
    -

    addItems

    -
    public void addItems(float[][] vectors, - long[] ids, - int numThreads)
    + + + + +
      +
    • +

      addItems

      +
      public void addItems​(float[][] vectors,
      +                     long[] ids,
      +                     int numThreads)
      Add multiple items (vectors) to this Index.
      -
      -
      Parameters:
      +
      +
      Parameters:
      vectors - The vectors to add to the index.
      ids - The 64-bit identifiers that correspond with each of the provided vectors.
      numThreads - The number of threads to use when adding the provided vectors. If -1 (the @@ -724,143 +949,149 @@

      addItems

      causes a temporary C++ thread pool to be used. Instead of calling addItems(float[][],int) in a tight loop, consider passing more data to each addItems(float[][],int) call instead to reduce overhead.
      -
      Throws:
      -
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      -
      RuntimeException - If the list of IDs does not have the same length as the list of +
      Throws:
      +
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      +
      RuntimeException - If the list of IDs does not have the same length as the list of provided vectors.
      -
  • -
  • -
    -

    getVector

    -
    public float[] getVector(long id)
    + + + + +
      +
    • +

      getVector

      +
      public float[] getVector​(long id)
      Get the vector for the provided identifier.
      -
      -
      Parameters:
      +
      +
      Parameters:
      id - The identifier whose vector will be fetched.
      -
      Returns:
      -
      A -
      -invalid reference -
      float
      -
      - array representing the values of the vector.
      -
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      Returns:
      +
      A float array representing the values of the vector.
      +
      Throws:
      +
      RuntimeException - If the provided identifier is not present in the Index.
      -
  • -
  • -
    -

    getVectors

    -
    public float[][] getVectors(long[] ids)
    + + + + +
      +
    • +

      getVectors

      +
      public float[][] getVectors​(long[] ids)
      Get the vectors for a provided array of identifiers.
      -
      -
      Parameters:
      +
      +
      Parameters:
      ids - The identifiers whose vector will be fetched.
      -
      Returns:
      -
      A nested -
      -invalid reference -
      float
      -
      - array representing the values of the vectors corresponding with +
      Returns:
      +
      A nested float array representing the values of the vectors corresponding with each ID.
      -
      Throws:
      -
      RuntimeException - If any of the provided identifiers are not present in the Index.
      +
      Throws:
      +
      RuntimeException - If any of the provided identifiers are not present in the Index.
      -
  • -
  • -
    -

    getIDs

    -
    public long[] getIDs()
    + + + + +
      +
    • +

      getIDs

      +
      public long[] getIDs()
      Get the list of identifiers currently stored by this index.
      -
      -
      Returns:
      -
      a -
      -invalid reference -
      long
      -
      - array of identifiers.
      +
      +
      Returns:
      +
      a long array of identifiers.
      -
  • -
  • -
    -

    query

    -
    public Index.QueryResults query(float[] queryVector, - int k)
    + + + + +
      +
    • +

      query

      +
      public Index.QueryResults query​(float[] queryVector,
      +                                int k)
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVector - A query vector to use for searching.
      k - The number of nearest neighbors to return.
      -
      Returns:
      +
      Returns:
      A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
      -
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index.
      +
      Throws:
      +
      RuntimeException - if fewer than k results can be found in the index.
      -
  • -
  • -
    -

    query

    -
    public Index.QueryResults[] query(float[][] queryVectors, - int k, - int numThreads)
    + + + + +
      +
    • +

      query

      +
      public Index.QueryResults[] query​(float[][] queryVectors,
      +                                  int k,
      +                                  int numThreads)
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVectors - The query vectors to use for searching.
      k - The number of nearest neighbors to return for each query vector
      numThreads - The number of threads to use when searching. If -1, all available CPU cores will be used. Note that passing a number of threads other than 1 will cause a temporary C++ thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing more data to each call instead to reduce overhead.
      -
      Returns:
      +
      Returns:
      An array of Index.QueryResults objects, each containing the neighbors found that are (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      -
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index for one or +
      Throws:
      +
      RuntimeException - if fewer than k results can be found in the index for one or more queries.
      -
  • -
  • -
    -

    query

    -
    public Index.QueryResults query(float[] queryVector, - int k, - long queryEf)
    + + + + +
      +
    • +

      query

      +
      public Index.QueryResults query​(float[] queryVector,
      +                                int k,
      +                                long queryEf)
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVector - A query vector to use for searching.
      k - The number of nearest neighbors to return.
      queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
      -
      Returns:
      +
      Returns:
      A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
      -
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index.
      +
      Throws:
      +
      RuntimeException - if fewer than k results can be found in the index.
      -
  • -
  • -
    -

    query

    -
    public Index.QueryResults[] query(float[][] queryVectors, - int k, - int numThreads, - long queryEf)
    + + + + +
      +
    • +

      query

      +
      public Index.QueryResults[] query​(float[][] queryVectors,
      +                                  int k,
      +                                  int numThreads,
      +                                  long queryEf)
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVectors - The query vectors to use for searching.
      k - The number of nearest neighbors to return for each query vector
      numThreads - The number of threads to use when searching. If -1, all available CPU cores @@ -869,115 +1100,194 @@

      query

      more data to each call instead to reduce overhead.
      queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
      -
      Returns:
      +
      Returns:
      An array of Index.QueryResults objects, each containing the neighbors found that are (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      -
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index for one or +
      Throws:
      +
      RuntimeException - if fewer than k results can be found in the index for one or more queries.
      -
  • -
  • -
    -

    markDeleted

    -
    public void markDeleted(long label)
    + + + + +
      +
    • +

      markDeleted

      +
      public void markDeleted​(long label)
      Mark an element of the index as deleted. Deleted elements will be skipped when querying, but will still be present in the index.
      -
      -
      Parameters:
      +
      +
      Parameters:
      label - The ID of the element to mark as deleted.
      -
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      Throws:
      +
      RuntimeException - If the provided identifier is not present in the Index.
      -
  • -
  • -
    -

    unmarkDeleted

    -
    public void unmarkDeleted(long label)
    + + + + +
      +
    • +

      unmarkDeleted

      +
      public void unmarkDeleted​(long label)
      Un-mark an element of the index as deleted, making it available again.
      -
      -
      Parameters:
      +
      +
      Parameters:
      label - The ID of the element to unmark as deleted.
      -
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      Throws:
      +
      RuntimeException - If the provided identifier is not present in the Index.
      -
  • -
  • -
    -

    resizeIndex

    -
    public void resizeIndex(long newSize)
    + + + + +
      +
    • +

      resizeIndex

      +
      public void resizeIndex​(long newSize)
      Change the maximum number of elements currently storable by this Index. This operation reallocates the memory used by the index and can be quite slow, so it may be useful to set the maximum number of elements in advance if that number is known.
      -
      -
      Parameters:
      +
      +
      Parameters:
      newSize - The new number of maximum elements to resize this Index to.
      -
  • -
  • -
    -

    getMaxElements

    -
    public long getMaxElements()
    + + + + +
      +
    • +

      getMaxElements

      +
      public long getMaxElements()
      Get the maximum number of elements currently storable by this Index. If more elements are added than getMaxElements(), the index will be automatically (but slowly) resized.
      -
      -
      Returns:
      +
      +
      Returns:
      The number of elements (vectors) that are currently storable in this Index.
      -
  • -
  • -
    -

    getNumElements

    -
    public long getNumElements()
    + + + + +
      +
    • +

      getNumElements

      +
      public long getNumElements()
      Get the number of elements currently in this Index.
      -
      -
      Returns:
      +
      +
      Returns:
      The number of elements (vectors) in this Index. This count includes any deleted elements.
      -
  • -
  • -
    -

    getEfConstruction

    -
    public long getEfConstruction()
    + + + + +
      +
    • +

      getEfConstruction

      +
      public long getEfConstruction()
      Get the EF Construction value used when adding new elements to this Index.
      -
      -
      Returns:
      +
      +
      Returns:
      The current EF Construction value (i.e.: the number of neighbors to search for when adding new elements).
      -
  • -
  • -
    -

    getM

    -
    public long getM()
    + + + + +
      +
    • +

      getM

      +
      public long getM()
      Get the M value used when adding new elements to this Index.
      -
      -
      Returns:
      +
      +
      Returns:
      The current M value (i.e.: the number of links between adjacent vectors to create when adding elements).
      -
  • - - + + +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html index 52eaf1d0..6cc79d66 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -1,233 +1,389 @@ + - + StringIndex.QueryResults (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Class StringIndex.QueryResults

    -
    -
    java.lang.Object -
    com.spotify.voyager.jni.StringIndex.QueryResults
    + +

    Class StringIndex.QueryResults

    -
    -
    +
    + +
    +
      +
    • +
      Enclosing class:
      -
      StringIndex
      +
      StringIndex

      -
      public static class StringIndex.QueryResults -extends Object
      +
      public static class StringIndex.QueryResults
      +extends Object
      A wrapper class for nearest neighbor query results.
      -
    -
    -
    -
    -

    Methods inherited from class java.lang.Object

    -clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
    +
    +
    +
      +
    • -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        QueryResults

        -
        public QueryResults(String[] names, - float[] distances)
        -
        +
        +
          +
        • + + +

          Constructor Detail

          + + + +
            +
          • +

            QueryResults

            +
            public QueryResults​(String[] names,
            +                    float[] distances)
          -
      • - -
      • -
        -

        Method Details

        -
          -
        • -
          -

          getNames

          -
          public String[] getNames()
          +
        + +
        +
          +
        • + + +

          Method Detail

          + + + +
            +
          • +

            getNames

            +
            public String[] getNames()
          • -
          • -
            -

            getDistances

            -
            public float[] getDistances()
            -
            +
          + + + +
            +
          • +

            getDistances

            +
            public float[] getDistances()
          • -
          • -
            -

            getName

            -
            public String getName(int index)
            -
            +
          + + + +
            +
          • +

            getName

            +
            public String getName​(int index)
          • -
          • -
            -

            getDistance

            -
            public float getDistance(int index)
            -
            +
          + + + +
            +
          • +

            getDistance

            +
            public float getDistance​(int index)
          • -
          • -
            -

            getNumResults

            -
            public int getNumResults()
            -
            +
          + + + +
            +
          • +

            getNumResults

            +
            public int getNumResults()
          • -
          • -
            -

            toString

            -
            public String toString()
            -
            -
            Overrides:
            -
            toString in class Object
            +
          + + + +
      -
    - + + +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.html b/docs/java/com/spotify/voyager/jni/StringIndex.html index e366bd94..91f3b81c 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.html @@ -1,300 +1,413 @@ + - + StringIndex (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + +
    -
    -
    +
    - -

    Class StringIndex

    -
    -
    java.lang.Object -
    com.spotify.voyager.jni.StringIndex
    + +

    Class StringIndex

    -
    -
    +
    + +
    +
      +
    • +
      All Implemented Interfaces:
      -
      Closeable, AutoCloseable
      +
      Closeable, AutoCloseable

      -
      public class StringIndex -extends Object -implements Closeable
      +
      public class StringIndex
      +extends Object
      +implements Closeable
      Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.

      StringIndex can only accommodate up to 2^31 - 1 (2.1B) items, despite typical Voyager indices allowing up to 2^63 - 1 (9e18) items.

      -
    -
    -
      + +
    +
    +
    + + -
  • -
    -

    Method Details

    -
      -
    • -
      -

      load

      -
      public static StringIndex load(String indexFilename, - String nameListFilename, - Index.SpaceType spaceType, - int numDimensions, - Index.StorageDataType storageDataType)
      +
      +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          load

          +
          public static StringIndex load​(String indexFilename,
          +                               String nameListFilename,
          +                               Index.SpaceType spaceType,
          +                               int numDimensions,
          +                               Index.StorageDataType storageDataType)
          Load a previously constructed index from the provided file location. It is important that the dimensions, space type, and storage data type provided are the same that the index was constructed with.
          -
          -
          Parameters:
          +
          +
          Parameters:
          indexFilename - Filename of the underlying HNSW index
          nameListFilename - Filename of the JSON encoded names list
          -
          spaceType - @see com.spotify.voyager.jni.Index.SpaceType
          +
          spaceType -
          numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
          -
          storageDataType - @see com.spotify.voyager.jni.Index.StorageDataType
          -
          Returns:
          +
          storageDataType -
          +
          Returns:
          reference to the loaded StringIndex
          +
          See Also:
          +
          Index.SpaceType, +Index.StorageDataType
          -
    • -
    • -
      -

      load

      -
      public static StringIndex load(InputStream indexInputStream, - InputStream nameListInputStream, - Index.SpaceType spaceType, - int numDimensions, - Index.StorageDataType storageDataType)
      +
    + + + +
      +
    • +

      load

      +
      public static StringIndex load​(InputStream indexInputStream,
      +                               InputStream nameListInputStream,
      +                               Index.SpaceType spaceType,
      +                               int numDimensions,
      +                               Index.StorageDataType storageDataType)
      Load a previously constructed index from the provided input streams. It is important that the dimensions, space type, and storage data type provided are the same that the index was constructed with.
      -
      -
      Parameters:
      +
      +
      Parameters:
      indexInputStream - input stream pointing to the underlying HNSW index
      nameListInputStream - input stream pointing to the JSON encoded names list
      -
      spaceType - @see com.spotify.voyager.jni.Index.SpaceType
      +
      spaceType -
      numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
      -
      storageDataType - @see com.spotify.voyager.jni.Index.StorageDataType
      -
      Returns:
      +
      storageDataType -
      +
      Returns:
      reference to the loaded StringIndex
      +
      See Also:
      +
      Index.SpaceType, +Index.StorageDataType
      -
  • -
  • -
    -

    load

    -
    public static StringIndex load(String indexFilename, - String nameListFilename)
    + + + + +
      +
    • +

      load

      +
      public static StringIndex load​(String indexFilename,
      +                               String nameListFilename)
      Load a previously constructed index from the provided file location. The space type, dimensions, and storage data type are read from the file metadata.
      -
      -
      Parameters:
      +
      +
      Parameters:
      indexFilename - Filename of the underlying HNSW index
      nameListFilename - Filename of the JSON encoded names list
      -
      Returns:
      +
      Returns:
      reference to the loaded StringIndex
      -
  • -
  • -
    -

    load

    -
    public static StringIndex load(InputStream indexInputStream, - InputStream nameListInputStream)
    + + + + +
      +
    • +

      load

      +
      public static StringIndex load​(InputStream indexInputStream,
      +                               InputStream nameListInputStream)
      Load a previously constructed index from the provided input stream. The space type, dimensions, and storage data type are read from the file metadata.
      -
      -
      Parameters:
      +
      +
      Parameters:
      indexInputStream - input stream pointing to the underlying HNSW index
      nameListInputStream - input stream pointing to the JSON encoded names list
      -
      Returns:
      +
      Returns:
      reference to the loaded StringIndex
      -
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(String outputDirectory) - throws IOException
    + + + + +
      +
    • +

      saveIndex

      +
      public void saveIndex​(String outputDirectory)
      +               throws IOException
      Save the underlying index and JSON encoded name list to the provided output directory
      -
      -
      Parameters:
      +
      +
      Parameters:
      outputDirectory - directory to output files to
      -
      Throws:
      -
      IOException - when there is an error writing to JSON or saving to disk
      +
      Throws:
      +
      IOException - when there is an error writing to JSON or saving to disk
      -
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(String outputDirectory, - String indexFilename, - String nameListFilename) - throws IOException
    -
    -
    Throws:
    -
    IOException
    + + + + +
  • -
  • -
    -

    saveIndex

    -
    public void saveIndex(OutputStream indexOutputStream, - OutputStream namesListOutputStream) - throws IOException
    + + + + +
      +
    • +

      saveIndex

      +
      public void saveIndex​(OutputStream indexOutputStream,
      +                      OutputStream namesListOutputStream)
      +               throws IOException
      Save the underlying HNSW index and JSON encoded names list to the provided output streams
      -
      -
      Parameters:
      +
      +
      Parameters:
      indexOutputStream - output stream pointing to the location to save the HNSW index
      namesListOutputStream - output stream pointing to the location to save the JSON names list
      -
      Throws:
      -
      IOException - when there is an error writing to JSON or the output streams
      +
      Throws:
      +
      IOException - when there is an error writing to JSON or the output streams
      -
  • -
  • -
    -

    addItem

    -
    public void addItem(String name, - float[] vector)
    -
    + + + + +
      +
    • +

      addItem

      +
      public void addItem​(String name,
      +                    float[] vector)
    • -
    • -
      -

      addItem

      -
      public void addItem(String name, - List<Float> vector)
      -
      +
    + + + + + + + +
      +
    • +

      addItems

      +
      public void addItems​(Map<String,​List<Float>> vectors)
    • -
    • -
      -

      getNumElements

      -
      public long getNumElements()
      -
      +
    + + + +
      +
    • +

      getNumElements

      +
      public long getNumElements()
    • -
    • -
      -

      getVector

      -
      public float[] getVector(String name)
      -
      +
    + + + +
      +
    • +

      getVector

      +
      public float[] getVector​(String name)
    • -
    • -
      -

      query

      -
      public StringIndex.QueryResults query(float[] queryVector, - int numNeighbors, - int ef)
      +
    + + + +
      +
    • +

      query

      +
      public StringIndex.QueryResults query​(float[] queryVector,
      +                                      int numNeighbors,
      +                                      int ef)
      Find the nearest neighbors of the provided embedding.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVector - The vector to center the search around.
      numNeighbors - The number of neighbors to return. The number of results returned may be smaller than this value if the index does not contain enough items.
      @@ -486,84 +646,154 @@

      query

      Increasing this value can improve recall (up to a point) at the cost of increased search latency. The minimum value of this parameter is the requested number of neighbors, and the maximum value is the number of items in the index. -
      Returns:
      +
      Returns:
      a QueryResults object, containing the names of the neighbors and each neighbor's distance from the query vector, sorted in ascending order of distance
      -
    • -
    • -
      -

      query

      -
      public StringIndex.QueryResults[] query(float[][] queryVectors, - int numNeighbors, - int numThreads, - int ef)
      +
    + + + +
      +
    • +

      query

      +
      public StringIndex.QueryResults[] query​(float[][] queryVectors,
      +                                        int numNeighbors,
      +                                        int numThreads,
      +                                        int ef)
      Query for multiple target vectors in parallel.
      -
      -
      Parameters:
      +
      +
      Parameters:
      queryVectors - Array of query vectors to search around
      numNeighbors - Number of neighbors to get for each target
      numThreads - Number of threads to use for the underlying index search. -1 uses all available CPU cores
      ef - Search depth in the graph
      -
      Returns:
      +
      Returns:
      Array of QueryResults, one for each target vector
      -
    • -
    • -
      -

      close

      -
      public void close() - throws IOException
      -
      -
      Specified by:
      -
      close in interface AutoCloseable
      -
      Specified by:
      -
      close in interface Closeable
      -
      Throws:
      -
      IOException
      +
    + + + + + + + +
      +
    • +

      resizeIndex

      +
      public void resizeIndex​(long newSize)
      Change the maximum number of elements currently storable by this Index. This operation reallocates the memory used by the index and can be quite slow, so it may be useful to set the maximum number of elements in advance if that number is known.
      -
      -
      Parameters:
      +
      +
      Parameters:
      newSize - The new number of maximum elements to resize this Index to.
      -
    • -
    • -
      -

      getMaxElements

      -
      public long getMaxElements()
      +
    + + + +
      +
    • +

      getMaxElements

      +
      public long getMaxElements()
      Get the maximum number of elements currently storable by this Index. If more elements are added than getMaxElements(), the index will be automatically (but slowly) resized.
      -
      -
      Returns:
      +
      +
      Returns:
      The number of elements (vectors) that are currently storable in this Index.
      -
    -
  • - + + +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html index 69176371..014e9654 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html @@ -1,114 +1,227 @@ + - + Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + +
    -
    -

    Uses of Class
    com.spotify.voyager.jni.Index.QueryResults

    +

    Uses of Class
    com.spotify.voyager.jni.Index.QueryResults

    -
    Packages that use Index.QueryResults
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html index 1fdf75a0..df6c8a94 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html @@ -1,186 +1,316 @@ + - -Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.9 API) - + +Uses of Class com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.9 API) - - - + - + + - - + + + + + - - -
    -
    + + +
    -
    -

    Uses of Enum
    com.spotify.voyager.jni.Index.SpaceType

    +

    Uses of Class
    com.spotify.voyager.jni.Index.SpaceType

    -
    Packages that use Index.SpaceType
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html index 70f247c3..8842bfe8 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html @@ -1,168 +1,294 @@ + - -Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.9 API) - + +Uses of Class com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.9 API) - - - + - + + - - + + + + + - - -
    -
    + + + -
    -

    Uses of Enum
    com.spotify.voyager.jni.Index.StorageDataType

    +

    Uses of Class
    com.spotify.voyager.jni.Index.StorageDataType

    -
    Packages that use Index.StorageDataType
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.html b/docs/java/com/spotify/voyager/jni/class-use/Index.html index 7605bca8..5ff1d36f 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.html @@ -1,116 +1,229 @@ + - + Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -

    Uses of Class
    com.spotify.voyager.jni.Index

    +

    Uses of Class
    com.spotify.voyager.jni.Index

    -
    Packages that use Index
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html index 16b02912..ee165f1a 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html @@ -1,101 +1,210 @@ + - + Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex.QueryResults

    +

    Uses of Class
    com.spotify.voyager.jni.StringIndex.QueryResults

    -
    Packages that use StringIndex.QueryResults
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html index de3fc4ed..e29c3576 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html @@ -1,116 +1,229 @@ + - + Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex

    +

    Uses of Class
    com.spotify.voyager.jni.StringIndex

    -
    Packages that use StringIndex
    -
    -
    Package
    -
    Description
    - -
    +
    + +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/package-summary.html b/docs/java/com/spotify/voyager/jni/package-summary.html index 4fbfe56c..a420875e 100644 --- a/docs/java/com/spotify/voyager/jni/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/package-summary.html @@ -1,141 +1,218 @@ + - + com.spotify.voyager.jni (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -

    Package com.spotify.voyager.jni

    +

    Package com.spotify.voyager.jni

    -
    -
    package com.spotify.voyager.jni
    -
    +
    +
    + +
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    -
    -
      -
    • - -
    • -
    • -
      -
      -
      -
      -
      Class
      -
      Description
      - -
      +
        +
      • + + + + + + + + + + + + + + + + + + + + + + + + +
        Class Summary 
        ClassDescription
        Index
        A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
        - - -
        +
        Index.QueryResults
        A container for query results, returned by Index.
        - - -
        -
        The space, also known as distance metric, to use when searching.
        -
        - -
        -
        The datatype used to use when storing vectors on disk.
        -
        - -
        +
        StringIndex
        Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
        - - -
        +
        StringIndex.QueryResults
        A wrapper class for nearest neighbor query results.
        - - - - +
        +
      • +
      • + + + + + + + + + + + + + + + + +
        Enum Summary 
        EnumDescription
        Index.SpaceType +
        The space, also known as distance metric, to use when searching.
        +
        Index.StorageDataType +
        The datatype used to use when storing vectors on disk.
        +
      -
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/package-tree.html b/docs/java/com/spotify/voyager/jni/package-tree.html index eb39bb29..3e6d292c 100644 --- a/docs/java/com/spotify/voyager/jni/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/package-tree.html @@ -1,94 +1,183 @@ + - + com.spotify.voyager.jni Class Hierarchy (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -

    Hierarchy For Package com.spotify.voyager.jni

    -
    -Package Hierarchies: -
    +
    +

    Class Hierarchy

    -
    +

    Enum Hierarchy

    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/package-use.html b/docs/java/com/spotify/voyager/jni/package-use.html index 4497d824..0d826eb4 100644 --- a/docs/java/com/spotify/voyager/jni/package-use.html +++ b/docs/java/com/spotify/voyager/jni/package-use.html @@ -1,110 +1,221 @@ + - + Uses of Package com.spotify.voyager.jni (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -

    Uses of Package
    com.spotify.voyager.jni

    -
    Packages that use com.spotify.voyager.jni
    -
    -
    Package
    -
    Description
    - -
    +
    + - +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html index cbd6067c..30fd9d01 100644 --- a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html @@ -1,177 +1,308 @@ + - + JniLibExtractor (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -
    +
    - -

    Class JniLibExtractor

    + +

    Class JniLibExtractor

    -
    java.lang.Object -
    com.spotify.voyager.jni.utils.JniLibExtractor
    -
    -
    -
    -
    public class JniLibExtractor -extends Object
    -
    -
    -
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html index 12cbe522..cc6b836a 100644 --- a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html @@ -1,195 +1,331 @@ + - + TinyJson (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -
    +
    - -

    Class TinyJson

    + +

    Class TinyJson

    -
    java.lang.Object -
    com.spotify.voyager.jni.utils.TinyJson
    -
    -
    +
    + +
    +
      +

    • -
      public class TinyJson -extends Object
      +
      public class TinyJson
      +extends Object
      A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
      -
    -
    -
    -
    -

    Methods inherited from class java.lang.Object

    -clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +
    +
    + - + + +
    +
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html index de44d45e..c0e94a31 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html @@ -1,62 +1,150 @@ + - + Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -

    Uses of Class
    com.spotify.voyager.jni.utils.JniLibExtractor

    +

    Uses of Class
    com.spotify.voyager.jni.utils.JniLibExtractor

    -No usage of com.spotify.voyager.jni.utils.JniLibExtractor
    +
    No usage of com.spotify.voyager.jni.utils.JniLibExtractor
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html index 74bf1fcd..1008ee1e 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html @@ -1,62 +1,150 @@ + - + Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -

    Uses of Class
    com.spotify.voyager.jni.utils.TinyJson

    +

    Uses of Class
    com.spotify.voyager.jni.utils.TinyJson

    -No usage of com.spotify.voyager.jni.utils.TinyJson
    +
    No usage of com.spotify.voyager.jni.utils.TinyJson
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-summary.html b/docs/java/com/spotify/voyager/jni/utils/package-summary.html index 96984cc2..1a95c40c 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-summary.html @@ -1,114 +1,175 @@ + - + com.spotify.voyager.jni.utils (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -

    Package com.spotify.voyager.jni.utils

    -
    -
    -
    package com.spotify.voyager.jni.utils
    -
    -
      -
    • - -
    • -
    • -
      -
      Classes
      -
      -
      Class
      -
      Description
      - -
       
      - -
      +
      +
        +
      • + + + + + + + + + + + + + + + + +
        Class Summary 
        ClassDescription
        JniLibExtractor 
        TinyJson
        A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
        - - - +
      -
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-tree.html b/docs/java/com/spotify/voyager/jni/utils/package-tree.html index ae4fff7c..d3de1d94 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-tree.html @@ -1,77 +1,166 @@ + - + com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -

    Hierarchy For Package com.spotify.voyager.jni.utils

    -
    -Package Hierarchies: -
    +
    +

    Class Hierarchy

    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-use.html b/docs/java/com/spotify/voyager/jni/utils/package-use.html index 5d5d8633..a47b1e2d 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-use.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-use.html @@ -1,62 +1,150 @@ + - + Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -

    Uses of Package
    com.spotify.voyager.jni.utils

    -No usage of com.spotify.voyager.jni.utils
    +
    No usage of com.spotify.voyager.jni.utils
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/package-summary.html b/docs/java/com/spotify/voyager/package-summary.html index 51e2123d..3393d377 100644 --- a/docs/java/com/spotify/voyager/package-summary.html +++ b/docs/java/com/spotify/voyager/package-summary.html @@ -1,76 +1,106 @@ + - + com.spotify.voyager (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -

    Package com.spotify.voyager

    +

    Package com.spotify.voyager

    -
    -
    package com.spotify.voyager
    -
    +
    +
    + +
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector data. For most use cases, Index will be the primary interface to Voyager's functionality. @@ -96,29 +126,54 @@

    Package com.spotify.voyage index.saveIndex("my_tiny_index.voy");

    -
    -
      -
    • - -
    • -
    -
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/package-tree.html b/docs/java/com/spotify/voyager/package-tree.html index 1be1a971..632020bf 100644 --- a/docs/java/com/spotify/voyager/package-tree.html +++ b/docs/java/com/spotify/voyager/package-tree.html @@ -1,66 +1,153 @@ + - + com.spotify.voyager Class Hierarchy (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -

    Hierarchy For Package com.spotify.voyager

    -
    -Package Hierarchies: -
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/com/spotify/voyager/package-use.html b/docs/java/com/spotify/voyager/package-use.html index e7d23c31..b8e9a581 100644 --- a/docs/java/com/spotify/voyager/package-use.html +++ b/docs/java/com/spotify/voyager/package-use.html @@ -1,62 +1,150 @@ + - + Uses of Package com.spotify.voyager (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -

    Uses of Package
    com.spotify.voyager

    -No usage of com.spotify.voyager
    +
    No usage of com.spotify.voyager
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/constant-values.html b/docs/java/constant-values.html index 8f3e48fd..66cb4e69 100644 --- a/docs/java/constant-values.html +++ b/docs/java/constant-values.html @@ -1,27 +1,28 @@ - + - -Constant Field Values (voyager 2.0.2 API) + +Constant Field Values (voyager 2.0.9 API) - + - + + - - + + - - + + - - + + + + + - - -
    -
    + + + -
    -

    JavaDoc Help

    - -
    -
    -

    Navigation

    -Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces - +
    +

    How This API Document Is Organized

    +
    This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
    -
    -
    -

    Kinds of Pages

    -The following sections describe the different kinds of pages in this collection. -
    -

    Overview

    +
    +
      +
    • +
      +

      Overview

      The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

      -
      -

      Package

      -

      Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

      -
        + +
      • +
        +

        Package

        +

        Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:

        +
        • Interfaces
        • Classes
        • Enums
        • -
        • Exception Classes
        • +
        • Exceptions
        • +
        • Errors
        • Annotation Types
        -
        -

        Class or Interface

        -

        Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

        -
          + +
        • +
          +

          Class or Interface

          +

          Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

          +
          • Class Inheritance Diagram
          • Direct Subclasses
          • All Known Subinterfaces
          • @@ -130,64 +133,150 @@

            Class or Interface

          • Class or Interface Description

          -
            +
            • Nested Class Summary
            • -
            • Enum Constant Summary
            • Field Summary
            • Property Summary
            • Constructor Summary
            • Method Summary
            • -
            • Required Element Summary
            • -
            • Optional Element Summary

            -
              -
            • Enum Constant Details
            • -
            • Field Details
            • -
            • Property Details
            • -
            • Constructor Details
            • -
            • Method Details
            • -
            • Element Details
            • +
                +
              • Field Detail
              • +
              • Property Detail
              • +
              • Constructor Detail
              • +
              • Method Detail
              • +
              +

              Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

              +
          +
        • +
        • +
          +

          Annotation Type

          +

          Each annotation type has its own separate page with the following sections:

          +
            +
          • Annotation Type Declaration
          • +
          • Annotation Type Description
          • +
          • Required Element Summary
          • +
          • Optional Element Summary
          • +
          • Element Detail
          -

          Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

          -

          The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

          -
          -

          Other Files

          -

          Packages and modules may contain pages with additional information related to the declarations nearby.

          +
        • +
        • +
          +

          Enum

          +

          Each enum has its own separate page with the following sections:

          +
            +
          • Enum Declaration
          • +
          • Enum Description
          • +
          • Enum Constant Summary
          • +
          • Enum Constant Detail
          • +
          -
          -

          Use

          -

          Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

          +
        • +
        • +
          +

          Use

          +

          Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

          -
          -

          Tree (Class Hierarchy)

          +
        • +
        • +
          +

          Tree (Class Hierarchy)

          There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

          -
            -
          • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
          • -
          • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
          • +
              +
            • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
            • +
            • When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
          -
          -

          All Packages

          -

          The All Packages page contains an alphabetic index of all packages contained in the documentation.

          +
        • +
        • +
          +

          Deprecated API

          +

          The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

          -
          -

          All Classes and Interfaces

          -

          The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

          +
        • +
        • +
          +

          Index

          +

          The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.

          -
          -

          Index

          -

          The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

          +
        • +
        • +
          +

          All Classes

          +

          The All Classes link shows all classes and interfaces except non-static nested types.

          -
    + +
  • +
    +

    Serialized Form

    +

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

    +
    +
  • +
  • +
    +

    Constant Field Values

    +

    The Constant Field Values page lists the static final fields and their values.

    +
    +
  • +
  • +
    +

    Search

    +

    You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".

    +
    +
  • +
    -This help file applies to API documentation generated by the standard doclet.
    +This help file applies to API documentation generated by the standard doclet.
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/index-all.html b/docs/java/index-all.html index d2987414..5fd89dc9 100644 --- a/docs/java/index-all.html +++ b/docs/java/index-all.html @@ -1,89 +1,141 @@ + - + Index (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -
    -
    -

    Index

    -
    -A C D E F G I J L M Q R S T U V W 
    All Classes and Interfaces|All Packages -

    A

    -
    -
    addItem(float[]) - Method in class com.spotify.voyager.jni.Index
    +
    A C D E F G I J L M Q R S T U V W 
    All Classes All Packages + + +

    A

    +
    +
    addItem(float[]) - Method in class com.spotify.voyager.jni.Index
    Add an item (a vector) to this Index.
    -
    addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
    +
    addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
    Add an item (a vector) to this Index with the provided identifier.
    -
    addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
    +
    addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
    Add multiple items (vectors) to this Index.
    -
    addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
    +
    addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
    Add multiple items (vectors) to this Index.
    -
    addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
     
    +
    asBytes() - Method in class com.spotify.voyager.jni.Index
    +
    +
    Returns the contents of this index as an array of bytes.
    +
    -

    C

    -
    -
    close() - Method in class com.spotify.voyager.jni.Index
    + + + +

    C

    +
    +
    close() - Method in class com.spotify.voyager.jni.Index
    Close this Index and release any memory held by it.
    -
    close() - Method in class com.spotify.voyager.jni.StringIndex
    +
    close() - Method in class com.spotify.voyager.jni.StringIndex
     
    com.spotify.voyager - package com.spotify.voyager
    @@ -96,357 +148,444 @@

    C

    com.spotify.voyager.jni.utils - package com.spotify.voyager.jni.utils
     
    -
    Cosine - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    +
    Cosine - com.spotify.voyager.jni.Index.SpaceType
    Cosine distance; i.e. normalized dot product.
    -

    D

    -
    -
    distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
    + + + +

    D

    +
    +
    distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
    A list of distances from each item ID to the query vector for this query.
    -

    E

    -
    -
    E4M3 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    + + + +

    E

    +
    +
    E4M3 - com.spotify.voyager.jni.Index.StorageDataType
    A custom 8-bit floating point data type with range [-448, 448] and variable precision.
    -
    Euclidean - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    +
    Euclidean - com.spotify.voyager.jni.Index.SpaceType
    Euclidean distance, also known as L2 distance.
    -
    extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
    +
    extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
     
    -

    F

    -
    -
    finalize() - Method in class com.spotify.voyager.jni.Index
    + + + +

    F

    +
    +
    finalize() - Method in class com.spotify.voyager.jni.Index
     
    -
    Float32 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    Float32 - com.spotify.voyager.jni.Index.StorageDataType
    A 32-bit floating point ("Float") data type.
    -
    Float8 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    Float8 - com.spotify.voyager.jni.Index.StorageDataType
    An 8-bit floating point data type that expects all values to be on [-1, 1].
    -

    G

    -
    -
    getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    + + + +

    G

    +
    +
    getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
    Retrieve the list of distances between query vectors and item vectors for the results of this query.
    -
    getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getEf() - Method in class com.spotify.voyager.jni.Index
    +
    getEf() - Method in class com.spotify.voyager.jni.Index
    Get the default EF ("query search depth") that will be uses when Index.query(float[], int) is called.
    -
    getEfConstruction() - Method in class com.spotify.voyager.jni.Index
    +
    getEfConstruction() - Method in class com.spotify.voyager.jni.Index
    Get the EF Construction value used when adding new elements to this Index.
    -
    getIDs() - Method in class com.spotify.voyager.jni.Index
    +
    getIDs() - Method in class com.spotify.voyager.jni.Index
    Get the list of identifiers currently stored by this index.
    -
    getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
    Retrieve the list of item IDs ("labels") returned by this query.
    -
    getM() - Method in class com.spotify.voyager.jni.Index
    +
    getM() - Method in class com.spotify.voyager.jni.Index
    Get the M value used when adding new elements to this Index.
    -
    getMaxElements() - Method in class com.spotify.voyager.jni.Index
    +
    getMaxElements() - Method in class com.spotify.voyager.jni.Index
    Get the maximum number of elements currently storable by this Index.
    -
    getMaxElements() - Method in class com.spotify.voyager.jni.StringIndex
    +
    getMaxElements() - Method in class com.spotify.voyager.jni.StringIndex
    Get the maximum number of elements currently storable by this Index.
    -
    getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNumDimensions() - Method in class com.spotify.voyager.jni.Index
    +
    getNumDimensions() - Method in class com.spotify.voyager.jni.Index
    Get the number of dimensions used in this Index.
    -
    getNumElements() - Method in class com.spotify.voyager.jni.Index
    +
    getNumElements() - Method in class com.spotify.voyager.jni.Index
    Get the number of elements currently in this Index.
    -
    getNumElements() - Method in class com.spotify.voyager.jni.StringIndex
    +
    getNumElements() - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNumThreads() - Method in class com.spotify.voyager.jni.Index
    +
    getNumThreads() - Method in class com.spotify.voyager.jni.Index
    Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
    -
    getSpace() - Method in class com.spotify.voyager.jni.Index
    +
    getSpace() - Method in class com.spotify.voyager.jni.Index
    Get the Index.SpaceType that this Index uses to store and compare vectors.
    -
    getVector(long) - Method in class com.spotify.voyager.jni.Index
    +
    getVector(long) - Method in class com.spotify.voyager.jni.Index
    Get the vector for the provided identifier.
    -
    getVector(String) - Method in class com.spotify.voyager.jni.StringIndex
    +
    getVector(String) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
    +
    getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
    Get the vectors for a provided array of identifiers.
    -

    I

    -
    -
    Index - Class in com.spotify.voyager.jni
    + + + +

    I

    +
    +
    Index - Class in com.spotify.voyager.jni
    A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
    -
    Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
    +
    Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
    Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
    +
    Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
    Index.QueryResults - Class in com.spotify.voyager.jni
    +
    Index.QueryResults - Class in com.spotify.voyager.jni
    A container for query results, returned by Index.
    -
    Index.SpaceType - Enum in com.spotify.voyager.jni
    +
    Index.SpaceType - Enum in com.spotify.voyager.jni
    The space, also known as distance metric, to use when searching.
    -
    Index.StorageDataType - Enum in com.spotify.voyager.jni
    +
    Index.StorageDataType - Enum in com.spotify.voyager.jni
    The datatype used to use when storing vectors on disk.
    -
    InnerProduct - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    +
    InnerProduct - com.spotify.voyager.jni.Index.SpaceType
    Inner (dot) product.
    -

    J

    -
    -
    JniLibExtractor - Class in com.spotify.voyager.jni.utils
    + + + +

    J

    +
    +
    JniLibExtractor - Class in com.spotify.voyager.jni.utils
     
    -
    JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
    +
    JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
     
    -

    L

    -
    -
    labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
    + + + +

    L

    +
    +
    labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
    A list of item IDs ("labels").
    -
    load(InputStream) - Static method in class com.spotify.voyager.jni.Index
    +
    load(InputStream) - Static method in class com.spotify.voyager.jni.Index
    Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
    -
    load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    +
    load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
    -
    load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided input stream.
    -
    load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided input streams.
    -
    load(String) - Static method in class com.spotify.voyager.jni.Index
    +
    load(String) - Static method in class com.spotify.voyager.jni.Index
    Load a Voyager index file and create a new Index initialized with the data in that file.
    -
    load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    +
    load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    Load a Voyager index file and create a new Index initialized with the data in that file.
    -
    load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided file location.
    -
    load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided file location.
    -

    M

    -
    -
    markDeleted(long) - Method in class com.spotify.voyager.jni.Index
    + + + +

    M

    +
    +
    markDeleted(long) - Method in class com.spotify.voyager.jni.Index
    Mark an element of the index as deleted.
    -

    Q

    -
    -
    query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
    + + + +

    Q

    +
    +
    query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of multiple query vectors.
    -
    query(float[][], int, int, int) - Method in class com.spotify.voyager.jni.StringIndex
    +
    query(float[][], int, int, int) - Method in class com.spotify.voyager.jni.StringIndex
    Query for multiple target vectors in parallel.
    -
    query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of multiple query vectors.
    -
    query(float[], int) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[], int) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of a single query vector.
    -
    query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
    +
    query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
    Find the nearest neighbors of the provided embedding.
    -
    query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of a single query vector.
    -
    QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
    +
    QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
    Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
    -
    QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -

    R

    -
    -
    readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
    + + + +

    R

    +
    +
    readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
     
    -
    resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
    +
    resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
    Change the maximum number of elements currently storable by this Index.
    -
    resizeIndex(long) - Method in class com.spotify.voyager.jni.StringIndex
    +
    resizeIndex(long) - Method in class com.spotify.voyager.jni.StringIndex
    Change the maximum number of elements currently storable by this Index.
    -

    S

    -
    -
    saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
    + + + +

    S

    +
    +
    saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
    Save this Index to the provided output stream.
    -
    saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
    Save the underlying HNSW index and JSON encoded names list to the provided output streams
    -
    saveIndex(String) - Method in class com.spotify.voyager.jni.Index
    +
    saveIndex(String) - Method in class com.spotify.voyager.jni.Index
    Save this Index to a file at the provided filename.
    -
    saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
    Save the underlying index and JSON encoded name list to the provided output directory
    -
    saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    setEf(long) - Method in class com.spotify.voyager.jni.Index
    +
    setEf(long) - Method in class com.spotify.voyager.jni.Index
    Set the default EF ("query search depth") to use when Index.query(float[], int) is called.
    -
    setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
    +
    setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
    Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
    -
    StringIndex - Class in com.spotify.voyager.jni
    +
    StringIndex - Class in com.spotify.voyager.jni
    Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
    -
    StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
    +
    StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
    Instantiate a new empty index with the specified space type and dimensionality
    -
    StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
    +
    StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
    Instantiate an empty index with the specified index parameters
    -
    StringIndex.QueryResults - Class in com.spotify.voyager.jni
    +
    StringIndex.QueryResults - Class in com.spotify.voyager.jni
    A wrapper class for nearest neighbor query results.
    -

    T

    -
    -
    TinyJson - Class in com.spotify.voyager.jni.utils
    + + + +

    T

    +
    +
    TinyJson - Class in com.spotify.voyager.jni.utils
    A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
    -
    TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
    +
    TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
     
    -
    toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
     
    -
    toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -

    U

    -
    -
    unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
    + + + +

    U

    +
    +
    unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
    Un-mark an element of the index as deleted, making it available again.
    -

    V

    -
    -
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    + + + +

    V

    +
    +
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    Returns the enum constant of this type with the specified name.
    -
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    Returns the enum constant of this type with the specified name.
    -
    values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    +
    values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    Returns an array containing the constants of this enum type, in the order they are declared.
    -
    values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    Returns an array containing the constants of this enum type, in the order they are declared.
    -

    W

    -
    -
    writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
    + + + +

    W

    +
    +
    writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
     
    -A C D E F G I J L M Q R S T U V W 
    All Classes and Interfaces|All Packages
    +A C D E F G I J L M Q R S T U V W 
    All Classes All Packages
    +
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/index.html b/docs/java/index.html index 709eeb96..dc66bcd5 100644 --- a/docs/java/index.html +++ b/docs/java/index.html @@ -1,80 +1,177 @@ + - + Overview (voyager 2.0.9 API) - - - - + - + + - - + + + + + - - -
    -
    + + + -

    voyager 2.0.9 API

    -
    -
    Packages
    -
    -
    Package
    -
    Description
    - -
    +
    + + + + + + + + + + + + + + + + + + + + +
    Packages 
    PackageDescription
    com.spotify.voyager
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector data.
    - - -
    +
    com.spotify.voyager.jni
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    - - -
     
    - +
    com.spotify.voyager.jni.utils 
    -
    - -
    + +

    Copyright © 2024. All rights reserved.

    + diff --git a/docs/java/jquery/jquery-3.6.1.min.js b/docs/java/jquery/jquery-3.6.1.min.js new file mode 100644 index 00000000..2c69bc90 --- /dev/null +++ b/docs/java/jquery/jquery-3.6.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.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],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
    "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"
      ",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("
        ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("
        ").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("
        ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(t("
        ").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("
        ").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete}); \ No newline at end of file +!function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(x){"use strict";x.ui=x.ui||{};x.ui.version="1.13.2";var n,i=0,l=Array.prototype.hasOwnProperty,a=Array.prototype.slice;x.cleanData=(n=x.cleanData,function(t){for(var e,i,s=0;null!=(i=t[s]);s++)(e=x._data(i,"events"))&&e.remove&&x(i).triggerHandler("remove");n(t)}),x.widget=function(t,i,e){var s,n,o,l={},a=t.split(".")[0],r=a+"-"+(t=t.split(".")[1]);return e||(e=i,i=x.Widget),Array.isArray(e)&&(e=x.extend.apply(null,[{}].concat(e))),x.expr.pseudos[r.toLowerCase()]=function(t){return!!x.data(t,r)},x[a]=x[a]||{},s=x[a][t],n=x[a][t]=function(t,e){if(!this||!this._createWidget)return new n(t,e);arguments.length&&this._createWidget(t,e)},x.extend(n,s,{version:e.version,_proto:x.extend({},e),_childConstructors:[]}),(o=new i).options=x.widget.extend({},o.options),x.each(e,function(e,s){function n(){return i.prototype[e].apply(this,arguments)}function o(t){return i.prototype[e].apply(this,t)}l[e]="function"==typeof s?function(){var t,e=this._super,i=this._superApply;return this._super=n,this._superApply=o,t=s.apply(this,arguments),this._super=e,this._superApply=i,t}:s}),n.prototype=x.widget.extend(o,{widgetEventPrefix:s&&o.widgetEventPrefix||t},l,{constructor:n,namespace:a,widgetName:t,widgetFullName:r}),s?(x.each(s._childConstructors,function(t,e){var i=e.prototype;x.widget(i.namespace+"."+i.widgetName,n,e._proto)}),delete s._childConstructors):i._childConstructors.push(n),x.widget.bridge(t,n),n},x.widget.extend=function(t){for(var e,i,s=a.call(arguments,1),n=0,o=s.length;n",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
        "),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
          ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
          ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
          ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
          ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/docs/java/legal/ASSEMBLY_EXCEPTION b/docs/java/legal/ASSEMBLY_EXCEPTION index 42966666..065b8d90 100644 --- a/docs/java/legal/ASSEMBLY_EXCEPTION +++ b/docs/java/legal/ASSEMBLY_EXCEPTION @@ -2,8 +2,8 @@ OPENJDK ASSEMBLY EXCEPTION The OpenJDK source code made available by Oracle America, Inc. (Oracle) at -openjdk.org ("OpenJDK Code") is distributed under the terms of the GNU -General Public License version 2 +openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 only ("GPL2"), with the following clarification and special exception. Linking this OpenJDK Code statically or dynamically with other code @@ -12,7 +12,7 @@ only ("GPL2"), with the following clarification and special exception. As a special exception, Oracle gives you permission to link this OpenJDK Code with certain code licensed by Oracle as indicated at - https://openjdk.org/legal/exception-modules-2007-05-08.html + http://openjdk.java.net/legal/exception-modules-2007-05-08.html ("Designated Exception Modules") to produce an executable, regardless of the license terms of the Designated Exception Modules, and to copy and distribute the resulting executable under GPL2, diff --git a/docs/java/legal/jszip.md b/docs/java/legal/jszip.md new file mode 100644 index 00000000..fad2cb15 --- /dev/null +++ b/docs/java/legal/jszip.md @@ -0,0 +1,653 @@ +## JSZip v3.7.1 + +JSZip is dual licensed. You may use it under the MIT license *or* the GPLv3 +license. + +### The MIT License +``` +Copyright (c) 2009-2016 Stuart Knightley, David Duponchel, Franz Buchinger, António Afonso + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +``` + +### GPL version 3 +``` + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS +``` diff --git a/docs/java/legal/pako.md b/docs/java/legal/pako.md new file mode 100644 index 00000000..de339d89 --- /dev/null +++ b/docs/java/legal/pako.md @@ -0,0 +1,45 @@ +## Pako v1.0 + +### Pako License +
          +Copyright (C) 2014-2017 by Vitaly Puzrin and Andrei Tuputcyn
          +
          +Permission is hereby granted, free of charge, to any person obtaining a copy
          +of this software and associated documentation files (the "Software"), to deal
          +in the Software without restriction, including without limitation the rights
          +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
          +copies of the Software, and to permit persons to whom the Software is
          +furnished to do so, subject to the following conditions:
          +
          +The above copyright notice and this permission notice shall be included in
          +all copies or substantial portions of the Software.
          +
          +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
          +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
          +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
          +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
          +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
          +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
          +THE SOFTWARE.
          +(C) 1995-2013 Jean-loup Gailly and Mark Adler
          +(C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
          +
          +This software is provided 'as-is', without any express or implied
          +warranty. In no event will the authors be held liable for any damages
          +arising from the use of this software.
          +
          +Permission is granted to anyone to use this software for any purpose,
          +including commercial applications, and to alter it and redistribute it
          +freely, subject to the following restrictions:
          +
          +1. The origin of this software must not be misrepresented; you must not
          +claim that you wrote the original software. If you use this software
          +in a product, an acknowledgment in the product documentation would be
          +appreciated but is not required.
          +2. Altered source versions must be plainly marked as such, and must not be
          + misrepresented as being the original software.
          +3. This notice may not be removed or altered from any source distribution.
          +
          +
          + + diff --git a/docs/java/member-search-index.js b/docs/java/member-search-index.js index ba4091b2..63604fc7 100644 --- a/docs/java/member-search-index.js +++ b/docs/java/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[], long)","u":"addItem(float[],long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, float[])","u":"addItem(java.lang.String,float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, List)","u":"addItem(java.lang.String,java.util.List)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], int)","u":"addItems(float[][],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], long[], int)","u":"addItems(float[][],long[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItems(Map>)","u":"addItems(java.util.Map)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"close()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"close()"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Cosine"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"distances"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"E4M3"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Euclidean"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"extractBinaries(String)","u":"extractBinaries(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"finalize()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float32"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float8"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistance(int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEf()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEfConstruction()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getIDs()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getLabels()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getM()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getName(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNames()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumDimensions()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNumResults()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumThreads()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getSpace()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVector(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"getVector(String)","u":"getVector(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVectors(long[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"InnerProduct"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"JniLibExtractor()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"labels"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream)","u":"load(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream)","u":"load(java.io.InputStream,java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String)","u":"load(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String)","u":"load(java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"markDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int)","u":"query(float[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[], int, int)","u":"query(float[],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int, long)","u":"query(float[],int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int)","u":"query(float[][],int,int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[][], int, int, int)","u":"query(float[][],int,int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int, long)","u":"query(float[][],int,int,long)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"QueryResults(long[], float[])","u":"%3Cinit%3E(long[],float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"QueryResults(String[], float[])","u":"%3Cinit%3E(java.lang.String[],float[])"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"readStringList(InputStream)","u":"readStringList(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(OutputStream)","u":"saveIndex(java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(OutputStream, OutputStream)","u":"saveIndex(java.io.OutputStream,java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String, String, String)","u":"saveIndex(java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setEf(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setNumThreads(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"TinyJson()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"unmarkDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"values()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"values()"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"writeStringList(Iterable, OutputStream)","u":"writeStringList(java.lang.Iterable,java.io.OutputStream)"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[], long)","url":"addItem(float[],long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, float[])","url":"addItem(java.lang.String,float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, List)","url":"addItem(java.lang.String,java.util.List)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], int)","url":"addItems(float[][],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], long[], int)","url":"addItems(float[][],long[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItems(Map>)","url":"addItems(java.util.Map)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"asBytes()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"close()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"close()"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Cosine"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"distances"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"E4M3"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Euclidean"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"extractBinaries(String)","url":"extractBinaries(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"finalize()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float32"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float8"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistance(int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEf()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEfConstruction()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getIDs()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getLabels()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getM()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getName(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNames()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumDimensions()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNumResults()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumThreads()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getSpace()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVector(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"getVector(String)","url":"getVector(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVectors(long[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"InnerProduct"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"JniLibExtractor()","url":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"labels"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.io.InputStream,java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream)","url":"load(java.io.InputStream,java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream)","url":"load(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String, Index.SpaceType, int, Index.StorageDataType)","url":"load(java.lang.String,java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String)","url":"load(java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String)","url":"load(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"markDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[], int, int)","url":"query(float[],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int, long)","url":"query(float[],int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int)","url":"query(float[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[][], int, int, int)","url":"query(float[][],int,int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int, long)","url":"query(float[][],int,int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int)","url":"query(float[][],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"QueryResults(long[], float[])","url":"%3Cinit%3E(long[],float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"QueryResults(String[], float[])","url":"%3Cinit%3E(java.lang.String[],float[])"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"readStringList(InputStream)","url":"readStringList(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(OutputStream, OutputStream)","url":"saveIndex(java.io.OutputStream,java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(OutputStream)","url":"saveIndex(java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String, String, String)","url":"saveIndex(java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(String)","url":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String)","url":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setEf(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setNumThreads(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int)","url":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"TinyJson()","url":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"unmarkDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"valueOf(String)","url":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"values()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"values()"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"writeStringList(Iterable, OutputStream)","url":"writeStringList(java.lang.Iterable,java.io.OutputStream)"}] \ No newline at end of file diff --git a/docs/java/member-search-index.zip b/docs/java/member-search-index.zip index d602f158e2c6e5587a296936433769b2be637b32..15273e59835df242668191e124f0e8af3bf7ab84 100644 GIT binary patch delta 1008 zcmV@6aWYa2mlOz0a=j_Du2mt+b|IQmB2s%6)<$Ddnk$^hsG}8 zAWPc>y#zTh(%5B6QLae2af<$XsV$Ny$`Tg?T`q>i<;~2SA!j_g`#IT6-c5oy^4TWl zc(wDl@eZva@gFIkOecYuUD6Pq#4{1kC=8bzB5y@v#P9B>MgIZZ62@-H6IuKSpG^PD64p)y%s@n-c}!UBa1H6D&3v8O`4BI55v-Z$M%Oqjz=< z*4v-&^lvsOfZN>$N{q9ZVG3FhpHfJ6pMQa+gtHPQ6f7ee0MpZj$BCGjBaRvxE#6$t ztV~*@0l^_4I)suto|RbV6kp(n#S>3ZAoMD+pm=|eDN3+#bK!(KkmPy!1e=7#N`Mjk ztnFDPn|bKZUb{kis~@bYcv%CVmm%Zn-Zlex(R@gxm6j(@2s z%5tu$dJhp7=mCf^3zxQmuk?2D78{!)o?+E zociT_Bx$fWwYx}LvSwp6amRy8X)QTn{9la)eJT##WY~9iSFZ=^ z2JpDB-c^558?Whzl$zG6>i*0Ykrb|1og-b1TOH`0Pdo>fsj^V_`%c6j#YaHx3)UYA z=FqG(I3(zSK=~>8v@glZ`)ZOZguX<3{~J(C2MG8AWT~G6004O*002-+0Rj{N6aWYa e2mlOz0a^G0WT~G6004O*li3422IT_)00003M$f4L delta 970 zcmV;*12z1?2%88FP)h>@6aWYa2mnWoQCE=;Dt}vVn=lmqD^;XQOp16|_ApIVAJ$}2 zs$RCW+Dp|37fv#F#$>k1noj%gGX@G6Ctw58E-wgt`Oekn93Sp}PBxQwlOT?KzKI21 z?fh-LLu+9EBgK>HB#^U98p4x&C-NPI;Zi{4tw@Z--Tm~4#B}{iPA1GWoz4E5_9W94 z;(takOxGr$Y-W1&0;qHRh_=Wlh_3y7>ENU+CkA~t70$gYfn+*!! zcDI2X<1FTwf)&K41laB~@Pr7Sql8jZh<^sa?RXI}lM{0!P=%w#o6A`*krqina0rOD zp(x|=9P6Co3;eKn5)1{BuN(`q@AsG@hJoitv2+G~UO$B{Zn2VJ1V39_)~HS8zO&au zA-%PCR+GQ1LCkZP@oXbT3m$hlP=jGs?I-~jEBBpeG3A0Kfxt0!MOn@*S>L0G3xD(g z#90fM&KuFwf<>^=WEGY%{k;S2muzv#-3fib=6s~tDCMpg)SV89QP#R&A2zlxOMK3O< zIb@6DDHv7b;MlLi*|^~-F4wG%O(Ksb|G%IUH!)peg3d-eWoIhIU9P9Os~77()vkr8 zBZ&N$>cCd4o?g~M&ILU}?Asg&2nemJn5KHZr`e?Jx+!0%CE@ylbl$O-V}GJlZ}K%s zxmIXRS_i1~CQwz}L77Sg4kK9yi#giNRAp3$yrK)&=zCV`ntY9W!?Tr(Y;7AK`iZmP zsaE3MV!Au$G0izi?=Kl(+7UD-E^W;~DU1Qf&ybbS{f<9J+Z^XQ5taO3{VJs?R~LfR zc9{lU#4|J1m5m{kq329Jkbi3&9L$MB#Cx5yE}RUfhasue=%`MZYb4~gHbSp9e`VzV zx{=$fV)Wbjp@>_2j&zL{aVGsxtukx8sv#2UTI87<8(TyYxL!4mbTQuRK=1iCFfvV( zgtm?C1B`coI^?WB7#2{i4+JpuKp_8*c)Bmi>ibG16$twh?fq|1ODG2jvi^KJc>@3d sb{_x$P)h*<6aW+e2nYxOM~zWevi^KJc>@3db{~`f13U)50{{R30J9yzQvd(} diff --git a/docs/java/overview-summary.html b/docs/java/overview-summary.html index d7e3dfcb..929e37b5 100644 --- a/docs/java/overview-summary.html +++ b/docs/java/overview-summary.html @@ -1,21 +1,18 @@ + - + voyager 2.0.9 API - - - - - - + + - +
          -
          - -
          + +

          Copyright © 2024. All rights reserved.

          + diff --git a/docs/java/package-search-index.js b/docs/java/package-search-index.js index 1cbb9a98..41002eac 100644 --- a/docs/java/package-search-index.js +++ b/docs/java/package-search-index.js @@ -1 +1 @@ -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.spotify.voyager"},{"l":"com.spotify.voyager.jni"},{"l":"com.spotify.voyager.jni.utils"}];updateSearchResults(); \ No newline at end of file +packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"com.spotify.voyager"},{"l":"com.spotify.voyager.jni"},{"l":"com.spotify.voyager.jni.utils"}] \ No newline at end of file diff --git a/docs/java/package-search-index.zip b/docs/java/package-search-index.zip index 6ec2b106297237720dbaad35ca5bd8d1812f9c19..b9df3b2cbef0559df64fbc31f257cb9d047f0cbc 100644 GIT binary patch delta 30 icmey#_>++@z?+#xgn@&DgMp`xF>)f`EEX`m#uor>AO~Oo delta 30 icmey#_>++@z?+#xgn@&DgTcKwFnl84EEX`m#uos1-UyHY diff --git a/docs/java/script.js b/docs/java/script.js index 8b9691a1..7dc93c48 100644 --- a/docs/java/script.js +++ b/docs/java/script.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,22 +28,83 @@ var packageSearchIndex; var typeSearchIndex; var memberSearchIndex; var tagSearchIndex; - -var oddRowColor = "odd-row-color"; -var evenRowColor = "even-row-color"; -var sortAsc = "sort-asc"; -var sortDesc = "sort-desc"; -var tableTab = "table-tab"; -var activeTableTab = "active-table-tab"; - function loadScripts(doc, tag) { + createElem(doc, tag, 'jquery/jszip/dist/jszip.js'); + createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js'); + if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 || + window.navigator.userAgent.indexOf('Edge/') > 0) { + createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js'); + } createElem(doc, tag, 'search.js'); - createElem(doc, tag, 'module-search-index.js'); - createElem(doc, tag, 'package-search-index.js'); - createElem(doc, tag, 'type-search-index.js'); - createElem(doc, tag, 'member-search-index.js'); - createElem(doc, tag, 'tag-search-index.js'); + $.get(pathtoroot + "module-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("module-search-index.json").async("text").then(function(content){ + moduleSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "package-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("package-search-index.json").async("text").then(function(content){ + packageSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "type-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("type-search-index.json").async("text").then(function(content){ + typeSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "member-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("member-search-index.json").async("text").then(function(content){ + memberSearchIndex = JSON.parse(content); + }); + }); + }); + }); + $.get(pathtoroot + "tag-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) { + JSZip.loadAsync(data).then(function(zip){ + zip.file("tag-search-index.json").async("text").then(function(content){ + tagSearchIndex = JSON.parse(content); + }); + }); + }); + }); + if (!moduleSearchIndex) { + createElem(doc, tag, 'module-search-index.js'); + } + if (!packageSearchIndex) { + createElem(doc, tag, 'package-search-index.js'); + } + if (!typeSearchIndex) { + createElem(doc, tag, 'type-search-index.js'); + } + if (!memberSearchIndex) { + createElem(doc, tag, 'member-search-index.js'); + } + if (!tagSearchIndex) { + createElem(doc, tag, 'tag-search-index.js'); + } + $(window).resize(function() { + $('.navPadding').css('padding-top', $('.fixedNav').css("height")); + }); } function createElem(doc, tag, path) { @@ -53,201 +114,36 @@ function createElem(doc, tag, path) { scriptElement.parentNode.insertBefore(script, scriptElement); } -// Helper for making content containing release names comparable lexicographically -function makeComparable(s) { - return s.toLowerCase().replace(/(\d+)/g, - function(n, m) { - return ("000" + m).slice(-4); - }); -} - -// Switches between two styles depending on a condition -function toggleStyle(classList, condition, trueStyle, falseStyle) { - if (condition) { - classList.remove(falseStyle); - classList.add(trueStyle); - } else { - classList.remove(trueStyle); - classList.add(falseStyle); - } -} - -// Sorts the rows in a table lexicographically by the content of a specific column -function sortTable(header, columnIndex, columns) { - var container = header.parentElement; - var descending = header.classList.contains(sortAsc); - container.querySelectorAll("div.table-header").forEach( - function(header) { - header.classList.remove(sortAsc); - header.classList.remove(sortDesc); +function show(type) { + count = 0; + for (var key in data) { + var row = document.getElementById(key); + if ((data[key] & type) !== 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; } - ) - var cells = container.children; - var rows = []; - for (var i = columns; i < cells.length; i += columns) { - rows.push(Array.prototype.slice.call(cells, i, i + columns)); + else + row.style.display = 'none'; } - var comparator = function(a, b) { - var ka = makeComparable(a[columnIndex].textContent); - var kb = makeComparable(b[columnIndex].textContent); - if (ka < kb) - return descending ? 1 : -1; - if (ka > kb) - return descending ? -1 : 1; - return 0; - }; - var sorted = rows.sort(comparator); - var visible = 0; - sorted.forEach(function(row) { - if (row[0].style.display !== 'none') { - var isEvenRow = visible++ % 2 === 0; - } - row.forEach(function(cell) { - toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); - container.appendChild(cell); - }) - }); - toggleStyle(header.classList, descending, sortDesc, sortAsc); + updateTabs(type); } -// Toggles the visibility of a table category in all tables in a page -function toggleGlobal(checkbox, selected, columns) { - var display = checkbox.checked ? '' : 'none'; - document.querySelectorAll("div.table-tabs").forEach(function(t) { - var id = t.parentElement.getAttribute("id"); - var selectedClass = id + "-tab" + selected; - // if selected is empty string it selects all uncategorized entries - var selectUncategorized = !Boolean(selected); - var visible = 0; - document.querySelectorAll('div.' + id) - .forEach(function(elem) { - if (selectUncategorized) { - if (elem.className.indexOf(selectedClass) === -1) { - elem.style.display = display; - } - } else if (elem.classList.contains(selectedClass)) { - elem.style.display = display; - } - if (elem.style.display === '') { - var isEvenRow = visible++ % (columns * 2) < columns; - toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); - } - }); - var displaySection = visible === 0 ? 'none' : ''; - t.parentElement.style.display = displaySection; - document.querySelector("li#contents-" + id).style.display = displaySection; - }) -} - -// Shows the elements of a table belonging to a specific category -function show(tableId, selected, columns) { - if (tableId !== selected) { - document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') - .forEach(function(elem) { - elem.style.display = 'none'; - }); - } - document.querySelectorAll('div.' + selected) - .forEach(function(elem, index) { - elem.style.display = ''; - var isEvenRow = index % (columns * 2) < columns; - toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); - }); - updateTabs(tableId, selected); -} - -function updateTabs(tableId, selected) { - document.querySelector('div#' + tableId +' .summary-table') - .setAttribute('aria-labelledby', selected); - document.querySelectorAll('button[id^="' + tableId + '"]') - .forEach(function(tab, index) { - if (selected === tab.id || (tableId === selected && index === 0)) { - tab.className = activeTableTab; - tab.setAttribute('aria-selected', true); - tab.setAttribute('tabindex',0); - } else { - tab.className = tableTab; - tab.setAttribute('aria-selected', false); - tab.setAttribute('tabindex',-1); - } - }); -} - -function switchTab(e) { - var selected = document.querySelector('[aria-selected=true]'); - if (selected) { - if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { - // left or up arrow key pressed: move focus to previous tab - selected.previousSibling.click(); - selected.previousSibling.focus(); - e.preventDefault(); - } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { - // right or down arrow key pressed: move focus to next tab - selected.nextSibling.click(); - selected.nextSibling.focus(); - e.preventDefault(); +function updateTabs(type) { + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; } } } -var updateSearchResults = function() {}; - -function indexFilesLoaded() { - return moduleSearchIndex - && packageSearchIndex - && typeSearchIndex - && memberSearchIndex - && tagSearchIndex; -} -// Copy the contents of the local snippet to the clipboard -function copySnippet(button) { - copyToClipboard(button.nextElementSibling.innerText); - switchCopyLabel(button, button.firstElementChild); -} -function copyToClipboard(content) { - var textarea = document.createElement("textarea"); - textarea.style.height = 0; - document.body.appendChild(textarea); - textarea.value = content; - textarea.select(); - document.execCommand("copy"); - document.body.removeChild(textarea); +function updateModuleFrame(pFrame, cFrame) { + top.packageFrame.location = pFrame; + top.classFrame.location = cFrame; } -function switchCopyLabel(button, span) { - var copied = span.getAttribute("data-copied"); - button.classList.add("visible"); - var initialLabel = span.innerHTML; - span.innerHTML = copied; - setTimeout(function() { - button.classList.remove("visible"); - setTimeout(function() { - if (initialLabel !== copied) { - span.innerHTML = initialLabel; - } - }, 100); - }, 1900); -} -// Workaround for scroll position not being included in browser history (8249133) -document.addEventListener("DOMContentLoaded", function(e) { - var contentDiv = document.querySelector("div.flex-content"); - window.addEventListener("popstate", function(e) { - if (e.state !== null) { - contentDiv.scrollTop = e.state; - } - }); - window.addEventListener("hashchange", function(e) { - history.replaceState(contentDiv.scrollTop, document.title); - }); - var timeoutId; - contentDiv.addEventListener("scroll", function(e) { - if (timeoutId) { - clearTimeout(timeoutId); - } - timeoutId = setTimeout(function() { - history.replaceState(contentDiv.scrollTop, document.title); - }, 100); - }); - if (!location.hash) { - history.replaceState(contentDiv.scrollTop, document.title); - } -}); diff --git a/docs/java/search.html b/docs/java/search.html index 8693ece1..22515698 100644 --- a/docs/java/search.html +++ b/docs/java/search.html @@ -1,11 +1,11 @@ - + Search (voyager 2.0.9 API) - + diff --git a/docs/java/search.js b/docs/java/search.js index 7673397e..8492271e 100644 --- a/docs/java/search.js +++ b/docs/java/search.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,356 +22,120 @@ * or visit www.oracle.com if you need additional information or have any * questions. */ -"use strict"; -const messages = { - enterTerm: "Enter a search term", - noResult: "No results found", - oneResult: "Found one result", - manyResults: "Found {0} results", - loading: "Loading search index...", - searching: "Searching...", - redirecting: "Redirecting to first result...", - linkIcon: "Link icon", - linkToSection: "Link to this section" -} -const categories = { - modules: "Modules", - packages: "Packages", - types: "Types", - members: "Members", - searchTags: "Search Tags" -}; -const highlight = "$&"; -const NO_MATCH = {}; -const MAX_RESULTS = 300; -function checkUnnamed(name, separator) { - return name === "" || !name ? "" : name + separator; -} -function escapeHtml(str) { - return str.replace(//g, ">"); -} -function getHighlightedText(str, boundaries, from, to) { - var start = from; - var text = ""; - for (var i = 0; i < boundaries.length; i += 2) { - var b0 = boundaries[i]; - var b1 = boundaries[i + 1]; - if (b0 >= to || b1 <= from) { - continue; - } - text += escapeHtml(str.slice(start, Math.max(start, b0))); - text += ""; - text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); - text += ""; - start = Math.min(to, b1); + +var noResult = {l: "No results found"}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Types"; +var catMembers = "Members"; +var catSearchTags = "SearchTags"; +var highlight = "$&"; +var camelCaseRegexp = ""; +var secondaryMatcher = ""; +function getHighlightedText(item) { + var ccMatcher = new RegExp(camelCaseRegexp); + var label = item.replace(ccMatcher, highlight); + if (label === item) { + label = item.replace(secondaryMatcher, highlight); } - text += escapeHtml(str.slice(start, to)); - return text; + return label; } -function getURLPrefix(item, category) { - var urlPrefix = ""; - var slash = "/"; - if (category === "modules") { - return item.l + slash; - } else if (category === "packages" && item.m) { - return item.m + slash; - } else if (category === "types" || category === "members") { - if (item.m) { - urlPrefix = item.m + slash; - } else { - $.each(packageSearchIndex, function(index, it) { - if (it.m && item.p === it.l) { - urlPrefix = it.m + slash; +function getURLPrefix(ui) { + var urlPrefix=""; + if (useModuleDirectories) { + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p == item.l) { + urlPrefix = item.m + slash; } }); - } - } - return urlPrefix; -} -function getURL(item, category) { - if (item.url) { - return item.url; - } - var url = getURLPrefix(item, category); - if (category === "modules") { - url += "module-summary.html"; - } else if (category === "packages") { - if (item.u) { - url = item.u; - } else { - url += item.l.replace(/\./g, '/') + "/package-summary.html"; - } - } else if (category === "types") { - if (item.u) { - url = item.u; + return urlPrefix; } else { - url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + return urlPrefix; } - } else if (category === "members") { - url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; - if (item.u) { - url += item.u; - } else { - url += item.l; - } - } else if (category === "searchTags") { - url += item.u; } - item.url = url; - return url; + return urlPrefix; } -function createMatcher(term, camelCase) { - if (camelCase && !isUpperCase(term)) { - return null; // no need for camel-case matcher for lower case query - } - var pattern = ""; - var upperCase = []; - term.trim().split(/\s+/).forEach(function(w, index, array) { - var tokens = w.split(/(?=[A-Z,.()<>?[\/])/); - for (var i = 0; i < tokens.length; i++) { - var s = tokens[i]; - // ',' and '?' are the only delimiters commonly followed by space in java signatures - pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; - upperCase.push(false); - var isWordToken = /\w$/.test(s); - if (isWordToken) { - if (i === tokens.length - 1 && index < array.length - 1) { - // space in query string matches all delimiters - pattern += "(.*?)"; - upperCase.push(isUpperCase(s[0])); - } else { - if (!camelCase && isUpperCase(s) && s.length === 1) { - pattern += "()"; - } else { - pattern += "([a-z0-9$<>?[\\]]*?)"; - } - upperCase.push(isUpperCase(s[0])); - } - } else { - pattern += "()"; - upperCase.push(false); - } +var watermark = 'Search'; +$(function() { + $("#search").val(''); + $("#search").prop("disabled", false); + $("#reset").prop("disabled", false); + $("#search").val(watermark).addClass('watermark'); + $("#search").blur(function() { + if ($(this).val().length == 0) { + $(this).val(watermark).addClass('watermark'); } }); - var re = new RegExp(pattern, "gi"); - re.upperCase = upperCase; - return re; -} -function findMatch(matcher, input, startOfName, endOfName) { - var from = startOfName; - matcher.lastIndex = from; - var match = matcher.exec(input); - // Expand search area until we get a valid result or reach the beginning of the string - while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { - if (from === 0) { - return NO_MATCH; - } - from = input.lastIndexOf(".", from - 2) + 1; - matcher.lastIndex = from; - match = matcher.exec(input); - } - var boundaries = []; - var matchEnd = match.index + match[0].length; - var score = 5; - var start = match.index; - var prevEnd = -1; - for (var i = 1; i < match.length; i += 2) { - var isUpper = isUpperCase(input[start]); - var isMatcherUpper = matcher.upperCase[i]; - // capturing groups come in pairs, match and non-match - boundaries.push(start, start + match[i].length); - // make sure groups are anchored on a left word boundary - var prevChar = input[start - 1] || ""; - var nextChar = input[start + 1] || ""; - if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) { - if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { - score -= 0.1; - } else if (isMatcherUpper && start === prevEnd) { - score -= isUpper ? 0.1 : 1.0; - } else { - return NO_MATCH; - } - } - prevEnd = start + match[i].length; - start += match[i].length + match[i + 1].length; - - // lower score for parts of the name that are missing - if (match[i + 1] && prevEnd < endOfName) { - score -= rateNoise(match[i + 1]); - } - } - // lower score if a type name contains unmatched camel-case parts - if (input[matchEnd - 1] !== "." && endOfName > matchEnd) - score -= rateNoise(input.slice(matchEnd, endOfName)); - score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); - - if (score <= 0) { - return NO_MATCH; - } - return { - input: input, - score: score, - boundaries: boundaries - }; -} -function isUpperCase(s) { - return s !== s.toLowerCase(); -} -function isLowerCase(s) { - return s !== s.toUpperCase(); -} -function rateNoise(str) { - return (str.match(/([.(])/g) || []).length / 5 - + (str.match(/([A-Z]+)/g) || []).length / 10 - + str.length / 20; -} -function doSearch(request, response) { - var term = request.term.trim(); - var maxResults = request.maxResults || MAX_RESULTS; - if (term.length === 0) { - return this.close(); - } - var matcher = { - plainMatcher: createMatcher(term, false), - camelCaseMatcher: createMatcher(term, true) - } - var indexLoaded = indexFilesLoaded(); - - function getPrefix(item, category) { - switch (category) { - case "packages": - return checkUnnamed(item.m, "/"); - case "types": - return checkUnnamed(item.p, "."); - case "members": - return checkUnnamed(item.p, ".") + item.c + "."; - default: - return ""; - } - } - function useQualifiedName(category) { - switch (category) { - case "packages": - return /[\s/]/.test(term); - case "types": - case "members": - return /[\s.]/.test(term); - default: - return false; - } - } - function searchIndex(indexArray, category) { - var matches = []; - if (!indexArray) { - if (!indexLoaded) { - matches.push({ l: messages.loading, category: category }); - } - return matches; - } - $.each(indexArray, function (i, item) { - var prefix = getPrefix(item, category); - var simpleName = item.l; - var qualifiedName = prefix + simpleName; - var useQualified = useQualifiedName(category); - var input = useQualified ? qualifiedName : simpleName; - var startOfName = useQualified ? prefix.length : 0; - var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 - ? input.indexOf("(", startOfName) : input.length; - var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); - if (m === NO_MATCH && matcher.camelCaseMatcher) { - m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); - } - if (m !== NO_MATCH) { - m.indexItem = item; - m.prefix = prefix; - m.category = category; - if (!useQualified) { - m.input = qualifiedName; - m.boundaries = m.boundaries.map(function(b) { - return b + prefix.length; - }); - } - matches.push(m); - } - return true; - }); - return matches.sort(function(e1, e2) { - return e2.score - e1.score; - }).slice(0, maxResults); - } - - var result = searchIndex(moduleSearchIndex, "modules") - .concat(searchIndex(packageSearchIndex, "packages")) - .concat(searchIndex(typeSearchIndex, "types")) - .concat(searchIndex(memberSearchIndex, "members")) - .concat(searchIndex(tagSearchIndex, "searchTags")); - - if (!indexLoaded) { - updateSearchResults = function() { - doSearch(request, response); + $("#search").on('click keydown', function() { + if ($(this).val() == watermark) { + $(this).val('').removeClass('watermark'); } - } else { - updateSearchResults = function() {}; - } - response(result); -} -// JQuery search menu implementation + }); + $("#reset").click(function() { + $("#search").val(''); + $("#search").focus(); + }); + $("#search").focus(); + $("#search")[0].setSelectionRange(0, 0); +}); $.widget("custom.catcomplete", $.ui.autocomplete, { _create: function() { this._super(); - this.widget().menu("option", "items", "> .result-item"); - // workaround for search result scrolling - this.menu._scrollIntoView = function _scrollIntoView( item ) { - var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; - if ( this._hasScroll() ) { - borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; - paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; - offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; - scroll = this.activeMenu.scrollTop(); - elementHeight = this.activeMenu.height() - 26; - itemHeight = item.outerHeight(); - - if ( offset < 0 ) { - this.activeMenu.scrollTop( scroll + offset ); - } else if ( offset + itemHeight > elementHeight ) { - this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); - } - } - }; + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); }, _renderMenu: function(ul, items) { - var currentCategory = ""; - var widget = this; - widget.menu.bindings = $(); + var rMenu = this, + currentCategory = ""; + rMenu.menu.bindings = $(); $.each(items, function(index, item) { - if (item.category && item.category !== currentCategory) { - ul.append("
        • " + categories[item.category] + "
        • "); + var li; + if (item.l !== noResult.l && item.category !== currentCategory) { + ul.append("
        • " + item.category + "
        • "); currentCategory = item.category; } - var li = widget._renderItemData(ul, item); + li = rMenu._renderItemData(ul, item); if (item.category) { - li.attr("aria-label", categories[item.category] + " : " + item.l); + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "resultItem"); } else { li.attr("aria-label", item.l); + li.attr("class", "resultItem"); } - li.attr("class", "result-item"); }); - ul.append(""); }, _renderItem: function(ul, item) { + var label = ""; + if (item.category === catModules) { + label = getHighlightedText(item.l); + } else if (item.category === catPackages) { + label = (item.m) + ? getHighlightedText(item.m + "/" + item.l) + : getHighlightedText(item.l); + } else if (item.category === catTypes) { + label = (item.p) + ? getHighlightedText(item.p + "." + item.l) + : getHighlightedText(item.l); + } else if (item.category === catMembers) { + label = getHighlightedText(item.p + "." + (item.c + "." + item.l)); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l); + } else { + label = item.l; + } var li = $("
        • ").appendTo(ul); var div = $("
          ").appendTo(li); - var label = item.l - ? item.l - : getHighlightedText(item.input, item.boundaries, 0, item.input.length); - var idx = item.indexItem; - if (item.category === "searchTags" && idx && idx.h) { - if (idx.d) { - div.html(label + " (" + idx.h + ")
          " - + idx.d + "
          "); + if (item.category === catSearchTags) { + if (item.d) { + div.html(label + " (" + item.h + ")
          " + + item.d + "
          "); } else { - div.html(label + " (" + idx.h + ")"); + div.html(label + " (" + item.h + ")"); } } else { div.html(label); @@ -380,79 +144,183 @@ $.widget("custom.catcomplete", $.ui.autocomplete, { } }); $(function() { - var expanded = false; - var windowWidth; - function collapse() { - if (expanded) { - $("div#navbar-top").removeAttr("style"); - $("button#navbar-toggle-button") - .removeClass("expanded") - .attr("aria-expanded", "false"); - expanded = false; - } - } - $("button#navbar-toggle-button").click(function (e) { - if (expanded) { - collapse(); - } else { - var navbar = $("div#navbar-top"); - navbar.height(navbar.prop("scrollHeight")); - $("button#navbar-toggle-button") - .addClass("expanded") - .attr("aria-expanded", "true"); - expanded = true; - windowWidth = window.innerWidth; - } - }); - $("ul.sub-nav-list-small li a").click(collapse); - $("input#search-input").focus(collapse); - $("main").click(collapse); - $("section[id] > :header, :header[id], :header:has(a[id])").each(function(idx, el) { - // Create anchor links for headers with an associated id attribute - var hdr = $(el); - var id = hdr.attr("id") || hdr.parent("section").attr("id") || hdr.children("a").attr("id"); - if (id) { - hdr.append(" " + messages.linkIcon +""); - } - }); - $(window).on("orientationchange", collapse).on("resize", function(e) { - if (expanded && windowWidth !== window.innerWidth) collapse(); - }); - var search = $("#search-input"); - var reset = $("#reset-button"); - search.catcomplete({ + $("#search").catcomplete({ minLength: 1, - delay: 200, - source: doSearch, + delay: 100, + source: function(request, response) { + var result = new Array(); + var presult = new Array(); + var tresult = new Array(); + var mresult = new Array(); + var tgresult = new Array(); + var secondaryresult = new Array(); + var displayCount = 0; + var exactMatcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term) + "$", "i"); + camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join("([a-z0-9_$]*?)"); + var camelCaseMatcher = new RegExp("^" + camelCaseRegexp); + secondaryMatcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i"); + + // Return the nested innermost name from the specified object + function nestedName(e) { + return e.l.substring(e.l.lastIndexOf(".") + 1); + } + + function concatResults(a1, a2) { + a1 = a1.concat(a2); + a2.length = 0; + return a1; + } + + if (moduleSearchIndex) { + var mdleCount = 0; + $.each(moduleSearchIndex, function(index, item) { + item.category = catModules; + if (exactMatcher.test(item.l)) { + result.push(item); + mdleCount++; + } else if (camelCaseMatcher.test(item.l)) { + result.push(item); + } else if (secondaryMatcher.test(item.l)) { + secondaryresult.push(item); + } + }); + displayCount = mdleCount; + result = concatResults(result, secondaryresult); + } + if (packageSearchIndex) { + var pCount = 0; + var pkg = ""; + $.each(packageSearchIndex, function(index, item) { + item.category = catPackages; + pkg = (item.m) + ? (item.m + "/" + item.l) + : item.l; + if (exactMatcher.test(item.l)) { + presult.push(item); + pCount++; + } else if (camelCaseMatcher.test(pkg)) { + presult.push(item); + } else if (secondaryMatcher.test(pkg)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(presult, secondaryresult)); + displayCount = (pCount > displayCount) ? pCount : displayCount; + } + if (typeSearchIndex) { + var tCount = 0; + $.each(typeSearchIndex, function(index, item) { + item.category = catTypes; + var s = nestedName(item); + if (exactMatcher.test(s)) { + tresult.push(item); + tCount++; + } else if (camelCaseMatcher.test(s)) { + tresult.push(item); + } else if (secondaryMatcher.test(item.p + "." + item.l)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(tresult, secondaryresult)); + displayCount = (tCount > displayCount) ? tCount : displayCount; + } + if (memberSearchIndex) { + var mCount = 0; + $.each(memberSearchIndex, function(index, item) { + item.category = catMembers; + var s = nestedName(item); + if (exactMatcher.test(s)) { + mresult.push(item); + mCount++; + } else if (camelCaseMatcher.test(s)) { + mresult.push(item); + } else if (secondaryMatcher.test(item.c + "." + item.l)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(mresult, secondaryresult)); + displayCount = (mCount > displayCount) ? mCount : displayCount; + } + if (tagSearchIndex) { + var tgCount = 0; + $.each(tagSearchIndex, function(index, item) { + item.category = catSearchTags; + if (exactMatcher.test(item.l)) { + tgresult.push(item); + tgCount++; + } else if (secondaryMatcher.test(item.l)) { + secondaryresult.push(item); + } + }); + result = result.concat(concatResults(tgresult, secondaryresult)); + displayCount = (tgCount > displayCount) ? tgCount : displayCount; + } + displayCount = (displayCount > 500) ? displayCount : 500; + var counter = function() { + var count = {Modules: 0, Packages: 0, Types: 0, Members: 0, SearchTags: 0}; + var f = function(item) { + count[item.category] += 1; + return (count[item.category] <= displayCount); + }; + return f; + }(); + response(result.filter(counter)); + }, response: function(event, ui) { if (!ui.content.length) { - ui.content.push({ l: messages.noResult }); + ui.content.push(noResult); } else { - $("#search-input").empty(); + $("#search").empty(); } }, autoFocus: true, - focus: function(event, ui) { - return false; - }, position: { collision: "flip" }, select: function(event, ui) { - if (ui.item.indexItem) { - var url = getURL(ui.item.indexItem, ui.item.category); - window.location.href = pathtoroot + url; - $("#search-input").focus(); + if (ui.item.l !== noResult.l) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + if (useModuleDirectories) { + url += "module-summary.html"; + } else { + url = ui.item.l + "-summary.html"; + } + } else if (ui.item.category === catPackages) { + if (ui.item.url) { + url = ui.item.url; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.url) { + url = ui.item.url; + } else if (ui.item.p === "") { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === "") { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.url) { + url += ui.item.url; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search").focus(); } } }); - search.val(''); - search.prop("disabled", false); - reset.prop("disabled", false); - reset.click(function() { - search.val('').focus(); - }); - search.focus(); }); diff --git a/docs/java/stylesheet.css b/docs/java/stylesheet.css index f71489f8..de945eda 100644 --- a/docs/java/stylesheet.css +++ b/docs/java/stylesheet.css @@ -1,76 +1,21 @@ -/* +/* * Javadoc style sheet */ @import url('resources/fonts/dejavu.css'); -/* - * These CSS custom properties (variables) define the core color and font - * properties used in this stylesheet. - */ -:root { - /* body, block and code fonts */ - --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; - --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; - --code-font-family: 'DejaVu Sans Mono', monospace; - /* Base font sizes for body and code elements */ - --body-font-size: 14px; - --code-font-size: 14px; - /* Text colors for body and block elements */ - --body-text-color: #353833; - --block-text-color: #474747; - /* Background colors for various structural elements */ - --body-background-color: #ffffff; - --section-background-color: #f8f8f8; - --detail-background-color: #ffffff; - /* Colors for navigation bar and table captions */ - --navbar-background-color: #4D7A97; - --navbar-text-color: #ffffff; - /* Background color for subnavigation and various headers */ - --subnav-background-color: #dee3e9; - /* Background and text colors for selected tabs and navigation items */ - --selected-background-color: #f8981d; - --selected-text-color: #253441; - --selected-link-color: #1f389c; - /* Background colors for generated tables */ - --even-row-color: #ffffff; - --odd-row-color: #eeeeef; - /* Text color for page title */ - --title-color: #2c4557; - /* Text colors for links */ - --link-color: #4A6782; - --link-color-active: #bb7a2a; - /* Snippet colors */ - --snippet-background-color: #ebecee; - --snippet-text-color: var(--block-text-color); - --snippet-highlight-color: #f7c590; - /* Border colors for structural elements and user defined tables */ - --border-color: #ededed; - --table-border-color: #000000; - /* Search input colors */ - --search-input-background-color: #ffffff; - --search-input-text-color: #000000; - --search-input-placeholder-color: #909090; - /* Highlight color for active search tag target */ - --search-tag-highlight-color: #ffff00; - /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ - --copy-icon-brightness: 100%; - --copy-button-background-color-active: rgba(168, 168, 176, 0.3); - /* Colors for invalid tag notifications */ - --invalid-tag-background-color: #ffe6e6; - --invalid-tag-text-color: #000000; -} /* * Styles for individual HTML elements. * * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular * HTML element throughout the page. */ + body { - background-color:var(--body-background-color); - color:var(--body-text-color); - font-family:var(--body-font-family); - font-size:var(--body-font-size); + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; margin:0; padding:0; height:100%; @@ -86,69 +31,70 @@ iframe { } a:link, a:visited { text-decoration:none; - color:var(--link-color); + color:#4A6782; } a[href]:hover, a[href]:focus { text-decoration:none; - color:var(--link-color-active); + color:#bb7a2a; +} +a[name] { + color:#353833; +} +a[name]:before, a[name]:target, a[id]:before, a[id]:target { + content:""; + display:inline-block; + position:relative; + padding-top:129px; + margin-top:-129px; } pre { - font-family:var(--code-font-family); - font-size:1em; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; } h1 { - font-size:1.428em; + font-size:20px; } h2 { - font-size:1.285em; + font-size:18px; } h3 { - font-size:1.14em; + font-size:16px; + font-style:italic; } h4 { - font-size:1.072em; + font-size:13px; } h5 { - font-size:1.001em; + font-size:12px; } h6 { - font-size:0.93em; -} -/* Disable font boosting for selected elements */ -h1, h2, h3, h4, h5, h6, div.member-signature { - max-height: 1000em; + font-size:11px; } ul { list-style-type:disc; } code, tt { - font-family:var(--code-font-family); -} -:not(h1, h2, h3, h4, h5, h6) > code, -:not(h1, h2, h3, h4, h5, h6) > tt { - font-size:var(--code-font-size); + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; padding-top:4px; margin-top:8px; line-height:1.4em; } dt code { - font-family:var(--code-font-family); - font-size:1em; + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; padding-top:4px; } -.summary-table dt code { - font-family:var(--code-font-family); - font-size:1em; +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; vertical-align:top; padding-top:4px; } sup { font-size:8px; } -button { - font-family: var(--body-font-family); - font-size: 1em; -} + /* * Styles for HTML generated by javadoc. * @@ -158,187 +104,254 @@ button { /* * Styles for document title and copyright. */ -.about-language { +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { float:right; - padding:0 21px 8px 8px; - font-size:0.915em; + padding:0px 21px; + font-size:11px; + z-index:200; margin-top:-9px; - height:2.9em; } -.legal-copy { +.legalCopy { margin-left:.5em; } +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} /* * Styles for navigation bar. */ -@media screen { - div.flex-box { - position:fixed; - display:flex; - flex-direction:column; - height: 100%; - width: 100%; - } - header.flex-header { - flex: 0 0 auto; - } - div.flex-content { - flex: 1 1 auto; - overflow-y: auto; - } -} -.top-nav { - background-color:var(--navbar-background-color); - color:var(--navbar-text-color); +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.navPadding { + padding-top: 107px; +} +.fixedNav { + position:fixed; + width:100%; + z-index:999; + background-color:#ffffff; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; float:left; + padding:0; width:100%; clear:right; - min-height:2.8em; - padding:10px 0 0 0; + height:2.8em; + padding-top:10px; overflow:hidden; - font-size:0.857em; -} -button#navbar-toggle-button { - display:none; + font-size:12px; } -ul.sub-nav-list-small { - display: none; +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; } -.sub-nav { - background-color:var(--subnav-background-color); +.subNav { + background-color:#dee3e9; float:left; width:100%; overflow:hidden; - font-size:0.857em; + font-size:12px; } -.sub-nav div { +.subNav div { clear:left; float:left; - padding:6px; + padding:0 0 5px 6px; text-transform:uppercase; } -.sub-nav .sub-nav-list { - padding-top:4px; -} -ul.nav-list { - display:block; - margin:0 25px 0 0; - padding:0; -} -ul.sub-nav-list { +ul.navList, ul.subNavList { float:left; margin:0 25px 0 0; padding:0; } -ul.nav-list li { +ul.navList li{ list-style:none; float:left; padding: 5px 6px; text-transform:uppercase; } -.sub-nav .nav-list-search { +ul.navListSearch { float:right; - margin:0; - padding:6px; - clear:none; - text-align:right; + margin:0 0 0 0; + padding:0; +} +ul.navListSearch li { + list-style:none; + float:right; + padding: 5px 6px; + text-transform:uppercase; +} +ul.navListSearch li label { position:relative; + right:-16px; } -ul.sub-nav-list li { +ul.subNavList li { list-style:none; float:left; } -.top-nav a:link, .top-nav a:active, .top-nav a:visited { - color:var(--navbar-text-color); +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; text-decoration:none; text-transform:uppercase; } -.top-nav a:hover { - color:var(--link-color-active); +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; } -.nav-bar-cell1-rev { - background-color:var(--selected-background-color); - color:var(--selected-text-color); +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; margin: auto 5px; } -.skip-nav { +.skipNav { position:absolute; top:auto; left:-9999px; overflow:hidden; } /* - * Hide navigation links and search box in print layout + * Styles for page header and footer. */ -@media print { - ul.nav-list, div.sub-nav { - display:none; - } +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexNav { + position:relative; + font-size:12px; + background-color:#dee3e9; +} +.indexNav ul { + margin-top:0; + padding:5px; +} +.indexNav ul li { + display:inline; + list-style-type:none; + padding-right:10px; + text-transform:uppercase; +} +.indexNav h1 { + font-size:13px; } -/* - * Styles for page header. - */ .title { - color:var(--title-color); + color:#2c4557; margin:10px 0; } -.sub-title { +.subTitle { margin:5px 0 0 0; } -ul.contents-list { - margin: 0 0 15px 0; - padding: 0; - list-style: none; +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; } -ul.contents-list li { - font-size:0.93em; +.header ul li, .footer ul li { + list-style:none; + font-size:13px; } /* * Styles for headings. */ -body.class-declaration-page .summary h2, -body.class-declaration-page .details h2, -body.class-use-page h2, -body.module-declaration-page .block-list h2 { - font-style: italic; - padding:0; - margin:15px 0; +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; } -body.class-declaration-page .summary h3, -body.class-declaration-page .details h3, -body.class-declaration-page .summary .inherited-list h2 { - background-color:var(--subnav-background-color); - border:1px solid var(--border-color); +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; margin:0 0 6px -8px; padding:7px 5px; } +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} /* * Styles for page layout containers. */ -main { +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer, +.allClassesContainer, .allPackagesContainer { clear:both; padding:10px 20px; position:relative; } -dl.notes > dt { - font-family: var(--body-font-family); - font-size:0.856em; +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; font-weight:bold; margin:10px 0 0 0; - color:var(--body-text-color); + color:#4E4E4E; } -dl.notes > dd { - margin:5px 10px 10px 0; - font-size:1em; - font-family:var(--block-font-family) +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; } -dl.name-value > dt { +.serializedFormContainer dl.nameValue dt { margin-left:1px; font-size:1.1em; display:inline; font-weight:bold; } -dl.name-value > dd { +.serializedFormContainer dl.nameValue dd { margin:0 0 0 1px; font-size:1.1em; display:inline; @@ -353,310 +366,307 @@ ul.horizontal li { display:inline; font-size:0.9em; } -div.inheritance { +ul.inheritance { margin:0; padding:0; } -div.inheritance div.inheritance { - margin-left:2em; +ul.inheritance li { + display:inline; + list-style:none; } -ul.block-list, -ul.details-list, -ul.member-list, -ul.summary-list { +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { margin:10px 0 10px 0; padding:0; } -ul.block-list > li, -ul.details-list > li, -ul.member-list > li, -ul.summary-list > li { +ul.blockList li.blockList, ul.blockListLast li.blockList { list-style:none; margin-bottom:15px; line-height:1.4; } -ul.ref-list { - padding:0; - margin:0; +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; } -ul.ref-list > li { +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { list-style:none; + border-bottom:none; + padding-bottom:0; } -.summary-table dl, .summary-table dl dt, .summary-table dl dd { +table tr td dl, table tr td dl dt, table tr td dl dd { margin-top:0; margin-bottom:1px; } -ul.tag-list, ul.tag-list-long { - padding-left: 0; - list-style: none; -} -ul.tag-list li { - display: inline; -} -ul.tag-list li:not(:last-child):after, -ul.tag-list-long li:not(:last-child):after -{ - content: ", "; - white-space: pre-wrap; -} -ul.preview-feature-list { - list-style: none; - margin:0; - padding:0.1em; - line-height: 1.6em; -} /* * Styles for tables. */ -.summary-table, .details-table { +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary, +.requiresSummary, .packagesSummary, .providesSummary, .usesSummary { width:100%; border-spacing:0; - border:1px solid var(--border-color); - border-top:0; - padding:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; } -.caption { +.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption, +.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption { position:relative; text-align:left; background-repeat:no-repeat; - color:var(--selected-text-color); + color:#253441; + font-weight:bold; clear:none; overflow:hidden; - padding: 10px 0 0 1px; - margin:0; -} -.caption a:link, .caption a:visited { - color:var(--selected-link-color); + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.constantsSummary caption a:link, .constantsSummary caption a:visited, +.useSummary caption a:link, .useSummary caption a:visited { + color:#1f389c; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.deprecatedSummary caption a:link, +.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link, +.usesSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover, +.usesSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active, +.usesSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.deprecatedSummary caption a:visited, +.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited, +.usesSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span, +.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span, +.usesSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; } -.caption a:hover, -.caption a:active { - color:var(--navbar-text-color); +.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span, +.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; } -.caption span { - font-weight:bold; +.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span, +.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span { white-space:nowrap; - padding:5px 12px 7px 12px; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; display:inline-block; float:left; - background-color:var(--selected-background-color); - border: none; + background-color:#4D7A97; height:16px; } -div.table-tabs { - padding:10px 0 0 1px; - margin:10px 0 0 0; +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab, +.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab, +.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab, +.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; } -div.table-tabs > button { - border: none; - cursor: pointer; - padding: 5px 12px 7px 12px; - font-weight: bold; - margin-right: 8px; -} -div.table-tabs > .active-table-tab { - background: var(--selected-background-color); - color: var(--selected-text-color); -} -div.table-tabs > button.table-tab { - background: var(--navbar-background-color); - color: var(--navbar-text-color); -} -.two-column-search-results { - display: grid; - grid-template-columns: minmax(400px, max-content) minmax(400px, auto); -} -div.checkboxes { - line-height: 2em; -} -div.checkboxes > span { - margin-left: 10px; -} -div.checkboxes > label { - margin-left: 8px; - white-space: nowrap; -} -div.checkboxes > label > input { - margin: 0 2px; -} -.two-column-summary { - display: grid; - grid-template-columns: minmax(25%, max-content) minmax(25%, auto); -} -.three-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); -} -.three-column-release-summary { - display: grid; - grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); -} -.four-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); -} -@media screen and (max-width: 1000px) { - .four-column-summary { - display: grid; - grid-template-columns: minmax(15%, max-content) minmax(15%, auto); - } -} -@media screen and (max-width: 800px) { - .two-column-search-results { - display: grid; - grid-template-columns: minmax(40%, max-content) minmax(40%, auto); - } - .three-column-summary { - display: grid; - grid-template-columns: minmax(10%, max-content) minmax(25%, auto); - } - .three-column-release-summary { - display: grid; - grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) - } - .three-column-summary .col-last, - .three-column-release-summary .col-last{ - grid-column-end: span 2; - } -} -@media screen and (max-width: 600px) { - .two-column-summary { - display: grid; - grid-template-columns: 1fr; - } -} -.summary-table > div, .details-table > div { +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd, +.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd, +.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd, +.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; +} +.rowColor th, .altColor th { + font-weight:normal; +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td, +.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td { text-align:left; - padding: 8px 3px 3px 7px; - overflow-x: auto; - scrollbar-width: thin; + padding:0px 0px 12px 10px; } -.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { +th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th, +.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td, +.constantsSummary td { vertical-align:top; - padding-right:0; + padding-right:0px; padding-top:8px; padding-bottom:3px; } -.table-header { - background:var(--subnav-background-color); - font-weight: bold; -} -/* Sortable table columns */ -.table-header[onclick] { - cursor: pointer; -} -.table-header[onclick]::after { - content:""; - display:inline-block; - background-image:url('data:image/svg+xml; utf8, \ - \ - '); - background-size:100% 100%; - width:9px; - height:14px; - margin-left:4px; - margin-bottom:-3px; -} -.table-header[onclick].sort-asc::after { - background-image:url('data:image/svg+xml; utf8, \ - \ - \ - '); - +th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th, +.packagesSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; } -.table-header[onclick].sort-desc::after { - background-image:url('data:image/svg+xml; utf8, \ - \ - \ - '); +td.colFirst, th.colFirst { + font-size:13px; } -.col-first, .col-first { - font-size:0.93em; +td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast { + font-size:13px; } -.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { - font-size:0.93em; +.constantsSummary th, .packagesSummary th { + font-size:13px; } -.col-first, .col-second, .col-constructor-name { +.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst, +.providesSummary td.colLast { + white-space:normal; + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.requiresSummary td.colFirst, .requiresSummary th.colFirst, +.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th, +.usesSummary td.colFirst, .usesSummary th.colFirst, +.providesSummary td.colFirst, .providesSummary th.colFirst, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName, +.typeSummary td.colFirst, .typeSummary th.colFirst { vertical-align:top; - overflow: auto; } -.col-last { +.packagesSummary th.colLast, .packagesSummary td.colLast { white-space:normal; } -.col-first a:link, .col-first a:visited, -.col-second a:link, .col-second a:visited, -.col-first a:link, .col-first a:visited, -.col-second a:link, .col-second a:visited, -.col-constructor-name a:link, .col-constructor-name a:visited, -.col-summary-item-name a:link, .col-summary-item-name a:visited { +td.colFirst a:link, td.colFirst a:visited, +td.colSecond a:link, td.colSecond a:visited, +th.colFirst a:link, th.colFirst a:visited, +th.colSecond a:link, th.colSecond a:visited, +th.colConstructorName a:link, th.colConstructorName a:visited, +th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, +.constantValuesContainer td a:link, .constantValuesContainer td a:visited, +.allClassesContainer td a:link, .allClassesContainer td a:visited, +.allPackagesContainer td a:link, .allPackagesContainer td a:visited { font-weight:bold; } -.even-row-color, .even-row-color .table-header { - background-color:var(--even-row-color); +.tableSubHeadingColor { + background-color:#EEEEFF; } -.odd-row-color, .odd-row-color .table-header { - background-color:var(--odd-row-color); +.altColor, .altColor th { + background-color:#FFFFFF; +} +.rowColor, .rowColor th { + background-color:#EEEEEF; } /* * Styles for contents. */ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} div.block { - font-size:var(--body-font-size); - font-family:var(--block-font-family); + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; } -.col-last div { - padding-top:0; +td.colLast div { + padding-top:0px; } -.col-last a { +td.colLast a { padding-bottom:3px; } -.module-signature, -.package-signature, -.type-signature, -.member-signature { - font-family:var(--code-font-family); - font-size:1em; - margin:14px 0; - white-space: pre-wrap; -} -.module-signature, -.package-signature, -.type-signature { - margin-top: 0; -} -.member-signature .type-parameters-long, -.member-signature .parameters, -.member-signature .exceptions { - display: inline-block; - vertical-align: top; - white-space: pre; -} -.member-signature .type-parameters { - white-space: normal; -} /* * Styles for formatting effect. */ -.source-line-no { - /* Color of line numbers in source pages can be set via custom property below */ - color:var(--source-linenumber-color, green); +.sourceLineNo { + color:green; padding:0 30px 0 0; } +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} .block { display:block; - margin:0 10px 5px 0; - color:var(--block-text-color); + margin:3px 10px 2px 0px; + color:#474747; } -.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, -.module-label-in-package, .module-label-in-type, .package-label-in-type, -.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { +.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink, +.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType, +.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel, +.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink { font-weight:bold; } -.deprecation-comment, .help-footnote, .preview-comment { +.deprecationComment, .emphasizedPhrase, .interfaceName { font-style:italic; } -.deprecation-block { - font-size:1em; - font-family:var(--block-font-family); +.deprecationBlock { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; border-style:solid; border-width:thin; border-radius:10px; @@ -665,32 +675,67 @@ div.block { margin-right:10px; display:inline-block; } -.preview-block { - font-size:1em; - font-family:var(--block-font-family); - border-style:solid; - border-width:thin; - border-radius:10px; - padding:10px; - margin-bottom:10px; - margin-right:10px; - display:inline-block; -} -div.block div.deprecation-comment { +div.block div.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { font-style:normal; } -details.invalid-tag, span.invalid-tag { - font-size:1em; - font-family:var(--block-font-family); - color: var(--invalid-tag-text-color); - background: var(--invalid-tag-background-color); - border: thin solid var(--table-border-color); - border-radius:2px; - padding: 2px 4px; - display:inline-block; +div.contentContainer ul.blockList li.blockList h2 { + padding-bottom:0px; +} +/* + * Styles for IFRAME. + */ +.mainContainer { + margin:0 auto; + padding:0; + height:100%; + width:100%; + position:fixed; + top:0; + left:0; } -details summary { - cursor: pointer; +.leftContainer { + height:100%; + position:fixed; + width:320px; +} +.leftTop { + position:relative; + float:left; + width:315px; + top:0; + left:0; + height:30%; + border-right:6px solid #ccc; + border-bottom:6px solid #ccc; +} +.leftBottom { + position:relative; + float:left; + width:315px; + bottom:0; + left:0; + height:70%; + border-right:6px solid #ccc; + border-top:1px solid #000; +} +.rightContainer { + position:absolute; + left:320px; + top:0; + bottom:0; + height:100%; + right:0; + border-left:1px solid #000; +} +.rightIframe { + margin:0; + padding:0; + height:100%; + right:30px; + width:100%; + overflow:visible; + margin-bottom:30px; } /* * Styles specific to HTML5 elements. @@ -701,321 +746,90 @@ main, nav, header, footer, section { /* * Styles for javadoc search. */ -.ui-state-active { - /* Overrides the color of selection used in jQuery UI */ - background: var(--selected-background-color); - border: 1px solid var(--selected-background-color); - color: var(--selected-text-color); -} .ui-autocomplete-category { font-weight:bold; font-size:15px; padding:7px 0 7px 3px; - background-color:var(--navbar-background-color); - color:var(--navbar-text-color); + background-color:#4D7A97; + color:#FFFFFF; +} +.resultItem { + font-size:13px; } .ui-autocomplete { max-height:85%; max-width:65%; - overflow-y:auto; - overflow-x:auto; - scrollbar-width: thin; + overflow-y:scroll; + overflow-x:scroll; white-space:nowrap; box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); } ul.ui-autocomplete { position:fixed; - z-index:1; - background-color: var(--body-background-color); + z-index:999999; + background-color: #FFFFFF; } -ul.ui-autocomplete li { +ul.ui-autocomplete li { float:left; clear:both; - min-width:100%; + width:100%; } -ul.ui-autocomplete li.ui-static-link { - position:sticky; - bottom:0; - left:0; - background: var(--subnav-background-color); - padding: 5px 0; - font-family: var(--body-font-family); - font-size: 0.93em; - font-weight: bolder; - z-index: 2; -} -li.ui-static-link a, li.ui-static-link a:visited { - text-decoration:none; - color:var(--link-color); - float:right; - margin-right:20px; +.resultHighlight { + font-weight:bold; } .ui-autocomplete .result-item { font-size: inherit; } -.ui-autocomplete .result-highlight { - font-weight:bold; -} -#search-input, #page-search-input { +#search { background-image:url('resources/glass.png'); background-size:13px; background-repeat:no-repeat; background-position:2px 3px; - background-color: var(--search-input-background-color); - color: var(--search-input-text-color); - border-color: var(--border-color); padding-left:20px; - width: 250px; - margin: 0; -} -#search-input { - margin-left: 4px; + position:relative; + right:-18px; } -#reset-button { - background-color: transparent; +#reset { + background-color: rgb(255,255,255); background-image:url('resources/x.png'); + background-position:center; background-repeat:no-repeat; - background-size:contain; - border:0; - border-radius:0; - width:12px; - height:12px; - position:absolute; - right:12px; - top:10px; - font-size:0; + background-size:12px; + border:0 none; + width:16px; + height:17px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; } -::placeholder { - color:var(--search-input-placeholder-color); - opacity: 1; +.watermark { + color:#545454; } -.search-tag-desc-result { +.searchTagDescResult { font-style:italic; font-size:11px; } -.search-tag-holder-result { +.searchTagHolderResult { font-style:italic; font-size:12px; } -.search-tag-result:target { - background-color:var(--search-tag-highlight-color); -} -details.page-search-details { - display: inline-block; -} -div#result-container { - font-size: 1em; -} -div#result-container a.search-result-link { - padding: 0; - margin: 4px 0; - width: 100%; -} -#result-container .result-highlight { - font-weight:bolder; -} -.page-search-info { - background-color: var(--subnav-background-color); - border-radius: 3px; - border: 0 solid var(--border-color); - padding: 0 8px; - overflow: hidden; - height: 0; - transition: all 0.2s ease; -} -div.table-tabs > button.table-tab { - background: var(--navbar-background-color); - color: var(--navbar-text-color); +.searchTagResult:before, .searchTagResult:target { + color:red; } -.page-search-header { - padding: 5px 12px 7px 12px; - font-weight: bold; - margin-right: 3px; - background-color:var(--navbar-background-color); - color:var(--navbar-text-color); - display: inline-block; -} -button.page-search-header { - border: none; - cursor: pointer; -} -span#page-search-link { - text-decoration: underline; -} -.module-graph span, .sealed-graph span { +.moduleGraph span { display:none; position:absolute; } -.module-graph:hover span, .sealed-graph:hover span { +.moduleGraph:hover span { display:block; margin: -100px 0 0 100px; z-index: 1; } -.inherited-list { - margin: 10px 0 10px 0; -} -section.class-description { - line-height: 1.4; -} -.summary section[class$="-summary"], .details section[class$="-details"], -.class-uses .detail, .serialized-class-details { - padding: 0 20px 5px 10px; - border: 1px solid var(--border-color); - background-color: var(--section-background-color); -} -.inherited-list, section[class$="-details"] .detail { - padding:0 0 5px 8px; - background-color:var(--detail-background-color); - border:none; -} -.vertical-separator { - padding: 0 5px; -} -ul.help-section-list { - margin: 0; -} -ul.help-subtoc > li { - display: inline-block; - padding-right: 5px; - font-size: smaller; -} -ul.help-subtoc > li::before { - content: "\2022" ; - padding-right:2px; -} -.help-note { - font-style: italic; -} -/* - * Indicator icon for external links. - */ -main a[href*="://"]::after { - content:""; - display:inline-block; - background-image:url('data:image/svg+xml; utf8, \ - \ - \ - '); - background-size:100% 100%; - width:7px; - height:7px; - margin-left:2px; - margin-bottom:4px; -} -main a[href*="://"]:hover::after, -main a[href*="://"]:focus::after { - background-image:url('data:image/svg+xml; utf8, \ - \ - \ - '); -} -/* - * Styles for header/section anchor links - */ -a.anchor-link { - opacity: 0; - transition: opacity 0.1s; -} -:hover > a.anchor-link { - opacity: 80%; -} -a.anchor-link:hover, -a.anchor-link:focus-visible, -a.anchor-link.visible { - opacity: 100%; -} -a.anchor-link > img { - width: 0.9em; - height: 0.9em; -} -/* - * Styles for copy-to-clipboard buttons - */ -button.copy { - opacity: 70%; - border: none; - border-radius: 3px; - position: relative; - background:none; - transition: opacity 0.3s; - cursor: pointer; -} -:hover > button.copy { - opacity: 80%; -} -button.copy:hover, -button.copy:active, -button.copy:focus-visible, -button.copy.visible { - opacity: 100%; -} -button.copy img { - position: relative; - background: none; - filter: brightness(var(--copy-icon-brightness)); -} -button.copy:active { - background-color: var(--copy-button-background-color-active); -} -button.copy span { - color: var(--body-text-color); - position: relative; - top: -0.1em; - transition: all 0.1s; - font-size: 0.76rem; - line-height: 1.2em; - opacity: 0; -} -button.copy:hover span, -button.copy:focus-visible span, -button.copy.visible span { - opacity: 100%; -} -/* search page copy button */ -button#page-search-copy { - margin-left: 0.4em; - padding:0.3em; - top:0.13em; -} -button#page-search-copy img { - width: 1.2em; - height: 1.2em; - padding: 0.01em 0; - top: 0.15em; -} -button#page-search-copy span { - color: var(--body-text-color); - line-height: 1.2em; - padding: 0.2em; - top: -0.18em; -} -div.page-search-info:hover button#page-search-copy span { - opacity: 100%; -} -/* snippet copy button */ -button.snippet-copy { - position: absolute; - top: 6px; - right: 6px; - height: 1.7em; - padding: 2px; -} -button.snippet-copy img { - width: 18px; - height: 18px; - padding: 0.05em 0; -} -button.snippet-copy span { - line-height: 1.2em; - padding: 0.2em; - position: relative; - top: -0.5em; -} -div.snippet-container:hover button.snippet-copy span { - opacity: 100%; +.methodSignature { + white-space:normal; } + /* * Styles for user-provided tables. * @@ -1062,211 +876,35 @@ table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > } table.plain { border-collapse: collapse; - border: 1px solid var(--table-border-color); + border: 1px solid black; } table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { background-color: transparent; } table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { - border: 1px solid var(--table-border-color); + border: 1px solid black; } table.striped { border-collapse: collapse; - border: 1px solid var(--table-border-color); + border: 1px solid black; } table.striped > thead { - background-color: var(--subnav-background-color); + background-color: #E3E3E3; } table.striped > thead > tr > th, table.striped > thead > tr > td { - border: 1px solid var(--table-border-color); + border: 1px solid black; } table.striped > tbody > tr:nth-child(even) { - background-color: var(--odd-row-color) + background-color: #EEE } table.striped > tbody > tr:nth-child(odd) { - background-color: var(--even-row-color) + background-color: #FFF } table.striped > tbody > tr > th, table.striped > tbody > tr > td { - border-left: 1px solid var(--table-border-color); - border-right: 1px solid var(--table-border-color); + border-left: 1px solid black; + border-right: 1px solid black; } table.striped > tbody > tr > th { font-weight: normal; } -/** - * Tweak style for small screens. - */ -@media screen and (max-width: 920px) { - header.flex-header { - max-height: 100vh; - overflow-y: auto; - } - div#navbar-top { - height: 2.8em; - transition: height 0.35s ease; - } - ul.nav-list { - display: block; - width: 40%; - float:left; - clear: left; - margin: 10px 0 0 0; - padding: 0; - } - ul.nav-list li { - float: none; - padding: 6px; - margin-left: 10px; - margin-top: 2px; - } - ul.sub-nav-list-small { - display:block; - height: 100%; - width: 50%; - float: right; - clear: right; - background-color: var(--subnav-background-color); - color: var(--body-text-color); - margin: 6px 0 0 0; - padding: 0; - } - ul.sub-nav-list-small ul { - padding-left: 20px; - } - ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { - color:var(--link-color); - } - ul.sub-nav-list-small a:hover { - color:var(--link-color-active); - } - ul.sub-nav-list-small li { - list-style:none; - float:none; - padding: 6px; - margin-top: 1px; - text-transform:uppercase; - } - ul.sub-nav-list-small > li { - margin-left: 10px; - } - ul.sub-nav-list-small li p { - margin: 5px 0; - } - div#navbar-sub-list { - display: none; - } - .top-nav a:link, .top-nav a:active, .top-nav a:visited { - display: block; - } - button#navbar-toggle-button { - width: 3.4em; - height: 2.8em; - background-color: transparent; - display: block; - float: left; - border: 0; - margin: 0 10px; - cursor: pointer; - font-size: 10px; - } - button#navbar-toggle-button .nav-bar-toggle-icon { - display: block; - width: 24px; - height: 3px; - margin: 1px 0 4px 0; - border-radius: 2px; - transition: all 0.1s; - background-color: var(--navbar-text-color); - } - button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { - transform: rotate(45deg); - transform-origin: 10% 10%; - width: 26px; - } - button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { - opacity: 0; - } - button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { - transform: rotate(-45deg); - transform-origin: 10% 90%; - width: 26px; - } -} -@media screen and (max-width: 800px) { - .about-language { - padding-right: 16px; - } - ul.nav-list li { - margin-left: 5px; - } - ul.sub-nav-list-small > li { - margin-left: 5px; - } - main { - padding: 10px; - } - .summary section[class$="-summary"], .details section[class$="-details"], - .class-uses .detail, .serialized-class-details { - padding: 0 8px 5px 8px; - } - body { - -webkit-text-size-adjust: none; - } -} -@media screen and (max-width: 400px) { - .about-language { - font-size: 10px; - padding-right: 12px; - } -} -@media screen and (max-width: 400px) { - .nav-list-search { - width: 94%; - } - #search-input, #page-search-input { - width: 70%; - } -} -@media screen and (max-width: 320px) { - .nav-list-search > label { - display: none; - } - .nav-list-search { - width: 90%; - } - #search-input, #page-search-input { - width: 80%; - } -} - -pre.snippet { - background-color: var(--snippet-background-color); - color: var(--snippet-text-color); - padding: 10px; - margin: 12px 0; - overflow: auto; - white-space: pre; -} -div.snippet-container { - position: relative; -} -@media screen and (max-width: 800px) { - pre.snippet { - padding-top: 26px; - } - button.snippet-copy { - top: 4px; - right: 4px; - } -} -pre.snippet .italic { - font-style: italic; -} -pre.snippet .bold { - font-weight: bold; -} -pre.snippet .highlighted { - background-color: var(--snippet-highlight-color); - border-radius: 10%; -} diff --git a/docs/java/type-search-index.js b/docs/java/type-search-index.js index c0a46319..373d08da 100644 --- a/docs/java/type-search-index.js +++ b/docs/java/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.spotify.voyager.jni","l":"Index"},{"p":"com.spotify.voyager.jni.utils","l":"JniLibExtractor"},{"p":"com.spotify.voyager.jni","l":"Index.QueryResults"},{"p":"com.spotify.voyager.jni","l":"StringIndex.QueryResults"},{"p":"com.spotify.voyager.jni","l":"Index.SpaceType"},{"p":"com.spotify.voyager.jni","l":"Index.StorageDataType"},{"p":"com.spotify.voyager.jni","l":"StringIndex"},{"p":"com.spotify.voyager.jni.utils","l":"TinyJson"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [{"l":"All Classes","url":"allclasses-index.html"},{"p":"com.spotify.voyager.jni","l":"Index"},{"p":"com.spotify.voyager.jni.utils","l":"JniLibExtractor"},{"p":"com.spotify.voyager.jni","l":"Index.QueryResults"},{"p":"com.spotify.voyager.jni","l":"StringIndex.QueryResults"},{"p":"com.spotify.voyager.jni","l":"Index.SpaceType"},{"p":"com.spotify.voyager.jni","l":"Index.StorageDataType"},{"p":"com.spotify.voyager.jni","l":"StringIndex"},{"p":"com.spotify.voyager.jni.utils","l":"TinyJson"}] \ No newline at end of file diff --git a/docs/java/type-search-index.zip b/docs/java/type-search-index.zip index a9ea39ac24199c7888d73100f699725ba59dbc45..02950ebde0cf71790afc00669f677bcfd6d52d6f 100644 GIT binary patch delta 30 icmX@WbbyI3z?+#xgn@&DgMp`xF>)f`6BaQ2%?kiynFoOY delta 30 icmX@WbbyI3z?+#xgn@&DgTcKwFnl846BaQ2%?ki;R|v5H diff --git a/java/com_spotify_voyager_jni_Index.cpp b/java/com_spotify_voyager_jni_Index.cpp index 68ea60c0..a2fdbdc4 100644 --- a/java/com_spotify_voyager_jni_Index.cpp +++ b/java/com_spotify_voyager_jni_Index.cpp @@ -750,8 +750,6 @@ void Java_com_spotify_voyager_jni_Index_saveIndex__Ljava_io_OutputStream_2( } } -// TODO: Add asBytes - //////////////////////////////////////////////////////////////////////////////////////////////////// // Load Index //////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/java/src/main/java/com/spotify/voyager/jni/Index.java b/java/src/main/java/com/spotify/voyager/jni/Index.java index 7e85c84a..f9f7ad9c 100644 --- a/java/src/main/java/com/spotify/voyager/jni/Index.java +++ b/java/src/main/java/com/spotify/voyager/jni/Index.java @@ -21,6 +21,7 @@ package com.spotify.voyager.jni; import com.spotify.voyager.jni.utils.JniLibExtractor; +import java.io.ByteArrayOutputStream; import java.io.Closeable; import java.io.IOException; import java.io.InputStream; @@ -418,6 +419,18 @@ private native void nativeLoadFromInputStreamWithParameters( */ public native void saveIndex(OutputStream outputStream); + /** + * Returns the contents of this index as an array of bytes. The resulting bytes will contain the + * same data as if this index was serialized to disk and then read back into memory again. + * + * @return A {@link byte} array representing the contents of the index + */ + public byte[] asBytes() { + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + saveIndex(byteArrayOutputStream); + return byteArrayOutputStream.toByteArray(); + } + /** * Add an item (a vector) to this {@link Index}. The item will automatically be given an * identifier equal to the return value of {@link Index#getNumElements()}. diff --git a/java/src/test/java/com/spotify/voyager/jni/IndexTest.java b/java/src/test/java/com/spotify/voyager/jni/IndexTest.java index 60f88dec..8963b6b2 100644 --- a/java/src/test/java/com/spotify/voyager/jni/IndexTest.java +++ b/java/src/test/java/com/spotify/voyager/jni/IndexTest.java @@ -241,6 +241,10 @@ private void runTestWith( index.saveIndex(outputStream); assertTrue(outputStream.size() > 0); + byte[] indexAsBytes = index.asBytes(); + assertTrue(indexAsBytes.length > 0); + assertTrue(Arrays.equals(indexAsBytes, outputStream.toByteArray())); + // Recreate the index from the outputStream alone and ensure queries still work: try (Index reloadedIndex = Index.load(new ByteArrayInputStream(outputStream.toByteArray()))) { // TODO: Add ef to the set of metadata parameters that gets saved along with the index: From a4902b823cd7519273040d184af32eee80f6a59e Mon Sep 17 00:00:00 2001 From: Mark Koh Date: Tue, 20 Aug 2024 11:27:52 -0600 Subject: [PATCH 38/52] C++ improvements (#63) * Refactor cpp structure * Start to add tests * Try to clean up my mess a bit. Also add PR template * Clean up documentation and got tests running * Uncomment the other tests but they failing right now * Fix java and python cpp src paths * Improve formatting strategy * Run C++ formatter * Add .clang-format to root for CI * Update clang-format action container * Fix find command * Start to replace Catch2 with doctest. Dummy test only * Remove commented test code until namespacing is implemented * Add some actual doctest tests * Use doctest and add combination var checks * Add c++ tests to github workflows * Fix rebase error * Update javadoc * Undo docs changes for cleaner PR * Add EOF EOL * Revert cpp spacing to 80 for cleaner PR * Fix TypedIndex rebase * Add c++ tests to github actions * Add build dir for cmake * Fix windows tests --- .clang-format | 1 + .github/pull_request_template.md | 36 ++++++ .github/workflows/all.yml | 34 +++++- .gitignore | 19 ++- .gitmodules | 3 + CONTRIBUTING.md | 176 ++++++++++++++-------------- cpp/.clang-format | 8 ++ cpp/CMakeLists.txt | 29 +++++ cpp/Makefile | 15 +++ cpp/build/.gitkeep | 0 cpp/include/CMakeLists.txt | 6 + cpp/include/doctest | 1 + cpp/src/CMakeLists.txt | 6 + cpp/{ => src}/E4M3.h | 1 + cpp/{ => src}/Enums.h | 14 ++- cpp/{ => src}/Index.h | 0 cpp/{ => src}/Metadata.h | 2 +- cpp/{ => src}/Spaces/Euclidean.h | 0 cpp/{ => src}/Spaces/InnerProduct.h | 0 cpp/{ => src}/Spaces/Space.h | 0 cpp/{ => src}/StreamUtils.h | 2 +- cpp/{ => src}/TypedIndex.h | 2 +- cpp/{ => src}/array_utils.h | 2 +- cpp/{ => src}/hnswalg.h | 0 cpp/{ => src}/hnswlib.h | 0 cpp/{ => src}/std_utils.h | 2 +- cpp/{ => src}/visited_list_pool.h | 0 cpp/test/.gitignore | 2 + cpp/test/CMakeLists.txt | 18 +++ cpp/test/doctest_setup.cpp | 2 + cpp/test/test_main.cpp | 53 +++++++++ java/JavaInputStream.h | 2 +- java/JavaOutputStream.h | 2 +- java/Makefile | 2 +- python/setup.py | 2 +- python/src/PythonFileLike.h | 2 +- python/src/PythonInputStream.h | 2 +- python/src/PythonOutputStream.h | 2 +- python/test-requirements.txt | 2 +- python/tox.ini | 3 - python/typenames.h | 2 +- python/voyager-headers | 1 - 42 files changed, 344 insertions(+), 112 deletions(-) create mode 120000 .clang-format create mode 100644 .github/pull_request_template.md create mode 100644 .gitmodules create mode 100644 cpp/.clang-format create mode 100644 cpp/CMakeLists.txt create mode 100644 cpp/Makefile create mode 100644 cpp/build/.gitkeep create mode 100644 cpp/include/CMakeLists.txt create mode 160000 cpp/include/doctest create mode 100644 cpp/src/CMakeLists.txt rename cpp/{ => src}/E4M3.h (99%) rename cpp/{ => src}/Enums.h (83%) rename cpp/{ => src}/Index.h (100%) rename cpp/{ => src}/Metadata.h (99%) rename cpp/{ => src}/Spaces/Euclidean.h (100%) rename cpp/{ => src}/Spaces/InnerProduct.h (100%) rename cpp/{ => src}/Spaces/Space.h (100%) rename cpp/{ => src}/StreamUtils.h (99%) rename cpp/{ => src}/TypedIndex.h (99%) rename cpp/{ => src}/array_utils.h (99%) rename cpp/{ => src}/hnswalg.h (100%) rename cpp/{ => src}/hnswlib.h (100%) rename cpp/{ => src}/std_utils.h (99%) rename cpp/{ => src}/visited_list_pool.h (100%) create mode 100644 cpp/test/.gitignore create mode 100644 cpp/test/CMakeLists.txt create mode 100644 cpp/test/doctest_setup.cpp create mode 100644 cpp/test/test_main.cpp delete mode 120000 python/voyager-headers diff --git a/.clang-format b/.clang-format new file mode 120000 index 00000000..aefd1079 --- /dev/null +++ b/.clang-format @@ -0,0 +1 @@ +cpp/.clang-format \ No newline at end of file diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..89ce7c24 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,36 @@ +## Description + + +## Related Issues + + +## Changes Made + + +### C++ + + +### Python + + +### Java + + +## Testing + + +## Checklist + + +- [ ] My code follows the code style of this project. +- [ ] I have added and/or updated appropriate documentation (if applicable). +- [ ] All new and existing tests pass locally with these changes. +- [ ] I have run static code analysis (if available) and resolved any issues. +- [ ] I have considered backward compatibility (if applicable). +- [ ] I have confirmed that this PR does not introduce any security vulnerabilities. + +## Additional Comments + diff --git a/.github/workflows/all.yml b/.github/workflows/all.yml index 02a292d6..505e2fc0 100644 --- a/.github/workflows/all.yml +++ b/.github/workflows/all.yml @@ -39,8 +39,38 @@ jobs: - name: Check C++ Formatting uses: jidicula/clang-format-action@v4.13.0 with: - clang-format-version: 14 - fallback-style: LLVM + clang-format-version: 16 + + run-cpp-tests: + runs-on: ${{ matrix.os }} + continue-on-error: true + defaults: + run: + working-directory: cpp + strategy: + matrix: + # TODO: Switch back to macos-latest once https://github.com/actions/python-versions/pull/114 is fixed + os: + - 'ubuntu-latest' + - windows-latest + - macos-12 + name: Test C++ on ${{ matrix.os }} + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + - name: Install CMake (Windows) + if: matrix.os == 'windows-latest' + run: | + choco install cmake --installargs 'ADD_CMAKE_TO_PATH=System' + - name: Install CMake (MacOS) + if: matrix.os == 'macos-12' + run: brew install cmake + - name: Install CMake (Ubuntu) + if: matrix.os == 'ubuntu-latest' + run: sudo apt-get install -y cmake + - name: Run tests + run: make test run-java-tests: continue-on-error: true diff --git a/.gitignore b/.gitignore index c4935192..f5287bce 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ *.egg-info/ -build/ +*/build/* +!build/.gitkeep dist/ tmp/ __pycache__/ @@ -18,3 +19,19 @@ java/classpath.txt java/linux-build/include/* python/voyager-headers .asv/ + +# Cmake +CMakeLists.txt.user +CMakeCache.txt +CMakeFiles +CMakeScripts +Testing +Makefile +!cpp/Makefile +cmake_install.cmake +install_manifest.txt +compile_commands.json +CTestTestfile.cmake +_deps +DartConfiguration.tcl +VoyagerTests diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..ad8e9471 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "cpp/include/doctest"] + path = cpp/include/doctest + url = git@github.com:doctest/doctest.git diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c4c28b8b..2ef187e9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,38 +1,47 @@ # How to Contribute - We'd love to get patches from you! -## Getting Started +#### Workflow +We follow the [GitHub Flow Workflow](https://guides.github.com/introduction/flow/): -### Prerequisites +1. Fork the project +1. Check out the `master` branch +1. Create a feature branch +1. Write code and tests for your change +1. From your branch, make a pull request against `https://github.com/spotify/voyager` +1. Work with repo maintainers to get your change reviewed +1. Wait for your change to be pulled into `https://github.com/spotify/voyager/master` +1. Delete your feature branch +## Getting Started +### Prerequisites To compile Voyager from scratch, the following packages will need to be installed: - [Python 3.7](https://www.python.org/downloads/) or higher. - A C++ compiler, e.g. `gcc`, `clang`, etc. ### Building Voyager +#### Building Python +There are some nuances to building the Voyager python code. Please read on for more information. +For basic building, you should be able to simply run the following commands: ```shell -git clone git@github.com:spotify/voyager.git -cd voyager -pip3 install -r python/dev-requirements.txt -pip3 install . +cd python +pip install -r python/dev-requirements.txt +pip install . ``` To compile a debug build of `voyager` that allows using a debugger (like gdb or lldb), use the following command to build the package locally and install a symbolic link for debugging: ```shell cd python -DEBUG=1 python3 setup.py build develop +DEBUG=1 python setup.py build develop ``` -Then, you can `import voyager` from Python (or run the tests with `tox`) to test out your local changes. - > If you're on macOS or Linux, you can try to compile a debug build _faster_ by using [Ccache](https://ccache.dev/): > ## macOS > ```shell > brew install ccache -> rm -rf build && CC="ccache clang" CXX="ccache clang++" DEBUG=1 python3 -j8 -m pip install -e . +> rm -rf build && CC="ccache clang" CXX="ccache clang++" DEBUG=1 python -j8 -m pip install -e . > ``` > ## Linux > e.g. @@ -40,52 +49,33 @@ Then, you can `import voyager` from Python (or run the tests with `tox`) to test > sudo yum install ccache # or apt, if on a Debian > > # If using GCC: -> rm -rf build && CC="ccache gcc" CXX="scripts/ccache_g++" DEBUG=1 python3 setup.py build -j8 develop +> rm -rf build && CC="ccache gcc" CXX="scripts/ccache_g++" DEBUG=1 python setup.py build -j8 develop > > # ...or if using Clang: -> rm -rf build && CC="ccache clang" CXX="scripts/ccache_clang++" DEBUG=1 python3 setup.py build -j8 develop +> rm -rf build && CC="ccache clang" CXX="scripts/ccache_clang++" DEBUG=1 python setup.py build -j8 develop > ``` -### Updating Documentation -If you notice that the documentation is out of date, feel free to run these commands in order to update the docs and make a PR with the changes. - -#### Python -While `voyager` is mostly C++ code, it ships with `.pyi` files to allow for type hints in text editors and via MyPy. To update the Python type hint files, use the following commands: - -```shell -cd python -python3 -m scripts.generate_type_stubs_and_docs -# Documentation will be dumped into ../docs/python/ -``` - -#### Java -To update the javadocs for the java bindings, you can simply run: - +#### Building Java +To build the Java library with `maven`, use the following commands: ```shell cd java mvn package ``` -this will update the java documentation located in [docs/java/](https://github.com/spotify/voyager/tree/main/docs/java). - -## Workflow - -We follow the [GitHub Flow Workflow](https://guides.github.com/introduction/flow/): - -1. Fork the project -1. Check out the `master` branch -1. Create a feature branch -1. Write code and tests for your change -1. From your branch, make a pull request against `https://github.com/spotify/voyager` -1. Work with repo maintainers to get your change reviewed -1. Wait for your change to be pulled into `https://github.com/spotify/voyager/master` -1. Delete your feature branch +#### Building C++ +To build the C++ library with `cmake`, use the following commands: +```shell +cd cpp +git submodule update --init --recursive +make build +``` ## Testing - +### Python Tests We use `tox` for testing - running tests from end-to-end should be as simple as: ``` +cd python pip3 install tox tox ``` @@ -110,10 +100,26 @@ asv continuous --sort name --no-only-changed HEAD main Please note that `airspeed-velocity` can only run benchmarks against a git commit, so if you have uncommited code that you want to run benchmarks for you need to commit it first. -## Style +### Java Tests +We provide java test execution as a maven test step. Thus you can run the tests with: +```shell +cd java +mvn verify +``` + +### C++ Tests +To run the C++ tests, use the following commands: +```shell +cd cpp +git submodule update --init --recursive +make test +``` + +## Style Use [`clang-format`](https://clang.llvm.org/docs/ClangFormat.html) for C++ code, and `black` with defaults for Python code. +### Python In order to check and run formatting within the python module, you can use tox to facilitate this. ```bash cd python @@ -123,8 +129,43 @@ tox -e check-formatting tox -e format ``` -## Issues +### C++ +If you are working on any C++ code throughout the repo, ensure you have `clang-format` (version 16) installed, and then use clang-format to handle C++ formatting: +```bash +cd cpp +cmake . +# Check formatting only (don't change files) +make check-formatting +# Run formatter +make format +``` + +### Updating Documentation +We also welcome improvements to the project documentation or to the existing +docs. Please file an [issue](https://github.com/spotify/voyager/issues/new). + +If you notice that the generated API documentation is out of date, feel free to run these commands in order to update the docs and make a PR with the changes. + +#### Python +While `voyager` is mostly C++ code, it ships with `.pyi` files to allow for type hints in text editors and via MyPy. To update the Python type hint files, use the following commands: + +```shell +cd python +python3 -m scripts.generate_type_stubs_and_docs +# Documentation will be dumped into ../docs/python/ +``` + +#### Java +To update the javadocs for the java bindings, you can simply run: + +```shell +cd java +mvn package +``` +This will update the java documentation located in [docs/java/](https://github.com/spotify/voyager/tree/main/docs/java). + +## Issues When creating an issue please try to ahere to the following format: One line summary of the issue (less than 72 characters) @@ -141,47 +182,7 @@ When creating an issue please try to ahere to the following format: List all relevant steps to reproduce the observed behaviour. -## Pull Requests - -Files should be exempt of trailing spaces. - -We adhere to a specific format for commit messages. Please write your commit -messages along these guidelines. Please keep the line width no greater than 80 -columns (You can use `fmt -n -p -w 80` to accomplish this). - - One line description of your change (less than 72 characters) - - Problem - - Explain the context and why you're making that change. What is the problem - you're trying to solve? In some cases there is not a problem and this can be - thought of being the motivation for your change. - - Solution - - Describe the modifications you've done. - - Result - - What will change as a result of your pull request? Note that sometimes this - section is unnecessary because it is self-explanatory based on the solution. - -Some important notes regarding the summary line: - -* Describe what was done; not the result -* Use the active voice -* Use the present tense -* Capitalize properly -* Do not end in a period — this is a title/subject -* Prefix the subject with its scope - -## Documentation - -We also welcome improvements to the project documentation or to the existing -docs. Please file an [issue](https://github.com/spotify/voyager/issues/new). - ## First Contributions - If you are a first time contributor to `voyager`, familiarize yourself with the: * [Code of Conduct](CODE_OF_CONDUCT.md) * [GitHub Flow Workflow](https://guides.github.com/introduction/flow/) @@ -192,20 +193,15 @@ When you're ready, navigate to [issues](https://github.com/spotify/voyager/issue There is a lot to learn when making your first contribution. As you gain experience, you will be able to make contributions faster. You can submit an issue using the [question](https://github.com/spotify/voyager/labels/question) label if you encounter challenges. # License - By contributing your code, you agree to license your contribution under the terms of the [LICENSE](https://github.com/spotify/voyager/blob/master/LICENSE). # Code of Conduct - Read our [Code of Conduct](CODE_OF_CONDUCT.md) for the project. # Troubleshooting - ## Building the project - ### `ModuleNotFoundError: No module named 'pybind11'` - Try updating your version of `pip`: ```shell pip install --upgrade pip diff --git a/cpp/.clang-format b/cpp/.clang-format new file mode 100644 index 00000000..94f0987d --- /dev/null +++ b/cpp/.clang-format @@ -0,0 +1,8 @@ +--- +BasedOnStyle: LLVM +IndentWidth: 2 +InsertNewlineAtEOF: true +--- +Language: Cpp +# Use 120 columns since we have big screens now +ColumnLimit: 80 diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt new file mode 100644 index 00000000..720f3d43 --- /dev/null +++ b/cpp/CMakeLists.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 3.20) +project(Voyager) + +set(CMAKE_CXX_STANDARD 17) +set(LLVM_CXX_STD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +enable_testing() + +add_subdirectory(include) +add_subdirectory(src) +add_subdirectory(test) + +# Define our find command with any appropriate directory exclusions (add another with `-o -path -prune`) +set(FIND_COMMAND find .. -path ../cpp/include -prune -o -path ../cpp/CMakeFiles -prune -o -path ../python/.tox -prune -o -name "*.cpp" -print -o -name "*.h" -type f -print) +set(CHECK_FORMAT_COMMAND clang-format --verbose --dry-run -i) +set(FORMAT_COMMAND clang-format --verbose -i) + +# Check formatting only +add_custom_target(check-formatting + COMMAND ${CHECK_FORMAT_COMMAND} `${FIND_COMMAND}` + COMMENT "Checking C++ formatting" +) + +# Run formatter +add_custom_target(format + COMMAND ${FORMAT_COMMAND} `${FIND_COMMAND}` + COMMENT "Running C++ formatter" +) diff --git a/cpp/Makefile b/cpp/Makefile new file mode 100644 index 00000000..62b1dc73 --- /dev/null +++ b/cpp/Makefile @@ -0,0 +1,15 @@ +default_target: build + +BUILD_DIR := build + +cmake: + cmake -S . -B $(BUILD_DIR) + +build: cmake + cmake --build ${BUILD_DIR} + +test: build + ctest --test-dir ${BUILD_DIR} + +clean: + rm -rf ${BUILD_DIR}/* \ No newline at end of file diff --git a/cpp/build/.gitkeep b/cpp/build/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/cpp/include/CMakeLists.txt b/cpp/include/CMakeLists.txt new file mode 100644 index 00000000..7c5b1f26 --- /dev/null +++ b/cpp/include/CMakeLists.txt @@ -0,0 +1,6 @@ + +add_library(doctest INTERFACE) +target_include_directories(doctest + INTERFACE + doctest/doctest +) diff --git a/cpp/include/doctest b/cpp/include/doctest new file mode 160000 index 00000000..ae7a1353 --- /dev/null +++ b/cpp/include/doctest @@ -0,0 +1 @@ +Subproject commit ae7a13539fb71f270b87eb2e874fbac80bc8dda2 diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt new file mode 100644 index 00000000..28724010 --- /dev/null +++ b/cpp/src/CMakeLists.txt @@ -0,0 +1,6 @@ +add_library(VoyagerLib INTERFACE) +target_include_directories(VoyagerLib + INTERFACE + . + Spaces +) diff --git a/cpp/E4M3.h b/cpp/src/E4M3.h similarity index 99% rename from cpp/E4M3.h rename to cpp/src/E4M3.h index 37f6b523..ed241efd 100644 --- a/cpp/E4M3.h +++ b/cpp/src/E4M3.h @@ -21,6 +21,7 @@ #pragma once #include +#include static constexpr float ALL_E4M3_VALUES[256] = { 0, diff --git a/cpp/Enums.h b/cpp/src/Enums.h similarity index 83% rename from cpp/Enums.h rename to cpp/src/Enums.h index 95d11b74..b0f3377c 100644 --- a/cpp/Enums.h +++ b/cpp/src/Enums.h @@ -1,5 +1,7 @@ #pragma once +#include + /** * The space (i.e. distance metric) to use for searching. */ @@ -47,4 +49,14 @@ inline const std::string toString(SpaceType space) { default: return "Unknown space type (value " + std::to_string((int)space) + ")"; } -} \ No newline at end of file +} + +std::ostream &operator<<(std::ostream &os, const SpaceType space) { + os << toString(space); + return os; +} + +std::ostream &operator<<(std::ostream &os, const StorageDataType sdt) { + os << toString(sdt); + return os; +} diff --git a/cpp/Index.h b/cpp/src/Index.h similarity index 100% rename from cpp/Index.h rename to cpp/src/Index.h diff --git a/cpp/Metadata.h b/cpp/src/Metadata.h similarity index 99% rename from cpp/Metadata.h rename to cpp/src/Metadata.h index 0032346b..feaced34 100644 --- a/cpp/Metadata.h +++ b/cpp/src/Metadata.h @@ -139,4 +139,4 @@ loadFromStream(std::shared_ptr inputStream) { }; } // namespace Metadata -}; // namespace voyager \ No newline at end of file +}; // namespace voyager diff --git a/cpp/Spaces/Euclidean.h b/cpp/src/Spaces/Euclidean.h similarity index 100% rename from cpp/Spaces/Euclidean.h rename to cpp/src/Spaces/Euclidean.h diff --git a/cpp/Spaces/InnerProduct.h b/cpp/src/Spaces/InnerProduct.h similarity index 100% rename from cpp/Spaces/InnerProduct.h rename to cpp/src/Spaces/InnerProduct.h diff --git a/cpp/Spaces/Space.h b/cpp/src/Spaces/Space.h similarity index 100% rename from cpp/Spaces/Space.h rename to cpp/src/Spaces/Space.h diff --git a/cpp/StreamUtils.h b/cpp/src/StreamUtils.h similarity index 99% rename from cpp/StreamUtils.h rename to cpp/src/StreamUtils.h index c3d74148..d76c2ec4 100644 --- a/cpp/StreamUtils.h +++ b/cpp/src/StreamUtils.h @@ -177,4 +177,4 @@ static void readBinaryPOD(std::shared_ptr in, T &podRef) { " bytes from stream! Got " + std::to_string(bytesRead) + "."); } -} \ No newline at end of file +} diff --git a/cpp/TypedIndex.h b/cpp/src/TypedIndex.h similarity index 99% rename from cpp/TypedIndex.h rename to cpp/src/TypedIndex.h index e8905e4e..63066a40 100644 --- a/cpp/TypedIndex.h +++ b/cpp/src/TypedIndex.h @@ -760,4 +760,4 @@ std::unique_ptr loadTypedIndexFromStream(std::shared_ptr inputStream) { return loadTypedIndexFromMetadata( voyager::Metadata::loadFromStream(inputStream), inputStream); -} \ No newline at end of file +} diff --git a/cpp/array_utils.h b/cpp/src/array_utils.h similarity index 99% rename from cpp/array_utils.h rename to cpp/src/array_utils.h index 2e497a99..7c2a7556 100644 --- a/cpp/array_utils.h +++ b/cpp/src/array_utils.h @@ -308,4 +308,4 @@ template vec) { return toFloatVectorString(vec.data(), vec.size()); -} \ No newline at end of file +} diff --git a/cpp/hnswalg.h b/cpp/src/hnswalg.h similarity index 100% rename from cpp/hnswalg.h rename to cpp/src/hnswalg.h diff --git a/cpp/hnswlib.h b/cpp/src/hnswlib.h similarity index 100% rename from cpp/hnswlib.h rename to cpp/src/hnswlib.h diff --git a/cpp/std_utils.h b/cpp/src/std_utils.h similarity index 99% rename from cpp/std_utils.h rename to cpp/src/std_utils.h index 9486c9db..26caf55b 100644 --- a/cpp/std_utils.h +++ b/cpp/src/std_utils.h @@ -139,4 +139,4 @@ void mergePriorityQueues( while (dest.size() > maxElements) dest.pop(); -} \ No newline at end of file +} diff --git a/cpp/visited_list_pool.h b/cpp/src/visited_list_pool.h similarity index 100% rename from cpp/visited_list_pool.h rename to cpp/src/visited_list_pool.h diff --git a/cpp/test/.gitignore b/cpp/test/.gitignore new file mode 100644 index 00000000..5301e597 --- /dev/null +++ b/cpp/test/.gitignore @@ -0,0 +1,2 @@ +test +test-*.cmake \ No newline at end of file diff --git a/cpp/test/CMakeLists.txt b/cpp/test/CMakeLists.txt new file mode 100644 index 00000000..a46805c1 --- /dev/null +++ b/cpp/test/CMakeLists.txt @@ -0,0 +1,18 @@ +# List the test source files +set(TEST_FILES test_main.cpp doctest_setup.cpp) # Add any test files here + +# Create an executable for the tests +add_executable(VoyagerTests ${TEST_FILES}) + +# Link the test executable with the main project and Doctest +# target_link_libraries(MyProjectTests PRIVATE MyProject doctest::doctest) +target_link_libraries(VoyagerTests + PUBLIC + VoyagerLib + PRIVATE + doctest +) + +# Discover tests using Doctest +include(${CMAKE_SOURCE_DIR}/include/doctest/scripts/cmake/doctest.cmake) +doctest_discover_tests(VoyagerTests) diff --git a/cpp/test/doctest_setup.cpp b/cpp/test/doctest_setup.cpp new file mode 100644 index 00000000..a3f832e4 --- /dev/null +++ b/cpp/test/doctest_setup.cpp @@ -0,0 +1,2 @@ +#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN +#include "doctest.h" diff --git a/cpp/test/test_main.cpp b/cpp/test/test_main.cpp new file mode 100644 index 00000000..dbfa5dc1 --- /dev/null +++ b/cpp/test/test_main.cpp @@ -0,0 +1,53 @@ +#include "doctest.h" + +#include "TypedIndex.h" +#include +#include + +template > +void testCombination(TypedIndex &index, + SpaceType spaceType, int numDimensions, + StorageDataType storageType) { + CHECK(toString(index.getSpace()) == toString(spaceType)); + CHECK(index.getNumDimensions() == numDimensions); + CHECK(toString(index.getStorageDataType()) == toString(storageType)); +} + +TEST_CASE("Test combinations of different instantiations and sizes") { + std::vector spaceTypesSet = {SpaceType::Euclidean, + SpaceType::InnerProduct}; + std::vector numDimensionsSet = {4, 16, 128, 1024}; + std::vector numElementsSet = {100, 1000, 100000}; + std::vector storageTypesSet = { + StorageDataType::Float8, StorageDataType::Float32, StorageDataType::E4M3}; + + auto count = 0; + + for (auto spaceType : spaceTypesSet) { + for (auto numDimensions : numDimensionsSet) { + for (auto numElements : numElementsSet) { + for (auto storageType : storageTypesSet) { + SUBCASE("Test instantiation ") { + CAPTURE(spaceType); + CAPTURE(numDimensions); + CAPTURE(numElements); + CAPTURE(storageType); + + if (storageType == StorageDataType::Float8) { + auto index = TypedIndex>( + spaceType, numDimensions); + testCombination(index, spaceType, numDimensions, storageType); + } else if (storageType == StorageDataType::Float32) { + auto index = TypedIndex(spaceType, numDimensions); + testCombination(index, spaceType, numDimensions, storageType); + } else if (storageType == StorageDataType::E4M3) { + auto index = TypedIndex(spaceType, numDimensions); + testCombination(index, spaceType, numDimensions, storageType); + } + } + } + } + } + } +} diff --git a/java/JavaInputStream.h b/java/JavaInputStream.h index ac4d8d8f..2a22e1a6 100644 --- a/java/JavaInputStream.h +++ b/java/JavaInputStream.h @@ -144,4 +144,4 @@ class JavaInputStream : public InputStream { jobject inputStream; std::vector peekValue; long long bytesRead = 0; -}; \ No newline at end of file +}; diff --git a/java/JavaOutputStream.h b/java/JavaOutputStream.h index 593da0dc..5db295ee 100644 --- a/java/JavaOutputStream.h +++ b/java/JavaOutputStream.h @@ -87,4 +87,4 @@ class JavaOutputStream : public OutputStream { private: JNIEnv *env; jobject outputStream; -}; \ No newline at end of file +}; diff --git a/java/Makefile b/java/Makefile index a30e4ab8..723eef84 100755 --- a/java/Makefile +++ b/java/Makefile @@ -7,7 +7,7 @@ UNAME_S := $(shell uname -s) MAC_SOBJ := libvoyager.dylib LINUX_SOBJ := libvoyager.so WIN_SOBJ := voyager.dll -CPP_SRC_DIR := ../cpp/ +CPP_SRC_DIR := ../cpp/src/ SOURCE := com_spotify_voyager_jni_Index.cpp HEADERS := $(SOURCE:.cpp=.h) $(wildcard ../cpp/*.h) diff --git a/python/setup.py b/python/setup.py index 272d28f0..dd8368db 100644 --- a/python/setup.py +++ b/python/setup.py @@ -25,7 +25,7 @@ from setuptools.command.build_ext import build_ext # Find the "cpp" folder depending on where this script is run from: -for search_path in ["./cpp/", "../cpp/", "../../cpp/"]: +for search_path in ["./cpp/src/", "../cpp/src/", "../../cpp/src/"]: path = os.path.abspath(os.path.join(os.path.dirname(__file__), search_path)) if os.path.exists(path): VOYAGER_HEADERS_PATH = path diff --git a/python/src/PythonFileLike.h b/python/src/PythonFileLike.h index 613dcd35..7fd2fea6 100644 --- a/python/src/PythonFileLike.h +++ b/python/src/PythonFileLike.h @@ -87,4 +87,4 @@ class PythonFileLike { protected: py::object fileLike; -}; \ No newline at end of file +}; diff --git a/python/src/PythonInputStream.h b/python/src/PythonInputStream.h index 6a1d8dd8..2cb6a0ab 100644 --- a/python/src/PythonInputStream.h +++ b/python/src/PythonInputStream.h @@ -201,4 +201,4 @@ class PythonInputStream : public InputStream, PythonFileLike { long long totalLength = -1; std::vector peekValue; bool lastReadWasSmallerThanExpected = false; -}; \ No newline at end of file +}; diff --git a/python/src/PythonOutputStream.h b/python/src/PythonOutputStream.h index fc30b5c5..58ca658b 100644 --- a/python/src/PythonOutputStream.h +++ b/python/src/PythonOutputStream.h @@ -70,4 +70,4 @@ class PythonOutputStream : public OutputStream, public PythonFileLike { return true; } -}; \ No newline at end of file +}; diff --git a/python/test-requirements.txt b/python/test-requirements.txt index 6d7bfb0c..c99a94db 100644 --- a/python/test-requirements.txt +++ b/python/test-requirements.txt @@ -1,5 +1,5 @@ pytest tox black -clang-format +clang-format~=16.0 zstd \ No newline at end of file diff --git a/python/tox.ini b/python/tox.ini index 9449ce25..4f6f0a34 100644 --- a/python/tox.ini +++ b/python/tox.ini @@ -10,7 +10,6 @@ deps = allowlist_externals = bash commands = - bash -c "[ -L voyager-headers ] || [ -d voyager-headers ] || cp -r {toxinidir}/../src ./voyager-headers/" python -m pip install . pytest {posargs} @@ -22,7 +21,6 @@ deps = skip_install = true commands = black voyager tests --diff --check --line-length 120 - clang-format -style=LLVM -Werror --dry-run bindings.cpp [testenv:format] basepython = python3 @@ -32,7 +30,6 @@ deps = skip_install = true commands = black voyager tests --line-length 120 - clang-format -style=LLVM -i bindings.cpp [testenv:lint] basepython = python3 diff --git a/python/typenames.h b/python/typenames.h index 61184a55..f0c1b8f3 100644 --- a/python/typenames.h +++ b/python/typenames.h @@ -25,4 +25,4 @@ template <> const std::string typeName() { return "uint32"; } template <> const std::string typeName() { return "float32"; } template <> const std::string typeName() { return "int64"; } template <> const std::string typeName() { return "uint64"; } -template <> const std::string typeName() { return "float64"; } \ No newline at end of file +template <> const std::string typeName() { return "float64"; } diff --git a/python/voyager-headers b/python/voyager-headers deleted file mode 120000 index abf4cd45..00000000 --- a/python/voyager-headers +++ /dev/null @@ -1 +0,0 @@ -../cpp \ No newline at end of file From 88cfc468617fde8360ac6db7e71bc578ba49ed16 Mon Sep 17 00:00:00 2001 From: Stephen Xie Date: Tue, 10 Sep 2024 13:44:31 -0400 Subject: [PATCH 39/52] C++ Improvements - API enhancement and increase testing (#85) * Add C++ tests and overloaded Index methods that accept 2D vector of floats instead of NDArray * Use most recent version of clang-format * Undo clang-format bump. Fix formatting * clean up C++ test, increase number of vectors * Fix comment * Move code into reusable function * Use quantized random input vectors for Float8 and E4M3 storage. Remove unused util methods * Optimize vectorsToNDArray() and add validation for vector sizes, add tests --- .gitignore | 1 + cpp/src/Index.h | 9 ++ cpp/src/TypedIndex.h | 12 +++ cpp/src/array_utils.h | 27 +++++ cpp/test/CMakeLists.txt | 3 + cpp/test/test_main.cpp | 229 ++++++++++++++++++++++++++++++++++------ cpp/test/test_utils.cpp | 41 +++++++ 7 files changed, 290 insertions(+), 32 deletions(-) create mode 100644 cpp/test/test_utils.cpp diff --git a/.gitignore b/.gitignore index f5287bce..f46320cf 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ java/classpath.txt java/linux-build/include/* python/voyager-headers .asv/ +*.dSYM # Cmake CMakeLists.txt.user diff --git a/cpp/src/Index.h b/cpp/src/Index.h index f6fe581c..a8b82ee3 100644 --- a/cpp/src/Index.h +++ b/cpp/src/Index.h @@ -71,6 +71,11 @@ class Index { virtual hnswlib::labeltype addItem(std::vector vector, std::optional id) = 0; + + virtual std::vector + addItems(std::vector> input, + std::vector ids = {}, int numThreads = -1) = 0; + virtual std::vector addItems(NDArray input, std::vector ids = {}, int numThreads = -1) = 0; @@ -86,6 +91,10 @@ class Index { virtual std::tuple, std::vector> query(std::vector queryVector, int k = 1, long queryEf = -1) = 0; + virtual std::tuple, NDArray> + query(std::vector> queryVectors, int k = 1, + int numThreads = -1, long queryEf = -1) = 0; + virtual std::tuple, NDArray> query(NDArray queryVectors, int k = 1, int numThreads = -1, long queryEf = -1) = 0; diff --git a/cpp/src/TypedIndex.h b/cpp/src/TypedIndex.h index 63066a40..c30ae97c 100644 --- a/cpp/src/TypedIndex.h +++ b/cpp/src/TypedIndex.h @@ -290,6 +290,12 @@ class TypedIndex : public Index { return addItems(NDArray(vector, {1, (int)vector.size()}), ids)[0]; } + std::vector + addItems(const std::vector> vectors, + std::vector ids = {}, int numThreads = -1) { + return addItems(vectorsToNDArray(vectors), ids, numThreads); + } + std::vector addItems(NDArray floatInput, std::vector ids = {}, int numThreads = -1) { @@ -502,6 +508,12 @@ class TypedIndex : public Index { return algorithmImpl->label_lookup_; } + std::tuple, NDArray> + query(std::vector> floatQueryVectors, int k = 1, + int numThreads = -1, long queryEf = -1) { + return query(vectorsToNDArray(floatQueryVectors), k, numThreads, queryEf); + } + std::tuple, NDArray> query(NDArray floatQueryVectors, int k = 1, int numThreads = -1, long queryEf = -1) { diff --git a/cpp/src/array_utils.h b/cpp/src/array_utils.h index 7c2a7556..42717eff 100644 --- a/cpp/src/array_utils.h +++ b/cpp/src/array_utils.h @@ -309,3 +309,30 @@ std::string toFloatVectorString(std::vector vec) { return toFloatVectorString(vec.data(), vec.size()); } + +/** Convert a 2D vector of float to NDArray */ +NDArray vectorsToNDArray(std::vector> vectors) { + int numVectors = vectors.size(); + int dimensions = numVectors > 0 ? vectors[0].size() : 0; + std::array shape = {numVectors, dimensions}; + + // Flatten the 2d array into the NDArray's underlying 1D vector + std::vector flatArray(numVectors * dimensions); + // Pointer to the beginning of the flat array + float *flatArrayPtr = flatArray.data(); + for (const auto &vector : vectors) { + // check that all provided vectors are same size, using the 1st vector as + // the reference + if (vector.size() != dimensions) { + throw std::invalid_argument("All vectors must be of the same size, but " + "received vectors of size: " + + std::to_string(dimensions) + " and " + + std::to_string(vector.size()) + "."); + } + // Use std::memcpy to copy the elements directly into the flat array + std::memcpy(flatArrayPtr, vector.data(), vector.size() * sizeof(float)); + flatArrayPtr += vector.size(); // Increment the pointer + } + + return NDArray(flatArray, shape); +} diff --git a/cpp/test/CMakeLists.txt b/cpp/test/CMakeLists.txt index a46805c1..1606f1a7 100644 --- a/cpp/test/CMakeLists.txt +++ b/cpp/test/CMakeLists.txt @@ -4,6 +4,9 @@ set(TEST_FILES test_main.cpp doctest_setup.cpp) # Add any test files here # Create an executable for the tests add_executable(VoyagerTests ${TEST_FILES}) +# Add compiler flags +target_compile_options(VoyagerTests PRIVATE -g) + # Link the test executable with the main project and Doctest # target_link_libraries(MyProjectTests PRIVATE MyProject doctest::doctest) target_link_libraries(VoyagerTests diff --git a/cpp/test/test_main.cpp b/cpp/test/test_main.cpp index dbfa5dc1..e35f81a1 100644 --- a/cpp/test/test_main.cpp +++ b/cpp/test/test_main.cpp @@ -1,49 +1,175 @@ #include "doctest.h" #include "TypedIndex.h" +#include "test_utils.cpp" #include #include template > -void testCombination(TypedIndex &index, - SpaceType spaceType, int numDimensions, - StorageDataType storageType) { - CHECK(toString(index.getSpace()) == toString(spaceType)); - CHECK(index.getNumDimensions() == numDimensions); - CHECK(toString(index.getStorageDataType()) == toString(storageType)); +void testIndexProperties(TypedIndex &index, + SpaceType spaceType, int numDimensions, + StorageDataType storageType) { + REQUIRE(toString(index.getSpace()) == toString(spaceType)); + REQUIRE(index.getNumDimensions() == numDimensions); + REQUIRE(toString(index.getStorageDataType()) == toString(storageType)); } -TEST_CASE("Test combinations of different instantiations and sizes") { - std::vector spaceTypesSet = {SpaceType::Euclidean, - SpaceType::InnerProduct}; - std::vector numDimensionsSet = {4, 16, 128, 1024}; - std::vector numElementsSet = {100, 1000, 100000}; +/** + * Test the query method of the index. The index is populated with random + * vectors, and then queried with the same vectors. The expected result is that + * each vector's nearest neighbor is itself and that the distance is zero + * (allowing for some precision error based on the storage type). + */ +template > +void testQuery(TypedIndex &index, int numVectors, + int numDimensions, SpaceType spaceType, + StorageDataType storageType, bool testSingleVectorMethod, + float precisionTolerance) { + /** + * Create test data and ids. If we are using Float8 or E4M3 storage, quantize + * the vector values, if we are using Float32 storage, keep the float values + * as-is. We want to match the storage type use case with the input data. + */ + std::vector> inputData; + if (storageType == StorageDataType::Float8 || + storageType == StorageDataType::E4M3) { + inputData = randomQuantizedVectors(numVectors, numDimensions); + } else if (storageType == StorageDataType::Float32) { + inputData = randomVectors(numVectors, numDimensions); + } + std::vector ids(numVectors); + for (int i = 0; i < numVectors; i++) { + ids[i] = i; + } + + // add items to index + if (testSingleVectorMethod == true) { + for (auto id : ids) { + index.addItem(inputData[id], id); + } + } else { + index.addItems(inputData, ids, -1); + } + + int k = 1; + float lowerBound = 0.0f - precisionTolerance; + float upperBound = 0.0f + precisionTolerance; + + // Use the single-query interface (query with a single target vector) + for (long queryEf = 100; queryEf <= numVectors; queryEf *= 10) { + for (int i = 0; i < numVectors; i++) { + + /** + * Use the raw inputData as target vectors for querying. We don't use the + * index data because once data has been added to the index, the model can + * change the "ground truth" by changing the data format. + */ + auto targetVector = inputData[i]; + auto nearestNeighbor = index.query(targetVector, k, queryEf); + + auto labels = std::get<0>(nearestNeighbor); + auto distances = std::get<1>(nearestNeighbor); + REQUIRE(labels.size() == k); + REQUIRE(distances.size() == k); + + /** + * E4M3 is too low precision for us to confidently assume that querying + * with the unquantized (fp32) vector will return the quantized vector as + * its NN. InnerProduct will have negative distance to the closest item, + * not zero + */ + if (storageType != StorageDataType::E4M3 && + spaceType != SpaceType::InnerProduct) { + REQUIRE(i == labels[0]); + REQUIRE(distances[0] >= lowerBound); + REQUIRE(distances[0] <= upperBound); + } + } + } + + // Use the bulk-query interface (query with multiple target vectors at once) + for (long queryEf = 100; queryEf <= numVectors; queryEf *= 10) { + auto nearestNeighbors = index.query( + inputData, /* k= */ k, /* numThreads= */ -1, /* queryEf= */ queryEf); + NDArray labels = std::get<0>(nearestNeighbors); + NDArray distances = std::get<1>(nearestNeighbors); + REQUIRE(labels.shape[0] == numVectors); + REQUIRE(labels.shape[1] == k); + REQUIRE(distances.shape[0] == numVectors); + REQUIRE(distances.shape[1] == k); + + for (int i = 0; i < numVectors; i++) { + auto label = labels.data[i]; + auto distance = distances.data[i]; + + /** + * E4M3 is too low precision for us to confidently assume that querying + * with the unquantized (fp32) vector will return the quantized vector + * as its NN. InnerProduct will have negative distance to the closest + * item, not zero + */ + if (storageType != StorageDataType::E4M3 && + spaceType != SpaceType::InnerProduct) { + REQUIRE(i == label); + REQUIRE(distance >= lowerBound); + REQUIRE(distance <= upperBound); + } + } + } +} + +TEST_CASE("Test combinations of different instantiations. Test that each " + "vector's NN is itself and distance is approximately zero.") { + std::unordered_map PRECISION_TOLERANCE_PER_DATA_TYPE = + {{StorageDataType::Float32, 0.00001f}, + {StorageDataType::Float8, 0.10f}, + {StorageDataType::E4M3, 0.20f}}; + std::vector spaceTypesSet = { + SpaceType::Euclidean, SpaceType::InnerProduct, SpaceType::Cosine}; + std::vector numDimensionsSet = {32}; + std::vector numVectorsSet = {2000}; std::vector storageTypesSet = { StorageDataType::Float8, StorageDataType::Float32, StorageDataType::E4M3}; - - auto count = 0; + std::vector testSingleVectorMethods = {true, false}; for (auto spaceType : spaceTypesSet) { - for (auto numDimensions : numDimensionsSet) { - for (auto numElements : numElementsSet) { - for (auto storageType : storageTypesSet) { - SUBCASE("Test instantiation ") { - CAPTURE(spaceType); - CAPTURE(numDimensions); - CAPTURE(numElements); - CAPTURE(storageType); - - if (storageType == StorageDataType::Float8) { - auto index = TypedIndex>( - spaceType, numDimensions); - testCombination(index, spaceType, numDimensions, storageType); - } else if (storageType == StorageDataType::Float32) { - auto index = TypedIndex(spaceType, numDimensions); - testCombination(index, spaceType, numDimensions, storageType); - } else if (storageType == StorageDataType::E4M3) { - auto index = TypedIndex(spaceType, numDimensions); - testCombination(index, spaceType, numDimensions, storageType); + for (auto storageType : storageTypesSet) { + for (auto numDimensions : numDimensionsSet) { + for (auto numVectors : numVectorsSet) { + for (auto testSingleVectorMethod : testSingleVectorMethods) { + + SUBCASE("Test instantiation ") { + CAPTURE(spaceType); + CAPTURE(numDimensions); + CAPTURE(numVectors); + CAPTURE(storageType); + CAPTURE(testSingleVectorMethod); + + if (storageType == StorageDataType::Float8) { + auto index = TypedIndex>( + spaceType, numDimensions); + testIndexProperties(index, spaceType, numDimensions, + storageType); + testQuery(index, numVectors, numDimensions, spaceType, + storageType, testSingleVectorMethod, + PRECISION_TOLERANCE_PER_DATA_TYPE[storageType]); + } else if (storageType == StorageDataType::Float32) { + auto index = TypedIndex(spaceType, numDimensions); + testIndexProperties(index, spaceType, numDimensions, + storageType); + testQuery(index, numVectors, numDimensions, spaceType, + storageType, testSingleVectorMethod, + PRECISION_TOLERANCE_PER_DATA_TYPE[storageType]); + } else if (storageType == StorageDataType::E4M3) { + auto index = TypedIndex(spaceType, numDimensions); + testIndexProperties(index, spaceType, numDimensions, + storageType); + testQuery(index, numVectors, numDimensions, spaceType, + storageType, testSingleVectorMethod, + PRECISION_TOLERANCE_PER_DATA_TYPE[storageType]); + } } } } @@ -51,3 +177,42 @@ TEST_CASE("Test combinations of different instantiations and sizes") { } } } + +TEST_CASE("Test vectorsToNDArray converts 2D vector of float to NDArray") { + std::vector> vectors = {{1.0f, 2.0f, 3.0f, 4.0f}, + {5.0f, 6.0f, 7.0f, 8.0f}, + {9.0f, 10.0f, 11.0f, 12.0f}}; + NDArray ndArray = vectorsToNDArray(vectors); + REQUIRE(ndArray.shape.size() == 2); + REQUIRE(ndArray.shape[0] == 3); + REQUIRE(ndArray.shape[1] == 4); + REQUIRE(ndArray.data.size() == 12); + REQUIRE(ndArray.data[0] == 1.0f); + REQUIRE(ndArray.data[1] == 2.0f); + REQUIRE(ndArray.data[2] == 3.0f); + REQUIRE(ndArray.data[3] == 4.0f); + REQUIRE(ndArray.data[4] == 5.0f); + REQUIRE(ndArray.data[5] == 6.0f); + REQUIRE(ndArray.data[6] == 7.0f); + REQUIRE(ndArray.data[7] == 8.0f); + REQUIRE(ndArray.data[8] == 9.0f); + REQUIRE(ndArray.data[9] == 10.0f); + REQUIRE(ndArray.data[10] == 11.0f); + REQUIRE(ndArray.data[11] == 12.0f); + REQUIRE(*ndArray[0] == 1.0f); + REQUIRE(*ndArray[1] == 5.0f); + REQUIRE(*ndArray[2] == 9.0f); +} + +TEST_CASE("Test vectorsToNDArray throws error if vectors are not of the same " + "size") { + std::vector> vectors1 = {{1.0f, 2.0f, 3.0f, 4.0f}, + {5.0f, 6.0f, 7.0f}, + {9.0f, 10.0f, 11.0f, 12.0f}}; + REQUIRE_THROWS_AS(vectorsToNDArray(vectors1), std::invalid_argument); + + std::vector> vectors2 = { + {1.0f}, {5.0f, 6.0f, 7.0f}, {9.0f, 10.0f, 11.0f}}; + REQUIRE_THROWS_AS(vectorsToNDArray(vectors2), std::invalid_argument); +} diff --git a/cpp/test/test_utils.cpp b/cpp/test/test_utils.cpp new file mode 100644 index 00000000..91fdbb31 --- /dev/null +++ b/cpp/test/test_utils.cpp @@ -0,0 +1,41 @@ +#include +#include + +#include "array_utils.h" + +// create test data intended for Float8 storage or E4M3 storage +std::vector> randomQuantizedVectors(int numVectors, + int dimensions) { + std::vector> vectors(numVectors, + std::vector(dimensions)); + + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_real_distribution<> dis(0, 1.0); + + for (int i = 0; i < numVectors; ++i) { + for (int j = 0; j < dimensions; ++j) { + vectors[i][j] = static_cast(((dis(gen) * 2 - 1) * 10.0f)) / 10.0f; + } + } + + return vectors; +} + +// create test data intended for Float32 storage +std::vector> randomVectors(int numVectors, int dimensions) { + std::vector> vectors(numVectors, + std::vector(dimensions)); + + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_real_distribution<> dis(0, 1.0); + + for (int i = 0; i < numVectors; ++i) { + for (int j = 0; j < dimensions; ++j) { + vectors[i][j] = static_cast(dis(gen)) * 2 - 1; + } + } + + return vectors; +} From 4dc7b6d7b5299a78527cd4987e5c4964d46bf6f3 Mon Sep 17 00:00:00 2001 From: Stephen Xie Date: Wed, 2 Oct 2024 00:09:17 -0400 Subject: [PATCH 40/52] Throw custom RecallError/RecallException when the number of requested neighbors cannot be returned (#88) * Throw a custom RecallError when number of requested neighbors cannot be returned. Add tests to reproduce error * Propagate C++ RecallError to Python and Java bindings. Regenerate Java docs --- cpp/src/TypedIndex.h | 25 +- cpp/test/test_main.cpp | 106 +- docs/java/apidocs/allclasses-index.html | 108 ++ docs/java/apidocs/allpackages-index.html | 80 ++ .../voyager/jni/Index.QueryResults.html | 275 ++++ .../spotify/voyager/jni/Index.SpaceType.html | 258 ++++ .../voyager/jni/Index.StorageDataType.html | 264 ++++ .../com/spotify/voyager/jni/Index.html | 1005 +++++++++++++ .../voyager/jni/StringIndex.QueryResults.html | 233 +++ .../com/spotify/voyager/jni/StringIndex.html | 570 ++++++++ .../jni/class-use/Index.QueryResults.html | 114 ++ .../jni/class-use/Index.SpaceType.html | 186 +++ .../jni/class-use/Index.StorageDataType.html | 168 +++ .../spotify/voyager/jni/class-use/Index.html | 116 ++ .../class-use/StringIndex.QueryResults.html | 101 ++ .../voyager/jni/class-use/StringIndex.html | 116 ++ .../jni/exception/RecallException.html | 197 +++ .../exception/class-use/RecallException.html | 62 + .../jni/exception/package-summary.html | 113 ++ .../voyager/jni/exception/package-tree.html | 88 ++ .../voyager/jni/exception/package-use.html | 62 + .../spotify/voyager/jni/package-summary.html | 143 ++ .../com/spotify/voyager/jni/package-tree.html | 94 ++ .../com/spotify/voyager/jni/package-use.html | 110 ++ .../voyager/jni/utils/JniLibExtractor.html | 177 +++ .../spotify/voyager/jni/utils/TinyJson.html | 195 +++ .../jni/utils/class-use/JniLibExtractor.html | 62 + .../voyager/jni/utils/class-use/TinyJson.html | 62 + .../voyager/jni/utils/package-summary.html | 116 ++ .../voyager/jni/utils/package-tree.html | 77 + .../voyager/jni/utils/package-use.html | 62 + .../com/spotify/voyager/package-summary.html | 124 ++ .../com/spotify/voyager/package-tree.html | 66 + .../com/spotify/voyager/package-use.html | 62 + docs/java/apidocs/copy.svg | 33 + docs/java/apidocs/element-list | 4 + docs/java/apidocs/help-doc.html | 198 +++ docs/java/apidocs/index-all.html | 470 ++++++ docs/java/apidocs/index.html | 82 ++ .../apidocs/legal/ADDITIONAL_LICENSE_INFO | 37 + docs/java/apidocs/legal/ASSEMBLY_EXCEPTION | 27 + docs/java/apidocs/legal/LICENSE | 347 +++++ docs/java/apidocs/legal/jquery.md | 72 + docs/java/apidocs/legal/jqueryUI.md | 49 + docs/java/apidocs/link.svg | 31 + docs/java/apidocs/member-search-index.js | 1 + docs/java/apidocs/module-search-index.js | 1 + docs/java/apidocs/overview-summary.html | 26 + docs/java/apidocs/overview-tree.html | 112 ++ docs/java/apidocs/package-search-index.js | 1 + docs/java/apidocs/resources/glass.png | Bin 0 -> 499 bytes docs/java/apidocs/resources/x.png | Bin 0 -> 394 bytes .../apidocs/script-dir/jquery-3.6.1.min.js | 2 + .../java/apidocs/script-dir/jquery-ui.min.css | 6 + docs/java/apidocs/script-dir/jquery-ui.min.js | 6 + docs/java/apidocs/script.js | 253 ++++ docs/java/apidocs/search-page.js | 284 ++++ docs/java/apidocs/search.html | 77 + docs/java/apidocs/search.js | 458 ++++++ docs/java/apidocs/serialized-form.html | 77 + docs/java/apidocs/stylesheet.css | 1272 +++++++++++++++++ docs/java/apidocs/tag-search-index.js | 1 + docs/java/apidocs/type-search-index.js | 1 + java/com_spotify_voyager_jni_Index.cpp | 14 + .../java/com/spotify/voyager/jni/Index.java | 9 +- .../jni/exception/RecallException.java | 43 + python/bindings.cpp | 2 + 67 files changed, 9571 insertions(+), 22 deletions(-) create mode 100644 docs/java/apidocs/allclasses-index.html create mode 100644 docs/java/apidocs/allpackages-index.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/Index.QueryResults.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/Index.SpaceType.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/Index.StorageDataType.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/Index.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/StringIndex.QueryResults.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/StringIndex.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.QueryResults.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.SpaceType.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.StorageDataType.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/class-use/StringIndex.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/exception/RecallException.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/exception/class-use/RecallException.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/exception/package-summary.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/exception/package-tree.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/exception/package-use.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/package-summary.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/package-tree.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/package-use.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/utils/JniLibExtractor.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/utils/TinyJson.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/utils/class-use/TinyJson.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/utils/package-summary.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/utils/package-tree.html create mode 100644 docs/java/apidocs/com/spotify/voyager/jni/utils/package-use.html create mode 100644 docs/java/apidocs/com/spotify/voyager/package-summary.html create mode 100644 docs/java/apidocs/com/spotify/voyager/package-tree.html create mode 100644 docs/java/apidocs/com/spotify/voyager/package-use.html create mode 100644 docs/java/apidocs/copy.svg create mode 100644 docs/java/apidocs/element-list create mode 100644 docs/java/apidocs/help-doc.html create mode 100644 docs/java/apidocs/index-all.html create mode 100644 docs/java/apidocs/index.html create mode 100644 docs/java/apidocs/legal/ADDITIONAL_LICENSE_INFO create mode 100644 docs/java/apidocs/legal/ASSEMBLY_EXCEPTION create mode 100644 docs/java/apidocs/legal/LICENSE create mode 100644 docs/java/apidocs/legal/jquery.md create mode 100644 docs/java/apidocs/legal/jqueryUI.md create mode 100644 docs/java/apidocs/link.svg create mode 100644 docs/java/apidocs/member-search-index.js create mode 100644 docs/java/apidocs/module-search-index.js create mode 100644 docs/java/apidocs/overview-summary.html create mode 100644 docs/java/apidocs/overview-tree.html create mode 100644 docs/java/apidocs/package-search-index.js create mode 100644 docs/java/apidocs/resources/glass.png create mode 100644 docs/java/apidocs/resources/x.png create mode 100644 docs/java/apidocs/script-dir/jquery-3.6.1.min.js create mode 100644 docs/java/apidocs/script-dir/jquery-ui.min.css create mode 100644 docs/java/apidocs/script-dir/jquery-ui.min.js create mode 100644 docs/java/apidocs/script.js create mode 100644 docs/java/apidocs/search-page.js create mode 100644 docs/java/apidocs/search.html create mode 100644 docs/java/apidocs/search.js create mode 100644 docs/java/apidocs/serialized-form.html create mode 100644 docs/java/apidocs/stylesheet.css create mode 100644 docs/java/apidocs/tag-search-index.js create mode 100644 docs/java/apidocs/type-search-index.js create mode 100644 java/src/main/java/com/spotify/voyager/jni/exception/RecallException.java diff --git a/cpp/src/TypedIndex.h b/cpp/src/TypedIndex.h index c30ae97c..1966f1bf 100644 --- a/cpp/src/TypedIndex.h +++ b/cpp/src/TypedIndex.h @@ -36,6 +36,11 @@ #include "hnswlib.h" #include "std_utils.h" +class RecallError : public std::runtime_error { +public: + RecallError(const std::string &what) : std::runtime_error(what) {} +}; + template inline const StorageDataType storageDataType(); template inline const std::string storageDataTypeName(); @@ -569,10 +574,11 @@ class TypedIndex : public Index { nullptr, queryEf); if (result.size() != (unsigned long)k) { - throw std::runtime_error( + throw RecallError( "Fewer than expected results were retrieved; only found " + std::to_string(result.size()) + " of " + std::to_string(k) + - " requested neighbors."); + " requested neighbors. Reconstruct the index with a higher M " + "value to increase recall."); } for (int i = k - 1; i >= 0; i--) { @@ -606,10 +612,11 @@ class TypedIndex : public Index { queryEf); if (result.size() != (unsigned long)k) { - throw std::runtime_error( + throw RecallError( "Fewer than expected results were retrieved; only found " + std::to_string(result.size()) + " of " + std::to_string(k) + - " requested neighbors."); + " requested neighbors. Reconstruct the index with a higher M " + "value to increase recall."); } for (int i = k - 1; i >= 0; i--) { @@ -662,10 +669,11 @@ class TypedIndex : public Index { algorithmImpl->searchKnn(queryVector.data(), k, nullptr, queryEf); if (result.size() != (unsigned long)k) { - throw std::runtime_error( + throw RecallError( "Fewer than expected results were retrieved; only found " + std::to_string(result.size()) + " of " + std::to_string(k) + - " requested neighbors."); + " requested neighbors. Reconstruct the index with a higher M value " + "to increase recall."); } for (int i = k - 1; i >= 0; i--) { @@ -683,10 +691,11 @@ class TypedIndex : public Index { algorithmImpl->searchKnn(norm_array.data(), k, nullptr, queryEf); if (result.size() != (unsigned long)k) { - throw std::runtime_error( + throw RecallError( "Fewer than expected results were retrieved; only found " + std::to_string(result.size()) + " of " + std::to_string(k) + - " requested neighbors."); + " requested neighbors. Reconstruct the index with a higher M value " + "to increase recall."); } for (int i = k - 1; i >= 0; i--) { diff --git a/cpp/test/test_main.cpp b/cpp/test/test_main.cpp index e35f81a1..0fdf238b 100644 --- a/cpp/test/test_main.cpp +++ b/cpp/test/test_main.cpp @@ -26,7 +26,7 @@ template &index, int numVectors, int numDimensions, SpaceType spaceType, StorageDataType storageType, bool testSingleVectorMethod, - float precisionTolerance) { + float precisionTolerance, int k) { /** * Create test data and ids. If we are using Float8 or E4M3 storage, quantize * the vector values, if we are using Float32 storage, keep the float values @@ -53,7 +53,6 @@ void testQuery(TypedIndex &index, int numVectors, index.addItems(inputData, ids, -1); } - int k = 1; float lowerBound = 0.0f - precisionTolerance; float upperBound = 0.0f + precisionTolerance; @@ -120,8 +119,94 @@ void testQuery(TypedIndex &index, int numVectors, } } +/** + * Test querying the index when k is equal to the total number of items in the + * index. + */ +template > +void testQueryAllNearestNeighbors( + TypedIndex &index, int numVectors, + int numDimensions, bool testSingleVectorMethod) { + + std::vector> inputData = + randomVectors(numVectors, numDimensions); + std::vector ids(numVectors); + for (int i = 0; i < numVectors; i++) { + ids[i] = i; + } + + // add items to index + if (testSingleVectorMethod == true) { + for (auto id : ids) { + index.addItem(inputData[id], id); + } + } else { + index.addItems(inputData, ids, -1); + } + REQUIRE(index.getNumElements() == numVectors); + + std::vector targetVector = inputData[0]; + REQUIRE_THROWS_AS(index.query(targetVector, numVectors, -1), RecallError); +} + +/** + * This test reproduces https://github.com/spotify/voyager/issues/38, an issue + * where we cannot achieve 100% recall. testQueryAllNearestNeighbors() asserts + * that a custom RecallError is thrown. + */ +TEST_CASE( + "Test querying for kNN when k equals the number of items in the index") { + std::vector spaceTypesSet = { + SpaceType::Euclidean, SpaceType::InnerProduct, SpaceType::Cosine}; + std::vector storageTypesSet = { + StorageDataType::Float8, StorageDataType::Float32, StorageDataType::E4M3}; + std::vector numDimensionsSet = {32}; + std::vector numVectorsSet = {30000}; + std::vector testSingleVectorMethods = {true}; + + // Use a small M value to exacerbate the issue where a graph becomes + // disconnected. This helps to reproduce this nondeterministic issue. + size_t M_ = 4; + + for (auto spaceType : spaceTypesSet) { + for (auto storageType : storageTypesSet) { + for (auto numDimensions : numDimensionsSet) { + for (auto numVectors : numVectorsSet) { + for (auto testSingleVectorMethod : testSingleVectorMethods) { + + SUBCASE("Test instantiation ") { + CAPTURE(spaceType); + CAPTURE(numDimensions); + CAPTURE(numVectors); + CAPTURE(storageType); + CAPTURE(std::to_string(testSingleVectorMethod)); + + if (storageType == StorageDataType::Float8) { + auto index = TypedIndex>( + spaceType, numDimensions, M_); + testQueryAllNearestNeighbors(index, numVectors, numDimensions, + testSingleVectorMethod); + } else if (storageType == StorageDataType::Float32) { + auto index = TypedIndex(spaceType, numDimensions, M_); + testQueryAllNearestNeighbors(index, numVectors, numDimensions, + testSingleVectorMethod); + } else if (storageType == StorageDataType::E4M3) { + auto index = + TypedIndex(spaceType, numDimensions, M_); + testQueryAllNearestNeighbors(index, numVectors, numDimensions, + testSingleVectorMethod); + } + } + } + } + } + } + } +} + TEST_CASE("Test combinations of different instantiations. Test that each " - "vector's NN is itself and distance is approximately zero.") { + "vector's ANN is itself and distance is approximately zero.") { std::unordered_map PRECISION_TOLERANCE_PER_DATA_TYPE = {{StorageDataType::Float32, 0.00001f}, {StorageDataType::Float8, 0.10f}, @@ -133,6 +218,7 @@ TEST_CASE("Test combinations of different instantiations. Test that each " std::vector storageTypesSet = { StorageDataType::Float8, StorageDataType::Float32, StorageDataType::E4M3}; std::vector testSingleVectorMethods = {true, false}; + int k = 1; for (auto spaceType : spaceTypesSet) { for (auto storageType : storageTypesSet) { @@ -154,21 +240,21 @@ TEST_CASE("Test combinations of different instantiations. Test that each " storageType); testQuery(index, numVectors, numDimensions, spaceType, storageType, testSingleVectorMethod, - PRECISION_TOLERANCE_PER_DATA_TYPE[storageType]); + PRECISION_TOLERANCE_PER_DATA_TYPE[storageType], k); } else if (storageType == StorageDataType::Float32) { auto index = TypedIndex(spaceType, numDimensions); testIndexProperties(index, spaceType, numDimensions, storageType); testQuery(index, numVectors, numDimensions, spaceType, storageType, testSingleVectorMethod, - PRECISION_TOLERANCE_PER_DATA_TYPE[storageType]); + PRECISION_TOLERANCE_PER_DATA_TYPE[storageType], k); } else if (storageType == StorageDataType::E4M3) { auto index = TypedIndex(spaceType, numDimensions); testIndexProperties(index, spaceType, numDimensions, storageType); testQuery(index, numVectors, numDimensions, spaceType, storageType, testSingleVectorMethod, - PRECISION_TOLERANCE_PER_DATA_TYPE[storageType]); + PRECISION_TOLERANCE_PER_DATA_TYPE[storageType], k); } } } @@ -178,8 +264,8 @@ TEST_CASE("Test combinations of different instantiations. Test that each " } } -TEST_CASE("Test vectorsToNDArray converts 2D vector of float to NDArray") { +TEST_CASE( + "Test vectorsToNDArray converts 2D vector of float to NDArray") { std::vector> vectors = {{1.0f, 2.0f, 3.0f, 4.0f}, {5.0f, 6.0f, 7.0f, 8.0f}, {9.0f, 10.0f, 11.0f, 12.0f}}; @@ -205,8 +291,8 @@ TEST_CASE("Test vectorsToNDArray converts 2D vector of float to NDArray> vectors1 = {{1.0f, 2.0f, 3.0f, 4.0f}, {5.0f, 6.0f, 7.0f}, {9.0f, 10.0f, 11.0f, 12.0f}}; diff --git a/docs/java/apidocs/allclasses-index.html b/docs/java/apidocs/allclasses-index.html new file mode 100644 index 00000000..ee59aadd --- /dev/null +++ b/docs/java/apidocs/allclasses-index.html @@ -0,0 +1,108 @@ + + + + +All Classes and Interfaces (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          All Classes and Interfaces

          +
          +
          +
          +
          +
          +
          Class
          +
          Description
          + +
          +
          A Voyager index, providing storage of floating-point vectors and the ability to efficiently + search among those vectors.
          +
          + +
          +
          A container for query results, returned by Index.
          +
          + +
          +
          The space, also known as distance metric, to use when searching.
          +
          + +
          +
          The datatype used to use when storing vectors on disk.
          +
          + +
           
          + +
          +
          An exception that indicates an error about the recall performance of the index.
          +
          + +
          +
          Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID + to a provided String.
          +
          + +
          +
          A wrapper class for nearest neighbor query results.
          +
          + +
          +
          A dependency-free, super tiny JSON serde class that only supports reading and writing lists of + strings.
          +
          +
          +
          +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/allpackages-index.html b/docs/java/apidocs/allpackages-index.html new file mode 100644 index 00000000..deb798e6 --- /dev/null +++ b/docs/java/apidocs/allpackages-index.html @@ -0,0 +1,80 @@ + + + + +All Packages (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          All Packages

          +
          +
          Package Summary
          +
          +
          Package
          +
          Description
          + +
          +
          Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector + data.
          +
          + +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          + +
           
          + +
           
          +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/Index.QueryResults.html b/docs/java/apidocs/com/spotify/voyager/jni/Index.QueryResults.html new file mode 100644 index 00000000..ed32b210 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/Index.QueryResults.html @@ -0,0 +1,275 @@ + + + + +Index.QueryResults (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          + +
          + +

          Class Index.QueryResults

          +
          +
          java.lang.Object +
          com.spotify.voyager.jni.Index.QueryResults
          +
          +
          +
          +
          Enclosing class:
          +
          Index
          +
          +
          +
          public static class Index.QueryResults +extends Object
          +
          A container for query results, returned by Index. Note that this class is instantiated from + C++, and as such, any changes to its location, visibility, or constructor will need to include + corresponding C++ changes.
          +
          +
          +
            + +
          • +
            +

            Field Summary

            +
            Fields
            +
            +
            Modifier and Type
            +
            Field
            +
            Description
            +
            final float[]
            + +
            +
            A list of distances from each item ID to the query vector for this query.
            +
            +
            final long[]
            + +
            +
            A list of item IDs ("labels").
            +
            +
            +
            +
          • + +
          • +
            +

            Constructor Summary

            +
            Constructors
            +
            +
            Constructor
            +
            Description
            +
            QueryResults(long[] labels, + float[] distances)
            +
            +
            Instantiates a new QueryResults object, provided two identical-length arrays of labels and + their corresponding distances.
            +
            +
            +
            +
          • + +
          • +
            +

            Method Summary

            +
            +
            +
            +
            +
            Modifier and Type
            +
            Method
            +
            Description
            +
            float[]
            + +
            +
            Retrieve the list of distances between query vectors and item vectors for the results of this + query.
            +
            +
            long[]
            + +
            +
            Retrieve the list of item IDs ("labels") returned by this query.
            +
            + + +
             
            +
            +
            +
            +
            +

            Methods inherited from class java.lang.Object

            +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
            +
            +
          • +
          +
          +
          +
            + +
          • +
            +

            Field Details

            +
              +
            • +
              +

              labels

              +
              public final long[] labels
              +
              A list of item IDs ("labels").
              +
              +
            • +
            • +
              +

              distances

              +
              public final float[] distances
              +
              A list of distances from each item ID to the query vector for this query.
              +
              +
            • +
            +
            +
          • + +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              QueryResults

              +
              public QueryResults(long[] labels, + float[] distances)
              +
              Instantiates a new QueryResults object, provided two identical-length arrays of labels and + their corresponding distances. This method should probably not be used directly, as this + class is primarily used as a return type from the query method on Index.
              +
              +
              Throws:
              +
              IllegalArgumentException - if the length of the labels and distances arrays vary
              +
              +
              +
            • +
            +
            +
          • + +
          • +
            +

            Method Details

            +
              +
            • +
              +

              toString

              +
              public String toString()
              +
              +
              Overrides:
              +
              toString in class Object
              +
              +
              +
            • +
            • +
              +

              getLabels

              +
              public long[] getLabels()
              +
              Retrieve the list of item IDs ("labels") returned by this query. This array is sorted by + distance: the first item is the closest to the query vector, the second is second-closest, + and so on. The items in this array correspond 1:1 with the distances returned by + getDistances().
              +
              +
            • +
            • +
              +

              getDistances

              +
              public float[] getDistances()
              +
              Retrieve the list of distances between query vectors and item vectors for the results of this + query. This array is sorted by distance: the first distance corresponds with the item the + closest to the query vector, the second is second-closest, and so on. The items in this array + correspond 1:1 with the labels returned by getLabels().
              +
              +
            • +
            +
            +
          • +
          +
          + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/Index.SpaceType.html b/docs/java/apidocs/com/spotify/voyager/jni/Index.SpaceType.html new file mode 100644 index 00000000..a36fa3c6 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/Index.SpaceType.html @@ -0,0 +1,258 @@ + + + + +Index.SpaceType (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          + +
          + +

          Enum Index.SpaceType

          +
          +
          java.lang.Object +
          java.lang.Enum<Index.SpaceType> +
          com.spotify.voyager.jni.Index.SpaceType
          +
          +
          +
          +
          +
          All Implemented Interfaces:
          +
          Serializable, Comparable<Index.SpaceType>
          +
          +
          +
          Enclosing class:
          +
          Index
          +
          +
          +
          public static enum Index.SpaceType +extends Enum<Index.SpaceType>
          +
          The space, also known as distance metric, to use when searching. + +

          SpaceType is a property of an Index, and cannot be changed after instantiation. Loading an + index with a different SpaceType than it was created with may result in nonsensical results + being returned.

          +
          +
          + +
          +
          +
            + +
          • +
            +

            Enum Constant Details

            +
              +
            • +
              +

              Euclidean

              +
              public static final Index.SpaceType Euclidean
              +
              Euclidean distance, also known as L2 distance. Computed by taking the square root of + the sum of squared differences between each element of each vector.
              +
              +
            • +
            • +
              +

              InnerProduct

              +
              public static final Index.SpaceType InnerProduct
              +
              Inner (dot) product. Computed by taking the sum of the products of each element of each + vector. Since v2.0, this is implemented using the order preserving transform defined in this + paper from Microsoft: + https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/XboxInnerProduct.pdf
              +
              +
            • +
            • +
              +

              Cosine

              +
              public static final Index.SpaceType Cosine
              +
              Cosine distance; i.e. normalized dot product. Computed by taking the sum of the products of + each element of each vector, divided by the product of the magnitudes of each vector.
              +
              +
            • +
            +
            +
          • + +
          • +
            +

            Method Details

            +
              +
            • +
              +

              values

              +
              public static Index.SpaceType[] values()
              +
              Returns an array containing the constants of this enum type, in +the order they are declared.
              +
              +
              Returns:
              +
              an array containing the constants of this enum type, in the order they are declared
              +
              +
              +
            • +
            • +
              +

              valueOf

              +
              public static Index.SpaceType valueOf(String name)
              +
              Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
              +
              +
              Parameters:
              +
              name - the name of the enum constant to be returned.
              +
              Returns:
              +
              the enum constant with the specified name
              +
              Throws:
              +
              IllegalArgumentException - if this enum type has no constant with the specified name
              +
              NullPointerException - if the argument is null
              +
              +
              +
            • +
            +
            +
          • +
          +
          + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/Index.StorageDataType.html b/docs/java/apidocs/com/spotify/voyager/jni/Index.StorageDataType.html new file mode 100644 index 00000000..594d2b61 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/Index.StorageDataType.html @@ -0,0 +1,264 @@ + + + + +Index.StorageDataType (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          + +
          + +

          Enum Index.StorageDataType

          +
          +
          java.lang.Object +
          java.lang.Enum<Index.StorageDataType> +
          com.spotify.voyager.jni.Index.StorageDataType
          +
          +
          +
          +
          +
          All Implemented Interfaces:
          +
          Serializable, Comparable<Index.StorageDataType>
          +
          +
          +
          Enclosing class:
          +
          Index
          +
          +
          +
          public static enum Index.StorageDataType +extends Enum<Index.StorageDataType>
          +
          The datatype used to use when storing vectors on disk. Affects both precision and memory usage.
          +
          +
          + +
          +
          +
            + +
          • +
            +

            Enum Constant Details

            +
              +
            • +
              +

              Float8

              +
              public static final Index.StorageDataType Float8
              +
              An 8-bit floating point data type that expects all values to be on [-1, 1]. This data type + provides adequate precision for many use cases, but cuts down memory usage bu a factor of 4x + compared to Float32, while also increasing query speed. + +

              Float8 provides 8 bits of resolution; i.e.: the distance between successive values is + 1/127, or 0.00787. For a variable-precision (i.e.: _actually_ floating point) representation, + use E4M3.

              +
              +
            • +
            • +
              +

              Float32

              +
              public static final Index.StorageDataType Float32
              +
              A 32-bit floating point ("Float") data type. The default.
              +
              +
            • +
            • +
              +

              E4M3

              +
              public static final Index.StorageDataType E4M3
              +
              A custom 8-bit floating point data type with range [-448, 448] and variable precision. Use + this data type to get 4x less memory usage compared to Float32, but when the values of + vectors to be stored in an Index may exceed [-1, 1]. + +

              E4M3 uses a 4-bit exponent and 3-bit mantissa field, and was inspired by the paper "FP8 + Formats for Deep Learning" by Micikevicus et al (arXiv:2209.05433). + +

              Note that using E4M3 with the Cosine space may result in negative distances at query time + due to reduced floating-point precision. While confusing, the query results are still + correctly ordered.

              +
              +
            • +
            +
            +
          • + +
          • +
            +

            Method Details

            +
              +
            • +
              +

              values

              +
              public static Index.StorageDataType[] values()
              +
              Returns an array containing the constants of this enum type, in +the order they are declared.
              +
              +
              Returns:
              +
              an array containing the constants of this enum type, in the order they are declared
              +
              +
              +
            • +
            • +
              +

              valueOf

              +
              public static Index.StorageDataType valueOf(String name)
              +
              Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
              +
              +
              Parameters:
              +
              name - the name of the enum constant to be returned.
              +
              Returns:
              +
              the enum constant with the specified name
              +
              Throws:
              +
              IllegalArgumentException - if this enum type has no constant with the specified name
              +
              NullPointerException - if the argument is null
              +
              +
              +
            • +
            +
            +
          • +
          +
          + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/Index.html b/docs/java/apidocs/com/spotify/voyager/jni/Index.html new file mode 100644 index 00000000..ab51a883 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/Index.html @@ -0,0 +1,1005 @@ + + + + +Index (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          + +
          + +

          Class Index

          +
          +
          java.lang.Object +
          com.spotify.voyager.jni.Index
          +
          +
          +
          +
          All Implemented Interfaces:
          +
          Closeable, AutoCloseable
          +
          +
          +
          public class Index +extends Object +implements Closeable
          +
          A Voyager index, providing storage of floating-point vectors and the ability to efficiently + search among those vectors. + +

          A brief example of how to use Index: + +

          +   // Create a new Index that compares 4-dimensional vectors via Euclidean distance:
          +   Index index = new Index(Index.SpaceType.Euclidean, 4);
          +
          +   // Add some data to the index:
          +   index.addItem(new float[]{1.0f, 2.0f, 3.0f, 4.0f});
          +   index.addItem(new float[]{2.0f, 3.0f, 4.0f, 5.0f});
          +
          +   // Query the index to return the `k` nearest neighbors of a given vector:
          +   Index.QueryResults results = index.query(new float[]{3.0f, 4.0f, 5.0f, 6.0f}, 1);
          +
          +   // Our query will return the 1th (second) item that was added, as it's the closest:
          +   assert(results.getLabels()[0] == 1);
          +
          +   // Serialize this index to use it again later:
          +   index.saveIndex("my_tiny_index.voy");
          + 
          +
          +
          +
            + +
          • +
            +

            Nested Class Summary

            +
            Nested Classes
            +
            +
            Modifier and Type
            +
            Class
            +
            Description
            +
            static class 
            + +
            +
            A container for query results, returned by Index.
            +
            +
            static enum 
            + +
            +
            The space, also known as distance metric, to use when searching.
            +
            +
            static enum 
            + +
            +
            The datatype used to use when storing vectors on disk.
            +
            +
            +
            +
          • + +
          • +
            +

            Constructor Summary

            +
            Constructors
            +
            +
            Constructor
            +
            Description
            +
            Index(Index.SpaceType space, + int numDimensions)
            +
            +
            Create a new Index that uses the given Index.SpaceType to store and compare + numDimensions-dimensional vectors.
            +
            +
            Index(Index.SpaceType space, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
            +
            +
            Create a new Index that uses the given Index.SpaceType to store and compare + numDimensions-dimensional vectors.
            +
            +
            +
            +
          • + +
          • +
            +

            Method Summary

            +
            +
            +
            +
            +
            Modifier and Type
            +
            Method
            +
            Description
            +
            void
            +
            addItem(float[] vector)
            +
            +
            Add an item (a vector) to this Index.
            +
            +
            void
            +
            addItem(float[] vector, + long id)
            +
            +
            Add an item (a vector) to this Index with the provided identifier.
            +
            +
            void
            +
            addItems(float[][] vectors, + int numThreads)
            +
            +
            Add multiple items (vectors) to this Index.
            +
            +
            void
            +
            addItems(float[][] vectors, + long[] ids, + int numThreads)
            +
            +
            Add multiple items (vectors) to this Index.
            +
            +
            byte[]
            + +
            +
            Returns the contents of this index as an array of bytes.
            +
            +
            void
            + +
            +
            Close this Index and release any memory held by it.
            +
            +
            protected void
            + +
             
            +
            int
            + +
            +
            Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
            +
            +
            long
            + +
            +
            Get the EF Construction value used when adding new elements to this Index.
            +
            +
            long[]
            + +
            +
            Get the list of identifiers currently stored by this index.
            +
            +
            long
            + +
            +
            Get the M value used when adding new elements to this Index.
            +
            +
            long
            + +
            +
            Get the maximum number of elements currently storable by this Index.
            +
            +
            int
            + +
            +
            Get the number of dimensions used in this Index.
            +
            +
            long
            + +
            +
            Get the number of elements currently in this Index.
            +
            +
            int
            + +
            +
            Get the default number of threads used when adding multiple vectors in bulk oor when querying + for multiple vectors simultaneously.
            +
            + + +
            +
            Get the Index.SpaceType that this Index uses to store and compare vectors.
            +
            +
            float[]
            +
            getVector(long id)
            +
            +
            Get the vector for the provided identifier.
            +
            +
            float[][]
            +
            getVectors(long[] ids)
            +
            +
            Get the vectors for a provided array of identifiers.
            +
            +
            static Index
            +
            load(InputStream inputStream)
            +
            +
            Interpret the contents of a java.io.InputStream as the contents of a Voyager index file + and create a new Index initialized with the data provided by that stream.
            +
            +
            static Index
            +
            load(InputStream inputStream, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
            +
            +
            Interpret the contents of a java.io.InputStream as the contents of a Voyager index file + and create a new Index initialized with the data provided by that stream.
            +
            +
            static Index
            +
            load(String filename)
            +
            +
            Load a Voyager index file and create a new Index initialized with the data in that + file.
            +
            +
            static Index
            +
            load(String filename, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
            +
            +
            Load a Voyager index file and create a new Index initialized with the data in that + file.
            +
            +
            void
            +
            markDeleted(long label)
            +
            +
            Mark an element of the index as deleted.
            +
            + +
            query(float[][] queryVectors, + int k, + int numThreads)
            +
            +
            Query this Index for approximate nearest neighbors of multiple query vectors.
            +
            + +
            query(float[][] queryVectors, + int k, + int numThreads, + long queryEf)
            +
            +
            Query this Index for approximate nearest neighbors of multiple query vectors.
            +
            + +
            query(float[] queryVector, + int k)
            +
            +
            Query this Index for approximate nearest neighbors of a single query vector.
            +
            + +
            query(float[] queryVector, + int k, + long queryEf)
            +
            +
            Query this Index for approximate nearest neighbors of a single query vector.
            +
            +
            void
            +
            resizeIndex(long newSize)
            +
            +
            Change the maximum number of elements currently storable by this Index.
            +
            +
            void
            +
            saveIndex(OutputStream outputStream)
            +
            +
            Save this Index to the provided output stream.
            +
            +
            void
            +
            saveIndex(String pathToIndex)
            +
            +
            Save this Index to a file at the provided filename.
            +
            +
            void
            +
            setEf(long ef)
            +
            +
            Set the default EF ("query search depth") to use when query(float[], int) is called.
            +
            +
            void
            +
            setNumThreads(int numThreads)
            +
            +
            Set the default number of threads to use when adding multiple vectors in bulk, or when querying + for multiple vectors simultaneously.
            +
            +
            void
            +
            unmarkDeleted(long label)
            +
            +
            Un-mark an element of the index as deleted, making it available again.
            +
            +
            +
            +
            +
            +

            Methods inherited from class java.lang.Object

            +clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
            +
            +
          • +
          +
          +
          +
            + +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              Index

              +
              public Index(Index.SpaceType space, + int numDimensions)
              +
              Create a new Index that uses the given Index.SpaceType to store and compare + numDimensions-dimensional vectors.
              +
              +
              Parameters:
              +
              space - the space type to use when storing and comparing vectors.
              +
              numDimensions - the number of dimensions per vector.
              +
              +
              +
            • +
            • +
              +

              Index

              +
              public Index(Index.SpaceType space, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
              +
              Create a new Index that uses the given Index.SpaceType to store and compare + numDimensions-dimensional vectors.
              +
              +
              Parameters:
              +
              space - The space type to use when storing and comparing vectors.
              +
              numDimensions - The number of dimensions per vector.
              +
              indexM - Controls the degree of interconnectedness between vectors. Higher values of + M provide better recall (i.e. higher quality) but use more memory.
              +
              efConstruction - Controls index quality, affecting the speed of addItem calls. + Does not affect memory usage or size of the index.
              +
              randomSeed - A random seed to use when initializing the index's internal data structures.
              +
              maxElements - The maximum number of elements that this index can hold. This is a + performance optimization; if the index contains this number of elements and addItem(float[]) or addItems(float[][], int) is called, the index's capacity will automatically + expanded to fit the new elements. Setting maxElements in advance helps avoid these + expensive resize operations if the number of elements to be added is already known.
              +
              storageDataType - The datatype to use under-the-hood when storing vectors. Different data + type options trade off precision for memory usage and query speed; see Index.StorageDataType for available data types.
              +
              +
              +
            • +
            +
            +
          • + +
          • +
            +

            Method Details

            +
              +
            • +
              +

              load

              +
              public static Index load(String filename, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
              +
              Load a Voyager index file and create a new Index initialized with the data in that + file.
              +
              +
              Parameters:
              +
              filename - A filename to load.
              +
              space - The Index.SpaceType to use when loading the index.
              +
              numDimensions - The number of dimensions per vector.
              +
              storageDataType - The Index.StorageDataType used by the index being loaded.
              +
              Returns:
              +
              An Index whose contents have been initialized with the data provided by the + file.
              +
              Throws:
              +
              RuntimeException - if the index cannot be loaded from the file, or the file contains + invalid data.
              +
              +
              +
            • +
            • +
              +

              load

              +
              public static Index load(String filename)
              +
              Load a Voyager index file and create a new Index initialized with the data in that + file.
              +
              +
              Parameters:
              +
              filename - A filename to load.
              +
              Returns:
              +
              An Index whose contents have been initialized with the data provided by the + file.
              +
              Throws:
              +
              RuntimeException - if the index cannot be loaded from the file, the file contains invalid + data, or the file contains an older version of the Voyager file format that requires + additional arguments to be provided.
              +
              +
              +
            • +
            • +
              +

              load

              +
              public static Index load(InputStream inputStream, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
              +
              Interpret the contents of a java.io.InputStream as the contents of a Voyager index file + and create a new Index initialized with the data provided by that stream.
              +
              +
              Parameters:
              +
              inputStream - A InputStream that will provide the contents of a Voyager + index.
              +
              space - The Index.SpaceType to use when loading the index.
              +
              numDimensions - The number of dimensions per vector.
              +
              storageDataType - The Index.StorageDataType used by the index being loaded.
              +
              Returns:
              +
              An Index whose contents have been initialized with the data provided by the + input stream.
              +
              Throws:
              +
              RuntimeException - if the index cannot be loaded from the stream, or the stream contains + invalid data.
              +
              +
              +
            • +
            • +
              +

              load

              +
              public static Index load(InputStream inputStream)
              +
              Interpret the contents of a java.io.InputStream as the contents of a Voyager index file + and create a new Index initialized with the data provided by that stream.
              +
              +
              Parameters:
              +
              inputStream - A InputStream that will provide the contents of a Voyager + index.
              +
              Returns:
              +
              An Index whose contents have been initialized with the data provided by the + input stream.
              +
              Throws:
              +
              RuntimeException - if the index cannot be loaded from the stream, or the stream contains + invalid data, or the file contains an older version of the Voyager file format that + requires additional arguments to be provided.
              +
              +
              +
            • +
            • +
              +

              close

              +
              public void close() + throws IOException
              +
              Close this Index and release any memory held by it. Note that this method must be + called to release the memory backing this Index; failing to do so may cause a memory + leak. + +

              Any calls to methods after close() is called will fail, as the underlying + native C++ object will have been deallocated.

              +
              +
              Specified by:
              +
              close in interface AutoCloseable
              +
              Specified by:
              +
              close in interface Closeable
              +
              Throws:
              +
              IOException - if the C++ destructor fails.
              +
              +
              +
            • +
            • +
              +

              finalize

              +
              protected void finalize() + throws Throwable
              +
              +
              Overrides:
              +
              finalize in class Object
              +
              Throws:
              +
              Throwable
              +
              +
              +
            • +
            • +
              +

              setEf

              +
              public void setEf(long ef)
              +
              Set the default EF ("query search depth") to use when query(float[], int) is called.
              +
              +
              Parameters:
              +
              ef - The new default EF value to use. This value can be overridden on a per-query basis at + query time.
              +
              +
              +
            • +
            • +
              +

              getEf

              +
              public int getEf()
              +
              Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
              +
              +
              Returns:
              +
              The current default EF value, used by the Index if no value is provided at + query time.
              +
              +
              +
            • +
            • +
              +

              getSpace

              +
              public Index.SpaceType getSpace()
              +
              Get the Index.SpaceType that this Index uses to store and compare vectors.
              +
              +
              Returns:
              +
              The Index.SpaceType that is currently used by this Index.
              +
              +
              +
            • +
            • +
              +

              getNumDimensions

              +
              public int getNumDimensions()
              +
              Get the number of dimensions used in this Index.
              +
              +
              Returns:
              +
              The number of dimensions used by this Index, and which all vectors within this + Index must have.
              +
              +
              +
            • +
            • +
              +

              setNumThreads

              +
              public void setNumThreads(int numThreads)
              +
              Set the default number of threads to use when adding multiple vectors in bulk, or when querying + for multiple vectors simultaneously.
              +
              +
              Parameters:
              +
              numThreads - The default number of threads used for bulk-add or bulk-query methods if not + overridden in each method call. Note that this affects the number of threads started for + each method call - Voyager keeps no long-lived thread pool. For maximum efficiency, pass as + much data as possible to each bulk-add or bulk-query method call to minimize overhead.
              +
              +
              +
            • +
            • +
              +

              getNumThreads

              +
              public int getNumThreads()
              +
              Get the default number of threads used when adding multiple vectors in bulk oor when querying + for multiple vectors simultaneously.
              +
              +
              Returns:
              +
              The default number of threads used for bulk-add or bulk-query methods if not overridden + in each method call.
              +
              +
              +
            • +
            • +
              +

              saveIndex

              +
              public void saveIndex(String pathToIndex)
              +
              Save this Index to a file at the provided filename. This file can be reloaded by using + Index.load(...).
              +
              +
              Parameters:
              +
              pathToIndex - The output filename to write to.
              +
              +
              +
            • +
            • +
              +

              saveIndex

              +
              public void saveIndex(OutputStream outputStream)
              +
              Save this Index to the provided output stream. The stream will not be closed automatically - be + sure to close the stream saveIndex has completed. The data written to the stream can be + reloaded by using Index.load(...).
              +
              +
              Parameters:
              +
              outputStream - The output stream to write to. This stream will not be closed + automatically.
              +
              +
              +
            • +
            • +
              +

              asBytes

              +
              public byte[] asBytes()
              +
              Returns the contents of this index as an array of bytes. The resulting bytes will contain the + same data as if this index was serialized to disk and then read back into memory again.
              +
              +
              Returns:
              +
              A +
              +invalid reference +
              byte
              +
              + array representing the contents of the index
              +
              +
              +
            • +
            • +
              +

              addItem

              +
              public void addItem(float[] vector)
              +
              Add an item (a vector) to this Index. The item will automatically be given an + identifier equal to the return value of getNumElements().
              +
              +
              Parameters:
              +
              vector - The vector to add to the index.
              +
              Throws:
              +
              RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
              +
              +
              +
            • +
            • +
              +

              addItem

              +
              public void addItem(float[] vector, + long id)
              +
              Add an item (a vector) to this Index with the provided identifier.
              +
              +
              Parameters:
              +
              vector - The vector to add to the index.
              +
              id - The 64-bit integer denoting the identifier of this vector.
              +
              Throws:
              +
              RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
              +
              +
              +
            • +
            • +
              +

              addItems

              +
              public void addItems(float[][] vectors, + int numThreads)
              +
              Add multiple items (vectors) to this Index.
              +
              +
              Parameters:
              +
              vectors - The vectors to add to the index.
              +
              numThreads - The number of threads to use when adding the provided vectors. If -1 (the + default), the number of CPUs available on the current machine will be used.
              +
              Throws:
              +
              RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
              +
              +
              +
            • +
            • +
              +

              addItems

              +
              public void addItems(float[][] vectors, + long[] ids, + int numThreads)
              +
              Add multiple items (vectors) to this Index.
              +
              +
              Parameters:
              +
              vectors - The vectors to add to the index.
              +
              ids - The 64-bit identifiers that correspond with each of the provided vectors.
              +
              numThreads - The number of threads to use when adding the provided vectors. If -1 (the + default), the number of CPUs available on the current machine will be used. Note that this + causes a temporary C++ thread pool to be used. Instead of calling addItems(float[][],int) in a + tight loop, consider passing more data to each addItems(float[][],int) call instead to reduce + overhead.
              +
              Throws:
              +
              RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
              +
              RuntimeException - If the list of IDs does not have the same length as the list of + provided vectors.
              +
              +
              +
            • +
            • +
              +

              getVector

              +
              public float[] getVector(long id)
              +
              Get the vector for the provided identifier.
              +
              +
              Parameters:
              +
              id - The identifier whose vector will be fetched.
              +
              Returns:
              +
              A +
              +invalid reference +
              float
              +
              + array representing the values of the vector.
              +
              Throws:
              +
              RuntimeException - If the provided identifier is not present in the Index.
              +
              +
              +
            • +
            • +
              +

              getVectors

              +
              public float[][] getVectors(long[] ids)
              +
              Get the vectors for a provided array of identifiers.
              +
              +
              Parameters:
              +
              ids - The identifiers whose vector will be fetched.
              +
              Returns:
              +
              A nested +
              +invalid reference +
              float
              +
              + array representing the values of the vectors corresponding with + each ID.
              +
              Throws:
              +
              RuntimeException - If any of the provided identifiers are not present in the Index.
              +
              +
              +
            • +
            • +
              +

              getIDs

              +
              public long[] getIDs()
              +
              Get the list of identifiers currently stored by this index.
              +
              +
              Returns:
              +
              a +
              +invalid reference +
              long
              +
              + array of identifiers.
              +
              +
              +
            • +
            • +
              +

              query

              +
              public Index.QueryResults query(float[] queryVector, + int k)
              +
              Query this Index for approximate nearest neighbors of a single query vector.
              +
              +
              Parameters:
              +
              queryVector - A query vector to use for searching.
              +
              k - The number of nearest neighbors to return.
              +
              Returns:
              +
              A Index.QueryResults object, containing the neighbors found that are (approximately) + nearest to the query vector.
              +
              Throws:
              +
              RecallException - if fewer than k results can be found in the index.
              +
              +
              +
            • +
            • +
              +

              query

              +
              public Index.QueryResults[] query(float[][] queryVectors, + int k, + int numThreads)
              +
              Query this Index for approximate nearest neighbors of multiple query vectors.
              +
              +
              Parameters:
              +
              queryVectors - The query vectors to use for searching.
              +
              k - The number of nearest neighbors to return for each query vector
              +
              numThreads - The number of threads to use when searching. If -1, all available CPU cores + will be used. Note that passing a number of threads other than 1 will cause a temporary C++ + thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing + more data to each call instead to reduce overhead.
              +
              Returns:
              +
              An array of Index.QueryResults objects, each containing the neighbors found that are + (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
              +
              Throws:
              +
              RecallException - if fewer than k results can be found in the index for one or + more queries.
              +
              +
              +
            • +
            • +
              +

              query

              +
              public Index.QueryResults query(float[] queryVector, + int k, + long queryEf)
              +
              Query this Index for approximate nearest neighbors of a single query vector.
              +
              +
              Parameters:
              +
              queryVector - A query vector to use for searching.
              +
              k - The number of nearest neighbors to return.
              +
              queryEf - The per-query "ef" value to use. Larger values produce more accurate results at + the expense of query time.
              +
              Returns:
              +
              A Index.QueryResults object, containing the neighbors found that are (approximately) + nearest to the query vector.
              +
              Throws:
              +
              RecallException - if fewer than k results can be found in the index.
              +
              +
              +
            • +
            • +
              +

              query

              +
              public Index.QueryResults[] query(float[][] queryVectors, + int k, + int numThreads, + long queryEf)
              +
              Query this Index for approximate nearest neighbors of multiple query vectors.
              +
              +
              Parameters:
              +
              queryVectors - The query vectors to use for searching.
              +
              k - The number of nearest neighbors to return for each query vector
              +
              numThreads - The number of threads to use when searching. If -1, all available CPU cores + will be used. Note that passing a number of threads other than 1 will cause a temporary C++ + thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing + more data to each call instead to reduce overhead.
              +
              queryEf - The per-query "ef" value to use. Larger values produce more accurate results at + the expense of query time.
              +
              Returns:
              +
              An array of Index.QueryResults objects, each containing the neighbors found that are + (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
              +
              Throws:
              +
              RecallException - if fewer than k results can be found in the index for one or + more queries.
              +
              +
              +
            • +
            • +
              +

              markDeleted

              +
              public void markDeleted(long label)
              +
              Mark an element of the index as deleted. Deleted elements will be skipped when querying, but + will still be present in the index.
              +
              +
              Parameters:
              +
              label - The ID of the element to mark as deleted.
              +
              Throws:
              +
              RuntimeException - If the provided identifier is not present in the Index.
              +
              +
              +
            • +
            • +
              +

              unmarkDeleted

              +
              public void unmarkDeleted(long label)
              +
              Un-mark an element of the index as deleted, making it available again.
              +
              +
              Parameters:
              +
              label - The ID of the element to unmark as deleted.
              +
              Throws:
              +
              RuntimeException - If the provided identifier is not present in the Index.
              +
              +
              +
            • +
            • +
              +

              resizeIndex

              +
              public void resizeIndex(long newSize)
              +
              Change the maximum number of elements currently storable by this Index. This operation + reallocates the memory used by the index and can be quite slow, so it may be useful to set the + maximum number of elements in advance if that number is known.
              +
              +
              Parameters:
              +
              newSize - The new number of maximum elements to resize this Index to.
              +
              +
              +
            • +
            • +
              +

              getMaxElements

              +
              public long getMaxElements()
              +
              Get the maximum number of elements currently storable by this Index. If more elements + are added than getMaxElements(), the index will be automatically (but slowly) resized.
              +
              +
              Returns:
              +
              The number of elements (vectors) that are currently storable in this Index.
              +
              +
              +
            • +
            • +
              +

              getNumElements

              +
              public long getNumElements()
              +
              Get the number of elements currently in this Index.
              +
              +
              Returns:
              +
              The number of elements (vectors) in this Index. This count includes any deleted + elements.
              +
              +
              +
            • +
            • +
              +

              getEfConstruction

              +
              public long getEfConstruction()
              +
              Get the EF Construction value used when adding new elements to this Index.
              +
              +
              Returns:
              +
              The current EF Construction value (i.e.: the number of neighbors to search for when + adding new elements).
              +
              +
              +
            • +
            • +
              +

              getM

              +
              public long getM()
              +
              Get the M value used when adding new elements to this Index.
              +
              +
              Returns:
              +
              The current M value (i.e.: the number of links between adjacent vectors to create when + adding elements).
              +
              +
              +
            • +
            +
            +
          • +
          +
          + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.QueryResults.html new file mode 100644 index 00000000..c1ca9a72 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -0,0 +1,233 @@ + + + + +StringIndex.QueryResults (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          + +
          + +

          Class StringIndex.QueryResults

          +
          +
          java.lang.Object +
          com.spotify.voyager.jni.StringIndex.QueryResults
          +
          +
          +
          +
          Enclosing class:
          +
          StringIndex
          +
          +
          +
          public static class StringIndex.QueryResults +extends Object
          +
          A wrapper class for nearest neighbor query results.
          +
          +
          + +
          +
          +
            + +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              QueryResults

              +
              public QueryResults(String[] names, + float[] distances)
              +
              +
            • +
            +
            +
          • + +
          • +
            +

            Method Details

            +
              +
            • +
              +

              getNames

              +
              public String[] getNames()
              +
              +
            • +
            • +
              +

              getDistances

              +
              public float[] getDistances()
              +
              +
            • +
            • +
              +

              getName

              +
              public String getName(int index)
              +
              +
            • +
            • +
              +

              getDistance

              +
              public float getDistance(int index)
              +
              +
            • +
            • +
              +

              getNumResults

              +
              public int getNumResults()
              +
              +
            • +
            • +
              +

              toString

              +
              public String toString()
              +
              +
              Overrides:
              +
              toString in class Object
              +
              +
              +
            • +
            +
            +
          • +
          +
          + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.html b/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.html new file mode 100644 index 00000000..49aadfc9 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.html @@ -0,0 +1,570 @@ + + + + +StringIndex (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          + +
          + +

          Class StringIndex

          +
          +
          java.lang.Object +
          com.spotify.voyager.jni.StringIndex
          +
          +
          +
          +
          All Implemented Interfaces:
          +
          Closeable, AutoCloseable
          +
          +
          +
          public class StringIndex +extends Object +implements Closeable
          +
          Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID + to a provided String. + In C++, do we also want to make a second class called StringIndex that wraps around TypedIndex? + +

          StringIndex can only accommodate up to 2^31 - 1 (2.1B) items, despite typical Voyager indices + allowing up to 2^63 - 1 (9e18) items.

          +
          +
          + +
          +
          +
            + +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              StringIndex

              +
              public StringIndex(Index.SpaceType spaceType, + int numDimensions)
              +
              Instantiate a new empty index with the specified space type and dimensionality
              +
              +
              Parameters:
              +
              spaceType - Type of space and distance calculation used when determining distance between + embeddings in the index, @see com.spotify.voyager.jni.Index.SpaceType
              +
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              +
              +
              +
            • +
            • +
              +

              StringIndex

              +
              public StringIndex(Index.SpaceType spaceType, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
              +
              Instantiate an empty index with the specified index parameters
              +
              +
              Parameters:
              +
              spaceType - Type of space and distance calculation used when determining distance between + embeddings in the index, @see com.spotify.voyager.jni.Index.SpaceType
              +
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              +
              indexM - Number of connections made between nodes when inserting an element into the + index. Increasing this value can improve recall at the expense of higher memory usage
              +
              efConstruction - Search depth when inserting elements into the index. Increasing this + value can improve recall (up to a point) at the cost of increased indexing time
              +
              randomSeed - Random seed used during indexing
              +
              maxElements - Initial size of the underlying HNSW index
              +
              storageDataType - Type to store the embedding values as, @see + com.spotify.voyager.jni.StorageDataType
              +
              +
              +
            • +
            +
            +
          • + +
          • +
            +

            Method Details

            +
              +
            • +
              +

              load

              +
              public static StringIndex load(String indexFilename, + String nameListFilename, + Index.SpaceType spaceType, + int numDimensions, + Index.StorageDataType storageDataType)
              +
              Load a previously constructed index from the provided file location. It is important that the + dimensions, space type, and storage data type provided are the same that the index was + constructed with.
              +
              +
              Parameters:
              +
              indexFilename - Filename of the underlying HNSW index
              +
              nameListFilename - Filename of the JSON encoded names list
              +
              spaceType - @see com.spotify.voyager.jni.Index.SpaceType
              +
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              +
              storageDataType - @see com.spotify.voyager.jni.Index.StorageDataType
              +
              Returns:
              +
              reference to the loaded StringIndex
              +
              +
              +
            • +
            • +
              +

              load

              +
              public static StringIndex load(InputStream indexInputStream, + InputStream nameListInputStream, + Index.SpaceType spaceType, + int numDimensions, + Index.StorageDataType storageDataType)
              +
              Load a previously constructed index from the provided input streams. It is important that the + dimensions, space type, and storage data type provided are the same that the index was + constructed with.
              +
              +
              Parameters:
              +
              indexInputStream - input stream pointing to the underlying HNSW index
              +
              nameListInputStream - input stream pointing to the JSON encoded names list
              +
              spaceType - @see com.spotify.voyager.jni.Index.SpaceType
              +
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              +
              storageDataType - @see com.spotify.voyager.jni.Index.StorageDataType
              +
              Returns:
              +
              reference to the loaded StringIndex
              +
              +
              +
            • +
            • +
              +

              load

              +
              public static StringIndex load(String indexFilename, + String nameListFilename)
              +
              Load a previously constructed index from the provided file location. The space type, + dimensions, and storage data type are read from the file metadata.
              +
              +
              Parameters:
              +
              indexFilename - Filename of the underlying HNSW index
              +
              nameListFilename - Filename of the JSON encoded names list
              +
              Returns:
              +
              reference to the loaded StringIndex
              +
              +
              +
            • +
            • +
              +

              load

              +
              public static StringIndex load(InputStream indexInputStream, + InputStream nameListInputStream)
              +
              Load a previously constructed index from the provided input stream. The space type, dimensions, + and storage data type are read from the file metadata.
              +
              +
              Parameters:
              +
              indexInputStream - input stream pointing to the underlying HNSW index
              +
              nameListInputStream - input stream pointing to the JSON encoded names list
              +
              Returns:
              +
              reference to the loaded StringIndex
              +
              +
              +
            • +
            • +
              +

              saveIndex

              +
              public void saveIndex(String outputDirectory) + throws IOException
              +
              Save the underlying index and JSON encoded name list to the provided output directory
              +
              +
              Parameters:
              +
              outputDirectory - directory to output files to
              +
              Throws:
              +
              IOException - when there is an error writing to JSON or saving to disk
              +
              +
              +
            • +
            • +
              +

              saveIndex

              +
              public void saveIndex(String outputDirectory, + String indexFilename, + String nameListFilename) + throws IOException
              +
              +
              Throws:
              +
              IOException
              +
              +
              +
            • +
            • +
              +

              saveIndex

              +
              public void saveIndex(OutputStream indexOutputStream, + OutputStream namesListOutputStream) + throws IOException
              +
              Save the underlying HNSW index and JSON encoded names list to the provided output streams
              +
              +
              Parameters:
              +
              indexOutputStream - output stream pointing to the location to save the HNSW index
              +
              namesListOutputStream - output stream pointing to the location to save the JSON names list
              +
              Throws:
              +
              IOException - when there is an error writing to JSON or the output streams
              +
              +
              +
            • +
            • +
              +

              addItem

              +
              public void addItem(String name, + float[] vector)
              +
              +
            • +
            • +
              +

              addItem

              +
              public void addItem(String name, + List<Float> vector)
              +
              +
            • +
            • +
              +

              addItems

              +
              public void addItems(Map<String,List<Float>> vectors)
              +
              +
            • +
            • +
              +

              getNumElements

              +
              public long getNumElements()
              +
              +
            • +
            • +
              +

              getVector

              +
              public float[] getVector(String name)
              +
              +
            • +
            • +
              +

              query

              +
              public StringIndex.QueryResults query(float[] queryVector, + int numNeighbors, + int ef)
              +
              Find the nearest neighbors of the provided embedding.
              +
              +
              Parameters:
              +
              queryVector - The vector to center the search around.
              +
              numNeighbors - The number of neighbors to return. The number of results returned may be + smaller than this value if the index does not contain enough items.
              +
              ef - How many neighbors to explore during search when looking for nearest neighbors. + Increasing this value can improve recall (up to a point) at the cost of increased search + latency. The minimum value of this parameter is the requested number of neighbors, and the + maximum value is the number of items in the index.
              +
              Returns:
              +
              a QueryResults object, containing the names of the neighbors and each neighbor's + distance from the query vector, sorted in ascending order of distance
              +
              +
              +
            • +
            • +
              +

              query

              +
              public StringIndex.QueryResults[] query(float[][] queryVectors, + int numNeighbors, + int numThreads, + int ef)
              +
              Query for multiple target vectors in parallel.
              +
              +
              Parameters:
              +
              queryVectors - Array of query vectors to search around
              +
              numNeighbors - Number of neighbors to get for each target
              +
              numThreads - Number of threads to use for the underlying index search. -1 uses all + available CPU cores
              +
              ef - Search depth in the graph
              +
              Returns:
              +
              Array of QueryResults, one for each target vector
              +
              +
              +
            • +
            • +
              +

              close

              +
              public void close() + throws IOException
              +
              +
              Specified by:
              +
              close in interface AutoCloseable
              +
              Specified by:
              +
              close in interface Closeable
              +
              Throws:
              +
              IOException
              +
              +
              +
            • +
            • +
              +

              resizeIndex

              +
              public void resizeIndex(long newSize)
              +
              Change the maximum number of elements currently storable by this Index. This operation + reallocates the memory used by the index and can be quite slow, so it may be useful to set the + maximum number of elements in advance if that number is known.
              +
              +
              Parameters:
              +
              newSize - The new number of maximum elements to resize this Index to.
              +
              +
              +
            • +
            • +
              +

              getMaxElements

              +
              public long getMaxElements()
              +
              Get the maximum number of elements currently storable by this Index. If more elements + are added than getMaxElements(), the index will be automatically (but slowly) resized.
              +
              +
              Returns:
              +
              The number of elements (vectors) that are currently storable in this Index.
              +
              +
              +
            • +
            +
            +
          • +
          +
          + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.QueryResults.html b/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.QueryResults.html new file mode 100644 index 00000000..3ba324d7 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.QueryResults.html @@ -0,0 +1,114 @@ + + + + +Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Class
          com.spotify.voyager.jni.Index.QueryResults

          +
          +
          Packages that use Index.QueryResults
          +
          +
          Package
          +
          Description
          + +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          +
          +
          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.SpaceType.html b/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.SpaceType.html new file mode 100644 index 00000000..ab3a9291 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.SpaceType.html @@ -0,0 +1,186 @@ + + + + +Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Enum
          com.spotify.voyager.jni.Index.SpaceType

          +
          +
          Packages that use Index.SpaceType
          +
          +
          Package
          +
          Description
          + +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          +
          +
          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.StorageDataType.html b/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.StorageDataType.html new file mode 100644 index 00000000..0c5226e2 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.StorageDataType.html @@ -0,0 +1,168 @@ + + + + +Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Enum
          com.spotify.voyager.jni.Index.StorageDataType

          +
          +
          Packages that use Index.StorageDataType
          +
          +
          Package
          +
          Description
          + +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          +
          +
          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.html b/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.html new file mode 100644 index 00000000..613f8def --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/class-use/Index.html @@ -0,0 +1,116 @@ + + + + +Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Class
          com.spotify.voyager.jni.Index

          +
          +
          Packages that use Index
          +
          +
          Package
          +
          Description
          + +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          +
          +
          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html b/docs/java/apidocs/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html new file mode 100644 index 00000000..a19d13d8 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html @@ -0,0 +1,101 @@ + + + + +Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Class
          com.spotify.voyager.jni.StringIndex.QueryResults

          +
          +
          Packages that use StringIndex.QueryResults
          +
          +
          Package
          +
          Description
          + +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          +
          +
          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/class-use/StringIndex.html b/docs/java/apidocs/com/spotify/voyager/jni/class-use/StringIndex.html new file mode 100644 index 00000000..3a9ec11b --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/class-use/StringIndex.html @@ -0,0 +1,116 @@ + + + + +Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Class
          com.spotify.voyager.jni.StringIndex

          +
          +
          Packages that use StringIndex
          +
          +
          Package
          +
          Description
          + +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          +
          +
          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/exception/RecallException.html b/docs/java/apidocs/com/spotify/voyager/jni/exception/RecallException.html new file mode 100644 index 00000000..88234ce9 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/exception/RecallException.html @@ -0,0 +1,197 @@ + + + + +RecallException (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          + +
          + +

          Class RecallException

          +
          +
          java.lang.Object +
          java.lang.Throwable +
          java.lang.Exception +
          java.lang.RuntimeException +
          com.spotify.voyager.jni.exception.RecallException
          +
          +
          +
          +
          +
          +
          +
          All Implemented Interfaces:
          +
          Serializable
          +
          +
          +
          public class RecallException +extends RuntimeException
          +
          An exception that indicates an error about the recall performance of the index.
          +
          +
          See Also:
          +
          + +
          +
          +
          +
          + +
          +
          +
            + +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              RecallException

              +
              public RecallException(String message)
              +
              Constructs a new RecallException with the specified detail message.
              +
              +
              Parameters:
              +
              message - the detail message
              +
              +
              +
            • +
            • +
              +

              RecallException

              +
              public RecallException(String message, + Throwable cause)
              +
              Constructs a new RecallException with the specified detail message and cause.
              +
              +
              Parameters:
              +
              message - the detail message
              +
              cause - the cause of the exception
              +
              +
              +
            • +
            +
            +
          • +
          +
          + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/exception/class-use/RecallException.html b/docs/java/apidocs/com/spotify/voyager/jni/exception/class-use/RecallException.html new file mode 100644 index 00000000..6cc33952 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/exception/class-use/RecallException.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.spotify.voyager.jni.exception.RecallException (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Class
          com.spotify.voyager.jni.exception.RecallException

          +
          +No usage of com.spotify.voyager.jni.exception.RecallException
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/exception/package-summary.html b/docs/java/apidocs/com/spotify/voyager/jni/exception/package-summary.html new file mode 100644 index 00000000..a20022cc --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/exception/package-summary.html @@ -0,0 +1,113 @@ + + + + +com.spotify.voyager.jni.exception (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Package com.spotify.voyager.jni.exception

          +
          +
          +
          package com.spotify.voyager.jni.exception
          +
          +
            +
          • + +
          • +
          • +
            +
            Exception Classes
            +
            +
            Class
            +
            Description
            + +
            +
            An exception that indicates an error about the recall performance of the index.
            +
            +
            +
            +
          • +
          +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/exception/package-tree.html b/docs/java/apidocs/com/spotify/voyager/jni/exception/package-tree.html new file mode 100644 index 00000000..702854b4 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/exception/package-tree.html @@ -0,0 +1,88 @@ + + + + +com.spotify.voyager.jni.exception Class Hierarchy (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Hierarchy For Package com.spotify.voyager.jni.exception

          +
          +Package Hierarchies: + +
          +

          Class Hierarchy

          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/exception/package-use.html b/docs/java/apidocs/com/spotify/voyager/jni/exception/package-use.html new file mode 100644 index 00000000..7f1a02a9 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/exception/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package com.spotify.voyager.jni.exception (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Package
          com.spotify.voyager.jni.exception

          +
          +No usage of com.spotify.voyager.jni.exception
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/package-summary.html b/docs/java/apidocs/com/spotify/voyager/jni/package-summary.html new file mode 100644 index 00000000..6cf2f4f3 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/package-summary.html @@ -0,0 +1,143 @@ + + + + +com.spotify.voyager.jni (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Package com.spotify.voyager.jni

          +
          +
          +
          package com.spotify.voyager.jni
          +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          +
          +
            +
          • + +
          • +
          • +
            +
            +
            +
            +
            Class
            +
            Description
            + +
            +
            A Voyager index, providing storage of floating-point vectors and the ability to efficiently + search among those vectors.
            +
            + +
            +
            A container for query results, returned by Index.
            +
            + +
            +
            The space, also known as distance metric, to use when searching.
            +
            + +
            +
            The datatype used to use when storing vectors on disk.
            +
            + +
            +
            Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID + to a provided String.
            +
            + +
            +
            A wrapper class for nearest neighbor query results.
            +
            +
            +
            +
            +
          • +
          +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/package-tree.html b/docs/java/apidocs/com/spotify/voyager/jni/package-tree.html new file mode 100644 index 00000000..3bd67d01 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/package-tree.html @@ -0,0 +1,94 @@ + + + + +com.spotify.voyager.jni Class Hierarchy (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Hierarchy For Package com.spotify.voyager.jni

          +
          +Package Hierarchies: + +
          +

          Class Hierarchy

          + +
          +
          +

          Enum Hierarchy

          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/package-use.html b/docs/java/apidocs/com/spotify/voyager/jni/package-use.html new file mode 100644 index 00000000..651ffda7 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/package-use.html @@ -0,0 +1,110 @@ + + + + +Uses of Package com.spotify.voyager.jni (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Package
          com.spotify.voyager.jni

          +
          +
          Packages that use com.spotify.voyager.jni
          +
          +
          Package
          +
          Description
          + +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          +
          +
          +
            +
          • +
            + +
            +
            Class
            +
            Description
            + +
            +
            A Voyager index, providing storage of floating-point vectors and the ability to efficiently + search among those vectors.
            +
            + +
            +
            A container for query results, returned by Index.
            +
            + +
            +
            The space, also known as distance metric, to use when searching.
            +
            + +
            +
            The datatype used to use when storing vectors on disk.
            +
            + +
            +
            Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID + to a provided String.
            +
            + +
            +
            A wrapper class for nearest neighbor query results.
            +
            +
            +
            +
          • +
          +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/utils/JniLibExtractor.html b/docs/java/apidocs/com/spotify/voyager/jni/utils/JniLibExtractor.html new file mode 100644 index 00000000..cc98a98b --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/utils/JniLibExtractor.html @@ -0,0 +1,177 @@ + + + + +JniLibExtractor (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          + +
          + +

          Class JniLibExtractor

          +
          +
          java.lang.Object +
          com.spotify.voyager.jni.utils.JniLibExtractor
          +
          +
          +
          +
          public class JniLibExtractor +extends Object
          +
          +
          + +
          +
          +
            + +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              JniLibExtractor

              +
              public JniLibExtractor()
              +
              +
            • +
            +
            +
          • + +
          • +
            +

            Method Details

            +
              +
            • +
              +

              extractBinaries

              +
              public static String extractBinaries(String libname)
              +
              +
            • +
            +
            +
          • +
          +
          + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/utils/TinyJson.html b/docs/java/apidocs/com/spotify/voyager/jni/utils/TinyJson.html new file mode 100644 index 00000000..19497ec7 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/utils/TinyJson.html @@ -0,0 +1,195 @@ + + + + +TinyJson (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          + +
          + +

          Class TinyJson

          +
          +
          java.lang.Object +
          com.spotify.voyager.jni.utils.TinyJson
          +
          +
          +
          +
          public class TinyJson +extends Object
          +
          A dependency-free, super tiny JSON serde class that only supports reading and writing lists of + strings.
          +
          +
          + +
          +
          +
            + +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              TinyJson

              +
              public TinyJson()
              +
              +
            • +
            +
            +
          • + +
          • +
            +

            Method Details

            + +
            +
          • +
          +
          + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html b/docs/java/apidocs/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html new file mode 100644 index 00000000..c8302ae9 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Class
          com.spotify.voyager.jni.utils.JniLibExtractor

          +
          +No usage of com.spotify.voyager.jni.utils.JniLibExtractor
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/utils/class-use/TinyJson.html b/docs/java/apidocs/com/spotify/voyager/jni/utils/class-use/TinyJson.html new file mode 100644 index 00000000..0ac9d2c8 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/utils/class-use/TinyJson.html @@ -0,0 +1,62 @@ + + + + +Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Class
          com.spotify.voyager.jni.utils.TinyJson

          +
          +No usage of com.spotify.voyager.jni.utils.TinyJson
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/utils/package-summary.html b/docs/java/apidocs/com/spotify/voyager/jni/utils/package-summary.html new file mode 100644 index 00000000..ea3f09d8 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/utils/package-summary.html @@ -0,0 +1,116 @@ + + + + +com.spotify.voyager.jni.utils (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Package com.spotify.voyager.jni.utils

          +
          +
          +
          package com.spotify.voyager.jni.utils
          +
          +
            +
          • + +
          • +
          • +
            +
            Classes
            +
            +
            Class
            +
            Description
            + +
             
            + +
            +
            A dependency-free, super tiny JSON serde class that only supports reading and writing lists of + strings.
            +
            +
            +
            +
          • +
          +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/utils/package-tree.html b/docs/java/apidocs/com/spotify/voyager/jni/utils/package-tree.html new file mode 100644 index 00000000..45701caf --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/utils/package-tree.html @@ -0,0 +1,77 @@ + + + + +com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Hierarchy For Package com.spotify.voyager.jni.utils

          +
          +Package Hierarchies: + +
          +

          Class Hierarchy

          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/jni/utils/package-use.html b/docs/java/apidocs/com/spotify/voyager/jni/utils/package-use.html new file mode 100644 index 00000000..f1a0fd1d --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/jni/utils/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Package
          com.spotify.voyager.jni.utils

          +
          +No usage of com.spotify.voyager.jni.utils
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/package-summary.html b/docs/java/apidocs/com/spotify/voyager/package-summary.html new file mode 100644 index 00000000..3baee1b5 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/package-summary.html @@ -0,0 +1,124 @@ + + + + +com.spotify.voyager (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Package com.spotify.voyager

          +
          +
          +
          package com.spotify.voyager
          +
          +
          Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector + data. For most use cases, Index will be the primary interface to + Voyager's functionality. + +
          +   // Import `Index`, the basic class that implements Voyager's functionality:
          +   import com.spotify.voyager.jni.Index;
          +
          +   // Create a new Index that compares 4-dimensional vectors via Euclidean distance:
          +   Index index = new Index(Index.SpaceType.Euclidean, 4);
          +
          +   // Add some data to the index:
          +   index.addItem(new float[]{1.0f, 2.0f, 3.0f, 4.0f});
          +   index.addItem(new float[]{2.0f, 3.0f, 4.0f, 5.0f});
          +
          +   // Query the index to return the `k` nearest neighbors of a given vector:
          +   Index.QueryResults results = index.query(new float[]{3.0f, 4.0f, 5.0f, 6.0f}, 1);
          +
          +   // Our query will return the 1th (second) item that was added, as it's the closest:
          +   assert(results.getLabels()[0] == 1);
          +
          +   // Serialize this index to use it again later:
          +   index.saveIndex("my_tiny_index.voy");
          + 
          +
          +
          +
            +
          • + +
          • +
          +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/package-tree.html b/docs/java/apidocs/com/spotify/voyager/package-tree.html new file mode 100644 index 00000000..912341bf --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/package-tree.html @@ -0,0 +1,66 @@ + + + + +com.spotify.voyager Class Hierarchy (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Hierarchy For Package com.spotify.voyager

          +
          +Package Hierarchies: + +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/com/spotify/voyager/package-use.html b/docs/java/apidocs/com/spotify/voyager/package-use.html new file mode 100644 index 00000000..43d5a4e2 --- /dev/null +++ b/docs/java/apidocs/com/spotify/voyager/package-use.html @@ -0,0 +1,62 @@ + + + + +Uses of Package com.spotify.voyager (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Uses of Package
          com.spotify.voyager

          +
          +No usage of com.spotify.voyager
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/copy.svg b/docs/java/apidocs/copy.svg new file mode 100644 index 00000000..7c46ab15 --- /dev/null +++ b/docs/java/apidocs/copy.svg @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/docs/java/apidocs/element-list b/docs/java/apidocs/element-list new file mode 100644 index 00000000..46ced86b --- /dev/null +++ b/docs/java/apidocs/element-list @@ -0,0 +1,4 @@ +com.spotify.voyager +com.spotify.voyager.jni +com.spotify.voyager.jni.exception +com.spotify.voyager.jni.utils diff --git a/docs/java/apidocs/help-doc.html b/docs/java/apidocs/help-doc.html new file mode 100644 index 00000000..7b417bc3 --- /dev/null +++ b/docs/java/apidocs/help-doc.html @@ -0,0 +1,198 @@ + + + + +API Help (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +

          JavaDoc Help

          + +
          +
          +

          Navigation

          +Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces + +
          +
          +
          +

          Kinds of Pages

          +The following sections describe the different kinds of pages in this collection. +
          +

          Overview

          +

          The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

          +
          +
          +

          Package

          +

          Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

          +
            +
          • Interfaces
          • +
          • Classes
          • +
          • Enums
          • +
          • Exception Classes
          • +
          • Annotation Types
          • +
          +
          +
          +

          Class or Interface

          +

          Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

          +
            +
          • Class Inheritance Diagram
          • +
          • Direct Subclasses
          • +
          • All Known Subinterfaces
          • +
          • All Known Implementing Classes
          • +
          • Class or Interface Declaration
          • +
          • Class or Interface Description
          • +
          +
          +
            +
          • Nested Class Summary
          • +
          • Enum Constant Summary
          • +
          • Field Summary
          • +
          • Property Summary
          • +
          • Constructor Summary
          • +
          • Method Summary
          • +
          • Required Element Summary
          • +
          • Optional Element Summary
          • +
          +
          +
            +
          • Enum Constant Details
          • +
          • Field Details
          • +
          • Property Details
          • +
          • Constructor Details
          • +
          • Method Details
          • +
          • Element Details
          • +
          +

          Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

          +

          The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

          +
          +
          +

          Other Files

          +

          Packages and modules may contain pages with additional information related to the declarations nearby.

          +
          +
          +

          Use

          +

          Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

          +
          +
          +

          Tree (Class Hierarchy)

          +

          There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

          +
            +
          • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
          • +
          • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
          • +
          +
          +
          +

          Serialized Form

          +

          Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.

          +
          +
          +

          All Packages

          +

          The All Packages page contains an alphabetic index of all packages contained in the documentation.

          +
          +
          +

          All Classes and Interfaces

          +

          The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

          +
          +
          +

          Index

          +

          The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

          +
          +
          +
          +This help file applies to API documentation generated by the standard doclet.
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/index-all.html b/docs/java/apidocs/index-all.html new file mode 100644 index 00000000..de8a231d --- /dev/null +++ b/docs/java/apidocs/index-all.html @@ -0,0 +1,470 @@ + + + + +Index (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Index

          +
          +A C D E F G I J L M Q R S T U V W 
          All Classes and Interfaces|All Packages|Serialized Form +

          A

          +
          +
          addItem(float[]) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Add an item (a vector) to this Index.
          +
          +
          addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Add an item (a vector) to this Index with the provided identifier.
          +
          +
          addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
          +
           
          +
          addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
          +
           
          +
          addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Add multiple items (vectors) to this Index.
          +
          +
          addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Add multiple items (vectors) to this Index.
          +
          +
          addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
          +
           
          +
          asBytes() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Returns the contents of this index as an array of bytes.
          +
          +
          +

          C

          +
          +
          close() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Close this Index and release any memory held by it.
          +
          +
          close() - Method in class com.spotify.voyager.jni.StringIndex
          +
           
          +
          com.spotify.voyager - package com.spotify.voyager
          +
          +
          Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector + data.
          +
          +
          com.spotify.voyager.jni - package com.spotify.voyager.jni
          +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          +
          com.spotify.voyager.jni.exception - package com.spotify.voyager.jni.exception
          +
           
          +
          com.spotify.voyager.jni.utils - package com.spotify.voyager.jni.utils
          +
           
          +
          Cosine - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
          +
          +
          Cosine distance; i.e. normalized dot product.
          +
          +
          +

          D

          +
          +
          distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
          +
          +
          A list of distances from each item ID to the query vector for this query.
          +
          +
          +

          E

          +
          +
          E4M3 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
          +
          +
          A custom 8-bit floating point data type with range [-448, 448] and variable precision.
          +
          +
          Euclidean - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
          +
          +
          Euclidean distance, also known as L2 distance.
          +
          +
          extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
          +
           
          +
          +

          F

          +
          +
          finalize() - Method in class com.spotify.voyager.jni.Index
          +
           
          +
          Float32 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
          +
          +
          A 32-bit floating point ("Float") data type.
          +
          +
          Float8 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
          +
          +
          An 8-bit floating point data type that expects all values to be on [-1, 1].
          +
          +
          +

          G

          +
          +
          getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
          +
           
          +
          getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
          +
          +
          Retrieve the list of distances between query vectors and item vectors for the results of this + query.
          +
          +
          getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
          +
           
          +
          getEf() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the default EF ("query search depth") that will be uses when Index.query(float[], int) is called.
          +
          +
          getEfConstruction() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the EF Construction value used when adding new elements to this Index.
          +
          +
          getIDs() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the list of identifiers currently stored by this index.
          +
          +
          getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
          +
          +
          Retrieve the list of item IDs ("labels") returned by this query.
          +
          +
          getM() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the M value used when adding new elements to this Index.
          +
          +
          getMaxElements() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the maximum number of elements currently storable by this Index.
          +
          +
          getMaxElements() - Method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Get the maximum number of elements currently storable by this Index.
          +
          +
          getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
          +
           
          +
          getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
          +
           
          +
          getNumDimensions() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the number of dimensions used in this Index.
          +
          +
          getNumElements() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the number of elements currently in this Index.
          +
          +
          getNumElements() - Method in class com.spotify.voyager.jni.StringIndex
          +
           
          +
          getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
          +
           
          +
          getNumThreads() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the default number of threads used when adding multiple vectors in bulk oor when querying + for multiple vectors simultaneously.
          +
          +
          getSpace() - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the Index.SpaceType that this Index uses to store and compare vectors.
          +
          +
          getVector(long) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the vector for the provided identifier.
          +
          +
          getVector(String) - Method in class com.spotify.voyager.jni.StringIndex
          +
           
          +
          getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Get the vectors for a provided array of identifiers.
          +
          +
          +

          I

          +
          +
          Index - Class in com.spotify.voyager.jni
          +
          +
          A Voyager index, providing storage of floating-point vectors and the ability to efficiently + search among those vectors.
          +
          +
          Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
          +
          +
          Create a new Index that uses the given Index.SpaceType to store and compare + numDimensions-dimensional vectors.
          +
          +
          Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
          +
          +
          Create a new Index that uses the given Index.SpaceType to store and compare + numDimensions-dimensional vectors.
          +
          +
          Index.QueryResults - Class in com.spotify.voyager.jni
          +
          +
          A container for query results, returned by Index.
          +
          +
          Index.SpaceType - Enum in com.spotify.voyager.jni
          +
          +
          The space, also known as distance metric, to use when searching.
          +
          +
          Index.StorageDataType - Enum in com.spotify.voyager.jni
          +
          +
          The datatype used to use when storing vectors on disk.
          +
          +
          InnerProduct - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
          +
          +
          Inner (dot) product.
          +
          +
          +

          J

          +
          +
          JniLibExtractor - Class in com.spotify.voyager.jni.utils
          +
           
          +
          JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
          +
           
          +
          +

          L

          +
          +
          labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
          +
          +
          A list of item IDs ("labels").
          +
          +
          load(InputStream) - Static method in class com.spotify.voyager.jni.Index
          +
          +
          Interpret the contents of a java.io.InputStream as the contents of a Voyager index file + and create a new Index initialized with the data provided by that stream.
          +
          +
          load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
          +
          +
          Interpret the contents of a java.io.InputStream as the contents of a Voyager index file + and create a new Index initialized with the data provided by that stream.
          +
          +
          load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Load a previously constructed index from the provided input stream.
          +
          +
          load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Load a previously constructed index from the provided input streams.
          +
          +
          load(String) - Static method in class com.spotify.voyager.jni.Index
          +
          +
          Load a Voyager index file and create a new Index initialized with the data in that + file.
          +
          +
          load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
          +
          +
          Load a Voyager index file and create a new Index initialized with the data in that + file.
          +
          +
          load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Load a previously constructed index from the provided file location.
          +
          +
          load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Load a previously constructed index from the provided file location.
          +
          +
          +

          M

          +
          +
          markDeleted(long) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Mark an element of the index as deleted.
          +
          +
          +

          Q

          +
          +
          query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Query this Index for approximate nearest neighbors of multiple query vectors.
          +
          +
          query(float[][], int, int, int) - Method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Query for multiple target vectors in parallel.
          +
          +
          query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Query this Index for approximate nearest neighbors of multiple query vectors.
          +
          +
          query(float[], int) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Query this Index for approximate nearest neighbors of a single query vector.
          +
          +
          query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Find the nearest neighbors of the provided embedding.
          +
          +
          query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Query this Index for approximate nearest neighbors of a single query vector.
          +
          +
          QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
          +
          +
          Instantiates a new QueryResults object, provided two identical-length arrays of labels and + their corresponding distances.
          +
          +
          QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
          +
           
          +
          +

          R

          +
          +
          readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
          +
           
          +
          RecallException - Exception Class in com.spotify.voyager.jni.exception
          +
          +
          An exception that indicates an error about the recall performance of the index.
          +
          +
          RecallException(String) - Constructor for exception class com.spotify.voyager.jni.exception.RecallException
          +
          +
          Constructs a new RecallException with the specified detail message.
          +
          +
          RecallException(String, Throwable) - Constructor for exception class com.spotify.voyager.jni.exception.RecallException
          +
          +
          Constructs a new RecallException with the specified detail message and cause.
          +
          +
          resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Change the maximum number of elements currently storable by this Index.
          +
          +
          resizeIndex(long) - Method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Change the maximum number of elements currently storable by this Index.
          +
          +
          +

          S

          +
          +
          saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Save this Index to the provided output stream.
          +
          +
          saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Save the underlying HNSW index and JSON encoded names list to the provided output streams
          +
          +
          saveIndex(String) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Save this Index to a file at the provided filename.
          +
          +
          saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
          +
          +
          Save the underlying index and JSON encoded name list to the provided output directory
          +
          +
          saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
          +
           
          +
          setEf(long) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Set the default EF ("query search depth") to use when Index.query(float[], int) is called.
          +
          +
          setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Set the default number of threads to use when adding multiple vectors in bulk, or when querying + for multiple vectors simultaneously.
          +
          +
          StringIndex - Class in com.spotify.voyager.jni
          +
          +
          Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID + to a provided String.
          +
          +
          StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
          +
          +
          Instantiate a new empty index with the specified space type and dimensionality
          +
          +
          StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
          +
          +
          Instantiate an empty index with the specified index parameters
          +
          +
          StringIndex.QueryResults - Class in com.spotify.voyager.jni
          +
          +
          A wrapper class for nearest neighbor query results.
          +
          +
          +

          T

          +
          +
          TinyJson - Class in com.spotify.voyager.jni.utils
          +
          +
          A dependency-free, super tiny JSON serde class that only supports reading and writing lists of + strings.
          +
          +
          TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
          +
           
          +
          toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
          +
           
          +
          toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
          +
           
          +
          +

          U

          +
          +
          unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
          +
          +
          Un-mark an element of the index as deleted, making it available again.
          +
          +
          +

          V

          +
          +
          valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
          +
          +
          Returns the enum constant of this type with the specified name.
          +
          +
          valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
          +
          +
          Returns the enum constant of this type with the specified name.
          +
          +
          values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
          +
          +
          Returns an array containing the constants of this enum type, in +the order they are declared.
          +
          +
          values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
          +
          +
          Returns an array containing the constants of this enum type, in +the order they are declared.
          +
          +
          +

          W

          +
          +
          writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
          +
           
          +
          +A C D E F G I J L M Q R S T U V W 
          All Classes and Interfaces|All Packages|Serialized Form
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/index.html b/docs/java/apidocs/index.html new file mode 100644 index 00000000..31481600 --- /dev/null +++ b/docs/java/apidocs/index.html @@ -0,0 +1,82 @@ + + + + +Overview (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          voyager 2.0.9 API

          +
          +
          +
          Packages
          +
          +
          Package
          +
          Description
          + +
          +
          Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector + data.
          +
          + +
          +
          Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
          +
          + +
           
          + +
           
          +
          +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/legal/ADDITIONAL_LICENSE_INFO b/docs/java/apidocs/legal/ADDITIONAL_LICENSE_INFO new file mode 100644 index 00000000..ff700cd0 --- /dev/null +++ b/docs/java/apidocs/legal/ADDITIONAL_LICENSE_INFO @@ -0,0 +1,37 @@ + ADDITIONAL INFORMATION ABOUT LICENSING + +Certain files distributed by Oracle America, Inc. and/or its affiliates are +subject to the following clarification and special exception to the GPLv2, +based on the GNU Project exception for its Classpath libraries, known as the +GNU Classpath Exception. + +Note that Oracle includes multiple, independent programs in this software +package. Some of those programs are provided under licenses deemed +incompatible with the GPLv2 by the Free Software Foundation and others. +For example, the package includes programs licensed under the Apache +License, Version 2.0 and may include FreeType. Such programs are licensed +to you under their original licenses. + +Oracle facilitates your further distribution of this package by adding the +Classpath Exception to the necessary parts of its GPLv2 code, which permits +you to use that code in combination with other independent modules not +licensed under the GPLv2. However, note that this would not permit you to +commingle code under an incompatible license with Oracle's GPLv2 licensed +code by, for example, cutting and pasting such code into a file also +containing Oracle's GPLv2 licensed code and then distributing the result. + +Additionally, if you were to remove the Classpath Exception from any of the +files to which it applies and distribute the result, you would likely be +required to license some or all of the other code in that distribution under +the GPLv2 as well, and since the GPLv2 is incompatible with the license terms +of some items included in the distribution by Oracle, removing the Classpath +Exception could therefore effectively compromise your ability to further +distribute the package. + +Failing to distribute notices associated with some files may also create +unexpected legal consequences. + +Proceed with caution and we recommend that you obtain the advice of a lawyer +skilled in open source matters before removing the Classpath Exception or +making modifications to this package which may subsequently be redistributed +and/or involve the use of third party software. diff --git a/docs/java/apidocs/legal/ASSEMBLY_EXCEPTION b/docs/java/apidocs/legal/ASSEMBLY_EXCEPTION new file mode 100644 index 00000000..42966666 --- /dev/null +++ b/docs/java/apidocs/legal/ASSEMBLY_EXCEPTION @@ -0,0 +1,27 @@ + +OPENJDK ASSEMBLY EXCEPTION + +The OpenJDK source code made available by Oracle America, Inc. (Oracle) at +openjdk.org ("OpenJDK Code") is distributed under the terms of the GNU +General Public License version 2 +only ("GPL2"), with the following clarification and special exception. + + Linking this OpenJDK Code statically or dynamically with other code + is making a combined work based on this library. Thus, the terms + and conditions of GPL2 cover the whole combination. + + As a special exception, Oracle gives you permission to link this + OpenJDK Code with certain code licensed by Oracle as indicated at + https://openjdk.org/legal/exception-modules-2007-05-08.html + ("Designated Exception Modules") to produce an executable, + regardless of the license terms of the Designated Exception Modules, + and to copy and distribute the resulting executable under GPL2, + provided that the Designated Exception Modules continue to be + governed by the licenses under which they were offered by Oracle. + +As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code +to build an executable that includes those portions of necessary code that +Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 +with the Classpath exception). If you modify or add to the OpenJDK code, +that new GPL2 code may still be combined with Designated Exception Modules +if the new code is made subject to this exception by its copyright holder. diff --git a/docs/java/apidocs/legal/LICENSE b/docs/java/apidocs/legal/LICENSE new file mode 100644 index 00000000..8b400c7a --- /dev/null +++ b/docs/java/apidocs/legal/LICENSE @@ -0,0 +1,347 @@ +The GNU General Public License (GPL) + +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU General Public License is intended to +guarantee your freedom to share and change free software--to make sure the +software is free for all its users. This General Public License applies to +most of the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom to +distribute copies of free software (and charge for this service if you wish), +that you receive source code or can get it if you want it, that you can change +the software or use pieces of it in new free programs; and that you know you +can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to deny +you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must +make sure that they, too, receive or can get the source code. And you must +show them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients to +know that what they have is not the original, so that any problems introduced +by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will +individually obtain patent licenses, in effect making the program proprietary. +To prevent this, we have made it clear that any patent must be licensed for +everyone's free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms of +this General Public License. The "Program", below, refers to any such program +or work, and a "work based on the Program" means either the Program or any +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or +translated into another language. (Hereinafter, translation is included +without limitation in the term "modification".) Each licensee is addressed as +"you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +1. You may copy and distribute verbatim copies of the Program's source code as +you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you may +at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such modifications +or work under the terms of Section 1 above, provided that you also meet all of +these conditions: + + a) You must cause the modified files to carry prominent notices stating + that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in whole or + in part contains or is derived from the Program or any part thereof, to be + licensed as a whole at no charge to all third parties under the terms of + this License. + + c) If the modified program normally reads commands interactively when run, + you must cause it, when started running for such interactive use in the + most ordinary way, to print or display an announcement including an + appropriate copyright notice and a notice that there is no warranty (or + else, saying that you provide a warranty) and that users may redistribute + the program under these conditions, and telling the user how to view a copy + of this License. (Exception: if the Program itself is interactive but does + not normally print such an announcement, your work based on the Program is + not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, and +its terms, do not apply to those sections when you distribute them as separate +works. But when you distribute the same sections as part of a whole which is a +work based on the Program, the distribution of the whole must be on the terms +of this License, whose permissions for other licensees extend to the entire +whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your +rights to work written entirely by you; rather, the intent is to exercise the +right to control the distribution of derivative or collective works based on +the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 and +2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable source + code, which must be distributed under the terms of Sections 1 and 2 above + on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three years, to + give any third party, for a charge no more than your cost of physically + performing source distribution, a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of Sections 1 + and 2 above on a medium customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer to + distribute corresponding source code. (This alternative is allowed only + for noncommercial distribution and only if you received the program in + object code or executable form with such an offer, in accord with + Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all +the source code for all modules it contains, plus any associated interface +definition files, plus the scripts used to control compilation and installation +of the executable. However, as a special exception, the source code +distributed need not include anything that is normally distributed (in either +source or binary form) with the major components (compiler, kernel, and so on) +of the operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so +long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not +accept this License. Therefore, by modifying or distributing the Program (or +any work based on the Program), you indicate your acceptance of this License to +do so, and all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the Program), +the recipient automatically receives a license from the original licensor to +copy, distribute or modify the Program subject to these terms and conditions. +You may not impose any further restrictions on the recipients' exercise of the +rights granted herein. You are not responsible for enforcing compliance by +third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose that +choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original +copyright holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In +such case, this License incorporates the limitation as if written in the body +of this License. + +9. The Free Software Foundation may publish revised and/or new versions of the +General Public License from time to time. Such new versions will be similar in +spirit to the present version, but may differ in detail to address new problems +or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any later +version", you have the option of following the terms and conditions either of +that version or of any later version published by the Free Software Foundation. +If the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software Foundation, +write to the Free Software Foundation; we sometimes make exceptions for this. +Our decision will be guided by the two goals of preserving the free status of +all derivatives of our free software and of promoting the sharing and reuse of +software generally. + +NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR +THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL +ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE +PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR +INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA +BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER +OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +END OF TERMS AND CONDITIONS + +How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible +use to the public, the best way to achieve this is to make it free software +which everyone can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach +them to the start of each source file to most effectively convey the exclusion +of warranty; and each file should have at least the "copyright" line and a +pointer to where the full notice is found. + + One line to give the program's name and a brief idea of what it does. + + Copyright (C) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this when it +starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author Gnomovision comes + with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free + software, and you are welcome to redistribute it under certain conditions; + type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may be +called something other than 'show w' and 'show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your school, +if any, to sign a "copyright disclaimer" for the program, if necessary. Here +is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + 'Gnomovision' (which makes passes at compilers) written by James Hacker. + + signature of Ty Coon, 1 April 1989 + + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General Public +License instead of this License. + + +"CLASSPATH" EXCEPTION TO THE GPL + +Certain source files distributed by Oracle America and/or its affiliates are +subject to the following clarification and special exception to the GPL, but +only where Oracle has expressly included in the particular source file's header +the words "Oracle designates this particular file as subject to the "Classpath" +exception as provided by Oracle in the LICENSE file that accompanied this code." + + Linking this library statically or dynamically with other modules is making + a combined work based on this library. Thus, the terms and conditions of + the GNU General Public License cover the whole combination. + + As a special exception, the copyright holders of this library give you + permission to link this library with independent modules to produce an + executable, regardless of the license terms of these independent modules, + and to copy and distribute the resulting executable under terms of your + choice, provided that you also meet, for each linked independent module, + the terms and conditions of the license of that module. An independent + module is a module which is not derived from or based on this library. If + you modify this library, you may extend this exception to your version of + the library, but you are not obligated to do so. If you do not wish to do + so, delete this exception statement from your version. diff --git a/docs/java/apidocs/legal/jquery.md b/docs/java/apidocs/legal/jquery.md new file mode 100644 index 00000000..d468b318 --- /dev/null +++ b/docs/java/apidocs/legal/jquery.md @@ -0,0 +1,72 @@ +## jQuery v3.6.1 + +### jQuery License +``` +jQuery v 3.6.1 +Copyright OpenJS Foundation and other contributors, https://openjsf.org/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +****************************************** + +The jQuery JavaScript Library v3.6.1 also includes Sizzle.js + +Sizzle.js includes the following license: + +Copyright JS Foundation and other contributors, https://js.foundation/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/sizzle + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +********************* + +``` diff --git a/docs/java/apidocs/legal/jqueryUI.md b/docs/java/apidocs/legal/jqueryUI.md new file mode 100644 index 00000000..8bda9d7a --- /dev/null +++ b/docs/java/apidocs/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.13.2 + +### jQuery UI License +``` +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/docs/java/apidocs/link.svg b/docs/java/apidocs/link.svg new file mode 100644 index 00000000..7ccc5ed0 --- /dev/null +++ b/docs/java/apidocs/link.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/docs/java/apidocs/member-search-index.js b/docs/java/apidocs/member-search-index.js new file mode 100644 index 00000000..507052b5 --- /dev/null +++ b/docs/java/apidocs/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItem(float[], long)","u":"addItem(float[],long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, float[])","u":"addItem(java.lang.String,float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItem(String, List)","u":"addItem(java.lang.String,java.util.List)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], int)","u":"addItems(float[][],int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"addItems(float[][], long[], int)","u":"addItems(float[][],long[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"addItems(Map>)","u":"addItems(java.util.Map)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"asBytes()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"close()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"close()"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Cosine"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"distances"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"E4M3"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"Euclidean"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"extractBinaries(String)","u":"extractBinaries(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"finalize()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float32"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"Float8"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistance(int)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getDistances()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEf()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getEfConstruction()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getIDs()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"getLabels()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getM()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"getMaxElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getName(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNames()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumDimensions()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"getNumElements()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"getNumResults()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getNumThreads()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getSpace()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVector(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"getVector(String)","u":"getVector(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"getVectors(long[])"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"InnerProduct"},{"p":"com.spotify.voyager.jni.utils","c":"JniLibExtractor","l":"JniLibExtractor()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"labels"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream)","u":"load(java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream)","u":"load(java.io.InputStream,java.io.InputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.io.InputStream,java.io.InputStream,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String)","u":"load(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"load(String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String)","u":"load(java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"load(String, String, Index.SpaceType, int, Index.StorageDataType)","u":"load(java.lang.String,java.lang.String,com.spotify.voyager.jni.Index.SpaceType,int,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"markDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int)","u":"query(float[],int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[], int, int)","u":"query(float[],int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[], int, long)","u":"query(float[],int,long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int)","u":"query(float[][],int,int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"query(float[][], int, int, int)","u":"query(float[][],int,int,int)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"query(float[][], int, int, long)","u":"query(float[][],int,int,long)"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"QueryResults(long[], float[])","u":"%3Cinit%3E(long[],float[])"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"QueryResults(String[], float[])","u":"%3Cinit%3E(java.lang.String[],float[])"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"readStringList(InputStream)","u":"readStringList(java.io.InputStream)"},{"p":"com.spotify.voyager.jni.exception","c":"RecallException","l":"RecallException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"com.spotify.voyager.jni.exception","c":"RecallException","l":"RecallException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"resizeIndex(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(OutputStream)","u":"saveIndex(java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(OutputStream, OutputStream)","u":"saveIndex(java.io.OutputStream,java.io.OutputStream)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String)","u":"saveIndex(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"saveIndex(String, String, String)","u":"saveIndex(java.lang.String,java.lang.String,java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setEf(long)"},{"p":"com.spotify.voyager.jni","c":"Index","l":"setNumThreads(int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int)"},{"p":"com.spotify.voyager.jni","c":"StringIndex","l":"StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType)","u":"%3Cinit%3E(com.spotify.voyager.jni.Index.SpaceType,int,long,long,long,long,com.spotify.voyager.jni.Index.StorageDataType)"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"TinyJson()","u":"%3Cinit%3E()"},{"p":"com.spotify.voyager.jni","c":"Index.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"StringIndex.QueryResults","l":"toString()"},{"p":"com.spotify.voyager.jni","c":"Index","l":"unmarkDeleted(long)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"com.spotify.voyager.jni","c":"Index.SpaceType","l":"values()"},{"p":"com.spotify.voyager.jni","c":"Index.StorageDataType","l":"values()"},{"p":"com.spotify.voyager.jni.utils","c":"TinyJson","l":"writeStringList(Iterable, OutputStream)","u":"writeStringList(java.lang.Iterable,java.io.OutputStream)"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/java/apidocs/module-search-index.js b/docs/java/apidocs/module-search-index.js new file mode 100644 index 00000000..0d59754f --- /dev/null +++ b/docs/java/apidocs/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/docs/java/apidocs/overview-summary.html b/docs/java/apidocs/overview-summary.html new file mode 100644 index 00000000..f356116c --- /dev/null +++ b/docs/java/apidocs/overview-summary.html @@ -0,0 +1,26 @@ + + + + +voyager 2.0.9 API + + + + + + + + + + + +
          + +

          index.html

          +
          + + diff --git a/docs/java/apidocs/overview-tree.html b/docs/java/apidocs/overview-tree.html new file mode 100644 index 00000000..26f9bd61 --- /dev/null +++ b/docs/java/apidocs/overview-tree.html @@ -0,0 +1,112 @@ + + + + +Class Hierarchy (voyager 2.0.9 API) + + + + + + + + + + + + + + +
          + +
          +
          +
          +

          Hierarchy For All Packages

          +
          +Package Hierarchies: + +
          +

          Class Hierarchy

          + +
          +
          +

          Enum Hierarchy

          + +
          +
          +
          +
          + +
          +
          +
          + + diff --git a/docs/java/apidocs/package-search-index.js b/docs/java/apidocs/package-search-index.js new file mode 100644 index 00000000..87e7f704 --- /dev/null +++ b/docs/java/apidocs/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.spotify.voyager"},{"l":"com.spotify.voyager.jni"},{"l":"com.spotify.voyager.jni.exception"},{"l":"com.spotify.voyager.jni.utils"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/java/apidocs/resources/glass.png b/docs/java/apidocs/resources/glass.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f591f467a1c0c949bbc510156a0c1afb860a6e GIT binary patch literal 499 zcmVJoRsvExf%rEN>jUL}qZ_~k#FbE+Q;{`;0FZwVNX2n-^JoI; zP;4#$8DIy*Yk-P>VN(DUKmPse7mx+ExD4O|;?E5D0Z5($mjO3`*anwQU^s{ZDK#Lz zj>~{qyaIx5K!t%=G&2IJNzg!ChRpyLkO7}Ry!QaotAHAMpbB3AF(}|_f!G-oI|uK6 z`id_dumai5K%C3Y$;tKS_iqMPHg<*|-@e`liWLAggVM!zAP#@l;=c>S03;{#04Z~5 zN_+ss=Yg6*hTr59mzMwZ@+l~q!+?ft!fF66AXT#wWavHt30bZWFCK%!BNk}LN?0Hg z1VF_nfs`Lm^DjYZ1(1uD0u4CSIr)XAaqW6IT{!St5~1{i=i}zAy76p%_|w8rh@@c0Axr!ns=D-X+|*sY6!@wacG9%)Qn*O zl0sa739kT-&_?#oVxXF6tOnqTD)cZ}2vi$`ZU8RLAlo8=_z#*P3xI~i!lEh+Pdu-L zx{d*wgjtXbnGX_Yf@Tc7Q3YhLhPvc8noGJs2DA~1DySiA&6V{5JzFt ojAY1KXm~va;tU{v7C?Xj0BHw!K;2aXV*mgE07*qoM6N<$f;4TDA^-pY literal 0 HcmV?d00001 diff --git a/docs/java/apidocs/script-dir/jquery-3.6.1.min.js b/docs/java/apidocs/script-dir/jquery-3.6.1.min.js new file mode 100644 index 00000000..2c69bc90 --- /dev/null +++ b/docs/java/apidocs/script-dir/jquery-3.6.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
          "],col:[2,"","
          "],tr:[2,"","
          "],td:[3,"","
          "],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
          ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.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],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
          "),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
            ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
            ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
            ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
            ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/docs/java/apidocs/script.js b/docs/java/apidocs/script.js new file mode 100644 index 00000000..8b9691a1 --- /dev/null +++ b/docs/java/apidocs/script.js @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2013, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + var display = checkbox.checked ? '' : 'none'; + document.querySelectorAll("div.table-tabs").forEach(function(t) { + var id = t.parentElement.getAttribute("id"); + var selectedClass = id + "-tab" + selected; + // if selected is empty string it selects all uncategorized entries + var selectUncategorized = !Boolean(selected); + var visible = 0; + document.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectUncategorized) { + if (elem.className.indexOf(selectedClass) === -1) { + elem.style.display = display; + } + } else if (elem.classList.contains(selectedClass)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button, button.firstElementChild); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(button, span) { + var copied = span.getAttribute("data-copied"); + button.classList.add("visible"); + var initialLabel = span.innerHTML; + span.innerHTML = copied; + setTimeout(function() { + button.classList.remove("visible"); + setTimeout(function() { + if (initialLabel !== copied) { + span.innerHTML = initialLabel; + } + }, 100); + }, 1900); +} +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + var timeoutId; + contentDiv.addEventListener("scroll", function(e) { + if (timeoutId) { + clearTimeout(timeoutId); + } + timeoutId = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + }, 100); + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/docs/java/apidocs/search-page.js b/docs/java/apidocs/search-page.js new file mode 100644 index 00000000..540c90f5 --- /dev/null +++ b/docs/java/apidocs/search-page.js @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + copyToClipboard(this.previousSibling.innerText); + switchCopyLabel(this, this.lastElementChild); + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("
            ").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("" + categories[key] + + " (" + count + ")").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("
            ").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("
            ") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("
            " + col1 + "
            ").appendTo(table); + if (category !== "modules") { + $("
            " + col2 + "
            ").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("
            ").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("
            ").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); diff --git a/docs/java/apidocs/search.html b/docs/java/apidocs/search.html new file mode 100644 index 00000000..1089606e --- /dev/null +++ b/docs/java/apidocs/search.html @@ -0,0 +1,77 @@ + + + + +Search (voyager 2.0.9 API) + + + + + + + + + + + + + + +
            + +
            +
            +

            Search

            +
            + + +
            +Additional resources +
            +
            +
            +

            The help page provides an introduction to the scope and syntax of JavaDoc search.

            +

            You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.

            +

            The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.

            +link +

            + +

            +
            +

            Loading search index...

            + +
            +
            +
            + +
            +
            +
            + + diff --git a/docs/java/apidocs/search.js b/docs/java/apidocs/search.js new file mode 100644 index 00000000..7673397e --- /dev/null +++ b/docs/java/apidocs/search.js @@ -0,0 +1,458 @@ +/* + * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +"use strict"; +const messages = { + enterTerm: "Enter a search term", + noResult: "No results found", + oneResult: "Found one result", + manyResults: "Found {0} results", + loading: "Loading search index...", + searching: "Searching...", + redirecting: "Redirecting to first result...", + linkIcon: "Link icon", + linkToSection: "Link to this section" +} +const categories = { + modules: "Modules", + packages: "Packages", + types: "Types", + members: "Members", + searchTags: "Search Tags" +}; +const highlight = "$&"; +const NO_MATCH = {}; +const MAX_RESULTS = 300; +function checkUnnamed(name, separator) { + return name === "" || !name ? "" : name + separator; +} +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(str, boundaries, from, to) { + var start = from; + var text = ""; + for (var i = 0; i < boundaries.length; i += 2) { + var b0 = boundaries[i]; + var b1 = boundaries[i + 1]; + if (b0 >= to || b1 <= from) { + continue; + } + text += escapeHtml(str.slice(start, Math.max(start, b0))); + text += ""; + text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); + text += ""; + start = Math.min(to, b1); + } + text += escapeHtml(str.slice(start, to)); + return text; +} +function getURLPrefix(item, category) { + var urlPrefix = ""; + var slash = "/"; + if (category === "modules") { + return item.l + slash; + } else if (category === "packages" && item.m) { + return item.m + slash; + } else if (category === "types" || category === "members") { + if (item.m) { + urlPrefix = item.m + slash; + } else { + $.each(packageSearchIndex, function(index, it) { + if (it.m && item.p === it.l) { + urlPrefix = it.m + slash; + } + }); + } + } + return urlPrefix; +} +function getURL(item, category) { + if (item.url) { + return item.url; + } + var url = getURLPrefix(item, category); + if (category === "modules") { + url += "module-summary.html"; + } else if (category === "packages") { + if (item.u) { + url = item.u; + } else { + url += item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (category === "types") { + if (item.u) { + url = item.u; + } else { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + } + } else if (category === "members") { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; + if (item.u) { + url += item.u; + } else { + url += item.l; + } + } else if (category === "searchTags") { + url += item.u; + } + item.url = url; + return url; +} +function createMatcher(term, camelCase) { + if (camelCase && !isUpperCase(term)) { + return null; // no need for camel-case matcher for lower case query + } + var pattern = ""; + var upperCase = []; + term.trim().split(/\s+/).forEach(function(w, index, array) { + var tokens = w.split(/(?=[A-Z,.()<>?[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + // ',' and '?' are the only delimiters commonly followed by space in java signatures + pattern += "(" + $.ui.autocomplete.escapeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; + upperCase.push(false); + var isWordToken = /\w$/.test(s); + if (isWordToken) { + if (i === tokens.length - 1 && index < array.length - 1) { + // space in query string matches all delimiters + pattern += "(.*?)"; + upperCase.push(isUpperCase(s[0])); + } else { + if (!camelCase && isUpperCase(s) && s.length === 1) { + pattern += "()"; + } else { + pattern += "([a-z0-9$<>?[\\]]*?)"; + } + upperCase.push(isUpperCase(s[0])); + } + } else { + pattern += "()"; + upperCase.push(false); + } + } + }); + var re = new RegExp(pattern, "gi"); + re.upperCase = upperCase; + return re; +} +function findMatch(matcher, input, startOfName, endOfName) { + var from = startOfName; + matcher.lastIndex = from; + var match = matcher.exec(input); + // Expand search area until we get a valid result or reach the beginning of the string + while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { + if (from === 0) { + return NO_MATCH; + } + from = input.lastIndexOf(".", from - 2) + 1; + matcher.lastIndex = from; + match = matcher.exec(input); + } + var boundaries = []; + var matchEnd = match.index + match[0].length; + var score = 5; + var start = match.index; + var prevEnd = -1; + for (var i = 1; i < match.length; i += 2) { + var isUpper = isUpperCase(input[start]); + var isMatcherUpper = matcher.upperCase[i]; + // capturing groups come in pairs, match and non-match + boundaries.push(start, start + match[i].length); + // make sure groups are anchored on a left word boundary + var prevChar = input[start - 1] || ""; + var nextChar = input[start + 1] || ""; + if (start !== 0 && !/[\W_]/.test(prevChar) && !/[\W_]/.test(input[start])) { + if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { + score -= 0.1; + } else if (isMatcherUpper && start === prevEnd) { + score -= isUpper ? 0.1 : 1.0; + } else { + return NO_MATCH; + } + } + prevEnd = start + match[i].length; + start += match[i].length + match[i + 1].length; + + // lower score for parts of the name that are missing + if (match[i + 1] && prevEnd < endOfName) { + score -= rateNoise(match[i + 1]); + } + } + // lower score if a type name contains unmatched camel-case parts + if (input[matchEnd - 1] !== "." && endOfName > matchEnd) + score -= rateNoise(input.slice(matchEnd, endOfName)); + score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); + + if (score <= 0) { + return NO_MATCH; + } + return { + input: input, + score: score, + boundaries: boundaries + }; +} +function isUpperCase(s) { + return s !== s.toLowerCase(); +} +function isLowerCase(s) { + return s !== s.toUpperCase(); +} +function rateNoise(str) { + return (str.match(/([.(])/g) || []).length / 5 + + (str.match(/([A-Z]+)/g) || []).length / 10 + + str.length / 20; +} +function doSearch(request, response) { + var term = request.term.trim(); + var maxResults = request.maxResults || MAX_RESULTS; + if (term.length === 0) { + return this.close(); + } + var matcher = { + plainMatcher: createMatcher(term, false), + camelCaseMatcher: createMatcher(term, true) + } + var indexLoaded = indexFilesLoaded(); + + function getPrefix(item, category) { + switch (category) { + case "packages": + return checkUnnamed(item.m, "/"); + case "types": + return checkUnnamed(item.p, "."); + case "members": + return checkUnnamed(item.p, ".") + item.c + "."; + default: + return ""; + } + } + function useQualifiedName(category) { + switch (category) { + case "packages": + return /[\s/]/.test(term); + case "types": + case "members": + return /[\s.]/.test(term); + default: + return false; + } + } + function searchIndex(indexArray, category) { + var matches = []; + if (!indexArray) { + if (!indexLoaded) { + matches.push({ l: messages.loading, category: category }); + } + return matches; + } + $.each(indexArray, function (i, item) { + var prefix = getPrefix(item, category); + var simpleName = item.l; + var qualifiedName = prefix + simpleName; + var useQualified = useQualifiedName(category); + var input = useQualified ? qualifiedName : simpleName; + var startOfName = useQualified ? prefix.length : 0; + var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 + ? input.indexOf("(", startOfName) : input.length; + var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); + if (m === NO_MATCH && matcher.camelCaseMatcher) { + m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); + } + if (m !== NO_MATCH) { + m.indexItem = item; + m.prefix = prefix; + m.category = category; + if (!useQualified) { + m.input = qualifiedName; + m.boundaries = m.boundaries.map(function(b) { + return b + prefix.length; + }); + } + matches.push(m); + } + return true; + }); + return matches.sort(function(e1, e2) { + return e2.score - e1.score; + }).slice(0, maxResults); + } + + var result = searchIndex(moduleSearchIndex, "modules") + .concat(searchIndex(packageSearchIndex, "packages")) + .concat(searchIndex(typeSearchIndex, "types")) + .concat(searchIndex(memberSearchIndex, "members")) + .concat(searchIndex(tagSearchIndex, "searchTags")); + + if (!indexLoaded) { + updateSearchResults = function() { + doSearch(request, response); + } + } else { + updateSearchResults = function() {}; + } + response(result); +} +// JQuery search menu implementation +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> .result-item"); + // workaround for search result scrolling + this.menu._scrollIntoView = function _scrollIntoView( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height() - 26; + itemHeight = item.outerHeight(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }; + }, + _renderMenu: function(ul, items) { + var currentCategory = ""; + var widget = this; + widget.menu.bindings = $(); + $.each(items, function(index, item) { + if (item.category && item.category !== currentCategory) { + ul.append("
          • " + categories[item.category] + "
          • "); + currentCategory = item.category; + } + var li = widget._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", categories[item.category] + " : " + item.l); + } else { + li.attr("aria-label", item.l); + } + li.attr("class", "result-item"); + }); + ul.append(""); + }, + _renderItem: function(ul, item) { + var li = $("
          • ").appendTo(ul); + var div = $("
            ").appendTo(li); + var label = item.l + ? item.l + : getHighlightedText(item.input, item.boundaries, 0, item.input.length); + var idx = item.indexItem; + if (item.category === "searchTags" && idx && idx.h) { + if (idx.d) { + div.html(label + " (" + idx.h + ")
            " + + idx.d + "
            "); + } else { + div.html(label + " (" + idx.h + ")"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + var expanded = false; + var windowWidth; + function collapse() { + if (expanded) { + $("div#navbar-top").removeAttr("style"); + $("button#navbar-toggle-button") + .removeClass("expanded") + .attr("aria-expanded", "false"); + expanded = false; + } + } + $("button#navbar-toggle-button").click(function (e) { + if (expanded) { + collapse(); + } else { + var navbar = $("div#navbar-top"); + navbar.height(navbar.prop("scrollHeight")); + $("button#navbar-toggle-button") + .addClass("expanded") + .attr("aria-expanded", "true"); + expanded = true; + windowWidth = window.innerWidth; + } + }); + $("ul.sub-nav-list-small li a").click(collapse); + $("input#search-input").focus(collapse); + $("main").click(collapse); + $("section[id] > :header, :header[id], :header:has(a[id])").each(function(idx, el) { + // Create anchor links for headers with an associated id attribute + var hdr = $(el); + var id = hdr.attr("id") || hdr.parent("section").attr("id") || hdr.children("a").attr("id"); + if (id) { + hdr.append(" " + messages.linkIcon +""); + } + }); + $(window).on("orientationchange", collapse).on("resize", function(e) { + if (expanded && windowWidth !== window.innerWidth) collapse(); + }); + var search = $("#search-input"); + var reset = $("#reset-button"); + search.catcomplete({ + minLength: 1, + delay: 200, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push({ l: messages.noResult }); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.indexItem) { + var url = getURL(ui.item.indexItem, ui.item.category); + window.location.href = pathtoroot + url; + $("#search-input").focus(); + } + } + }); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + reset.click(function() { + search.val('').focus(); + }); + search.focus(); +}); diff --git a/docs/java/apidocs/serialized-form.html b/docs/java/apidocs/serialized-form.html new file mode 100644 index 00000000..65f19131 --- /dev/null +++ b/docs/java/apidocs/serialized-form.html @@ -0,0 +1,77 @@ + + + + +Serialized Form (voyager 2.0.9 API) + + + + + + + + + + + + + + +
            + +
            +
            +
            +

            Serialized Form

            +
            + +
            +
            +
            + +
            +
            +
            + + diff --git a/docs/java/apidocs/stylesheet.css b/docs/java/apidocs/stylesheet.css new file mode 100644 index 00000000..f71489f8 --- /dev/null +++ b/docs/java/apidocs/stylesheet.css @@ -0,0 +1,1272 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --code-font-size: 14px; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:1em; +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:0.915em; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + float:left; + width:100%; + clear:right; + min-height:2.8em; + padding:10px 0 0 0; + overflow:hidden; + font-size:0.857em; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:var(--subnav-background-color); + float:left; + width:100%; + overflow:hidden; + font-size:0.857em; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:1em; + font-family:var(--block-font-family) +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.tag-list, ul.tag-list-long { + padding-left: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--body-font-size); + font-family:var(--block-font-family); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + border: 1px solid var(--selected-background-color); + color: var(--selected-text-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for header/section anchor links + */ +a.anchor-link { + opacity: 0; + transition: opacity 0.1s; +} +:hover > a.anchor-link { + opacity: 80%; +} +a.anchor-link:hover, +a.anchor-link:focus-visible, +a.anchor-link.visible { + opacity: 100%; +} +a.anchor-link > img { + width: 0.9em; + height: 0.9em; +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 70%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.3s; + cursor: pointer; +} +:hover > button.copy { + opacity: 80%; +} +button.copy:hover, +button.copy:active, +button.copy:focus-visible, +button.copy.visible { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; + opacity: 0; +} +button.copy:hover span, +button.copy:focus-visible span, +button.copy.visible span { + opacity: 100%; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; +} +div.page-search-info:hover button#page-search-copy span { + opacity: 100%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; +} +div.snippet-container:hover button.snippet-copy span { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: var(--subnav-background-color); + color: var(--body-text-color); + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:var(--link-color); + } + ul.sub-nav-list-small a:hover { + color:var(--link-color-active); + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} diff --git a/docs/java/apidocs/tag-search-index.js b/docs/java/apidocs/tag-search-index.js new file mode 100644 index 00000000..f38b3cb3 --- /dev/null +++ b/docs/java/apidocs/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/java/apidocs/type-search-index.js b/docs/java/apidocs/type-search-index.js new file mode 100644 index 00000000..6822b52e --- /dev/null +++ b/docs/java/apidocs/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.spotify.voyager.jni","l":"Index"},{"p":"com.spotify.voyager.jni.utils","l":"JniLibExtractor"},{"p":"com.spotify.voyager.jni","l":"Index.QueryResults"},{"p":"com.spotify.voyager.jni","l":"StringIndex.QueryResults"},{"p":"com.spotify.voyager.jni.exception","l":"RecallException"},{"p":"com.spotify.voyager.jni","l":"Index.SpaceType"},{"p":"com.spotify.voyager.jni","l":"Index.StorageDataType"},{"p":"com.spotify.voyager.jni","l":"StringIndex"},{"p":"com.spotify.voyager.jni.utils","l":"TinyJson"}];updateSearchResults(); \ No newline at end of file diff --git a/java/com_spotify_voyager_jni_Index.cpp b/java/com_spotify_voyager_jni_Index.cpp index a2fdbdc4..d03cba12 100644 --- a/java/com_spotify_voyager_jni_Index.cpp +++ b/java/com_spotify_voyager_jni_Index.cpp @@ -440,6 +440,13 @@ jobject Java_com_spotify_voyager_jni_Index_query___3FIJ(JNIEnv *env, std::get<1>(queryResults).data()); return env->NewObject(queryResultsClass, constructor, labels, distances); + } catch (RecallError const &e) { + if (!env->ExceptionCheck()) { + env->ThrowNew( + env->FindClass("com/spotify/voyager/jni/exception/RecallException"), + e.what()); + } + return nullptr; } catch (std::exception const &e) { if (!env->ExceptionCheck()) { env->ThrowNew(env->FindClass("java/lang/RuntimeException"), e.what()); @@ -502,6 +509,13 @@ jobjectArray Java_com_spotify_voyager_jni_Index_query___3_3FIIJ( } return javaQueryResults; + } catch (RecallError const &e) { + if (!env->ExceptionCheck()) { + env->ThrowNew( + env->FindClass("com/spotify/voyager/jni/exception/RecallException"), + e.what()); + } + return nullptr; } catch (std::exception const &e) { if (!env->ExceptionCheck()) { env->ThrowNew(env->FindClass("java/lang/RuntimeException"), e.what()); diff --git a/java/src/main/java/com/spotify/voyager/jni/Index.java b/java/src/main/java/com/spotify/voyager/jni/Index.java index f9f7ad9c..f634a092 100644 --- a/java/src/main/java/com/spotify/voyager/jni/Index.java +++ b/java/src/main/java/com/spotify/voyager/jni/Index.java @@ -20,6 +20,7 @@ package com.spotify.voyager.jni; +import com.spotify.voyager.jni.exception.RecallException; import com.spotify.voyager.jni.utils.JniLibExtractor; import java.io.ByteArrayOutputStream; import java.io.Closeable; @@ -513,7 +514,7 @@ public byte[] asBytes() { * @param k The number of nearest neighbors to return. * @return A {@link QueryResults} object, containing the neighbors found that are (approximately) * nearest to the query vector. - * @throws RuntimeException if fewer than {@code k} results can be found in the index. + * @throws RecallException if fewer than {@code k} results can be found in the index. */ public QueryResults query(float[] queryVector, int k) { return query(queryVector, k, -1); @@ -531,7 +532,7 @@ public QueryResults query(float[] queryVector, int k) { * @return An array of {@link QueryResults} objects, each containing the neighbors found that are * (approximately) nearest to the corresponding query vector. The returned list of {@link * QueryResults} will contain the same number of elements as {@code queryVectors}. - * @throws RuntimeException if fewer than {@code k} results can be found in the index for one or + * @throws RecallException if fewer than {@code k} results can be found in the index for one or * more queries. */ public QueryResults[] query(float[][] queryVectors, int k, int numThreads) { @@ -547,7 +548,7 @@ public QueryResults[] query(float[][] queryVectors, int k, int numThreads) { * the expense of query time. * @return A {@link QueryResults} object, containing the neighbors found that are (approximately) * nearest to the query vector. - * @throws RuntimeException if fewer than {@code k} results can be found in the index. + * @throws RecallException if fewer than {@code k} results can be found in the index. */ public native QueryResults query(float[] queryVector, int k, long queryEf); @@ -565,7 +566,7 @@ public QueryResults[] query(float[][] queryVectors, int k, int numThreads) { * @return An array of {@link QueryResults} objects, each containing the neighbors found that are * (approximately) nearest to the corresponding query vector. The returned list of {@link * QueryResults} will contain the same number of elements as {@code queryVectors}. - * @throws RuntimeException if fewer than {@code k} results can be found in the index for one or + * @throws RecallException if fewer than {@code k} results can be found in the index for one or * more queries. */ public native QueryResults[] query(float[][] queryVectors, int k, int numThreads, long queryEf); diff --git a/java/src/main/java/com/spotify/voyager/jni/exception/RecallException.java b/java/src/main/java/com/spotify/voyager/jni/exception/RecallException.java new file mode 100644 index 00000000..666be067 --- /dev/null +++ b/java/src/main/java/com/spotify/voyager/jni/exception/RecallException.java @@ -0,0 +1,43 @@ +/*- + * -\-\- + * voyager + * -- + * Copyright (C) 2016 - 2023 Spotify AB + * -- + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * -/-/- + */ + +package com.spotify.voyager.jni.exception; + +/** An exception indicating that the desired recall of a query cannot be achieved */ +public class RecallException extends RuntimeException { + /** + * Constructs a new RecallException with the specified detail message. + * + * @param message the detail message + */ + public RecallException(String message) { + super(message); + } + + /** + * Constructs a new RecallException with the specified detail message and cause. + * + * @param message the detail message + * @param cause the cause of the exception + */ + public RecallException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/python/bindings.cpp b/python/bindings.cpp index 1a6dc299..bd5158d4 100644 --- a/python/bindings.cpp +++ b/python/bindings.cpp @@ -209,6 +209,8 @@ inline void register_index_class(py::module &m, std::string className, }; PYBIND11_MODULE(voyager, m) { + py::register_exception(m, "RecallError"); + init_LabelSetView(m); py::enum_( From 94550209f5ab4848c06c35400c52aa9750bf3e40 Mon Sep 17 00:00:00 2001 From: Peter Sobot Date: Thu, 3 Oct 2024 13:29:34 -0400 Subject: [PATCH 41/52] Bump to v2.0.10. --- docs/python/_static/basic.css | 2 +- docs/python/_static/copybutton.js | 4 +- docs/python/_static/doctools.js | 2 +- docs/python/_static/documentation_options.js | 2 +- docs/python/_static/language_data.js | 4 +- docs/python/_static/pygments.css | 12 +- docs/python/_static/scripts/furo.js | 2 +- docs/python/_static/scripts/furo.js.map | 2 +- docs/python/_static/searchtools.js | 170 ++++++++++------ .../python/_static/styles/furo-extensions.css | 2 +- .../_static/styles/furo-extensions.css.map | 2 +- docs/python/_static/styles/furo.css | 2 +- docs/python/_static/styles/furo.css.map | 2 +- docs/python/genindex.html | 93 ++++++--- docs/python/index.html | 109 +++++++--- docs/python/reference.html | 189 ++++++++++++------ docs/python/search.html | 98 ++++++--- docs/python/searchindex.js | 2 +- python/voyager/__init__.pyi | 12 +- python/voyager/version.py | 2 +- 20 files changed, 486 insertions(+), 227 deletions(-) diff --git a/docs/python/_static/basic.css b/docs/python/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/docs/python/_static/basic.css +++ b/docs/python/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/docs/python/_static/copybutton.js b/docs/python/_static/copybutton.js index 2ea7ff3e..02c5c82d 100644 --- a/docs/python/_static/copybutton.js +++ b/docs/python/_static/copybutton.js @@ -20,7 +20,7 @@ const messages = { }, 'fr' : { 'copy': 'Copier', - 'copy_to_clipboard': 'Copier dans le presse-papier', + 'copy_to_clipboard': 'Copié dans le presse-papier', 'copy_success': 'Copié !', 'copy_failure': 'Échec de la copie', }, @@ -224,7 +224,7 @@ var copyTargetText = (trigger) => { var target = document.querySelector(trigger.attributes['data-clipboard-target'].value); // get filtered text - let exclude = '.linenos'; + let exclude = '.linenos, .gp'; let text = filterText(target, exclude); return formatCopyText(text, '', false, true, true, true, '', '') diff --git a/docs/python/_static/doctools.js b/docs/python/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/docs/python/_static/doctools.js +++ b/docs/python/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/docs/python/_static/documentation_options.js b/docs/python/_static/documentation_options.js index fc2fe926..713e5d78 100644 --- a/docs/python/_static/documentation_options.js +++ b/docs/python/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '2.0.9', + VERSION: '2.0.10', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/docs/python/_static/language_data.js b/docs/python/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/docs/python/_static/language_data.js +++ b/docs/python/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/docs/python/_static/pygments.css b/docs/python/_static/pygments.css index c2e07c71..02b4b128 100644 --- a/docs/python/_static/pygments.css +++ b/docs/python/_static/pygments.css @@ -106,17 +106,17 @@ body[data-theme="dark"] .highlight .cp { color: #ff3a3a; font-weight: bold } /* body[data-theme="dark"] .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ body[data-theme="dark"] .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ body[data-theme="dark"] .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ -body[data-theme="dark"] .highlight .gd { color: #d22323 } /* Generic.Deleted */ +body[data-theme="dark"] .highlight .gd { color: #ff3a3a } /* Generic.Deleted */ body[data-theme="dark"] .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ body[data-theme="dark"] .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -body[data-theme="dark"] .highlight .gr { color: #d22323 } /* Generic.Error */ +body[data-theme="dark"] .highlight .gr { color: #ff3a3a } /* Generic.Error */ body[data-theme="dark"] .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ body[data-theme="dark"] .highlight .gi { color: #589819 } /* Generic.Inserted */ body[data-theme="dark"] .highlight .go { color: #cccccc } /* Generic.Output */ body[data-theme="dark"] .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ body[data-theme="dark"] .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ body[data-theme="dark"] .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ -body[data-theme="dark"] .highlight .gt { color: #d22323 } /* Generic.Traceback */ +body[data-theme="dark"] .highlight .gt { color: #ff3a3a } /* Generic.Traceback */ body[data-theme="dark"] .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ body[data-theme="dark"] .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ body[data-theme="dark"] .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ @@ -192,17 +192,17 @@ body:not([data-theme="light"]) .highlight .cp { color: #ff3a3a; font-weight: bol body:not([data-theme="light"]) .highlight .cpf { color: #ababab; font-style: italic } /* Comment.PreprocFile */ body:not([data-theme="light"]) .highlight .c1 { color: #ababab; font-style: italic } /* Comment.Single */ body:not([data-theme="light"]) .highlight .cs { color: #e50808; font-weight: bold; background-color: #520000 } /* Comment.Special */ -body:not([data-theme="light"]) .highlight .gd { color: #d22323 } /* Generic.Deleted */ +body:not([data-theme="light"]) .highlight .gd { color: #ff3a3a } /* Generic.Deleted */ body:not([data-theme="light"]) .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ body:not([data-theme="light"]) .highlight .ges { color: #d0d0d0; font-weight: bold; font-style: italic } /* Generic.EmphStrong */ -body:not([data-theme="light"]) .highlight .gr { color: #d22323 } /* Generic.Error */ +body:not([data-theme="light"]) .highlight .gr { color: #ff3a3a } /* Generic.Error */ body:not([data-theme="light"]) .highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */ body:not([data-theme="light"]) .highlight .gi { color: #589819 } /* Generic.Inserted */ body:not([data-theme="light"]) .highlight .go { color: #cccccc } /* Generic.Output */ body:not([data-theme="light"]) .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ body:not([data-theme="light"]) .highlight .gs { color: #d0d0d0; font-weight: bold } /* Generic.Strong */ body:not([data-theme="light"]) .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ -body:not([data-theme="light"]) .highlight .gt { color: #d22323 } /* Generic.Traceback */ +body:not([data-theme="light"]) .highlight .gt { color: #ff3a3a } /* Generic.Traceback */ body:not([data-theme="light"]) .highlight .kc { color: #6ebf26; font-weight: bold } /* Keyword.Constant */ body:not([data-theme="light"]) .highlight .kd { color: #6ebf26; font-weight: bold } /* Keyword.Declaration */ body:not([data-theme="light"]) .highlight .kn { color: #6ebf26; font-weight: bold } /* Keyword.Namespace */ diff --git a/docs/python/_static/scripts/furo.js b/docs/python/_static/scripts/furo.js index 32e7c05b..0abb2afa 100644 --- a/docs/python/_static/scripts/furo.js +++ b/docs/python/_static/scripts/furo.js @@ -1,3 +1,3 @@ /*! For license information please see furo.js.LICENSE.txt */ -(()=>{var t={212:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(212),e=n.n(t),o=null,r=null,c=window.pageYOffset||document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;n=t,0==Math.floor(r.getBoundingClientRect().top)?r.classList.add("scrolled"):r.classList.remove("scrolled"),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); +(()=>{var t={856:function(t,e,n){var o,r;r=void 0!==n.g?n.g:"undefined"!=typeof window?window:this,o=function(){return function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},r=function(t){t&&t.sort((function(t,e){return o(t.content)=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},l=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!s()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested&&t.parentNode){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},i=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var s,a,d,f,m,v={setup:function(){s=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(s,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),r(a)},detect:function(){var t=l(a,m);t?d&&t.content===d.content||(i(d,m),function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}}(t,m),d=t):d&&(i(d,m),d=null)}},h=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame(v.detect)},g=function(e){f&&t.cancelAnimationFrame(f),f=t.requestAnimationFrame((function(){r(a),v.detect()}))};return v.destroy=function(){d&&i(d,m),t.removeEventListener("scroll",h,!1),m.reflow&&t.removeEventListener("resize",g,!1),a=null,s=null,d=null,f=null,m=null},m=function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t}(e,c||{}),v.setup(),v.detect(),t.addEventListener("scroll",h,!1),m.reflow&&t.addEventListener("resize",g,!1),v}}(r)}.apply(e,[]),void 0===o||(t.exports=o)}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var c=e[o]={exports:{}};return t[o].call(c.exports,c,c.exports,n),c.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";var t=n(856),e=n.n(t),o=null,r=null,c=document.documentElement.scrollTop;const s=64;function l(){const t=localStorage.getItem("theme")||"auto";var e;"light"!==(e=window.matchMedia("(prefers-color-scheme: dark)").matches?"auto"===t?"light":"light"==t?"dark":"auto":"auto"===t?"dark":"dark"==t?"light":"auto")&&"dark"!==e&&"auto"!==e&&(console.error(`Got invalid theme mode: ${e}. Resetting to auto.`),e="auto"),document.body.dataset.theme=e,localStorage.setItem("theme",e),console.log(`Changed to ${e} mode.`)}function a(){!function(){const t=document.getElementsByClassName("theme-toggle");Array.from(t).forEach((t=>{t.addEventListener("click",l)}))}(),function(){let t=0,e=!1;window.addEventListener("scroll",(function(n){t=window.scrollY,e||(window.requestAnimationFrame((function(){var n;(function(t){const e=Math.floor(r.getBoundingClientRect().top);console.log(`headerTop: ${e}`),0==e&&t!=e?r.classList.add("scrolled"):r.classList.remove("scrolled")})(n=t),function(t){tc&&document.documentElement.classList.remove("show-back-to-top"),c=t}(n),function(t){null!==o&&(0==t?o.scrollTo(0,0):Math.ceil(t)>=Math.floor(document.documentElement.scrollHeight-window.innerHeight)?o.scrollTo(0,o.scrollHeight):document.querySelector(".scroll-current"))}(n),e=!1})),e=!0)})),window.scroll()}(),null!==o&&new(e())(".toc-tree a",{reflow:!0,recursive:!0,navClass:"scroll-current",offset:()=>{let t=parseFloat(getComputedStyle(document.documentElement).fontSize);return r.getBoundingClientRect().height+2.5*t+1}})}document.addEventListener("DOMContentLoaded",(function(){document.body.parentNode.classList.remove("no-js"),r=document.querySelector("header"),o=document.querySelector(".toc-scroll"),a()}))})()})(); //# sourceMappingURL=furo.js.map \ No newline at end of file diff --git a/docs/python/_static/scripts/furo.js.map b/docs/python/_static/scripts/furo.js.map index 47053022..80ea12b8 100644 --- a/docs/python/_static/scripts/furo.js.map +++ b/docs/python/_static/scripts/furo.js.map @@ -1 +1 @@ -{"version":3,"file":"scripts/furo.js","mappings":"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","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader() {\n if (Math.floor(header.getBoundingClientRect().top) == 0) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader();\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 0.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","floor","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"scripts/furo.js","mappings":"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","sources":["webpack:///./src/furo/assets/scripts/gumshoe-patched.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/global","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/furo/assets/scripts/furo.js"],"sourcesContent":["/*!\n * gumshoejs v5.1.2 (patched by @pradyunsg)\n * A simple, framework-agnostic scrollspy script.\n * (c) 2019 Chris Ferdinandi\n * MIT License\n * http://github.com/cferdinandi/gumshoe\n */\n\n(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], function () {\n return factory(root);\n });\n } else if (typeof exports === \"object\") {\n module.exports = factory(root);\n } else {\n root.Gumshoe = factory(root);\n }\n})(\n typeof global !== \"undefined\"\n ? global\n : typeof window !== \"undefined\"\n ? window\n : this,\n function (window) {\n \"use strict\";\n\n //\n // Defaults\n //\n\n var defaults = {\n // Active classes\n navClass: \"active\",\n contentClass: \"active\",\n\n // Nested navigation\n nested: false,\n nestedClass: \"active\",\n\n // Offset & reflow\n offset: 0,\n reflow: false,\n\n // Event support\n events: true,\n };\n\n //\n // Methods\n //\n\n /**\n * Merge two or more objects together.\n * @param {Object} objects The objects to merge together\n * @returns {Object} Merged values of defaults and options\n */\n var extend = function () {\n var merged = {};\n Array.prototype.forEach.call(arguments, function (obj) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) return;\n merged[key] = obj[key];\n }\n });\n return merged;\n };\n\n /**\n * Emit a custom event\n * @param {String} type The event type\n * @param {Node} elem The element to attach the event to\n * @param {Object} detail Any details to pass along with the event\n */\n var emitEvent = function (type, elem, detail) {\n // Make sure events are enabled\n if (!detail.settings.events) return;\n\n // Create a new event\n var event = new CustomEvent(type, {\n bubbles: true,\n cancelable: true,\n detail: detail,\n });\n\n // Dispatch the event\n elem.dispatchEvent(event);\n };\n\n /**\n * Get an element's distance from the top of the Document.\n * @param {Node} elem The element\n * @return {Number} Distance from the top in pixels\n */\n var getOffsetTop = function (elem) {\n var location = 0;\n if (elem.offsetParent) {\n while (elem) {\n location += elem.offsetTop;\n elem = elem.offsetParent;\n }\n }\n return location >= 0 ? location : 0;\n };\n\n /**\n * Sort content from first to last in the DOM\n * @param {Array} contents The content areas\n */\n var sortContents = function (contents) {\n if (contents) {\n contents.sort(function (item1, item2) {\n var offset1 = getOffsetTop(item1.content);\n var offset2 = getOffsetTop(item2.content);\n if (offset1 < offset2) return -1;\n return 1;\n });\n }\n };\n\n /**\n * Get the offset to use for calculating position\n * @param {Object} settings The settings for this instantiation\n * @return {Float} The number of pixels to offset the calculations\n */\n var getOffset = function (settings) {\n // if the offset is a function run it\n if (typeof settings.offset === \"function\") {\n return parseFloat(settings.offset());\n }\n\n // Otherwise, return it as-is\n return parseFloat(settings.offset);\n };\n\n /**\n * Get the document element's height\n * @private\n * @returns {Number}\n */\n var getDocumentHeight = function () {\n return Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight,\n document.body.offsetHeight,\n document.documentElement.offsetHeight,\n document.body.clientHeight,\n document.documentElement.clientHeight,\n );\n };\n\n /**\n * Determine if an element is in view\n * @param {Node} elem The element\n * @param {Object} settings The settings for this instantiation\n * @param {Boolean} bottom If true, check if element is above bottom of viewport instead\n * @return {Boolean} Returns true if element is in the viewport\n */\n var isInView = function (elem, settings, bottom) {\n var bounds = elem.getBoundingClientRect();\n var offset = getOffset(settings);\n if (bottom) {\n return (\n parseInt(bounds.bottom, 10) <\n (window.innerHeight || document.documentElement.clientHeight)\n );\n }\n return parseInt(bounds.top, 10) <= offset;\n };\n\n /**\n * Check if at the bottom of the viewport\n * @return {Boolean} If true, page is at the bottom of the viewport\n */\n var isAtBottom = function () {\n if (\n Math.ceil(window.innerHeight + window.pageYOffset) >=\n getDocumentHeight()\n )\n return true;\n return false;\n };\n\n /**\n * Check if the last item should be used (even if not at the top of the page)\n * @param {Object} item The last item\n * @param {Object} settings The settings for this instantiation\n * @return {Boolean} If true, use the last item\n */\n var useLastItem = function (item, settings) {\n if (isAtBottom() && isInView(item.content, settings, true)) return true;\n return false;\n };\n\n /**\n * Get the active content\n * @param {Array} contents The content areas\n * @param {Object} settings The settings for this instantiation\n * @return {Object} The content area and matching navigation link\n */\n var getActive = function (contents, settings) {\n var last = contents[contents.length - 1];\n if (useLastItem(last, settings)) return last;\n for (var i = contents.length - 1; i >= 0; i--) {\n if (isInView(contents[i].content, settings)) return contents[i];\n }\n };\n\n /**\n * Deactivate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var deactivateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested || !nav.parentNode) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Remove the active class\n li.classList.remove(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n deactivateNested(li, settings);\n };\n\n /**\n * Deactivate a nav and content area\n * @param {Object} items The nav item and content to deactivate\n * @param {Object} settings The settings for this instantiation\n */\n var deactivate = function (items, settings) {\n // Make sure there are items to deactivate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Remove the active class from the nav and content\n li.classList.remove(settings.navClass);\n items.content.classList.remove(settings.contentClass);\n\n // Deactivate any parent navs in a nested navigation\n deactivateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeDeactivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Activate parent navs in a nested navigation\n * @param {Node} nav The starting navigation element\n * @param {Object} settings The settings for this instantiation\n */\n var activateNested = function (nav, settings) {\n // If nesting isn't activated, bail\n if (!settings.nested) return;\n\n // Get the parent navigation\n var li = nav.parentNode.closest(\"li\");\n if (!li) return;\n\n // Add the active class\n li.classList.add(settings.nestedClass);\n\n // Apply recursively to any parent navigation elements\n activateNested(li, settings);\n };\n\n /**\n * Activate a nav and content area\n * @param {Object} items The nav item and content to activate\n * @param {Object} settings The settings for this instantiation\n */\n var activate = function (items, settings) {\n // Make sure there are items to activate\n if (!items) return;\n\n // Get the parent list item\n var li = items.nav.closest(\"li\");\n if (!li) return;\n\n // Add the active class to the nav and content\n li.classList.add(settings.navClass);\n items.content.classList.add(settings.contentClass);\n\n // Activate any parent navs in a nested navigation\n activateNested(li, settings);\n\n // Emit a custom event\n emitEvent(\"gumshoeActivate\", li, {\n link: items.nav,\n content: items.content,\n settings: settings,\n });\n };\n\n /**\n * Create the Constructor object\n * @param {String} selector The selector to use for navigation items\n * @param {Object} options User options and settings\n */\n var Constructor = function (selector, options) {\n //\n // Variables\n //\n\n var publicAPIs = {};\n var navItems, contents, current, timeout, settings;\n\n //\n // Methods\n //\n\n /**\n * Set variables from DOM elements\n */\n publicAPIs.setup = function () {\n // Get all nav items\n navItems = document.querySelectorAll(selector);\n\n // Create contents array\n contents = [];\n\n // Loop through each item, get it's matching content, and push to the array\n Array.prototype.forEach.call(navItems, function (item) {\n // Get the content for the nav item\n var content = document.getElementById(\n decodeURIComponent(item.hash.substr(1)),\n );\n if (!content) return;\n\n // Push to the contents array\n contents.push({\n nav: item,\n content: content,\n });\n });\n\n // Sort contents by the order they appear in the DOM\n sortContents(contents);\n };\n\n /**\n * Detect which content is currently active\n */\n publicAPIs.detect = function () {\n // Get the active content\n var active = getActive(contents, settings);\n\n // if there's no active content, deactivate and bail\n if (!active) {\n if (current) {\n deactivate(current, settings);\n current = null;\n }\n return;\n }\n\n // If the active content is the one currently active, do nothing\n if (current && active.content === current.content) return;\n\n // Deactivate the current content and activate the new content\n deactivate(current, settings);\n activate(active, settings);\n\n // Update the currently active content\n current = active;\n };\n\n /**\n * Detect the active content on scroll\n * Debounced for performance\n */\n var scrollHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(publicAPIs.detect);\n };\n\n /**\n * Update content sorting on resize\n * Debounced for performance\n */\n var resizeHandler = function (event) {\n // If there's a timer, cancel it\n if (timeout) {\n window.cancelAnimationFrame(timeout);\n }\n\n // Setup debounce callback\n timeout = window.requestAnimationFrame(function () {\n sortContents(contents);\n publicAPIs.detect();\n });\n };\n\n /**\n * Destroy the current instantiation\n */\n publicAPIs.destroy = function () {\n // Undo DOM changes\n if (current) {\n deactivate(current, settings);\n }\n\n // Remove event listeners\n window.removeEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.removeEventListener(\"resize\", resizeHandler, false);\n }\n\n // Reset variables\n contents = null;\n navItems = null;\n current = null;\n timeout = null;\n settings = null;\n };\n\n /**\n * Initialize the current instantiation\n */\n var init = function () {\n // Merge user options into defaults\n settings = extend(defaults, options || {});\n\n // Setup variables based on the current DOM\n publicAPIs.setup();\n\n // Find the currently active content\n publicAPIs.detect();\n\n // Setup event listeners\n window.addEventListener(\"scroll\", scrollHandler, false);\n if (settings.reflow) {\n window.addEventListener(\"resize\", resizeHandler, false);\n }\n };\n\n //\n // Initialize and return the public APIs\n //\n\n init();\n return publicAPIs;\n };\n\n //\n // Return the Constructor\n //\n\n return Constructor;\n },\n);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import Gumshoe from \"./gumshoe-patched.js\";\n\n////////////////////////////////////////////////////////////////////////////////\n// Scroll Handling\n////////////////////////////////////////////////////////////////////////////////\nvar tocScroll = null;\nvar header = null;\nvar lastScrollTop = document.documentElement.scrollTop;\nconst GO_TO_TOP_OFFSET = 64;\n\nfunction scrollHandlerForHeader(positionY) {\n const headerTop = Math.floor(header.getBoundingClientRect().top);\n\n console.log(`headerTop: ${headerTop}`);\n if (headerTop == 0 && positionY != headerTop) {\n header.classList.add(\"scrolled\");\n } else {\n header.classList.remove(\"scrolled\");\n }\n}\n\nfunction scrollHandlerForBackToTop(positionY) {\n if (positionY < GO_TO_TOP_OFFSET) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n } else {\n if (positionY < lastScrollTop) {\n document.documentElement.classList.add(\"show-back-to-top\");\n } else if (positionY > lastScrollTop) {\n document.documentElement.classList.remove(\"show-back-to-top\");\n }\n }\n lastScrollTop = positionY;\n}\n\nfunction scrollHandlerForTOC(positionY) {\n if (tocScroll === null) {\n return;\n }\n\n // top of page.\n if (positionY == 0) {\n tocScroll.scrollTo(0, 0);\n } else if (\n // bottom of page.\n Math.ceil(positionY) >=\n Math.floor(document.documentElement.scrollHeight - window.innerHeight)\n ) {\n tocScroll.scrollTo(0, tocScroll.scrollHeight);\n } else {\n // somewhere in the middle.\n const current = document.querySelector(\".scroll-current\");\n if (current == null) {\n return;\n }\n\n // https://github.com/pypa/pip/issues/9159 This breaks scroll behaviours.\n // // scroll the currently \"active\" heading in toc, into view.\n // const rect = current.getBoundingClientRect();\n // if (0 > rect.top) {\n // current.scrollIntoView(true); // the argument is \"alignTop\"\n // } else if (rect.bottom > window.innerHeight) {\n // current.scrollIntoView(false);\n // }\n }\n}\n\nfunction scrollHandler(positionY) {\n scrollHandlerForHeader(positionY);\n scrollHandlerForBackToTop(positionY);\n scrollHandlerForTOC(positionY);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Theme Toggle\n////////////////////////////////////////////////////////////////////////////////\nfunction setTheme(mode) {\n if (mode !== \"light\" && mode !== \"dark\" && mode !== \"auto\") {\n console.error(`Got invalid theme mode: ${mode}. Resetting to auto.`);\n mode = \"auto\";\n }\n\n document.body.dataset.theme = mode;\n localStorage.setItem(\"theme\", mode);\n console.log(`Changed to ${mode} mode.`);\n}\n\nfunction cycleThemeOnce() {\n const currentTheme = localStorage.getItem(\"theme\") || \"auto\";\n const prefersDark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n\n if (prefersDark) {\n // Auto (dark) -> Light -> Dark\n if (currentTheme === \"auto\") {\n setTheme(\"light\");\n } else if (currentTheme == \"light\") {\n setTheme(\"dark\");\n } else {\n setTheme(\"auto\");\n }\n } else {\n // Auto (light) -> Dark -> Light\n if (currentTheme === \"auto\") {\n setTheme(\"dark\");\n } else if (currentTheme == \"dark\") {\n setTheme(\"light\");\n } else {\n setTheme(\"auto\");\n }\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Setup\n////////////////////////////////////////////////////////////////////////////////\nfunction setupScrollHandler() {\n // Taken from https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event\n let last_known_scroll_position = 0;\n let ticking = false;\n\n window.addEventListener(\"scroll\", function (e) {\n last_known_scroll_position = window.scrollY;\n\n if (!ticking) {\n window.requestAnimationFrame(function () {\n scrollHandler(last_known_scroll_position);\n ticking = false;\n });\n\n ticking = true;\n }\n });\n window.scroll();\n}\n\nfunction setupScrollSpy() {\n if (tocScroll === null) {\n return;\n }\n\n // Scrollspy -- highlight table on contents, based on scroll\n new Gumshoe(\".toc-tree a\", {\n reflow: true,\n recursive: true,\n navClass: \"scroll-current\",\n offset: () => {\n let rem = parseFloat(getComputedStyle(document.documentElement).fontSize);\n return header.getBoundingClientRect().height + 2.5 * rem + 1;\n },\n });\n}\n\nfunction setupTheme() {\n // Attach event handlers for toggling themes\n const buttons = document.getElementsByClassName(\"theme-toggle\");\n Array.from(buttons).forEach((btn) => {\n btn.addEventListener(\"click\", cycleThemeOnce);\n });\n}\n\nfunction setup() {\n setupTheme();\n setupScrollHandler();\n setupScrollSpy();\n}\n\n////////////////////////////////////////////////////////////////////////////////\n// Main entrypoint\n////////////////////////////////////////////////////////////////////////////////\nfunction main() {\n document.body.parentNode.classList.remove(\"no-js\");\n\n header = document.querySelector(\"header\");\n tocScroll = document.querySelector(\".toc-scroll\");\n\n setup();\n}\n\ndocument.addEventListener(\"DOMContentLoaded\", main);\n"],"names":["root","g","window","this","defaults","navClass","contentClass","nested","nestedClass","offset","reflow","events","emitEvent","type","elem","detail","settings","event","CustomEvent","bubbles","cancelable","dispatchEvent","getOffsetTop","location","offsetParent","offsetTop","sortContents","contents","sort","item1","item2","content","isInView","bottom","bounds","getBoundingClientRect","parseFloat","getOffset","parseInt","innerHeight","document","documentElement","clientHeight","top","isAtBottom","Math","ceil","pageYOffset","max","body","scrollHeight","offsetHeight","getActive","last","length","item","useLastItem","i","deactivateNested","nav","parentNode","li","closest","classList","remove","deactivate","items","link","activateNested","add","selector","options","navItems","current","timeout","publicAPIs","querySelectorAll","Array","prototype","forEach","call","getElementById","decodeURIComponent","hash","substr","push","active","activate","scrollHandler","cancelAnimationFrame","requestAnimationFrame","detect","resizeHandler","destroy","removeEventListener","merged","arguments","obj","key","hasOwnProperty","extend","setup","addEventListener","factory","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","get","globalThis","Function","e","prop","tocScroll","header","lastScrollTop","scrollTop","GO_TO_TOP_OFFSET","cycleThemeOnce","currentTheme","localStorage","getItem","mode","matchMedia","matches","console","error","dataset","theme","setItem","log","buttons","getElementsByClassName","from","btn","setupTheme","last_known_scroll_position","ticking","scrollY","positionY","headerTop","floor","scrollHandlerForHeader","scrollHandlerForBackToTop","scrollTo","querySelector","scrollHandlerForTOC","scroll","setupScrollHandler","recursive","rem","getComputedStyle","fontSize","height"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/python/_static/searchtools.js b/docs/python/_static/searchtools.js index 7918c3fa..b08d58c9 100644 --- a/docs/python/_static/searchtools.js +++ b/docs/python/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,21 +304,38 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", null, - score, + score + boost, filenames[file], ]); } @@ -308,46 +345,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +399,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +509,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +543,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +595,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/docs/python/_static/styles/furo-extensions.css b/docs/python/_static/styles/furo-extensions.css index bc447f22..82295876 100644 --- a/docs/python/_static/styles/furo-extensions.css +++ b/docs/python/_static/styles/furo-extensions.css @@ -1,2 +1,2 @@ -#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;opacity:1;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} +#furo-sidebar-ad-placement{padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)}#furo-sidebar-ad-placement .ethical-sidebar{background:var(--color-background-secondary);border:none;box-shadow:none}#furo-sidebar-ad-placement .ethical-sidebar:hover{background:var(--color-background-hover)}#furo-sidebar-ad-placement .ethical-sidebar a{color:var(--color-foreground-primary)}#furo-sidebar-ad-placement .ethical-callout a{color:var(--color-foreground-secondary)!important}#furo-readthedocs-versions{background:transparent;display:block;position:static;width:100%}#furo-readthedocs-versions .rst-versions{background:#1a1c1e}#furo-readthedocs-versions .rst-current-version{background:var(--color-sidebar-item-background);cursor:unset}#furo-readthedocs-versions .rst-current-version:hover{background:var(--color-sidebar-item-background)}#furo-readthedocs-versions .rst-current-version .fa-book{color:var(--color-foreground-primary)}#furo-readthedocs-versions>.rst-other-versions{padding:0}#furo-readthedocs-versions>.rst-other-versions small{opacity:1}#furo-readthedocs-versions .injected .rst-versions{position:unset}#furo-readthedocs-versions:focus-within,#furo-readthedocs-versions:hover{box-shadow:0 0 0 1px var(--color-sidebar-background-border)}#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:hover .rst-current-version{background:#1a1c1e;font-size:inherit;height:auto;line-height:inherit;padding:12px;text-align:right}#furo-readthedocs-versions:focus-within .rst-current-version .fa-book,#furo-readthedocs-versions:hover .rst-current-version .fa-book{color:#fff;float:left}#furo-readthedocs-versions:focus-within .fa-caret-down,#furo-readthedocs-versions:hover .fa-caret-down{display:none}#furo-readthedocs-versions:focus-within .injected,#furo-readthedocs-versions:focus-within .rst-current-version,#furo-readthedocs-versions:focus-within .rst-other-versions,#furo-readthedocs-versions:hover .injected,#furo-readthedocs-versions:hover .rst-current-version,#furo-readthedocs-versions:hover .rst-other-versions{display:block}#furo-readthedocs-versions:focus-within>.rst-current-version,#furo-readthedocs-versions:hover>.rst-current-version{display:none}.highlight:hover button.copybtn{color:var(--color-code-foreground)}.highlight button.copybtn{align-items:center;background-color:var(--color-code-background);border:none;color:var(--color-background-item);cursor:pointer;height:1.25em;right:.5rem;top:.625rem;transition:color .3s,opacity .3s;width:1.25em}.highlight button.copybtn:hover{background-color:var(--color-code-background);color:var(--color-brand-content)}.highlight button.copybtn:after{background-color:transparent;color:var(--color-code-foreground);display:none}.highlight button.copybtn.success{color:#22863a;transition:color 0ms}.highlight button.copybtn.success:after{display:block}.highlight button.copybtn svg{padding:0}body{--sd-color-primary:var(--color-brand-primary);--sd-color-primary-highlight:var(--color-brand-content);--sd-color-primary-text:var(--color-background-primary);--sd-color-shadow:rgba(0,0,0,.05);--sd-color-card-border:var(--color-card-border);--sd-color-card-border-hover:var(--color-brand-content);--sd-color-card-background:var(--color-card-background);--sd-color-card-text:var(--color-foreground-primary);--sd-color-card-header:var(--color-card-marginals-background);--sd-color-card-footer:var(--color-card-marginals-background);--sd-color-tabs-label-active:var(--color-brand-content);--sd-color-tabs-label-hover:var(--color-foreground-muted);--sd-color-tabs-label-inactive:var(--color-foreground-muted);--sd-color-tabs-underline-active:var(--color-brand-content);--sd-color-tabs-underline-hover:var(--color-foreground-border);--sd-color-tabs-underline-inactive:var(--color-background-border);--sd-color-tabs-overline:var(--color-background-border);--sd-color-tabs-underline:var(--color-background-border)}.sd-tab-content{box-shadow:0 -2px var(--sd-color-tabs-overline),0 1px var(--sd-color-tabs-underline)}.sd-card{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)}.sd-shadow-sm{box-shadow:0 .1rem .25rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-md{box-shadow:0 .3rem .75rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-shadow-lg{box-shadow:0 .6rem 1.5rem var(--sd-color-shadow),0 0 .0625rem rgba(0,0,0,.1)!important}.sd-card-hover:hover{transform:none}.sd-cards-carousel{gap:.25rem;padding:.25rem}body{--tabs--label-text:var(--color-foreground-muted);--tabs--label-text--hover:var(--color-foreground-muted);--tabs--label-text--active:var(--color-brand-content);--tabs--label-text--active--hover:var(--color-brand-content);--tabs--label-background:transparent;--tabs--label-background--hover:transparent;--tabs--label-background--active:transparent;--tabs--label-background--active--hover:transparent;--tabs--padding-x:0.25em;--tabs--margin-x:1em;--tabs--border:var(--color-background-border);--tabs--label-border:transparent;--tabs--label-border--hover:var(--color-foreground-muted);--tabs--label-border--active:var(--color-brand-content);--tabs--label-border--active--hover:var(--color-brand-content)}[role=main] .container{max-width:none;padding-left:0;padding-right:0}.shadow.docutils{border:none;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)!important}.sphinx-bs .card{background-color:var(--color-background-secondary);color:var(--color-foreground)} /*# sourceMappingURL=furo-extensions.css.map*/ \ No newline at end of file diff --git a/docs/python/_static/styles/furo-extensions.css.map b/docs/python/_static/styles/furo-extensions.css.map index 9ba5637f..c26eac7f 100644 --- a/docs/python/_static/styles/furo-extensions.css.map +++ b/docs/python/_static/styles/furo-extensions.css.map @@ -1 +1 @@ -{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAKE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cALA,UASA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UC5CN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Make it visible\n opacity: 1\n\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"styles/furo-extensions.css","mappings":"AAGA,2BACE,oFACA,4CAKE,6CAHA,YACA,eAEA,CACA,kDACE,yCAEF,8CACE,sCAEJ,8CACE,kDAEJ,2BAGE,uBACA,cAHA,gBACA,UAEA,CAGA,yCACE,mBAEF,gDAEE,gDADA,YACA,CACA,sDACE,gDACF,yDACE,sCAEJ,+CACE,UACA,qDACE,UAGF,mDACE,eAEJ,yEAEE,4DAEA,mHASE,mBAPA,kBAEA,YADA,oBAGA,aADA,gBAIA,CAEA,qIAEE,WADA,UACA,CAEJ,uGACE,aAEF,iUAGE,cAEF,mHACE,aC1EJ,gCACE,mCAEF,0BAEE,mBAUA,8CACA,YAFA,mCAKA,eAZA,cAIA,YADA,YAYA,iCAdA,YAcA,CAEA,gCAEE,8CADA,gCACA,CAEF,gCAGE,6BADA,mCADA,YAEA,CAEF,kCAEE,cADA,oBACA,CACA,wCACE,cAEJ,8BACE,UCzCN,KAEE,6CAA8C,CAC9C,uDAAwD,CACxD,uDAAwD,CAGxD,iCAAsC,CAGtC,+CAAgD,CAChD,uDAAwD,CACxD,uDAAwD,CACxD,oDAAqD,CACrD,6DAA8D,CAC9D,6DAA8D,CAG9D,uDAAwD,CACxD,yDAA0D,CAC1D,4DAA6D,CAC7D,2DAA4D,CAC5D,8DAA+D,CAC/D,iEAAkE,CAClE,uDAAwD,CACxD,wDAAyD,CAG3D,gBACE,qFAGF,SACE,6EAEF,cACE,uFAEF,cACE,uFAEF,cACE,uFAGF,qBACE,eAEF,mBACE,WACA,eChDF,KACE,gDAAiD,CACjD,uDAAwD,CACxD,qDAAsD,CACtD,4DAA6D,CAC7D,oCAAqC,CACrC,2CAA4C,CAC5C,4CAA6C,CAC7C,mDAAoD,CACpD,wBAAyB,CACzB,oBAAqB,CACrB,6CAA8C,CAC9C,gCAAiC,CACjC,yDAA0D,CAC1D,uDAAwD,CACxD,8DAA+D,CCbjE,uBACE,eACA,eACA,gBAGF,iBACE,YACA,+EAGF,iBACE,mDACA","sources":["webpack:///./src/furo/assets/styles/extensions/_readthedocs.sass","webpack:///./src/furo/assets/styles/extensions/_copybutton.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-design.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-inline-tabs.sass","webpack:///./src/furo/assets/styles/extensions/_sphinx-panels.sass"],"sourcesContent":["// This file contains the styles used for tweaking how ReadTheDoc's embedded\n// contents would show up inside the theme.\n\n#furo-sidebar-ad-placement\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n .ethical-sidebar\n // Remove the border and box-shadow.\n border: none\n box-shadow: none\n // Manage the background colors.\n background: var(--color-background-secondary)\n &:hover\n background: var(--color-background-hover)\n // Ensure the text is legible.\n a\n color: var(--color-foreground-primary)\n\n .ethical-callout a\n color: var(--color-foreground-secondary) !important\n\n#furo-readthedocs-versions\n position: static\n width: 100%\n background: transparent\n display: block\n\n // Make the background color fit with the theme's aesthetic.\n .rst-versions\n background: rgb(26, 28, 30)\n\n .rst-current-version\n cursor: unset\n background: var(--color-sidebar-item-background)\n &:hover\n background: var(--color-sidebar-item-background)\n .fa-book\n color: var(--color-foreground-primary)\n\n > .rst-other-versions\n padding: 0\n small\n opacity: 1\n\n .injected\n .rst-versions\n position: unset\n\n &:hover,\n &:focus-within\n box-shadow: 0 0 0 1px var(--color-sidebar-background-border)\n\n .rst-current-version\n // Undo the tweaks done in RTD's CSS\n font-size: inherit\n line-height: inherit\n height: auto\n text-align: right\n padding: 12px\n\n // Match the rest of the body\n background: #1a1c1e\n\n .fa-book\n float: left\n color: white\n\n .fa-caret-down\n display: none\n\n .rst-current-version,\n .rst-other-versions,\n .injected\n display: block\n\n > .rst-current-version\n display: none\n",".highlight\n &:hover button.copybtn\n color: var(--color-code-foreground)\n\n button.copybtn\n // Align things correctly\n align-items: center\n\n height: 1.25em\n width: 1.25em\n\n top: 0.625rem // $code-spacing-vertical\n right: 0.5rem\n\n // Make it look better\n color: var(--color-background-item)\n background-color: var(--color-code-background)\n border: none\n\n // Change to cursor to make it obvious that you can click on it\n cursor: pointer\n\n // Transition smoothly, for aesthetics\n transition: color 300ms, opacity 300ms\n\n &:hover\n color: var(--color-brand-content)\n background-color: var(--color-code-background)\n\n &::after\n display: none\n color: var(--color-code-foreground)\n background-color: transparent\n\n &.success\n transition: color 0ms\n color: #22863a\n &::after\n display: block\n\n svg\n padding: 0\n","body\n // Colors\n --sd-color-primary: var(--color-brand-primary)\n --sd-color-primary-highlight: var(--color-brand-content)\n --sd-color-primary-text: var(--color-background-primary)\n\n // Shadows\n --sd-color-shadow: rgba(0, 0, 0, 0.05)\n\n // Cards\n --sd-color-card-border: var(--color-card-border)\n --sd-color-card-border-hover: var(--color-brand-content)\n --sd-color-card-background: var(--color-card-background)\n --sd-color-card-text: var(--color-foreground-primary)\n --sd-color-card-header: var(--color-card-marginals-background)\n --sd-color-card-footer: var(--color-card-marginals-background)\n\n // Tabs\n --sd-color-tabs-label-active: var(--color-brand-content)\n --sd-color-tabs-label-hover: var(--color-foreground-muted)\n --sd-color-tabs-label-inactive: var(--color-foreground-muted)\n --sd-color-tabs-underline-active: var(--color-brand-content)\n --sd-color-tabs-underline-hover: var(--color-foreground-border)\n --sd-color-tabs-underline-inactive: var(--color-background-border)\n --sd-color-tabs-overline: var(--color-background-border)\n --sd-color-tabs-underline: var(--color-background-border)\n\n// Tabs\n.sd-tab-content\n box-shadow: 0 -2px var(--sd-color-tabs-overline), 0 1px var(--sd-color-tabs-underline)\n\n// Shadows\n.sd-card // Have a shadow by default\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n.sd-shadow-sm\n box-shadow: 0 0.1rem 0.25rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-md\n box-shadow: 0 0.3rem 0.75rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n.sd-shadow-lg\n box-shadow: 0 0.6rem 1.5rem var(--sd-color-shadow), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Cards\n.sd-card-hover:hover // Don't change scale on hover\n transform: none\n\n.sd-cards-carousel // Have a bit of gap in the carousel by default\n gap: 0.25rem\n padding: 0.25rem\n","// This file contains styles to tweak sphinx-inline-tabs to work well with Furo.\n\nbody\n --tabs--label-text: var(--color-foreground-muted)\n --tabs--label-text--hover: var(--color-foreground-muted)\n --tabs--label-text--active: var(--color-brand-content)\n --tabs--label-text--active--hover: var(--color-brand-content)\n --tabs--label-background: transparent\n --tabs--label-background--hover: transparent\n --tabs--label-background--active: transparent\n --tabs--label-background--active--hover: transparent\n --tabs--padding-x: 0.25em\n --tabs--margin-x: 1em\n --tabs--border: var(--color-background-border)\n --tabs--label-border: transparent\n --tabs--label-border--hover: var(--color-foreground-muted)\n --tabs--label-border--active: var(--color-brand-content)\n --tabs--label-border--active--hover: var(--color-brand-content)\n","// This file contains styles to tweak sphinx-panels to work well with Furo.\n\n// sphinx-panels includes Bootstrap 4, which uses .container which can conflict\n// with docutils' `.. container::` directive.\n[role=\"main\"] .container\n max-width: initial\n padding-left: initial\n padding-right: initial\n\n// Make the panels look nicer!\n.shadow.docutils\n border: none\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1) !important\n\n// Make panel colors respond to dark mode\n.sphinx-bs .card\n background-color: var(--color-background-secondary)\n color: var(--color-foreground)\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/docs/python/_static/styles/furo.css b/docs/python/_static/styles/furo.css index 3d29a218..05a56b17 100644 --- a/docs/python/_static/styles/furo.css +++ b/docs/python/_static/styles/furo.css @@ -1,2 +1,2 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{clip:rect(0,0,0,0)!important;border:0!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#646776;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2962ff;--color-brand-content:#2a5adf;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link--hover:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link-underline--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#ffffffcc;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#2b8cee;--color-brand-content:#368ce2;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto,body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link);text-decoration-color:var(--color-link-underline--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{background:var(--color-background-primary);color:var(--color-foreground-primary);height:100%}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{vertical-align:middle}.theme-toggle{background:transparent;border:none;cursor:pointer;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1rem;vertical-align:middle;width:1rem}.theme-toggle-header{float:left;padding:1rem .5rem}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1rem;width:1rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg{color:inherit;height:1rem;width:1rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{fill:currentColor;display:inline-block;height:1rem;width:1rem}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.theme-toggle-header{display:block}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.25rem;width:1.25rem}:target{scroll-margin-top:var(--header-height)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}.content{margin-left:auto;margin-right:auto}}@media(max-width:52em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){.content{padding:0 1em}article aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:3.5rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}.versionmodified{font-style:italic}div.deprecated p,div.versionadded p,div.versionchanged p{margin-bottom:.125rem;margin-top:.125rem}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>p,div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}.table-wrapper{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg width='12' height='12' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='1.5' stroke='%23607D8B' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M0 0h24v24H0z' stroke='none'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree .reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling.Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}[hidden],template{display:none}@media print{.content-icon-container,.headerlink,.mobile-header,.related-pages{display:none!important}.highlight{border:.1pt solid var(--color-foreground-border)}a,blockquote,dl,ol,p,pre,table,ul{page-break-inside:avoid}caption,figure,h1,h2,h3,h4,h5,h6,img{page-break-after:avoid;page-break-inside:avoid}dl,ol,ul{page-break-before:avoid}}.visually-hidden{height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;clip:rect(0,0,0,0)!important;background:var(--color-background-primary);border:0!important;color:var(--color-foreground-primary);white-space:nowrap!important}:-moz-focusring{outline:auto}body{--font-stack:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;--font-stack--monospace:"SFMono-Regular",Menlo,Consolas,Monaco,Liberation Mono,Lucida Console,monospace;--font-stack--headings:var(--font-stack);--font-size--normal:100%;--font-size--small:87.5%;--font-size--small--2:81.25%;--font-size--small--3:75%;--font-size--small--4:62.5%;--sidebar-caption-font-size:var(--font-size--small--2);--sidebar-item-font-size:var(--font-size--small);--sidebar-search-input-font-size:var(--font-size--small);--toc-font-size:var(--font-size--small--3);--toc-font-size--mobile:var(--font-size--normal);--toc-title-font-size:var(--font-size--small--4);--admonition-font-size:0.8125rem;--admonition-title-font-size:0.8125rem;--code-font-size:var(--font-size--small--2);--api-font-size:var(--font-size--small);--header-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*4);--header-padding:0.5rem;--sidebar-tree-space-above:1.5rem;--sidebar-caption-space-above:1rem;--sidebar-item-line-height:1rem;--sidebar-item-spacing-vertical:0.5rem;--sidebar-item-spacing-horizontal:1rem;--sidebar-item-height:calc(var(--sidebar-item-line-height) + var(--sidebar-item-spacing-vertical)*2);--sidebar-expander-width:var(--sidebar-item-height);--sidebar-search-space-above:0.5rem;--sidebar-search-input-spacing-vertical:0.5rem;--sidebar-search-input-spacing-horizontal:0.5rem;--sidebar-search-input-height:1rem;--sidebar-search-icon-size:var(--sidebar-search-input-height);--toc-title-padding:0.25rem 0;--toc-spacing-vertical:1.5rem;--toc-spacing-horizontal:1.5rem;--toc-item-spacing-vertical:0.4rem;--toc-item-spacing-horizontal:1rem;--icon-search:url('data:image/svg+xml;charset=utf-8,');--icon-pencil:url('data:image/svg+xml;charset=utf-8,');--icon-abstract:url('data:image/svg+xml;charset=utf-8,');--icon-info:url('data:image/svg+xml;charset=utf-8,');--icon-flame:url('data:image/svg+xml;charset=utf-8,');--icon-question:url('data:image/svg+xml;charset=utf-8,');--icon-warning:url('data:image/svg+xml;charset=utf-8,');--icon-failure:url('data:image/svg+xml;charset=utf-8,');--icon-spark:url('data:image/svg+xml;charset=utf-8,');--color-admonition-title--caution:#ff9100;--color-admonition-title-background--caution:rgba(255,145,0,.2);--color-admonition-title--warning:#ff9100;--color-admonition-title-background--warning:rgba(255,145,0,.2);--color-admonition-title--danger:#ff5252;--color-admonition-title-background--danger:rgba(255,82,82,.2);--color-admonition-title--attention:#ff5252;--color-admonition-title-background--attention:rgba(255,82,82,.2);--color-admonition-title--error:#ff5252;--color-admonition-title-background--error:rgba(255,82,82,.2);--color-admonition-title--hint:#00c852;--color-admonition-title-background--hint:rgba(0,200,82,.2);--color-admonition-title--tip:#00c852;--color-admonition-title-background--tip:rgba(0,200,82,.2);--color-admonition-title--important:#00bfa5;--color-admonition-title-background--important:rgba(0,191,165,.2);--color-admonition-title--note:#00b0ff;--color-admonition-title-background--note:rgba(0,176,255,.2);--color-admonition-title--seealso:#448aff;--color-admonition-title-background--seealso:rgba(68,138,255,.2);--color-admonition-title--admonition-todo:grey;--color-admonition-title-background--admonition-todo:hsla(0,0%,50%,.2);--color-admonition-title:#651fff;--color-admonition-title-background:rgba(101,31,255,.2);--icon-admonition-default:var(--icon-abstract);--color-topic-title:#14b8a6;--color-topic-title-background:rgba(20,184,166,.2);--icon-topic-default:var(--icon-pencil);--color-problematic:#b30000;--color-foreground-primary:#000;--color-foreground-secondary:#5a5c63;--color-foreground-muted:#6b6f76;--color-foreground-border:#878787;--color-background-primary:#fff;--color-background-secondary:#f8f9fb;--color-background-hover:#efeff4;--color-background-hover--transparent:#efeff400;--color-background-border:#eeebee;--color-background-item:#ccc;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#0a4bff;--color-brand-content:#2757dd;--color-brand-visited:#872ee0;--color-api-background:var(--color-background-hover--transparent);--color-api-background-hover:var(--color-background-hover);--color-api-overall:var(--color-foreground-secondary);--color-api-name:var(--color-problematic);--color-api-pre-name:var(--color-problematic);--color-api-paren:var(--color-foreground-secondary);--color-api-keyword:var(--color-foreground-primary);--color-api-added:#21632c;--color-api-added-border:#38a84d;--color-api-changed:#046172;--color-api-changed-border:#06a1bc;--color-api-deprecated:#605706;--color-api-deprecated-border:#f0d90f;--color-api-removed:#b30000;--color-api-removed-border:#ff5c5c;--color-highlight-on-target:#ffc;--color-inline-code-background:var(--color-background-secondary);--color-highlighted-background:#def;--color-highlighted-text:var(--color-foreground-primary);--color-guilabel-background:#ddeeff80;--color-guilabel-border:#bedaf580;--color-guilabel-text:var(--color-foreground-primary);--color-admonition-background:transparent;--color-table-header-background:var(--color-background-secondary);--color-table-border:var(--color-background-border);--color-card-border:var(--color-background-secondary);--color-card-background:transparent;--color-card-marginals-background:var(--color-background-secondary);--color-header-background:var(--color-background-primary);--color-header-border:var(--color-background-border);--color-header-text:var(--color-foreground-primary);--color-sidebar-background:var(--color-background-secondary);--color-sidebar-background-border:var(--color-background-border);--color-sidebar-brand-text:var(--color-foreground-primary);--color-sidebar-caption-text:var(--color-foreground-muted);--color-sidebar-link-text:var(--color-foreground-secondary);--color-sidebar-link-text--top-level:var(--color-brand-primary);--color-sidebar-item-background:var(--color-sidebar-background);--color-sidebar-item-background--current:var( --color-sidebar-item-background );--color-sidebar-item-background--hover:linear-gradient(90deg,var(--color-background-hover--transparent) 0%,var(--color-background-hover) var(--sidebar-item-spacing-horizontal),var(--color-background-hover) 100%);--color-sidebar-item-expander-background:transparent;--color-sidebar-item-expander-background--hover:var( --color-background-hover );--color-sidebar-search-text:var(--color-foreground-primary);--color-sidebar-search-background:var(--color-background-secondary);--color-sidebar-search-background--focus:var(--color-background-primary);--color-sidebar-search-border:var(--color-background-border);--color-sidebar-search-icon:var(--color-foreground-muted);--color-toc-background:var(--color-background-primary);--color-toc-title-text:var(--color-foreground-muted);--color-toc-item-text:var(--color-foreground-secondary);--color-toc-item-text--hover:var(--color-foreground-primary);--color-toc-item-text--active:var(--color-brand-primary);--color-content-foreground:var(--color-foreground-primary);--color-content-background:transparent;--color-link:var(--color-brand-content);--color-link-underline:var(--color-background-border);--color-link--hover:var(--color-brand-content);--color-link-underline--hover:var(--color-foreground-border);--color-link--visited:var(--color-brand-visited);--color-link-underline--visited:var(--color-background-border);--color-link--visited--hover:var(--color-brand-visited);--color-link-underline--visited--hover:var(--color-foreground-border)}.only-light{display:block!important}html body .only-dark{display:none!important}@media not print{body[data-theme=dark]{--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body[data-theme=dark] .only-light{display:none!important}body[data-theme=dark] .only-dark{display:block!important}@media(prefers-color-scheme:dark){body:not([data-theme=light]){--color-problematic:#ee5151;--color-foreground-primary:#cfd0d0;--color-foreground-secondary:#9ca0a5;--color-foreground-muted:#81868d;--color-foreground-border:#666;--color-background-primary:#131416;--color-background-secondary:#1a1c1e;--color-background-hover:#1e2124;--color-background-hover--transparent:#1e212400;--color-background-border:#303335;--color-background-item:#444;--color-announcement-background:#000000dd;--color-announcement-text:#eeebee;--color-brand-primary:#3d94ff;--color-brand-content:#5ca5ff;--color-brand-visited:#b27aeb;--color-highlighted-background:#083563;--color-guilabel-background:#08356380;--color-guilabel-border:#13395f80;--color-api-keyword:var(--color-foreground-secondary);--color-highlight-on-target:#330;--color-api-added:#3db854;--color-api-added-border:#267334;--color-api-changed:#09b0ce;--color-api-changed-border:#056d80;--color-api-deprecated:#b1a10b;--color-api-deprecated-border:#6e6407;--color-api-removed:#ff7575;--color-api-removed-border:#b03b3b;--color-admonition-background:#18181a;--color-card-border:var(--color-background-secondary);--color-card-background:#18181a;--color-card-marginals-background:var(--color-background-hover)}html body:not([data-theme=light]) .only-light{display:none!important}body:not([data-theme=light]) .only-dark{display:block!important}}}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:block}@media(prefers-color-scheme:dark){body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-dark{display:block}body[data-theme=auto] .theme-toggle svg.theme-icon-when-auto-light{display:none}}body[data-theme=dark] .theme-toggle svg.theme-icon-when-dark,body[data-theme=light] .theme-toggle svg.theme-icon-when-light{display:block}body{font-family:var(--font-stack)}code,kbd,pre,samp{font-family:var(--font-stack--monospace)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}article{line-height:1.5}h1,h2,h3,h4,h5,h6{border-radius:.5rem;font-family:var(--font-stack--headings);font-weight:700;line-height:1.25;margin:.5rem -.5rem;padding-left:.5rem;padding-right:.5rem}h1+p,h2+p,h3+p,h4+p,h5+p,h6+p{margin-top:0}h1{font-size:2.5em;margin-bottom:1rem}h1,h2{margin-top:1.75rem}h2{font-size:2em}h3{font-size:1.5em}h4{font-size:1.25em}h5{font-size:1.125em}h6{font-size:1em}small{font-size:80%;opacity:75%}p{margin-bottom:.75rem;margin-top:.5rem}hr.docutils{background-color:var(--color-background-border);border:0;height:1px;margin:2rem 0;padding:0}.centered{text-align:center}a{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}a:visited{color:var(--color-link--visited);text-decoration-color:var(--color-link-underline--visited)}a:visited:hover{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}a:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link{color:inherit}a.muted-link:hover{color:var(--color-link--hover);text-decoration-color:var(--color-link-underline--hover)}a.muted-link:hover:visited{color:var(--color-link--visited--hover);text-decoration-color:var(--color-link-underline--visited--hover)}html{overflow-x:hidden;overflow-y:scroll;scroll-behavior:smooth}.sidebar-scroll,.toc-scroll,article[role=main] *{scrollbar-color:var(--color-foreground-border) transparent;scrollbar-width:thin}.sidebar-scroll::-webkit-scrollbar,.toc-scroll::-webkit-scrollbar,article[role=main] ::-webkit-scrollbar{height:.25rem;width:.25rem}.sidebar-scroll::-webkit-scrollbar-thumb,.toc-scroll::-webkit-scrollbar-thumb,article[role=main] ::-webkit-scrollbar-thumb{background-color:var(--color-foreground-border);border-radius:.125rem}body,html{height:100%}.skip-to-content,body,html{background:var(--color-background-primary);color:var(--color-foreground-primary)}.skip-to-content{border-radius:1rem;left:.25rem;padding:1rem;position:fixed;top:.25rem;transform:translateY(-200%);transition:transform .3s ease-in-out;z-index:40}.skip-to-content:focus-within{transform:translateY(0)}article{background:var(--color-content-background);color:var(--color-content-foreground);overflow-wrap:break-word}.page{display:flex;min-height:100%}.mobile-header{background-color:var(--color-header-background);border-bottom:1px solid var(--color-header-border);color:var(--color-header-text);display:none;height:var(--header-height);width:100%;z-index:10}.mobile-header.scrolled{border-bottom:none;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2)}.mobile-header .header-center a{color:var(--color-header-text);text-decoration:none}.main{display:flex;flex:1}.sidebar-drawer{background:var(--color-sidebar-background);border-right:1px solid var(--color-sidebar-background-border);box-sizing:border-box;display:flex;justify-content:flex-end;min-width:15em;width:calc(50% - 26em)}.sidebar-container,.toc-drawer{box-sizing:border-box;width:15em}.toc-drawer{background:var(--color-toc-background);padding-right:1rem}.sidebar-sticky,.toc-sticky{display:flex;flex-direction:column;height:min(100%,100vh);height:100vh;position:sticky;top:0}.sidebar-scroll,.toc-scroll{flex-grow:1;flex-shrink:1;overflow:auto;scroll-behavior:smooth}.content{display:flex;flex-direction:column;justify-content:space-between;padding:0 3em;width:46em}.icon{display:inline-block;height:1rem;width:1rem}.icon svg{height:100%;width:100%}.announcement{align-items:center;background-color:var(--color-announcement-background);color:var(--color-announcement-text);display:flex;height:var(--header-height);overflow-x:auto}.announcement+.page{min-height:calc(100% - var(--header-height))}.announcement-content{box-sizing:border-box;min-width:100%;padding:.5rem;text-align:center;white-space:nowrap}.announcement-content a{color:var(--color-announcement-text);text-decoration-color:var(--color-announcement-text)}.announcement-content a:hover{color:var(--color-announcement-text);text-decoration-color:var(--color-link--hover)}.no-js .theme-toggle-container{display:none}.theme-toggle-container{display:flex}.theme-toggle{background:transparent;border:none;cursor:pointer;display:flex;padding:0}.theme-toggle svg{color:var(--color-foreground-primary);display:none;height:1.25rem;width:1.25rem}.theme-toggle-header{align-items:center;display:flex;justify-content:center}.nav-overlay-icon,.toc-overlay-icon{cursor:pointer;display:none}.nav-overlay-icon .icon,.toc-overlay-icon .icon{color:var(--color-foreground-secondary);height:1.5rem;width:1.5rem}.nav-overlay-icon,.toc-header-icon{align-items:center;justify-content:center}.toc-content-icon{height:1.5rem;width:1.5rem}.content-icon-container{display:flex;float:right;gap:.5rem;margin-bottom:1rem;margin-left:1rem;margin-top:1.5rem}.content-icon-container .edit-this-page svg,.content-icon-container .view-this-page svg{color:inherit;height:1.25rem;width:1.25rem}.sidebar-toggle{display:none;position:absolute}.sidebar-toggle[name=__toc]{left:20px}.sidebar-toggle:checked{left:40px}.overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms,height 0ms,opacity .25s ease-out;width:0}.sidebar-overlay{z-index:20}.toc-overlay{z-index:40}.sidebar-drawer{transition:left .25s ease-in-out;z-index:30}.toc-drawer{transition:right .25s ease-in-out;z-index:50}#__navigation:checked~.sidebar-overlay{height:100%;opacity:1;width:100%}#__navigation:checked~.page .sidebar-drawer{left:0;top:0}#__toc:checked~.toc-overlay{height:100%;opacity:1;width:100%}#__toc:checked~.page .toc-drawer{right:0;top:0}.back-to-top{background:var(--color-background-primary);border-radius:1rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 1px 0 hsla(220,9%,46%,.502);display:none;font-size:.8125rem;left:0;margin-left:50%;padding:.5rem .75rem .5rem .5rem;position:fixed;text-decoration:none;top:1rem;transform:translateX(-50%);z-index:10}.back-to-top svg{height:1rem;width:1rem;fill:currentColor;display:inline-block}.back-to-top span{margin-left:.25rem}.show-back-to-top .back-to-top{align-items:center;display:flex}@media(min-width:97em){html{font-size:110%}}@media(max-width:82em){.toc-content-icon{display:flex}.toc-drawer{border-left:1px solid var(--color-background-muted);height:100vh;position:fixed;right:-15em;top:0}.toc-tree{border-left:none;font-size:var(--toc-font-size--mobile)}.sidebar-drawer{width:calc(50% - 18.5em)}}@media(max-width:67em){.content{margin-left:auto;margin-right:auto;padding:0 1em}}@media(max-width:63em){.nav-overlay-icon{display:flex}.sidebar-drawer{height:100vh;left:-15em;position:fixed;top:0;width:15em}.theme-toggle-header,.toc-header-icon{display:flex}.theme-toggle-content,.toc-content-icon{display:none}.mobile-header{align-items:center;display:flex;justify-content:space-between;position:sticky;top:0}.mobile-header .header-left,.mobile-header .header-right{display:flex;height:var(--header-height);padding:0 var(--header-padding)}.mobile-header .header-left label,.mobile-header .header-right label{height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.nav-overlay-icon .icon,.theme-toggle svg{height:1.5rem;width:1.5rem}:target{scroll-margin-top:calc(var(--header-height) + 2.5rem)}.back-to-top{top:calc(var(--header-height) + .5rem)}.page{flex-direction:column;justify-content:center}}@media(max-width:48em){.content{overflow-x:auto;width:100%}}@media(max-width:46em){article[role=main] aside.sidebar{float:none;margin:1rem 0;width:100%}}.admonition,.topic{background:var(--color-admonition-background);border-radius:.2rem;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1);font-size:var(--admonition-font-size);margin:1rem auto;overflow:hidden;padding:0 .5rem .5rem;page-break-inside:avoid}.admonition>:nth-child(2),.topic>:nth-child(2){margin-top:0}.admonition>:last-child,.topic>:last-child{margin-bottom:0}.admonition p.admonition-title,p.topic-title{font-size:var(--admonition-title-font-size);font-weight:500;line-height:1.3;margin:0 -.5rem .5rem;padding:.4rem .5rem .4rem 2rem;position:relative}.admonition p.admonition-title:before,p.topic-title:before{content:"";height:1rem;left:.5rem;position:absolute;width:1rem}p.admonition-title{background-color:var(--color-admonition-title-background)}p.admonition-title:before{background-color:var(--color-admonition-title);-webkit-mask-image:var(--icon-admonition-default);mask-image:var(--icon-admonition-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}p.topic-title{background-color:var(--color-topic-title-background)}p.topic-title:before{background-color:var(--color-topic-title);-webkit-mask-image:var(--icon-topic-default);mask-image:var(--icon-topic-default);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.admonition{border-left:.2rem solid var(--color-admonition-title)}.admonition.caution{border-left-color:var(--color-admonition-title--caution)}.admonition.caution>.admonition-title{background-color:var(--color-admonition-title-background--caution)}.admonition.caution>.admonition-title:before{background-color:var(--color-admonition-title--caution);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.warning{border-left-color:var(--color-admonition-title--warning)}.admonition.warning>.admonition-title{background-color:var(--color-admonition-title-background--warning)}.admonition.warning>.admonition-title:before{background-color:var(--color-admonition-title--warning);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.danger{border-left-color:var(--color-admonition-title--danger)}.admonition.danger>.admonition-title{background-color:var(--color-admonition-title-background--danger)}.admonition.danger>.admonition-title:before{background-color:var(--color-admonition-title--danger);-webkit-mask-image:var(--icon-spark);mask-image:var(--icon-spark)}.admonition.attention{border-left-color:var(--color-admonition-title--attention)}.admonition.attention>.admonition-title{background-color:var(--color-admonition-title-background--attention)}.admonition.attention>.admonition-title:before{background-color:var(--color-admonition-title--attention);-webkit-mask-image:var(--icon-warning);mask-image:var(--icon-warning)}.admonition.error{border-left-color:var(--color-admonition-title--error)}.admonition.error>.admonition-title{background-color:var(--color-admonition-title-background--error)}.admonition.error>.admonition-title:before{background-color:var(--color-admonition-title--error);-webkit-mask-image:var(--icon-failure);mask-image:var(--icon-failure)}.admonition.hint{border-left-color:var(--color-admonition-title--hint)}.admonition.hint>.admonition-title{background-color:var(--color-admonition-title-background--hint)}.admonition.hint>.admonition-title:before{background-color:var(--color-admonition-title--hint);-webkit-mask-image:var(--icon-question);mask-image:var(--icon-question)}.admonition.tip{border-left-color:var(--color-admonition-title--tip)}.admonition.tip>.admonition-title{background-color:var(--color-admonition-title-background--tip)}.admonition.tip>.admonition-title:before{background-color:var(--color-admonition-title--tip);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.important{border-left-color:var(--color-admonition-title--important)}.admonition.important>.admonition-title{background-color:var(--color-admonition-title-background--important)}.admonition.important>.admonition-title:before{background-color:var(--color-admonition-title--important);-webkit-mask-image:var(--icon-flame);mask-image:var(--icon-flame)}.admonition.note{border-left-color:var(--color-admonition-title--note)}.admonition.note>.admonition-title{background-color:var(--color-admonition-title-background--note)}.admonition.note>.admonition-title:before{background-color:var(--color-admonition-title--note);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition.seealso{border-left-color:var(--color-admonition-title--seealso)}.admonition.seealso>.admonition-title{background-color:var(--color-admonition-title-background--seealso)}.admonition.seealso>.admonition-title:before{background-color:var(--color-admonition-title--seealso);-webkit-mask-image:var(--icon-info);mask-image:var(--icon-info)}.admonition.admonition-todo{border-left-color:var(--color-admonition-title--admonition-todo)}.admonition.admonition-todo>.admonition-title{background-color:var(--color-admonition-title-background--admonition-todo)}.admonition.admonition-todo>.admonition-title:before{background-color:var(--color-admonition-title--admonition-todo);-webkit-mask-image:var(--icon-pencil);mask-image:var(--icon-pencil)}.admonition-todo>.admonition-title{text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd{margin-left:2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:first-child{margin-top:.125rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list,dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) dd>:last-child{margin-bottom:.75rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list>dt{font-size:var(--font-size--small);text-transform:uppercase}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd:empty{margin-bottom:.5rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul{margin-left:-1.2rem}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p:nth-child(2){margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple) .field-list dd>ul>li>p+p:last-child:empty{margin-bottom:0;margin-top:0}dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt{color:var(--color-api-overall)}.sig:not(.sig-inline){background:var(--color-api-background);border-radius:.25rem;font-family:var(--font-stack--monospace);font-size:var(--api-font-size);font-weight:700;margin-left:-.25rem;margin-right:-.25rem;padding:.25rem .5rem .25rem 3em;text-indent:-2.5em;transition:background .1s ease-out}.sig:not(.sig-inline):hover{background:var(--color-api-background-hover)}.sig:not(.sig-inline) a.reference .viewcode-link{font-weight:400;width:4.25rem}em.property{font-style:normal}em.property:first-child{color:var(--color-api-keyword)}.sig-name{color:var(--color-api-name)}.sig-prename{color:var(--color-api-pre-name);font-weight:400}.sig-paren{color:var(--color-api-paren)}.sig-param{font-style:normal}div.deprecated,div.versionadded,div.versionchanged,div.versionremoved{border-left:.1875rem solid;border-radius:.125rem;padding-left:.75rem}div.deprecated p,div.versionadded p,div.versionchanged p,div.versionremoved p{margin-bottom:.125rem;margin-top:.125rem}div.versionadded{border-color:var(--color-api-added-border)}div.versionadded .versionmodified{color:var(--color-api-added)}div.versionchanged{border-color:var(--color-api-changed-border)}div.versionchanged .versionmodified{color:var(--color-api-changed)}div.deprecated{border-color:var(--color-api-deprecated-border)}div.deprecated .versionmodified{color:var(--color-api-deprecated)}div.versionremoved{border-color:var(--color-api-removed-border)}div.versionremoved .versionmodified{color:var(--color-api-removed)}.viewcode-back,.viewcode-link{float:right;text-align:right}.line-block{margin-bottom:.75rem;margin-top:.5rem}.line-block .line-block{margin-bottom:0;margin-top:0;padding-left:1rem}.code-block-caption,article p.caption,table>caption{font-size:var(--font-size--small);text-align:center}.toctree-wrapper.compound .caption,.toctree-wrapper.compound :not(.caption)>.caption-text{font-size:var(--font-size--small);margin-bottom:0;text-align:initial;text-transform:uppercase}.toctree-wrapper.compound>ul{margin-bottom:0;margin-top:0}.sig-inline,code.literal{background:var(--color-inline-code-background);border-radius:.2em;font-size:var(--font-size--small--2);padding:.1em .2em}pre.literal-block .sig-inline,pre.literal-block code.literal{font-size:inherit;padding:0}p .sig-inline,p code.literal{border:1px solid var(--color-background-border)}.sig-inline{font-family:var(--font-stack--monospace)}div[class*=" highlight-"],div[class^=highlight-]{display:flex;margin:1em 0}div[class*=" highlight-"] .table-wrapper,div[class^=highlight-] .table-wrapper,pre{margin:0;padding:0}pre{overflow:auto}article[role=main] .highlight pre{line-height:1.5}.highlight pre,pre.literal-block{font-size:var(--code-font-size);padding:.625rem .875rem}pre.literal-block{background-color:var(--color-code-background);border-radius:.2rem;color:var(--color-code-foreground);margin-bottom:1rem;margin-top:1rem}.highlight{border-radius:.2rem;width:100%}.highlight .gp,.highlight span.linenos{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.highlight .hll{display:block;margin-left:-.875rem;margin-right:-.875rem;padding-left:.875rem;padding-right:.875rem}.code-block-caption{background-color:var(--color-code-background);border-bottom:1px solid;border-radius:.25rem;border-bottom-left-radius:0;border-bottom-right-radius:0;border-color:var(--color-background-border);color:var(--color-code-foreground);display:flex;font-weight:300;padding:.625rem .875rem}.code-block-caption+div[class]{margin-top:0}.code-block-caption+div[class] pre{border-top-left-radius:0;border-top-right-radius:0}.highlighttable{display:block;width:100%}.highlighttable tbody{display:block}.highlighttable tr{display:flex}.highlighttable td.linenos{background-color:var(--color-code-background);border-bottom-left-radius:.2rem;border-top-left-radius:.2rem;color:var(--color-code-foreground);padding:.625rem 0 .625rem .875rem}.highlighttable .linenodiv{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;font-size:var(--code-font-size);padding-right:.875rem}.highlighttable td.code{display:block;flex:1;overflow:hidden;padding:0}.highlighttable td.code .highlight{border-bottom-left-radius:0;border-top-left-radius:0}.highlight span.linenos{box-shadow:-.0625rem 0 var(--color-foreground-border) inset;display:inline-block;margin-right:.875rem;padding-left:0;padding-right:.875rem}.footnote-reference{font-size:var(--font-size--small--4);vertical-align:super}dl.footnote.brackets{color:var(--color-foreground-secondary);display:grid;font-size:var(--font-size--small);grid-template-columns:max-content auto}dl.footnote.brackets dt{margin:0}dl.footnote.brackets dt>.fn-backref{margin-left:.25rem}dl.footnote.brackets dt:after{content:":"}dl.footnote.brackets dt .brackets:before{content:"["}dl.footnote.brackets dt .brackets:after{content:"]"}dl.footnote.brackets dd{margin:0;padding:0 1rem}aside.footnote{color:var(--color-foreground-secondary);font-size:var(--font-size--small)}aside.footnote>span,div.citation>span{float:left;font-weight:500;padding-right:.25rem}aside.footnote>:not(span),div.citation>p{margin-left:2rem}img{box-sizing:border-box;height:auto;max-width:100%}article .figure,article figure{border-radius:.2rem;margin:0}article .figure :last-child,article figure :last-child{margin-bottom:0}article .align-left{clear:left;float:left;margin:0 1rem 1rem}article .align-right{clear:right;float:right;margin:0 1rem 1rem}article .align-center,article .align-default{display:block;margin-left:auto;margin-right:auto;text-align:center}article table.align-default{display:table;text-align:initial}.domainindex-jumpbox,.genindex-jumpbox{border-bottom:1px solid var(--color-background-border);border-top:1px solid var(--color-background-border);padding:.25rem}.domainindex-section h2,.genindex-section h2{margin-bottom:.5rem;margin-top:.75rem}.domainindex-section ul,.genindex-section ul{margin-bottom:0;margin-top:0}ol,ul{margin-bottom:1rem;margin-top:1rem;padding-left:1.2rem}ol li>p:first-child,ul li>p:first-child{margin-bottom:.25rem;margin-top:.25rem}ol li>p:last-child,ul li>p:last-child{margin-top:.25rem}ol li>ol,ol li>ul,ul li>ol,ul li>ul{margin-bottom:.5rem;margin-top:.5rem}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}.simple li>ol,.simple li>ul,.toctree-wrapper li>ol,.toctree-wrapper li>ul{margin-bottom:0;margin-top:0}.field-list dt,.option-list dt,dl.footnote dt,dl.glossary dt,dl.simple dt,dl:not([class]) dt{font-weight:500;margin-top:.25rem}.field-list dt+dt,.option-list dt+dt,dl.footnote dt+dt,dl.glossary dt+dt,dl.simple dt+dt,dl:not([class]) dt+dt{margin-top:0}.field-list dt .classifier:before,.option-list dt .classifier:before,dl.footnote dt .classifier:before,dl.glossary dt .classifier:before,dl.simple dt .classifier:before,dl:not([class]) dt .classifier:before{content:":";margin-left:.2rem;margin-right:.2rem}.field-list dd ul,.field-list dd>p:first-child,.option-list dd ul,.option-list dd>p:first-child,dl.footnote dd ul,dl.footnote dd>p:first-child,dl.glossary dd ul,dl.glossary dd>p:first-child,dl.simple dd ul,dl.simple dd>p:first-child,dl:not([class]) dd ul,dl:not([class]) dd>p:first-child{margin-top:.125rem}.field-list dd ul,.option-list dd ul,dl.footnote dd ul,dl.glossary dd ul,dl.simple dd ul,dl:not([class]) dd ul{margin-bottom:.125rem}.math-wrapper{overflow-x:auto;width:100%}div.math{position:relative;text-align:center}div.math .headerlink,div.math:focus .headerlink{display:none}div.math:hover .headerlink{display:inline-block}div.math span.eqno{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);z-index:1}abbr[title]{cursor:help}.problematic{color:var(--color-problematic)}kbd:not(.compound){background-color:var(--color-background-secondary);border:1px solid var(--color-foreground-border);border-radius:.2rem;box-shadow:0 .0625rem 0 rgba(0,0,0,.2),inset 0 0 0 .125rem var(--color-background-primary);color:var(--color-foreground-primary);display:inline-block;font-size:var(--font-size--small--3);margin:0 .2rem;padding:0 .2rem;vertical-align:text-bottom}blockquote{background:var(--color-background-secondary);border-left:4px solid var(--color-background-border);margin-left:0;margin-right:0;padding:.5rem 1rem}blockquote .attribution{font-weight:600;text-align:right}blockquote.highlights,blockquote.pull-quote{font-size:1.25em}blockquote.epigraph,blockquote.pull-quote{border-left-width:0;border-radius:.5rem}blockquote.highlights{background:transparent;border-left-width:0}p .reference img{vertical-align:middle}p.rubric{font-size:1.125em;font-weight:700;line-height:1.25}dd p.rubric{font-size:var(--font-size--small);font-weight:inherit;line-height:inherit;text-transform:uppercase}article .sidebar{background-color:var(--color-background-secondary);border:1px solid var(--color-background-border);border-radius:.2rem;clear:right;float:right;margin-left:1rem;margin-right:0;width:30%}article .sidebar>*{padding-left:1rem;padding-right:1rem}article .sidebar>ol,article .sidebar>ul{padding-left:2.2rem}article .sidebar .sidebar-title{border-bottom:1px solid var(--color-background-border);font-weight:500;margin:0;padding:.5rem 1rem}[role=main] .table-wrapper.container{margin-bottom:.5rem;margin-top:1rem;overflow-x:auto;padding:.2rem .2rem .75rem;width:100%}table.docutils{border-collapse:collapse;border-radius:.2rem;border-spacing:0;box-shadow:0 .2rem .5rem rgba(0,0,0,.05),0 0 .0625rem rgba(0,0,0,.1)}table.docutils th{background:var(--color-table-header-background)}table.docutils td,table.docutils th{border-bottom:1px solid var(--color-table-border);border-left:1px solid var(--color-table-border);border-right:1px solid var(--color-table-border);padding:0 .25rem}table.docutils td p,table.docutils th p{margin:.25rem}table.docutils td:first-child,table.docutils th:first-child{border-left:none}table.docutils td:last-child,table.docutils th:last-child{border-right:none}table.docutils td.text-left,table.docutils th.text-left{text-align:left}table.docutils td.text-right,table.docutils th.text-right{text-align:right}table.docutils td.text-center,table.docutils th.text-center{text-align:center}:target{scroll-margin-top:2.5rem}@media(max-width:67em){:target{scroll-margin-top:calc(2.5rem + var(--header-height))}section>span:target{scroll-margin-top:calc(2.8rem + var(--header-height))}}.headerlink{font-weight:100;-webkit-user-select:none;-moz-user-select:none;user-select:none}.code-block-caption>.headerlink,dl dt>.headerlink,figcaption p>.headerlink,h1>.headerlink,h2>.headerlink,h3>.headerlink,h4>.headerlink,h5>.headerlink,h6>.headerlink,p.caption>.headerlink,table>caption>.headerlink{margin-left:.5rem;visibility:hidden}.code-block-caption:hover>.headerlink,dl dt:hover>.headerlink,figcaption p:hover>.headerlink,h1:hover>.headerlink,h2:hover>.headerlink,h3:hover>.headerlink,h4:hover>.headerlink,h5:hover>.headerlink,h6:hover>.headerlink,p.caption:hover>.headerlink,table>caption:hover>.headerlink{visibility:visible}.code-block-caption>.toc-backref,dl dt>.toc-backref,figcaption p>.toc-backref,h1>.toc-backref,h2>.toc-backref,h3>.toc-backref,h4>.toc-backref,h5>.toc-backref,h6>.toc-backref,p.caption>.toc-backref,table>caption>.toc-backref{color:inherit;text-decoration-line:none}figure:hover>figcaption>p>.headerlink,table:hover>caption>.headerlink{visibility:visible}:target>h1:first-of-type,:target>h2:first-of-type,:target>h3:first-of-type,:target>h4:first-of-type,:target>h5:first-of-type,:target>h6:first-of-type,span:target~h1:first-of-type,span:target~h2:first-of-type,span:target~h3:first-of-type,span:target~h4:first-of-type,span:target~h5:first-of-type,span:target~h6:first-of-type{background-color:var(--color-highlight-on-target)}:target>h1:first-of-type code.literal,:target>h2:first-of-type code.literal,:target>h3:first-of-type code.literal,:target>h4:first-of-type code.literal,:target>h5:first-of-type code.literal,:target>h6:first-of-type code.literal,span:target~h1:first-of-type code.literal,span:target~h2:first-of-type code.literal,span:target~h3:first-of-type code.literal,span:target~h4:first-of-type code.literal,span:target~h5:first-of-type code.literal,span:target~h6:first-of-type code.literal{background-color:transparent}.literal-block-wrapper:target .code-block-caption,.this-will-duplicate-information-and-it-is-still-useful-here li :target,figure:target,table:target>caption{background-color:var(--color-highlight-on-target)}dt:target{background-color:var(--color-highlight-on-target)!important}.footnote-reference:target,.footnote>dt:target+dd{background-color:var(--color-highlight-on-target)}.guilabel{background-color:var(--color-guilabel-background);border:1px solid var(--color-guilabel-border);border-radius:.5em;color:var(--color-guilabel-text);font-size:.9em;padding:0 .3em}footer{display:flex;flex-direction:column;font-size:var(--font-size--small);margin-top:2rem}.bottom-of-page{align-items:center;border-top:1px solid var(--color-background-border);color:var(--color-foreground-secondary);display:flex;justify-content:space-between;line-height:1.5;margin-top:1rem;padding-bottom:1rem;padding-top:1rem}@media(max-width:46em){.bottom-of-page{flex-direction:column-reverse;gap:.25rem;text-align:center}}.bottom-of-page .left-details{font-size:var(--font-size--small)}.bottom-of-page .right-details{display:flex;flex-direction:column;gap:.25rem;text-align:right}.bottom-of-page .icons{display:flex;font-size:1rem;gap:.25rem;justify-content:flex-end}.bottom-of-page .icons a{text-decoration:none}.bottom-of-page .icons img,.bottom-of-page .icons svg{font-size:1.125rem;height:1em;width:1em}.related-pages a{align-items:center;display:flex;text-decoration:none}.related-pages a:hover .page-info .title{color:var(--color-link);text-decoration:underline;text-decoration-color:var(--color-link-underline)}.related-pages a svg.furo-related-icon,.related-pages a svg.furo-related-icon>use{color:var(--color-foreground-border);flex-shrink:0;height:.75rem;margin:0 .5rem;width:.75rem}.related-pages a.next-page{clear:right;float:right;max-width:50%;text-align:right}.related-pages a.prev-page{clear:left;float:left;max-width:50%}.related-pages a.prev-page svg{transform:rotate(180deg)}.page-info{display:flex;flex-direction:column;overflow-wrap:anywhere}.next-page .page-info{align-items:flex-end}.page-info .context{align-items:center;color:var(--color-foreground-muted);display:flex;font-size:var(--font-size--small);padding-bottom:.1rem;text-decoration:none}ul.search{list-style:none;padding-left:0}ul.search li{border-bottom:1px solid var(--color-background-border);padding:1rem 0}[role=main] .highlighted{background-color:var(--color-highlighted-background);color:var(--color-highlighted-text)}.sidebar-brand{display:flex;flex-direction:column;flex-shrink:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none}.sidebar-brand-text{color:var(--color-sidebar-brand-text);font-size:1.5rem;overflow-wrap:break-word}.sidebar-brand-text,.sidebar-logo-container{margin:var(--sidebar-item-spacing-vertical) 0}.sidebar-logo{display:block;margin:0 auto;max-width:100%}.sidebar-search-container{align-items:center;background:var(--color-sidebar-search-background);display:flex;margin-top:var(--sidebar-search-space-above);position:relative}.sidebar-search-container:focus-within,.sidebar-search-container:hover{background:var(--color-sidebar-search-background--focus)}.sidebar-search-container:before{background-color:var(--color-sidebar-search-icon);content:"";height:var(--sidebar-search-icon-size);left:var(--sidebar-item-spacing-horizontal);-webkit-mask-image:var(--icon-search);mask-image:var(--icon-search);position:absolute;width:var(--sidebar-search-icon-size)}.sidebar-search{background:transparent;border:none;border-bottom:1px solid var(--color-sidebar-search-border);border-top:1px solid var(--color-sidebar-search-border);box-sizing:border-box;color:var(--color-sidebar-search-foreground);padding:var(--sidebar-search-input-spacing-vertical) var(--sidebar-search-input-spacing-horizontal) var(--sidebar-search-input-spacing-vertical) calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size));width:100%;z-index:10}.sidebar-search:focus{outline:none}.sidebar-search::-moz-placeholder{font-size:var(--sidebar-search-input-font-size)}.sidebar-search::placeholder{font-size:var(--sidebar-search-input-font-size)}#searchbox .highlight-link{margin:0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0;text-align:center}#searchbox .highlight-link a{color:var(--color-sidebar-search-icon);font-size:var(--font-size--small--2)}.sidebar-tree{font-size:var(--sidebar-item-font-size);margin-bottom:var(--sidebar-item-spacing-vertical);margin-top:var(--sidebar-tree-space-above)}.sidebar-tree ul{display:flex;flex-direction:column;list-style:none;margin-bottom:0;margin-top:0;padding:0}.sidebar-tree li{margin:0;position:relative}.sidebar-tree li>ul{margin-left:var(--sidebar-item-spacing-horizontal)}.sidebar-tree .icon,.sidebar-tree .reference{color:var(--color-sidebar-link-text)}.sidebar-tree .reference{box-sizing:border-box;display:inline-block;height:100%;line-height:var(--sidebar-item-line-height);overflow-wrap:anywhere;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-decoration:none;width:100%}.sidebar-tree .reference:hover{background:var(--color-sidebar-item-background--hover);color:var(--color-sidebar-link-text)}.sidebar-tree .reference.external:after{color:var(--color-sidebar-link-text);content:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23607D8B' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' viewBox='0 0 24 24'%3E%3Cpath stroke='none' d='M0 0h24v24H0z'/%3E%3Cpath d='M11 7H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h9a2 2 0 0 0 2-2v-5M10 14 20 4M15 4h5v5'/%3E%3C/svg%3E");margin:0 .25rem;vertical-align:middle}.sidebar-tree .current-page>.reference{font-weight:700}.sidebar-tree label{align-items:center;cursor:pointer;display:flex;height:var(--sidebar-item-height);justify-content:center;position:absolute;right:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--sidebar-expander-width)}.sidebar-tree .caption,.sidebar-tree :not(.caption)>.caption-text{color:var(--color-sidebar-caption-text);font-size:var(--sidebar-caption-font-size);font-weight:700;margin:var(--sidebar-caption-space-above) 0 0 0;padding:var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal);text-transform:uppercase}.sidebar-tree li.has-children>.reference{padding-right:var(--sidebar-expander-width)}.sidebar-tree .toctree-l1>.reference,.sidebar-tree .toctree-l1>label .icon{color:var(--color-sidebar-link-text--top-level)}.sidebar-tree label{background:var(--color-sidebar-item-expander-background)}.sidebar-tree label:hover{background:var(--color-sidebar-item-expander-background--hover)}.sidebar-tree .current>.reference{background:var(--color-sidebar-item-background--current)}.sidebar-tree .current>.reference:hover{background:var(--color-sidebar-item-background--hover)}.toctree-checkbox{display:none;position:absolute}.toctree-checkbox~ul{display:none}.toctree-checkbox~label .icon svg{transform:rotate(90deg)}.toctree-checkbox:checked~ul{display:block}.toctree-checkbox:checked~label .icon svg{transform:rotate(-90deg)}.toc-title-container{padding:var(--toc-title-padding);padding-top:var(--toc-spacing-vertical)}.toc-title{color:var(--color-toc-title-text);font-size:var(--toc-title-font-size);padding-left:var(--toc-spacing-horizontal);text-transform:uppercase}.no-toc{display:none}.toc-tree-container{padding-bottom:var(--toc-spacing-vertical)}.toc-tree{border-left:1px solid var(--color-background-border);font-size:var(--toc-font-size);line-height:1.3;padding-left:calc(var(--toc-spacing-horizontal) - var(--toc-item-spacing-horizontal))}.toc-tree>ul>li:first-child{padding-top:0}.toc-tree>ul>li:first-child>ul{padding-left:0}.toc-tree>ul>li:first-child>a{display:none}.toc-tree ul{list-style-type:none;margin-bottom:0;margin-top:0;padding-left:var(--toc-item-spacing-horizontal)}.toc-tree li{padding-top:var(--toc-item-spacing-vertical)}.toc-tree li.scroll-current>.reference{color:var(--color-toc-item-text--active);font-weight:700}.toc-tree a.reference{color:var(--color-toc-item-text);overflow-wrap:anywhere;text-decoration:none}.toc-scroll{max-height:100vh;overflow-y:scroll}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here){background:rgba(255,0,0,.25);color:var(--color-problematic)}.contents:not(.this-will-duplicate-information-and-it-is-still-useful-here):before{content:"ERROR: Adding a table of contents in Furo-based documentation is unnecessary, and does not work well with existing styling. Add a 'this-will-duplicate-information-and-it-is-still-useful-here' class, if you want an escape hatch."}.text-align\:left>p{text-align:left}.text-align\:center>p{text-align:center}.text-align\:right>p{text-align:right} /*# sourceMappingURL=furo.css.map*/ \ No newline at end of file diff --git a/docs/python/_static/styles/furo.css.map b/docs/python/_static/styles/furo.css.map index 1924b333..3ecc3715 100644 --- a/docs/python/_static/styles/furo.css.map +++ b/docs/python/_static/styles/furo.css.map @@ -1 +1 @@ -{"version":3,"file":"styles/furo.css","mappings":"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F,kBACA,CACE,wEACA,CARA,YACA,CAKF,mBAFF,MACE,CAIE,gBAJF,iCAJE,cAGJ,CANI,oBAEA,CAKF,SAIE,2BADA,UACA,kBAGF,sCACA,CAFF,WACE,WACA,mBACE,kDACA,0EACA,uDAKJ,aACE,mDAII,CAJJ,6CAII,4BACA,sCACE,kEACA,+CACE,aACA,WADA,+BACA,uEANN,YACE,mDAEE,mBADF,0CACE,CADF,qBACE,0DACA,YACE,4DACA,sEANN,YACE,8CACA,kBADA,UACA,2CACE,2EACA,cACE,kEACA,mEANN,yBACE,4DACA,sBACE,+EAEE,iEACA,qEANN,sCACE,CAGE,iBAHF,gBAGE,qBACE,CAJJ,uBACA,gDACE,wDACA,6DAHF,2CACA,CADA,gBACA,eACE,CAGE,sBANN,8BACE,CAII,iBAFF,4DACA,WACE,YADF,uCACE,6EACA,2BANN,8CACE,kDACA,0CACE,8BACA,yFACE,sBACA,sFALJ,mEACA,sBACE,kEACA,6EACE,uCACA,kEALJ,qGAEE,kEACA,6EACE,uCACA,kEALJ,8CACA,uDACE,sEACA,2EACE,sCACA,iEALJ,mGACA,qCACE,oDACA,0DACE,6GACA,gDAGR,yDCrEA,sEACE,CACA,6GACE,gEACF,iGAIF,wFACE,qDAGA,mGAEE,2CAEF,4FACE,gCACF,wGACE,8DAEE,6FAIA,iJAKN,6GACE,gDAKF,yDACA,qCAGA,6BACA,kBACA,qDAKA,oCAEA,+DAGA,2CAGE,oDAIA,oEAEE,qBAGJ,wDAEE,uCAEF,kEAGA,8CAEA,uDAKA,oCAEA,yDAEE,gEAKF,+CC5FA,0EAGE,CACA,qDCLJ,+DAIE,sCAIA,kEACE,yBACA,2FAMA,gBACA,yGCbF,mBAOA,2MAIA,4HAYA,0DACE,8GAYF,8HAQE,mBAEA,6HAOF,YAGA,mIAME,eACA,CAFF,YAEE,4FAMJ,8BAEE,uBAYA,sCAEE,CAJF,oBAEA,CARA,wCAEA,CAHA,8BACA,CAFA,eACA,CAGA,wCAEA,CAEA,mDAIE,kCACE,6BACA,4CAKJ,kDAIA,eACE,aAGF,8BACE,uDACA,sCACA,cAEA,+BACA,CA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","sources":["webpack:///./node_modules/normalize.css/normalize.css","webpack:///./src/furo/assets/styles/base/_print.sass","webpack:///./src/furo/assets/styles/base/_screen-readers.sass","webpack:///./src/furo/assets/styles/base/_theme.sass","webpack:///./src/furo/assets/styles/variables/_fonts.scss","webpack:///./src/furo/assets/styles/variables/_spacing.scss","webpack:///./src/furo/assets/styles/variables/_icons.scss","webpack:///./src/furo/assets/styles/variables/_admonitions.scss","webpack:///./src/furo/assets/styles/variables/_colors.scss","webpack:///./src/furo/assets/styles/base/_typography.sass","webpack:///./src/furo/assets/styles/_scaffold.sass","webpack:///./src/furo/assets/styles/content/_admonitions.sass","webpack:///./src/furo/assets/styles/content/_api.sass","webpack:///./src/furo/assets/styles/content/_blocks.sass","webpack:///./src/furo/assets/styles/content/_captions.sass","webpack:///./src/furo/assets/styles/content/_code.sass","webpack:///./src/furo/assets/styles/content/_footnotes.sass","webpack:///./src/furo/assets/styles/content/_images.sass","webpack:///./src/furo/assets/styles/content/_indexes.sass","webpack:///./src/furo/assets/styles/content/_lists.sass","webpack:///./src/furo/assets/styles/content/_math.sass","webpack:///./src/furo/assets/styles/content/_misc.sass","webpack:///./src/furo/assets/styles/content/_rubrics.sass","webpack:///./src/furo/assets/styles/content/_sidebar.sass","webpack:///./src/furo/assets/styles/content/_tables.sass","webpack:///./src/furo/assets/styles/content/_target.sass","webpack:///./src/furo/assets/styles/content/_gui-labels.sass","webpack:///./src/furo/assets/styles/components/_footer.sass","webpack:///./src/furo/assets/styles/components/_sidebar.sass","webpack:///./src/furo/assets/styles/components/_table_of_contents.sass","webpack:///./src/furo/assets/styles/_shame.sass"],"sourcesContent":["/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","// This file contains styles for managing print media.\n\n////////////////////////////////////////////////////////////////////////////////\n// Hide elements not relevant to print media.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Hide icon container.\n .content-icon-container\n display: none !important\n\n // Hide showing header links if hovering over when printing.\n .headerlink\n display: none !important\n\n // Hide mobile header.\n .mobile-header\n display: none !important\n\n // Hide navigation links.\n .related-pages\n display: none !important\n\n////////////////////////////////////////////////////////////////////////////////\n// Tweaks related to decolorization.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n // Apply a border around code which no longer have a color background.\n .highlight\n border: 0.1pt solid var(--color-foreground-border)\n\n////////////////////////////////////////////////////////////////////////////////\n// Avoid page break in some relevant cases.\n////////////////////////////////////////////////////////////////////////////////\n@media print\n ul, ol, dl, a, table, pre, blockquote\n page-break-inside: avoid\n\n h1, h2, h3, h4, h5, h6, img, figure, caption\n page-break-inside: avoid\n page-break-after: avoid\n\n ul, ol, dl\n page-break-before: avoid\n",".visually-hidden\n position: absolute !important\n width: 1px !important\n height: 1px !important\n padding: 0 !important\n margin: -1px !important\n overflow: hidden !important\n clip: rect(0,0,0,0) !important\n white-space: nowrap !important\n border: 0 !important\n\n:-moz-focusring\n outline: auto\n","// This file serves as the \"skeleton\" of the theming logic.\n//\n// This contains the bulk of the logic for handling dark mode, color scheme\n// toggling and the handling of color-scheme-specific hiding of elements.\n\nbody\n @include fonts\n @include spacing\n @include icons\n @include admonitions\n @include default-admonition(#651fff, \"abstract\")\n @include default-topic(#14B8A6, \"pencil\")\n\n @include colors\n\n.only-light\n display: block !important\nhtml body .only-dark\n display: none !important\n\n// Ignore dark-mode hints if print media.\n@media not print\n // Enable dark-mode, if requested.\n body[data-theme=\"dark\"]\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n // Enable dark mode, unless explicitly told to avoid.\n @media (prefers-color-scheme: dark)\n body:not([data-theme=\"light\"])\n @include colors-dark\n\n html & .only-light\n display: none !important\n .only-dark\n display: block !important\n\n//\n// Theme toggle presentation\n//\nbody[data-theme=\"auto\"]\n .theme-toggle svg.theme-icon-when-auto\n display: block\n\nbody[data-theme=\"dark\"]\n .theme-toggle svg.theme-icon-when-dark\n display: block\n\nbody[data-theme=\"light\"]\n .theme-toggle svg.theme-icon-when-light\n display: block\n","// Fonts used by this theme.\n//\n// There are basically two things here -- using the system font stack and\n// defining sizes for various elements in %ages. We could have also used `em`\n// but %age is easier to reason about for me.\n\n@mixin fonts {\n // These are adapted from https://systemfontstack.com/\n --font-stack: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial,\n sans-serif, Apple Color Emoji, Segoe UI Emoji;\n --font-stack--monospace: \"SFMono-Regular\", Menlo, Consolas, Monaco,\n Liberation Mono, Lucida Console, monospace;\n\n --font-size--normal: 100%;\n --font-size--small: 87.5%;\n --font-size--small--2: 81.25%;\n --font-size--small--3: 75%;\n --font-size--small--4: 62.5%;\n\n // Sidebar\n --sidebar-caption-font-size: var(--font-size--small--2);\n --sidebar-item-font-size: var(--font-size--small);\n --sidebar-search-input-font-size: var(--font-size--small);\n\n // Table of Contents\n --toc-font-size: var(--font-size--small--3);\n --toc-font-size--mobile: var(--font-size--normal);\n --toc-title-font-size: var(--font-size--small--4);\n\n // Admonitions\n //\n // These aren't defined in terms of %ages, since nesting these is permitted.\n --admonition-font-size: 0.8125rem;\n --admonition-title-font-size: 0.8125rem;\n\n // Code\n --code-font-size: var(--font-size--small--2);\n\n // API\n --api-font-size: var(--font-size--small);\n}\n","// Spacing for various elements on the page\n//\n// If the user wants to tweak things in a certain way, they are permitted to.\n// They also have to deal with the consequences though!\n\n@mixin spacing {\n // Header!\n --header-height: calc(\n var(--sidebar-item-line-height) + 4 * #{var(--sidebar-item-spacing-vertical)}\n );\n --header-padding: 0.5rem;\n\n // Sidebar\n --sidebar-tree-space-above: 1.5rem;\n --sidebar-caption-space-above: 1rem;\n\n --sidebar-item-line-height: 1rem;\n --sidebar-item-spacing-vertical: 0.5rem;\n --sidebar-item-spacing-horizontal: 1rem;\n --sidebar-item-height: calc(\n var(--sidebar-item-line-height) + 2 *#{var(--sidebar-item-spacing-vertical)}\n );\n\n --sidebar-expander-width: var(--sidebar-item-height); // be square\n\n --sidebar-search-space-above: 0.5rem;\n --sidebar-search-input-spacing-vertical: 0.5rem;\n --sidebar-search-input-spacing-horizontal: 0.5rem;\n --sidebar-search-input-height: 1rem;\n --sidebar-search-icon-size: var(--sidebar-search-input-height);\n\n // Table of Contents\n --toc-title-padding: 0.25rem 0;\n --toc-spacing-vertical: 1.5rem;\n --toc-spacing-horizontal: 1.5rem;\n --toc-item-spacing-vertical: 0.4rem;\n --toc-item-spacing-horizontal: 1rem;\n}\n","// Expose theme icons as CSS variables.\n\n$icons: (\n // Adapted from tabler-icons\n // url: https://tablericons.com/\n \"search\":\n url('data:image/svg+xml;charset=utf-8,'),\n // Factored out from mkdocs-material on 24-Aug-2020.\n // url: https://squidfunk.github.io/mkdocs-material/reference/admonitions/\n \"pencil\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"abstract\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"info\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"flame\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"question\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"warning\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"failure\":\n url('data:image/svg+xml;charset=utf-8,'),\n \"spark\":\n url('data:image/svg+xml;charset=utf-8,')\n);\n\n@mixin icons {\n @each $name, $glyph in $icons {\n --icon-#{$name}: #{$glyph};\n }\n}\n","// Admonitions\n\n// Structure of these is:\n// admonition-class: color \"icon-name\";\n//\n// The colors are translated into CSS variables below. The icons are\n// used directly in the main declarations to set the `mask-image` in\n// the title.\n\n// prettier-ignore\n$admonitions: (\n // Each of these has an reST directives for it.\n \"caution\": #ff9100 \"spark\",\n \"warning\": #ff9100 \"warning\",\n \"danger\": #ff5252 \"spark\",\n \"attention\": #ff5252 \"warning\",\n \"error\": #ff5252 \"failure\",\n \"hint\": #00c852 \"question\",\n \"tip\": #00c852 \"info\",\n \"important\": #00bfa5 \"flame\",\n \"note\": #00b0ff \"pencil\",\n \"seealso\": #448aff \"info\",\n \"admonition-todo\": #808080 \"pencil\"\n);\n\n@mixin default-admonition($color, $icon-name) {\n --color-admonition-title: #{$color};\n --color-admonition-title-background: #{rgba($color, 0.2)};\n\n --icon-admonition-default: var(--icon-#{$icon-name});\n}\n\n@mixin default-topic($color, $icon-name) {\n --color-topic-title: #{$color};\n --color-topic-title-background: #{rgba($color, 0.2)};\n\n --icon-topic-default: var(--icon-#{$icon-name});\n}\n\n@mixin admonitions {\n @each $name, $values in $admonitions {\n --color-admonition-title--#{$name}: #{nth($values, 1)};\n --color-admonition-title-background--#{$name}: #{rgba(\n nth($values, 1),\n 0.2\n )};\n }\n}\n","// Colors used throughout this theme.\n//\n// The aim is to give the user more control. Thus, instead of hard-coding colors\n// in various parts of the stylesheet, the approach taken is to define all\n// colors as CSS variables and reusing them in all the places.\n//\n// `colors-dark` depends on `colors` being included at a lower specificity.\n\n@mixin colors {\n --color-problematic: #b30000;\n\n // Base Colors\n --color-foreground-primary: black; // for main text and headings\n --color-foreground-secondary: #5a5c63; // for secondary text\n --color-foreground-muted: #646776; // for muted text\n --color-foreground-border: #878787; // for content borders\n\n --color-background-primary: white; // for content\n --color-background-secondary: #f8f9fb; // for navigation + ToC\n --color-background-hover: #efeff4ff; // for navigation-item hover\n --color-background-hover--transparent: #efeff400;\n --color-background-border: #eeebee; // for UI borders\n --color-background-item: #ccc; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2962ff;\n --color-brand-content: #2a5adf;\n\n // API documentation\n --color-api-background: var(--color-background-hover--transparent);\n --color-api-background-hover: var(--color-background-hover);\n --color-api-overall: var(--color-foreground-secondary);\n --color-api-name: var(--color-problematic);\n --color-api-pre-name: var(--color-problematic);\n --color-api-paren: var(--color-foreground-secondary);\n --color-api-keyword: var(--color-foreground-primary);\n --color-highlight-on-target: #ffffcc;\n\n // Inline code background\n --color-inline-code-background: var(--color-background-secondary);\n\n // Highlighted text (search)\n --color-highlighted-background: #ddeeff;\n --color-highlighted-text: var(--color-foreground-primary);\n\n // GUI Labels\n --color-guilabel-background: #ddeeff80;\n --color-guilabel-border: #bedaf580;\n --color-guilabel-text: var(--color-foreground-primary);\n\n // Admonitions!\n --color-admonition-background: transparent;\n\n //////////////////////////////////////////////////////////////////////////////\n // Everything below this should be one of:\n // - var(...)\n // - *-gradient(...)\n // - special literal values (eg: transparent, none)\n //////////////////////////////////////////////////////////////////////////////\n\n // Tables\n --color-table-header-background: var(--color-background-secondary);\n --color-table-border: var(--color-background-border);\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: transparent;\n --color-card-marginals-background: var(--color-background-secondary);\n\n // Header\n --color-header-background: var(--color-background-primary);\n --color-header-border: var(--color-background-border);\n --color-header-text: var(--color-foreground-primary);\n\n // Sidebar (left)\n --color-sidebar-background: var(--color-background-secondary);\n --color-sidebar-background-border: var(--color-background-border);\n\n --color-sidebar-brand-text: var(--color-foreground-primary);\n --color-sidebar-caption-text: var(--color-foreground-muted);\n --color-sidebar-link-text: var(--color-foreground-secondary);\n --color-sidebar-link-text--top-level: var(--color-brand-primary);\n\n --color-sidebar-item-background: var(--color-sidebar-background);\n --color-sidebar-item-background--current: var(\n --color-sidebar-item-background\n );\n --color-sidebar-item-background--hover: linear-gradient(\n 90deg,\n var(--color-background-hover--transparent) 0%,\n var(--color-background-hover) var(--sidebar-item-spacing-horizontal),\n var(--color-background-hover) 100%\n );\n\n --color-sidebar-item-expander-background: transparent;\n --color-sidebar-item-expander-background--hover: var(\n --color-background-hover\n );\n\n --color-sidebar-search-text: var(--color-foreground-primary);\n --color-sidebar-search-background: var(--color-background-secondary);\n --color-sidebar-search-background--focus: var(--color-background-primary);\n --color-sidebar-search-border: var(--color-background-border);\n --color-sidebar-search-icon: var(--color-foreground-muted);\n\n // Table of Contents (right)\n --color-toc-background: var(--color-background-primary);\n --color-toc-title-text: var(--color-foreground-muted);\n --color-toc-item-text: var(--color-foreground-secondary);\n --color-toc-item-text--hover: var(--color-foreground-primary);\n --color-toc-item-text--active: var(--color-brand-primary);\n\n // Actual page contents\n --color-content-foreground: var(--color-foreground-primary);\n --color-content-background: transparent;\n\n // Links\n --color-link: var(--color-brand-content);\n --color-link--hover: var(--color-brand-content);\n --color-link-underline: var(--color-background-border);\n --color-link-underline--hover: var(--color-foreground-border);\n}\n\n@mixin colors-dark {\n --color-problematic: #ee5151;\n\n // Base Colors\n --color-foreground-primary: #ffffffcc; // for main text and headings\n --color-foreground-secondary: #9ca0a5; // for secondary text\n --color-foreground-muted: #81868d; // for muted text\n --color-foreground-border: #666666; // for content borders\n\n --color-background-primary: #131416; // for content\n --color-background-secondary: #1a1c1e; // for navigation + ToC\n --color-background-hover: #1e2124ff; // for navigation-item hover\n --color-background-hover--transparent: #1e212400;\n --color-background-border: #303335; // for UI borders\n --color-background-item: #444; // for \"background\" items (eg: copybutton)\n\n // Announcements\n --color-announcement-background: #000000dd;\n --color-announcement-text: #eeebee;\n\n // Brand colors\n --color-brand-primary: #2b8cee;\n --color-brand-content: #368ce2;\n\n // Highlighted text (search)\n --color-highlighted-background: #083563;\n\n // GUI Labels\n --color-guilabel-background: #08356380;\n --color-guilabel-border: #13395f80;\n\n // API documentation\n --color-api-keyword: var(--color-foreground-secondary);\n --color-highlight-on-target: #333300;\n\n // Admonitions\n --color-admonition-background: #18181a;\n\n // Cards\n --color-card-border: var(--color-background-secondary);\n --color-card-background: #18181a;\n --color-card-marginals-background: var(--color-background-hover);\n}\n","// This file contains the styling for making the content throughout the page,\n// including fonts, paragraphs, headings and spacing among these elements.\n\nbody\n font-family: var(--font-stack)\npre,\ncode,\nkbd,\nsamp\n font-family: var(--font-stack--monospace)\n\n// Make fonts look slightly nicer.\nbody\n -webkit-font-smoothing: antialiased\n -moz-osx-font-smoothing: grayscale\n\n// Line height from Bootstrap 4.1\narticle\n line-height: 1.5\n\n//\n// Headings\n//\nh1,\nh2,\nh3,\nh4,\nh5,\nh6\n line-height: 1.25\n font-weight: bold\n\n border-radius: 0.5rem\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n margin-left: -0.5rem\n margin-right: -0.5rem\n padding-left: 0.5rem\n padding-right: 0.5rem\n\n + p\n margin-top: 0\n\nh1\n font-size: 2.5em\n margin-top: 1.75rem\n margin-bottom: 1rem\nh2\n font-size: 2em\n margin-top: 1.75rem\nh3\n font-size: 1.5em\nh4\n font-size: 1.25em\nh5\n font-size: 1.125em\nh6\n font-size: 1em\n\nsmall\n opacity: 75%\n font-size: 80%\n\n// Paragraph\np\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n\n// Horizontal rules\nhr.docutils\n height: 1px\n padding: 0\n margin: 2rem 0\n background-color: var(--color-background-border)\n border: 0\n\n.centered\n text-align: center\n\n// Links\na\n text-decoration: underline\n\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n &:hover\n color: var(--color-link--hover)\n text-decoration-color: var(--color-link-underline--hover)\n &.muted-link\n color: inherit\n &:hover\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline--hover)\n","// This file contains the styles for the overall layouting of the documentation\n// skeleton, including the responsive changes as well as sidebar toggles.\n//\n// This is implemented as a mobile-last design, which isn't ideal, but it is\n// reasonably good-enough and I got pretty tired by the time I'd finished this\n// to move the rules around to fix this. Shouldn't take more than 3-4 hours,\n// if you know what you're doing tho.\n\n// HACK: Not all browsers account for the scrollbar width in media queries.\n// This results in horizontal scrollbars in the breakpoint where we go\n// from displaying everything to hiding the ToC. We accomodate for this by\n// adding a bit of padding to the TOC drawer, disabling the horizontal\n// scrollbar and allowing the scrollbars to cover the padding.\n// https://www.456bereastreet.com/archive/201301/media_query_width_and_vertical_scrollbars/\n\n// HACK: Always having the scrollbar visible, prevents certain browsers from\n// causing the content to stutter horizontally between taller-than-viewport and\n// not-taller-than-viewport pages.\n\nhtml\n overflow-x: hidden\n overflow-y: scroll\n scroll-behavior: smooth\n\n.sidebar-scroll, .toc-scroll, article[role=main] *\n // Override Firefox scrollbar style\n scrollbar-width: thin\n scrollbar-color: var(--color-foreground-border) transparent\n\n // Override Chrome scrollbar styles\n &::-webkit-scrollbar\n width: 0.25rem\n height: 0.25rem\n &::-webkit-scrollbar-thumb\n background-color: var(--color-foreground-border)\n border-radius: 0.125rem\n\n//\n// Overalls\n//\nhtml,\nbody\n height: 100%\n color: var(--color-foreground-primary)\n background: var(--color-background-primary)\n\narticle\n color: var(--color-content-foreground)\n background: var(--color-content-background)\n overflow-wrap: break-word\n\n.page\n display: flex\n // fill the viewport for pages with little content.\n min-height: 100%\n\n.mobile-header\n width: 100%\n height: var(--header-height)\n background-color: var(--color-header-background)\n color: var(--color-header-text)\n border-bottom: 1px solid var(--color-header-border)\n\n // Looks like sub-script/super-script have this, and we need this to\n // be \"on top\" of those.\n z-index: 10\n\n // We don't show the header on large screens.\n display: none\n\n // Add shadow when scrolled\n &.scrolled\n border-bottom: none\n box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.1), 0 0.2rem 0.4rem rgba(0, 0, 0, 0.2)\n\n .header-center\n a\n color: var(--color-header-text)\n text-decoration: none\n\n.main\n display: flex\n flex: 1\n\n// Sidebar (left) also covers the entire left portion of screen.\n.sidebar-drawer\n box-sizing: border-box\n\n border-right: 1px solid var(--color-sidebar-background-border)\n background: var(--color-sidebar-background)\n\n display: flex\n justify-content: flex-end\n // These next two lines took me two days to figure out.\n width: calc((100% - #{$full-width}) / 2 + #{$sidebar-width})\n min-width: $sidebar-width\n\n// Scroll-along sidebars\n.sidebar-container,\n.toc-drawer\n box-sizing: border-box\n width: $sidebar-width\n\n.toc-drawer\n background: var(--color-toc-background)\n // See HACK described on top of this document\n padding-right: 1rem\n\n.sidebar-sticky,\n.toc-sticky\n position: sticky\n top: 0\n height: min(100%, 100vh)\n height: 100vh\n\n display: flex\n flex-direction: column\n\n.sidebar-scroll,\n.toc-scroll\n flex-grow: 1\n flex-shrink: 1\n\n overflow: auto\n scroll-behavior: smooth\n\n// Central items.\n.content\n padding: 0 $content-padding\n width: $content-width\n\n display: flex\n flex-direction: column\n justify-content: space-between\n\n.icon\n display: inline-block\n height: 1rem\n width: 1rem\n svg\n width: 100%\n height: 100%\n\n//\n// Accommodate announcement banner\n//\n.announcement\n background-color: var(--color-announcement-background)\n color: var(--color-announcement-text)\n\n height: var(--header-height)\n display: flex\n align-items: center\n overflow-x: auto\n & + .page\n min-height: calc(100% - var(--header-height))\n\n.announcement-content\n box-sizing: border-box\n padding: 0.5rem\n min-width: 100%\n white-space: nowrap\n text-align: center\n\n a\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-announcement-text)\n\n &:hover\n color: var(--color-announcement-text)\n text-decoration-color: var(--color-link--hover)\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for theme\n////////////////////////////////////////////////////////////////////////////////\n.no-js .theme-toggle-container // don't show theme toggle if there's no JS\n display: none\n\n.theme-toggle-container\n vertical-align: middle\n\n.theme-toggle\n cursor: pointer\n border: none\n padding: 0\n background: transparent\n\n.theme-toggle svg\n vertical-align: middle\n height: 1rem\n width: 1rem\n color: var(--color-foreground-primary)\n display: none\n\n.theme-toggle-header\n float: left\n padding: 1rem 0.5rem\n\n////////////////////////////////////////////////////////////////////////////////\n// Toggles for elements\n////////////////////////////////////////////////////////////////////////////////\n.toc-overlay-icon, .nav-overlay-icon\n display: none\n cursor: pointer\n\n .icon\n color: var(--color-foreground-secondary)\n height: 1rem\n width: 1rem\n\n.toc-header-icon, .nav-overlay-icon\n // for when we set display: flex\n justify-content: center\n align-items: center\n\n.toc-content-icon\n height: 1.5rem\n width: 1.5rem\n\n.content-icon-container\n float: right\n display: flex\n margin-top: 1.5rem\n margin-left: 1rem\n margin-bottom: 1rem\n gap: 0.5rem\n\n .edit-this-page svg\n color: inherit\n height: 1rem\n width: 1rem\n\n.sidebar-toggle\n position: absolute\n display: none\n// \n.sidebar-toggle[name=\"__toc\"]\n left: 20px\n.sidebar-toggle:checked\n left: 40px\n// \n\n.overlay\n position: fixed\n top: 0\n width: 0\n height: 0\n\n transition: width 0ms, height 0ms, opacity 250ms ease-out\n\n opacity: 0\n background-color: rgba(0, 0, 0, 0.54)\n.sidebar-overlay\n z-index: 20\n.toc-overlay\n z-index: 40\n\n// Keep things on top and smooth.\n.sidebar-drawer\n z-index: 30\n transition: left 250ms ease-in-out\n.toc-drawer\n z-index: 50\n transition: right 250ms ease-in-out\n\n// Show the Sidebar\n#__navigation:checked\n & ~ .sidebar-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .sidebar-drawer\n top: 0\n left: 0\n // Show the toc sidebar\n#__toc:checked\n & ~ .toc-overlay\n width: 100%\n height: 100%\n opacity: 1\n & ~ .page\n .toc-drawer\n top: 0\n right: 0\n\n////////////////////////////////////////////////////////////////////////////////\n// Back to top\n////////////////////////////////////////////////////////////////////////////////\n.back-to-top\n text-decoration: none\n\n display: none\n position: fixed\n left: 0\n top: 1rem\n padding: 0.5rem\n padding-right: 0.75rem\n border-radius: 1rem\n font-size: 0.8125rem\n\n background: var(--color-background-primary)\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), #6b728080 0px 0px 1px 0px\n\n z-index: 10\n\n margin-left: 50%\n transform: translateX(-50%)\n svg\n height: 1rem\n width: 1rem\n fill: currentColor\n display: inline-block\n\n span\n margin-left: 0.25rem\n\n .show-back-to-top &\n display: flex\n align-items: center\n\n////////////////////////////////////////////////////////////////////////////////\n// Responsive layouting\n////////////////////////////////////////////////////////////////////////////////\n// Make things a bit bigger on bigger screens.\n@media (min-width: $full-width + $sidebar-width)\n html\n font-size: 110%\n\n@media (max-width: $full-width)\n // Collapse \"toc\" into the icon.\n .toc-content-icon\n display: flex\n .toc-drawer\n position: fixed\n height: 100vh\n top: 0\n right: -$sidebar-width\n border-left: 1px solid var(--color-background-muted)\n .toc-tree\n border-left: none\n font-size: var(--toc-font-size--mobile)\n\n // Accomodate for a changed content width.\n .sidebar-drawer\n width: calc((100% - #{$full-width - $sidebar-width}) / 2 + #{$sidebar-width})\n\n@media (max-width: $full-width - $sidebar-width)\n // Collapse \"navigation\".\n .nav-overlay-icon\n display: flex\n .sidebar-drawer\n position: fixed\n height: 100vh\n width: $sidebar-width\n\n top: 0\n left: -$sidebar-width\n\n // Swap which icon is visible.\n .toc-header-icon\n display: flex\n .toc-content-icon, .theme-toggle-content\n display: none\n .theme-toggle-header\n display: block\n\n // Show the header.\n .mobile-header\n position: sticky\n top: 0\n display: flex\n justify-content: space-between\n align-items: center\n\n .header-left,\n .header-right\n display: flex\n height: var(--header-height)\n padding: 0 var(--header-padding)\n label\n height: 100%\n width: 100%\n user-select: none\n\n .nav-overlay-icon .icon,\n .theme-toggle svg\n height: 1.25rem\n width: 1.25rem\n\n // Add a scroll margin for the content\n :target\n scroll-margin-top: var(--header-height)\n\n // Show back-to-top below the header\n .back-to-top\n top: calc(var(--header-height) + 0.5rem)\n\n // Center the page, and accommodate for the header.\n .page\n flex-direction: column\n justify-content: center\n .content\n margin-left: auto\n margin-right: auto\n\n@media (max-width: $content-width + 2* $content-padding)\n // Content should respect window limits.\n .content\n width: 100%\n overflow-x: auto\n\n@media (max-width: $content-width)\n .content\n padding: 0 $content-padding--small\n // Don't float sidebars to the right.\n article aside.sidebar\n float: none\n width: 100%\n margin: 1rem 0\n","//\n// The design here is strongly inspired by mkdocs-material.\n.admonition, .topic\n margin: 1rem auto\n padding: 0 0.5rem 0.5rem 0.5rem\n\n background: var(--color-admonition-background)\n\n border-radius: 0.2rem\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n font-size: var(--admonition-font-size)\n\n overflow: hidden\n page-break-inside: avoid\n\n // First element should have no margin, since the title has it.\n > :nth-child(2)\n margin-top: 0\n\n // Last item should have no margin, since we'll control that w/ padding\n > :last-child\n margin-bottom: 0\n\n.admonition p.admonition-title,\np.topic-title\n position: relative\n margin: 0 -0.5rem 0.5rem\n padding-left: 2rem\n padding-right: .5rem\n padding-top: .4rem\n padding-bottom: .4rem\n\n font-weight: 500\n font-size: var(--admonition-title-font-size)\n line-height: 1.3\n\n // Our fancy icon\n &::before\n content: \"\"\n position: absolute\n left: 0.5rem\n width: 1rem\n height: 1rem\n\n// Default styles\np.admonition-title\n background-color: var(--color-admonition-title-background)\n &::before\n background-color: var(--color-admonition-title)\n mask-image: var(--icon-admonition-default)\n mask-repeat: no-repeat\n\np.topic-title\n background-color: var(--color-topic-title-background)\n &::before\n background-color: var(--color-topic-title)\n mask-image: var(--icon-topic-default)\n mask-repeat: no-repeat\n\n//\n// Variants\n//\n.admonition\n border-left: 0.2rem solid var(--color-admonition-title)\n\n @each $type, $value in $admonitions\n &.#{$type}\n border-left-color: var(--color-admonition-title--#{$type})\n > .admonition-title\n background-color: var(--color-admonition-title-background--#{$type})\n &::before\n background-color: var(--color-admonition-title--#{$type})\n mask-image: var(--icon-#{nth($value, 2)})\n\n.admonition-todo > .admonition-title\n text-transform: uppercase\n","// This file stylizes the API documentation (stuff generated by autodoc). It's\n// deeply nested due to how autodoc structures the HTML without enough classes\n// to select the relevant items.\n\n// API docs!\ndl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)\n // Tweak the spacing of all the things!\n dd\n margin-left: 2rem\n > :first-child\n margin-top: 0.125rem\n > :last-child\n margin-bottom: 0.75rem\n\n // This is used for the arguments\n .field-list\n margin-bottom: 0.75rem\n\n // \"Headings\" (like \"Parameters\" and \"Return\")\n > dt\n text-transform: uppercase\n font-size: var(--font-size--small)\n\n dd:empty\n margin-bottom: 0.5rem\n dd > ul\n margin-left: -1.2rem\n > li\n > p:nth-child(2)\n margin-top: 0\n // When the last-empty-paragraph follows a paragraph, it doesn't need\n // to augument the existing spacing.\n > p + p:last-child:empty\n margin-top: 0\n margin-bottom: 0\n\n // Colorize the elements\n > dt\n color: var(--color-api-overall)\n\n.sig:not(.sig-inline)\n font-weight: bold\n\n font-size: var(--api-font-size)\n font-family: var(--font-stack--monospace)\n\n margin-left: -0.25rem\n margin-right: -0.25rem\n padding-top: 0.25rem\n padding-bottom: 0.25rem\n padding-right: 0.5rem\n\n // These are intentionally em, to properly match the font size.\n padding-left: 3em\n text-indent: -2.5em\n\n border-radius: 0.25rem\n\n background: var(--color-api-background)\n transition: background 100ms ease-out\n\n &:hover\n background: var(--color-api-background-hover)\n\n // adjust the size of the [source] link on the right.\n a.reference\n .viewcode-link\n font-weight: normal\n width: 3.5rem\n\nem.property\n font-style: normal\n &:first-child\n color: var(--color-api-keyword)\n.sig-name\n color: var(--color-api-name)\n.sig-prename\n font-weight: normal\n color: var(--color-api-pre-name)\n.sig-paren\n color: var(--color-api-paren)\n.sig-param\n font-style: normal\n\n.versionmodified\n font-style: italic\ndiv.versionadded, div.versionchanged, div.deprecated\n p\n margin-top: 0.125rem\n margin-bottom: 0.125rem\n\n// Align the [docs] and [source] to the right.\n.viewcode-link, .viewcode-back\n float: right\n text-align: right\n",".line-block\n margin-top: 0.5rem\n margin-bottom: 0.75rem\n .line-block\n margin-top: 0rem\n margin-bottom: 0rem\n padding-left: 1rem\n","// Captions\narticle p.caption,\ntable > caption,\n.code-block-caption\n font-size: var(--font-size--small)\n text-align: center\n\n// Caption above a TOCTree\n.toctree-wrapper.compound\n .caption, :not(.caption) > .caption-text\n font-size: var(--font-size--small)\n text-transform: uppercase\n\n text-align: initial\n margin-bottom: 0\n\n > ul\n margin-top: 0\n margin-bottom: 0\n","// Inline code\ncode.literal, .sig-inline\n background: var(--color-inline-code-background)\n border-radius: 0.2em\n // Make the font smaller, and use padding to recover.\n font-size: var(--font-size--small--2)\n padding: 0.1em 0.2em\n\n pre.literal-block &\n font-size: inherit\n padding: 0\n\n p &\n border: 1px solid var(--color-background-border)\n\n.sig-inline\n font-family: var(--font-stack--monospace)\n\n// Code and Literal Blocks\n$code-spacing-vertical: 0.625rem\n$code-spacing-horizontal: 0.875rem\n\n// Wraps every literal block + line numbers.\ndiv[class*=\" highlight-\"],\ndiv[class^=\"highlight-\"]\n margin: 1em 0\n display: flex\n\n .table-wrapper\n margin: 0\n padding: 0\n\npre\n margin: 0\n padding: 0\n overflow: auto\n\n // Needed to have more specificity than pygments' \"pre\" selector. :(\n article[role=\"main\"] .highlight &\n line-height: 1.5\n\n &.literal-block,\n .highlight &\n font-size: var(--code-font-size)\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n // Make it look like all the other blocks.\n &.literal-block\n margin-top: 1rem\n margin-bottom: 1rem\n\n border-radius: 0.2rem\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n\n// All code is always contained in this.\n.highlight\n width: 100%\n border-radius: 0.2rem\n\n // Make line numbers and prompts un-selectable.\n .gp, span.linenos\n user-select: none\n pointer-events: none\n\n // Expand the line-highlighting.\n .hll\n display: block\n margin-left: -$code-spacing-horizontal\n margin-right: -$code-spacing-horizontal\n padding-left: $code-spacing-horizontal\n padding-right: $code-spacing-horizontal\n\n/* Make code block captions be nicely integrated */\n.code-block-caption\n display: flex\n padding: $code-spacing-vertical $code-spacing-horizontal\n\n border-radius: 0.25rem\n border-bottom-left-radius: 0\n border-bottom-right-radius: 0\n font-weight: 300\n border-bottom: 1px solid\n\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n border-color: var(--color-background-border)\n\n + div[class]\n margin-top: 0\n pre\n border-top-left-radius: 0\n border-top-right-radius: 0\n\n// When `html_codeblock_linenos_style` is table.\n.highlighttable\n width: 100%\n display: block\n tbody\n display: block\n\n tr\n display: flex\n\n // Line numbers\n td.linenos\n background-color: var(--color-code-background)\n color: var(--color-code-foreground)\n padding: $code-spacing-vertical $code-spacing-horizontal\n padding-right: 0\n border-top-left-radius: 0.2rem\n border-bottom-left-radius: 0.2rem\n\n .linenodiv\n padding-right: $code-spacing-horizontal\n font-size: var(--code-font-size)\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n\n // Actual code\n td.code\n padding: 0\n display: block\n flex: 1\n overflow: hidden\n\n .highlight\n border-top-left-radius: 0\n border-bottom-left-radius: 0\n\n// When `html_codeblock_linenos_style` is inline.\n.highlight\n span.linenos\n display: inline-block\n padding-left: 0\n padding-right: $code-spacing-horizontal\n margin-right: $code-spacing-horizontal\n box-shadow: -0.0625rem 0 var(--color-foreground-border) inset\n","// Inline Footnote Reference\n.footnote-reference\n font-size: var(--font-size--small--4)\n vertical-align: super\n\n// Definition list, listing the content of each note.\n// docutils <= 0.17\ndl.footnote.brackets\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\n display: grid\n grid-template-columns: max-content auto\n dt\n margin: 0\n > .fn-backref\n margin-left: 0.25rem\n\n &:after\n content: \":\"\n\n .brackets\n &:before\n content: \"[\"\n &:after\n content: \"]\"\n\n dd\n margin: 0\n padding: 0 1rem\n\n// docutils >= 0.18\naside.footnote\n font-size: var(--font-size--small)\n color: var(--color-foreground-secondary)\n\naside.footnote > span,\ndiv.citation > span\n float: left\n font-weight: 500\n padding-right: 0.25rem\n\naside.footnote > p,\ndiv.citation > p\n margin-left: 2rem\n","//\n// Figures\n//\nimg\n box-sizing: border-box\n max-width: 100%\n height: auto\n\narticle\n figure, .figure\n border-radius: 0.2rem\n\n margin: 0\n :last-child\n margin-bottom: 0\n\n .align-left\n float: left\n clear: left\n margin: 0 1rem 1rem\n\n .align-right\n float: right\n clear: right\n margin: 0 1rem 1rem\n\n .align-default,\n .align-center\n display: block\n text-align: center\n margin-left: auto\n margin-right: auto\n\n // WELL, table needs to be stylised like a table.\n table.align-default\n display: table\n text-align: initial\n",".genindex-jumpbox, .domainindex-jumpbox\n border-top: 1px solid var(--color-background-border)\n border-bottom: 1px solid var(--color-background-border)\n padding: 0.25rem\n\n.genindex-section, .domainindex-section\n h2\n margin-top: 0.75rem\n margin-bottom: 0.5rem\n ul\n margin-top: 0\n margin-bottom: 0\n","ul,\nol\n padding-left: 1.2rem\n\n // Space lists out like paragraphs\n margin-top: 1rem\n margin-bottom: 1rem\n // reduce margins within li.\n li\n > p:first-child\n margin-top: 0.25rem\n margin-bottom: 0.25rem\n\n > p:last-child\n margin-top: 0.25rem\n\n > ul,\n > ol\n margin-top: 0.5rem\n margin-bottom: 0.5rem\n\nol\n &.arabic\n list-style: decimal\n &.loweralpha\n list-style: lower-alpha\n &.upperalpha\n list-style: upper-alpha\n &.lowerroman\n list-style: lower-roman\n &.upperroman\n list-style: upper-roman\n\n// Don't space lists out when they're \"simple\" or in a `.. toctree::`\n.simple,\n.toctree-wrapper\n li\n > ul,\n > ol\n margin-top: 0\n margin-bottom: 0\n\n// Definition Lists\n.field-list,\n.option-list,\ndl:not([class]),\ndl.simple,\ndl.footnote,\ndl.glossary\n dt\n font-weight: 500\n margin-top: 0.25rem\n + dt\n margin-top: 0\n\n .classifier::before\n content: \":\"\n margin-left: 0.2rem\n margin-right: 0.2rem\n\n dd\n > p:first-child,\n ul\n margin-top: 0.125rem\n\n ul\n margin-bottom: 0.125rem\n",".math-wrapper\n width: 100%\n overflow-x: auto\n\ndiv.math\n position: relative\n text-align: center\n\n .headerlink,\n &:focus .headerlink\n display: none\n\n &:hover .headerlink\n display: inline-block\n\n span.eqno\n position: absolute\n right: 0.5rem\n top: 50%\n transform: translate(0, -50%)\n z-index: 1\n","// Abbreviations\nabbr[title]\n cursor: help\n\n// \"Problematic\" content, as identified by Sphinx\n.problematic\n color: var(--color-problematic)\n\n// Keyboard / Mouse \"instructions\"\nkbd:not(.compound)\n margin: 0 0.2rem\n padding: 0 0.2rem\n border-radius: 0.2rem\n border: 1px solid var(--color-foreground-border)\n color: var(--color-foreground-primary)\n vertical-align: text-bottom\n\n font-size: var(--font-size--small--3)\n display: inline-block\n\n box-shadow: 0 0.0625rem 0 rgba(0, 0, 0, 0.2), inset 0 0 0 0.125rem var(--color-background-primary)\n\n background-color: var(--color-background-secondary)\n\n// Blockquote\nblockquote\n border-left: 4px solid var(--color-background-border)\n background: var(--color-background-secondary)\n\n margin-left: 0\n margin-right: 0\n padding: 0.5rem 1rem\n\n .attribution\n font-weight: 600\n text-align: right\n\n &.pull-quote,\n &.highlights\n font-size: 1.25em\n\n &.epigraph,\n &.pull-quote\n border-left-width: 0\n border-radius: 0.5rem\n\n &.highlights\n border-left-width: 0\n background: transparent\n\n// Center align embedded-in-text images\np .reference img\n vertical-align: middle\n","p.rubric\n line-height: 1.25\n font-weight: bold\n font-size: 1.125em\n\n // For Numpy-style documentation that's got rubrics within it.\n // https://github.com/pradyunsg/furo/discussions/505\n dd &\n line-height: inherit\n font-weight: inherit\n\n font-size: var(--font-size--small)\n text-transform: uppercase\n","article .sidebar\n float: right\n clear: right\n width: 30%\n\n margin-left: 1rem\n margin-right: 0\n\n border-radius: 0.2rem\n background-color: var(--color-background-secondary)\n border: var(--color-background-border) 1px solid\n\n > *\n padding-left: 1rem\n padding-right: 1rem\n\n > ul, > ol // lists need additional padding, because bullets.\n padding-left: 2.2rem\n\n .sidebar-title\n margin: 0\n padding: 0.5rem 1rem\n border-bottom: var(--color-background-border) 1px solid\n\n font-weight: 500\n\n// TODO: subtitle\n// TODO: dedicated variables?\n",".table-wrapper\n width: 100%\n overflow-x: auto\n margin-top: 1rem\n margin-bottom: 0.5rem\n padding: 0.2rem 0.2rem 0.75rem\n\ntable.docutils\n border-radius: 0.2rem\n border-spacing: 0\n border-collapse: collapse\n\n box-shadow: 0 0.2rem 0.5rem rgba(0, 0, 0, 0.05), 0 0 0.0625rem rgba(0, 0, 0, 0.1)\n\n th\n background: var(--color-table-header-background)\n\n td,\n th\n // Space things out properly\n padding: 0 0.25rem\n\n // Get the borders looking just-right.\n border-left: 1px solid var(--color-table-border)\n border-right: 1px solid var(--color-table-border)\n border-bottom: 1px solid var(--color-table-border)\n\n p\n margin: 0.25rem\n\n &:first-child\n border-left: none\n &:last-child\n border-right: none\n\n // MyST-parser tables set these classes for control of column alignment\n &.text-left\n text-align: left\n &.text-right\n text-align: right\n &.text-center\n text-align: center\n",":target\n scroll-margin-top: 0.5rem\n\n@media (max-width: $full-width - $sidebar-width)\n :target\n scroll-margin-top: calc(0.5rem + var(--header-height))\n\n // When a heading is selected\n section > span:target\n scroll-margin-top: calc(0.8rem + var(--header-height))\n\n// Permalinks\n.headerlink\n font-weight: 100\n user-select: none\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\ndl dt,\np.caption,\nfigcaption p,\ntable > caption,\n.code-block-caption\n > .headerlink\n margin-left: 0.5rem\n visibility: hidden\n &:hover > .headerlink\n visibility: visible\n\n // Don't change to link-like, if someone adds the contents directive.\n > .toc-backref\n color: inherit\n text-decoration-line: none\n\n// Figure and table captions are special.\nfigure:hover > figcaption > p > .headerlink,\ntable:hover > caption > .headerlink\n visibility: visible\n\n:target >, // Regular section[id] style anchors\nspan:target ~ // Non-regular span[id] style \"extra\" anchors\n h1,\n h2,\n h3,\n h4,\n h5,\n h6\n &:nth-of-type(1)\n background-color: var(--color-highlight-on-target)\n // .headerlink\n // visibility: visible\n code.literal\n background-color: transparent\n\ntable:target > caption,\nfigure:target\n background-color: var(--color-highlight-on-target)\n\n// Inline page contents\n.this-will-duplicate-information-and-it-is-still-useful-here li :target\n background-color: var(--color-highlight-on-target)\n\n// Code block permalinks\n.literal-block-wrapper:target .code-block-caption\n background-color: var(--color-highlight-on-target)\n\n// When a definition list item is selected\n//\n// There isn't really an alternative to !important here, due to the\n// high-specificity of API documentation's selector.\ndt:target\n background-color: var(--color-highlight-on-target) !important\n\n// When a footnote reference is selected\n.footnote > dt:target + dd,\n.footnote-reference:target\n background-color: var(--color-highlight-on-target)\n",".guilabel\n background-color: var(--color-guilabel-background)\n border: 1px solid var(--color-guilabel-border)\n color: var(--color-guilabel-text)\n\n padding: 0 0.3em\n border-radius: 0.5em\n font-size: 0.9em\n","// This file contains the styles used for stylizing the footer that's shown\n// below the content.\n\nfooter\n font-size: var(--font-size--small)\n display: flex\n flex-direction: column\n\n margin-top: 2rem\n\n// Bottom of page information\n.bottom-of-page\n display: flex\n align-items: center\n justify-content: space-between\n\n margin-top: 1rem\n padding-top: 1rem\n padding-bottom: 1rem\n\n color: var(--color-foreground-secondary)\n border-top: 1px solid var(--color-background-border)\n\n line-height: 1.5\n\n @media (max-width: $content-width)\n text-align: center\n flex-direction: column-reverse\n gap: 0.25rem\n\n .left-details\n font-size: var(--font-size--small)\n\n .right-details\n display: flex\n flex-direction: column\n gap: 0.25rem\n text-align: right\n\n .icons\n display: flex\n justify-content: flex-end\n gap: 0.25rem\n font-size: 1rem\n\n a\n text-decoration: none\n\n svg,\n img\n font-size: 1.125rem\n height: 1em\n width: 1em\n\n// Next/Prev page information\n.related-pages\n a\n display: flex\n align-items: center\n\n text-decoration: none\n &:hover .page-info .title\n text-decoration: underline\n color: var(--color-link)\n text-decoration-color: var(--color-link-underline)\n\n svg.furo-related-icon,\n svg.furo-related-icon > use\n flex-shrink: 0\n\n color: var(--color-foreground-border)\n\n width: 0.75rem\n height: 0.75rem\n margin: 0 0.5rem\n\n &.next-page\n max-width: 50%\n\n float: right\n clear: right\n text-align: right\n\n &.prev-page\n max-width: 50%\n\n float: left\n clear: left\n\n svg\n transform: rotate(180deg)\n\n.page-info\n display: flex\n flex-direction: column\n overflow-wrap: anywhere\n\n .next-page &\n align-items: flex-end\n\n .context\n display: flex\n align-items: center\n\n padding-bottom: 0.1rem\n\n color: var(--color-foreground-muted)\n font-size: var(--font-size--small)\n text-decoration: none\n","// This file contains the styles for the contents of the left sidebar, which\n// contains the navigation tree, logo, search etc.\n\n////////////////////////////////////////////////////////////////////////////////\n// Brand on top of the scrollable tree.\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-brand\n display: flex\n flex-direction: column\n flex-shrink: 0\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n text-decoration: none\n\n.sidebar-brand-text\n color: var(--color-sidebar-brand-text)\n overflow-wrap: break-word\n margin: var(--sidebar-item-spacing-vertical) 0\n font-size: 1.5rem\n\n.sidebar-logo-container\n margin: var(--sidebar-item-spacing-vertical) 0\n\n.sidebar-logo\n margin: 0 auto\n display: block\n max-width: 100%\n\n////////////////////////////////////////////////////////////////////////////////\n// Search\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-search-container\n display: flex\n align-items: center\n margin-top: var(--sidebar-search-space-above)\n\n position: relative\n\n background: var(--color-sidebar-search-background)\n &:hover,\n &:focus-within\n background: var(--color-sidebar-search-background--focus)\n\n &::before\n content: \"\"\n position: absolute\n left: var(--sidebar-item-spacing-horizontal)\n width: var(--sidebar-search-icon-size)\n height: var(--sidebar-search-icon-size)\n\n background-color: var(--color-sidebar-search-icon)\n mask-image: var(--icon-search)\n\n.sidebar-search\n box-sizing: border-box\n\n border: none\n border-top: 1px solid var(--color-sidebar-search-border)\n border-bottom: 1px solid var(--color-sidebar-search-border)\n\n padding-top: var(--sidebar-search-input-spacing-vertical)\n padding-bottom: var(--sidebar-search-input-spacing-vertical)\n padding-right: var(--sidebar-search-input-spacing-horizontal)\n padding-left: calc(var(--sidebar-item-spacing-horizontal) + var(--sidebar-search-input-spacing-horizontal) + var(--sidebar-search-icon-size))\n\n width: 100%\n\n color: var(--color-sidebar-search-foreground)\n background: transparent\n z-index: 10\n\n &:focus\n outline: none\n\n &::placeholder\n font-size: var(--sidebar-search-input-font-size)\n\n//\n// Hide Search Matches link\n//\n#searchbox .highlight-link\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal) 0\n margin: 0\n text-align: center\n\n a\n color: var(--color-sidebar-search-icon)\n font-size: var(--font-size--small--2)\n\n////////////////////////////////////////////////////////////////////////////////\n// Structure/Skeleton of the navigation tree (left)\n////////////////////////////////////////////////////////////////////////////////\n.sidebar-tree\n font-size: var(--sidebar-item-font-size)\n margin-top: var(--sidebar-tree-space-above)\n margin-bottom: var(--sidebar-item-spacing-vertical)\n\n ul\n padding: 0\n margin-top: 0\n margin-bottom: 0\n\n display: flex\n flex-direction: column\n\n list-style: none\n\n li\n position: relative\n margin: 0\n\n > ul\n margin-left: var(--sidebar-item-spacing-horizontal)\n\n .icon\n color: var(--color-sidebar-link-text)\n\n .reference\n box-sizing: border-box\n color: var(--color-sidebar-link-text)\n\n // Fill the parent.\n display: inline-block\n line-height: var(--sidebar-item-line-height)\n text-decoration: none\n\n // Don't allow long words to cause wrapping.\n overflow-wrap: anywhere\n\n height: 100%\n width: 100%\n\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n &:hover\n background: var(--color-sidebar-item-background--hover)\n\n // Add a nice little \"external-link\" arrow here.\n &.external::after\n content: url('data:image/svg+xml,')\n margin: 0 0.25rem\n vertical-align: middle\n color: var(--color-sidebar-link-text)\n\n // Make the current page reference bold.\n .current-page > .reference\n font-weight: bold\n\n label\n position: absolute\n top: 0\n right: 0\n height: var(--sidebar-item-height)\n width: var(--sidebar-expander-width)\n\n cursor: pointer\n user-select: none\n\n display: flex\n justify-content: center\n align-items: center\n\n .caption, :not(.caption) > .caption-text\n font-size: var(--sidebar-caption-font-size)\n color: var(--color-sidebar-caption-text)\n\n font-weight: bold\n text-transform: uppercase\n\n margin: var(--sidebar-caption-space-above) 0 0 0\n padding: var(--sidebar-item-spacing-vertical) var(--sidebar-item-spacing-horizontal)\n\n // If it has children, add a bit more padding to wrap the content to avoid\n // overlapping with the
            - +
          • + - + - + \ No newline at end of file diff --git a/docs/python/index.html b/docs/python/index.html index a2453d1e..a6375f23 100644 --- a/docs/python/index.html +++ b/docs/python/index.html @@ -2,11 +2,11 @@ - + - + @@ -14,12 +14,12 @@ - - Voyager 2.0.9 Python Documentation + + Voyager 2.0.10 Python Documentation - + - + @@ -78,7 +78,7 @@ Light mode + stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun"> @@ -93,22 +93,63 @@ Dark mode + stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon"> - - Auto light/dark mode + + Auto light/dark, in light mode - - - - - - - + stroke-width="1" stroke-linecap="round" stroke-linejoin="round" + class="icon-custom-derived-from-feather-sun-and-tabler-moon"> + + + + + + + + + + + + + + Auto light/dark, in dark mode + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -122,6 +163,8 @@
            Hide table of contents sidebar
            +Skip to content +
            @@ -133,13 +176,14 @@
            @@ -159,7 +203,7 @@
            - Voyager 2.0.9 Python Documentation + Voyager 2.0.10 Python Documentation @@ -192,11 +236,17 @@ Back to top
            - +
            @@ -206,9 +256,10 @@
            -
            +


            -The word "Voyager" in white on a black background. +The word "Voyager" in white on a black background. +

            Voyager is a library for performing fast approximate nearest-neighbor searches on an in-memory collection of vectors.

            Voyager features bindings to both Python and Java, with feature parity and index compatibility between both languages. It uses the HNSW algorithm, based on the open-source hnswlib package, @@ -277,11 +328,11 @@

            -
            - +
            + - + - + \ No newline at end of file diff --git a/docs/python/reference.html b/docs/python/reference.html index 144a40ff..dd4b342f 100644 --- a/docs/python/reference.html +++ b/docs/python/reference.html @@ -2,11 +2,11 @@ - + - + @@ -14,12 +14,12 @@ - - The voyager Python API - Voyager 2.0.9 Python Documentation + + The voyager Python API - Voyager 2.0.10 Python Documentation - + - + @@ -78,7 +78,7 @@ Light mode + stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun"> @@ -93,22 +93,63 @@ Dark mode + stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon"> - - Auto light/dark mode + + Auto light/dark, in light mode - - - - - - - + stroke-width="1" stroke-linecap="round" stroke-linejoin="round" + class="icon-custom-derived-from-feather-sun-and-tabler-moon"> + + + + + + + + + + + + + + Auto light/dark, in dark mode + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -122,6 +163,8 @@
            Hide table of contents sidebar
            +Skip to content +
            @@ -133,13 +176,14 @@
            @@ -159,7 +203,7 @@
            - Voyager 2.0.9 Python Documentation + Voyager 2.0.10 Python Documentation @@ -192,11 +236,17 @@ Back to top
            - +
            @@ -206,9 +256,9 @@
            -
            +
            -

            The voyager Python API#

            +

            The voyager Python API

            This module provides classes and functions for creating indices of vector data.

            A quick example on how to get started:

            import numpy as np
            @@ -233,7 +283,7 @@ 

            The voyager
            -class voyager.Index(space: Space, num_dimensions: int, M: int = 12, ef_construction: int = 200, random_seed: int = 1, max_elements: int = 1, storage_data_type: StorageDataType = StorageDataType.Float32)#
            +class voyager.Index(space: Space, num_dimensions: int, M: int = 12, ef_construction: int = 200, random_seed: int = 1, max_elements: int = 1, storage_data_type: StorageDataType = StorageDataType.Float32)

            A nearest-neighbor search index containing vector data (i.e. lists of floating-point values, each list labeled with a single integer ID).

            Think of a Voyager Index as a Dict[int, List[float]] @@ -293,7 +343,7 @@

            The voyager
            -__contains__(id: int) bool#
            +__contains__(id: int) bool

            Check to see if a provided vector’s ID is present in this index.

            Returns true iff the provided integer ID has a corresponding (non-deleted) vector in this index. Use the in operator to call this method:

            @@ -304,7 +354,7 @@

            The voyager
            -__len__() int#
            +__len__() int

            Returns the number of non-deleted vectors in this index.

            Use the len operator to call this method:

            len(index) # => 1234
            @@ -318,7 +368,7 @@ 

            The voyager
            -add_item(vector: ndarray[Any, dtype[float32]], id: int | None = None) int#
            +add_item(vector: ndarray[Any, dtype[float32]], id: int | None = None) int

            Add a vector to this index.

            Parameters:
            @@ -347,7 +397,7 @@

            The voyager
            -add_items(vectors: ndarray[Any, dtype[float32]], ids: List[int] | None = None, num_threads: int = -1) List[int]#
            +add_items(vectors: ndarray[Any, dtype[float32]], ids: list[int] | None = None, num_threads: int = -1) list[int]

            Add multiple vectors to this index simultaneously.

            This method may be faster than calling add_items() multiple times, as passing a batch of vectors helps avoid Python’s Global Interpreter Lock.

            @@ -378,7 +428,7 @@

            The voyager
            -as_bytes() bytes#
            +as_bytes() bytes

            Returns the contents of this index as a bytes object. The resulting object will contain the same data as if this index was serialized to disk and then read back into memory again.

            @@ -400,13 +450,13 @@

            The voyager
            -get_distance(a: List[float], b: List[float]) float#
            +get_distance(a: list[float], b: list[float]) float

            Get the distance between two provided vectors. The vectors must share the dimensionality of the index.

            -get_vector(id: int) ndarray[Any, dtype[float32]]#
            +get_vector(id: int) ndarray[Any, dtype[float32]]

            Get the vector stored in this index at the provided integer ID. If no such vector exists, a KeyError will be thrown.

            @@ -424,7 +474,7 @@

            The voyager
            -get_vectors(ids: List[int]) ndarray[Any, dtype[float32]]#
            +get_vectors(ids: list[int]) ndarray[Any, dtype[float32]]

            Get one or more vectors stored in this index at the provided integer IDs. If one or more of the provided IDs cannot be found in the index, a KeyError will be thrown.

            @@ -438,7 +488,7 @@

            The voyager
            -static load(filename: str, space: Space, num_dimensions: int, storage_data_type: StorageDataType = StorageDataType.Float32) Index#
            +static load(filename: str, space: Space, num_dimensions: int, storage_data_type: StorageDataType = StorageDataType.Float32) Index
            static load(filename: str) Index
            @@ -466,7 +516,7 @@

            The voyager
            -mark_deleted(id: int) None#
            +mark_deleted(id: int) None

            Mark an ID in this index as deleted.

            Deleted IDs will not show up in the results of calls to query(), but will still take up space in the index, and will slow down queries.

            @@ -503,7 +553,7 @@

            The voyager
            -query(vectors: ndarray[Any, dtype[float32]], k: int = 1, num_threads: int = -1, query_ef: int = -1) Tuple[ndarray[Any, dtype[uint64]], ndarray[Any, dtype[float32]]]#
            +query(vectors: ndarray[Any, dtype[float32]], k: int = 1, num_threads: int = -1, query_ef: int = -1) tuple[ndarray[Any, dtype[uint64]], ndarray[Any, dtype[float32]]]

            Query this index to retrieve the k nearest neighbors of the provided vectors.

            Parameters:
            @@ -556,11 +606,18 @@

            The voyagerprint(f" {i}-th closest neighbor is {neighbor_id}, {distance} away")

            +
            +

            Warning

            +

            If using E4M3 storage with the Cosine Space, some queries may return +negative distances due to the reduced floating-point precision of the storage +data type. While confusing, these negative distances still result in a correct +ordering between results.

            +

            -resize(new_size: int) None#
            +resize(new_size: int) None

            Resize this index, allocating space for up to new_size elements to be stored. This changes the max_elements property and may cause this Index object to use more memory. This is a fairly @@ -578,7 +635,7 @@

            The voyager
            -save(output_path: str) None#
            +save(output_path: str) None
            save(file_like: BinaryIO) None

            Save this index to the provided file path or file-like object.

            @@ -590,7 +647,7 @@

            The voyager
            -unmark_deleted(id: int) None#
            +unmark_deleted(id: int) None

            Unmark an ID in this index as deleted.

            Once unmarked as deleted, an existing ID will show up in the results of calls to query() again.

            @@ -598,7 +655,7 @@

            The voyager
            -property M: int#
            +property M: int

            The number of connections between nodes in the tree’s internal data structure.

            Larger values give better recall, but use more memory. This parameter cannot be changed after the index is instantiated.

            @@ -606,7 +663,7 @@

            The voyager
            -property ef: int#
            +property ef: int

            The default number of vectors to search through when calling query().

            Higher values make queries slower, but give better recall.

            @@ -621,7 +678,7 @@

            The voyager
            -property ef_construction: int#
            +property ef_construction: int

            The number of vectors that this index searches through when inserting a new vector into the index. Higher values make index construction slower, but give better recall. This parameter cannot be changed after the index is instantiated.

            @@ -629,7 +686,7 @@

            The voyager
            -property ids: LabelSetView#
            +property ids: LabelSetView

            A set-like object containing the integer IDs stored as ‘keys’ in this index.

            Use these indices to iterate over the vectors in this index, or to check for inclusion of a specific integer ID in this index:

            @@ -649,7 +706,7 @@

            The voyager
            -property max_elements: int#
            +property max_elements: int

            The maximum number of elements that can be stored in this index.

            If max_elements is much larger than num_elements, this index may use more memory @@ -665,13 +722,13 @@

            The voyager
            -property num_dimensions: int#
            +property num_dimensions: int

            The number of dimensions in each vector stored by this index.

            -property num_elements: int#
            +property num_elements: int

            The number of elements (vectors) currently stored in this index.

            Note that the number of elements will not decrease if any elements are deleted from the index; those deleted elements simply become invisible.

            @@ -679,39 +736,39 @@

            The voyager
            -property space: Space#
            +property space: Space

            Return the Space used to calculate distances between vectors.

            -property storage_data_type: StorageDataType#
            +property storage_data_type: StorageDataType

            The StorageDataType used to store vectors in this Index.

            -

            Enums#

            +

            Enums

            -class voyager.Space(value)#
            +class voyager.Space(value)

            The method used to calculate the distance between vectors.

            -Euclidean = 0#
            +Euclidean = 0

            Euclidean distance; also known as L2 distance. The square root of the sum of the squared differences between each element of each vector.

            -InnerProduct = 1#
            +InnerProduct = 1

            Inner product distance.

            -Cosine = 2#
            +Cosine = 2

            Cosine distance; also known as normalized inner product.

            @@ -719,7 +776,7 @@

            Enums#<
            -class voyager.StorageDataType(value)#
            +class voyager.StorageDataType(value)

            The data type used to store vectors in memory and on-disk.

            The StorageDataType used for an Index directly determines its memory usage, disk space usage, and recall. Both Float8 and @@ -727,30 +784,34 @@

            Enums#< memory usage and index size by a factor of 4 compared to Float32.

            -Float8 = 16#
            +Float8 = 16

            8-bit fixed-point decimal values. All values must be within [-1, 1.00787402].

            -Float32 = 32#
            +Float32 = 32

            32-bit floating point (default).

            -E4M3 = 48#
            +E4M3 = 48

            8-bit floating point with a range of [-448, 448], from the paper “FP8 Formats for Deep Learning” by Micikevicius et al.

            +
            +

            Warning

            +

            Using E4M3 with the Cosine Space may cause some queries to return negative distances due to the reduced floating-point precision. While confusing, these negative distances still result in a correct ordering between results.

            +

            -

            Utilities#

            +

            Utilities

            -class voyager.LabelSetView#
            +class voyager.LabelSetView

            A read-only set-like object containing 64-bit integers. Use this object like a regular Python set object, by either iterating through it, or checking for membership with the in operator.

            @@ -869,11 +930,11 @@

            Utilities - +

            + - + - + \ No newline at end of file diff --git a/docs/python/search.html b/docs/python/search.html index 370692b0..252a00df 100644 --- a/docs/python/search.html +++ b/docs/python/search.html @@ -1,14 +1,17 @@ - + + - Search - Voyager 2.0.9 Python Documentation - + + +Search - Voyager 2.0.10 Python Documentation + - + @@ -67,7 +70,7 @@ Light mode + stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="feather-sun"> @@ -82,22 +85,63 @@ Dark mode + stroke-width="1" stroke-linecap="round" stroke-linejoin="round" class="icon-tabler-moon"> - - Auto light/dark mode + + Auto light/dark, in light mode - - - - - - - + stroke-width="1" stroke-linecap="round" stroke-linejoin="round" + class="icon-custom-derived-from-feather-sun-and-tabler-moon"> + + + + + + + + + + + + + + Auto light/dark, in dark mode + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -111,6 +155,8 @@
            Hide table of contents sidebar
            +
            Skip to content +
            @@ -122,13 +168,14 @@
            @@ -148,7 +195,7 @@
            - Voyager 2.0.9 Python Documentation + Voyager 2.0.10 Python Documentation @@ -184,7 +231,8 @@
            @@ -194,7 +242,7 @@
            -
            +
            - +
            + - + - + diff --git a/docs/python/searchindex.js b/docs/python/searchindex.js index dc44f8f3..e7c9b631 100644 --- a/docs/python/searchindex.js +++ b/docs/python/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "reference"], "filenames": ["index.rst", "reference.rst"], "titles": ["<no title>", "The voyager Python API"], "terms": {"voyag": 0, "i": [0, 1], "librari": 0, "perform": [0, 1], "fast": 0, "approxim": [0, 1], "nearest": [0, 1], "neighbor": [0, 1], "search": [0, 1], "an": [0, 1], "memori": [0, 1], "collect": 0, "vector": [0, 1], "featur": 0, "bind": 0, "both": [0, 1], "python": 0, "java": [0, 1], "pariti": 0, "index": [0, 1], "compat": 0, "between": [0, 1], "languag": 0, "It": 0, "us": [0, 1], "hnsw": 0, "algorithm": 0, "base": [0, 1], "open": [0, 1], "sourc": 0, "hnswlib": 0, "packag": [0, 1], "numer": 0, "ad": [0, 1], "conveni": 0, "speed": [0, 1], "extens": 0, "product": [0, 1], "spotifi": 0, "queri": [0, 1], "hundr": 0, "million": 0, "time": [0, 1], "per": [0, 1], "dai": 0, "power": 0, "user": 0, "face": 0, "think": [0, 1], "like": [0, 1], "sparkei": 0, "embed": 0, "data": [0, 1], "annoi": 0, "much": [0, 1], "higher": [0, 1], "recal": [0, 1], "got": 0, "its": [0, 1], "name": 0, "becaus": 0, "through": [0, 1], "space": [0, 1], "": [0, 1], "interstellar": 0, "probe": 0, "launch": 0, "nasa": 0, "1977": 0, "api": 0, "refer": [0, 1], "document": [0, 1], "github": 0, "repo": 0, "thi": 1, "modul": 1, "provid": 1, "class": 1, "function": 1, "creat": 1, "indic": 1, "A": 1, "quick": 1, "exampl": 1, "how": 1, "get": 1, "start": 1, "import": 1, "numpi": 1, "np": 1, "from": 1, "empti": 1, "object": 1, "can": 1, "store": 1, "euclidean": 1, "num_dimens": 1, "5": 1, "id_a": 1, "add_item": 1, "1": 1, "2": 1, "3": 1, "4": 1, "id_b": 1, "6": 1, "7": 1, "8": 1, "9": 1, "10": 1, "print": 1, "0": 1, "find": 1, "two": 1, "closest": 1, "element": 1, "distanc": 1, "k": 1, "125": 1, "save": 1, "disk": 1, "reload": 1, "later": 1, "output_fil": 1, "voi": 1, "int": 1, "m": 1, "12": 1, "ef_construct": 1, "200": 1, "random_se": 1, "max_el": 1, "storage_data_typ": 1, "storagedatatyp": 1, "float32": 1, "contain": 1, "e": 1, "list": 1, "float": 1, "point": 1, "valu": 1, "each": 1, "label": 1, "singl": 1, "integ": 1, "id": 1, "dict": 1, "dictionari": 1, "map": 1, "where": 1, "method": 1, "allow": 1, "kei": 1, "which": 1, "mean": 1, "call": 1, "mai": 1, "return": 1, "result": 1, "ar": 1, "correct": 1, "metric": 1, "gaug": 1, "accuraci": 1, "measur": 1, "percentag": 1, "variou": 1, "paramet": 1, "below": 1, "ef": 1, "affect": 1, "usual": 1, "increas": 1, "requir": 1, "either": 1, "latenc": 1, "usag": 1, "creation": 1, "all": 1, "abov": 1, "support": 1, "insert": 1, "lookup": 1, "delet": 1, "constructor": 1, "one": 1, "three": 1, "floatindex": 1, "32": 1, "bit": 1, "precis": 1, "float8index": 1, "fix": 1, "within": 1, "bound": 1, "e4m3index": 1, "448": 1, "calcul": 1, "cosin": 1, "choic": 1, "depend": 1, "kind": 1, "being": 1, "If": 1, "your": 1, "compar": 1, "them": 1, "number": 1, "dimens": 1, "present": 1, "must": 1, "have": 1, "same": 1, "connect": 1, "node": 1, "tree": 1, "intern": 1, "structur": 1, "larger": 1, "give": 1, "better": 1, "more": 1, "cannot": 1, "chang": 1, "after": 1, "instanti": 1, "when": 1, "new": 1, "make": 1, "construct": 1, "slower": 1, "seed": 1, "initi": 1, "random": 1, "gener": 1, "byte": 1, "ident": 1, "set": 1, "known": 1, "avoid": 1, "nondeterminist": 1, "order": 1, "due": 1, "multi": 1, "thread": 1, "maximum": 1, "size": 1, "resiz": 1, "automat": 1, "so": 1, "onli": 1, "exact": 1, "advanc": 1, "__contains__": 1, "bool": 1, "check": 1, "see": 1, "true": 1, "iff": 1, "ha": 1, "correspond": 1, "non": 1, "oper": 1, "1234": 1, "fals": 1, "__len__": 1, "len": 1, "differ": 1, "num_el": 1, "been": 1, "ndarrai": 1, "ani": 1, "dtype": 1, "none": 1, "add": 1, "arrai": 1, "shape": 1, "normal": 1, "befor": 1, "other": 1, "than": 1, "convert": 1, "lower": 1, "type": 1, "option": 1, "assign": 1, "alreadi": 1, "wa": 1, "auto": 1, "loop": 1, "consid": 1, "batch": 1, "instead": 1, "faster": 1, "num_thread": 1, "multipl": 1, "simultan": 1, "pass": 1, "help": 1, "global": 1, "interpret": 1, "lock": 1, "num_vector": 1, "length": 1, "first": 1, "up": 1, "parallel": 1, "effect": 1, "By": 1, "default": 1, "spawn": 1, "cpu": 1, "core": 1, "were": 1, "as_byt": 1, "content": 1, "serial": 1, "read": 1, "back": 1, "again": 1, "extrem": 1, "larg": 1, "mani": 1, "gigabyt": 1, "suffici": 1, "To": 1, "without": 1, "alloc": 1, "entir": 1, "bytestr": 1, "also": 1, "built": 1, "serialized_index": 1, "get_dist": 1, "b": 1, "share": 1, "dimension": 1, "get_vector": 1, "exist": 1, "keyerror": 1, "thrown": 1, "subscript": 1, "my_index": 1, "version": 1, "origin": 1, "found": 1, "static": 1, "load": 1, "filenam": 1, "str": 1, "file_lik": 1, "binaryio": 1, "file": 1, "string": 1, "argument": 1, "assum": 1, "local": 1, "filesystem": 1, "done": 1, "nativ": 1, "code": 1, "hold": 1, "gil": 1, "seek": 1, "tell": 1, "seekabl": 1, "binari": 1, "rb": 1, "io": 1, "etc": 1, "addit": 1, "prior": 1, "v1": 1, "releas": 1, "howev": 1, "chunk": 1, "100mb": 1, "onc": 1, "hopefulli": 1, "reduc": 1, "impact": 1, "mark_delet": 1, "mark": 1, "show": 1, "still": 1, "take": 1, "slow": 1, "down": 1, "incur": 1, "penalti": 1, "recreat": 1, "scratch": 1, "you": 1, "want": 1, "remov": 1, "ids_to_remov": 1, "ordered_id": 1, "del": 1, "query_ef": 1, "tupl": 1, "uint64": 1, "retriev": 1, "num_queri": 1, "depth": 1, "candid": 1, "try": 1, "neighbor_id": 1, "th": 1, "enumer": 1, "zip": 1, "f": 1, "awai": 1, "query_vector": 1, "all_neighbor_id": 1, "all_dist": 1, "query_neighbor_id": 1, "query_dist": 1, "For": 1, "new_siz": 1, "properti": 1, "caus": 1, "fairli": 1, "expens": 1, "prevent": 1, "place": 1, "while": 1, "process": 1, "note": 1, "soft": 1, "limit": 1, "would": 1, "exce": 1, "accommod": 1, "subsequ": 1, "need": 1, "fly": 1, "output_path": 1, "path": 1, "write": 1, "unmark_delet": 1, "unmark": 1, "made": 1, "overridden": 1, "basi": 1, "finer": 1, "grain": 1, "control": 1, "over": 1, "labelsetview": 1, "iter": 1, "inclus": 1, "specif": 1, "work": 1, "valid": 1, "_id": 1, "necessari": 1, "footprint": 1, "current": 1, "decreas": 1, "those": 1, "simpli": 1, "becom": 1, "invis": 1, "l2": 1, "squar": 1, "root": 1, "sum": 1, "innerproduct": 1, "inner": 1, "directli": 1, "determin": 1, "float8": 1, "e4m3": 1, "factor": 1, "16": 1, "decim": 1, "00787402": 1, "48": 1, "rang": 1, "paper": 1, "fp8": 1, "format": 1, "deep": 1, "learn": 1, "micikeviciu": 1, "et": 1, "al": 1, "64": 1, "regular": 1, "membership": 1}, "objects": {"voyager": [[1, 0, 1, "", "Index"], [1, 0, 1, "", "LabelSetView"], [1, 0, 1, "", "Space"], [1, 0, 1, "", "StorageDataType"]], "voyager.Index": [[1, 1, 1, "", "M"], [1, 2, 1, "", "__contains__"], [1, 2, 1, "", "__len__"], [1, 2, 1, "", "add_item"], [1, 2, 1, "", "add_items"], [1, 2, 1, "", "as_bytes"], [1, 1, 1, "", "ef"], [1, 1, 1, "", "ef_construction"], [1, 2, 1, "", "get_distance"], [1, 2, 1, "", "get_vector"], [1, 2, 1, "", "get_vectors"], [1, 1, 1, "", "ids"], [1, 2, 1, "", "load"], [1, 2, 1, "", "mark_deleted"], [1, 1, 1, "", "max_elements"], [1, 1, 1, "", "num_dimensions"], [1, 1, 1, "", "num_elements"], [1, 2, 1, "", "query"], [1, 2, 1, "", "resize"], [1, 2, 1, "", "save"], [1, 1, 1, "", "space"], [1, 1, 1, "", "storage_data_type"], [1, 2, 1, "", "unmark_deleted"]], "voyager.Space": [[1, 3, 1, "", "Cosine"], [1, 3, 1, "", "Euclidean"], [1, 3, 1, "", "InnerProduct"]], "voyager.StorageDataType": [[1, 3, 1, "", "E4M3"], [1, 3, 1, "", "Float32"], [1, 3, 1, "", "Float8"]]}, "objtypes": {"0": "py:class", "1": "py:property", "2": "py:method", "3": "py:attribute"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "property", "Python property"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"]}, "titleterms": {"The": 1, "voyag": 1, "python": 1, "api": 1, "enum": 1, "util": 1}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"The voyager Python API": [[1, "the-voyager-python-api"]], "Enums": [[1, "enums"]], "Utilities": [[1, "utilities"]]}, "indexentries": {"cosine (voyager.space attribute)": [[1, "voyager.Space.Cosine"]], "e4m3 (voyager.storagedatatype attribute)": [[1, "voyager.StorageDataType.E4M3"]], "euclidean (voyager.space attribute)": [[1, "voyager.Space.Euclidean"]], "float32 (voyager.storagedatatype attribute)": [[1, "voyager.StorageDataType.Float32"]], "float8 (voyager.storagedatatype attribute)": [[1, "voyager.StorageDataType.Float8"]], "index (class in voyager)": [[1, "voyager.Index"]], "innerproduct (voyager.space attribute)": [[1, "voyager.Space.InnerProduct"]], "labelsetview (class in voyager)": [[1, "voyager.LabelSetView"]], "m (voyager.index property)": [[1, "voyager.Index.M"]], "space (class in voyager)": [[1, "voyager.Space"]], "storagedatatype (class in voyager)": [[1, "voyager.StorageDataType"]], "__contains__() (voyager.index method)": [[1, "voyager.Index.__contains__"]], "__len__() (voyager.index method)": [[1, "voyager.Index.__len__"]], "add_item() (voyager.index method)": [[1, "voyager.Index.add_item"]], "add_items() (voyager.index method)": [[1, "voyager.Index.add_items"]], "as_bytes() (voyager.index method)": [[1, "voyager.Index.as_bytes"]], "ef (voyager.index property)": [[1, "voyager.Index.ef"]], "ef_construction (voyager.index property)": [[1, "voyager.Index.ef_construction"]], "get_distance() (voyager.index method)": [[1, "voyager.Index.get_distance"]], "get_vector() (voyager.index method)": [[1, "voyager.Index.get_vector"]], "get_vectors() (voyager.index method)": [[1, "voyager.Index.get_vectors"]], "ids (voyager.index property)": [[1, "voyager.Index.ids"]], "load() (voyager.index static method)": [[1, "voyager.Index.load"]], "mark_deleted() (voyager.index method)": [[1, "voyager.Index.mark_deleted"]], "max_elements (voyager.index property)": [[1, "voyager.Index.max_elements"]], "num_dimensions (voyager.index property)": [[1, "voyager.Index.num_dimensions"]], "num_elements (voyager.index property)": [[1, "voyager.Index.num_elements"]], "query() (voyager.index method)": [[1, "voyager.Index.query"]], "resize() (voyager.index method)": [[1, "voyager.Index.resize"]], "save() (voyager.index method)": [[1, "voyager.Index.save"]], "space (voyager.index property)": [[1, "voyager.Index.space"]], "storage_data_type (voyager.index property)": [[1, "voyager.Index.storage_data_type"]], "unmark_deleted() (voyager.index method)": [[1, "voyager.Index.unmark_deleted"]]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Enums": [[1, "enums"]], "The voyager Python API": [[1, null]], "Utilities": [[1, "utilities"]]}, "docnames": ["index", "reference"], "envversion": {"sphinx": 63, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["index.rst", "reference.rst"], "indexentries": {"__contains__() (voyager.index method)": [[1, "voyager.Index.__contains__", false]], "__len__() (voyager.index method)": [[1, "voyager.Index.__len__", false]], "add_item() (voyager.index method)": [[1, "voyager.Index.add_item", false]], "add_items() (voyager.index method)": [[1, "voyager.Index.add_items", false]], "as_bytes() (voyager.index method)": [[1, "voyager.Index.as_bytes", false]], "cosine (voyager.space attribute)": [[1, "voyager.Space.Cosine", false]], "e4m3 (voyager.storagedatatype attribute)": [[1, "voyager.StorageDataType.E4M3", false]], "ef (voyager.index property)": [[1, "voyager.Index.ef", false]], "ef_construction (voyager.index property)": [[1, "voyager.Index.ef_construction", false]], "euclidean (voyager.space attribute)": [[1, "voyager.Space.Euclidean", false]], "float32 (voyager.storagedatatype attribute)": [[1, "voyager.StorageDataType.Float32", false]], "float8 (voyager.storagedatatype attribute)": [[1, "voyager.StorageDataType.Float8", false]], "get_distance() (voyager.index method)": [[1, "voyager.Index.get_distance", false]], "get_vector() (voyager.index method)": [[1, "voyager.Index.get_vector", false]], "get_vectors() (voyager.index method)": [[1, "voyager.Index.get_vectors", false]], "ids (voyager.index property)": [[1, "voyager.Index.ids", false]], "index (class in voyager)": [[1, "voyager.Index", false]], "innerproduct (voyager.space attribute)": [[1, "voyager.Space.InnerProduct", false]], "labelsetview (class in voyager)": [[1, "voyager.LabelSetView", false]], "load() (voyager.index static method)": [[1, "voyager.Index.load", false]], "m (voyager.index property)": [[1, "voyager.Index.M", false]], "mark_deleted() (voyager.index method)": [[1, "voyager.Index.mark_deleted", false]], "max_elements (voyager.index property)": [[1, "voyager.Index.max_elements", false]], "num_dimensions (voyager.index property)": [[1, "voyager.Index.num_dimensions", false]], "num_elements (voyager.index property)": [[1, "voyager.Index.num_elements", false]], "query() (voyager.index method)": [[1, "voyager.Index.query", false]], "resize() (voyager.index method)": [[1, "voyager.Index.resize", false]], "save() (voyager.index method)": [[1, "voyager.Index.save", false]], "space (class in voyager)": [[1, "voyager.Space", false]], "space (voyager.index property)": [[1, "voyager.Index.space", false]], "storage_data_type (voyager.index property)": [[1, "voyager.Index.storage_data_type", false]], "storagedatatype (class in voyager)": [[1, "voyager.StorageDataType", false]], "unmark_deleted() (voyager.index method)": [[1, "voyager.Index.unmark_deleted", false]]}, "objects": {"voyager": [[1, 0, 1, "", "Index"], [1, 0, 1, "", "LabelSetView"], [1, 0, 1, "", "Space"], [1, 0, 1, "", "StorageDataType"]], "voyager.Index": [[1, 1, 1, "", "M"], [1, 2, 1, "", "__contains__"], [1, 2, 1, "", "__len__"], [1, 2, 1, "", "add_item"], [1, 2, 1, "", "add_items"], [1, 2, 1, "", "as_bytes"], [1, 1, 1, "", "ef"], [1, 1, 1, "", "ef_construction"], [1, 2, 1, "", "get_distance"], [1, 2, 1, "", "get_vector"], [1, 2, 1, "", "get_vectors"], [1, 1, 1, "", "ids"], [1, 2, 1, "", "load"], [1, 2, 1, "", "mark_deleted"], [1, 1, 1, "", "max_elements"], [1, 1, 1, "", "num_dimensions"], [1, 1, 1, "", "num_elements"], [1, 2, 1, "", "query"], [1, 2, 1, "", "resize"], [1, 2, 1, "", "save"], [1, 1, 1, "", "space"], [1, 1, 1, "", "storage_data_type"], [1, 2, 1, "", "unmark_deleted"]], "voyager.Space": [[1, 3, 1, "", "Cosine"], [1, 3, 1, "", "Euclidean"], [1, 3, 1, "", "InnerProduct"]], "voyager.StorageDataType": [[1, 3, 1, "", "E4M3"], [1, 3, 1, "", "Float32"], [1, 3, 1, "", "Float8"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "property", "Python property"], "2": ["py", "method", "Python method"], "3": ["py", "attribute", "Python attribute"]}, "objtypes": {"0": "py:class", "1": "py:property", "2": "py:method", "3": "py:attribute"}, "terms": {"": [0, 1], "0": 1, "00787402": 1, "1": 1, "10": 1, "100mb": 1, "12": 1, "1234": 1, "125": 1, "16": 1, "1977": 0, "2": 1, "200": 1, "3": 1, "32": 1, "4": 1, "448": 1, "48": 1, "5": 1, "6": 1, "64": 1, "7": 1, "8": 1, "9": 1, "A": 1, "By": 1, "For": 1, "If": 1, "It": 0, "To": 1, "__contains__": 1, "__len__": 1, "_id": 1, "abov": 1, "accommod": 1, "accuraci": 1, "ad": [0, 1], "add": 1, "add_item": 1, "addit": 1, "advanc": 1, "affect": 1, "after": 1, "again": 1, "al": 1, "algorithm": 0, "all": 1, "all_dist": 1, "all_neighbor_id": 1, "alloc": 1, "allow": 1, "alreadi": 1, "also": 1, "an": [0, 1], "ani": 1, "annoi": 0, "api": 0, "approxim": [0, 1], "ar": 1, "argument": 1, "arrai": 1, "as_byt": 1, "assign": 1, "assum": 1, "auto": 1, "automat": 1, "avoid": 1, "awai": 1, "b": 1, "back": 1, "base": [0, 1], "basi": 1, "batch": 1, "becaus": 0, "becom": 1, "been": 1, "befor": 1, "being": 1, "below": 1, "better": 1, "between": [0, 1], "binari": 1, "binaryio": 1, "bind": 0, "bit": 1, "bool": 1, "both": [0, 1], "bound": 1, "built": 1, "byte": 1, "bytestr": 1, "calcul": 1, "call": 1, "can": 1, "candid": 1, "cannot": 1, "caus": 1, "chang": 1, "check": 1, "choic": 1, "chunk": 1, "class": 1, "closest": 1, "code": 1, "collect": 0, "compar": 1, "compat": 0, "confus": 1, "connect": 1, "consid": 1, "construct": 1, "constructor": 1, "contain": 1, "content": 1, "control": 1, "conveni": 0, "convert": 1, "core": 1, "correct": 1, "correspond": 1, "cosin": 1, "cpu": 1, "creat": 1, "creation": 1, "current": 1, "dai": 0, "data": [0, 1], "decim": 1, "decreas": 1, "deep": 1, "default": 1, "del": 1, "delet": 1, "depend": 1, "depth": 1, "determin": 1, "dict": 1, "dictionari": 1, "differ": 1, "dimens": 1, "dimension": 1, "directli": 1, "disk": 1, "distanc": 1, "document": [0, 1], "done": 1, "down": 1, "dtype": 1, "due": 1, "e": 1, "e4m3": 1, "e4m3index": 1, "each": 1, "ef": 1, "ef_construct": 1, "effect": 1, "either": 1, "element": 1, "embed": 0, "empti": 1, "entir": 1, "enumer": 1, "et": 1, "etc": 1, "euclidean": 1, "exact": 1, "exampl": 1, "exce": 1, "exist": 1, "expens": 1, "extens": 0, "extrem": 1, "f": 1, "face": 0, "factor": 1, "fairli": 1, "fals": 1, "fast": 0, "faster": 1, "featur": 0, "file": 1, "file_lik": 1, "filenam": 1, "filesystem": 1, "find": 1, "finer": 1, "first": 1, "fix": 1, "float": 1, "float32": 1, "float8": 1, "float8index": 1, "floatindex": 1, "fly": 1, "footprint": 1, "format": 1, "found": 1, "fp8": 1, "from": 1, "function": 1, "gaug": 1, "gener": 1, "get": 1, "get_dist": 1, "get_vector": 1, "gigabyt": 1, "gil": 1, "github": 0, "give": 1, "global": 1, "got": 0, "grain": 1, "ha": 1, "have": 1, "help": 1, "higher": [0, 1], "hnsw": 0, "hnswlib": 0, "hold": 1, "hopefulli": 1, "how": 1, "howev": 1, "hundr": 0, "i": [0, 1], "id": 1, "id_a": 1, "id_b": 1, "ident": 1, "ids_to_remov": 1, "iff": 1, "impact": 1, "import": 1, "inclus": 1, "increas": 1, "incur": 1, "index": [0, 1], "indic": 1, "initi": 1, "inner": 1, "innerproduct": 1, "insert": 1, "instanti": 1, "instead": 1, "int": 1, "integ": 1, "intern": 1, "interpret": 1, "interstellar": 0, "invis": 1, "io": 1, "iter": 1, "its": [0, 1], "java": [0, 1], "k": 1, "kei": 1, "keyerror": 1, "kind": 1, "known": 1, "l2": 1, "label": 1, "labelsetview": 1, "languag": 0, "larg": 1, "larger": 1, "latenc": 1, "later": 1, "launch": 0, "learn": 1, "len": 1, "length": 1, "librari": 0, "like": [0, 1], "limit": 1, "list": 1, "load": 1, "local": 1, "lock": 1, "lookup": 1, "loop": 1, "lower": 1, "m": 1, "made": 1, "mai": 1, "make": 1, "mani": 1, "map": 1, "mark": 1, "mark_delet": 1, "max_el": 1, "maximum": 1, "mean": 1, "measur": 1, "membership": 1, "memori": [0, 1], "method": 1, "metric": 1, "micikeviciu": 1, "million": 0, "modul": 1, "more": 1, "much": [0, 1], "multi": 1, "multipl": 1, "must": 1, "my_index": 1, "name": 0, "nasa": 0, "nativ": 1, "ndarrai": 1, "nearest": [0, 1], "necessari": 1, "need": 1, "neg": 1, "neighbor": [0, 1], "neighbor_id": 1, "new": 1, "new_siz": 1, "node": 1, "non": 1, "nondeterminist": 1, "none": 1, "normal": 1, "note": 1, "np": 1, "num_dimens": 1, "num_el": 1, "num_queri": 1, "num_thread": 1, "num_vector": 1, "number": 1, "numer": 0, "numpi": 1, "object": 1, "onc": 1, "one": 1, "onli": 1, "open": [0, 1], "oper": 1, "option": 1, "order": 1, "ordered_id": 1, "origin": 1, "other": 1, "output_fil": 1, "output_path": 1, "over": 1, "overridden": 1, "packag": [0, 1], "paper": 1, "parallel": 1, "paramet": 1, "pariti": 0, "pass": 1, "path": 1, "penalti": 1, "per": [0, 1], "percentag": 1, "perform": [0, 1], "place": 1, "point": 1, "power": 0, "precis": 1, "present": 1, "prevent": 1, "print": 1, "prior": 1, "probe": 0, "process": 1, "product": [0, 1], "properti": 1, "provid": 1, "python": 0, "queri": [0, 1], "query_dist": 1, "query_ef": 1, "query_neighbor_id": 1, "query_vector": 1, "quick": 1, "random": 1, "random_se": 1, "rang": 1, "rb": 1, "read": 1, "recal": [0, 1], "recreat": 1, "reduc": 1, "refer": [0, 1], "regular": 1, "releas": 1, "reload": 1, "remov": 1, "repo": 0, "requir": 1, "resiz": 1, "result": 1, "retriev": 1, "return": 1, "root": 1, "same": 1, "save": 1, "scratch": 1, "search": [0, 1], "see": 1, "seed": 1, "seek": 1, "seekabl": 1, "serial": 1, "serialized_index": 1, "set": 1, "shape": 1, "share": 1, "show": 1, "simpli": 1, "simultan": 1, "singl": 1, "size": 1, "slow": 1, "slower": 1, "so": 1, "soft": 1, "some": 1, "sourc": 0, "space": [0, 1], "sparkei": 0, "spawn": 1, "specif": 1, "speed": [0, 1], "spotifi": 0, "squar": 1, "start": 1, "static": 1, "still": 1, "storag": 1, "storage_data_typ": 1, "storagedatatyp": 1, "store": 1, "str": 1, "string": 1, "structur": 1, "subscript": 1, "subsequ": 1, "suffici": 1, "sum": 1, "support": 1, "take": 1, "tell": 1, "th": 1, "than": 1, "them": 1, "thi": 1, "think": [0, 1], "those": 1, "thread": 1, "three": 1, "through": [0, 1], "thrown": 1, "time": [0, 1], "tree": 1, "true": 1, "try": 1, "tupl": 1, "two": 1, "type": 1, "uint64": 1, "unmark": 1, "unmark_delet": 1, "up": 1, "us": [0, 1], "usag": 1, "user": 0, "usual": 1, "v1": 1, "valid": 1, "valu": 1, "variou": 1, "vector": [0, 1], "version": 1, "voi": 1, "voyag": 0, "wa": 1, "want": 1, "were": 1, "when": 1, "where": 1, "which": 1, "while": 1, "within": 1, "without": 1, "work": 1, "would": 1, "write": 1, "you": 1, "your": 1, "zip": 1}, "titles": ["<no title>", "The voyager Python API"], "titleterms": {"The": 1, "api": 1, "enum": 1, "python": 1, "util": 1, "voyag": 1}}) \ No newline at end of file diff --git a/python/voyager/__init__.pyi b/python/voyager/__init__.pyi index d809e65d..5c1dbf34 100644 --- a/python/voyager/__init__.pyi +++ b/python/voyager/__init__.pyi @@ -15,7 +15,10 @@ def patch_overload(func): if func.__doc__: # Work around the fact that pybind11-stubgen generates # duplicate docstrings sometimes, once for each overload: - while func.__doc__[len(func.__doc__) // 2 :].strip() == func.__doc__[: -len(func.__doc__) // 2].strip(): + while ( + func.__doc__[len(func.__doc__) // 2 :].strip() + == func.__doc__[: -len(func.__doc__) // 2].strip() + ): func.__doc__ = func.__doc__[len(func.__doc__) // 2 :].strip() return func @@ -40,6 +43,7 @@ __all__ = [ "Index", "InnerProduct", "LabelSetView", + "RecallError", "Space", "StorageDataType", ] @@ -523,10 +527,11 @@ class Index: print(f"\t{i}-th closest neighbor is {neighbor_id}, {distance} away") .. warning:: + If using E4M3 storage with the Cosine :py:class:`Space`, some queries may return negative distances due to the reduced floating-point precision of the storage data type. While confusing, these negative distances still result in a correct - ordering between results. + ordering between results. """ def resize(self, new_size: int) -> None: @@ -886,3 +891,6 @@ class LabelSetView: def __len__(self) -> int: ... def __repr__(self) -> str: ... pass + +class RecallError(Exception, BaseException): + pass diff --git a/python/voyager/version.py b/python/voyager/version.py index d2012861..de323666 100644 --- a/python/voyager/version.py +++ b/python/voyager/version.py @@ -17,6 +17,6 @@ MAJOR = 2 MINOR = 0 -PATCH = 9 +PATCH = 10 __version__ = "%d.%d.%d" % (MAJOR, MINOR, PATCH) From ca1b9e9137d1036980a30ec63807a422b3d3e2dd Mon Sep 17 00:00:00 2001 From: Stephen Xie Date: Fri, 4 Oct 2024 15:22:44 -0400 Subject: [PATCH 42/52] Regenerate Java docs for v2.0.10, fix Python formatting (#91) * Regenerate Java docs for v2.0.10 * Python formatting --- docs/java/apidocs/allclasses-index.html | 26 +- docs/java/apidocs/allpackages-index.html | 16 +- .../voyager/jni/Index.QueryResults.html | 44 +- .../spotify/voyager/jni/Index.SpaceType.html | 44 +- .../voyager/jni/Index.StorageDataType.html | 44 +- .../com/spotify/voyager/jni/Index.html | 70 +- .../voyager/jni/StringIndex.QueryResults.html | 44 +- .../com/spotify/voyager/jni/StringIndex.html | 65 +- .../jni/class-use/Index.QueryResults.html | 16 +- .../jni/class-use/Index.SpaceType.html | 16 +- .../jni/class-use/Index.StorageDataType.html | 16 +- .../spotify/voyager/jni/class-use/Index.html | 16 +- .../class-use/StringIndex.QueryResults.html | 16 +- .../voyager/jni/class-use/StringIndex.html | 16 +- .../jni/exception/RecallException.html | 40 +- .../exception/class-use/RecallException.html | 16 +- .../jni/exception/package-summary.html | 31 +- .../voyager/jni/exception/package-tree.html | 20 +- .../voyager/jni/exception/package-use.html | 16 +- .../spotify/voyager/jni/package-summary.html | 33 +- .../com/spotify/voyager/jni/package-tree.html | 20 +- .../com/spotify/voyager/jni/package-use.html | 16 +- .../voyager/jni/utils/JniLibExtractor.html | 42 +- .../spotify/voyager/jni/utils/TinyJson.html | 44 +- .../jni/utils/class-use/JniLibExtractor.html | 16 +- .../voyager/jni/utils/class-use/TinyJson.html | 16 +- .../voyager/jni/utils/package-summary.html | 27 +- .../voyager/jni/utils/package-tree.html | 20 +- .../voyager/jni/utils/package-use.html | 16 +- .../com/spotify/voyager/package-summary.html | 27 +- .../com/spotify/voyager/package-tree.html | 20 +- .../com/spotify/voyager/package-use.html | 16 +- docs/java/apidocs/help-doc.html | 43 +- docs/java/apidocs/index-all.html | 24 +- docs/java/apidocs/index.html | 18 +- docs/java/apidocs/jquery-ui.overrides.css | 35 + docs/java/apidocs/legal/ASSEMBLY_EXCEPTION | 6 +- docs/java/apidocs/overview-summary.html | 6 +- docs/java/apidocs/overview-tree.html | 20 +- docs/java/apidocs/script.js | 141 +-- docs/java/apidocs/search.js | 612 +++++------- docs/java/apidocs/serialized-form.html | 18 +- docs/java/apidocs/stylesheet.css | 869 +++++------------- java/pom.xml | 2 +- python/voyager/__init__.pyi | 5 +- 45 files changed, 958 insertions(+), 1726 deletions(-) create mode 100644 docs/java/apidocs/jquery-ui.overrides.css diff --git a/docs/java/apidocs/allclasses-index.html b/docs/java/apidocs/allclasses-index.html index ee59aadd..617f9710 100644 --- a/docs/java/apidocs/allclasses-index.html +++ b/docs/java/apidocs/allclasses-index.html @@ -1,21 +1,26 @@ - -All Classes and Interfaces (voyager 2.0.9 API) + +All Classes and Interfaces (voyager 2.0.10 API) - + + -
            diff --git a/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.QueryResults.html index c1ca9a72..91a97834 100644 --- a/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.QueryResults.html +++ b/docs/java/apidocs/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -1,21 +1,26 @@ - -StringIndex.QueryResults (voyager 2.0.9 API) + +StringIndex.QueryResults (voyager 2.0.10 API) - + + -
          - +
          • valueOf

            -
            public static Index.SpaceType valueOf​(String name)
            +
            public static Index.SpaceType valueOf(String name)
            Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are @@ -336,32 +299,28 @@

            valueOf

            Returns:
            the enum constant with the specified name
            Throws:
            -
            IllegalArgumentException - if this enum type has no constant with the specified name
            -
            NullPointerException - if the argument is null
            +
            IllegalArgumentException - if this enum type has no constant with the specified name
            +
            NullPointerException - if the argument is null
        -
    - - diff --git a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html index 71682d01..55a1665f 100644 --- a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html @@ -1,58 +1,44 @@ - + - + - -Index.StorageDataType (voyager 2.0.9 API) + - +Index.StorageDataType (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -
    - +
    com.spotify.voyager.jni

    Enum Index.StorageDataType

    @@ -244,19 +210,18 @@

    Methods inherited from class java.lang.
  • -
      -
    • +
    • Enum Constant Detail

      - +
      • Float8

        -
        public static final Index.StorageDataType Float8
        +
        public static final Index.StorageDataType Float8
        An 8-bit floating point data type that expects all values to be on [-1, 1]. This data type provides adequate precision for many use cases, but cuts down memory usage bu a factor of 4x compared to Float32, while also increasing query speed. @@ -266,23 +231,23 @@

        Float8

        use E4M3.
      - + - +
      • E4M3

        -
        public static final Index.StorageDataType E4M3
        +
        public static final Index.StorageDataType E4M3
        A custom 8-bit floating point data type with range [-448, 448] and variable precision. Use this data type to get 4x less memory usage compared to Float32, but when the values of vectors to be stored in an Index may exceed [-1, 1]. @@ -297,23 +262,21 @@

        E4M3

    -
    -
      -
    • +
    • Method Detail

      - +
      • values

        -
        public static Index.StorageDataType[] values()
        +
        public static Index.StorageDataType[] values()
        Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate +the order they are declared. This method may be used to iterate over the constants as follows:
         for (Index.StorageDataType c : Index.StorageDataType.values())
        @@ -325,13 +288,13 @@ 

        values

      - +
    -
  • - - diff --git a/docs/java/com/spotify/voyager/jni/Index.html b/docs/java/com/spotify/voyager/jni/Index.html index d4f14a29..8e8133cf 100644 --- a/docs/java/com/spotify/voyager/jni/Index.html +++ b/docs/java/com/spotify/voyager/jni/Index.html @@ -1,58 +1,44 @@ - + - + - -Index (voyager 2.0.9 API) + - +Index (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -
    - +
    com.spotify.voyager.jni

    Class Index

      -
    • java.lang.Object
    • +
    • java.lang.Object
      • com.spotify.voyager.jni.Index
      • @@ -134,12 +110,13 @@

        Class Index

      • All Implemented Interfaces:
        -
        Closeable, AutoCloseable
        +
        Closeable, AutoCloseable

        +
        public class Index
        -extends Object
        -implements Closeable
        +extends Object +implements Closeable
        A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors. @@ -169,360 +146,313 @@

        Class Index

        @@ -530,21 +460,20 @@

        Methods inherited from class java.lang.
      • -
          -
        • +
        • Constructor Detail

          - + - +
          • Index

            -
            public Index​(Index.SpaceType space,
            +
            public Index(Index.SpaceType space,
                          int numDimensions,
                          long indexM,
                          long efConstruction,
                          long randomSeed,
                          long maxElements,
            -             Index.StorageDataType storageDataType)
            -
            Create a new Index that uses the given Index.SpaceType to store and compare + Index.StorageDataType storageDataType)
            +
            Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
            Parameters:
            @@ -578,172 +507,170 @@

            Index

            Does not affect memory usage or size of the index.
            randomSeed - A random seed to use when initializing the index's internal data structures.
            maxElements - The maximum number of elements that this index can hold. This is a - performance optimization; if the index contains this number of elements and addItem(float[]) or addItems(float[][], int) is called, the index's capacity will automatically + performance optimization; if the index contains this number of elements and addItem(float[]) or addItems(float[][], int) is called, the index's capacity will automatically expanded to fit the new elements. Setting maxElements in advance helps avoid these expensive resize operations if the number of elements to be added is already known.
            storageDataType - The datatype to use under-the-hood when storing vectors. Different data - type options trade off precision for memory usage and query speed; see Index.StorageDataType for available data types.
            + type options trade off precision for memory usage and query speed; see Index.StorageDataType for available data types.
        -
        -
          -
        • +
        • Method Detail

          - +
          • load

            -
            public static Index load​(String filename,
            -                         Index.SpaceType space,
            +
            public static Index load(String filename,
            +                         Index.SpaceType space,
                                      int numDimensions,
            -                         Index.StorageDataType storageDataType)
            -
            Load a Voyager index file and create a new Index initialized with the data in that + Index.StorageDataType storageDataType)
            +
            Load a Voyager index file and create a new Index initialized with the data in that file.
            Parameters:
            filename - A filename to load.
            -
            space - The Index.SpaceType to use when loading the index.
            +
            space - The Index.SpaceType to use when loading the index.
            numDimensions - The number of dimensions per vector.
            -
            storageDataType - The Index.StorageDataType used by the index being loaded.
            +
            storageDataType - The Index.StorageDataType used by the index being loaded.
            Returns:
            -
            An Index whose contents have been initialized with the data provided by the +
            An Index whose contents have been initialized with the data provided by the file.
            Throws:
            -
            RuntimeException - if the index cannot be loaded from the file, or the file contains +
            RuntimeException - if the index cannot be loaded from the file, or the file contains invalid data.
          - +
          • load

            -
            public static Index load​(String filename)
            -
            Load a Voyager index file and create a new Index initialized with the data in that +
            public static Index load(String filename)
            +
            Load a Voyager index file and create a new Index initialized with the data in that file.
            Parameters:
            filename - A filename to load.
            Returns:
            -
            An Index whose contents have been initialized with the data provided by the +
            An Index whose contents have been initialized with the data provided by the file.
            Throws:
            -
            RuntimeException - if the index cannot be loaded from the file, the file contains invalid +
            RuntimeException - if the index cannot be loaded from the file, the file contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
          - +
    Parameters:
    -
    inputStream - A InputStream that will provide the contents of a Voyager +
    inputStream - A InputStream that will provide the contents of a Voyager index.
    -
    space - The Index.SpaceType to use when loading the index.
    +
    space - The Index.SpaceType to use when loading the index.
    numDimensions - The number of dimensions per vector.
    -
    storageDataType - The Index.StorageDataType used by the index being loaded.
    +
    storageDataType - The Index.StorageDataType used by the index being loaded.
    Returns:
    -
    An Index whose contents have been initialized with the data provided by the +
    An Index whose contents have been initialized with the data provided by the input stream.
    Throws:
    -
    RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
    RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data.
    - +
    • load

      -
      public static Index load​(InputStream inputStream)
      +
      public static Index load(InputStream inputStream)
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file - and create a new Index initialized with the data provided by that stream.
      + and create a new Index initialized with the data provided by that stream.
    Parameters:
    -
    inputStream - A InputStream that will provide the contents of a Voyager +
    inputStream - A InputStream that will provide the contents of a Voyager index.
    Returns:
    -
    An Index whose contents have been initialized with the data provided by the +
    An Index whose contents have been initialized with the data provided by the input stream.
    Throws:
    -
    RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
    RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
    - +
    • close

      -
      public void close()
      -           throws IOException
      -
      Close this Index and release any memory held by it. Note that this method must be - called to release the memory backing this Index; failing to do so may cause a memory +
      public void close()
      +           throws IOException
      +
      Close this Index and release any memory held by it. Note that this method must be + called to release the memory backing this Index; failing to do so may cause a memory leak. -

      Any calls to methods after close() is called will fail, as the underlying +

      Any calls to methods after close() is called will fail, as the underlying native C++ object will have been deallocated.

      Specified by:
      -
      close in interface AutoCloseable
      +
      close in interface Closeable
      Specified by:
      -
      close in interface Closeable
      +
      close in interface AutoCloseable
      Throws:
      -
      IOException - if the C++ destructor fails.
      +
      IOException - if the C++ destructor fails.
    - + - +
    • setEf

      -
      public void setEf​(long ef)
      -
      Set the default EF ("query search depth") to use when query(float[], int) is called.
      +
      public void setEf(long ef)
      +
      Set the default EF ("query search depth") to use when query(float[], int) is called.
      Parameters:
      ef - The new default EF value to use. This value can be overridden on a per-query basis at @@ -751,57 +678,57 @@

      setEf

    - +
    • getEf

      -
      public int getEf()
      -
      Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
      +
      public int getEf()
      +
      Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
      Returns:
      -
      The current default EF value, used by the Index if no value is provided at +
      The current default EF value, used by the Index if no value is provided at query time.
    - + - +
    • getNumDimensions

      -
      public int getNumDimensions()
      -
      Get the number of dimensions used in this Index.
      +
      public int getNumDimensions()
      +
      Get the number of dimensions used in this Index.
      Returns:
      -
      The number of dimensions used by this Index, and which all vectors within this - Index must have.
      +
      The number of dimensions used by this Index, and which all vectors within this + Index must have.
    - +
    • setNumThreads

      -
      public void setNumThreads​(int numThreads)
      +
      public void setNumThreads(int numThreads)
      Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
      @@ -813,13 +740,13 @@

      setNumThreads

    - +
    • getNumThreads

      -
      public int getNumThreads()
      +
      public int getNumThreads()
      Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
      @@ -829,28 +756,27 @@

      getNumThreads

    - +
    • saveIndex

      -
      public void saveIndex​(String pathToIndex)
      -
      Save this Index to a file at the provided filename. This file can be reloaded by using - Index.load(...).
      +
      public void saveIndex(String pathToIndex)
      +
      Save this Index to a file at the provided filename. This file can be reloaded by using Index.load(...).
      Parameters:
      pathToIndex - The output filename to write to.
    - +
    • saveIndex

      -
      public void saveIndex​(OutputStream outputStream)
      +
      public void saveIndex(OutputStream outputStream)
      Save this Index to the provided output stream. The stream will not be closed automatically - be sure to close the stream saveIndex has completed. The data written to the stream can be reloaded by using Index.load(...).
      @@ -861,13 +787,13 @@

      saveIndex

    - +
    • asBytes

      -
      public byte[] asBytes()
      +
      public byte[] asBytes()
      Returns the contents of this index as an array of bytes. The resulting bytes will contain the same data as if this index was serialized to disk and then read back into memory again.
      @@ -876,93 +802,103 @@

      asBytes

    - +
    • addItem

      -
      public void addItem​(float[] vector)
      -
      Add an item (a vector) to this Index. The item will automatically be given an - identifier equal to the return value of getNumElements().
      +
      public long addItem(float[] vector)
      +
      Add an item (a vector) to this Index. The item will automatically be given an + identifier equal to the return value of getNumElements().
      Parameters:
      vector - The vector to add to the index.
      +
      Returns:
      +
      The long ID that was assigned to this vector.
      Throws:
      -
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
    - +
    • addItem

      -
      public void addItem​(float[] vector,
      +
      public long addItem(float[] vector,
                           long id)
      -
      Add an item (a vector) to this Index with the provided identifier.
      +
      Add an item (a vector) to this Index with the provided identifier.
      Parameters:
      vector - The vector to add to the index.
      id - The 64-bit integer denoting the identifier of this vector.
      +
      Returns:
      +
      The long ID that was assigned to this vector.
      Throws:
      -
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
    - +
    • addItems

      -
      public void addItems​(float[][] vectors,
      -                     int numThreads)
      -
      Add multiple items (vectors) to this Index.
      +
      public long[] addItems(float[][] vectors,
      +                       int numThreads)
      +
      Add multiple items (vectors) to this Index.
      Parameters:
      vectors - The vectors to add to the index.
      numThreads - The number of threads to use when adding the provided vectors. If -1 (the default), the number of CPUs available on the current machine will be used.
      +
      Returns:
      +
      The auto-generated long IDs that were assigned to the provided vectors, in the + same order as the provided vectors.
      Throws:
      -
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      +
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
    - +
    • addItems

      -
      public void addItems​(float[][] vectors,
      -                     long[] ids,
      -                     int numThreads)
      -
      Add multiple items (vectors) to this Index.
      +
      public long[] addItems(float[][] vectors,
      +                       long[] ids,
      +                       int numThreads)
      +
      Add multiple items (vectors) to this Index with the provided identifiers.
      Parameters:
      vectors - The vectors to add to the index.
      ids - The 64-bit identifiers that correspond with each of the provided vectors.
      numThreads - The number of threads to use when adding the provided vectors. If -1 (the default), the number of CPUs available on the current machine will be used. Note that this - causes a temporary C++ thread pool to be used. Instead of calling addItems(float[][],int) in a - tight loop, consider passing more data to each addItems(float[][],int) call instead to reduce + causes a temporary C++ thread pool to be used. Instead of calling addItems in a + tight loop, consider passing more data to each addItems call instead to reduce overhead.
      +
      Returns:
      +
      The long IDs that were assigned to the provided vectors, in the same order as + the provided vectors.
      Throws:
      -
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      -
      RuntimeException - If the list of IDs does not have the same length as the list of +
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      +
      RuntimeException - If the list of IDs does not have the same length as the list of provided vectors.
    - +
    • getVector

      -
      public float[] getVector​(long id)
      +
      public float[] getVector(long id)
      Get the vector for the provided identifier.
      Parameters:
      @@ -970,17 +906,17 @@

      getVector

      Returns:
      A float array representing the values of the vector.
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      RuntimeException - If the provided identifier is not present in the Index.
    - +
    • getVectors

      -
      public float[][] getVectors​(long[] ids)
      +
      public float[][] getVectors(long[] ids)
      Get the vectors for a provided array of identifiers.
      Parameters:
      @@ -989,17 +925,17 @@

      getVectors

      A nested float array representing the values of the vectors corresponding with each ID.
      Throws:
      -
      RuntimeException - If any of the provided identifiers are not present in the Index.
      +
      RuntimeException - If any of the provided identifiers are not present in the Index.
    - +
    • getIDs

      -
      public long[] getIDs()
      +
      public long[] getIDs()
      Get the list of identifiers currently stored by this index.
      Returns:
      @@ -1007,64 +943,64 @@

      getIDs

    - +
    • query

      -
      public Index.QueryResults query​(float[] queryVector,
      +
      public Index.QueryResults query(float[] queryVector,
                                       int k)
      -
      Query this Index for approximate nearest neighbors of a single query vector.
      +
      Query this Index for approximate nearest neighbors of a single query vector.
      Parameters:
      queryVector - A query vector to use for searching.
      k - The number of nearest neighbors to return.
      Returns:
      -
      A Index.QueryResults object, containing the neighbors found that are (approximately) +
      A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index.
      +
      RecallException - if fewer than k results can be found in the index.
    - +
    • query

      -
      public Index.QueryResults[] query​(float[][] queryVectors,
      +
      public Index.QueryResults[] query(float[][] queryVectors,
                                         int k,
                                         int numThreads)
      -
      Query this Index for approximate nearest neighbors of multiple query vectors.
      +
      Query this Index for approximate nearest neighbors of multiple query vectors.
      Parameters:
      queryVectors - The query vectors to use for searching.
      k - The number of nearest neighbors to return for each query vector
      numThreads - The number of threads to use when searching. If -1, all available CPU cores will be used. Note that passing a number of threads other than 1 will cause a temporary C++ - thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing + thread pool to be used. Instead of calling query in a tight loop, consider passing more data to each call instead to reduce overhead.
      Returns:
      -
      An array of Index.QueryResults objects, each containing the neighbors found that are - (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      +
      An array of Index.QueryResults objects, each containing the neighbors found that are + (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index for one or +
      RecallException - if fewer than k results can be found in the index for one or more queries.
    - +
    • query

      -
      public Index.QueryResults query​(float[] queryVector,
      +
      public Index.QueryResults query(float[] queryVector,
                                       int k,
                                       long queryEf)
      -
      Query this Index for approximate nearest neighbors of a single query vector.
      +
      Query this Index for approximate nearest neighbors of a single query vector.
      Parameters:
      queryVector - A query vector to use for searching.
      @@ -1072,130 +1008,130 @@

      query

      queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
      Returns:
      -
      A Index.QueryResults object, containing the neighbors found that are (approximately) +
      A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index.
      +
      RecallException - if fewer than k results can be found in the index.
    - +
    • query

      -
      public Index.QueryResults[] query​(float[][] queryVectors,
      +
      public Index.QueryResults[] query(float[][] queryVectors,
                                         int k,
                                         int numThreads,
                                         long queryEf)
      -
      Query this Index for approximate nearest neighbors of multiple query vectors.
      +
      Query this Index for approximate nearest neighbors of multiple query vectors.
      Parameters:
      queryVectors - The query vectors to use for searching.
      k - The number of nearest neighbors to return for each query vector
      numThreads - The number of threads to use when searching. If -1, all available CPU cores will be used. Note that passing a number of threads other than 1 will cause a temporary C++ - thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing + thread pool to be used. Instead of calling query in a tight loop, consider passing more data to each call instead to reduce overhead.
      queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
      Returns:
      -
      An array of Index.QueryResults objects, each containing the neighbors found that are - (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      +
      An array of Index.QueryResults objects, each containing the neighbors found that are + (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      Throws:
      -
      RuntimeException - if fewer than k results can be found in the index for one or +
      RecallException - if fewer than k results can be found in the index for one or more queries.
    - +
    • markDeleted

      -
      public void markDeleted​(long label)
      +
      public void markDeleted(long label)
      Mark an element of the index as deleted. Deleted elements will be skipped when querying, but will still be present in the index.
      Parameters:
      label - The ID of the element to mark as deleted.
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      RuntimeException - If the provided identifier is not present in the Index.
    - +
    • unmarkDeleted

      -
      public void unmarkDeleted​(long label)
      +
      public void unmarkDeleted(long label)
      Un-mark an element of the index as deleted, making it available again.
      Parameters:
      label - The ID of the element to unmark as deleted.
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      RuntimeException - If the provided identifier is not present in the Index.
    - +
    • resizeIndex

      -
      public void resizeIndex​(long newSize)
      -
      Change the maximum number of elements currently storable by this Index. This operation +
      public void resizeIndex(long newSize)
      +
      Change the maximum number of elements currently storable by this Index. This operation reallocates the memory used by the index and can be quite slow, so it may be useful to set the maximum number of elements in advance if that number is known.
      Parameters:
      -
      newSize - The new number of maximum elements to resize this Index to.
      +
      newSize - The new number of maximum elements to resize this Index to.
    - +
    • getMaxElements

      -
      public long getMaxElements()
      -
      Get the maximum number of elements currently storable by this Index. If more elements +
      public long getMaxElements()
      +
      Get the maximum number of elements currently storable by this Index. If more elements are added than getMaxElements(), the index will be automatically (but slowly) resized.
      Returns:
      -
      The number of elements (vectors) that are currently storable in this Index.
      +
      The number of elements (vectors) that are currently storable in this Index.
    - +
    • getNumElements

      -
      public long getNumElements()
      -
      Get the number of elements currently in this Index.
      +
      public long getNumElements()
      +
      Get the number of elements currently in this Index.
      Returns:
      -
      The number of elements (vectors) in this Index. This count includes any deleted +
      The number of elements (vectors) in this Index. This count includes any deleted elements.
    - +
    • getEfConstruction

      -
      public long getEfConstruction()
      -
      Get the EF Construction value used when adding new elements to this Index.
      +
      public long getEfConstruction()
      +
      Get the EF Construction value used when adding new elements to this Index.
      Returns:
      The current EF Construction value (i.e.: the number of neighbors to search for when @@ -1203,14 +1139,14 @@

      getEfConstruction

    - +
    • getM

      -
      public long getM()
      -
      Get the M value used when adding new elements to this Index.
      +
      public long getM()
      +
      Get the M value used when adding new elements to this Index.
      Returns:
      The current M value (i.e.: the number of links between adjacent vectors to create when @@ -1220,25 +1156,21 @@

      getM

    -
    - - diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html index 6cc79d66..ace70f40 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -1,58 +1,44 @@ - + - + - -StringIndex.QueryResults (voyager 2.0.9 API) + - +StringIndex.QueryResults (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -
    - +
    com.spotify.voyager.jni

    Class StringIndex.QueryResults

    @@ -230,111 +194,104 @@

    Methods inherited from class java.lang.
  • -
      -
    • +
    • Constructor Detail

      - +
      • QueryResults

        -
        public QueryResults​(String[] names,
        +
        public QueryResults(String[] names,
                             float[] distances)
    -
    -
      -
    • +
    • Method Detail

      - +
      • getNames

        -
        public String[] getNames()
        +
        public String[] getNames()
      - +
      • getDistances

        -
        public float[] getDistances()
        +
        public float[] getDistances()
      - +
      • getName

        -
        public String getName​(int index)
        +
        public String getName(int index)
      - +
      • getDistance

        -
        public float getDistance​(int index)
        +
        public float getDistance(int index)
      - +
      • getNumResults

        -
        public int getNumResults()
        +
        public int getNumResults()
      - +
    -
  • - - diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.html b/docs/java/com/spotify/voyager/jni/StringIndex.html index 91f3b81c..4bfa5b25 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.html @@ -1,58 +1,44 @@ - + - + - -StringIndex (voyager 2.0.9 API) + - +StringIndex (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -
    - +
    com.spotify.voyager.jni

    Class StringIndex

    - - diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html index 014e9654..8f1fd7f7 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html @@ -1,54 +1,40 @@ - + - + - -Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.0.9 API) + - +Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Uses of Class
    com.spotify.voyager.jni.Index.QueryResults

    -
    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html index df6c8a94..14174f01 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html @@ -1,54 +1,40 @@ - + - + - -Uses of Class com.spotify.voyager.jni.Index.SpaceType (voyager 2.0.9 API) + - +Uses of Class com.spotify.voyager.jni.Index.SpaceType (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Uses of Class
    com.spotify.voyager.jni.Index.SpaceType

    -
    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html index 8842bfe8..da4f6d3b 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html @@ -1,54 +1,40 @@ - + - + - -Uses of Class com.spotify.voyager.jni.Index.StorageDataType (voyager 2.0.9 API) + - +Uses of Class com.spotify.voyager.jni.Index.StorageDataType (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Uses of Class
    com.spotify.voyager.jni.Index.StorageDataType

    -
    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.html b/docs/java/com/spotify/voyager/jni/class-use/Index.html index 5ff1d36f..19015b62 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.html @@ -1,54 +1,40 @@ - + - + - -Uses of Class com.spotify.voyager.jni.Index (voyager 2.0.9 API) + - +Uses of Class com.spotify.voyager.jni.Index (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Uses of Class
    com.spotify.voyager.jni.Index

    -
    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html index ee165f1a..b05f2858 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html @@ -1,54 +1,40 @@ - + - + - -Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.0.9 API) + - +Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex.QueryResults

    -
    - diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html index e29c3576..92757384 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html @@ -1,54 +1,40 @@ - + - + - -Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.0.9 API) + - +Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex

    -
    - diff --git a/docs/java/com/spotify/voyager/jni/exception/RecallException.html b/docs/java/com/spotify/voyager/jni/exception/RecallException.html new file mode 100644 index 00000000..ccfe1d61 --- /dev/null +++ b/docs/java/com/spotify/voyager/jni/exception/RecallException.html @@ -0,0 +1,299 @@ + + + + + + +RecallException (voyager 2.1.0 API) + + + + + + + + + + + + +
    +
    com.spotify.voyager.jni.exception
    +

    Class RecallException

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Serializable
      +
      +
      +
      +
      public class RecallException
      +extends RuntimeException
      +
      An exception indicating that the desired recall of a query cannot be achieved
      +
      +
      See Also:
      +
      Serialized Form
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          RecallException

          +
          public RecallException(String message)
          +
          Constructs a new RecallException with the specified detail message.
          +
          +
          Parameters:
          +
          message - the detail message
          +
          +
        • +
        + + + +
          +
        • +

          RecallException

          +
          public RecallException(String message,
          +                       Throwable cause)
          +
          Constructs a new RecallException with the specified detail message and cause.
          +
          +
          Parameters:
          +
          message - the detail message
          +
          cause - the cause of the exception
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2024. All rights reserved.

    + + diff --git a/docs/java/com/spotify/voyager/jni/exception/class-use/RecallException.html b/docs/java/com/spotify/voyager/jni/exception/class-use/RecallException.html new file mode 100644 index 00000000..3418111b --- /dev/null +++ b/docs/java/com/spotify/voyager/jni/exception/class-use/RecallException.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class com.spotify.voyager.jni.exception.RecallException (voyager 2.1.0 API) + + + + + + + + + + + +
    +

    Uses of Class
    com.spotify.voyager.jni.exception.RecallException

    +
    +
    No usage of com.spotify.voyager.jni.exception.RecallException
    + + + + +

    Copyright © 2024. All rights reserved.

    + + diff --git a/docs/java/com/spotify/voyager/jni/exception/package-frame.html b/docs/java/com/spotify/voyager/jni/exception/package-frame.html new file mode 100644 index 00000000..414dc065 --- /dev/null +++ b/docs/java/com/spotify/voyager/jni/exception/package-frame.html @@ -0,0 +1,21 @@ + + + + + + +com.spotify.voyager.jni.exception (voyager 2.1.0 API) + + + + + +

    com.spotify.voyager.jni.exception

    +
    +

    Exceptions

    + +
    + + diff --git a/docs/java/com/spotify/voyager/jni/exception/package-summary.html b/docs/java/com/spotify/voyager/jni/exception/package-summary.html new file mode 100644 index 00000000..9aec16b0 --- /dev/null +++ b/docs/java/com/spotify/voyager/jni/exception/package-summary.html @@ -0,0 +1,146 @@ + + + + + + +com.spotify.voyager.jni.exception (voyager 2.1.0 API) + + + + + + + + + + + +
    +

    Package com.spotify.voyager.jni.exception

    +
    +
    +
      +
    • + + + + + + + + + + + + +
      Exception Summary 
      ExceptionDescription
      RecallException +
      An exception indicating that the desired recall of a query cannot be achieved
      +
      +
    • +
    +
    + + + + +

    Copyright © 2024. All rights reserved.

    + + diff --git a/docs/java/com/spotify/voyager/jni/exception/package-tree.html b/docs/java/com/spotify/voyager/jni/exception/package-tree.html new file mode 100644 index 00000000..9d099fc0 --- /dev/null +++ b/docs/java/com/spotify/voyager/jni/exception/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +com.spotify.voyager.jni.exception Class Hierarchy (voyager 2.1.0 API) + + + + + + + + + + + +
    +

    Hierarchy For Package com.spotify.voyager.jni.exception

    +Package Hierarchies: + +
    +
    +

    Class Hierarchy

    + +
    + + + + +

    Copyright © 2024. All rights reserved.

    + + diff --git a/docs/java/com/spotify/voyager/jni/exception/package-use.html b/docs/java/com/spotify/voyager/jni/exception/package-use.html new file mode 100644 index 00000000..1acaed8b --- /dev/null +++ b/docs/java/com/spotify/voyager/jni/exception/package-use.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Package com.spotify.voyager.jni.exception (voyager 2.1.0 API) + + + + + + + + + + + +
    +

    Uses of Package
    com.spotify.voyager.jni.exception

    +
    +
    No usage of com.spotify.voyager.jni.exception
    + + + + +

    Copyright © 2024. All rights reserved.

    + + diff --git a/docs/java/com/spotify/voyager/jni/package-frame.html b/docs/java/com/spotify/voyager/jni/package-frame.html new file mode 100644 index 00000000..841732c7 --- /dev/null +++ b/docs/java/com/spotify/voyager/jni/package-frame.html @@ -0,0 +1,29 @@ + + + + + + +com.spotify.voyager.jni (voyager 2.1.0 API) + + + + + +

    com.spotify.voyager.jni

    + + + diff --git a/docs/java/com/spotify/voyager/jni/package-summary.html b/docs/java/com/spotify/voyager/jni/package-summary.html index a420875e..24eb3a2c 100644 --- a/docs/java/com/spotify/voyager/jni/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/package-summary.html @@ -1,52 +1,38 @@ - + - + - -com.spotify.voyager.jni (voyager 2.0.9 API) + - +com.spotify.voyager.jni (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Package com.spotify.voyager.jni

    +
    +
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    +
    +

    See: Description

    -
    - - -
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    -
    • - +
      @@ -113,27 +88,27 @@

      Package com.spotify.voyager.jni

      - + - + - + - + @@ -142,7 +117,7 @@

      Package com.spotify.voyager.jni

      Class Summary 
      Class
      IndexIndex
      A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
      Index.QueryResultsIndex.QueryResults
      A container for query results, returned by Index.
      StringIndexStringIndex
      Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
      StringIndex.QueryResultsStringIndex.QueryResults
      A wrapper class for nearest neighbor query results.
    • - +
      @@ -150,13 +125,13 @@

      Package com.spotify.voyager.jni

      - + - + @@ -165,20 +140,22 @@

      Package com.spotify.voyager.jni

      Enum Summary 
      Enum
      Index.SpaceTypeIndex.SpaceType
      The space, also known as distance metric, to use when searching.
      Index.StorageDataTypeIndex.StorageDataType
      The datatype used to use when storing vectors on disk.
    + + + +

    Package com.spotify.voyager.jni Description

    +
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    -
    - diff --git a/docs/java/com/spotify/voyager/jni/package-tree.html b/docs/java/com/spotify/voyager/jni/package-tree.html index 3e6d292c..a92b5a8f 100644 --- a/docs/java/com/spotify/voyager/jni/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/package-tree.html @@ -1,52 +1,38 @@ - + - + - -com.spotify.voyager.jni Class Hierarchy (voyager 2.0.9 API) + - +com.spotify.voyager.jni Class Hierarchy (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Hierarchy For Package com.spotify.voyager.jni

    Package Hierarchies: @@ -102,48 +78,41 @@

    Hierarchy For Package com.spotify.voyager.jni

    -

    Class Hierarchy

    -
    -

    Enum Hierarchy

    -
    -
    - diff --git a/docs/java/com/spotify/voyager/jni/package-use.html b/docs/java/com/spotify/voyager/jni/package-use.html index 0d826eb4..a5d65609 100644 --- a/docs/java/com/spotify/voyager/jni/package-use.html +++ b/docs/java/com/spotify/voyager/jni/package-use.html @@ -1,52 +1,38 @@ - + - + - -Uses of Package com.spotify.voyager.jni (voyager 2.0.9 API) + - +Uses of Package com.spotify.voyager.jni (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Uses of Package
    com.spotify.voyager.jni

    • - - +
      Packages that use com.spotify.voyager.jni 
      + - + @@ -116,51 +92,44 @@

      Uses of Packag

      Packages that use com.spotify.voyager.jni 
      Package Description
      com.spotify.voyager.jnicom.spotify.voyager.jni
      Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    • -
    • +
    • - - +
      Classes in com.spotify.voyager.jni used by com.spotify.voyager.jni 
      + - - + - - - - - - - - - - - - @@ -169,19 +138,16 @@

      Uses of Packag - - diff --git a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html index 30fd9d01..6827eb7a 100644 --- a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html @@ -1,58 +1,44 @@ - + - + - -JniLibExtractor (voyager 2.0.9 API) + - +JniLibExtractor (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -
      - +
      com.spotify.voyager.jni.utils

      Class JniLibExtractor

      @@ -142,56 +119,48 @@

      Class JniLibExtractor

      • -
          -
        • +
        • Constructor Summary

          -

      Classes in com.spotify.voyager.jni used by com.spotify.voyager.jni 
      ClassDescriptionClass and Description
      Index +Index
      A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
      Index.QueryResults +Index.QueryResults
      A container for query results, returned by Index.
      Index.SpaceType +Index.SpaceType
      The space, also known as distance metric, to use when searching.
      Index.StorageDataType +Index.StorageDataType
      The datatype used to use when storing vectors on disk.
      StringIndex +StringIndex
      Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
      StringIndex.QueryResults +StringIndex.QueryResults
      A wrapper class for nearest neighbor query results.
      +
      - - + - - +
      Constructors 
      ConstructorDescriptionConstructor and Description
      JniLibExtractor() JniLibExtractor() 
    - -
    -
    @@ -199,13 +168,12 @@

    Methods inherited from class java.lang.
  • -
      -
    • +
    • Constructor Detail

      - +
        @@ -216,44 +184,38 @@

        JniLibExtractor

    -
    -
      -
    • +
    • Method Detail

      - +
      • extractBinaries

        -
        public static String extractBinaries​(String libname)
        +
        public static String extractBinaries(String libname)
    -
  • - - diff --git a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html index cc6b836a..292f3d42 100644 --- a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html @@ -1,58 +1,44 @@ - + - + - -TinyJson (voyager 2.0.9 API) + - +TinyJson (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -
    - +
    com.spotify.voyager.jni.utils

    Class TinyJson

    @@ -207,13 +175,12 @@

    Methods inherited from class java.lang.
  • -
      -
    • +
    • Constructor Detail

      - +
        @@ -224,59 +191,53 @@

        TinyJson

    -
    -
    -
  • - - diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html index c0e94a31..2ae4f74d 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html @@ -1,54 +1,40 @@ - + - + - -Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.0.9 API) + - +Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Uses of Class
    com.spotify.voyager.jni.utils.JniLibExtractor

    No usage of com.spotify.voyager.jni.utils.JniLibExtractor
    -
    - diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html index 1008ee1e..7a29bff5 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html @@ -1,54 +1,40 @@ - + - + - -Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.0.9 API) + - +Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Uses of Class
    com.spotify.voyager.jni.utils.TinyJson

    No usage of com.spotify.voyager.jni.utils.TinyJson
    -
    - diff --git a/docs/java/com/spotify/voyager/jni/utils/package-frame.html b/docs/java/com/spotify/voyager/jni/utils/package-frame.html new file mode 100644 index 00000000..e612463c --- /dev/null +++ b/docs/java/com/spotify/voyager/jni/utils/package-frame.html @@ -0,0 +1,22 @@ + + + + + + +com.spotify.voyager.jni.utils (voyager 2.1.0 API) + + + + + +

    com.spotify.voyager.jni.utils

    +
    +

    Classes

    + +
    + + diff --git a/docs/java/com/spotify/voyager/jni/utils/package-summary.html b/docs/java/com/spotify/voyager/jni/utils/package-summary.html index 1a95c40c..57556547 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-summary.html @@ -1,52 +1,38 @@ - + - + - -com.spotify.voyager.jni.utils (voyager 2.0.9 API) + - +com.spotify.voyager.jni.utils (voyager 2.1.0 API) + - - - - - - - + -
    - -
    -

    Package com.spotify.voyager.jni.utils

    • - +
      @@ -108,11 +84,11 @@

      Package com.spotify.voyager.jni.utils

      - + - + or other required elements. - thead: [ 1, "
      Class Summary 
      Class
      JniLibExtractorJniLibExtractor  
      TinyJsonTinyJson
      A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
      @@ -123,19 +99,16 @@

      Package com.spotify.voyager.jni.utils

      - - diff --git a/docs/java/com/spotify/voyager/jni/utils/package-tree.html b/docs/java/com/spotify/voyager/jni/utils/package-tree.html index d3de1d94..3de2b956 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-tree.html @@ -1,52 +1,38 @@ - + - + - -com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.0.9 API) + - +com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -

      Hierarchy For Package com.spotify.voyager.jni.utils

      Package Hierarchies: @@ -102,31 +78,26 @@

      Hierarchy For Package com.spotify.voyager.jni.utils

      -

      Class Hierarchy

      -
      -
      - diff --git a/docs/java/com/spotify/voyager/jni/utils/package-use.html b/docs/java/com/spotify/voyager/jni/utils/package-use.html index a47b1e2d..e263c973 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-use.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-use.html @@ -1,52 +1,38 @@ - + - + - -Uses of Package com.spotify.voyager.jni.utils (voyager 2.0.9 API) + - +Uses of Package com.spotify.voyager.jni.utils (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -

      Uses of Package
      com.spotify.voyager.jni.utils

      No usage of com.spotify.voyager.jni.utils
      -
      - diff --git a/docs/java/com/spotify/voyager/package-frame.html b/docs/java/com/spotify/voyager/package-frame.html new file mode 100644 index 00000000..0c15215c --- /dev/null +++ b/docs/java/com/spotify/voyager/package-frame.html @@ -0,0 +1,15 @@ + + + + + + +com.spotify.voyager (voyager 2.1.0 API) + + + + + +

      com.spotify.voyager

      + + diff --git a/docs/java/com/spotify/voyager/package-summary.html b/docs/java/com/spotify/voyager/package-summary.html index 3393d377..af796a81 100644 --- a/docs/java/com/spotify/voyager/package-summary.html +++ b/docs/java/com/spotify/voyager/package-summary.html @@ -1,52 +1,38 @@ - + - + - -com.spotify.voyager (voyager 2.0.9 API) + - +com.spotify.voyager (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -

      Package com.spotify.voyager

      +
      +
      Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector + data.
      - +
      +

      Package com.spotify.voyager Description

      Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector - data. For most use cases, Index will be the primary interface to + data. For most use cases, Index will be the primary interface to Voyager's functionality.
      @@ -125,21 +106,17 @@ 

      Package com.spotify.voyager

      // Serialize this index to use it again later: index.saveIndex("my_tiny_index.voy");
      -
      -
      - diff --git a/docs/java/com/spotify/voyager/package-tree.html b/docs/java/com/spotify/voyager/package-tree.html index 632020bf..3673a565 100644 --- a/docs/java/com/spotify/voyager/package-tree.html +++ b/docs/java/com/spotify/voyager/package-tree.html @@ -1,52 +1,38 @@ - + - + - -com.spotify.voyager Class Hierarchy (voyager 2.0.9 API) + - +com.spotify.voyager Class Hierarchy (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -

      Hierarchy For Package com.spotify.voyager

      Package Hierarchies: @@ -101,19 +77,16 @@

      Hierarchy For Package com.spotify.voyager

    • All Packages
    • -
      - diff --git a/docs/java/com/spotify/voyager/package-use.html b/docs/java/com/spotify/voyager/package-use.html index b8e9a581..fd0db02c 100644 --- a/docs/java/com/spotify/voyager/package-use.html +++ b/docs/java/com/spotify/voyager/package-use.html @@ -1,52 +1,38 @@ - + - + - -Uses of Package com.spotify.voyager (voyager 2.0.9 API) + - +Uses of Package com.spotify.voyager (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -

      Uses of Package
      com.spotify.voyager

      No usage of com.spotify.voyager
      -
      - diff --git a/docs/java/constant-values.html b/docs/java/constant-values.html index 66cb4e69..32f847ff 100644 --- a/docs/java/constant-values.html +++ b/docs/java/constant-values.html @@ -1,52 +1,38 @@ - + - + - -Constant Field Values (voyager 2.0.9 API) + - +Constant Field Values (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -

      Constant Field Values

      -

      Contents

      -
      -
      - diff --git a/docs/java/copy.svg b/docs/java/copy.svg deleted file mode 100644 index 7c46ab15..00000000 --- a/docs/java/copy.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - diff --git a/docs/java/deprecated-list.html b/docs/java/deprecated-list.html index 75b9dce3..fb03644c 100644 --- a/docs/java/deprecated-list.html +++ b/docs/java/deprecated-list.html @@ -1,52 +1,38 @@ - + - + - -Deprecated List (voyager 2.0.9 API) + - +Deprecated List (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -

      Deprecated API

      Contents

      -
      - diff --git a/docs/java/element-list b/docs/java/element-list index 69afde0b..46ced86b 100644 --- a/docs/java/element-list +++ b/docs/java/element-list @@ -1,3 +1,4 @@ com.spotify.voyager com.spotify.voyager.jni +com.spotify.voyager.jni.exception com.spotify.voyager.jni.utils diff --git a/docs/java/help-doc.html b/docs/java/help-doc.html index 5b04da64..2f8a1ebf 100644 --- a/docs/java/help-doc.html +++ b/docs/java/help-doc.html @@ -1,52 +1,38 @@ - + - + - -API Help (voyager 2.0.9 API) + - +API Help (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -

      How This API Document Is Organized

      This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
      @@ -101,148 +77,118 @@

      How This API Document Is Organized

      • -

        Overview

        -

        The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

        -
        +

        The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

      • -

        Package

        -

        Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:

        +

        Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

          -
        • Interfaces
        • +
        • Interfaces (italic)
        • Classes
        • Enums
        • Exceptions
        • Errors
        • Annotation Types
        -
      • -
        -

        Class or Interface

        +

        Class/Interface

        Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

          -
        • Class Inheritance Diagram
        • +
        • Class inheritance diagram
        • Direct Subclasses
        • All Known Subinterfaces
        • All Known Implementing Classes
        • -
        • Class or Interface Declaration
        • -
        • Class or Interface Description
        • +
        • Class/interface declaration
        • +
        • Class/interface description
        -
        • Nested Class Summary
        • Field Summary
        • -
        • Property Summary
        • Constructor Summary
        • Method Summary
        -
        • Field Detail
        • -
        • Property Detail
        • Constructor Detail
        • Method Detail

        Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

        -
      • -

        Annotation Type

        Each annotation type has its own separate page with the following sections:

          -
        • Annotation Type Declaration
        • -
        • Annotation Type Description
        • +
        • Annotation Type declaration
        • +
        • Annotation Type description
        • Required Element Summary
        • Optional Element Summary
        • Element Detail
        -
      • -

        Enum

        Each enum has its own separate page with the following sections:

          -
        • Enum Declaration
        • -
        • Enum Description
        • +
        • Enum declaration
        • +
        • Enum description
        • Enum Constant Summary
        • Enum Constant Detail
        -
      • -

        Use

        -

        Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

        -
        +

        Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

      • -

        Tree (Class Hierarchy)

        -

        There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

        +

        There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

        • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
        • -
        • When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
        • +
        • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
        -
      • -

        Deprecated API

        The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

        -
      • -

        Index

        -

        The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.

        -
        +

        The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

      • -
        -

        All Classes

        -

        The All Classes link shows all classes and interfaces except non-static nested types.

        -
        +

        Prev/Next

        +

        These links take you to the next or previous class, interface, package, or related page.

        +
      • +
      • +

        Frames/No Frames

        +

        These links show and hide the HTML frames. All pages are available with or without frames.

        +
      • +
      • +

        All Classes

        +

        The All Classes link shows all classes and interfaces except non-static nested types.

      • -

        Serialized Form

        Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

        -
      • -

        Constant Field Values

        The Constant Field Values page lists the static final fields and their values.

        -
        -
      • -
      • -
        -

        Search

        -

        You can search for definitions of modules, packages, types, fields, methods and other terms defined in the API, using some or all of the name. "Camel-case" abbreviations are supported: for example, "InpStr" will find "InputStream" and "InputStreamReader".

        -
      -
      -This help file applies to API documentation generated by the standard doclet.
      -
      - diff --git a/docs/java/index-all.html b/docs/java/index-all.html index 5fd89dc9..f46f9837 100644 --- a/docs/java/index-all.html +++ b/docs/java/index-all.html @@ -1,52 +1,38 @@ - + - + - -Index (voyager 2.0.9 API) + - +Index (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -
      -
      A C D E F G I J L M Q R S T U V W 
      All Classes All Packages +
      A C D E F G I J L M Q R S T U V W 

      A

      -
      addItem(float[]) - Method in class com.spotify.voyager.jni.Index
      +
      addItem(float[]) - Method in class com.spotify.voyager.jni.Index
      Add an item (a vector) to this Index.
      -
      addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
      +
      addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
      Add an item (a vector) to this Index with the provided identifier.
      -
      addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
      +
      addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
       
      -
      addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
      +
      addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
       
      -
      addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
      +
      addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
      Add multiple items (vectors) to this Index.
      -
      addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
      +
      addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
      -
      Add multiple items (vectors) to this Index.
      +
      Add multiple items (vectors) to this Index with the provided identifiers.
      -
      addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
      +
      addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
       
      -
      asBytes() - Method in class com.spotify.voyager.jni.Index
      +
      asBytes() - Method in class com.spotify.voyager.jni.Index
      Returns the contents of this index as an array of bytes.
      - +

      C

      -
      close() - Method in class com.spotify.voyager.jni.Index
      +
      close() - Method in class com.spotify.voyager.jni.Index
      Close this Index and release any memory held by it.
      -
      close() - Method in class com.spotify.voyager.jni.StringIndex
      +
      close() - Method in class com.spotify.voyager.jni.StringIndex
       
      com.spotify.voyager - package com.spotify.voyager
      @@ -146,14 +122,12 @@

      C

      Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
      +
      com.spotify.voyager.jni.exception - package com.spotify.voyager.jni.exception
      +
       
      com.spotify.voyager.jni.utils - package com.spotify.voyager.jni.utils
       
      -
      Cosine - com.spotify.voyager.jni.Index.SpaceType
      -
      -
      Cosine distance; i.e. normalized dot product.
      -
      - +

      D

      @@ -163,117 +137,101 @@

      D

      A list of distances from each item ID to the query vector for this query.
      - +

      E

      -
      E4M3 - com.spotify.voyager.jni.Index.StorageDataType
      -
      -
      A custom 8-bit floating point data type with range [-448, 448] and variable precision.
      -
      -
      Euclidean - com.spotify.voyager.jni.Index.SpaceType
      -
      -
      Euclidean distance, also known as L2 distance.
      -
      -
      extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
      +
      extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
       
      - +

      F

      -
      finalize() - Method in class com.spotify.voyager.jni.Index
      +
      finalize() - Method in class com.spotify.voyager.jni.Index
       
      -
      Float32 - com.spotify.voyager.jni.Index.StorageDataType
      -
      -
      A 32-bit floating point ("Float") data type.
      -
      -
      Float8 - com.spotify.voyager.jni.Index.StorageDataType
      -
      -
      An 8-bit floating point data type that expects all values to be on [-1, 1].
      -
      - +

      G

      -
      getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
      +
      getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
       
      -
      getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
      +
      getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
      Retrieve the list of distances between query vectors and item vectors for the results of this query.
      -
      getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
      +
      getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
       
      -
      getEf() - Method in class com.spotify.voyager.jni.Index
      +
      getEf() - Method in class com.spotify.voyager.jni.Index
      -
      Get the default EF ("query search depth") that will be uses when Index.query(float[], int) is called.
      +
      Get the default EF ("query search depth") that will be uses when Index.query(float[], int) is called.
      -
      getEfConstruction() - Method in class com.spotify.voyager.jni.Index
      +
      getEfConstruction() - Method in class com.spotify.voyager.jni.Index
      Get the EF Construction value used when adding new elements to this Index.
      -
      getIDs() - Method in class com.spotify.voyager.jni.Index
      +
      getIDs() - Method in class com.spotify.voyager.jni.Index
      Get the list of identifiers currently stored by this index.
      -
      getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
      +
      getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
      Retrieve the list of item IDs ("labels") returned by this query.
      -
      getM() - Method in class com.spotify.voyager.jni.Index
      +
      getM() - Method in class com.spotify.voyager.jni.Index
      Get the M value used when adding new elements to this Index.
      -
      getMaxElements() - Method in class com.spotify.voyager.jni.Index
      +
      getMaxElements() - Method in class com.spotify.voyager.jni.Index
      Get the maximum number of elements currently storable by this Index.
      -
      getMaxElements() - Method in class com.spotify.voyager.jni.StringIndex
      +
      getMaxElements() - Method in class com.spotify.voyager.jni.StringIndex
      Get the maximum number of elements currently storable by this Index.
      -
      getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
      +
      getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
       
      -
      getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
      +
      getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
       
      -
      getNumDimensions() - Method in class com.spotify.voyager.jni.Index
      +
      getNumDimensions() - Method in class com.spotify.voyager.jni.Index
      Get the number of dimensions used in this Index.
      -
      getNumElements() - Method in class com.spotify.voyager.jni.Index
      +
      getNumElements() - Method in class com.spotify.voyager.jni.Index
      Get the number of elements currently in this Index.
      -
      getNumElements() - Method in class com.spotify.voyager.jni.StringIndex
      +
      getNumElements() - Method in class com.spotify.voyager.jni.StringIndex
       
      -
      getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
      +
      getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
       
      -
      getNumThreads() - Method in class com.spotify.voyager.jni.Index
      +
      getNumThreads() - Method in class com.spotify.voyager.jni.Index
      Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
      -
      getSpace() - Method in class com.spotify.voyager.jni.Index
      +
      getSpace() - Method in class com.spotify.voyager.jni.Index
      Get the Index.SpaceType that this Index uses to store and compare vectors.
      -
      getVector(long) - Method in class com.spotify.voyager.jni.Index
      +
      getVector(long) - Method in class com.spotify.voyager.jni.Index
      Get the vector for the provided identifier.
      -
      getVector(String) - Method in class com.spotify.voyager.jni.StringIndex
      +
      getVector(String) - Method in class com.spotify.voyager.jni.StringIndex
       
      -
      getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
      +
      getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
      Get the vectors for a provided array of identifiers.
      - +

      I

      @@ -283,12 +241,12 @@

      I

      A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
      -
      Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
      +
      Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
      Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
      -
      Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
      +
      Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
      Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
      @@ -305,22 +263,18 @@

      I

      The datatype used to use when storing vectors on disk.
      -
      InnerProduct - com.spotify.voyager.jni.Index.SpaceType
      -
      -
      Inner (dot) product.
      -
      - +

      J

      JniLibExtractor - Class in com.spotify.voyager.jni.utils
       
      -
      JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
      +
      JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
       
      - +

      L

      @@ -329,134 +283,146 @@

      L

      A list of item IDs ("labels").
      -
      load(InputStream) - Static method in class com.spotify.voyager.jni.Index
      +
      load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
      +
      +
      Load a Voyager index file and create a new Index initialized with the data in that + file.
      +
      +
      load(String) - Static method in class com.spotify.voyager.jni.Index
      +
      +
      Load a Voyager index file and create a new Index initialized with the data in that + file.
      +
      +
      load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
      -
      load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
      +
      load(InputStream) - Static method in class com.spotify.voyager.jni.Index
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
      -
      load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
      +
      load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
      -
      Load a previously constructed index from the provided input stream.
      +
      Load a previously constructed index from the provided file location.
      -
      load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
      +
      load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
      Load a previously constructed index from the provided input streams.
      -
      load(String) - Static method in class com.spotify.voyager.jni.Index
      -
      -
      Load a Voyager index file and create a new Index initialized with the data in that - file.
      -
      -
      load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
      -
      -
      Load a Voyager index file and create a new Index initialized with the data in that - file.
      -
      -
      load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
      +
      load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
      Load a previously constructed index from the provided file location.
      -
      load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
      +
      load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
      -
      Load a previously constructed index from the provided file location.
      +
      Load a previously constructed index from the provided input stream.
      - +

      M

      -
      markDeleted(long) - Method in class com.spotify.voyager.jni.Index
      +
      markDeleted(long) - Method in class com.spotify.voyager.jni.Index
      Mark an element of the index as deleted.
      - +

      Q

      -
      query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
      -
      -
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      -
      query(float[][], int, int, int) - Method in class com.spotify.voyager.jni.StringIndex
      +
      query(float[], int) - Method in class com.spotify.voyager.jni.Index
      -
      Query for multiple target vectors in parallel.
      +
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
      +
      query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      query(float[], int) - Method in class com.spotify.voyager.jni.Index
      +
      query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
      +
      query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
      +
      +
      Query this Index for approximate nearest neighbors of multiple query vectors.
      +
      +
      query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
      Find the nearest neighbors of the provided embedding.
      -
      query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
      +
      query(float[][], int, int, int) - Method in class com.spotify.voyager.jni.StringIndex
      -
      Query this Index for approximate nearest neighbors of a single query vector.
      +
      Query for multiple target vectors in parallel.
      -
      QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
      +
      QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
      Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
      -
      QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
      +
      QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
       
      - +

      R

      -
      readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
      +
      readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
       
      -
      resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
      +
      RecallException - Exception in com.spotify.voyager.jni.exception
      +
      +
      An exception indicating that the desired recall of a query cannot be achieved
      +
      +
      RecallException(String) - Constructor for exception com.spotify.voyager.jni.exception.RecallException
      +
      +
      Constructs a new RecallException with the specified detail message.
      +
      +
      RecallException(String, Throwable) - Constructor for exception com.spotify.voyager.jni.exception.RecallException
      +
      +
      Constructs a new RecallException with the specified detail message and cause.
      +
      +
      resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
      Change the maximum number of elements currently storable by this Index.
      -
      resizeIndex(long) - Method in class com.spotify.voyager.jni.StringIndex
      +
      resizeIndex(long) - Method in class com.spotify.voyager.jni.StringIndex
      Change the maximum number of elements currently storable by this Index.
      - +

      S

      -
      saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
      -
      -
      Save this Index to the provided output stream.
      -
      -
      saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
      +
      saveIndex(String) - Method in class com.spotify.voyager.jni.Index
      -
      Save the underlying HNSW index and JSON encoded names list to the provided output streams
      +
      Save this Index to a file at the provided filename.
      -
      saveIndex(String) - Method in class com.spotify.voyager.jni.Index
      +
      saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
      -
      Save this Index to a file at the provided filename.
      +
      Save this Index to the provided output stream.
      -
      saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
      +
      saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
      Save the underlying index and JSON encoded name list to the provided output directory
      -
      saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
      +
      saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
       
      -
      setEf(long) - Method in class com.spotify.voyager.jni.Index
      +
      saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
      -
      Set the default EF ("query search depth") to use when Index.query(float[], int) is called.
      +
      Save the underlying HNSW index and JSON encoded names list to the provided output streams
      -
      setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
      +
      setEf(long) - Method in class com.spotify.voyager.jni.Index
      +
      +
      Set the default EF ("query search depth") to use when Index.query(float[], int) is called.
      +
      +
      setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
      Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
      @@ -466,11 +432,11 @@

      S

      Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
      -
      StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
      +
      StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
      Instantiate a new empty index with the specified space type and dimensionality
      -
      StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
      +
      StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
      Instantiate an empty index with the specified index parameters
      @@ -479,7 +445,7 @@

      S

      A wrapper class for nearest neighbor query results.
      - +

      T

      @@ -489,69 +455,66 @@

      T

      A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
      -
      TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
      +
      TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
       
      -
      toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
      +
      toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
       
      -
      toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
      +
      toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
       
      - +

      U

      -
      unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
      +
      unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
      Un-mark an element of the index as deleted, making it available again.
      - +

      V

      -
      valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
      +
      valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
      Returns the enum constant of this type with the specified name.
      -
      valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
      +
      valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
      Returns the enum constant of this type with the specified name.
      -
      values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
      +
      values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
      Returns an array containing the constants of this enum type, in the order they are declared.
      -
      values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
      +
      values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
      Returns an array containing the constants of this enum type, in the order they are declared.
      - +

      W

      -
      writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
      +
      writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
       
      -A C D E F G I J L M Q R S T U V W 
      All Classes All Packages
      -
      - diff --git a/docs/java/index.html b/docs/java/index.html index dc66bcd5..3e657bb7 100644 --- a/docs/java/index.html +++ b/docs/java/index.html @@ -1,177 +1,76 @@ - + - + - -Overview (voyager 2.0.9 API) + - - - - - - - - - - - - - - -
      - -
      -
      -
      -

      voyager 2.0.9 API

      -
      -
      - - - - - - - - - - - - - - - - - - - - -
      Packages 
      PackageDescription
      com.spotify.voyager -
      Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector - data.
      -
      com.spotify.voyager.jni -
      Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
      -
      com.spotify.voyager.jni.utils 
      -
      -
      -
      -
      ", "
      " ], - col: [ 2, "", "
      " ], - tr: [ 2, "", "
      " ], - td: [ 3, "", "
      " ], - - _default: [ 0, "", "" ] -}; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "" ]; -} - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - attached = isAttached( elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( attached ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - -// Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); - } - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); - } - - // Return non-false to allow normal event-path propagation - return true; - }, - - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - return result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - delegateType: delegateType - }; -} ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); - events = pdataOld.events; - - if ( events ) { - dataPriv.remove( dest, "handle events" ); - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = flat( args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html; - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = isAttached( elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px"; - tr.style.height = "1px"; - trChild.style.height = "9px"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !isAttached( elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; - -// Return a vendor-prefixed property or undefined -function vendorPropName( name ) { - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property -function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; - } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( _elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. - if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - - // Make sure the element is visible & connected - elem.getClientRects().length ) { - - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( _i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = { guid: Date.now() }; - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - if ( a == null ) { - return ""; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); - } - } - match = responseHeaders[ key.toLowerCase() + " " ]; - } - return match == null ? null : match.join( ", " ); - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { - s.converters[ "text script" ] = function() {}; - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( _i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - - -jQuery._evalUrl = function( url, options, doc ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); - } - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( " + + + + +

       

      + + diff --git a/docs/java/overview-summary.html b/docs/java/overview-summary.html index 929e37b5..e07c0f5b 100644 --- a/docs/java/overview-summary.html +++ b/docs/java/overview-summary.html @@ -1,23 +1,157 @@ - + - + - -voyager 2.0.9 API + - - - +Overview (voyager 2.1.0 API) + + -
      + -

      index.html

      -
      + +
      + + + + + + + +
      + + +
      +

      voyager 2.1.0 API

      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Packages 
      PackageDescription
      com.spotify.voyager +
      Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector + data.
      +
      com.spotify.voyager.jni +
      Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
      +
      com.spotify.voyager.jni.exception 
      com.spotify.voyager.jni.utils 
      +
      + +
      + + + + + + + +
      + + +

      Copyright © 2024. All rights reserved.

      diff --git a/docs/java/overview-tree.html b/docs/java/overview-tree.html index 6d455947..430eeec6 100644 --- a/docs/java/overview-tree.html +++ b/docs/java/overview-tree.html @@ -1,52 +1,38 @@ - + - + - -Class Hierarchy (voyager 2.0.9 API) + - +Class Hierarchy (voyager 2.1.0 API) + - - - - - - - + -
      - -
      -
      -

      Class Hierarchy

      -
      -

      Enum Hierarchy

      -
      -
      - diff --git a/docs/java/apidocs/element-list b/docs/java/package-list similarity index 100% rename from docs/java/apidocs/element-list rename to docs/java/package-list diff --git a/docs/java/package-search-index.js b/docs/java/package-search-index.js index 41002eac..87e7f704 100644 --- a/docs/java/package-search-index.js +++ b/docs/java/package-search-index.js @@ -1 +1 @@ -packageSearchIndex = [{"l":"All Packages","url":"allpackages-index.html"},{"l":"com.spotify.voyager"},{"l":"com.spotify.voyager.jni"},{"l":"com.spotify.voyager.jni.utils"}] \ No newline at end of file +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.spotify.voyager"},{"l":"com.spotify.voyager.jni"},{"l":"com.spotify.voyager.jni.exception"},{"l":"com.spotify.voyager.jni.utils"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/java/package-search-index.zip b/docs/java/package-search-index.zip deleted file mode 100644 index b9df3b2cbef0559df64fbc31f257cb9d047f0cbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 249 zcmWIWW@Zs#;Nak3;HhJbWIzIvKz2c5a&}^Rs%~*=Vo`F2Zf0IeYK2}_aeiL+y0BA$ zn}UkYoDAgf@Hyw_R1du50U_Jfj)5s+W}^z?+@p;|X8!P@v7zfjGdMkx7IB d;W}hFkn2zZPPYblv$BDdG6JDHke&n92LOrnc6a#?2AmP!?*K(O3p^r= zfwTu0yPeFo12TF&T^vI^j=w#x$i?I+((tf;UXnmgbH|3oY>pC!)f}(GR!16S-u+#{ ze6YEqRkW=8vGl=5qArKM<9}TC-}iEvB{zdaTcX5$wyRTK&ALRXUCGx5b?-VBQkUm|IuXOmYJrBRJgj{Vx zMbNnqUkncy+qa2-mWYc>swkcIuvGK#>(0d)B7)5f`@$Ei28nH~0h*~=;u=wsl30>z zm0Xkxq!^403@vmGjdTsnLJUl-Obo4zO|=aStPBhe<(7X!(U6;;l9^VCTf=69^L{`L N44$rjF6*2UngDu&PXPb` diff --git a/docs/java/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/docs/java/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png deleted file mode 100644 index a90afb8bf8028404d206114965669b023dcb85ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq?nSt-Ch3w7g=q17Rci)@Q5r1 z(jH*!b~4)z#PD=+46!(!TrvH)L6@80)r*_cdCvDr%)6ghVL16=s@mbz7H!uRdGeDa z?kzLg)16i!f8fKx84s0>4hES%`s&m5HI1v5B^Uft7(lid2moiiX_$l+3hB+!{pPkNg5^ OVDNPHb6Mw<&;$T*0!_~V diff --git a/docs/java/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/docs/java/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png deleted file mode 100644 index dbe091f6dc036fc1dc11b005738e951e27a43f7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 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�_j6WK+Gj+xJRxVvl#lh7y-4uY);t)n47k4ot z9YsU`HVk7fg4;r{;)FHk7ZHyZJ+W|$aKwj=g&_$VCVFn5%XzSA`|z}+4ItZ|`hB}R z>h-6Be`d>nmv8;kQHJg!HMr^cCGG=T5;3HhZ_JRq0_4a3TsY7Pz{V+}z>;!R^U4*c zJ>wRI59B-)92Vi?b&EWvH(`<(G5A?W)z>EuDMG@VENAb7aHa`I#tKw{0uUc3(#J8& z*_S%A_ZxCIY385{%qN-b1K)TWmCjUA4nWKx_ZnKLSvEf0($&_0@DS~ zN8JOXJXXcaFm^OCYrz(R7N5DQkXKGnnt}yzfw^8s%=A?7hxza;ylJ;XQ&XtC`pM%b z6$5Ff0{(ALcSlTKvIbr@mR`0Z)*iM`2EfO|E5OMk$jQsE!^mat*drqV diff --git a/docs/java/script-dir/images/ui-icons_2e83ff_256x240.png b/docs/java/script-dir/images/ui-icons_2e83ff_256x240.png deleted file mode 100644 index 1f5f49756ca64bd20a1048bd7a3a584457d4bf00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4549 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 diff --git a/docs/java/script-dir/images/ui-icons_888888_256x240.png b/docs/java/script-dir/images/ui-icons_888888_256x240.png deleted file mode 100644 index ee5e33f27235d1b5cf0259f63f3894a6be33c679..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6999 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 diff --git a/docs/java/script-dir/images/ui-icons_cd0a0a_256x240.png b/docs/java/script-dir/images/ui-icons_cd0a0a_256x240.png deleted file mode 100644 index 7e8ebc180a2d2a74739059799407b8b7b57a9092..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4549 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 Mq_Ix57W&cu0AIB!=l}o! diff --git a/docs/java/script-dir/jquery-3.5.1.min.js b/docs/java/script-dir/jquery-3.5.1.min.js deleted file mode 100644 index b0614034..00000000 --- a/docs/java/script-dir/jquery-3.5.1.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
      "],col:[2,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
      ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.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],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0 0 || window.navigator.userAgent.indexOf('Trident/') > 0 || - window.navigator.userAgent.indexOf('Edge/') > 0) { - createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js'); - } - createElem(doc, tag, 'search.js'); - - $.get(pathtoroot + "module-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("module-search-index.json").async("text").then(function(content){ - moduleSearchIndex = JSON.parse(content); - }); - }); - }); - }); - $.get(pathtoroot + "package-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("package-search-index.json").async("text").then(function(content){ - packageSearchIndex = JSON.parse(content); - }); - }); - }); - }); - $.get(pathtoroot + "type-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("type-search-index.json").async("text").then(function(content){ - typeSearchIndex = JSON.parse(content); - }); - }); - }); - }); - $.get(pathtoroot + "member-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("member-search-index.json").async("text").then(function(content){ - memberSearchIndex = JSON.parse(content); - }); - }); - }); - }); - $.get(pathtoroot + "tag-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) { - JSZip.loadAsync(data).then(function(zip){ - zip.file("tag-search-index.json").async("text").then(function(content){ - tagSearchIndex = JSON.parse(content); - }); - }); - }); - }); - if (!moduleSearchIndex) { - createElem(doc, tag, 'module-search-index.js'); - } - if (!packageSearchIndex) { - createElem(doc, tag, 'package-search-index.js'); - } - if (!typeSearchIndex) { - createElem(doc, tag, 'type-search-index.js'); - } - if (!memberSearchIndex) { - createElem(doc, tag, 'member-search-index.js'); - } - if (!tagSearchIndex) { - createElem(doc, tag, 'tag-search-index.js'); - } - $(window).resize(function() { - $('.navPadding').css('padding-top', $('.fixedNav').css("height")); - }); -} - -function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); -} - -function show(type) { +function show(type) +{ count = 0; - for (var key in data) { + for (var key in methods) { var row = document.getElementById(key); - if ((data[key] & type) !== 0) { + if ((methods[key] & type) != 0) { row.style.display = ''; row.className = (count++ % 2) ? rowColor : altColor; } @@ -128,7 +13,8 @@ function show(type) { updateTabs(type); } -function updateTabs(type) { +function updateTabs(type) +{ for (var value in tabs) { var sNode = document.getElementById(tabs[value][0]); var spanNode = sNode.firstChild; @@ -142,8 +28,3 @@ function updateTabs(type) { } } } - -function updateModuleFrame(pFrame, cFrame) { - top.packageFrame.location = pFrame; - top.classFrame.location = cFrame; -} diff --git a/docs/java/search-page.js b/docs/java/search-page.js deleted file mode 100644 index 540c90f5..00000000 --- a/docs/java/search-page.js +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -"use strict"; -$(function() { - var copy = $("#page-search-copy"); - var expand = $("#page-search-expand"); - var searchLink = $("span#page-search-link"); - var redirect = $("input#search-redirect"); - function setSearchUrlTemplate() { - var href = document.location.href.split(/[#?]/)[0]; - href += "?q=" + "%s"; - if (redirect.is(":checked")) { - href += "&r=1"; - } - searchLink.html(href); - copy[0].onmouseenter(); - } - function copyLink(e) { - copyToClipboard(this.previousSibling.innerText); - switchCopyLabel(this, this.lastElementChild); - } - copy.click(copyLink); - copy[0].onmouseenter = function() {}; - redirect.click(setSearchUrlTemplate); - setSearchUrlTemplate(); - copy.prop("disabled", false); - redirect.prop("disabled", false); - expand.click(function (e) { - var searchInfo = $("div.page-search-info"); - if(this.parentElement.hasAttribute("open")) { - searchInfo.attr("style", "border-width: 0;"); - } else { - searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); - } - }); -}); -$(window).on("load", function() { - var input = $("#page-search-input"); - var reset = $("#page-search-reset"); - var notify = $("#page-search-notify"); - var resultSection = $("div#result-section"); - var resultContainer = $("div#result-container"); - var searchTerm = ""; - var activeTab = ""; - var fixedTab = false; - var visibleTabs = []; - var feelingLucky = false; - function renderResults(result) { - if (!result.length) { - notify.html(messages.noResult); - } else if (result.length === 1) { - notify.html(messages.oneResult); - } else { - notify.html(messages.manyResults.replace("{0}", result.length)); - } - resultContainer.empty(); - var r = { - "types": [], - "members": [], - "packages": [], - "modules": [], - "searchTags": [] - }; - for (var i in result) { - var item = result[i]; - var arr = r[item.category]; - arr.push(item); - } - if (!activeTab || r[activeTab].length === 0 || !fixedTab) { - Object.keys(r).reduce(function(prev, curr) { - if (r[curr].length > 0 && r[curr][0].score > prev) { - activeTab = curr; - return r[curr][0].score; - } - return prev; - }, 0); - } - if (feelingLucky && activeTab) { - notify.html(messages.redirecting) - var firstItem = r[activeTab][0]; - window.location = getURL(firstItem.indexItem, firstItem.category); - return; - } - if (result.length > 20) { - if (searchTerm[searchTerm.length - 1] === ".") { - if (activeTab === "types" && r["members"].length > r["types"].length) { - activeTab = "members"; - } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { - activeTab = "types"; - } - } - } - var categoryCount = Object.keys(r).reduce(function(prev, curr) { - return prev + (r[curr].length > 0 ? 1 : 0); - }, 0); - visibleTabs = []; - var tabContainer = $("
      ").appendTo(resultContainer); - for (var key in r) { - var id = "#result-tab-" + key.replace("searchTags", "search_tags"); - if (r[key].length) { - var count = r[key].length >= 1000 ? "999+" : r[key].length; - if (result.length > 20 && categoryCount > 1) { - var button = $("").appendTo(tabContainer); - button.click(key, function(e) { - fixedTab = true; - renderResult(e.data, $(this)); - }); - visibleTabs.push(key); - } else { - $("" + categories[key] - + " (" + count + ")").appendTo(tabContainer); - renderTable(key, r[key]).appendTo(resultContainer); - tabContainer = $("
      ").appendTo(resultContainer); - - } - } - } - if (activeTab && result.length > 20 && categoryCount > 1) { - $("button#result-tab-" + activeTab).addClass("active-table-tab"); - renderTable(activeTab, r[activeTab]).appendTo(resultContainer); - } - resultSection.show(); - function renderResult(category, button) { - activeTab = category; - setSearchUrl(); - resultContainer.find("div.summary-table").remove(); - renderTable(activeTab, r[activeTab]).appendTo(resultContainer); - button.siblings().removeClass("active-table-tab"); - button.addClass("active-table-tab"); - } - } - function selectTab(category) { - $("button#result-tab-" + category).click(); - } - function renderTable(category, items) { - var table = $("
      ") - .addClass(category === "modules" - ? "one-column-search-results" - : "two-column-search-results"); - var col1, col2; - if (category === "modules") { - col1 = "Module"; - } else if (category === "packages") { - col1 = "Module"; - col2 = "Package"; - } else if (category === "types") { - col1 = "Package"; - col2 = "Class" - } else if (category === "members") { - col1 = "Class"; - col2 = "Member"; - } else if (category === "searchTags") { - col1 = "Location"; - col2 = "Name"; - } - $("
      " + col1 + "
      ").appendTo(table); - if (category !== "modules") { - $("
      " + col2 + "
      ").appendTo(table); - } - $.each(items, function(index, item) { - var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; - renderItem(item, table, rowColor); - }); - return table; - } - function renderItem(item, table, rowColor) { - var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); - var link = $("") - .attr("href", getURL(item.indexItem, item.category)) - .attr("tabindex", "0") - .addClass("search-result-link") - .html(label); - var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); - if (item.category === "searchTags") { - container = item.indexItem.h || ""; - } - if (item.category !== "modules") { - $("
      ").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); - } - $("
      ").html(link).addClass("col-last").addClass(rowColor).appendTo(table); - } - var timeout; - function schedulePageSearch() { - if (timeout) { - clearTimeout(timeout); - } - timeout = setTimeout(function () { - doPageSearch() - }, 100); - } - function doPageSearch() { - setSearchUrl(); - var term = searchTerm = input.val().trim(); - if (term === "") { - notify.html(messages.enterTerm); - activeTab = ""; - fixedTab = false; - resultContainer.empty(); - resultSection.hide(); - } else { - notify.html(messages.searching); - doSearch({ term: term, maxResults: 1200 }, renderResults); - } - } - function setSearchUrl() { - var query = input.val().trim(); - var url = document.location.pathname; - if (query) { - url += "?q=" + encodeURI(query); - if (activeTab && fixedTab) { - url += "&c=" + activeTab; - } - } - history.replaceState({query: query}, "", url); - } - input.on("input", function(e) { - feelingLucky = false; - schedulePageSearch(); - }); - $(document).keydown(function(e) { - if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { - if (activeTab && visibleTabs.length > 1) { - var idx = visibleTabs.indexOf(activeTab); - idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; - selectTab(visibleTabs[idx % visibleTabs.length]); - return false; - } - } - }); - reset.click(function() { - notify.html(messages.enterTerm); - resultSection.hide(); - activeTab = ""; - fixedTab = false; - resultContainer.empty(); - input.val('').focus(); - setSearchUrl(); - }); - input.prop("disabled", false); - reset.prop("disabled", false); - - var urlParams = new URLSearchParams(window.location.search); - if (urlParams.has("q")) { - input.val(urlParams.get("q")) - } - if (urlParams.has("c")) { - activeTab = urlParams.get("c"); - fixedTab = true; - } - if (urlParams.get("r")) { - feelingLucky = true; - } - if (input.val()) { - doPageSearch(); - } else { - notify.html(messages.enterTerm); - } - input.select().focus(); -}); diff --git a/docs/java/search.html b/docs/java/search.html deleted file mode 100644 index 22515698..00000000 --- a/docs/java/search.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -Search (voyager 2.0.9 API) - - - - - - - - - - - - - - -
      - -
      -
      -

      Search

      -
      - - -
      -Additional resources -
      -
      -
      -

      The help page provides an introduction to the scope and syntax of JavaDoc search.

      -

      You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.

      -

      The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.

      -link -

      - -

      -
      -

      Loading search index...

      - -
      -
      -
      - -
      -
      -
      - - diff --git a/docs/java/search.js b/docs/java/search.js index 8492271e..2246cdd0 100644 --- a/docs/java/search.js +++ b/docs/java/search.js @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -24,65 +24,100 @@ */ var noResult = {l: "No results found"}; +var loading = {l: "Loading search index..."}; var catModules = "Modules"; var catPackages = "Packages"; var catTypes = "Types"; var catMembers = "Members"; -var catSearchTags = "SearchTags"; -var highlight = "$&"; -var camelCaseRegexp = ""; -var secondaryMatcher = ""; -function getHighlightedText(item) { - var ccMatcher = new RegExp(camelCaseRegexp); - var label = item.replace(ccMatcher, highlight); - if (label === item) { - label = item.replace(secondaryMatcher, highlight); +var catSearchTags = "Search Tags"; +var highlight = "$&"; +var searchPattern = ""; +var fallbackPattern = ""; +var RANKING_THRESHOLD = 2; +var NO_MATCH = 0xffff; +var MIN_RESULTS = 3; +var MAX_RESULTS = 500; +var UNNAMED = ""; +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(item, matcher, fallbackMatcher) { + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight) } - return label; + return highlighted; } function getURLPrefix(ui) { var urlPrefix=""; - if (useModuleDirectories) { - var slash = "/"; - if (ui.item.category === catModules) { - return ui.item.l + slash; - } else if (ui.item.category === catPackages && ui.item.m) { - return ui.item.m + slash; - } else if ((ui.item.category === catTypes && ui.item.p) || ui.item.category === catMembers) { + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { $.each(packageSearchIndex, function(index, item) { - if (item.m && ui.item.p == item.l) { + if (item.m && ui.item.p === item.l) { urlPrefix = item.m + slash; } }); - return urlPrefix; - } else { - return urlPrefix; } } return urlPrefix; } +function createSearchPattern(term) { + var pattern = ""; + var isWordToken = false; + term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; + } + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === "") { + continue; + } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += "([a-z0-9_$<>\\[\\]]*?)"; + } + } + }); + return pattern; +} +function createMatcher(pattern, flags) { + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); +} var watermark = 'Search'; $(function() { - $("#search").val(''); - $("#search").prop("disabled", false); - $("#reset").prop("disabled", false); - $("#search").val(watermark).addClass('watermark'); - $("#search").blur(function() { - if ($(this).val().length == 0) { + var search = $("#search-input"); + var reset = $("#reset-button"); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + search.val(watermark).addClass('watermark'); + search.blur(function() { + if ($(this).val().length === 0) { $(this).val(watermark).addClass('watermark'); } }); - $("#search").on('click keydown', function() { - if ($(this).val() == watermark) { + search.on('click keydown paste', function() { + if ($(this).val() === watermark) { $(this).val('').removeClass('watermark'); } }); - $("#reset").click(function() { - $("#search").val(''); - $("#search").focus(); + reset.click(function() { + search.val('').focus(); }); - $("#search").focus(); - $("#search")[0].setSelectionRange(0, 0); + search.focus()[0].setSelectionRange(0, 0); }); $.widget("custom.catcomplete", $.ui.autocomplete, { _create: function() { @@ -90,224 +125,217 @@ $.widget("custom.catcomplete", $.ui.autocomplete, { this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); }, _renderMenu: function(ul, items) { - var rMenu = this, - currentCategory = ""; + var rMenu = this; + var currentCategory = ""; rMenu.menu.bindings = $(); $.each(items, function(index, item) { var li; - if (item.l !== noResult.l && item.category !== currentCategory) { + if (item.category && item.category !== currentCategory) { ul.append("
    • " + item.category + "
    • "); currentCategory = item.category; } li = rMenu._renderItemData(ul, item); if (item.category) { li.attr("aria-label", item.category + " : " + item.l); - li.attr("class", "resultItem"); + li.attr("class", "result-item"); } else { li.attr("aria-label", item.l); - li.attr("class", "resultItem"); + li.attr("class", "result-item"); } }); }, _renderItem: function(ul, item) { var label = ""; + var matcher = createMatcher(escapeHtml(searchPattern), "g"); + var fallbackMatcher = new RegExp(fallbackPattern, "gi") if (item.category === catModules) { - label = getHighlightedText(item.l); + label = getHighlightedText(item.l, matcher, fallbackMatcher); } else if (item.category === catPackages) { - label = (item.m) - ? getHighlightedText(item.m + "/" + item.l) - : getHighlightedText(item.l); + label = getHighlightedText(item.l, matcher, fallbackMatcher); } else if (item.category === catTypes) { - label = (item.p) - ? getHighlightedText(item.p + "." + item.l) - : getHighlightedText(item.l); + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); } else if (item.category === catMembers) { - label = getHighlightedText(item.p + "." + (item.c + "." + item.l)); + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); } else if (item.category === catSearchTags) { - label = getHighlightedText(item.l); + label = getHighlightedText(item.l, matcher, fallbackMatcher); } else { label = item.l; } var li = $("
    • ").appendTo(ul); var div = $("
      ").appendTo(li); - if (item.category === catSearchTags) { + if (item.category === catSearchTags && item.h) { if (item.d) { - div.html(label + " (" + item.h + ")
      " + div.html(label + " (" + item.h + ")
      " + item.d + "
      "); } else { - div.html(label + " (" + item.h + ")"); + div.html(label + " (" + item.h + ")"); } } else { - div.html(label); + if (item.m) { + div.html(item.m + "/" + label); + } else { + div.html(label); + } } return li; } }); -$(function() { - $("#search").catcomplete({ - minLength: 1, - delay: 100, - source: function(request, response) { - var result = new Array(); - var presult = new Array(); - var tresult = new Array(); - var mresult = new Array(); - var tgresult = new Array(); - var secondaryresult = new Array(); - var displayCount = 0; - var exactMatcher = new RegExp("^" + $.ui.autocomplete.escapeRegex(request.term) + "$", "i"); - camelCaseRegexp = ($.ui.autocomplete.escapeRegex(request.term)).split(/(?=[A-Z])/).join("([a-z0-9_$]*?)"); - var camelCaseMatcher = new RegExp("^" + camelCaseRegexp); - secondaryMatcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i"); +function rankMatch(match, category) { + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { + leftBoundaryMatch = 0; + } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { + leftBoundaryMatch = 1; + } + var matchEnd = index + match[0].length; + var leftParen = input.indexOf("("); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? "/" : "."; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; + } + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) + delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) + delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) + delta += 5; + } + return leftBoundaryMatch + periferalMatch + (delta / 200); - // Return the nested innermost name from the specified object - function nestedName(e) { - return e.l.substring(e.l.lastIndexOf(".") + 1); - } +} +function doSearch(request, response) { + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === "") { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ""); + var fallbackMatcher = new RegExp(fallbackPattern, "i"); - function concatResults(a1, a2) { - a1 = a1.concat(a2); - a2.length = 0; - return a1; - } + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ranking: ranking, item: item}); + } + return newResults.length <= MAX_RESULTS; + }); + return newResults.sort(function(e1, e2) { + return e1.ranking - e2.ranking; + }).map(function(e) { + return e.item; + }); + } + return []; + } + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { + var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); + result = result.concat(secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + })); + } + } - if (moduleSearchIndex) { - var mdleCount = 0; - $.each(moduleSearchIndex, function(index, item) { - item.category = catModules; - if (exactMatcher.test(item.l)) { - result.push(item); - mdleCount++; - } else if (camelCaseMatcher.test(item.l)) { - result.push(item); - } else if (secondaryMatcher.test(item.l)) { - secondaryresult.push(item); - } - }); - displayCount = mdleCount; - result = concatResults(result, secondaryresult); - } - if (packageSearchIndex) { - var pCount = 0; - var pkg = ""; - $.each(packageSearchIndex, function(index, item) { - item.category = catPackages; - pkg = (item.m) - ? (item.m + "/" + item.l) - : item.l; - if (exactMatcher.test(item.l)) { - presult.push(item); - pCount++; - } else if (camelCaseMatcher.test(pkg)) { - presult.push(item); - } else if (secondaryMatcher.test(pkg)) { - secondaryresult.push(item); - } - }); - result = result.concat(concatResults(presult, secondaryresult)); - displayCount = (pCount > displayCount) ? pCount : displayCount; - } - if (typeSearchIndex) { - var tCount = 0; - $.each(typeSearchIndex, function(index, item) { - item.category = catTypes; - var s = nestedName(item); - if (exactMatcher.test(s)) { - tresult.push(item); - tCount++; - } else if (camelCaseMatcher.test(s)) { - tresult.push(item); - } else if (secondaryMatcher.test(item.p + "." + item.l)) { - secondaryresult.push(item); - } - }); - result = result.concat(concatResults(tresult, secondaryresult)); - displayCount = (tCount > displayCount) ? tCount : displayCount; - } - if (memberSearchIndex) { - var mCount = 0; - $.each(memberSearchIndex, function(index, item) { - item.category = catMembers; - var s = nestedName(item); - if (exactMatcher.test(s)) { - mresult.push(item); - mCount++; - } else if (camelCaseMatcher.test(s)) { - mresult.push(item); - } else if (secondaryMatcher.test(item.c + "." + item.l)) { - secondaryresult.push(item); - } - }); - result = result.concat(concatResults(mresult, secondaryresult)); - displayCount = (mCount > displayCount) ? mCount : displayCount; - } - if (tagSearchIndex) { - var tgCount = 0; - $.each(tagSearchIndex, function(index, item) { - item.category = catSearchTags; - if (exactMatcher.test(item.l)) { - tgresult.push(item); - tgCount++; - } else if (secondaryMatcher.test(item.l)) { - secondaryresult.push(item); - } - }); - result = result.concat(concatResults(tgresult, secondaryresult)); - displayCount = (tgCount > displayCount) ? tgCount : displayCount; - } - displayCount = (displayCount > 500) ? displayCount : 500; - var counter = function() { - var count = {Modules: 0, Packages: 0, Types: 0, Members: 0, SearchTags: 0}; - var f = function(item) { - count[item.category] += 1; - return (count[item.category] <= displayCount); - }; - return f; - }(); - response(result.filter(counter)); - }, + searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); + searchIndex(packageSearchIndex, catPackages, function(item) { + return (item.m && request.term.indexOf("/") > -1) + ? (item.m + "/" + item.l) : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function(item) { + return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function(item) { + return request.term.indexOf(".") > -1 + ? item.p + "." + item.c + "." + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); + + if (!indexFilesLoaded()) { + updateSearchResults = function() { + doSearch(request, response); + } + result.unshift(loading); + } else { + updateSearchResults = function() {}; + } + response(result); +} +$(function() { + $("#search-input").catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, response: function(event, ui) { if (!ui.content.length) { ui.content.push(noResult); } else { - $("#search").empty(); + $("#search-input").empty(); } }, autoFocus: true, + focus: function(event, ui) { + return false; + }, position: { collision: "flip" }, select: function(event, ui) { - if (ui.item.l !== noResult.l) { + if (ui.item.category) { var url = getURLPrefix(ui); if (ui.item.category === catModules) { - if (useModuleDirectories) { - url += "module-summary.html"; - } else { - url = ui.item.l + "-summary.html"; - } + url += "module-summary.html"; } else if (ui.item.category === catPackages) { - if (ui.item.url) { - url = ui.item.url; + if (ui.item.u) { + url = ui.item.u; } else { - url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; } } else if (ui.item.category === catTypes) { - if (ui.item.url) { - url = ui.item.url; - } else if (ui.item.p === "") { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { url += ui.item.l + ".html"; } else { url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; } } else if (ui.item.category === catMembers) { - if (ui.item.p === "") { + if (ui.item.p === UNNAMED) { url += ui.item.c + ".html" + "#"; } else { url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; } - if (ui.item.url) { - url += ui.item.url; + if (ui.item.u) { + url += ui.item.u; } else { url += ui.item.l; } @@ -319,7 +347,7 @@ $(function() { } else { window.location.href = pathtoroot + url; } - $("#search").focus(); + $("#search-input").focus(); } } }); diff --git a/docs/java/serialized-form.html b/docs/java/serialized-form.html new file mode 100644 index 00000000..7fbb9ad9 --- /dev/null +++ b/docs/java/serialized-form.html @@ -0,0 +1,139 @@ + + + + + + +Serialized Form (voyager 2.1.0 API) + + + + + + + + +
      + + + + + + + +
      + + +
      +

      Serialized Form

      +
      +
      + +
      + +
      + + + + + + + +
      + + +

      Copyright © 2024. All rights reserved.

      + + diff --git a/docs/java/stylesheet.css b/docs/java/stylesheet.css index de945eda..4a576bd2 100644 --- a/docs/java/stylesheet.css +++ b/docs/java/stylesheet.css @@ -1,4 +1,4 @@ -/* +/* * Javadoc style sheet */ @@ -40,13 +40,6 @@ a[href]:hover, a[href]:focus { a[name] { color:#353833; } -a[name]:before, a[name]:target, a[id]:before, a[id]:target { - content:""; - display:inline-block; - position:relative; - padding-top:129px; - margin-top:-129px; -} pre { font-family:'DejaVu Sans Mono', monospace; font-size:14px; @@ -59,22 +52,24 @@ h2 { } h3 { font-size:16px; - font-style:italic; } h4 { - font-size:13px; + font-size:15px; } h5 { - font-size:12px; + font-size:14px; } h6 { - font-size:11px; + font-size:13px; } ul { list-style-type:disc; } code, tt { font-family:'DejaVu Sans Mono', monospace; +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { font-size:14px; padding-top:4px; margin-top:8px; @@ -85,7 +80,7 @@ dt code { font-size:14px; padding-top:4px; } -table tr td dt code { +.summary-table dt code { font-family:'DejaVu Sans Mono', monospace; font-size:14px; vertical-align:top; @@ -94,7 +89,10 @@ table tr td dt code { sup { font-size:8px; } - +button { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; +} /* * Styles for HTML generated by javadoc. * @@ -106,26 +104,19 @@ sup { */ .clear { clear:both; - height:0px; + height:0; overflow:hidden; } -.aboutLanguage { +.about-language { float:right; - padding:0px 21px; + padding:0 21px 8px 8px; font-size:11px; - z-index:200; margin-top:-9px; + height:2.9em; } -.legalCopy { +.legal-copy { margin-left:.5em; } -.bar a, .bar a:link, .bar a:visited, .bar a:active { - color:#FFFFFF; - text-decoration:none; -} -.bar a:hover, .bar a:focus { - color:#bb7a2a; -} .tab { background-color:#0066FF; color:#ffffff; @@ -136,152 +127,124 @@ sup { /* * Styles for navigation bar. */ -.bar { - background-color:#4D7A97; - color:#FFFFFF; - padding:.8em .5em .4em .8em; - height:auto;/*height:1.8em;*/ - font-size:11px; - margin:0; -} -.navPadding { - padding-top: 107px; -} -.fixedNav { - position:fixed; - width:100%; - z-index:999; - background-color:#ffffff; -} -.topNav { +@media screen { + .flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { background-color:#4D7A97; color:#FFFFFF; float:left; padding:0; width:100%; clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.bottomNav { - margin-top:10px; - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; + min-height:2.8em; padding-top:10px; overflow:hidden; font-size:12px; } -.subNav { +.sub-nav { background-color:#dee3e9; float:left; width:100%; overflow:hidden; font-size:12px; } -.subNav div { +.sub-nav div { clear:left; float:left; padding:0 0 5px 6px; text-transform:uppercase; } -ul.navList, ul.subNavList { +.sub-nav .nav-list { + padding-top:5px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { float:left; margin:0 25px 0 0; padding:0; } -ul.navList li{ +ul.nav-list li { list-style:none; float:left; padding: 5px 6px; text-transform:uppercase; } -ul.navListSearch { +.sub-nav .nav-list-search { float:right; margin:0 0 0 0; - padding:0; -} -ul.navListSearch li { - list-style:none; - float:right; - padding: 5px 6px; - text-transform:uppercase; + padding:5px 6px; + clear:none; } -ul.navListSearch li label { +.nav-list-search label { position:relative; right:-16px; } -ul.subNavList li { +ul.sub-nav-list li { list-style:none; float:left; + padding-top:10px; } -.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { +.top-nav a:link, .top-nav a:active, .top-nav a:visited { color:#FFFFFF; text-decoration:none; text-transform:uppercase; } -.topNav a:hover, .bottomNav a:hover { +.top-nav a:hover { text-decoration:none; color:#bb7a2a; text-transform:uppercase; } -.navBarCell1Rev { +.nav-bar-cell1-rev { background-color:#F8981D; color:#253441; margin: auto 5px; } -.skipNav { +.skip-nav { position:absolute; top:auto; left:-9999px; overflow:hidden; } /* - * Styles for page header and footer. + * Hide navigation links and search box in print layout */ -.header, .footer { - clear:both; - margin:0 20px; - padding:5px 0 0 0; -} -.indexNav { - position:relative; - font-size:12px; - background-color:#dee3e9; -} -.indexNav ul { - margin-top:0; - padding:5px; -} -.indexNav ul li { - display:inline; - list-style-type:none; - padding-right:10px; - text-transform:uppercase; -} -.indexNav h1 { - font-size:13px; +@media print { + ul.nav-list, div.sub-nav { + display:none; + } } +/* + * Styles for page header and footer. + */ .title { color:#2c4557; margin:10px 0; } -.subTitle { +.sub-title { margin:5px 0 0 0; } .header ul { margin:0 0 15px 0; padding:0; } -.footer ul { - margin:20px 0 5px 0; -} .header ul li, .footer ul li { list-style:none; font-size:13px; @@ -289,69 +252,49 @@ ul.subNavList li { /* * Styles for headings. */ -div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; } -ul.blockList ul.blockList ul.blockList li.blockList h3 { +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { background-color:#dee3e9; border:1px solid #d0d9e0; margin:0 0 6px -8px; padding:7px 5px; } -ul.blockList ul.blockList li.blockList h3 { - padding:0; - margin:15px 0; -} -ul.blockList li.blockList h2 { - padding:0px 0 20px 0; -} /* * Styles for page layout containers. */ -.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer, -.allClassesContainer, .allPackagesContainer { +main { clear:both; padding:10px 20px; position:relative; } -.indexContainer { - margin:10px; - position:relative; - font-size:12px; -} -.indexContainer h2 { - font-size:13px; - padding:0 0 3px 0; -} -.indexContainer ul { - margin:0; - padding:0; -} -.indexContainer ul li { - list-style:none; - padding-top:2px; -} -.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { +dl.notes > dt { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold; margin:10px 0 0 0; color:#4E4E4E; } -.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { - margin:5px 0 10px 0px; +dl.notes > dd { + margin:5px 10px 10px 0; font-size:14px; font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; } -.serializedFormContainer dl.nameValue dt { +dl.name-value > dt { margin-left:1px; font-size:1.1em; display:inline; font-weight:bold; } -.serializedFormContainer dl.nameValue dd { +dl.name-value > dd { margin:0 0 0 1px; font-size:1.1em; display:inline; @@ -366,70 +309,56 @@ ul.horizontal li { display:inline; font-size:0.9em; } -ul.inheritance { +div.inheritance { margin:0; padding:0; } -ul.inheritance li { - display:inline; - list-style:none; -} -ul.inheritance li ul.inheritance { - margin-left:15px; - padding-left:15px; - padding-top:1px; +div.inheritance div.inheritance { + margin-left:2em; } -ul.blockList, ul.blockListLast { +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { margin:10px 0 10px 0; padding:0; } -ul.blockList li.blockList, ul.blockListLast li.blockList { +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { list-style:none; margin-bottom:15px; line-height:1.4; } -ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { - padding:0px 20px 5px 10px; - border:1px solid #ededed; - background-color:#f8f8f8; +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; } -ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { - padding:0 0 5px 8px; - background-color:#ffffff; - border:none; +ul.see-list, ul.see-list-long { + padding-left: 0; + list-style: none; } -ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { - margin-left:0; - padding-left:0; - padding-bottom:15px; - border:none; +ul.see-list li { + display: inline; } -ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { - list-style:none; - border-bottom:none; - padding-bottom:0; -} -table tr td dl, table tr td dl dt, table tr td dl dd { - margin-top:0; - margin-bottom:1px; +ul.see-list li:not(:last-child):after, +ul.see-list-long li:not(:last-child):after { + content: ", "; + white-space: pre-wrap; } /* * Styles for tables. */ -.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary, -.requiresSummary, .packagesSummary, .providesSummary, .usesSummary { +.summary-table, .details-table { width:100%; border-spacing:0; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; -} -.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary { - padding:0px; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; + padding:0; } -.overviewSummary caption, .memberSummary caption, .typeSummary caption, -.useSummary caption, .constantsSummary caption, .deprecatedSummary caption, -.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption { +.caption { position:relative; text-align:left; background-repeat:no-repeat; @@ -437,38 +366,20 @@ table tr td dl, table tr td dl dt, table tr td dl dd { font-weight:bold; clear:none; overflow:hidden; - padding:0px; + padding:0; padding-top:10px; padding-left:1px; - margin:0px; + margin:0; white-space:pre; } -.constantsSummary caption a:link, .constantsSummary caption a:visited, -.useSummary caption a:link, .useSummary caption a:visited { +.caption a:link, .caption a:visited { color:#1f389c; } -.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, -.deprecatedSummary caption a:link, -.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link, -.usesSummary caption a:link, -.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, -.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, -.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover, -.usesSummary caption a:hover, -.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, -.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, -.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active, -.usesSummary caption a:active, -.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, -.deprecatedSummary caption a:visited, -.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited, -.usesSummary caption a:visited { +.caption a:hover, +.caption a:active { color:#FFFFFF; } -.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, -.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span, -.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span, -.usesSummary caption span { +.caption span { white-space:nowrap; padding-top:5px; padding-left:12px; @@ -480,168 +391,150 @@ table tr td dl, table tr td dl dt, table tr td dl dd { border: none; height:16px; } -.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span, -.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#F8981D; - height:16px; -} -.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span, -.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#4D7A97; - height:16px; -} -.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab, -.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab, -.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab, -.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab { - padding-top:0px; - padding-left:0px; - padding-right:0px; - background-image:none; - float:none; - display:inline; -} -.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, -.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd, -.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd { - display:none; - width:5px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd, -.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd, -.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - background-color:#4D7A97; - float:left; -} -.rowColor th, .altColor th { - font-weight:normal; +div.table-tabs { + padding:10px 0 0 1px; + margin:0; } -.overviewSummary td, .memberSummary td, .typeSummary td, -.useSummary td, .constantsSummary td, .deprecatedSummary td, -.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td { +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; +} +div.table-tabs > button.active-table-tab { + background: #F8981D; + color: #253441; +} +div.table-tabs > button.table-tab { + background: #4D7A97; + color: #FFFFFF; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +@media screen and (max-width: 800px) { + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div, .details-table > div { text-align:left; - padding:0px 0px 12px 10px; + padding: 8px 3px 3px 7px; } -th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th, -.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td, -.constantsSummary td { +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { vertical-align:top; - padding-right:0px; + padding-right:0; padding-top:8px; padding-bottom:3px; } -th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th, -.packagesSummary th { +.table-header { background:#dee3e9; - text-align:left; - padding:8px 3px 3px 7px; -} -td.colFirst, th.colFirst { - font-size:13px; + font-weight: bold; } -td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast { +.col-first, .col-first { font-size:13px; } -.constantsSummary th, .packagesSummary th { +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { font-size:13px; } -.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst, -.providesSummary td.colLast { - white-space:normal; - font-size:13px; -} -.overviewSummary td.colFirst, .overviewSummary th.colFirst, -.requiresSummary td.colFirst, .requiresSummary th.colFirst, -.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th, -.usesSummary td.colFirst, .usesSummary th.colFirst, -.providesSummary td.colFirst, .providesSummary th.colFirst, -.memberSummary td.colFirst, .memberSummary th.colFirst, -.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName, -.typeSummary td.colFirst, .typeSummary th.colFirst { +.col-first, .col-second, .col-constructor-name { vertical-align:top; + overflow: auto; } -.packagesSummary th.colLast, .packagesSummary td.colLast { +.col-last { white-space:normal; } -td.colFirst a:link, td.colFirst a:visited, -td.colSecond a:link, td.colSecond a:visited, -th.colFirst a:link, th.colFirst a:visited, -th.colSecond a:link, th.colSecond a:visited, -th.colConstructorName a:link, th.colConstructorName a:visited, -th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, -.constantValuesContainer td a:link, .constantValuesContainer td a:visited, -.allClassesContainer td a:link, .allClassesContainer td a:visited, -.allPackagesContainer td a:link, .allPackagesContainer td a:visited { +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited, +.constant-values-container a:link, .constant-values-container a:visited, +.all-classes-container a:link, .all-classes-container a:visited, +.all-packages-container a:link, .all-packages-container a:visited { font-weight:bold; } -.tableSubHeadingColor { +.table-sub-heading-color { background-color:#EEEEFF; } -.altColor, .altColor th { +.even-row-color, .even-row-color .table-header { background-color:#FFFFFF; } -.rowColor, .rowColor th { +.odd-row-color, .odd-row-color .table-header { background-color:#EEEEEF; } /* * Styles for contents. */ -.description pre { - margin-top:0; -} -.deprecatedContent { +.deprecated-content { margin:0; padding:10px 0; } -.docSummary { - padding:0; -} -ul.blockList ul.blockList ul.blockList li.blockList h3 { - font-style:normal; -} div.block { font-size:14px; font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; } -td.colLast div { - padding-top:0px; +.col-last div { + padding-top:0; } -td.colLast a { +.col-last a { padding-bottom:3px; } +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} /* * Styles for formatting effect. */ -.sourceLineNo { +.source-line-no { color:green; padding:0 30px 0 0; } @@ -652,19 +545,18 @@ h1.hidden { } .block { display:block; - margin:3px 10px 2px 0px; + margin:0 10px 5px 0; color:#474747; } -.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink, -.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType, -.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel, -.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink { +.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { font-weight:bold; } -.deprecationComment, .emphasizedPhrase, .interfaceName { +.deprecation-comment, .help-footnote, .preview-comment { font-style:italic; } -.deprecationBlock { +.deprecation-block { font-size:14px; font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; border-style:solid; @@ -675,67 +567,19 @@ h1.hidden { margin-right:10px; display:inline-block; } -div.block div.deprecationComment, div.block div.block span.emphasizedPhrase, -div.block div.block span.interfaceName { - font-style:normal; -} -div.contentContainer ul.blockList li.blockList h2 { - padding-bottom:0px; -} -/* - * Styles for IFRAME. - */ -.mainContainer { - margin:0 auto; - padding:0; - height:100%; - width:100%; - position:fixed; - top:0; - left:0; -} -.leftContainer { - height:100%; - position:fixed; - width:320px; -} -.leftTop { - position:relative; - float:left; - width:315px; - top:0; - left:0; - height:30%; - border-right:6px solid #ccc; - border-bottom:6px solid #ccc; -} -.leftBottom { - position:relative; - float:left; - width:315px; - bottom:0; - left:0; - height:70%; - border-right:6px solid #ccc; - border-top:1px solid #000; -} -.rightContainer { - position:absolute; - left:320px; - top:0; - bottom:0; - height:100%; - right:0; - border-left:1px solid #000; +.preview-block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; } -.rightIframe { - margin:0; - padding:0; - height:100%; - right:30px; - width:100%; - overflow:visible; - margin-bottom:30px; +div.block div.deprecation-comment { + font-style:normal; } /* * Styles specific to HTML5 elements. @@ -753,7 +597,7 @@ main, nav, header, footer, section { background-color:#4D7A97; color:#FFFFFF; } -.resultItem { +.result-item { font-size:13px; } .ui-autocomplete { @@ -774,13 +618,13 @@ ul.ui-autocomplete li { clear:both; width:100%; } -.resultHighlight { +.result-highlight { font-weight:bold; } .ui-autocomplete .result-item { font-size: inherit; } -#search { +#search-input { background-image:url('resources/glass.png'); background-size:13px; background-repeat:no-repeat; @@ -788,8 +632,9 @@ ul.ui-autocomplete li { padding-left:20px; position:relative; right:-18px; + width:400px; } -#reset { +#reset-button { background-color: rgb(255,255,255); background-image:url('resources/x.png'); background-position:center; @@ -797,7 +642,7 @@ ul.ui-autocomplete li { background-size:12px; border:0 none; width:16px; - height:17px; + height:16px; position:relative; left:-4px; top:-4px; @@ -806,28 +651,85 @@ ul.ui-autocomplete li { .watermark { color:#545454; } -.searchTagDescResult { +.search-tag-desc-result { font-style:italic; font-size:11px; } -.searchTagHolderResult { +.search-tag-holder-result { font-style:italic; font-size:12px; } -.searchTagResult:before, .searchTagResult:target { - color:red; +.search-tag-result:target { + background-color:yellow; } -.moduleGraph span { +.module-graph span { display:none; position:absolute; } -.moduleGraph:hover span { +.module-graph:hover span { display:block; margin: -100px 0 0 100px; z-index: 1; } -.methodSignature { - white-space:normal; +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +span.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); } /* @@ -908,3 +810,60 @@ table.striped > tbody > tr > th, table.striped > tbody > tr > td { table.striped > tbody > tr > th { font-weight: normal; } +/** + * Tweak font sizes and paddings for small screens. + */ +@media screen and (max-width: 1050px) { + #search-input { + width: 300px; + } +} +@media screen and (max-width: 800px) { + #search-input { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 500px) { + #search-input { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } +} diff --git a/docs/java/tag-search-index.js b/docs/java/tag-search-index.js index 0367dae6..f38b3cb3 100644 --- a/docs/java/tag-search-index.js +++ b/docs/java/tag-search-index.js @@ -1 +1 @@ -tagSearchIndex = [];updateSearchResults(); \ No newline at end of file +tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/java/type-search-index.js b/docs/java/type-search-index.js index 373d08da..6822b52e 100644 --- a/docs/java/type-search-index.js +++ b/docs/java/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"l":"All Classes","url":"allclasses-index.html"},{"p":"com.spotify.voyager.jni","l":"Index"},{"p":"com.spotify.voyager.jni.utils","l":"JniLibExtractor"},{"p":"com.spotify.voyager.jni","l":"Index.QueryResults"},{"p":"com.spotify.voyager.jni","l":"StringIndex.QueryResults"},{"p":"com.spotify.voyager.jni","l":"Index.SpaceType"},{"p":"com.spotify.voyager.jni","l":"Index.StorageDataType"},{"p":"com.spotify.voyager.jni","l":"StringIndex"},{"p":"com.spotify.voyager.jni.utils","l":"TinyJson"}] \ No newline at end of file +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"com.spotify.voyager.jni","l":"Index"},{"p":"com.spotify.voyager.jni.utils","l":"JniLibExtractor"},{"p":"com.spotify.voyager.jni","l":"Index.QueryResults"},{"p":"com.spotify.voyager.jni","l":"StringIndex.QueryResults"},{"p":"com.spotify.voyager.jni.exception","l":"RecallException"},{"p":"com.spotify.voyager.jni","l":"Index.SpaceType"},{"p":"com.spotify.voyager.jni","l":"Index.StorageDataType"},{"p":"com.spotify.voyager.jni","l":"StringIndex"},{"p":"com.spotify.voyager.jni.utils","l":"TinyJson"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/java/type-search-index.zip b/docs/java/type-search-index.zip deleted file mode 100644 index 02950ebde0cf71790afc00669f677bcfd6d52d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmWIWW@Zs#;Nak3;HhJbWIzI9Kz2!GL8@+XYGP4xhHhqFN@|5(R&jpb+zZxxhYWbw z9;{Y4KY@9JV#0!?#xiFf#TKC_YJqPSxP`v=TV=GtG4k*4$@0tj1g33pnzJ@gD6`4( zh`|+=MN;0}$?JECmgfols${oYe#*3IPja#MqnDG`lnU@?Z<2eH$8f*OHKqBBSgUDu z@y%^AOOnKwoe^wb;cS)Fb>fS%j-^EO|FiB9RVz!T?wPmjQ>En%k7>ehjvt!*FG_MY zSCQDS&)fmt>>Psc-wG@O`r!>D14Do}Ba;XN!k@@;Ab+9)?7j~0W@Q7ZV+2AMApH!i F2>{tKX*vJ^ diff --git a/java/pom.xml b/java/pom.xml index d206210c..f8eafd54 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -176,6 +176,7 @@ org.apache.maven.plugins maven-javadoc-plugin + 3.7.0 8 ../docs/java From af3c0e98eaef42530cad4f1d0d8a39235a626bf4 Mon Sep 17 00:00:00 2001 From: Stephen Xie Date: Tue, 17 Dec 2024 16:55:14 -0500 Subject: [PATCH 49/52] Regen java docs (#104) * Regen java docs * Regen docs with Java 21 * Regen docs with Java 17 --- docs/java/allclasses-index.html | 4 +- docs/java/allpackages-index.html | 4 +- .../voyager/jni/Index.QueryResults.html | 485 ++--- .../spotify/voyager/jni/Index.SpaceType.html | 452 ++--- .../voyager/jni/Index.StorageDataType.html | 452 ++--- docs/java/com/spotify/voyager/jni/Index.html | 1641 +++++++---------- .../voyager/jni/StringIndex.QueryResults.html | 452 ++--- .../com/spotify/voyager/jni/StringIndex.html | 978 ++++------ .../jni/class-use/Index.QueryResults.html | 258 +-- .../jni/class-use/Index.SpaceType.html | 390 ++-- .../jni/class-use/Index.StorageDataType.html | 357 ++-- .../spotify/voyager/jni/class-use/Index.html | 254 +-- .../class-use/StringIndex.QueryResults.html | 226 +-- .../voyager/jni/class-use/StringIndex.html | 254 +-- .../jni/exception/RecallException.html | 358 ++-- .../exception/class-use/RecallException.html | 142 +- .../jni/exception/package-summary.html | 194 +- .../voyager/jni/exception/package-tree.html | 153 +- .../voyager/jni/exception/package-use.html | 138 +- .../spotify/voyager/jni/package-summary.html | 270 ++- .../com/spotify/voyager/jni/package-tree.html | 163 +- .../com/spotify/voyager/jni/package-use.html | 228 +-- .../voyager/jni/utils/JniLibExtractor.html | 338 ++-- .../spotify/voyager/jni/utils/TinyJson.html | 370 ++-- .../jni/utils/class-use/JniLibExtractor.html | 142 +- .../voyager/jni/utils/class-use/TinyJson.html | 142 +- .../voyager/jni/utils/package-summary.html | 200 +- .../voyager/jni/utils/package-tree.html | 149 +- .../voyager/jni/utils/package-use.html | 138 +- .../com/spotify/voyager/package-summary.html | 174 +- .../com/spotify/voyager/package-tree.html | 139 +- .../java/com/spotify/voyager/package-use.html | 138 +- docs/java/copy.svg | 33 + docs/java/help-doc.html | 338 ++-- docs/java/index-all.html | 503 +++-- docs/java/index.html | 142 +- docs/java/legal/dejavufonts.md | 191 ++ docs/java/link.svg | 31 + docs/java/overview-summary.html | 165 +- docs/java/overview-tree.html | 175 +- docs/java/resource-files/copy.svg | 15 + .../fonts/DejaVuLGCSans-Bold.woff | Bin 0 -> 280908 bytes .../fonts/DejaVuLGCSans-Bold.woff2 | Bin 0 -> 193392 bytes .../fonts/DejaVuLGCSans-BoldOblique.woff | Bin 0 -> 276608 bytes .../fonts/DejaVuLGCSans-BoldOblique.woff2 | Bin 0 -> 193548 bytes .../fonts/DejaVuLGCSans-Oblique.woff | Bin 0 -> 273920 bytes .../fonts/DejaVuLGCSans-Oblique.woff2 | Bin 0 -> 192368 bytes .../resource-files/fonts/DejaVuLGCSans.woff | Bin 0 -> 300804 bytes .../resource-files/fonts/DejaVuLGCSans.woff2 | Bin 0 -> 208088 bytes .../fonts/DejaVuLGCSansMono-Bold.woff | Bin 0 -> 166156 bytes .../fonts/DejaVuLGCSansMono-Bold.woff2 | Bin 0 -> 120496 bytes .../fonts/DejaVuLGCSansMono-BoldOblique.woff | Bin 0 -> 131976 bytes .../fonts/DejaVuLGCSansMono-BoldOblique.woff2 | Bin 0 -> 93508 bytes .../fonts/DejaVuLGCSansMono-Oblique.woff | Bin 0 -> 131844 bytes .../fonts/DejaVuLGCSansMono-Oblique.woff2 | Bin 0 -> 94024 bytes .../fonts/DejaVuLGCSansMono.woff | Bin 0 -> 170212 bytes .../fonts/DejaVuLGCSansMono.woff2 | Bin 0 -> 123560 bytes .../fonts/DejaVuLGCSerif-Bold.woff | Bin 0 -> 167488 bytes .../fonts/DejaVuLGCSerif-Bold.woff2 | Bin 0 -> 112512 bytes .../fonts/DejaVuLGCSerif-BoldItalic.woff | Bin 0 -> 165488 bytes .../fonts/DejaVuLGCSerif-BoldItalic.woff2 | Bin 0 -> 113032 bytes .../fonts/DejaVuLGCSerif-Italic.woff | Bin 0 -> 166552 bytes .../fonts/DejaVuLGCSerif-Italic.woff2 | Bin 0 -> 113988 bytes .../resource-files/fonts/DejaVuLGCSerif.woff | Bin 0 -> 186428 bytes .../resource-files/fonts/DejaVuLGCSerif.woff2 | Bin 0 -> 127416 bytes docs/java/resource-files/fonts/dejavu.css | 104 ++ docs/java/resource-files/glass.png | Bin 0 -> 499 bytes docs/java/resource-files/jquery-ui.min.css | 6 + docs/java/resource-files/link.svg | 13 + docs/java/resource-files/stylesheet.css | 1461 +++++++++++++++ docs/java/resource-files/x.png | Bin 0 -> 394 bytes docs/java/script-files/jquery-3.7.1.min.js | 2 + docs/java/script-files/jquery-ui.min.js | 6 + docs/java/script-files/script.js | 467 +++++ docs/java/script-files/search-page.js | 267 +++ docs/java/script-files/search.js | 436 +++++ docs/java/script.js | 148 +- docs/java/search-page.js | 284 +++ docs/java/search.html | 77 + docs/java/serialized-form.html | 156 +- 80 files changed, 7614 insertions(+), 7189 deletions(-) create mode 100644 docs/java/copy.svg create mode 100644 docs/java/legal/dejavufonts.md create mode 100644 docs/java/link.svg create mode 100644 docs/java/resource-files/copy.svg create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSans-Bold.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSans-Bold.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSans-Oblique.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSans-Oblique.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSans.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSans.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSansMono-Bold.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSansMono-Bold.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSansMono-Oblique.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSansMono-Oblique.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSansMono.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSansMono.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSerif-Bold.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSerif-Bold.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSerif-Italic.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSerif-Italic.woff2 create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSerif.woff create mode 100644 docs/java/resource-files/fonts/DejaVuLGCSerif.woff2 create mode 100644 docs/java/resource-files/fonts/dejavu.css create mode 100644 docs/java/resource-files/glass.png create mode 100644 docs/java/resource-files/jquery-ui.min.css create mode 100644 docs/java/resource-files/link.svg create mode 100644 docs/java/resource-files/stylesheet.css create mode 100644 docs/java/resource-files/x.png create mode 100644 docs/java/script-files/jquery-3.7.1.min.js create mode 100644 docs/java/script-files/jquery-ui.min.js create mode 100644 docs/java/script-files/script.js create mode 100644 docs/java/script-files/search-page.js create mode 100644 docs/java/script-files/search.js create mode 100644 docs/java/search-page.js create mode 100644 docs/java/search.html diff --git a/docs/java/allclasses-index.html b/docs/java/allclasses-index.html index 15f7744d..af829515 100644 --- a/docs/java/allclasses-index.html +++ b/docs/java/allclasses-index.html @@ -1,11 +1,11 @@ - + All Classes and Interfaces (voyager 2.1.0 API) - + diff --git a/docs/java/allpackages-index.html b/docs/java/allpackages-index.html index 4bc16f7f..a245a0a2 100644 --- a/docs/java/allpackages-index.html +++ b/docs/java/allpackages-index.html @@ -1,11 +1,11 @@ - + All Packages (voyager 2.1.0 API) - + diff --git a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html index 1f277121..7390d783 100644 --- a/docs/java/com/spotify/voyager/jni/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/Index.QueryResults.html @@ -1,390 +1,261 @@ - - + - - + Index.QueryResults (voyager 2.1.0 API) - + + + + + + + + + - - + + +
      + +
      +
      -
      com.spotify.voyager.jni
      -

      Class Index.QueryResults

      + +

      Class Index.QueryResults

      -
      - -
      -
        -
      • -
        +
        java.lang.Object +
        com.spotify.voyager.jni.Index.QueryResults
        +
        +
        +
        Enclosing class:
        -
        Index
        +
        Index

        -
        -
        public static class Index.QueryResults
        -extends Object
        +
        public static class Index.QueryResults +extends Object
        A container for query results, returned by Index. Note that this class is instantiated from C++, and as such, any changes to its location, visibility, or constructor will need to include corresponding C++ changes.
        -
      • -
      -
      -
      -
        -
      • + +
        +
          -
            -
          • - - -

            Field Summary

            - - - - - - - - - - - - - - -
            Fields 
            Modifier and TypeField and Description
            float[]distances +
          • +
            +

            Field Summary

            +
            Fields
            +
            +
            Modifier and Type
            +
            Field
            +
            Description
            +
            final float[]
            + +
            A list of distances from each item ID to the query vector for this query.
            -
          • long[]labels + +
            final long[]
            + +
            A list of item IDs ("labels").
            -
            +
      +
      +
    • -
    -
      -
    • - - -

      Constructor Summary

      - - - - - - - - -
      Constructors 
      Constructor and Description
      QueryResults(long[] labels, - float[] distances) +
    • +
      +

      Constructor Summary

      +
      Constructors
      +
      +
      Constructor
      +
      Description
      +
      QueryResults(long[] labels, + float[] distances)
      +
      Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
      -
    • +
    + + - - + + + +
     
    + + + +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    + - -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Field Detail

          - - - -
            -
          • -

            labels

            -
            public final long[] labels
            +
          • +
            +

            Field Details

            +
              +
            • +
              +

              labels

              +
              public final long[] labels
              A list of item IDs ("labels").
              +
            • -
            - - - -
              -
            • -

              distances

              -
              public final float[] distances
              +
            • +
              +

              distances

              +
              public final float[] distances
              A list of distances from each item ID to the query vector for this query.
              +
            +
          • -
          -
            -
          • - - -

            Constructor Detail

            - - - -
              -
            • -

              QueryResults

              -
              public QueryResults(long[] labels,
              -                    float[] distances)
              +
            • +
              +

              Constructor Details

              +
                +
              • +
                +

                QueryResults

                +
                public QueryResults(long[] labels, + float[] distances)
                Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances. This method should probably not be used directly, as this class is primarily used as a return type from the query method on Index.
                -
                -
                Throws:
                -
                IllegalArgumentException - if the length of the labels and distances arrays vary
                +
                +
                Throws:
                +
                IllegalArgumentException - if the length of the labels and distances arrays vary
                +
              +
            • -
            -
              -
            • - - -

              Method Detail

              - - - -
                -
              • -

                toString

                -
                public String toString()
                -
                -
                Overrides:
                -
                toString in class Object
                +
              • +
                +

                Method Details

                + - - - -
                  -
                • -

                  getLabels

                  -
                  public long[] getLabels()
                  +
                • +
                  +

                  getLabels

                  +
                  public long[] getLabels()
                  Retrieve the list of item IDs ("labels") returned by this query. This array is sorted by distance: the first item is the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the distances returned by getDistances().
                  +
                • -
                - - - -
                  -
                • -

                  getDistances

                  -
                  public float[] getDistances()
                  +
                • +
                  +

                  getDistances

                  +
                  public float[] getDistances()
                  Retrieve the list of distances between query vectors and item vectors for the results of this query. This array is sorted by distance: the first distance corresponds with the item the closest to the query vector, the second is second-closest, and so on. The items in this array correspond 1:1 with the labels returned by getLabels().
                  +
                +
              -
            • -
            -
    - + - - -
    +
    +
    + +
    -
    - -
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html index f90156e8..bc614332 100644 --- a/docs/java/com/spotify/voyager/jni/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/Index.SpaceType.html @@ -1,378 +1,244 @@ - - + - - + Index.SpaceType (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -
    com.spotify.voyager.jni
    -

    Enum Index.SpaceType

    + +

    Enum Index.SpaceType

    -
    - -
    - -
    -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Enum Constant Summary

          - - - - - - - - - - - - - - -
          Enum Constants 
          Enum Constant and Description
          Cosine +
        • +
          +

          Enum Constant Summary

          +
          Enum Constants
          +
          +
          Enum Constant
          +
          Description
          + +
          Cosine distance; i.e.
          -
        • Euclidean + + +
          Euclidean distance, also known as L2 distance.
          -
          InnerProduct + + +
          Inner (dot) product.
          -
          +
    +
    + - - +
    +
    + + +
    +

    Methods inherited from class java.lang.Enum

    +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
    +
    +

    Methods inherited from class java.lang.Object

    +getClass, notify, notifyAll, wait, wait, wait
    + - -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Enum Constant Detail

          - - - -
            -
          • -

            Euclidean

            -
            public static final Index.SpaceType Euclidean
            +
          • +
            +

            Enum Constant Details

            +
              +
            • +
              +

              Euclidean

              +
              public static final Index.SpaceType Euclidean
              Euclidean distance, also known as L2 distance. Computed by taking the square root of the sum of squared differences between each element of each vector.
              +
            • -
            - - - -
              -
            • -

              InnerProduct

              -
              public static final Index.SpaceType InnerProduct
              +
            • +
              +

              InnerProduct

              +
              public static final Index.SpaceType InnerProduct
              Inner (dot) product. Computed by taking the sum of the products of each element of each vector. Since v2.0, this is implemented using the order preserving transform defined in this paper from Microsoft: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/XboxInnerProduct.pdf
              +
            • -
            - - - -
              -
            • -

              Cosine

              -
              public static final Index.SpaceType Cosine
              +
            • +
              +

              Cosine

              +
              public static final Index.SpaceType Cosine
              Cosine distance; i.e. normalized dot product. Computed by taking the sum of the products of each element of each vector, divided by the product of the magnitudes of each vector.
              +
            +
          • -
          -
            -
          • - - -

            Method Detail

            - - - -
              -
            • -

              values

              -
              public static Index.SpaceType[] values()
              +
            • +
              +

              Method Details

              +
                +
              • +
                +

                values

                +
                public static Index.SpaceType[] values()
                Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
                -for (Index.SpaceType c : Index.SpaceType.values())
                -    System.out.println(c);
                -
                -
                -
                Returns:
                +the order they are declared.
    +
    +
    Returns:
    an array containing the constants of this enum type, in the order they are declared
    + - - - - -
      -
    • -

      valueOf

      -
      public static Index.SpaceType valueOf(String name)
      +
    • +
      +

      valueOf

      +
      public static Index.SpaceType valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      -
      -
      Parameters:
      +
      +
      Parameters:
      name - the name of the enum constant to be returned.
      -
      Returns:
      +
      Returns:
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      +
      Throws:
      +
      IllegalArgumentException - if this enum type has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
    + - - - - + - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html index 55a1665f..81b61c34 100644 --- a/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/Index.StorageDataType.html @@ -1,227 +1,167 @@ - - + - - + Index.StorageDataType (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -
    com.spotify.voyager.jni
    -

    Enum Index.StorageDataType

    + +

    Enum Index.StorageDataType

    -
    - -
    - -
    -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Enum Constant Summary

          - - - - - - - - - - - - - - -
          Enum Constants 
          Enum Constant and Description
          E4M3 +
        • +
          +

          Enum Constant Summary

          +
          Enum Constants
          +
          +
          Enum Constant
          +
          Description
          + +
          A custom 8-bit floating point data type with range [-448, 448] and variable precision.
          -
        • Float32 + + +
          A 32-bit floating point ("Float") data type.
          -
          Float8 + + +
          An 8-bit floating point data type that expects all values to be on [-1, 1].
          -
          +
    +
    + - - +
    +
    + + +
    +

    Methods inherited from class java.lang.Enum

    +clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
    +
    +

    Methods inherited from class java.lang.Object

    +getClass, notify, notifyAll, wait, wait, wait
    + - -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Enum Constant Detail

          - - - -
            -
          • -

            Float8

            -
            public static final Index.StorageDataType Float8
            +
          • +
            +

            Enum Constant Details

            +
              +
            • +
              +

              Float8

              +
              public static final Index.StorageDataType Float8
              An 8-bit floating point data type that expects all values to be on [-1, 1]. This data type provides adequate precision for many use cases, but cuts down memory usage bu a factor of 4x compared to Float32, while also increasing query speed. @@ -229,25 +169,19 @@

              Float8

              Float8 provides 8 bits of resolution; i.e.: the distance between successive values is 1/127, or 0.00787. For a variable-precision (i.e.: _actually_ floating point) representation, use E4M3.

              +
            • -
            - - - - - - - -
              -
            • -

              E4M3

              -
              public static final Index.StorageDataType E4M3
              +
            • +
              +

              E4M3

              +
              public static final Index.StorageDataType E4M3
              A custom 8-bit floating point data type with range [-448, 448] and variable precision. Use this data type to get 4x less memory usage compared to Float32, but when the values of vectors to be stored in an Index may exceed [-1, 1]. @@ -258,127 +192,59 @@

              E4M3

              Note that using E4M3 with the Cosine space may result in negative distances at query time due to reduced floating-point precision. While confusing, the query results are still correctly ordered.

              +
            +
          • -
          -
            -
          • - - -

            Method Detail

            - - - -
              -
            • -

              values

              -
              public static Index.StorageDataType[] values()
              +
            • +
              +

              Method Details

              +
                +
              • +
                +

                values

                +
                public static Index.StorageDataType[] values()
                Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
                -for (Index.StorageDataType c : Index.StorageDataType.values())
                -    System.out.println(c);
                -
                -
                -
                Returns:
                +the order they are declared.
    +
    +
    Returns:
    an array containing the constants of this enum type, in the order they are declared
    + - - - - -
      -
    • -

      valueOf

      -
      public static Index.StorageDataType valueOf(String name)
      +
    • +
      +

      valueOf

      +
      public static Index.StorageDataType valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      -
      -
      Parameters:
      +
      +
      Parameters:
      name - the name of the enum constant to be returned.
      -
      Returns:
      +
      Returns:
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      +
      Throws:
      +
      IllegalArgumentException - if this enum type has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
    + - - - - + - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/Index.html b/docs/java/com/spotify/voyager/jni/Index.html index 8e8133cf..bdb3ff85 100644 --- a/docs/java/com/spotify/voyager/jni/Index.html +++ b/docs/java/com/spotify/voyager/jni/Index.html @@ -1,122 +1,89 @@ - - + - - + Index (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -
    com.spotify.voyager.jni
    -

    Class Index

    + +

    Class Index

    -
    - -
    -
      -
    • -
      +
      java.lang.Object +
      com.spotify.voyager.jni.Index
      +
      +
      +
      All Implemented Interfaces:
      -
      Closeable, AutoCloseable
      +
      Closeable, AutoCloseable

      -
      -
      public class Index
      -extends Object
      -implements Closeable
      +
      public class Index +extends Object +implements Closeable
      A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors. @@ -139,366 +106,307 @@

      Class Index

      // Serialize this index to use it again later: index.saveIndex("my_tiny_index.voy");
      -
    • -
    -
    -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Nested Class Summary

          - - - - - - - - - - - - - - - - - - -
          Nested Classes 
          Modifier and TypeClass and Description
          static class Index.QueryResults +
        • +
          +

          Nested Class Summary

          +
          Nested Classes
          +
          +
          Modifier and Type
          +
          Class
          +
          Description
          +
          static class 
          + +
          A container for query results, returned by Index.
          -
        • static class Index.SpaceType + +
          static enum 
          + +
          The space, also known as distance metric, to use when searching.
          -
          static class Index.StorageDataType + +
          static enum 
          + +
          The datatype used to use when storing vectors on disk.
          -
          +
    +
    + - -
    +
    + - -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      longaddItem(float[] vector) -
      Add an item (a vector) to this Index.
      -
      longaddItem(float[] vector, - long id) -
      Add an item (a vector) to this Index with the provided identifier.
      -
      long[]addItems(float[][] vectors, - int numThreads) -
      Add multiple items (vectors) to this Index.
      -
      long[]addItems(float[][] vectors, - long[] ids, - int numThreads) -
      Add multiple items (vectors) to this Index with the provided identifiers.
      -
      byte[]asBytes() +
    • +
      +

      Method Summary

      +
      +
      +
      +
      +
      Modifier and Type
      +
      Method
      +
      Description
      +
      long
      +
      addItem(float[] vector)
      +
      +
      Add an item (a vector) to this Index.
      +
      +
      long
      +
      addItem(float[] vector, + long id)
      +
      +
      Add an item (a vector) to this Index with the provided identifier.
      +
      +
      long[]
      +
      addItems(float[][] vectors, + int numThreads)
      +
      +
      Add multiple items (vectors) to this Index.
      +
      +
      long[]
      +
      addItems(float[][] vectors, + long[] ids, + int numThreads)
      +
      +
      Add multiple items (vectors) to this Index with the provided identifiers.
      +
      +
      byte[]
      + +
      Returns the contents of this index as an array of bytes.
      -
    • voidclose() -
      Close this Index and release any memory held by it.
      -
      protected voidfinalize() 
      intgetEf() -
      Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
      -
      longgetEfConstruction() -
      Get the EF Construction value used when adding new elements to this Index.
      -
      long[]getIDs() + +
      void
      + +
      +
      Close this Index and release any memory held by it.
      +
      +
      protected void
      + +
       
      +
      int
      + +
      +
      Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
      +
      +
      long
      + +
      +
      Get the EF Construction value used when adding new elements to this Index.
      +
      +
      long[]
      + +
      Get the list of identifiers currently stored by this index.
      -
      longgetM() -
      Get the M value used when adding new elements to this Index.
      -
      longgetMaxElements() -
      Get the maximum number of elements currently storable by this Index.
      -
      intgetNumDimensions() -
      Get the number of dimensions used in this Index.
      -
      longgetNumElements() -
      Get the number of elements currently in this Index.
      -
      intgetNumThreads() + +
      long
      + +
      +
      Get the M value used when adding new elements to this Index.
      +
      +
      long
      + +
      +
      Get the maximum number of elements currently storable by this Index.
      +
      +
      int
      + +
      +
      Get the number of dimensions used in this Index.
      +
      +
      long
      + +
      +
      Get the number of elements currently in this Index.
      +
      +
      int
      + +
      Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
      -
      Index.SpaceTypegetSpace() -
      Get the Index.SpaceType that this Index uses to store and compare vectors.
      -
      float[]getVector(long id) + + + +
      +
      Get the Index.SpaceType that this Index uses to store and compare vectors.
      +
      +
      float[]
      +
      getVector(long id)
      +
      Get the vector for the provided identifier.
      -
      float[][]getVectors(long[] ids) + +
      float[][]
      +
      getVectors(long[] ids)
      +
      Get the vectors for a provided array of identifiers.
      -
      static Indexload(InputStream inputStream) + +
      static Index
      +
      load(InputStream inputStream)
      +
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file - and create a new Index initialized with the data provided by that stream.
      -
      static Indexload(InputStream inputStream, - Index.SpaceType space, - int numDimensions, - Index.StorageDataType storageDataType) + and create a new Index initialized with the data provided by that stream. + +
      static Index
      +
      load(InputStream inputStream, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
      +
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file - and create a new Index initialized with the data provided by that stream.
      -
      static Indexload(String filename) -
      Load a Voyager index file and create a new Index initialized with the data in that + and create a new Index initialized with the data provided by that stream.
      + +
      static Index
      +
      load(String filename)
      +
      +
      Load a Voyager index file and create a new Index initialized with the data in that file.
      -
      static Indexload(String filename, - Index.SpaceType space, - int numDimensions, - Index.StorageDataType storageDataType) -
      Load a Voyager index file and create a new Index initialized with the data in that +
      +
      static Index
      +
      load(String filename, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
      +
      +
      Load a Voyager index file and create a new Index initialized with the data in that file.
      -
      voidmarkDeleted(long label) + +
      void
      +
      markDeleted(long label)
      +
      Mark an element of the index as deleted.
      -
      Index.QueryResults[]query(float[][] queryVectors, - int k, - int numThreads) -
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      Index.QueryResults[]query(float[][] queryVectors, - int k, - int numThreads, - long queryEf) -
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      Index.QueryResultsquery(float[] queryVector, - int k) -
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      Index.QueryResultsquery(float[] queryVector, - int k, - long queryEf) -
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      voidresizeIndex(long newSize) -
      Change the maximum number of elements currently storable by this Index.
      -
      voidsaveIndex(OutputStream outputStream) + + +
      query(float[][] queryVectors, + int k, + int numThreads)
      +
      +
      Query this Index for approximate nearest neighbors of multiple query vectors.
      +
      + +
      query(float[][] queryVectors, + int k, + int numThreads, + long queryEf)
      +
      +
      Query this Index for approximate nearest neighbors of multiple query vectors.
      +
      + +
      query(float[] queryVector, + int k)
      +
      +
      Query this Index for approximate nearest neighbors of a single query vector.
      +
      + +
      query(float[] queryVector, + int k, + long queryEf)
      +
      +
      Query this Index for approximate nearest neighbors of a single query vector.
      +
      +
      void
      +
      resizeIndex(long newSize)
      +
      +
      Change the maximum number of elements currently storable by this Index.
      +
      +
      void
      +
      saveIndex(OutputStream outputStream)
      +
      Save this Index to the provided output stream.
      -
      voidsaveIndex(String pathToIndex) + +
      void
      +
      saveIndex(String pathToIndex)
      +
      Save this Index to a file at the provided filename.
      -
      voidsetEf(long ef) -
      Set the default EF ("query search depth") to use when query(float[], int) is called.
      -
      voidsetNumThreads(int numThreads) + +
      void
      +
      setEf(long ef)
      +
      +
      Set the default EF ("query search depth") to use when query(float[], int) is called.
      +
      +
      void
      +
      setNumThreads(int numThreads)
      +
      Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
      -
      voidunmarkDeleted(long label) + +
      void
      +
      unmarkDeleted(long label)
      +
      Un-mark an element of the index as deleted, making it available again.
      -
      - -
    • -
    + + + + +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    + - -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            Index

            -
            public Index(Index.SpaceType space,
            -             int numDimensions)
            -
            Create a new Index that uses the given Index.SpaceType to store and compare +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              Index

              +
              public Index(Index.SpaceType space, + int numDimensions)
              +
              Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
              -
              -
              Parameters:
              +
              +
              Parameters:
              space - the space type to use when storing and comparing vectors.
              numDimensions - the number of dimensions per vector.
              +
            • -
            - - - -
              -
            • -

              Index

              -
              public Index(Index.SpaceType space,
              -             int numDimensions,
              -             long indexM,
              -             long efConstruction,
              -             long randomSeed,
              -             long maxElements,
              -             Index.StorageDataType storageDataType)
              -
              Create a new Index that uses the given Index.SpaceType to store and compare +
            • +
              +

              Index

              +
              public Index(Index.SpaceType space, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
              +
              Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
              -
              -
              Parameters:
              +
              +
              Parameters:
              space - The space type to use when storing and comparing vectors.
              numDimensions - The number of dimensions per vector.
              indexM - Controls the degree of interconnectedness between vectors. Higher values of @@ -507,722 +415,567 @@

              Index

              Does not affect memory usage or size of the index.
              randomSeed - A random seed to use when initializing the index's internal data structures.
              maxElements - The maximum number of elements that this index can hold. This is a - performance optimization; if the index contains this number of elements and addItem(float[]) or addItems(float[][], int) is called, the index's capacity will automatically + performance optimization; if the index contains this number of elements and addItem(float[]) or addItems(float[][], int) is called, the index's capacity will automatically expanded to fit the new elements. Setting maxElements in advance helps avoid these expensive resize operations if the number of elements to be added is already known.
              storageDataType - The datatype to use under-the-hood when storing vectors. Different data - type options trade off precision for memory usage and query speed; see Index.StorageDataType for available data types.
              + type options trade off precision for memory usage and query speed; see Index.StorageDataType for available data types.
              +
            +
          • -
          -
            -
          • - - -

            Method Detail

            - - - -
              -
            • -

              load

              -
              public static Index load(String filename,
              -                         Index.SpaceType space,
              -                         int numDimensions,
              -                         Index.StorageDataType storageDataType)
              -
              Load a Voyager index file and create a new Index initialized with the data in that +
            • +
              +

              Method Details

              +
                +
              • +
                +

                load

                +
                public static Index load(String filename, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
                +
                Load a Voyager index file and create a new Index initialized with the data in that file.
                -
                -
                Parameters:
                +
                +
                Parameters:
                filename - A filename to load.
                -
                space - The Index.SpaceType to use when loading the index.
                +
                space - The Index.SpaceType to use when loading the index.
                numDimensions - The number of dimensions per vector.
                -
                storageDataType - The Index.StorageDataType used by the index being loaded.
                -
                Returns:
                -
                An Index whose contents have been initialized with the data provided by the +
                storageDataType - The Index.StorageDataType used by the index being loaded.
                +
                Returns:
                +
                An Index whose contents have been initialized with the data provided by the file.
                -
                Throws:
                -
                RuntimeException - if the index cannot be loaded from the file, or the file contains +
                Throws:
                +
                RuntimeException - if the index cannot be loaded from the file, or the file contains invalid data.
                +
              • -
              - - - -
                -
              • -

                load

                -
                public static Index load(String filename)
                -
                Load a Voyager index file and create a new Index initialized with the data in that +
              • +
                +

                load

                +
                public static Index load(String filename)
                +
                Load a Voyager index file and create a new Index initialized with the data in that file.
                -
                -
                Parameters:
                +
                +
                Parameters:
                filename - A filename to load.
                -
                Returns:
                -
                An Index whose contents have been initialized with the data provided by the +
                Returns:
                +
                An Index whose contents have been initialized with the data provided by the file.
                -
                Throws:
                -
                RuntimeException - if the index cannot be loaded from the file, the file contains invalid +
                Throws:
                +
                RuntimeException - if the index cannot be loaded from the file, the file contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
                +
              • -
              - - - -
                -
              • -

                load

                -
                public static Index load(InputStream inputStream,
                -                         Index.SpaceType space,
                -                         int numDimensions,
                -                         Index.StorageDataType storageDataType)
                +
              • +
                +

                load

                +
                public static Index load(InputStream inputStream, + Index.SpaceType space, + int numDimensions, + Index.StorageDataType storageDataType)
                Interpret the contents of a java.io.InputStream as the contents of a Voyager index file - and create a new Index initialized with the data provided by that stream.
                -
                -
                Parameters:
                -
                inputStream - A InputStream that will provide the contents of a Voyager + and create a new Index initialized with the data provided by that stream.
    +
    +
    Parameters:
    +
    inputStream - A InputStream that will provide the contents of a Voyager index.
    -
    space - The Index.SpaceType to use when loading the index.
    +
    space - The Index.SpaceType to use when loading the index.
    numDimensions - The number of dimensions per vector.
    -
    storageDataType - The Index.StorageDataType used by the index being loaded.
    -
    Returns:
    -
    An Index whose contents have been initialized with the data provided by the +
    storageDataType - The Index.StorageDataType used by the index being loaded.
    +
    Returns:
    +
    An Index whose contents have been initialized with the data provided by the input stream.
    -
    Throws:
    -
    RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
    Throws:
    +
    RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data.
    + - - - - -
      -
    • -

      load

      -
      public static Index load(InputStream inputStream)
      +
    • +
      +

      load

      +
      public static Index load(InputStream inputStream)
      Interpret the contents of a java.io.InputStream as the contents of a Voyager index file - and create a new Index initialized with the data provided by that stream.
      -
      -
      Parameters:
      -
      inputStream - A InputStream that will provide the contents of a Voyager + and create a new Index initialized with the data provided by that stream. +
      +
      Parameters:
      +
      inputStream - A InputStream that will provide the contents of a Voyager index.
      -
      Returns:
      -
      An Index whose contents have been initialized with the data provided by the +
      Returns:
      +
      An Index whose contents have been initialized with the data provided by the input stream.
      -
      Throws:
      -
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains +
      Throws:
      +
      RuntimeException - if the index cannot be loaded from the stream, or the stream contains invalid data, or the file contains an older version of the Voyager file format that requires additional arguments to be provided.
      +
    • -
    - - - -
      -
    • -

      close

      -
      public void close()
      -           throws IOException
      -
      Close this Index and release any memory held by it. Note that this method must be - called to release the memory backing this Index; failing to do so may cause a memory +
    • +
      +

      close

      +
      public void close() + throws IOException
      +
      Close this Index and release any memory held by it. Note that this method must be + called to release the memory backing this Index; failing to do so may cause a memory leak. -

      Any calls to methods after close() is called will fail, as the underlying +

      Any calls to methods after close() is called will fail, as the underlying native C++ object will have been deallocated.

      -
      -
      Specified by:
      -
      close in interface Closeable
      -
      Specified by:
      -
      close in interface AutoCloseable
      -
      Throws:
      -
      IOException - if the C++ destructor fails.
      +
      +
      Specified by:
      +
      close in interface AutoCloseable
      +
      Specified by:
      +
      close in interface Closeable
      +
      Throws:
      +
      IOException - if the C++ destructor fails.
      +
    • -
    - - - - - - - -
      -
    • -

      setEf

      -
      public void setEf(long ef)
      -
      Set the default EF ("query search depth") to use when query(float[], int) is called.
      -
      -
      Parameters:
      +
    • +
      +

      setEf

      +
      public void setEf(long ef)
      +
      Set the default EF ("query search depth") to use when query(float[], int) is called.
      +
      +
      Parameters:
      ef - The new default EF value to use. This value can be overridden on a per-query basis at query time.
      +
    • -
    - - - -
      -
    • -

      getEf

      -
      public int getEf()
      -
      Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
      -
      -
      Returns:
      -
      The current default EF value, used by the Index if no value is provided at +
    • +
      +

      getEf

      +
      public int getEf()
      +
      Get the default EF ("query search depth") that will be uses when query(float[], int) is called.
      +
      +
      Returns:
      +
      The current default EF value, used by the Index if no value is provided at query time.
      +
    • -
    - - - - - - - -
      -
    • -

      getNumDimensions

      -
      public int getNumDimensions()
      -
      Get the number of dimensions used in this Index.
      -
      -
      Returns:
      -
      The number of dimensions used by this Index, and which all vectors within this - Index must have.
      +
    • +
      +

      getNumDimensions

      +
      public int getNumDimensions()
      +
      Get the number of dimensions used in this Index.
      +
      +
      Returns:
      +
      The number of dimensions used by this Index, and which all vectors within this + Index must have.
      +
    • -
    - - - -
      -
    • -

      setNumThreads

      -
      public void setNumThreads(int numThreads)
      +
    • +
      +

      setNumThreads

      +
      public void setNumThreads(int numThreads)
      Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
      -
      -
      Parameters:
      +
      +
      Parameters:
      numThreads - The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call. Note that this affects the number of threads started for each method call - Voyager keeps no long-lived thread pool. For maximum efficiency, pass as much data as possible to each bulk-add or bulk-query method call to minimize overhead.
      +
    • -
    - - - -
      -
    • -

      getNumThreads

      -
      public int getNumThreads()
      +
    • +
      +

      getNumThreads

      +
      public int getNumThreads()
      Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
      -
      -
      Returns:
      +
      +
      Returns:
      The default number of threads used for bulk-add or bulk-query methods if not overridden in each method call.
      +
    • -
    - - - -
      -
    • -

      saveIndex

      -
      public void saveIndex(String pathToIndex)
      -
      Save this Index to a file at the provided filename. This file can be reloaded by using Index.load(...).
      -
      -
      Parameters:
      +
    • +
      +

      saveIndex

      +
      public void saveIndex(String pathToIndex)
      +
      Save this Index to a file at the provided filename. This file can be reloaded by using + Index.load(...).
      +
      +
      Parameters:
      pathToIndex - The output filename to write to.
      +
    • -
    - - - -
      -
    • -

      saveIndex

      -
      public void saveIndex(OutputStream outputStream)
      +
    • +
      +

      saveIndex

      +
      public void saveIndex(OutputStream outputStream)
      Save this Index to the provided output stream. The stream will not be closed automatically - be sure to close the stream saveIndex has completed. The data written to the stream can be reloaded by using Index.load(...).
      -
      -
      Parameters:
      +
      +
      Parameters:
      outputStream - The output stream to write to. This stream will not be closed automatically.
      +
    • -
    - - - -
      -
    • -

      asBytes

      -
      public byte[] asBytes()
      +
    • +
      +

      asBytes

      +
      public byte[] asBytes()
      Returns the contents of this index as an array of bytes. The resulting bytes will contain the same data as if this index was serialized to disk and then read back into memory again.
      -
      -
      Returns:
      +
      +
      Returns:
      A byte array representing the contents of the index
      +
    • -
    - - - -
      -
    • -

      addItem

      -
      public long addItem(float[] vector)
      -
      Add an item (a vector) to this Index. The item will automatically be given an - identifier equal to the return value of getNumElements().
      -
      -
      Parameters:
      +
    • +
      +

      addItem

      +
      public long addItem(float[] vector)
      +
      Add an item (a vector) to this Index. The item will automatically be given an + identifier equal to the return value of getNumElements().
      +
      +
      Parameters:
      vector - The vector to add to the index.
      -
      Returns:
      +
      Returns:
      The long ID that was assigned to this vector.
      -
      Throws:
      -
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
      Throws:
      +
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
    • -
    - - - -
      -
    • -

      addItem

      -
      public long addItem(float[] vector,
      -                    long id)
      -
      Add an item (a vector) to this Index with the provided identifier.
      -
      -
      Parameters:
      +
    • +
      +

      addItem

      +
      public long addItem(float[] vector, + long id)
      +
      Add an item (a vector) to this Index with the provided identifier.
      +
      +
      Parameters:
      vector - The vector to add to the index.
      id - The 64-bit integer denoting the identifier of this vector.
      -
      Returns:
      +
      Returns:
      The long ID that was assigned to this vector.
      -
      Throws:
      -
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
      Throws:
      +
      RuntimeException - If the provided vector does not contain exactly getNumDimensions() dimensions.
      +
    • -
    - - - -
      -
    • -

      addItems

      -
      public long[] addItems(float[][] vectors,
      -                       int numThreads)
      -
      Add multiple items (vectors) to this Index.
      -
      -
      Parameters:
      +
    • +
      +

      addItems

      +
      public long[] addItems(float[][] vectors, + int numThreads)
      +
      Add multiple items (vectors) to this Index.
      +
      +
      Parameters:
      vectors - The vectors to add to the index.
      numThreads - The number of threads to use when adding the provided vectors. If -1 (the default), the number of CPUs available on the current machine will be used.
      -
      Returns:
      +
      Returns:
      The auto-generated long IDs that were assigned to the provided vectors, in the same order as the provided vectors.
      -
      Throws:
      -
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      +
      Throws:
      +
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      +
    • -
    - - - -
      -
    • -

      addItems

      -
      public long[] addItems(float[][] vectors,
      -                       long[] ids,
      -                       int numThreads)
      -
      Add multiple items (vectors) to this Index with the provided identifiers.
      -
      -
      Parameters:
      +
    • +
      +

      addItems

      +
      public long[] addItems(float[][] vectors, + long[] ids, + int numThreads)
      +
      Add multiple items (vectors) to this Index with the provided identifiers.
      +
      +
      Parameters:
      vectors - The vectors to add to the index.
      ids - The 64-bit identifiers that correspond with each of the provided vectors.
      numThreads - The number of threads to use when adding the provided vectors. If -1 (the default), the number of CPUs available on the current machine will be used. Note that this - causes a temporary C++ thread pool to be used. Instead of calling addItems in a - tight loop, consider passing more data to each addItems call instead to reduce + causes a temporary C++ thread pool to be used. Instead of calling addItems(float[][],int) in a + tight loop, consider passing more data to each addItems(float[][],int) call instead to reduce overhead.
      -
      Returns:
      +
      Returns:
      The long IDs that were assigned to the provided vectors, in the same order as the provided vectors.
      -
      Throws:
      -
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      -
      RuntimeException - If the list of IDs does not have the same length as the list of +
      Throws:
      +
      RuntimeException - If any of the provided vectors do not contain exactly getNumDimensions() dimensions.
      +
      RuntimeException - If the list of IDs does not have the same length as the list of provided vectors.
      +
    • -
    - - - -
      -
    • -

      getVector

      -
      public float[] getVector(long id)
      +
    • +
      +

      getVector

      +
      public float[] getVector(long id)
      Get the vector for the provided identifier.
      -
      -
      Parameters:
      +
      +
      Parameters:
      id - The identifier whose vector will be fetched.
      -
      Returns:
      +
      Returns:
      A float array representing the values of the vector.
      -
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      Throws:
      +
      RuntimeException - If the provided identifier is not present in the Index.
      +
    • -
    - - - -
      -
    • -

      getVectors

      -
      public float[][] getVectors(long[] ids)
      +
    • +
      +

      getVectors

      +
      public float[][] getVectors(long[] ids)
      Get the vectors for a provided array of identifiers.
      -
      -
      Parameters:
      +
      +
      Parameters:
      ids - The identifiers whose vector will be fetched.
      -
      Returns:
      +
      Returns:
      A nested float array representing the values of the vectors corresponding with each ID.
      -
      Throws:
      -
      RuntimeException - If any of the provided identifiers are not present in the Index.
      +
      Throws:
      +
      RuntimeException - If any of the provided identifiers are not present in the Index.
      +
    • -
    - - - -
      -
    • -

      getIDs

      -
      public long[] getIDs()
      +
    • +
      +

      getIDs

      +
      public long[] getIDs()
      Get the list of identifiers currently stored by this index.
      -
      -
      Returns:
      +
      +
      Returns:
      a long array of identifiers.
      +
    • -
    - - - -
      -
    • -

      query

      -
      public Index.QueryResults query(float[] queryVector,
      -                                int k)
      -
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      -
      Parameters:
      +
    • +
      +

      query

      +
      public Index.QueryResults query(float[] queryVector, + int k)
      +
      Query this Index for approximate nearest neighbors of a single query vector.
      +
      +
      Parameters:
      queryVector - A query vector to use for searching.
      k - The number of nearest neighbors to return.
      -
      Returns:
      -
      A Index.QueryResults object, containing the neighbors found that are (approximately) +
      Returns:
      +
      A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
      -
      Throws:
      -
      RecallException - if fewer than k results can be found in the index.
      +
      Throws:
      +
      RecallException - if fewer than k results can be found in the index.
      +
    • -
    - - - -
      -
    • -

      query

      -
      public Index.QueryResults[] query(float[][] queryVectors,
      -                                  int k,
      -                                  int numThreads)
      -
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      -
      Parameters:
      +
    • +
      +

      query

      +
      public Index.QueryResults[] query(float[][] queryVectors, + int k, + int numThreads)
      +
      Query this Index for approximate nearest neighbors of multiple query vectors.
      +
      +
      Parameters:
      queryVectors - The query vectors to use for searching.
      k - The number of nearest neighbors to return for each query vector
      numThreads - The number of threads to use when searching. If -1, all available CPU cores will be used. Note that passing a number of threads other than 1 will cause a temporary C++ - thread pool to be used. Instead of calling query in a tight loop, consider passing + thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing more data to each call instead to reduce overhead.
      -
      Returns:
      -
      An array of Index.QueryResults objects, each containing the neighbors found that are - (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      -
      Throws:
      -
      RecallException - if fewer than k results can be found in the index for one or +
      Returns:
      +
      An array of Index.QueryResults objects, each containing the neighbors found that are + (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      +
      Throws:
      +
      RecallException - if fewer than k results can be found in the index for one or more queries.
      +
    • -
    - - - -
      -
    • -

      query

      -
      public Index.QueryResults query(float[] queryVector,
      -                                int k,
      -                                long queryEf)
      -
      Query this Index for approximate nearest neighbors of a single query vector.
      -
      -
      Parameters:
      +
    • +
      +

      query

      +
      public Index.QueryResults query(float[] queryVector, + int k, + long queryEf)
      +
      Query this Index for approximate nearest neighbors of a single query vector.
      +
      +
      Parameters:
      queryVector - A query vector to use for searching.
      k - The number of nearest neighbors to return.
      queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
      -
      Returns:
      -
      A Index.QueryResults object, containing the neighbors found that are (approximately) +
      Returns:
      +
      A Index.QueryResults object, containing the neighbors found that are (approximately) nearest to the query vector.
      -
      Throws:
      -
      RecallException - if fewer than k results can be found in the index.
      +
      Throws:
      +
      RecallException - if fewer than k results can be found in the index.
      +
    • -
    - - - -
      -
    • -

      query

      -
      public Index.QueryResults[] query(float[][] queryVectors,
      -                                  int k,
      -                                  int numThreads,
      -                                  long queryEf)
      -
      Query this Index for approximate nearest neighbors of multiple query vectors.
      -
      -
      Parameters:
      +
    • +
      +

      query

      +
      public Index.QueryResults[] query(float[][] queryVectors, + int k, + int numThreads, + long queryEf)
      +
      Query this Index for approximate nearest neighbors of multiple query vectors.
      +
      +
      Parameters:
      queryVectors - The query vectors to use for searching.
      k - The number of nearest neighbors to return for each query vector
      numThreads - The number of threads to use when searching. If -1, all available CPU cores will be used. Note that passing a number of threads other than 1 will cause a temporary C++ - thread pool to be used. Instead of calling query in a tight loop, consider passing + thread pool to be used. Instead of calling query(float[],int) in a tight loop, consider passing more data to each call instead to reduce overhead.
      queryEf - The per-query "ef" value to use. Larger values produce more accurate results at the expense of query time.
      -
      Returns:
      -
      An array of Index.QueryResults objects, each containing the neighbors found that are - (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      -
      Throws:
      -
      RecallException - if fewer than k results can be found in the index for one or +
      Returns:
      +
      An array of Index.QueryResults objects, each containing the neighbors found that are + (approximately) nearest to the corresponding query vector. The returned list of Index.QueryResults will contain the same number of elements as queryVectors.
      +
      Throws:
      +
      RecallException - if fewer than k results can be found in the index for one or more queries.
      +
    • -
    - - - -
      -
    • -

      markDeleted

      -
      public void markDeleted(long label)
      +
    • +
      +

      markDeleted

      +
      public void markDeleted(long label)
      Mark an element of the index as deleted. Deleted elements will be skipped when querying, but will still be present in the index.
      -
      -
      Parameters:
      +
      +
      Parameters:
      label - The ID of the element to mark as deleted.
      -
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      Throws:
      +
      RuntimeException - If the provided identifier is not present in the Index.
      +
    • -
    - - - -
      -
    • -

      unmarkDeleted

      -
      public void unmarkDeleted(long label)
      +
    • +
      +

      unmarkDeleted

      +
      public void unmarkDeleted(long label)
      Un-mark an element of the index as deleted, making it available again.
      -
      -
      Parameters:
      +
      +
      Parameters:
      label - The ID of the element to unmark as deleted.
      -
      Throws:
      -
      RuntimeException - If the provided identifier is not present in the Index.
      +
      Throws:
      +
      RuntimeException - If the provided identifier is not present in the Index.
      +
    • -
    - - - -
      -
    • -

      resizeIndex

      -
      public void resizeIndex(long newSize)
      -
      Change the maximum number of elements currently storable by this Index. This operation +
    • +
      +

      resizeIndex

      +
      public void resizeIndex(long newSize)
      +
      Change the maximum number of elements currently storable by this Index. This operation reallocates the memory used by the index and can be quite slow, so it may be useful to set the maximum number of elements in advance if that number is known.
      -
      -
      Parameters:
      -
      newSize - The new number of maximum elements to resize this Index to.
      +
      +
      Parameters:
      +
      newSize - The new number of maximum elements to resize this Index to.
      +
    • -
    - - - -
      -
    • -

      getMaxElements

      -
      public long getMaxElements()
      -
      Get the maximum number of elements currently storable by this Index. If more elements +
    • +
      +

      getMaxElements

      +
      public long getMaxElements()
      +
      Get the maximum number of elements currently storable by this Index. If more elements are added than getMaxElements(), the index will be automatically (but slowly) resized.
      -
      -
      Returns:
      -
      The number of elements (vectors) that are currently storable in this Index.
      +
      +
      Returns:
      +
      The number of elements (vectors) that are currently storable in this Index.
      +
    • -
    - - - -
      -
    • -

      getNumElements

      -
      public long getNumElements()
      -
      Get the number of elements currently in this Index.
      -
      -
      Returns:
      -
      The number of elements (vectors) in this Index. This count includes any deleted +
    • +
      +

      getNumElements

      +
      public long getNumElements()
      +
      Get the number of elements currently in this Index.
      +
      +
      Returns:
      +
      The number of elements (vectors) in this Index. This count includes any deleted elements.
      +
    • -
    - - - -
      -
    • -

      getEfConstruction

      -
      public long getEfConstruction()
      -
      Get the EF Construction value used when adding new elements to this Index.
      -
      -
      Returns:
      +
    • +
      +

      getEfConstruction

      +
      public long getEfConstruction()
      +
      Get the EF Construction value used when adding new elements to this Index.
      +
      +
      Returns:
      The current EF Construction value (i.e.: the number of neighbors to search for when adding new elements).
      +
    • -
    - - - -
      -
    • -

      getM

      -
      public long getM()
      -
      Get the M value used when adding new elements to this Index.
      -
      -
      Returns:
      +
    • +
      +

      getM

      +
      public long getM()
      +
      Get the M value used when adding new elements to this Index.
      +
      +
      Returns:
      The current M value (i.e.: the number of links between adjacent vectors to create when adding elements).
      +
    + - - - - + - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html index ace70f40..bea276c5 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.QueryResults.html @@ -1,349 +1,219 @@ - - + - - + StringIndex.QueryResults (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -
    com.spotify.voyager.jni
    -

    Class StringIndex.QueryResults

    + +

    Class StringIndex.QueryResults

    -
    - -
    -
      -
    • -
      +
      java.lang.Object +
      com.spotify.voyager.jni.StringIndex.QueryResults
      +
      +
      +
      Enclosing class:
      -
      StringIndex
      +
      StringIndex

      -
      -
      public static class StringIndex.QueryResults
      -extends Object
      +
      public static class StringIndex.QueryResults +extends Object
      A wrapper class for nearest neighbor query results.
      -
    • -
    -
    -
    -
    -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            QueryResults

            -
            public QueryResults(String[] names,
            -                    float[] distances)
            +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              QueryResults

              +
              public QueryResults(String[] names, + float[] distances)
              +
            +
          • -
          -
            -
          • - - -

            Method Detail

            - - - -
              -
            • -

              getNames

              -
              public String[] getNames()
              +
            • +
              +

              Method Details

              +
                +
              • +
                +

                getNames

                +
                public String[] getNames()
                +
              • -
              - - - -
                -
              • -

                getDistances

                -
                public float[] getDistances()
                +
              • +
                +

                getDistances

                +
                public float[] getDistances()
                +
              • -
              - - - -
                -
              • -

                getName

                -
                public String getName(int index)
                +
              • +
                +

                getName

                +
                public String getName(int index)
                +
              • -
              - - - -
                -
              • -

                getDistance

                -
                public float getDistance(int index)
                +
              • +
                +

                getDistance

                +
                public float getDistance(int index)
                +
              • -
              - - - -
                -
              • -

                getNumResults

                -
                public int getNumResults()
                +
              • +
                +

                getNumResults

                +
                public int getNumResults()
                +
              • -
              - - - - +
            -
          • -
          -
    -
    + - - -
    +
    +
    + +
    -
    - -
    - - -
    - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/StringIndex.html b/docs/java/com/spotify/voyager/jni/StringIndex.html index 4bfa5b25..37b8949f 100644 --- a/docs/java/com/spotify/voyager/jni/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/StringIndex.html @@ -1,360 +1,286 @@ - - + - - + StringIndex (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -
    com.spotify.voyager.jni
    -

    Class StringIndex

    + +

    Class StringIndex

    -
    - -
    -
      -
    • -
      +
      java.lang.Object +
      com.spotify.voyager.jni.StringIndex
      +
      +
      +
      All Implemented Interfaces:
      -
      Closeable, AutoCloseable
      +
      Closeable, AutoCloseable

      -
      -
      public class StringIndex
      -extends Object
      -implements Closeable
      +
      public class StringIndex +extends Object +implements Closeable
      Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.

      StringIndex can only accommodate up to 2^31 - 1 (2.1B) items, despite typical Voyager indices allowing up to 2^63 - 1 (9e18) items.

      -
    • -
    -
    -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Nested Class Summary

          - - - - - - - - - - -
          Nested Classes 
          Modifier and TypeClass and Description
          static class StringIndex.QueryResults +
        • +
          +

          Nested Class Summary

          +
          Nested Classes
          +
          +
          Modifier and Type
          +
          Class
          +
          Description
          +
          static class 
          + +
          A wrapper class for nearest neighbor query results.
          -
        • +
    +
    + - -
      -
    • - - -

      Constructor Summary

      - - - - - - - - - - - -
      Constructors 
      Constructor and Description
      StringIndex(Index.SpaceType spaceType, - int numDimensions) +
    • +
      +

      Constructor Summary

      +
      Constructors
      +
      +
      Constructor
      +
      Description
      +
      StringIndex(Index.SpaceType spaceType, + int numDimensions)
      +
      Instantiate a new empty index with the specified space type and dimensionality
      -
    • StringIndex(Index.SpaceType spaceType, - int numDimensions, - long indexM, - long efConstruction, - long randomSeed, - long maxElements, - Index.StorageDataType storageDataType) + +
      StringIndex(Index.SpaceType spaceType, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
      +
      Instantiate an empty index with the specified index parameters
      -
      +
    +
    + - - + +
    void
    +
    saveIndex(String outputDirectory, + String indexFilename, + String nameListFilename)
    +
     
    + + + +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    + - -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            StringIndex

            -
            public StringIndex(Index.SpaceType spaceType,
            -                   int numDimensions)
            +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              StringIndex

              +
              public StringIndex(Index.SpaceType spaceType, + int numDimensions)
              Instantiate a new empty index with the specified space type and dimensionality
              -
              -
              Parameters:
              +
              +
              Parameters:
              spaceType - Type of space and distance calculation used when determining distance between embeddings in the index, @see com.spotify.voyager.jni.Index.SpaceType
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              +
            • -
            - - - -
              -
            • -

              StringIndex

              -
              public StringIndex(Index.SpaceType spaceType,
              -                   int numDimensions,
              -                   long indexM,
              -                   long efConstruction,
              -                   long randomSeed,
              -                   long maxElements,
              -                   Index.StorageDataType storageDataType)
              +
            • +
              +

              StringIndex

              +
              public StringIndex(Index.SpaceType spaceType, + int numDimensions, + long indexM, + long efConstruction, + long randomSeed, + long maxElements, + Index.StorageDataType storageDataType)
              Instantiate an empty index with the specified index parameters
              -
              -
              Parameters:
              +
              +
              Parameters:
              spaceType - Type of space and distance calculation used when determining distance between embeddings in the index, @see com.spotify.voyager.jni.Index.SpaceType
              numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
              @@ -367,217 +293,192 @@

              StringIndex

              storageDataType - Type to store the embedding values as, @see com.spotify.voyager.jni.StorageDataType
              +
            +
          • -
          -
            -
          • - - -

            Method Detail

            - - - -
              -
            • -

              load

              -
              public static StringIndex load(String indexFilename,
              -                               String nameListFilename,
              -                               Index.SpaceType spaceType,
              -                               int numDimensions,
              -                               Index.StorageDataType storageDataType)
              +
            • +
              +

              Method Details

              +
                +
              • +
                +

                load

                +
                public static StringIndex load(String indexFilename, + String nameListFilename, + Index.SpaceType spaceType, + int numDimensions, + Index.StorageDataType storageDataType)
                Load a previously constructed index from the provided file location. It is important that the dimensions, space type, and storage data type provided are the same that the index was constructed with.
                -
                -
                Parameters:
                +
                +
                Parameters:
                indexFilename - Filename of the underlying HNSW index
                nameListFilename - Filename of the JSON encoded names list
                -
                spaceType - @see com.spotify.voyager.jni.Index.SpaceType
                +
                spaceType -
                numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
                -
                storageDataType - @see com.spotify.voyager.jni.Index.StorageDataType
                -
                Returns:
                +
                storageDataType -
                +
                Returns:
                reference to the loaded StringIndex
                +
                See Also:
                +
                + +
                +
              • -
              - - - -
                -
              • -

                load

                -
                public static StringIndex load(InputStream indexInputStream,
                -                               InputStream nameListInputStream,
                -                               Index.SpaceType spaceType,
                -                               int numDimensions,
                -                               Index.StorageDataType storageDataType)
                +
              • +
                +

                load

                +
                public static StringIndex load(InputStream indexInputStream, + InputStream nameListInputStream, + Index.SpaceType spaceType, + int numDimensions, + Index.StorageDataType storageDataType)
                Load a previously constructed index from the provided input streams. It is important that the dimensions, space type, and storage data type provided are the same that the index was constructed with.
                -
                -
                Parameters:
                +
                +
                Parameters:
                indexInputStream - input stream pointing to the underlying HNSW index
                nameListInputStream - input stream pointing to the JSON encoded names list
                -
                spaceType - @see com.spotify.voyager.jni.Index.SpaceType
                +
                spaceType -
                numDimensions - Number of dimensions of each embedding stored in the underlying HNSW index
                -
                storageDataType - @see com.spotify.voyager.jni.Index.StorageDataType
                -
                Returns:
                +
                storageDataType -
                +
                Returns:
                reference to the loaded StringIndex
                +
                See Also:
                +
                + +
                +
              • -
              - - - -
                -
              • -

                load

                -
                public static StringIndex load(String indexFilename,
                -                               String nameListFilename)
                +
              • +
                +

                load

                +
                public static StringIndex load(String indexFilename, + String nameListFilename)
                Load a previously constructed index from the provided file location. The space type, dimensions, and storage data type are read from the file metadata.
                -
                -
                Parameters:
                +
                +
                Parameters:
                indexFilename - Filename of the underlying HNSW index
                nameListFilename - Filename of the JSON encoded names list
                -
                Returns:
                +
                Returns:
                reference to the loaded StringIndex
                +
              • -
              - - - -
                -
              • -

                load

                -
                public static StringIndex load(InputStream indexInputStream,
                -                               InputStream nameListInputStream)
                +
              • +
                +

                load

                +
                public static StringIndex load(InputStream indexInputStream, + InputStream nameListInputStream)
                Load a previously constructed index from the provided input stream. The space type, dimensions, and storage data type are read from the file metadata.
                -
                -
                Parameters:
                +
                +
                Parameters:
                indexInputStream - input stream pointing to the underlying HNSW index
                nameListInputStream - input stream pointing to the JSON encoded names list
                -
                Returns:
                +
                Returns:
                reference to the loaded StringIndex
                +
              • -
              - - - -
                -
              • -

                saveIndex

                -
                public void saveIndex(String outputDirectory)
                -               throws IOException
                +
              • +
                +

                saveIndex

                +
                public void saveIndex(String outputDirectory) + throws IOException
                Save the underlying index and JSON encoded name list to the provided output directory
                -
                -
                Parameters:
                +
                +
                Parameters:
                outputDirectory - directory to output files to
                -
                Throws:
                -
                IOException - when there is an error writing to JSON or saving to disk
                +
                Throws:
                +
                IOException - when there is an error writing to JSON or saving to disk
                +
              • -
              - - - - - - - -
                -
              • -

                saveIndex

                -
                public void saveIndex(OutputStream indexOutputStream,
                -                      OutputStream namesListOutputStream)
                -               throws IOException
                +
              • +
                +

                saveIndex

                +
                public void saveIndex(OutputStream indexOutputStream, + OutputStream namesListOutputStream) + throws IOException
                Save the underlying HNSW index and JSON encoded names list to the provided output streams
                -
                -
                Parameters:
                +
                +
                Parameters:
                indexOutputStream - output stream pointing to the location to save the HNSW index
                namesListOutputStream - output stream pointing to the location to save the JSON names list
                -
                Throws:
                -
                IOException - when there is an error writing to JSON or the output streams
                +
                Throws:
                +
                IOException - when there is an error writing to JSON or the output streams
                +
              • -
              - - - -
                -
              • -

                addItem

                -
                public void addItem(String name,
                -                    float[] vector)
                +
              • +
                +

                addItem

                +
                public void addItem(String name, + float[] vector)
                +
              • -
              - - - - - - - - - - - -
                -
              • -

                getNumElements

                -
                public long getNumElements()
                +
              • +
                +

                getNumElements

                +
                public long getNumElements()
                +
              • -
              - - - -
                -
              • -

                getVector

                -
                public float[] getVector(String name)
                +
              • +
                +

                getVector

                +
                public float[] getVector(String name)
                +
              • -
              - - - -
                -
              • -

                query

                -
                public StringIndex.QueryResults query(float[] queryVector,
                -                                      int numNeighbors,
                -                                      int ef)
                +
              • +
                +

                query

                +
                public StringIndex.QueryResults query(float[] queryVector, + int numNeighbors, + int ef)
                Find the nearest neighbors of the provided embedding.
                -
                -
                Parameters:
                +
                +
                Parameters:
                queryVector - The vector to center the search around.
                numNeighbors - The number of neighbors to return. The number of results returned may be smaller than this value if the index does not contain enough items.
                @@ -585,153 +486,84 @@

                query

                Increasing this value can improve recall (up to a point) at the cost of increased search latency. The minimum value of this parameter is the requested number of neighbors, and the maximum value is the number of items in the index. -
                Returns:
                +
                Returns:
                a QueryResults object, containing the names of the neighbors and each neighbor's distance from the query vector, sorted in ascending order of distance
                +
              • -
              - - - -
                -
              • -

                query

                -
                public StringIndex.QueryResults[] query(float[][] queryVectors,
                -                                        int numNeighbors,
                -                                        int numThreads,
                -                                        int ef)
                +
              • +
                +

                query

                +
                public StringIndex.QueryResults[] query(float[][] queryVectors, + int numNeighbors, + int numThreads, + int ef)
                Query for multiple target vectors in parallel.
                -
                -
                Parameters:
                +
                +
                Parameters:
                queryVectors - Array of query vectors to search around
                numNeighbors - Number of neighbors to get for each target
                numThreads - Number of threads to use for the underlying index search. -1 uses all available CPU cores
                ef - Search depth in the graph
                -
                Returns:
                +
                Returns:
                Array of QueryResults, one for each target vector
                +
              • -
              - - - - - - - -
                -
              • -

                resizeIndex

                -
                public void resizeIndex(long newSize)
                -
                Change the maximum number of elements currently storable by this Index. This operation +
              • +
                +

                resizeIndex

                +
                public void resizeIndex(long newSize)
                +
                Change the maximum number of elements currently storable by this Index. This operation reallocates the memory used by the index and can be quite slow, so it may be useful to set the maximum number of elements in advance if that number is known.
                -
                -
                Parameters:
                -
                newSize - The new number of maximum elements to resize this Index to.
                +
                +
                Parameters:
                +
                newSize - The new number of maximum elements to resize this Index to.
                +
              • -
              - - - -
                -
              • -

                getMaxElements

                -
                public long getMaxElements()
                -
                Get the maximum number of elements currently storable by this Index. If more elements +
              • +
                +

                getMaxElements

                +
                public long getMaxElements()
                +
                Get the maximum number of elements currently storable by this Index. If more elements are added than getMaxElements(), the index will be automatically (but slowly) resized.
                -
                -
                Returns:
                -
                The number of elements (vectors) that are currently storable in this Index.
                +
                +
                Returns:
                +
                The number of elements (vectors) that are currently storable in this Index.
                +
              +
            -
          • -
          -
    - + - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html index 8f1fd7f7..2dca8906 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.QueryResults.html @@ -1,196 +1,114 @@ - - + - - + Uses of Class com.spotify.voyager.jni.Index.QueryResults (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Uses of Class
    com.spotify.voyager.jni.Index.QueryResults

    +

    Uses of Class
    com.spotify.voyager.jni.Index.QueryResults

    -
    -
    - - -
    +
    +
    + +
    +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html index 14174f01..23c201ff 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.SpaceType.html @@ -1,276 +1,186 @@ - - + - + +Uses of Enum com.spotify.voyager.jni.Index.SpaceType (voyager 2.1.0 API) + -Uses of Class com.spotify.voyager.jni.Index.SpaceType (voyager 2.1.0 API) - + + + + + + + - - + + +
    + +
    +
    -

    Uses of Class
    com.spotify.voyager.jni.Index.SpaceType

    +

    Uses of Enum
    com.spotify.voyager.jni.Index.SpaceType

    -
    -
    - - -
    +
    +
    + +
    +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html index da4f6d3b..ca34ad6e 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.StorageDataType.html @@ -1,257 +1,168 @@ - - + - + +Uses of Enum com.spotify.voyager.jni.Index.StorageDataType (voyager 2.1.0 API) + -Uses of Class com.spotify.voyager.jni.Index.StorageDataType (voyager 2.1.0 API) - + + + + + + + - - + + +
    + +
    +
    -

    Uses of Class
    com.spotify.voyager.jni.Index.StorageDataType

    +

    Uses of Enum
    com.spotify.voyager.jni.Index.StorageDataType

    -
    -
    - - -
    +
    +
    + +
    +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/class-use/Index.html b/docs/java/com/spotify/voyager/jni/class-use/Index.html index 19015b62..f3feb45b 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/Index.html +++ b/docs/java/com/spotify/voyager/jni/class-use/Index.html @@ -1,198 +1,116 @@ - - + - - + Uses of Class com.spotify.voyager.jni.Index (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Uses of Class
    com.spotify.voyager.jni.Index

    +

    Uses of Class
    com.spotify.voyager.jni.Index

    -
    -
    - - -
    +
    +
    + +
    +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html index b05f2858..12b91eb5 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.QueryResults.html @@ -1,181 +1,101 @@ - - + - - + Uses of Class com.spotify.voyager.jni.StringIndex.QueryResults (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex.QueryResults

    +

    Uses of Class
    com.spotify.voyager.jni.StringIndex.QueryResults

    -
    -
    - - -
    +
    +
    + +
    +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html index 92757384..75e021d3 100644 --- a/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html +++ b/docs/java/com/spotify/voyager/jni/class-use/StringIndex.html @@ -1,198 +1,116 @@ - - + - - + Uses of Class com.spotify.voyager.jni.StringIndex (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Uses of Class
    com.spotify.voyager.jni.StringIndex

    +

    Uses of Class
    com.spotify.voyager.jni.StringIndex

    -
    -
    - - -
    +
    +
    + +
    +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/exception/RecallException.html b/docs/java/com/spotify/voyager/jni/exception/RecallException.html index ccfe1d61..bdf71bc4 100644 --- a/docs/java/com/spotify/voyager/jni/exception/RecallException.html +++ b/docs/java/com/spotify/voyager/jni/exception/RecallException.html @@ -1,299 +1,179 @@ - - + - - + RecallException (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -
    com.spotify.voyager.jni.exception
    -

    Class RecallException

    + +

    Class RecallException

    -
    - -
    -
    -
    -
    +
    + - - +
  • +
    +

    Method Summary

    + +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    +
  • -
    -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            RecallException

            -
            public RecallException(String message)
            +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              RecallException

              +
              public RecallException(String message)
              Constructs a new RecallException with the specified detail message.
              -
              -
              Parameters:
              +
              +
              Parameters:
              message - the detail message
              +
            • -
            - - - -
              -
            • -

              RecallException

              -
              public RecallException(String message,
              -                       Throwable cause)
              +
            • +
              +

              RecallException

              +
              public RecallException(String message, + Throwable cause)
              Constructs a new RecallException with the specified detail message and cause.
              -
              -
              Parameters:
              +
              +
              Parameters:
              message - the detail message
              cause - the cause of the exception
              +
            +
          -
        • -
        -
    -
    + - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/exception/class-use/RecallException.html b/docs/java/com/spotify/voyager/jni/exception/class-use/RecallException.html index 3418111b..fb99c0de 100644 --- a/docs/java/com/spotify/voyager/jni/exception/class-use/RecallException.html +++ b/docs/java/com/spotify/voyager/jni/exception/class-use/RecallException.html @@ -1,126 +1,62 @@ - - + - - + Uses of Class com.spotify.voyager.jni.exception.RecallException (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Uses of Class
    com.spotify.voyager.jni.exception.RecallException

    +

    Uses of Class
    com.spotify.voyager.jni.exception.RecallException

    -
    No usage of com.spotify.voyager.jni.exception.RecallException
    - -
    - - - - - - - +No usage of com.spotify.voyager.jni.exception.RecallException
    +
    +
    + +
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/exception/package-summary.html b/docs/java/com/spotify/voyager/jni/exception/package-summary.html index 9aec16b0..5889107f 100644 --- a/docs/java/com/spotify/voyager/jni/exception/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/exception/package-summary.html @@ -1,146 +1,104 @@ - - + - - + com.spotify.voyager.jni.exception (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Package com.spotify.voyager.jni.exception

    +

    Package com.spotify.voyager.jni.exception

    +
    +
    +
    package com.spotify.voyager.jni.exception
    +
    + -
    - +
    +
    +
    +
    + +
    +
    - - -
    - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/exception/package-tree.html b/docs/java/com/spotify/voyager/jni/exception/package-tree.html index 9d099fc0..90daf983 100644 --- a/docs/java/com/spotify/voyager/jni/exception/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/exception/package-tree.html @@ -1,94 +1,72 @@ - - + - - + com.spotify.voyager.jni.exception Class Hierarchy (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +

    Hierarchy For Package com.spotify.voyager.jni.exception

    -Package Hierarchies: +Package Hierarchies:
    -
    +

    Class Hierarchy

    +
    +
    +
    + +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/exception/package-use.html b/docs/java/com/spotify/voyager/jni/exception/package-use.html index 1acaed8b..eef1f292 100644 --- a/docs/java/com/spotify/voyager/jni/exception/package-use.html +++ b/docs/java/com/spotify/voyager/jni/exception/package-use.html @@ -1,126 +1,62 @@ - - + - - + Uses of Package com.spotify.voyager.jni.exception (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +

    Uses of Package
    com.spotify.voyager.jni.exception

    -
    No usage of com.spotify.voyager.jni.exception
    - -
    - - - - - - - +No usage of com.spotify.voyager.jni.exception
    +
    +
    + +
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/package-summary.html b/docs/java/com/spotify/voyager/jni/package-summary.html index 24eb3a2c..894e6d85 100644 --- a/docs/java/com/spotify/voyager/jni/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/package-summary.html @@ -1,198 +1,138 @@ - - + - - + com.spotify.voyager.jni (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Package com.spotify.voyager.jni

    -
    +

    Package com.spotify.voyager.jni

    +
    +
    +
    package com.spotify.voyager.jni
    +
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    +
    +
    +
    +
    - - - -

    Package com.spotify.voyager.jni Description

    -
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    + + +
    +
    + +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/package-tree.html b/docs/java/com/spotify/voyager/jni/package-tree.html index a92b5a8f..cd1f6e08 100644 --- a/docs/java/com/spotify/voyager/jni/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/package-tree.html @@ -1,155 +1,94 @@ - - + - - + com.spotify.voyager.jni Class Hierarchy (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +

    Hierarchy For Package com.spotify.voyager.jni

    -Package Hierarchies: +Package Hierarchies:
    -
    +

    Class Hierarchy

    +
    +

    Enum Hierarchy

    +
    +
    +
    +
    + +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/package-use.html b/docs/java/com/spotify/voyager/jni/package-use.html index a5d65609..b938e9af 100644 --- a/docs/java/com/spotify/voyager/jni/package-use.html +++ b/docs/java/com/spotify/voyager/jni/package-use.html @@ -1,190 +1,110 @@ - - + - - + Uses of Package com.spotify.voyager.jni (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +

    Uses of Package
    com.spotify.voyager.jni

    -
    -
    - - -
    +
    +
    + +
    +
    - - -
    - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html index 6827eb7a..6b65a2d7 100644 --- a/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/JniLibExtractor.html @@ -1,273 +1,163 @@ - - + - - + JniLibExtractor (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -
    com.spotify.voyager.jni.utils
    -

    Class JniLibExtractor

    + +

    Class JniLibExtractor

    -
    - -
    -
      -
    • -
      -
      -
      public class JniLibExtractor
      -extends Object
      -
    • -
    +
    java.lang.Object +
    com.spotify.voyager.jni.utils.JniLibExtractor
    -
    -
    -
    -
      -
    • + +
      +
        -
          -
        • - - -

          Constructor Detail

          - - - -
            -
          • -

            JniLibExtractor

            -
            public JniLibExtractor()
            +
          • +
            +

            Constructor Details

            +
              +
            • +
              +

              JniLibExtractor

              +
              public JniLibExtractor()
              +
            +
          • -
          -
            -
          • - - -

            Method Detail

            - - - -
              -
            • -

              extractBinaries

              -
              public static String extractBinaries(String libname)
              -
            • -
            +
          • +
            +

            Method Details

            +
              +
            • +
              +

              extractBinaries

              +
              public static String extractBinaries(String libname)
              +
            +
          -
    -
    + - - -
    +
    +
    + +
    -
    - -
    - - -
    - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html index 292f3d42..5b16cef9 100644 --- a/docs/java/com/spotify/voyager/jni/utils/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/TinyJson.html @@ -1,295 +1,181 @@ - - + - - + TinyJson (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -
    com.spotify.voyager.jni.utils
    -

    Class TinyJson

    + +

    Class TinyJson

    -
    - -
    -
      -
    • +
      java.lang.Object +
      com.spotify.voyager.jni.utils.TinyJson
      +
      +

      -
      -
      public class TinyJson
      -extends Object
      +
      public class TinyJson +extends Object
      A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
      -
    • -
    -
    -
    -
    -
    -
    -
    + - - -
    +
    +
    + +
    -
    - -
    - - -
    - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html index 2ae4f74d..a2ba80c2 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/JniLibExtractor.html @@ -1,126 +1,62 @@ - - + - - + Uses of Class com.spotify.voyager.jni.utils.JniLibExtractor (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Uses of Class
    com.spotify.voyager.jni.utils.JniLibExtractor

    +

    Uses of Class
    com.spotify.voyager.jni.utils.JniLibExtractor

    -
    No usage of com.spotify.voyager.jni.utils.JniLibExtractor
    - -
    - - - - - - - +No usage of com.spotify.voyager.jni.utils.JniLibExtractor
    +
    +
    + +
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html index 7a29bff5..17728de1 100644 --- a/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html +++ b/docs/java/com/spotify/voyager/jni/utils/class-use/TinyJson.html @@ -1,126 +1,62 @@ - - + - - + Uses of Class com.spotify.voyager.jni.utils.TinyJson (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Uses of Class
    com.spotify.voyager.jni.utils.TinyJson

    +

    Uses of Class
    com.spotify.voyager.jni.utils.TinyJson

    -
    No usage of com.spotify.voyager.jni.utils.TinyJson
    - -
    - - - - - - - +No usage of com.spotify.voyager.jni.utils.TinyJson
    +
    +
    + +
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/utils/package-summary.html b/docs/java/com/spotify/voyager/jni/utils/package-summary.html index 57556547..0e6fe294 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-summary.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-summary.html @@ -1,151 +1,107 @@ - - + - - + com.spotify.voyager.jni.utils (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Package com.spotify.voyager.jni.utils

    +

    Package com.spotify.voyager.jni.utils

    +
    +
    +
    package com.spotify.voyager.jni.utils
    +
    + -
    - +
    +
    +
    +
    + +
    +
    - - -
    - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/utils/package-tree.html b/docs/java/com/spotify/voyager/jni/utils/package-tree.html index 3de2b956..b1a53fdf 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-tree.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-tree.html @@ -1,140 +1,77 @@ - - + - - + com.spotify.voyager.jni.utils Class Hierarchy (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +

    Hierarchy For Package com.spotify.voyager.jni.utils

    -Package Hierarchies: +Package Hierarchies:
    -
    +

    Class Hierarchy

    +
    +
    +
    +
    + +
    - - - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/jni/utils/package-use.html b/docs/java/com/spotify/voyager/jni/utils/package-use.html index e263c973..d26cce6f 100644 --- a/docs/java/com/spotify/voyager/jni/utils/package-use.html +++ b/docs/java/com/spotify/voyager/jni/utils/package-use.html @@ -1,126 +1,62 @@ - - + - - + Uses of Package com.spotify.voyager.jni.utils (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +

    Uses of Package
    com.spotify.voyager.jni.utils

    -
    No usage of com.spotify.voyager.jni.utils
    - -
    - - - - - - - +No usage of com.spotify.voyager.jni.utils
    +
    +
    + +
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/package-summary.html b/docs/java/com/spotify/voyager/package-summary.html index af796a81..a3d48dbd 100644 --- a/docs/java/com/spotify/voyager/package-summary.html +++ b/docs/java/com/spotify/voyager/package-summary.html @@ -1,89 +1,69 @@ - - + - - + com.spotify.voyager (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    -

    Package com.spotify.voyager

    -
    -
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector - data.
    -
    -

    See: Description

    +

    Package com.spotify.voyager

    -
    - - -

    Package com.spotify.voyager Description

    +
    +
    package com.spotify.voyager
    +
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector - data. For most use cases, Index will be the primary interface to + data. For most use cases, Index will be the primary interface to Voyager's functionality.
    @@ -106,54 +86,30 @@ 

    Package com.spotify.voyager // Serialize this index to use it again later: index.saveIndex("my_tiny_index.voy");

    +
    +
    + -
    - +
    +
    +
    +
    + +
    +
    - - -
    - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/package-tree.html b/docs/java/com/spotify/voyager/package-tree.html index 3673a565..7ddd4c3a 100644 --- a/docs/java/com/spotify/voyager/package-tree.html +++ b/docs/java/com/spotify/voyager/package-tree.html @@ -1,129 +1,66 @@ - - + - - + com.spotify.voyager Class Hierarchy (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +

    Hierarchy For Package com.spotify.voyager

    -Package Hierarchies: +Package Hierarchies:
    - -
    +
    +
    + +
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/com/spotify/voyager/package-use.html b/docs/java/com/spotify/voyager/package-use.html index fd0db02c..1e58b2e6 100644 --- a/docs/java/com/spotify/voyager/package-use.html +++ b/docs/java/com/spotify/voyager/package-use.html @@ -1,126 +1,62 @@ - - + - - + Uses of Package com.spotify.voyager (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +

    Uses of Package
    com.spotify.voyager

    -
    No usage of com.spotify.voyager
    - -
    - - - - - - - +No usage of com.spotify.voyager
    +
    +
    + +
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/copy.svg b/docs/java/copy.svg new file mode 100644 index 00000000..7c46ab15 --- /dev/null +++ b/docs/java/copy.svg @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/docs/java/help-doc.html b/docs/java/help-doc.html index 2f8a1ebf..79602ee3 100644 --- a/docs/java/help-doc.html +++ b/docs/java/help-doc.html @@ -1,231 +1,191 @@ - - + - - + API Help (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    +

    JavaDoc Help

    +
      +
    • Navigation: + +
    • +
    • Kinds of Pages: +
    • -
    • -

      Package

      -

      Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

      -
        -
      • Interfaces (italic)
      • +
      +
      +
      +

      Navigation

      +Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces + +
      +
      +
      +

      Kinds of Pages

      +The following sections describe the different kinds of pages in this collection. +
      +

      Overview

      +

      The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

      +
      +
      +

      Package

      +

      Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

      +
        +
      • Interfaces
      • Classes
      • Enums
      • Exceptions
      • Errors
      • Annotation Types
      -
    • -
    • -

      Class/Interface

      -

      Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

      -
        -
      • Class inheritance diagram
      • + +
        +

        Class or Interface

        +

        Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

        +
          +
        • Class Inheritance Diagram
        • Direct Subclasses
        • All Known Subinterfaces
        • All Known Implementing Classes
        • -
        • Class/interface declaration
        • -
        • Class/interface description
        • +
        • Class or Interface Declaration
        • +
        • Class or Interface Description
        -
          +
          +
          • Nested Class Summary
          • +
          • Enum Constant Summary
          • Field Summary
          • +
          • Property Summary
          • Constructor Summary
          • Method Summary
          • -
          -
            -
          • Field Detail
          • -
          • Constructor Detail
          • -
          • Method Detail
          • -
          -

          Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

          - -
        • -

          Annotation Type

          -

          Each annotation type has its own separate page with the following sections:

          -
            -
          • Annotation Type declaration
          • -
          • Annotation Type description
          • Required Element Summary
          • Optional Element Summary
          • -
          • Element Detail
          • -
          -
        • -
        • -

          Enum

          -

          Each enum has its own separate page with the following sections:

          -
            -
          • Enum declaration
          • -
          • Enum description
          • -
          • Enum Constant Summary
          • -
          • Enum Constant Detail
          • -
          -
        • -
        • -

          Use

          -

          Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

          -
        • -
        • -

          Tree (Class Hierarchy)

          -

          There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

          -
            -
          • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
          • -
          • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
          • -
          -
        • -
        • -

          Deprecated API

          -

          The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

          -
        • -
        • -

          Index

          -

          The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

          -
        • -
        • -

          Prev/Next

          -

          These links take you to the next or previous class, interface, package, or related page.

          -
        • -
        • -

          Frames/No Frames

          -

          These links show and hide the HTML frames. All pages are available with or without frames.

          -
        • -
        • -

          All Classes

          -

          The All Classes link shows all classes and interfaces except non-static nested types.

          -
        • -
        • -

          Serialized Form

          -

          Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

          -
        • -
        • -

          Constant Field Values

          -

          The Constant Field Values page lists the static final fields and their values.

          -
        • -
        -This help file applies to API documentation generated using the standard doclet.
    - -
    - - - - - - - +
    +
      +
    • Enum Constant Details
    • +
    • Field Details
    • +
    • Property Details
    • +
    • Constructor Details
    • +
    • Method Details
    • +
    • Element Details
    • +
    +

    Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

    +

    The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    + +
    +

    Other Files

    +

    Packages and modules may contain pages with additional information related to the declarations nearby.

    +
    +
    +

    Use

    +

    Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

    +
    +
    +

    Tree (Class Hierarchy)

    +

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

    +
      +
    • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
    • +
    • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
    • +
    +
    +
    +

    Serialized Form

    +

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.

    +
    +
    +

    All Packages

    +

    The All Packages page contains an alphabetic index of all packages contained in the documentation.

    +
    +
    +

    All Classes and Interfaces

    +

    The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

    +
    +
    +

    Index

    +

    The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

    +
    +
    +
    +This help file applies to API documentation generated by the standard doclet. +
    +
    + +
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/index-all.html b/docs/java/index-all.html index f46f9837..78c7eb4b 100644 --- a/docs/java/index-all.html +++ b/docs/java/index-all.html @@ -1,117 +1,93 @@ - - + - - + Index (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +
    +
    +

    Index

    +
    +A C D E F G I J L M Q R S T U V W 
    All Classes and Interfaces|All Packages|Serialized Form +

    A

    +
    +
    addItem(float[]) - Method in class com.spotify.voyager.jni.Index
    Add an item (a vector) to this Index.
    -
    addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
    +
    addItem(float[], long) - Method in class com.spotify.voyager.jni.Index
    Add an item (a vector) to this Index with the provided identifier.
    -
    addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItem(String, float[]) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItem(String, List<Float>) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
    +
    addItems(float[][], int) - Method in class com.spotify.voyager.jni.Index
    Add multiple items (vectors) to this Index.
    -
    addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
    +
    addItems(float[][], long[], int) - Method in class com.spotify.voyager.jni.Index
    Add multiple items (vectors) to this Index with the provided identifiers.
    -
    addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
    +
    addItems(Map<String, List<Float>>) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    asBytes() - Method in class com.spotify.voyager.jni.Index
    +
    asBytes() - Method in class com.spotify.voyager.jni.Index
    Returns the contents of this index as an array of bytes.
    - - - -

    C

    -
    -
    close() - Method in class com.spotify.voyager.jni.Index
    +

    C

    +
    +
    close() - Method in class com.spotify.voyager.jni.Index
    Close this Index and release any memory held by it.
    -
    close() - Method in class com.spotify.voyager.jni.StringIndex
    +
    close() - Method in class com.spotify.voyager.jni.StringIndex
     
    com.spotify.voyager - package com.spotify.voyager
    @@ -126,432 +102,369 @@

    C

     
    com.spotify.voyager.jni.utils - package com.spotify.voyager.jni.utils
     
    +
    Cosine - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    +
    +
    Cosine distance; i.e.
    +
    - - - -

    D

    -
    -
    distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
    +

    D

    +
    +
    distances - Variable in class com.spotify.voyager.jni.Index.QueryResults
    A list of distances from each item ID to the query vector for this query.
    - - - -

    E

    -
    -
    extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
    +

    E

    +
    +
    E4M3 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    +
    A custom 8-bit floating point data type with range [-448, 448] and variable precision.
    +
    +
    Euclidean - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    +
    +
    Euclidean distance, also known as L2 distance.
    +
    +
    extractBinaries(String) - Static method in class com.spotify.voyager.jni.utils.JniLibExtractor
     
    - - - -

    F

    -
    -
    finalize() - Method in class com.spotify.voyager.jni.Index
    +

    F

    +
    +
    finalize() - Method in class com.spotify.voyager.jni.Index
     
    +
    Float32 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    +
    A 32-bit floating point ("Float") data type.
    +
    +
    Float8 - Enum constant in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    +
    An 8-bit floating point data type that expects all values to be on [-1, 1].
    +
    - - - -

    G

    -
    -
    getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +

    G

    +
    +
    getDistance(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    getDistances() - Method in class com.spotify.voyager.jni.Index.QueryResults
    Retrieve the list of distances between query vectors and item vectors for the results of this query.
    -
    getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getDistances() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getEf() - Method in class com.spotify.voyager.jni.Index
    +
    getEf() - Method in class com.spotify.voyager.jni.Index
    -
    Get the default EF ("query search depth") that will be uses when Index.query(float[], int) is called.
    +
    Get the default EF ("query search depth") that will be uses when Index.query(float[], int) is called.
    -
    getEfConstruction() - Method in class com.spotify.voyager.jni.Index
    +
    getEfConstruction() - Method in class com.spotify.voyager.jni.Index
    Get the EF Construction value used when adding new elements to this Index.
    -
    getIDs() - Method in class com.spotify.voyager.jni.Index
    +
    getIDs() - Method in class com.spotify.voyager.jni.Index
    Get the list of identifiers currently stored by this index.
    -
    getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    getLabels() - Method in class com.spotify.voyager.jni.Index.QueryResults
    Retrieve the list of item IDs ("labels") returned by this query.
    -
    getM() - Method in class com.spotify.voyager.jni.Index
    +
    getM() - Method in class com.spotify.voyager.jni.Index
    Get the M value used when adding new elements to this Index.
    -
    getMaxElements() - Method in class com.spotify.voyager.jni.Index
    +
    getMaxElements() - Method in class com.spotify.voyager.jni.Index
    Get the maximum number of elements currently storable by this Index.
    -
    getMaxElements() - Method in class com.spotify.voyager.jni.StringIndex
    +
    getMaxElements() - Method in class com.spotify.voyager.jni.StringIndex
    Get the maximum number of elements currently storable by this Index.
    -
    getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getName(int) - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getNames() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNumDimensions() - Method in class com.spotify.voyager.jni.Index
    +
    getNumDimensions() - Method in class com.spotify.voyager.jni.Index
    Get the number of dimensions used in this Index.
    -
    getNumElements() - Method in class com.spotify.voyager.jni.Index
    +
    getNumElements() - Method in class com.spotify.voyager.jni.Index
    Get the number of elements currently in this Index.
    -
    getNumElements() - Method in class com.spotify.voyager.jni.StringIndex
    +
    getNumElements() - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    getNumResults() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    -
    getNumThreads() - Method in class com.spotify.voyager.jni.Index
    +
    getNumThreads() - Method in class com.spotify.voyager.jni.Index
    Get the default number of threads used when adding multiple vectors in bulk oor when querying for multiple vectors simultaneously.
    -
    getSpace() - Method in class com.spotify.voyager.jni.Index
    +
    getSpace() - Method in class com.spotify.voyager.jni.Index
    Get the Index.SpaceType that this Index uses to store and compare vectors.
    -
    getVector(long) - Method in class com.spotify.voyager.jni.Index
    +
    getVector(long) - Method in class com.spotify.voyager.jni.Index
    Get the vector for the provided identifier.
    -
    getVector(String) - Method in class com.spotify.voyager.jni.StringIndex
    +
    getVector(String) - Method in class com.spotify.voyager.jni.StringIndex
     
    -
    getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
    +
    getVectors(long[]) - Method in class com.spotify.voyager.jni.Index
    Get the vectors for a provided array of identifiers.
    - - - -

    I

    -
    -
    Index - Class in com.spotify.voyager.jni
    +

    I

    +
    +
    Index - Class in com.spotify.voyager.jni
    A Voyager index, providing storage of floating-point vectors and the ability to efficiently search among those vectors.
    -
    Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
    +
    Index(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.Index
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
    Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
    +
    Index(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.Index
    Create a new Index that uses the given Index.SpaceType to store and compare numDimensions-dimensional vectors.
    -
    Index.QueryResults - Class in com.spotify.voyager.jni
    +
    Index.QueryResults - Class in com.spotify.voyager.jni
    A container for query results, returned by Index.
    -
    Index.SpaceType - Enum in com.spotify.voyager.jni
    +
    Index.SpaceType - Enum in com.spotify.voyager.jni
    The space, also known as distance metric, to use when searching.
    -
    Index.StorageDataType - Enum in com.spotify.voyager.jni
    +
    Index.StorageDataType - Enum in com.spotify.voyager.jni
    The datatype used to use when storing vectors on disk.
    +
    InnerProduct - Enum constant in enum com.spotify.voyager.jni.Index.SpaceType
    +
    +
    Inner (dot) product.
    +
    - - - -

    J

    -
    -
    JniLibExtractor - Class in com.spotify.voyager.jni.utils
    +

    J

    +
    +
    JniLibExtractor - Class in com.spotify.voyager.jni.utils
     
    -
    JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
    +
    JniLibExtractor() - Constructor for class com.spotify.voyager.jni.utils.JniLibExtractor
     
    - - - -

    L

    -
    -
    labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
    +

    L

    +
    +
    labels - Variable in class com.spotify.voyager.jni.Index.QueryResults
    A list of item IDs ("labels").
    -
    load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    -
    -
    Load a Voyager index file and create a new Index initialized with the data in that - file.
    -
    -
    load(String) - Static method in class com.spotify.voyager.jni.Index
    -
    -
    Load a Voyager index file and create a new Index initialized with the data in that - file.
    -
    -
    load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    +
    load(InputStream) - Static method in class com.spotify.voyager.jni.Index
    Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
    -
    load(InputStream) - Static method in class com.spotify.voyager.jni.Index
    +
    load(InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    Interpret the contents of a java.io.InputStream as the contents of a Voyager index file and create a new Index initialized with the data provided by that stream.
    -
    load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
    -
    Load a previously constructed index from the provided file location.
    +
    Load a previously constructed index from the provided input stream.
    -
    load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(InputStream, InputStream, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided input streams.
    -
    load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(String) - Static method in class com.spotify.voyager.jni.Index
    +
    +
    Load a Voyager index file and create a new Index initialized with the data in that + file.
    +
    +
    load(String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.Index
    +
    +
    Load a Voyager index file and create a new Index initialized with the data in that + file.
    +
    +
    load(String, String) - Static method in class com.spotify.voyager.jni.StringIndex
    Load a previously constructed index from the provided file location.
    -
    load(InputStream, InputStream) - Static method in class com.spotify.voyager.jni.StringIndex
    +
    load(String, String, Index.SpaceType, int, Index.StorageDataType) - Static method in class com.spotify.voyager.jni.StringIndex
    -
    Load a previously constructed index from the provided input stream.
    +
    Load a previously constructed index from the provided file location.
    - - - -

    M

    -
    -
    markDeleted(long) - Method in class com.spotify.voyager.jni.Index
    +

    M

    +
    +
    markDeleted(long) - Method in class com.spotify.voyager.jni.Index
    Mark an element of the index as deleted.
    - - - -

    Q

    -
    -
    query(float[], int) - Method in class com.spotify.voyager.jni.Index
    -
    -
    Query this Index for approximate nearest neighbors of a single query vector.
    -
    -
    query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
    +

    Q

    +
    +
    query(float[][], int, int) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of multiple query vectors.
    -
    query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[][], int, int, int) - Method in class com.spotify.voyager.jni.StringIndex
    -
    Query this Index for approximate nearest neighbors of a single query vector.
    +
    Query for multiple target vectors in parallel.
    -
    query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
    +
    query(float[][], int, int, long) - Method in class com.spotify.voyager.jni.Index
    Query this Index for approximate nearest neighbors of multiple query vectors.
    -
    query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
    +
    query(float[], int) - Method in class com.spotify.voyager.jni.Index
    +
    +
    Query this Index for approximate nearest neighbors of a single query vector.
    +
    +
    query(float[], int, int) - Method in class com.spotify.voyager.jni.StringIndex
    Find the nearest neighbors of the provided embedding.
    -
    query(float[][], int, int, int) - Method in class com.spotify.voyager.jni.StringIndex
    +
    query(float[], int, long) - Method in class com.spotify.voyager.jni.Index
    -
    Query for multiple target vectors in parallel.
    +
    Query this Index for approximate nearest neighbors of a single query vector.
    -
    QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
    +
    QueryResults(long[], float[]) - Constructor for class com.spotify.voyager.jni.Index.QueryResults
    Instantiates a new QueryResults object, provided two identical-length arrays of labels and their corresponding distances.
    -
    QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    QueryResults(String[], float[]) - Constructor for class com.spotify.voyager.jni.StringIndex.QueryResults
     
    - - - -

    R

    -
    -
    readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
    +

    R

    +
    +
    readStringList(InputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
     
    -
    RecallException - Exception in com.spotify.voyager.jni.exception
    +
    RecallException - Exception in com.spotify.voyager.jni.exception
    An exception indicating that the desired recall of a query cannot be achieved
    -
    RecallException(String) - Constructor for exception com.spotify.voyager.jni.exception.RecallException
    +
    RecallException(String) - Constructor for exception com.spotify.voyager.jni.exception.RecallException
    Constructs a new RecallException with the specified detail message.
    -
    RecallException(String, Throwable) - Constructor for exception com.spotify.voyager.jni.exception.RecallException
    +
    RecallException(String, Throwable) - Constructor for exception com.spotify.voyager.jni.exception.RecallException
    Constructs a new RecallException with the specified detail message and cause.
    -
    resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
    +
    resizeIndex(long) - Method in class com.spotify.voyager.jni.Index
    Change the maximum number of elements currently storable by this Index.
    -
    resizeIndex(long) - Method in class com.spotify.voyager.jni.StringIndex
    +
    resizeIndex(long) - Method in class com.spotify.voyager.jni.StringIndex
    Change the maximum number of elements currently storable by this Index.
    - - - -

    S

    -
    -
    saveIndex(String) - Method in class com.spotify.voyager.jni.Index
    +

    S

    +
    +
    saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
    -
    Save this Index to a file at the provided filename.
    +
    Save this Index to the provided output stream.
    -
    saveIndex(OutputStream) - Method in class com.spotify.voyager.jni.Index
    +
    saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
    -
    Save this Index to the provided output stream.
    +
    Save the underlying HNSW index and JSON encoded names list to the provided output streams
    -
    saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(String) - Method in class com.spotify.voyager.jni.Index
    -
    Save the underlying index and JSON encoded name list to the provided output directory
    +
    Save this Index to a file at the provided filename.
    -
    saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
    -
     
    -
    saveIndex(OutputStream, OutputStream) - Method in class com.spotify.voyager.jni.StringIndex
    +
    saveIndex(String) - Method in class com.spotify.voyager.jni.StringIndex
    -
    Save the underlying HNSW index and JSON encoded names list to the provided output streams
    +
    Save the underlying index and JSON encoded name list to the provided output directory
    -
    setEf(long) - Method in class com.spotify.voyager.jni.Index
    +
    saveIndex(String, String, String) - Method in class com.spotify.voyager.jni.StringIndex
    +
     
    +
    setEf(long) - Method in class com.spotify.voyager.jni.Index
    -
    Set the default EF ("query search depth") to use when Index.query(float[], int) is called.
    +
    Set the default EF ("query search depth") to use when Index.query(float[], int) is called.
    -
    setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
    +
    setNumThreads(int) - Method in class com.spotify.voyager.jni.Index
    Set the default number of threads to use when adding multiple vectors in bulk, or when querying for multiple vectors simultaneously.
    -
    StringIndex - Class in com.spotify.voyager.jni
    +
    StringIndex - Class in com.spotify.voyager.jni
    Wrapper around com.spotify.voyager.jni.Index with a simplified interface which maps the index ID to a provided String.
    -
    StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
    +
    StringIndex(Index.SpaceType, int) - Constructor for class com.spotify.voyager.jni.StringIndex
    Instantiate a new empty index with the specified space type and dimensionality
    -
    StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
    +
    StringIndex(Index.SpaceType, int, long, long, long, long, Index.StorageDataType) - Constructor for class com.spotify.voyager.jni.StringIndex
    Instantiate an empty index with the specified index parameters
    -
    StringIndex.QueryResults - Class in com.spotify.voyager.jni
    +
    StringIndex.QueryResults - Class in com.spotify.voyager.jni
    A wrapper class for nearest neighbor query results.
    - - - -

    T

    -
    -
    TinyJson - Class in com.spotify.voyager.jni.utils
    +

    T

    +
    +
    TinyJson - Class in com.spotify.voyager.jni.utils
    A dependency-free, super tiny JSON serde class that only supports reading and writing lists of strings.
    -
    TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
    +
    TinyJson() - Constructor for class com.spotify.voyager.jni.utils.TinyJson
     
    -
    toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
    +
    toString() - Method in class com.spotify.voyager.jni.Index.QueryResults
     
    -
    toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
    +
    toString() - Method in class com.spotify.voyager.jni.StringIndex.QueryResults
     
    - - - -

    U

    -
    -
    unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
    +

    U

    +
    +
    unmarkDeleted(long) - Method in class com.spotify.voyager.jni.Index
    Un-mark an element of the index as deleted, making it available again.
    - - - -

    V

    -
    -
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    +

    V

    +
    +
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    Returns the enum constant of this type with the specified name.
    -
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    valueOf(String) - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    Returns the enum constant of this type with the specified name.
    -
    values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    +
    values() - Static method in enum com.spotify.voyager.jni.Index.SpaceType
    Returns an array containing the constants of this enum type, in the order they are declared.
    -
    values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    +
    values() - Static method in enum com.spotify.voyager.jni.Index.StorageDataType
    Returns an array containing the constants of this enum type, in the order they are declared.
    - - - -

    W

    -
    -
    writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
    +

    W

    +
    +
    writeStringList(Iterable<String>, OutputStream) - Static method in class com.spotify.voyager.jni.utils.TinyJson
     
    -A C D E F G I J L M Q R S T U V W 
    - -
    - - - - - - - +A C D E F G I J L M Q R S T U V W 
    All Classes and Interfaces|All Packages|Serialized Form +
    +
    + +
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/index.html b/docs/java/index.html index 3e657bb7..2bb365e6 100644 --- a/docs/java/index.html +++ b/docs/java/index.html @@ -1,76 +1,82 @@ - - + - + +Overview (voyager 2.1.0 API) + -voyager 2.1.0 API - + + + + + + + + + - - - - - - - +<body class="package-index-page"> +<script type="text/javascript">var pathtoroot = "./"; +loadScripts(document, 'script');</script> <noscript> <div>JavaScript is disabled on your browser.</div> </noscript> -<h2>Frame Alert</h2> -<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> - - +
    + +
    +
    +
    +

    voyager 2.1.0 API

    +
    +
    +
    Packages
    +
    +
    Package
    +
    Description
    + +
    +
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector + data.
    +
    + +
    +
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    +
    + +
     
    + +
     
    +
    +
    +
    +
    +
    + +
    +
    +
    + diff --git a/docs/java/legal/dejavufonts.md b/docs/java/legal/dejavufonts.md new file mode 100644 index 00000000..8c9e3cf3 --- /dev/null +++ b/docs/java/legal/dejavufonts.md @@ -0,0 +1,191 @@ +## DejaVu fonts v2.37 + +### DejaVu License +
    +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
    +Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
    +
    +
    +Bitstream Vera Fonts Copyright
    +------------------------------
    +
    +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
    +a trademark of Bitstream, Inc.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of the fonts accompanying this license ("Fonts") and associated
    +documentation files (the "Font Software"), to reproduce and distribute the
    +Font Software, including without limitation the rights to use, copy, merge,
    +publish, distribute, and/or sell copies of the Font Software, and to permit
    +persons to whom the Font Software is furnished to do so, subject to the
    +following conditions:
    +
    +The above copyright and trademark notices and this permission notice shall
    +be included in all copies of one or more of the Font Software typefaces.
    +
    +The Font Software may be modified, altered, or added to, and in particular
    +the designs of glyphs or characters in the Fonts may be modified and
    +additional glyphs or characters may be added to the Fonts, only if the fonts
    +are renamed to names not containing either the words "Bitstream" or the word
    +"Vera".
    +
    +This License becomes null and void to the extent applicable to Fonts or Font
    +Software that has been modified and is distributed under the "Bitstream
    +Vera" names.
    +
    +The Font Software may be sold as part of a larger software package but no
    +copy of one or more of the Font Software typefaces may be sold by itself.
    +
    +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
    +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
    +FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING
    +ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
    +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
    +THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE
    +FONT SOFTWARE.
    +
    +Except as contained in this notice, the names of Gnome, the Gnome
    +Foundation, and Bitstream Inc., shall not be used in advertising or
    +otherwise to promote the sale, use or other dealings in this Font Software
    +without prior written authorization from the Gnome Foundation or Bitstream
    +Inc., respectively. For further information, contact: fonts at gnome dot
    +org.
    +
    +Arev Fonts Copyright
    +------------------------------
    +
    +Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
    +
    +Permission is hereby granted, free of charge, to any person obtaining
    +a copy of the fonts accompanying this license ("Fonts") and
    +associated documentation files (the "Font Software"), to reproduce
    +and distribute the modifications to the Bitstream Vera Font Software,
    +including without limitation the rights to use, copy, merge, publish,
    +distribute, and/or sell copies of the Font Software, and to permit
    +persons to whom the Font Software is furnished to do so, subject to
    +the following conditions:
    +
    +The above copyright and trademark notices and this permission notice
    +shall be included in all copies of one or more of the Font Software
    +typefaces.
    +
    +The Font Software may be modified, altered, or added to, and in
    +particular the designs of glyphs or characters in the Fonts may be
    +modified and additional glyphs or characters may be added to the
    +Fonts, only if the fonts are renamed to names not containing either
    +the words "Tavmjong Bah" or the word "Arev".
    +
    +This License becomes null and void to the extent applicable to Fonts
    +or Font Software that has been modified and is distributed under the
    +"Tavmjong Bah Arev" names.
    +
    +The Font Software may be sold as part of a larger software package but
    +no copy of one or more of the Font Software typefaces may be sold by
    +itself.
    +
    +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
    +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
    +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL
    +TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
    +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
    +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
    +OTHER DEALINGS IN THE FONT SOFTWARE.
    +
    +Except as contained in this notice, the name of Tavmjong Bah shall not
    +be used in advertising or otherwise to promote the sale, use or other
    +dealings in this Font Software without prior written authorization
    +from Tavmjong Bah. For further information, contact: tavmjong @ free
    +. fr.
    +
    +TeX Gyre DJV Math
    +-----------------
    +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
    +
    +Math extensions done by B. Jackowski, P. Strzelczyk and P. Pianowski
    +(on behalf of TeX users groups) are in public domain.
    +
    +Letters imported from Euler Fraktur from AMSfonts are (c) American
    +Mathematical Society (see below).
    +Bitstream Vera Fonts Copyright
    +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera
    +is a trademark of Bitstream, Inc.
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of the fonts accompanying this license ("Fonts") and associated
    +documentation
    +files (the "Font Software"), to reproduce and distribute the Font Software,
    +including without limitation the rights to use, copy, merge, publish,
    +distribute,
    +and/or sell copies of the Font Software, and to permit persons  to whom
    +the Font Software is furnished to do so, subject to the following
    +conditions:
    +
    +The above copyright and trademark notices and this permission notice
    +shall be
    +included in all copies of one or more of the Font Software typefaces.
    +
    +The Font Software may be modified, altered, or added to, and in particular
    +the designs of glyphs or characters in the Fonts may be modified and
    +additional
    +glyphs or characters may be added to the Fonts, only if the fonts are
    +renamed
    +to names not containing either the words "Bitstream" or the word "Vera".
    +
    +This License becomes null and void to the extent applicable to Fonts or
    +Font Software
    +that has been modified and is distributed under the "Bitstream Vera"
    +names.
    +
    +The Font Software may be sold as part of a larger software package but
    +no copy
    +of one or more of the Font Software typefaces may be sold by itself.
    +
    +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
    +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME
    +FOUNDATION
    +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL,
    +SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
    +ACTION
    +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
    +INABILITY TO USE
    +THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
    +Except as contained in this notice, the names of GNOME, the GNOME
    +Foundation,
    +and Bitstream Inc., shall not be used in advertising or otherwise to promote
    +the sale, use or other dealings in this Font Software without prior written
    +authorization from the GNOME Foundation or Bitstream Inc., respectively.
    +For further information, contact: fonts at gnome dot org.
    +
    +AMSFonts (v. 2.2) copyright
    +
    +The PostScript Type 1 implementation of the AMSFonts produced by and
    +previously distributed by Blue Sky Research and Y&Y, Inc. are now freely
    +available for general use. This has been accomplished through the
    +cooperation
    +of a consortium of scientific publishers with Blue Sky Research and Y&Y.
    +Members of this consortium include:
    +
    +Elsevier Science IBM Corporation Society for Industrial and Applied
    +Mathematics (SIAM) Springer-Verlag American Mathematical Society (AMS)
    +
    +In order to assure the authenticity of these fonts, copyright will be
    +held by
    +the American Mathematical Society. This is not meant to restrict in any way
    +the legitimate use of the fonts, such as (but not limited to) electronic
    +distribution of documents containing these fonts, inclusion of these fonts
    +into other public domain or commercial font collections or computer
    +applications, use of the outline data to create derivative fonts and/or
    +faces, etc. However, the AMS does require that the AMS copyright notice be
    +removed from any derivative versions of the fonts which have been altered in
    +any way. In addition, to ensure the fidelity of TeX documents using Computer
    +Modern fonts, Professor Donald Knuth, creator of the Computer Modern faces,
    +has requested that any alterations which yield different font metrics be
    +given a different name.
    +
    +
    diff --git a/docs/java/link.svg b/docs/java/link.svg new file mode 100644 index 00000000..7ccc5ed0 --- /dev/null +++ b/docs/java/link.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/docs/java/overview-summary.html b/docs/java/overview-summary.html index e07c0f5b..a6313b7a 100644 --- a/docs/java/overview-summary.html +++ b/docs/java/overview-summary.html @@ -1,157 +1,26 @@ - - + - + +voyager 2.1.0 API + -Overview (voyager 2.1.0 API) - + + + + - + + - - + +
    - -
    - - - - - - - -
    - - -
    -

    voyager 2.1.0 API

    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    Packages 
    PackageDescription
    com.spotify.voyager -
    Voyager is a Java and Python library that provides approximate nearest-neighbor search of vector - data.
    -
    com.spotify.voyager.jni -
    Java Native Interface (JNI) bindings to expose functionality from Voyager's C++ code into Java.
    -
    com.spotify.voyager.jni.exception 
    com.spotify.voyager.jni.utils 
    -
    - -
    - - - - - - - -
    - - -

    Copyright © 2024. All rights reserved.

    +

    index.html

    +
    diff --git a/docs/java/overview-tree.html b/docs/java/overview-tree.html index 430eeec6..128057a6 100644 --- a/docs/java/overview-tree.html +++ b/docs/java/overview-tree.html @@ -1,78 +1,56 @@ - - + - - + Class Hierarchy (voyager 2.1.0 API) - + + + + + + + + + - - + + +
    + +
    +

    Hierarchy For All Packages

    -Package Hierarchies: +Package Hierarchies:
    -
    +

    Class Hierarchy

    +
    +

    Enum Hierarchy

    +
    +
    +
    +
    + +
    - -
    - - - - - - - -
    - - -

    Copyright © 2024. All rights reserved.

    diff --git a/docs/java/resource-files/copy.svg b/docs/java/resource-files/copy.svg new file mode 100644 index 00000000..b07ac7e8 --- /dev/null +++ b/docs/java/resource-files/copy.svg @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/docs/java/resource-files/fonts/DejaVuLGCSans-Bold.woff b/docs/java/resource-files/fonts/DejaVuLGCSans-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..63a79c041a25d0ffba8461147156ff28b91809a0 GIT binary patch literal 280908 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

    nREG5jrOwdlE+!vH96%wB4duZ( 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�#Xv%zqO6{Uv7ARn&3i6)=*U?!FV|7q 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�RMnEp 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 W1UERo!fh)6w<*RxIAoA+%m05-`8Id} literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff2 b/docs/java/resource-files/fonts/DejaVuLGCSans-BoldOblique.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..89328f3c47bb66574f864cbd3667b63f5ae20b2d GIT binary patch literal 193548 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®3 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

    tLNFgi73uVrF!#iaw5??}1Rt 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⪼Phjc^)o%E?HvV&;HQaZ6!94HjrHv)vq9 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 literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSans-Oblique.woff b/docs/java/resource-files/fonts/DejaVuLGCSans-Oblique.woff new file mode 100644 index 0000000000000000000000000000000000000000..6c62443d0c8e38f47205a8e33b36946d2347f6ed GIT binary patch literal 273920 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

    c+U-lu}^QPA534ypC$k0ubu#R_XVEZ;nfpB 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�P`foTCex+qHf3&((jg2-f@ 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%0D^Uzow?XQpTXNUYrlH$%mu72?hW{!P&8pV4;mJ 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%0DIG#Q;er==rJ) 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 PNfh&h5*fX>Ufq8I8SC|} literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSans-Oblique.woff2 b/docs/java/resource-files/fonts/DejaVuLGCSans-Oblique.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..8a50fa152924dc3cfa2f121f4d3bb8916d2d98c7 GIT binary patch literal 192368 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

    T-c zEP`w)xbZ@-ZRmHbQuqG4T}NMzg!(nw);7G0n{^}7!lLo@xRJYNF))too_Fi*(>)w8 zwo@Y+Y<*FW=o~oOP=ZPj)^A`3_C+Ew7z_ji487@J8v72l_>?bIrZpJrHB>+@!U0&ED_Y#l3S$@7_JuTb_L?+x)$u|Gl#R zz01FItY-~`AccJ7^(#?1N=_JIYJIfdZ`0pyb@K(`D^hCmLfD z0SGjmQNV7KN~0>jZ%Rl=AQBgokXW{W3F(HIg{XzNg~)~YhloeSBjyqH&~r#?Kkkjd zN90226ZRhT0DA~7WM>>}e0NR*=LABLP&fms%i~{lTa9mpW1VM}`;RwULS@Bz)J~R# zIR~3I_Fe{$%POOGR-aoA$B1Xc;)_%D5&DiWf-js!vC5Bc)HwAhe79%asB&s>{y$_rM3%C6~d4qR?fUis7*S|H>6H+y{oD&7J3qNJTz3HrJ-$0&-`b* z9cPi(OQ=f2Iov23W($^ezusB?`m=#~(sXvmxayox^{<=yFi{4f8+f=uGZ;XU+ zgP3DTsLZEqUlnc5$0TQz6Ggr9f`F8$(}f@8fuLKRSAyXHjwRd|631i*><8>p#B7JU zMWE`K+7L+`T!EG8A&L1@TV9>_5m#&~#Abe8G(MWZ40#l4zHy>|A#1qH*1H85+qq?T zL40r~Vi$Oc$zZ2YGS|+UbagcCUh9)+kZSV!0BOd$U4QFC;p2@o8)7!U|JkTBHaH<4?WX2Hwrg1) z)R-plLA9Sd8Os0X_}lUrUf`=+diRuHg+dO+P3J&yko|+W>A0(gYe~1$^>laj!8)E% zcuTXp&JS$WaLIRb_fN~tTnI$l&4sXaF)-N*sM$a>w40(`@n_=$P?5i3hZj!T4_=X0 z27jDyr8Xaig}2Ng6+mEtP7gZ7l)lMJ*r8gxNY4iSV#~f;zK~lZEJHvx4chVFp6IU~FwKGwYnRzDGCyoB;)pEG1mQgN_SzBI`(jg&74(ZZFd8Y3q z@x*GP_KjE)z9rB6BG+pR_lflTGw;ay`>&o7ghud=Zo4(UJ%h?DdUSh-iVOjq zb8kv3gC$Buk)VtwSBj1|?IxL|GU-qLt@igZN_<97833Rw(4Mk+-7IK2yOlE4v#0u{ z$f7BRgejbcG+cZ$hejli`N7c=Cspi~1NBYp$aRJCDyaPv`0wZss3I6vw}pe&JzG

    8XeT-yBuXBI;|yvcE)r!2J*D#V{P0!ERlD{c&( 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 z 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

    AqPi~YMdIc_)y+Sq^p z+V-8{Qg;4-Xu|zB&=$(AGoN?`=b6P;?Ox{m)tFaa>5QEezQ%>FI`JLkpx^`4H2n7! z^sh4}1XUJ}*}#QjF5Kq)k(+?q7VH^Z5S7yx#`Pyp7-`C*rUlk=H}xs7)Pv z7mzvO#(r7;@E!+z0Z|wyN5({2_FPbYyr?+M_t2xupYixr%_RUxN`2nv_w9MGykyky zeei|36-9%{`{mn31W6eeHMN1$NxNW@g7N z)ghRVLim4?tqhk z4?c1Tet!()A3hA9JqBbLw=Z44%noBdK(-vVHg0i=RI2$fHrR>G=D=Y9DTYhoea-mb zRM=OtWAyS{D)9#0kcXPvN#U*g981aE#jcp1F|j?}&f=KQ1x`0baoiqws#YfMX9V7U zY_El5C&RnIR9$p#VUJney0`Z1k)zjvvGCrZ0~hutseT~M)K4U@-8_*#>n?VqPYnKh z^+!Mfk{nbgmvsXrt@&(SY79rdJI^bS*jks)DlD9}wACgNdgcX_BW$U46qVl!AMYlU z*QH{2C?G~OW@gSJ>4#v?dm5l#NdR6>!!hpyk$?{qf&Ds=eToCnc{N&u8iXk7GoUHa zH$)G(FPCJq<9pIuMl`sGcmL_f?!#P-E%$-Em=YS~-8Vqjs4oGU;O7={DY?u_o`7#< zWl!#PgvyVz0lLrbbU}A{DzL%7rOLYt(svg}8Xcw7kzSLtvp@>Da9uEyd}&=sr=E5F zGW8z95r_Ch5}(J8kK}YyY`?TXM`%CF;Y)L>L$Uf8-l0J5R?6LS9K+A^n^=7ej`xQi za8n(AuOU}gP;C%LGLCvjvqrXq6s1P$8rjR#=`$WJu(7SJOC^gk}Ej?SWy=x0B>A$ z13O*~%>n_fR}Z`awh3N_mzM)o&d(P-Cp#1Hxu>~`G_RPyI zq%!0NY4YaHpa7l-#gxXej2}jA*YQzQZ_%+rUfgIPxfMWZr>t`HrR+-b?W0@$o>xok z^7z>$MJZbMU$yBLc(T0Xe|sp!nT2-VP=Z<^klF zo`w`pgD0&%HM!w95>=lbfU#~L85hq$Y2C};%o9u4ZrSDi>bC6KT3=V5L7yDj-{a{& zv>_!0Cf@gq>#I%cm;StalWO7JAeH?r0fB9G{a zMgl?L9Ma)%I{aT%IGhguR|;5LGUy1Z!~abS2jb!X<^jS&;GAwUTE*I2X?_nisxDqv zkUzULzdG5v(){Li#emaS%@S z{}O}K6%N4}=nTQhbcqb%{*3^@;Wx2#;6rd?Cz22qQ)=GJlnQMW#U| zLL!k{z(2;t=^9p#bGqxNmC91GXL>-EYlu24JK2*N(>_rbH?Ci-+cAESDn(XWAw|Sk zl%1skuI5Y+8ij^HX=%V$R$5PyO10XpR=G4tm!|+oi>0Uv4JfaufiZ;!IxQv*L~5f2 zfb_-0U98v8Ag^1hWRoW%KeP zL^B634d|L1#C=>Txw28#+`+Mnl|5z`EESZj?zcQ5XQoO$bS9+>ER~2G;>&!YMkUtc zz?5-r)UG%_EMZqA%}I`rm%N(=o;SwbcVkRJ;@)TYy2k(P-xHGy>Mlaf=t$w~T}+UmyaT${scW#Bp?W3}0Bxue%LM+$2-LYKd_ zs1Ga5@Om>q1|!VQwcG4xbF+nv#pbB5uF)kWr+Jf-bhVUE=}?C@-KibQ3%-mI)mbiu z#7$?^4;)yZLAxaicV_j7jECGYZnrBYwwK9Z(CG{YQ+j4by2)VF>5QnHkqJcgO}>m_ zHCb+@BnB`-^3b!-9wIZzbd^3Sci3bwr8zfIuL@9^2ZuB_4>_1c2UNPmyymHshvp^g zROw{Nwtn^X{kB=+;$+cA1!5D0`T2$DM`4UlXF!ZpiCQr%!#8k?D>laEcE_A8?1t}C zWg4Tq6{=OLq&Vx={tXTNw^|8~r(qY;wIT@>AKPjgv6xtkwM`zs_{%bBE;aT%_J^V# z29f~gHqJCYPAg9}AVfc*fUW+}S{$C`=1f4#2Pfu2WQ60A@RY*ZLzHdj85Pc!67s|k z_}QC8o3o3_nG2}X?m&W9NO_&fDe%MC1VKOzJ_hm}ii!hvcrGO_-b+c6JRUdvCEX$s zTKW$s$tU(yC#1S}f*tPIB&KHfQ9uswZ($|IT%9T-J<4M90C9IuR#8*5#ZuQj&r=`< zUYkXmo}o$``Bck@r$&x`x_Q_MV5_>nq3-_Le)rea-%l>w{*cr@Y~|ij2I+)1%9=rW z^_1Qvcj}|-Q)|bR_9M%B3FUhxh)tvRE*kBWJ_N>f6W5aD%&8bgX6sJ)>JIqT-o3$n zJ3;ymeoi42$NXLNw3tvMSw{dbdfsg(w743A^QcL?jq)pR;e*uu9A*300fCUxYlAIJ zMzB>?mKLq`M|+h{Bqk95P^%rxyH|ZeA+vY$wLWqoz2*7B;AV1MR#1#C^85u2MHLas zXG{OY$IRe;c7e)Et5H9EgfGqRNCxy7i8{Ed0W9F!`%1_qQ{lZbjybR9f}i!QlJpGL zs5!EqxMy#9Pps2F049#UE8w}wlP8g?E#MQJGiuSdM5%500T)ma7GCzCKGUICOQC2> z6ySGVTPc>nL)n7kU?I)ZXJe^fCd1=jO-c&LK;U%)xd=WEt$Qas7LVBr`h!#B!vUGV zavYLr9o&?!zoQVHyYhWCP8-^csYOYo{R9r z{bSZRhi%27o8)}trfD6qo2V&pM^&>v4>ZES>+oD;PU@KRp!m*2`0Du`pCGz?1TGMK z%w9k}P9!pLjwXWCqBa9Q`|8aRv)p0)b`37&?1EI#1)J0wFmdu^svkV`k4>}t4ZRUp zYYE2h`qsId{yrXzf-6vuSE2r1yElZ{yOw8yDd~CJE?wHzEpsLH3hE`s3jF3P_*9RC zh%UjmX7i{n?9JX3sp_RLhWFpE2#RGmq!q$!A0iYVjD3u&LE|q5^$}wd;f4wIs7t7< zTY`kq(=Q>MeT87({xNR&v+F=hXWXot;)T%#U*LD2zsR?19BAll)AQf`CTtk8Rm9gn zXWn9eBI5b@E}CSGvMM+Gr{R+mk(GBGlNArvvacRb0 z^0NEuqmeNhLlb+gj^e7u!wt0y;+#%*ZgJIsLj&vPyPTqZBbSW?g#(vA13ej^!V@Ex zx3{Cm8*{SfW@mU3Q=_Bn@-i1@XQal3=G@+d+nH}U1>y`i?x5e(*@JMtDXwF}g?DJP z@&T|g%i||s@LUq-Rx+F$PbA?S0bIx4SsWiESpF=aIi6^$G#y=`+DTZs3MNGegA#iQK8yd&|_cIkUc$POvNLYjXL!i zg6cEN8c(6}J5h%Cq^aGzO-)LUisH-Ny7T1_&gUYWr|~#1!qHxE=W&-h;lX3R0|@>A zhKrozXKZfj^iANPcH+KfC)VfVz8BV34jEqFQBF z`TeHVw0+povR8kvW#s)B1iuF!47&ZJ;a0fy_rSyBZ4QtzKKex@3$%neU#eD6QiU)o zTA^S?3L;AO;pKNPpG+lW@1oxna3gs&5$KZq8C9Y^c@hVeKY0>=)UeKaKdf7gE8@EyFVA6MU8z4}f3-7vYTYBK(k zm)E@U#+ucqPv65IPnm-E%?<@CnF{n?CDNEr$(+M6&s#xYv28cn40FUSAo3T+1drV{yTmrZMCD6>>6H~U9(REl=ASdQ+@zU;wY zxgsO<$w=wXw_1B6%u#3SyxuW z$K$Eb&0|>HKL&T#V!<7@T5*@_?wHUIO!1_bm8Pecmd)%p;f^{C1td|cK|MQ&o`G~m zBhnx$iLtzQyq)+xewNJd4(wzHH*o{{|MCzeZEGWqmG;;uqseSAI_#BphtX)V=#7rj zlFWi6kI&~x&Cj{_MlopqBX`p?+CL%dr3#(7C^n|I-XN1oWd>8vnAj4XLAFz8O7hI< zRW!$ws@L)5qF#Kt?TlMEFLn<9B7r z?_Z&Q;p~3Y+u~b*;B&I@Mb>=_O!&L}c8)w20-wp)2}xYM_RDPnO!>?WzK(9+072TI zDC2-z!GX%Y2J;*QISj>~rW;T!GUM{?p^JF*+u%!9LRTWn#1@Rt$sz6E$;cTeGp+sg z4?l#fz@5}Y!|#*8=i*o1$=h3Hk3rc zOj<)ZO#^P9RUO{PPfcu^Qt2qqd?mBoQ8}e)JG{JO=HTjtIx@d5p?dI4AV2(Z+K|TB z)NRh39Ot&w*v27gA0IvrGA|8!y0Ij>@aomV=#s{#2VDy36df^MIlQN?s}5%g865WC zC~V*ZKCJ8EThz0#eGr^UE|w!++aJ}Nfa*nr)}i@@R9Oq>_FFoP8LHRgSksG1d+_2# zczpKc-Kg@4hweHAq#@1jF%DZ2qbBV_wOcmvDj$w>7Oq=~cmFDdq}=0G+w5}w#i%q4T7b;;7DOB(8zqJOn~3lCHGlUczRgI~j+!n&hqHy96k!z0+1>!=sUObuv} zG!1C6mptIyUG!JZjibl`jxhr%uGGvF7k z@SB;z;KQL;l9j=kK;4SQ-?ZyewwiGgLS(<b-g}Qf4CzR#t|!pX zGmjt~8wkR|=dO3zNEaVP*DH5w#ej3l5pl^_(lvS4gxBdh-hL&z7&v?yH9Wz` zse#r_EZl3}CC9wW zYI$N+F*IzMae|KAuk^ZwKDgGH^?~ zsauZm?w)9Hqv_Eg)OLDam)2ezeN#{3ZaSjZ-=;6jh%SwXtv7WHK6le0RnPaWYwvFK zkLkoiB)_*ikEr2yX5!Ym+#0Keu<(lAdc%MLCS5bReSpyrEs_4iw#dF7Vlh(AYP)a_tt z2t&F({7Vn}E2xm_5-U8EL#ty~4pLu~osotyr=##Xy&6zm!ikgL<_{iNP}DF``}mR@ zal--p7XZzm8U9iq4)G0UH5BI7)pYAVfIKdreNzbW5%B8EU;y0yGGMO$(h+7Hw@U*S zv11q&Q9+C%7NK_Gj7ctzz5R5AnGX+&%lzqN(B-P9%QObgk{HTBt#x)h(P7<%CoN2X zpA_$y!QdBUJ8pAPZ=9X@upy2jh2j*4A>QF|=+s(;NStan#@U7SgX^6Vjgvy=gh*3f zo$84;NR=XSn#EpRtTT%hBB6<5Y_Vf2!SaiJhRK6N-fI`DRZ%jvkzqs;Qh9=0rBdrS zRvcjhDGIGYq&Cs`f;3*Gm8%U5x*&}Ni{4-bVnM9dk|d6lN}|;cV{a2KQ%*O<7&t+a zQmHJosZ>#VldHSYk{S_diZU4-1tzVL6Kiy1D=o1lZ%!97T$D_1)+)p@8Ov(ra*IY` zARkAkqoqh#D74YSGZu@I)OB42}pHgWk#GL&cx!oZ1LI2yQyM={`jB?~z;O z!}?r=lPiaMj8>sYAvWuZi|v*`gh(keM+@t#%QYe~M^Q$TAijREC)FNraHNPu3Pl zOXX0zO3IqF)?AkX5p-mP*JR6x)0?7bhpiBie3F3EL{e^*DpHbYu@qV@9*HzkoMh1^ zFcKkKEszMJluoH!EnqQiYwQw*TEGM|g<^ExC6z@pj6y6?C}Tu&R74tOFXAV51AURG zC#Df?#9`uX0)j-u+>1LR=XFr9D~yT`S6kl3=pbQS7Ki3=`GLWPSMS*yJj@q`+1Xu6b7XLr+` zT^fn&b26CII$bwBkUQO#$zG8h7b%SH+gOm8=!~%`6$)95J~=KWDIwk#BUZ4jUiGbjG)lJ z2%#wQzdP`F)M~j>i2f<%YW07202VvfxiyipNLDP?t6b*ZW{W;bDh?eu3mS)-6k5)1 zI03GZO>qPIT!5?BDiEO?TIvd%W|vBj?vzI9E$BJ^fQ^)iz`ekHq0fN0;71o2Rw&d6 zg)GxiATJ2S5{`|qARc3gbq#Xa+&YC!CNn#1$!?=UnC)C%UnQ2CMQ^?-a*89X>X$pS zg;CmMcbw58LEOw>bNXzFF%G+4DYFRS+cYEKI9h=4h`w~_h!gNfWY$fG^i8)0=W_yy zOpXSrLN1e_3;dBMMiHMSDtpf;)evOq(o|^Dr!8?&zL%7=-{T|O*5t~TilAvWeKD295;E) z$`$u*TD5rMgo)!Ok6XSHzPv21&|xvqV;TY>F^MWXg>u5MWJugGZr^^mn%4EkHJPTy|Dg`kmw9*F+2V52kz7+tQ>-4N0kE`1BNwG6`W!A%guAeU{9W#0dWGC z!;-2J{KJtL-x8nbDDnoPQAQ?Oi zD=BzCETVVAB9;qJUUI3h3LKz}#?v_`>F$rIDKIFnMuF_a)RMl4A30JRkOwNZW{WoS)CW1Qqj zj*}W|FkBUsj9GiB)%Q!3R8_%0`m zGHM)kj`-H-yOb;MI-;=p3hP`I{j(lLj)$F1{7MUiZzIbG+4!-@uo z1WFpuC!|%oD6=Ml6KPx)g(%sV;>b(1kg554xl7J6GNE^jG(xK_kw!)^(G(*tplubY znzO>l`=7{6@n#DOGktZvl44m76w;j11shcHiK&@lkz6Jes?mdo;<_0`DKUYVNz5VcB32>}pb1Tegp*QW<&|TUyvvurQ-2M|faG{8 z@bcmFd@Rq2LFh3lPs@H_O9mWvcI=Rb{K{3JW9tT=ZI{2M<}>dy{(uyOeGz?W3>R>n z*Q=y5YC`gu6r-!Hx3#&-*&qHokCpT=L=TvmUtn{jrIc1Iit8bKPaXO_iJwL+wk8{&8YeUY*oYGcPyFrkdD0uOwzrQgYf|@t)`sPtw+u z-1dW2;%)U4Qq1vM_(1AF4t!6!&1Q=XzARy6f~@9=K%}tfk}nRlwf0ZeiPQFZ(xZ(Z zEHRoE9DZ}%80Xi{@kS|_WRiUC8{aL*-QOVugJoM5ZLcQd#2SUn4ctBB6UC7t*4Z?A z)NIap=gL{5N(a5Qxb?fn5igYJ@{>&}Dk;^4B+=B0D{LM2Q*#~GVnsqqTyMQP~s!(kKy&W8K*!* zW@$}+e=p4y0T-cbpSw}KW}|ok8mY6621f)J%E1XzOy-fn=fMs?8@zT0$;hR_abmMf zj5INZRZ1jAxkM&Acl32~qa#XR*ES8{wFOfxxWu~7b!RN{D2rfR* z#;&4s2|1x9OoS8BaUNc^Cqm1KD(r-=QDZ7)d~Qyyr2=@a-wmu79##T<)mBFu)&M+M z8Q_Cl;YEHe$KSzh=l&maZvr1hkv)!gbx+To$()%hGnvWEWI~Qf$Ye4JIe-932oS;@ zVi1IY;YQ9VhzJn@A)s;-5YXj_Ac(9YvbwU$vb*TAg02dE1R z5fCz^8G+GsW7796yjm_0~?vIr3Cl9;3-@qc3mW@TCRxwO1# z_ES;Yo{BnfMnx~7x19*AP%G#HZ~+&w6z2iLfS#B~33gXm6bg-yRVk!V$~ZMGM>$ei z;4~|d$mm={tUs$ne_hN{Z}YHy@yd;8Zge zR%Mh-sQ^z>fPVo+m4MZOf6EKO{V1BMK#PS6!98I4Vv2%dmEpCykj_N}#<$!_C6xp(NHNaKt;-WQaw`MeFJ5fj3x%I?5WQkV)kVu}lF$wSuMl z1~vt*;!7g&Hobs-k&Z^M;D#2hJuZl<@xZ{hFR}u9AnHG17XI&uSg}$p6bhvhi!DwB zZw(>DV@Kfs&O*g&#?E@x5Ng2{gc@^(S7&kO6;f-^VUV*2nel~)9KdB(CPq-{Hu zhU-i-U(yM{=(S%&!i)@|=oeZG0(~rkm#`{HrB+14Pbf&g9cu?RCVWcRv|Cis3NieE z6Y8{%P?+1t+Dn~b$FNdvr%}GrrZmCoghIh41b6o8+iq>5DoTNj-xNGx@u%DH_Vf_a2D8Ky)L znRp{|nLObUlT06YcyZF!48K07q-a7qV{cldT7drq_}|{X&Ni@@xjmtY1BT=jGBNzF#?7rc zArn5?*00vk;TB`4>q%x-{33;ZGnmh$j5+_-u=R4QO%P*}o3ypd4t-)9>=bxqtoht$ z4<$;}8fCOz5~Yr{NwX^I&l%XuN~OtbR_V<8f8lS>e4~}?jWKeqRjD>@KmRFSla&;k zUmmAOg4c%>#qV@T6(*BKC0AMxY&~(#!24(ublSx1SKR7Fj-k*<5z{*)(P~vR ztyLQ>POC(sHY|VZp-C}%WsE5u$@Hq^sA-%3^Q)Zw${N!Pv2sO}E>U?2|MA>jwV|g; zMMF!_pq80q$G?GZJ#KQwMaiuWl{uA(G8lAmM=$;k$?{`OJ#B7Vi1(q_abe&9E<~@>6=zB0ED4`w z&Ydg=iLq(Gj zW1qtx!5#hY>({@b=LYI;1nTLzH|TlSQ7A;U!G)Y6rKF!m^>{8?ADK7pK=mjhdnkM0 zBkaTw&&@eA@1YHN&J8>VZMY#AaHHvYX4DO|fua$pnwjUFA)3VKIE=t*all1W}2gcKT zE>jFD;Ldnx*M{znY^cCn@t4SeYLMY9GT<)*zmO;`-c2HBN%*W_CJEy@k_}o?9{7v| z=vYWB;j>1;vJ=wjATr~SA4w;tTJUo!bHn3KZf;N?>Um3OmZ8tDa`O{TlS7riS8w+R zM?skA#nmqjEKG4`7>&-P{sUgBSv#^X~wRHkVb|?Ub1DI$jdtP z$Sud1j;)X3Za7EWMqaP$5{J@H^I%UuU zQ*SxVx794)1cp{hFVa%2#WviNI@}hgR;ko+w&AIs;kNi_33Cx%PdcSG$!d>}x7!jE zs}d7!B+Db1lq>0ORisMaK{Qb#}CDcScs=IH&-$li$~(EkYV zo%@3N4~`*rpk8R3@g=q+^+NkRII7u!dZ9eWhiJ8HVk=@2Q=AH=L7JGDlwj-SnVX*F zOh`&fkebBW9`62=?NM^I)Lot3Yhr@apwk(g2@`u|SG%QZc~p=4`lQ*Tlt!t$M^b__ zD{XEXLG9s|8kJG*9=#{I6@Z$+q1vI9%c16vPmrpG+Qf-WY`;nI%>cI8Rsi?)?u7Q8 z*y`c#K%&G%z6^}K{W+B1?@)TM-4SYSwEVUfF#$kj4-Un({{Ge)r}>K;7jN$aTyU3# zj*&zW!;(BwJ74j53##mGX|#hB`Q5MujTS7Bz5jV6zPHyt5>si_o7GyGR4UWTw8mJg z!KC40iAJNvsyAvCQk0-lXk@Y&jn-t0wHQrWh{(het8siF9m62Xu}*@V~rsiYBO+eFspf1iAGIX z8dVg@OlvX(HHtr0M=2FV*pN!qa-vcViJ3ww)f$OPO&U;X1XG+PqSVMGQRrhx&L$0? z7g4FjsF8!w@-+tPxbf_dq~)dI zI+kjmR?RguxX)R%E|Vs1IcCSY@aKz$hPCTvESLq+mFwth{3nJzJMj(fYf;{;Mfk?f zJxDuyZgwuTC!6VqPVa#VFjzK&H6UN~?49I}CQq&!Q#x=^@sOf>?wK;>o_mUh6b~9$ zI;IM*>yWPmS82&hQ>VN*q{N+&;4T^R;*_Z`m6W;??!a%_?Q6ovpdBOO&aQAt5Q{V} zR)ZKjVkC$`_B1*QS&@~F!uwoUilr{}w>JWt&<}5*AJLC*pdSL8nBS~Gf5E;L_`bjw zfBrLVVy*>V!W#p}(G0wi9*kyibA&_Rza-=&`DW@&#~-Pf%0qz*==34<2lR(S=yc%1 zp$D?l~+iON44*ZOrWnAzFyd*5CPN;^zB?+x^eq$b9gVGkD zH0~c>!wg&qzwpPzwaoSw-gycBE}==6$amgQ{xroxFF{5r$gWN<@uENcH_6@i&74x6rGD{&9@XIL+qjy#eH%4Ux1lbr1A)_nXBCn00ZkNQT;vQ! zCKYMulc*2cyc*@ z(aFGidM+LSfogQJ7!RQ5(kDpzYk_+D0S=%Vy#~Pa1A+A%KsDsi2kN}RQ0I}61+aG% zk{}sescT+cEf$VW*_7Gpk%K%mSJ5in1RtS$OUx>`EH_NG%AgYiGn&shFDE1VpzeC_{t)> zKfZ+jiMB6>e~T93$;h!Na09_I$bPVc=AFv$ii?RnE zz-4fkL;M?bjJ<(nNR7+pl2kQ>f5g|(u?OY?#`QLITk4IeY(x*PCdFS2Z1I@dOjkl@p%A^q^IZU@f3NQL8?G^K8h|zlfFTtapO05XEFYE{(SsxG2ZzN zZbYNML6eG6G~{uRe>N}l>>wJ$Kbt>~$B*>wG*T|TDvh22e|G6vyUxyvT;S~*5m_C= zK;_^@EL2K9yUR~X8RKWHwT-hIQLj<>ZPehwlhEt92yOG=YLq()|MB4LM)DY+8HIY` z$sV*F4*-Bk9<&Xg9ffiZ&KBq)K7b%h;b=TR`*}b(gx`Xv_Fd{h+HT(AAFi#xJvV;{qiznbj4OJs~A%- zST2*UsFn*@`IO}{seEw37zL}f7VBa%^ZL2_%~F_+%Fxiq5Q*5LSIp|y2EVRa&I;t! zE2Oek_ycChOcpV-QNCpxYrbWI9q}48qM%1eX`tn?%QO2Li8M2j; z`facs)&4@r|CjAJyY<&2E;#o8+PdYfKUg`mIuaiIe`|F_?E#ys!R9rjZ3PMj<&vEY zgA-agwGwml*5-`Oc|t~LM<+L!7|iR>2o4zugO(*`<*mvYH8{ze|Co<{`^+$VT3X!b z&6RuAGGo##ZP~Wu;_UQkeX@oh7@pNm1&R3HGAl{q}o`sS~RXCWkO1cO*nSaUVE(Hzpd)enL~$Wo*%uwuRk_+ z|NWzc-tF#`l6$3Eb8HZJaI7%F8wu@yhl95MX3A(`=Jo`DrUYSKDX4AKi{un?6zo_8 zCpc;Ni6U+HK28gJxg+f6ZC#w7Xwo}4E2Z_5kR@6aytbt-xXCFS3WR$?+ z?-KEOF_p2|E^E(`J*}?n18U!7n@g>%EUE&PC(qQzWEYM|>s_iI4LToL0ZJdOE-vgj ztS~!9J1fa3Q&$yLD%CFAWS?5?oor7an3Y<&3G5n)Ni5rpI5Rnfm|&mm#asLLwOS-n zUtX?=jnWlJ<#EYHMkl&l;xrZ|$H}Dyx+qqZo9B~CEY`lvg-N9u!}^<&lTH1HWt8IM zG8=;ueI+UGoRm_lFd==)>K;<<$R$-1rV&%#KcQ;LNUhZU#QkXrLR(2njyq*wW+Gy2 zGFcqpc}r6ga#F!vTH$3*i^Q{*61);0;KeOd3s8K#+n}@SojQRrvDc{5(owwz@$pDN>eE^9-Y#MfLw&lalls)%-U92ktF7BEwr*$Tb?bH5K!Vx3A-}+z>4m?7 z{N`Y7fh*gW9|%1*n-oNiA|OzDxDp7CH>wkzGjvaV1hHPPcvaO%gT^>PG3 zatqROdx*`UFaa?OWTx2kti=P17H6fCy~ZG1G?0WfKBZo-O?Ka3&})(>!Kh>P@t#S! z`S-h%wK|kH;~(ES~e+xNZ-;A()byon$Tc+ z^IYy|?nF1HlC`9RogU2KO=eFw-^1xWrAK;dUe8`$SAodPS#k+)4$++qJY++@Sfq$D znvFJViPZ*o#vl^+bJz;gtmgX-vEc^>!3RuQQmt6zh;x!C_e3Y4vmFjY7&q2%zuB5r zX#26eT*t@Zku%OA64xfB{o*R?35M4ZC&IYQmKSXau;xq89~4FxdWlaPf5e={~pvx@VPIL3iU#h z(Ie;}y1;$u;XboJQwv@zsXgi;-JYmF17*mE)eEaCJ_Cn@q^-9ZJ+ehBVJG$0qU9 z;Kv~%T68GUADYn16-9>I0Md%|99^Nv!_5p1CX(&-0EhE-PD#zX(vahxW8y-I?%;$@ zKbaAx?{Jq6w}udI^@WNTpcOFLA*tPx9RBtastiPQFCqPzN+LB$#X^BVD3%)J64ht4 z@Li`iHZw*`2E?^7nXy_YW1@wN7OAbxiB`4bb0J;(phy`LM3x)mBKFpwUGXZV&7RmJ zHF=aX;^SVzh~(5BiS}5n%I5YDiFZURm11@K^HDM zu`{vl2`3ZVwr$%^-sFw#OeVH%+qP}nKKZ^=_ug}>&N)?G)vKSbU2FI5{iF9@Ydw!r zJjxrj%1w0SEs^~@(tV+-1_Nq%WH?odb{{NKym(;v9_$KCn_!WUqJ?7Nz~3At^Xa9T z*^{|EL-ABuF%+ZRWeClMY=LrRx!3{}e>&8BvcG zDe~!9R)IE6l7b1wR_hXaQL{gX*fRFXva@H_kD=g&L=>XP_@Z%P$Q?Ws6o3Er{>&dP zF#Kf`K4U7?z{p4;lsN+KX3-#E)il&^E>p-I0P~#>t6L=hqxf6h3~4V+q1|f!IG=#E zP0_;5GmWpt6Lpt}oE6=2VH8}ey)Wr_#GYcc97ew_k$~s*yADk&X|$8aQ#sOk5Oo{o z2d-UTO>Oa>!nUL^rDY2@^(Yatq(_ithXY0(@+n6}uk6yd@R@_e_7W$4u~H=#9}t2u zjFa52EHbW|xzSwtK{00;3!OZ7evof~RQtd~Hao!5b(SoCBGH}La|D2K@K~oiu z`Bb2wTv|?^Jbj|)cASrM`30Oy!U1V4@&`B{N(rx|ba)>ZebfM4CPM=7$cqj~t(cve zGB`rWSsF>BGGv$kQ3M(w_ghi7G_tj6?$eAb!t5EP?Bw|@Aaf^#X(AMN!Z?NQr-#qT zdd$=sUOH3ZS8O?+JN7~1UuIS)G3V=&TmwqLzQ+4+%^O-z=Ofws<2rK)z_Z4CC_k!^ z`2GC;!J<0~0;4uNTTGzZ;DDKl9f3w82OA}QG~CsJzqzT|7JEP5j80t2h5z{Q`k8!| zur!Yhi~L)O(R|vx#~<1IFYPQcoD%=C-^`WrUgDw4_HM#^;m0NJOu6!9h?28k3R}jQ z$v1H37R_4z8SWnJivG!B&N9;><`xl|u$~WJ#R<2h^oLHOcDgW+iq~8@NVmE$Ps+9| zP``vbq!nmQw~AilKVY8gD7`-99nIjoU6)ib2kVL4vIz{iYjrrLmVv3d5eU&~C9N zHV+77d|GjCKf(FQR-#TDjP6P&clC(*33julHWSnYvW=h3#LGr;y)Z-s{Cv7hmv<5RP3wjo4ZPA-v1%SH&3+>8+&?GzOK%}2OH+Lm2?fmQ&4C+s86aP?8*rIMhOBt90f78!z9Ev$MGA0QZ;rIjQ+ zZzB*HKwNel;7Y2cxKA3TCKNspxV$XoYckN~G-u9K|4k))W~~fHjl5 zOd!#;8G?nQ9?95`vPUZshVk2z5g=lWA>D`=gKnT52^l^Poan3g8+i&phF&>-?9ceB z8P9?Ns%m9uNU&~HagQVwzXob9;)mg71%)Z(j4U4s5zc>|L^8Yzui^WHk+~YWHW&-n zgcxrtBr~p+4yd4wZILQGJI(aWD{jSD6qnjF6-pxIub}FV9x0EuPD$1*AZ|YNqq3b; zrhkY40fn`R_v2lZt0!fY7M3n==dZ$@75%@_eP$@FU_%#YQ&EF-7A4F6h#9`f+nyVO zm^$VC-Y|0++6;>*8tKWT(wl`pi*c-}+1q87zhVT3a#`4C$f;dCxo-jvMDKsLFH@0I zO$us;7=jG+0g?}?&sS4~9Towf%rH3=p-;;0>Al3ycUb#pD^oZ}30N~m?7Xtd zr{Z8}LFhiv^JL&A)i47@cSt#?^1Bcw;#Gg`sWiE2w?&SH%0TU@Qd1q@Qm^6P$k9bO zioepqA1tXTUdYhJV0Hlh;YyDzN{q&sqRqA2Bxg`!eJl`_LG~4aR!rXnd;X2MBASSV z-RLZp4Bym1K*EtC9+VeY@y$Ru64PT-m>dIPjCt4+pnX)36}9%y-UggX8+-h~GnM8~ za7>PI9?Nx@QI`}>3C6^DqiBW9z*eczpodY^L=^e~kLKCuX5`*M{blb=Ujkp=jv`Ts z6`MqA_i92EPI2LjeYZsPVwY?7PnCLtf!?dv8L%n* zvpv9TZ%*`;<{euj0cfZvIKa>us%L{En#U%8#bkbooyr@)mOfy&+iA@GnX`t_YjiHM ztta{thGne||0~5B+~8L=mWXk_zoWvnJUFjhFNuk#+#f|&6HlV{0)Wjip=n4SigDXXDXd8;jB%;ObWGeyDV*`|HYV~n`uUtX9`o&Z0&O^Y zjOHK1f+9UkRx(j~GW)+|tlRh-kFY)un1KJZFlARB26RdZ3-RIuHYu$UGK&g6iQj}0 zPQ3p1yu14UY2`Wxc7M$|-W=;5C0m?`?Y2;U5Iy}j7pjgzt+Ebf7+IlUZ(XAkIsyAy5v!D{s}JY>rej$q?jB&U3Z;*TID z%-k5m3VtL{Q#BayXZdU5+@S08pwMp*)PhsRnE!-R$6Zhq4->RSM##X9q;Y1L(HEI( z%b0ZsrG|EkGQFIi5h=b2h&pc4jP2l{eS3D=IS!Is_j-4CR!PU2CDb7wtU#;#I}Zn}OcWg1pKy?6Z=DuJcEZ%3_#ub+~5fnPGA$U(mu3Sr%0Fr;IalcIaXnv8EWZ;1o!f zC|D+aSB-!veWW~R$bpJqyY1_Qh*t7w=}uR*pAUQvlwfCOTEKibO#_!^JW{laCZg+1 zty~;agv*s%c_d&P)PIDv-N7PXe~OT2}4{>Q?Zu5wF7>C zPG*3ju{KK=G}iF<9M0?Tsn^x?ZYa{R8ZIHYwZD_v2&E+@?5j8%y$|5Z)?q3$_x{q4 z+!y3iP!<(F|49otj}jJf?Da{JDphNLyA1#J(_}Mwd;a@)JAf6>J$HLo=n+3Gjud!z zD}nV)4c1xsL(etb+9rP6lI42c5>1oet#{AxooPsm`W_rbJ1nd+ka;R{K9hbM_scm~ z2XNA7cY$5wzo%HX(5j7ETT9WbjWo|85Z=1ub-jjPgV@O);i;?MPXT(Bcov<`lvH-} zJO}8q~z8C_%DaPE*-0_3)F^-Z_RltK5)_OeDX)6`n^u(Y;TB}Jo# zdt!FasWY!jGk`LEa&(gRREf2@+E>-I>b$)C)0>^;tY1ZgWCur0H`S zTWy^xNgmDmsv7A?tlU|X%VLb`!q~#xeJcS&$U2`q1>5#lP!stLOHmx;5k|>CtVz@i zS@Ptf$0dFT85{bS$=dvjq@AkW`(sOj84{PtGSb0517u?KamGJmM@t*gfp!Ntt3Qwr z;?%h7b7kYWJnX+zlJg_RF4OXL_&OV_wmA(;Ete-VkV-pZ0<}f~6%( z%dD3lX+;y3Y)+ClkLm7SwP7$iSXmd?%>fHUYLlVtS^_)&YQ2*-u$Qzh=1qnuFjjmb zt}bLYq1qG*zs|RQ#;p9aoHnAEQVF{q^^c83>#FXw0b@s>EzZpcuL+ z+*QfB$B0t-zm79B%?UJPW4?tQ4Lnu-rTBlQ%G;bLr&9qOTNh6nWeH}vR!@c*QmFLw zsD`iN((#k8QeF(A4Q_>7%GsDP{%}yVq zxx4iMi08xTU{nUybM+g0-`akLbTw|_Ss&ztB@25hadQqJ9uJ4x?0zjWS%43!rD-O2 zbC<16*5^lrYUPR(lJDQes;@p8SLSy2TmvW+jC&~>dd(KVQO{P#J!c3WNwvVa~8tvJnsCl{YF{c@}0OZd?B%tRWiEplmRHv~J_5#W=B^X`OiT5CyjR}@+I z;=Q?zN2(&<0*-pC)?v=n`@RN!EU46q{faPaS69zBdQMfj zRR%@7H+dx3eK_owJLH5P1*jWLuMBs3ASAyt%m!q&`!x(F_@eNQ)giw67=3j92>qZ3 z5c^*AUR7TZd;-tU>rcEXVh7i6kPZ<$_;GU?C$#QITY);ZMMrO4tDYkgzceHXC*+|c zwTo+st{@hF6hCxU>Pbq@|)AhFFW$2brZJV$?T87?fpf^}h9OgSfSy)wX;< z5sLSL`ZIqe@Uz0?Kw!wPXRI<1b;{`l0fdy8KRHOR?bsSf{+0CkFm%R0#>2NEJ4;)h z&w8*QUS7_M2;UzJzg+UJQdrs??^~DHtlMuV{=S?Y*|a(woIIeP0ai5Zn3vezYb!x- zm%%&|A?~129uw*m12_hddM7x@!9b@g(s|A@XU<-QZ0DAaj+UnU)^(v;5gts9K4i1o zK2K=aSSPgje8HSp`DAxRtE4#o%4o_ z_ME;`huD*zU4U>yCG$JAr+UJNn2De->~s+j)gfK+Ma|AGGJytZ5wrNw}k|Ew4LiHg99T(8#FM9>8i ztGp_`wO=)2FJuzu5t;dv%nI?mrc$M7nna|{48YvbRArBTDZ&SJMnPFxHeoh~e6D&o07+pV6!9EFfd3kKKx~)|Q z$>kKdi+lvZogK%kx=I&j61mogoSQ>&tqQr4LA5XUM7vh!;r|!--LCWbW1n4Pk$h1 zhD7v_WcQi;UNMn1(wzRsn$JjQE)9n>=Ra7V{eLo#UIeqvTgIc>)QiEtPsG&zR?ON; z+nUfzlFh7r4L>WBcR0b8pzI-rbZF;e>}Q0(8nZub(m!PkKF$ITB!2Fo4Tl6O5v4=! zB)ZCwcwhJiPI{z`yY+>!0|2EfrF8xcxSeorzDtjiDjPIe) zChLgvfllawIsqMN**Dr-$nei0V0!}l1d6A``ySju5x_l=PgVtG^ZdY%?Bdji_{Fu^ z?E%7Jw+61O56bWxi21J@PI?=H;u;jy9SGCj{r|#(|D6vK-LmeEpzDu7aIXPjVBH>o zY+v@n#Jx5I)BVQ(SCGsBfmp<0!HV9#$Zr~knk_0X6K>u~Xx<6vNiRPIaoWPqgIRn8 z`kCVlkdC;OK#`{yfoRp9?h4un2N3G(`On@Bd--$y+56f55x~0sgPh*NPa9v zw{>y?_J?owVc*Xl`a<;du;~81-cDvzNuvrg2+u(w5b~N2R~y)LxQdQc-vYtL#-J)! zYE5JoU?J)77=0H?Uq~@XOd&kWs)@R)e|Ke9i)6(AaMZS`RH7;tQufBr1=T4PY*hxL zC}&HdA1gw9oAfIG8`Ghcj3p7*l8Q}U_TVgDd6*Hso$CMISoTFqwna+3b!KbH^AWU$ z(44&#@#2e}>C?dtpz_mJ%cTCy8zlI}`FpYQ7fcG{i7hU&%lLA6Js>CsaWgrmpp_y` z`Q%9!9SLkWPVvZh)!S$w2+qcI!Q=Tl?!~ni=g6I<%Lh%n$TzKnsYN*2_&v#Sx&WD* zly?sQ#)a?oidJesSs(=pfJM0;0Ay}yWRgkc!=hahR6f8 zk|@bIJ04y+9w_-oUILPOgr6L{m<;TH1rN6>X9OaIoiJ_!q2jQcQ5c%GMA73|E!#vO zXlG^dPlSuIH0)2O=}lb}u6V&9?@x3BkIFS`ycbFjXjB_iUVBXLvl3L>z>4CWuKv<_ zWo^_RtlVY!xPIDYIhe_d+uC99GK@n3Gxp0>9A{xQiYBWxn{K3*TSU%=D-C_<8CKfF zZO+U!(eJ=`n`&(j&r`0|novxF`+!?SjGvUXmjb)|FPzE^E_d+-5ts}*wH`D8dOTCU z(UDXh+^_X&h%at0S5?F?;*r0QWWeQ$kdy}wxu;ea6Lha^xt>0$n*q$9I}uWZ^v6Pm zR0q=$R1k)ACZoBdT*)w+`x=RS>zYqNT4%7rZhDgI0h93JW%7WS+V`Qte`pf z2=mT}%R+ZPDZW6NXv3kEGB#d<`QL`ug)>%(6-q}X_;xTGYx|bX^{NeJM8>jI!biuOWmwrY!1IPECNRu(saqs=O zh!?3_SHi@ig&5w?rWoJ1B`K;?y%(wL4!46FIcv>M>$^jfF}9pEIjwR+0Jr{hff6OJ z00b4f#@!*-adQiQogDNxt6`z zsqQ5k2VwcAYQ*h6BysYePw}$gwW#Zkb_;vj~6@rF- z_XYFJ@lcK&f1~7X?rL=NR|KDSyYXw}0GRZ{Q`J_J-N(lR#a*RGh+HN&w;kpmm4$ib zsIn4)qpR$);oDe;q1*1IAAri8Ar`@Tc}Sx2FmAXr`gcPr3Lrt-SIMu*0Pvt6Um#xyzQ7nP^M}HN7~9qR<6D{W!b$YGb0G}# zdK0CO;y1xm3xcMmhGlZme&3cI?|}<}Y{(=Ov>ywBgdQp+Sy}BA=iV+e+*o#2Hx@+s zBzmrmRT>gK|4fV}Z;uu7#3(6!1O5ajCI9TZx}+c4bV+05X$74Upsgxu-|VK@V>y^DSlBVJCsLyq7ebJXBh95!3pISx4)+T0V+8LEXid#vxTIsH zDxhLjMNX*%`ZgIFy6`$e1j|B z9GN@wExvpT?M0=QRy#st$&0)%!W)BTjnOL`zVl20d>;Ua$zy)dL33RdovtnORs9C( z@>0C7;Q5>kCA+UU^oNnWaVTXs~B~AMfF+ zO$nw!_yAq-RfJ!FV5(zEQUrj}3&5iJ>-NM_wvNAc+2!?U)O1GVm6`~mqkUSM5_Lgq ziWQ)}GT~9wqk2#{+wkorKs-|2eV?9di16T_PgXFmbrOgn8rlRZ_cr3S79>1=r! z>Xr=NdNi`Ht*jehtXPny1z~JOAXyvtT{gw2I5X1beg57$)LC36m8R#0T+z{N2-4o- z(AV-(;^t{IcZ4zZuM=E%9IUs>(CPW%oufTwsK+ZscjEw%0(^qQywSOa;N*Vn?egD< z3sH96oqh!TJoY_Yd?`(lez5T3CR1duTRDZZ)Y6yG@SxbzeJGE(SNa*BgQBg zp&E2Vg}|8d%d$bVjB}-aJaKp4JpC7i>54>>YMyG5@gP>>x3a-z+zxT|pAyvq3C2|J z(u7raxnN3NFU12!Y$ayu3gyCnC*}%gK^)}lgo`G680}*dZArDid7iSwZhmvRqU3n# zMDRmXaLNfA#VWdvjQh4BYC!Ors?BDgub!3{D?>~REJGe846<|l`TB;p&Jmq}$TXUg zqojnz2)&49N9;{pn9D>z#G0JGH|P|-9mQua&bzG+KEMru!!GY-_rtp2+Mq{qvXi-K z?Io`m2F~__C>HLoAqWN$`sD84Vfa=Jy6%diKu%=w5TqT zA_tJe(?g7FlMBNbqTe612hth#X>0oaN1YF*U4@P_Cm&z(JcMc`eQ2=eidgy(+`Wr-M92u- z{Gh;#yIJl)g{1bR+W)U4eBf(3_eKj=5os@V7u%Mt|Ph`YlAM(QQr*4VE!Xa zM4N(94uSy6arj5hL{;C6rD6i%Jf9NT)4u|*MCX36?pca<3*8vO*e9?QLlumNLoFCP zlQ9H0a53~8&sV%D1sh74$WayXeud2ie|kZWCO+dW6ug~DWQztPsk_N+ZAhxAjVi~( z^Map~S)O(#DgzyPg#SL6z`dUQK(Ecx2ga!{)lMX&qzKp^M{7fP3H0J*dm+Hwa`^K2 zu67suXvKoA5jpTP)+Yj(b)g#+bferMQGegwB$ zt@zv1om1*K{Rx`AdQ3=ekP1@v?+_D~c$h-R!0%aE_D2-lbA`tVLd+fzi+JT}Z2E{)P8h3~P1U;tbM-_PN=y}CIg(OLxx-_~VX&bazg1df1rEJ`*0Dd?RtaJnG z%yvZCJ{?P2U*{PP`ld+cR_gG4-|V_3I_iYpTSnSNd-JsR|ML4Fw${QG68xg}uKaei z@5%~5!S6=zxIXI6O!2rYrn2bU1c->)9sSsY^1FfUWnUp=pmIY=5rf+mv`b!#1=Zbn zpCks@+S0i#QhKOi+NT;ERej0q_{Ez9`@G@7m;@L)1UX4-O14HXu1gy+Fcm)U| z@8hi24a!;`Kt%evSWuvb)j`5T@s%M-azTPk z$iZNJNte~Xth;u1#U7v#`+?`#4U9KNAc~aos1*a6dFVgJjL{>yH}8stu6av-XtkAa zD~jp}7Cy9FnVDxYS^T{b!Dv`DzNKoR(4{S5 z&O60pv*TET+sp2;9KMQ6%xp#rToChJ+S)P|n$6Qguxb;hNHZ_2Mh2VPJ)Bg)h>>&F zlf0ScPdoah-O=R7qR!4l@%Gk|*NnLV!WjV55n{a*GUT?n_4;p7tGj zrfFeLp!^$&w8b%(DZa7iBQC;k3+)n`zw+muOrRM6{GWKm}Gm< zD~p5IO8ikpqcg?^A*Jft)2`;1^8E#FF0PM7Ov*!VN=&7%ZcrZz!3_-b z9Ryv;&Mdau;VFSRm6-3$^gmK*nn_5rD52~KoObtRj(j|l;|CT+zId*||fjBAd_8j0eIftYn8Hy(l6eJV^V$sYB z{WwK3cqv7;k}`AWZbJ=^Ky^I}H%pw4flf~=y`g0B>GtNel2@M3){rr!_%%|Mll&9E z;d8q@WvZpFc75u>+S_)oxcluTCP{gztGE2>M$*S+#ONh`!*s{!-opUYBv2g1kt+o} zTnm~1k#W}I*R(0T^U;))<$H6WsCl7ZOOx6u_0?O}b{+{wI6g0bM9he2_71~uK1AHs z)}s*UjI}vt_m2Y<{9Kri9R4qn%+5hG5kL_a@Ycj1S!BHxOj1}VidmUUpFKP&;(A7I z^Qltu!i9m9p9wii>Ye3z+0#5QNn3XcZ_5cW=ciXC0cW|yBPhTCyooys#SqF#r`b=d znF1&ZJ|+YBME?jiVTbjJX_~#-nK0MvCe^k-o2`KJS1vT;Uss-rZ9SxNmYi*2QTziK z(oEJlA|gE$_rlQ2Pu^%oRv#qzaLKB!ZGBzxSW&cq@93_?1C-!x4zH<6w z+a9ax>sEp#`^IDs{T;tUy_mwOk_B3GBU&xCBo3Z|b#^QTLB=Wd@Y;R~L>u8J6hF#- zfz>r;lrb#J57r3-*5A0z4GR1*FJ?Di=r3&q%F?fX0i?^2-==t5>TyA{J4(< zkAF0>ehH8?jpppqJMN;owIJ7}0;(EIA3Ihp<}4-r05KhS;w2TZ<|!kXwi)Pn6(ubY z9e?3uxQ?x^?@6Yvme;yqhib1-TWN341c2)YA-?MnbeH>nl<~IRq`3@>sxwQeuG&b( zThvu0$aoztkDyE(*+C({`t^#jdpR5VlH?9g-$!J=besuWQHgn5MQ?80MlbI@jD#bh_`C(U>Xs@4`P5dlF@MHGcht#9lUb zAsd&Ibn9HU=hetQ{&5Bz9bKgZa5Jf^WvJ8ySX?A?dlH09k3fzH!j!%tMUM{ng1>(7 zq%BVl?qI-1v&iEBL9%)zIzv+8o^r3E3H8V2k2|qwnUL~9)p3}C^xd*x^R=1;r+z5+(FKhaR3IWfv8xk-H(vZ?AiJPxzH21!v*@Ou4X7zkZQ zmKWwtUe~eIzPzcCZu@U#!SJq7liT>_jqy-uB73+n6X66U#85*;6=&-jn%4-Y6peGy+s4|9FGVvUFhjZ7ln;j7PkVqR zSBREbRY?+jo%ED7+!srtSbTFt;>g8X^t~(gB6SI!!b4Jx3Mt0yM~yre_irVc=0S^F~i@k8fsga&u;LNOqbt zm9xx|>0(8d#A%U*VQ_L213i2uTi_2`;Pv&8@nwGHqA4KopUa*<#f{}FhDp;WfNjl& z8qdNb)#^*-hW_pCBuRi3fv*Uq0Cf_i!O6|jg7MK_{1Mm^TP@H(1C2d-afFV-oaMf< zpjn?wQ+_qGVxo!JaKa z6;+n8+Di!Cxix`JYK}3ItW@+_FY9fEH#N|lrLoHHVtLU_1hr?`@}xD)OItvS_X7qQ z_t3v6h&7a^Q1;`cTluD2uQB);c>(+cC0FSS+muF_SCO?AkwzNT5-!B~d@8z(JEv@y zCMwGLbb;tog}L#hMZ6{V*=1UO031TdAu4K@hInDN#GOwm=qcm@Cq8US4L^m+!=}vJ zHIAT`4`uPJdT=o7L#Zg2#{hZL!V?j}-R^Y$n;a|jXSAw#TmDA&EU;BR-CbS1Pt31@ zPbOnj8kXh-U;mONQ?*W--W;=gjA(ZWH~$Q&h13@l4L|1jmnR9?L%s&x>`7NsARJ8| zIhF-eHkzuG8uS~L$S5w^c+rg7F)T1pF0YEY2qZl%#Oft-RZcA%&Kswpi=%?Yd!H%$ z>d?YDd7CA;vW~$A|G{K0Kwnmec4-Q z#J-~$bWZ%f#@iUKUg6`D=xSun<3Agd4*xj)`;ygAY?Ecv%ql*Lz}gWFh`KNu&*8gx z{zbnZA$r$;2P?K#eK`x~IHawznwj`A`WhQo@bBkEK3m0_obYsg+j&CeHZ*)Mdg|-V z)Q+7IaTWMnQgqF#FP^p7Ue2M5qP|=-VswB}*EP0h4K(b?yfZdDZW&)~V?|}n?ua@L zZ9qGvZH@_xiZzNvzL z(58$2tX6Lmx#**{U<|M-@_9v{b-8`}fLwxlRsQs-ulaVBaq`~Z|88-|>tb4VJ>9cC>!P_QJ?;PQ&)&Cm zcsGV@6o#DJ@SGuvGFo3M$3)cZ*GjmqTGO3%I=?hJH}ZPsk#W4=k^|QY)($n!KELpv zEx_hlzkH#1T>ttepVa^Se)8YLqer{9-xY87I(A=;Ki68PHXa`B%-&sMY>(L6KQ*7e zuGT*<#xr$t<~XdyKE5iOe6Nn}HumdC(^)^4On6)&8uL26pVqqE?x$?eTK;=yI(-KZ zTeTl+Et^-`gf2m{N7WZizHNm|^oz;=z3}m)iN^CB*80t6Q>74&Q^R>&^U7j*l2vYMg8YxNe;QZ@i0q|t!xu)vZ|)@ zY2^AQN-rviaTc4}*!hoRMBA~~F021I{&?;3dcA`E`0HZzbid{D-(B2mth8!XLTnA5 z1K?Mm$`Tm5%Smy`d6|~E!@-5H4!O%2kx)E$_&)SlFc3>!2+<@pi%5p% zD$$&LC#TPNHK>fk)l>d>D%1cy3DQFBNrGzv7-p94o~(bOAGc3cEdOMXf~^#HB%=Oi z>9EgWR4_2*w@hKt_HVymSAayE?A>5eTJK^x$)&5iBBPc?}3wTWj>MiV|qJypK z+1HOJXsU2nLFSr{m*QRR91d}{B(9MaP%n@k-(^k^ zUPrhG<~SMtAt4j6eO(xEO4XpW3Y$J{LG8=^4%esVf}lSO+vHQJl&r%Rie%o<37_cG zDaGMul^2)`?-=>}LN_GF-^#1_%o9Y&7%8S01u7)2VP8l#7W`r$%(FIM&(6DzLpPSY z^UxPakXc=GMgeR>jldO^!>*8yz{3cu){-``HR!xV+UyhO-c1F-kaT(hiY) zt0~Lrmg?m%mvo{=1g98o*c>3}Ono_w&th5e^Xv8O z6Z-)I;(_V$D|~*-I^!4h<}dcHB6((?GX(FBY`#08hkvhHCuh{9q|v{39xFo=9i#~x zR(HZ!W)HD&r6iP4xhn~X_OkO7Npxe@x~2%E`Z=I_9onRibPn?o!o_fZrskofcdQx*@$uVW!eDE}zf+I;0l3&~isR1?`Ze#PhIzBcz9oDl$S5i8W`Kdb4g=Zl7a zLWuhqojEJ)WNMvoMTjsp)ozKVCn@UG$l7-T;8%tYNz;3D4Sf$DgX3Zs@X93x-;iho zB4JOKGi9PcPbo}Kw4naY$V5fa`b1X_UO`Ug_+AQqq2<6Q&eZG32kbp6z&{|HptnHi z*<0}yY_AxT;zg$pZ!Cuv$ap~*3XW2Rsu3H360TYWV5P2qn1J>Sh$i?cz07k@zBGhLS<{0^s3 z>nB4*&mOQP&zSt&?zm4uv|pcKU&aXwxJ0<8JQGTF@W&FkhE}IWL8NMP{vpP?hXkUH z3Pt#@>q)7V);?0K)!#^K&)gd?nnAepgw(S_f42x|@HD4pOkAHs=Tj;(~CA0rvb1@{ai7#>rw2)Q)6j(n$Ru`O(rh>W_tQ4~BvBYvbnOi$Mn~RH^I|*)!=h*KNJ)1DRX1F4%G0o<4-Kw7|1K;AOiwCfm+d`*{MXqw)Y_|$A zwuu#!<#U|B3l&z-3Z!GjxB2?bF*S7zY4E-+BzC&pkWq|zhPjr08b`-r!i5G@I*~4{2i(oht;>dHuwZr505%lnN z-WDZgy=`fVMRve$ai+}*%Q6ajXmMx#=PtMz_`0(-$YN&JTa~BCOaE-~64&jkyXo`i zH`70Kn?S4&XL)(fbTyP`)!%F+nQ0@pXF<8c+CrWEW>L&N_--BqXlszXvFZdybLhqo zF|pj9>)jf4Vzk>zzr#o5eqryENbmggEI-vU92yZ^z$*gpBG^ZKV1`fc$TQe9M;P_8 zT@X4;gUtS^oH_euC7Ir?3trM~B^s(^f9_p8@S)o=Ji*~(1?b2RE8J-s+{2c+OknlY z9=WQOO;Vn~VNoLA>&g9fu$hP^j`Od8RGM{xdQNnr0rdGwa!>=;G*Wek zhgdWO3l763OY1O+aSd?iu5kD&uJdP~Oa@$qQOLF1a)*)Hiz(uGIS5V?T{F-(5B+MR z7HxU>S3H$G;wCCN@AG~inXdFzAFyg#n-jmI`l}{n2}SRv<^-+N=NTErBF^kj7UeSe zpCSD+7DdMVp41e6$EcD zet(@B8tTR6D7wdJe32+ROKSyTBh09d2%NUTzx|bA3P#eo_FV6oDH{PoG9F!BPfu^{ zzU{jg-yhVxHklrW9;TTY4p+AdTb&XC;h0E!_&9TRqulu*qNv!>-YgdT(xN>oS+Arg z0{}W{=PpsSbLM^uZ)X}lH!7v1)U&RRhI|v9hQ(ou(sTZxMim-trla0-1_`f1#>mdOLdyGH z891GRhHvo)1>~Gu$s{(EJ`5~O{8Gc=rSqp@1XkTvXV1<0GK)I3&b$RnIJeMf9pbbT zGYd@9DUM{(KIWw0W$z?_l%J&#TE=R7&`SDp*G!r^AJU8!znm?xG9%i&p2KyH*oMyH z6hU4lCf8wtM2wBNo*>n{i}{pC(DW5sG&WG=$iyo?#}U6cy*(sxVO0glQ_p!E&T>{Wz@-!@N<_AJZjH{2G0zew*gAe2(9_gdjt+QlhhX9{w%HKvc;h%&IFXC%EC{6(v78gUfwivT#DZ0pZXk zvU=tq3407Z(&W>r&xEtzL`U%Iml?D#?|Nzfx~|UepQH1Tzmqq10N2CIgmr&he38o} zcq|!0gfh{ zvC;n5RXfGiPwm#S6T?ZN6n~W%d0>*E(tZxkixyH2KydlOb#BaL85*vg!7%VKL&CK@*@ST zyyATYMegcSeQtt;vNXJITAE|UalLn)jK|?Rn0QOy)XJ^lwPkErI72QRfk`2|_C@v{ z53TCqdR=k8AB~ejL2{F5^i?#2l}8GWf_;89#2+f18^n`zNCs0lQfe%@tEi<3S_ttZaG1NfRIu9r1DEmz!4xtCI0WEE#Oom%m5T}vC8 zLCfWtxP4t!=dHYRQmwybb3n5N;^roNpfb5%0}jt!eJ3 z`~bbaOngWmz5{Z$YK0KHJzqFnX(#FMsg3B|%J@zK8R|t9Wo4C-J(&0k56a`((~tnA zMp@12U<^`(5!VoK1Cu=$?5Z15R%eu{t?oH>A2_1mnRGBpd)a+P_j=M~7kIrMarDB> zpLsW1JL3gTDCLi7B8;0RKWx6%zO@@Q<|F@>D!=8o)oX2V5^E<}R+u)PNSvFc@gf{P zE;S8sp=U5deiP+Ppyr-7>4Rcqk*%}XYorZ{F`hssx;QYzs9mA^is`|+haS>keP|KX zn-HmBq@y2XY3OtAZg=O9es%Ltj3S<995BEvC50^)rrjyvlj`*a&g_uisnqu^%c(so zHJCk~?CLN42@ANG!&jB0FuXK{{;sj9z)W(*Zo#kAUYDFQn}*vxj(pnt?a*z0NvkW0 zfdAR9i&gByiQmu9l|93SjqQpFMdF?i*Ry6xuv5!GoM_sKVvgcw8)X8W{M)kBG|lc| zb+P11JHRQz>FMyI0#^(nC^5GduCe-c;vck&?ahPv6}(4D9ppQv1=5|>t6kWSB26Dc z2#AK^^CYOzCaT>g=p5gWt$Y|Q^e*o@O46QUn$EzuZrRxgFNTxY`p!0?&uARtw*Y6At zp?7yXlmgGDo&p+aQwtvL4I1uz1WF+GM!b^lVzShN4glWqH26Z4_?UWLvCA*^&s!JB(vfqu~(l@w0`?NwZ7muNR<@?JO+Xqkd&uq#ZksoFw+Hm$8aH= z7@*%23}+>)GztKvcJ;$}!~`RnRcEQX^Wr|v9fS4|AqwO@+`4Gmr}W65mwe-_Q; zzDrps@F%Mh`Xj%iJ@|E22mx&bKuD`3V>~v@=XF{Q0=!hJ6BQ!wzDo04G^S9m)O_d(6RbAF)|q6RV&W1J-&jGlACuP2`W+<;!j{{Z>^z|=*G0#JBIH|9e$DY z@*A-6(4c<6;+IMLAZQS~b%Yoh&CR$67EFSC!7*obKkh%TMvvwk>)V^m1SFztca z$NW%N&UgrcTEBy%>tawSyZ`NA&tkl0`*^)>gg({$$(`XH>ypV#2iR%?@B$lt+qP#hQ(m~Z2ty|~8Smac-z z#G-tc5AzzGmbA7NopJ5YCSeXa4B#+LY$bkK8?cX6<-uhF1r(EDx(#k5E62&nsnb4y z#x$TKsj9?GnP;A`2}PyjCiz`%or?#jlH*3#Z=TKAc2EU5%o(#HWSD`rpZ)lkopj{&Kq(uABcl zdvDbr>WuOW+VANY1Aq9R$G}cC_n*YUZ`T?G{_A-7Vd47v@8QR}rv3wd-mazp3Ony< zUteNBw#nf)v6L+%dU0Z*u{!R(@TlUMKyJ6|dPuR-?d0}ha!zX4 zj$dmJ!;}Sw6)Pl?+lP4mjDOxKom)N}i!l~rUBPJ4yAq<%)OO_d0R%FZoI6Zz)9s2? zYDiO6@XAYaPD8-y5u)Vfa%l~Yp8Z+mSXUBjlqqX)5WZQFus|PpmLm*H{`YxU%euAjT5Q2(hpcY3{)T zu~7-^sPc9yDL;@&ikbcaZsZBLO$Iw&d=5r!OQ+u_OrU?zKPF57H+4Rk!LF|E1EoT? zsKBJ6xv#W`X;}fF1KO%2or|`s6PAMxj=NG($Iel#T;5qZNxqW5ACd(xv8|*S1#pT% zr4qwiQ0D^hs+N}*R59Fls#kETS3#{#@XxPAxbIYT3~qki2|>Kd$ax2>s6y4l;O5s4 zY8|T<@GmGLicXaPPIcf^1BK=OmaJ7ATplPlS0)cvCK5bIwH$@8xcbm34ygu%q|VRe zz0ox#*Vsz)GFvE|XKloqrIUQ&Z+o~j;-_JHwv;!N%%GKj;%n>#bAkp?UdZ#SBQ&u$a!UbjdzGJclL{_{!D>qQ*H%*Su zY08QV?)oU)Wy=@02%z z(N$bV20MxqPbF1)@i*mBFI)*eK!)UuDtLqpb3E{Nd5f#GO!~Qi9^zSu9HD4FpEA$3 zW1}E`LK(p-d?17g6}8F%MVs)*K7b#qUea3K5sH0SuhPait&!TC=IK2+^c zU|zQFyv~XdAWDK*0>vaTiSEh$QQS%TDCu@j#(zN>SHAz4t8B>tllU2!ln8r9{u9&f zTf|1BC@tf7lJ6~(S6kOjwxcYH@Ez}1&LK;y0~a!c)v7XWAbCt4D?SiS=ffxDJNSgo zw?7oy!A9E5zM3{e8Vg_uvHal$>Lb57m14XEVgIM zY=gWNy03H%n9N*7qg0vgwrKa%CE7FW8BkmDXM7iwVLN1?PRd5f-M&?9hywCgACQmJ zXZFeTDLK#5E**~|eC#5mUTDkN=owGvV}EKA8LAC_PGv(|x`utoHG9Vc_)oq<^=WBo zbaVzOkKcj=4k@ei@)e~#fNM}-)5-HB z8lHiY7S%HylNsZCCgL-&OeGWBmWCzalmnG;vzNL@ZaM6Ky-vZ&+_B@vjm@Rm2M%P@ znTr?Cq|jErGGO4%+XDtD>%?#<_-Ww}bs$@9B6MKVQUG$=x&dBzdF-ns7k!KM% z_xZ-nl1>sziBhTgu7UHt#!2C?o?d?HQHlK-Ua>X*BkDJ6r8mgGun$6P9k4Ya7@&Q^ zN1yqDj7DE3I#Dlq30~kyyhXDVBm_Ya2^K?i!TMmAU|0X(7>FUYp*HCu50(bYL;X^9 zsrrSwh59n>h4xSy%qFW?0Z>F*B5|-USoqHNVAOUL7H57qqT1Q(2kK29cB}8?>J9Fl zg_9uICn!_t-1+n8lD*z(qiGKqv!Ju`>){0%ufSdIbM?EKdq^YY*^~(rCZPt`$y+Hc zmG+_@gbESrp3Bx~)guq#TaZwXk_vF4+ zl-v)N6)D#I^W>e)yY6rEXxO}t>neQ{9rrceTdm8Y-O8~CU2I8Yj502xTc`L@4JRdy z*mv+i(W12~RLBSk8Mv*{=|SZ_^zhk3hgG<~{R4Uzyo#2#jqq3X_Ho`vqK7VBD9LkK zO*WCGPI+k(!kA99nwUZvVQ9sJ83$Kf$f!SP-@YqNin(>mxH@Huyo??uHs$PWTD;%X zhKm~)HPEYMASpE)s^#UO9v#q0@)d(lisfx=4}Bn)#5U$D2o|f6@8Imk*UHy69r0po z?Mo?HBS+59+`apw)@=qK>e3}Ei!58dZ2xLyiq2D6)-^J6=&;Ai?=%tNA$*y&Ip){1 zcSEe|%KKme>CpOPwG>-+HdzLe;+H|a;6rjwsfdkgDjBNO5ghbLOOYOT-e%d(Hx4L! zc9Wo=l}&JFc~+cqVzsD4~K#Qzxa7vW=V>SiL*U>PLMw>Os3 zPUTh=H`}|*R~F~?WB3yb z9tY*!lZVQ`Vp}gMgeCZtm@l|{&X-+gxX*#Fu^|X0iP5)+p%k{p%TFUCD+=LH@4q_w z)Nu4!1n{kYQ2qP`qd~AldIQ@%+k@|$Or&i`k2ZL^hQ6ek&>Y;?JhlJu)0wkB|9tk$ zPtq@sbILuMI2JZQJN(-)RvAX`(Qlv@l)}GS^c&7U+6i45;(_yCQN#uoVb`uzD&Jxf;_S}MKeAQc;1^sKE(we7U8iilCWv{BRoq$ zu)ujWc=$ssXBXU|InAUm*E|(1oLyM_2rChpr7e^?w8dELSSvFYmE)XE?3^6<`q$pZ&g zZeEs6BndUKhttU~nAPTcC~;^EpxOjfn7pItMo&?Cj2@H zj3yPzhL)7>91cdghfkH0;T8nDY?qraM1qjLEXvMP=V7azQ`;+T(J#CM9`qS4 zL!XNuX431Kp5C$TCZ)EvnLVIW#|~54wIe+sj-FJm(-Tk$ZajH(D!IYOaqT-sepI(D zJ!oO(lUGwDWx}r%;1*659^jHQkF%web4kn-=m6 zWOHfY-Bty{C%;3qDHztZhx3gu15y2@I)l!1T(d1cX2WL>yZ4?u=+u;v>9u{T2Q=(H zBL0Vp?vWuw$BuY9aO2)7i$~ne2J`PdZ^)~U#m0;s(#2N6>Kop(_s;A6TYC)cTQ|cH z(kSlRFgJ_dC;WV^+Nq=ajx6I7c5uV-`@y_#Fv!d{`l$XS(i9TJs+dhhdI1t$8l-K# z(?ePhnNf>gYB*pN>npJ1XfbfGJ#{(V!=e9H9XpK->_3WiJlnS}uk+coub3%y;CXt1 z3^waL)p5RHzBhR_VB3+Iu+J8adUdx``0aqdf9p;i4t3A^p-!7t;UO+M-LccBkA+pT zeH2K}+MBr)v)0&KDemy{#HmS1;nBWc@loJTbN0igu;>mITgR5s=5$$Zo*3zrvuC0$ zk=M;)Wzq_DTIPKk_Mn?#-HR-p=WJyMuj3PVzn^-a?@nxmozG$2Zh6vdC79jcOka{# zaE8YsHguJ3(BlPdl{IEIxuHIf_xq{$fxQK4BmHQr=ez04*`z*e)9EOf&8Qb5lL*@X z=vemhSOrikolm|w)P)Pa6p+2Abvm6(NO-F@b$-a|eyBsIZH;Mm|ru@R7gPvS2DS7wAz0wFg@5Rs2 zW|8B}?}1kQd@Y{$m68oQQjYU8B=4R}j{JcTB~(lBil|t=q~K$g+=`bCEUgn_N|rR$ zipH+|%o%f~%V!KvFP}l5x@h2hx3Z<@OT}kIn4=A6B40&5jlA_V0z4hNw^;*<1OLfi z6R$RT-LW{PebNbb;0rchcWi=BLYStWE^NZ;(kKcW|@RQ%}?xcHSY_=Ho zf!aIo{`Sejr+1OJg?ab%Uy8>Bix8h+vIu2dhS;dz=<>TQ7i$00g~0Cro9iMx?THRq@ zDfSf4;dQH@pDP|ihvjG5`0icU0-jKc?#`jPaczsn#ujZG2m06Wv8vPY*gp=$x(XH# zFr604%Rlhz)dWE|4eK;m{DEKpO*RUeuc1GWy5`C}W`Vm^>|o~mL>Vnau&Az2IWnI>!Zq$!!Ne1e^FFF2?8GI)pb?&&0? zJAh}lYq1d1QVk^A+CHiv9P-X*tt#jw76E0R4yUiPvfyH``9QwXLZIJX&^bS3j_bE* zw-)vsS~;k(@+bE49|m}gna%?rJKf%GMCU;m@-RBO(gQ9o$d`wJwhJ}M!4q{ zvmDQ#rVn(Fus`%*(GAm7mhAKv{NiBQ+%~kc+*DbWp1xZNOBcJ*QA0`*@AS|Xmtg(n zbo+7U^wS5hNvu4Brre5AeYoa=;9^wY7q>;{gGOy*BsafZxg{ewoBDO@oDs3=50XMN za<0hbvXpH4T4B#8qAp+Hv^hVIfiMEl>k_}Q)s&klt00SxXw_j+sZnd;{H}DnO+4F= zHa>h#^}$^J;5woD`Rc>YF1{ow9~_hE!~zGOk>Fu3rup_5YoT6cA`R{ZFsv$wJx~lg zt?FVAWz}waI*VrSmXZ|@@{EzNSqUN6?TxWLG9Ujs+T0LfINZe+sbg;<;dRXiG6V}v zc{?2r74jxxNP*>bU3s6N=lj_5UN{Ip9{&7=6My!ONkRK16)#pDxy1 zb>Cv_h3&fHI|HaRYKF-$^MZ^ve=~o(-U&g7h9O?6NI%K}eeI@Ao9sB0+1C;r zTz)#W@1P$^$>}uX<0cR2%PXCdmqx^yR&gKS_?@~_Rpyh!NMRCtMc|W zKEDm|nuW3nMSNXK>P$t2lEoz-HavOe@>Aw!xRLoqHhRtX7^im+kAL;_6?zz6mPqxz zA(d_P6D@3Y0r(7s`~4{{)m1yd^~atKr0U;3d4@gmG$v4~`qhI=JMp%KHcd*=d7@tz z>f9DRbgV5Fv^@{Ctr6iW%B7UtN}Ve*u~vlr!_|xoIFKs0O3jUsTji|#hjLP2sy*dj zlp`-vm4*MJ9PCY{XWm;bmbY@FRV|1A)Kc%1Uq+gP_HyyNlLl9ZpzZRts)_-;Mht! z<3X1`G?%u?hcO53#Je!e9^XKDPkI^3m&U^#cbAE?b#9Abj zocqUUv-3^1n5m7FZyS8*_^KVXE260`G+3VU{IOC8%~eF)TyCFfqK?fOl~wIC{_!_R z`QV9#g^|(PycHV|<6{;19gf(6cI`Q?ON%B8QJ#awjUV4@%;>2HyQH*hzh)DRQ5_R<>ojcM z;`2^TT72B5d5gx+D4hnG{z)xH?CH^?MDWfqPp@iq`t+$?Yhi;HlTur>C|NRYe~`)J z#e><0RKHmqjXLkD^^M$d-b0Qmf4~)5ZjY2ak6xOm{LXplmv>J*!Nwujs4uouY$vYI zv{;S}KJ(!<7SNRg7S-`-Ukj=C0M5e&M^q=Ou^q`|L7g~A4efHPNr%<&j(ucz#g{x{ z;T`(CBe0JP;c;oSkid6iF9_g*98+Ij`C;E%;hs6d{7%>h==5o&^g6O%4fDjUEEeqB zM2!fQT&GZQm`9<2P)Uu3;V1b0wjUCk76K;nC^5v1hl=|SI%34po;95VMd;CYZ9LvH z8&vt_-E$2?TVWEs+4w5hOz4d|;`JfUgn1R>6w|*2uINIMYX22 zrWBIhzI{rTLvERlAVr|efo|7tQKcSUBmE~K&3 z*aB*cemm#480Xi-T9?||R5nkjZL0DExCPfPDkm6!%5~nBuH=@H?&Or?azoy94S8D% zE!2*Tf6;opeSx9Sn#j8?;{~5;$!`P7*|)SGd7{y5&PBBq8V}r7xWWg-3%O7^;eS@M z$_yC|-D&H&5Au2H{sg*QRHpZgW^Ap~Y{V6NQ>?*^>6-p>zL@?-uz8QaFb3Xc#{{$! z^XN5+gWuEYyB9yc_{fqa7cNmxm4Enn_S>zy&sq3_c1cst=F5QVkbx%YmvCNvRQ=TD zhe6dLzwT6Sp?CcT^+tZTA+c<^NK-z`=iu~3UWo&aSFf587&IwTtIP!Hpz0%!ph=wP z5H?QnR~)Mq=nkrbP#v7r^gTTD`t)o#Z)AG!#OAgV^p(o^duny4*ef^g2tpDSyBr;H^vh6HkhHMl=l@1M*vKb^tn*$_W5U1Wz z)@nSI^-~sEDh^ZRy7pz{f$F0*L)w-i%wqXGYWYIB+3VIZ!0Xn@SAJY=Z=E4ES&ij~ zA>5Y;m*)@~^Rt7Xb=I9b_+RHq@2<|>BsE>l-aJEH#~2XXP$~XyDu&t2vnJ?ap~V*Q zF^||7iLD}K2@Ww?)J3F3>@oI!X&yJa$mYGg*Vs~I^f>d%y~IrGjO*noZa4KDW3TNt zbR1-j8zR5BxP#tHqx+9ux_A_7q(P}27gw*IeD&&N>Y4NT>eZj~z6`r_Br(Qb#2d-Y5GbzV|+BN=3@ zp0q)k;F6d$KRu~|G-B!KvuUr=zW4$UXGbqxI;h2jaV-YZpbgyzeaeQckp?Xu7D@<# zd_@{)fVlMg4N_GtXW;SgM~V8b-1DQkQb?PW8=Ls7b+Jn zJCnC-{inUW_9OkpR4)$?uc^QCF8IZ->e-85St_phgQNG%AL?7`$_0?ApXy12WcjYZ3&Y)E}Gh$0+ zN_RsFEO_*Y_IgCSr%6vUQaaJS$_u);QwlwkHfxs32UDBw%4^sW_OKaqG2hY8M~!`xGw&FHlR0i*%$?P$8RLDo z?St}BmHjj#ns<+mb;u$6;JV!qStMgn|8u7wJvvSA`TF>M7!|6KGr4sYGg+H2mX*o{ zHorvYv2kv+cUI^5B?yTPLG3CSJSKXUIcBzoNMeE7)3J3jKCyWeR~v`gY%UzHb*;|c z&ad3xo@>fU8`b$!5%TAmSW~gnS*_}i9M$`i;!H*ZP)5EeBQ_$e`dY*wuxN;@0#Ck; zwg{*jF{mTr%F0_tp3W2UPLJGDIqSfIEc~g=M7>zIj^0|A(g|u31Jvx4l9B6)m7gX~ zM!k51`r)L@dTm8THm}7-m>CXRq-2mBX^mWy7tNw^*}wck9V&3(fE1!!mYA2_g^(gJ^z<}( zEMKAjng^pszn4Q^PCPg`;H|NM2l|?^&><})CGD^1=WWsWAGbx_3T5THjS*P?CT1cJ z+L&0hMa;}rJ`lf@%VqF3bBHFvaMTAD_X(g!=Nd}2%gT~Q_`Uf<9s5YqxpR9jup~>H z7aRI57{Ku2*3v`v?Kk|JmlH?MI*S7#}h*SC?Z=g9=`o?;(J?aIz))0N# zbETJjMHxVsKv(4Rn3w_m5Vk19Cb+>wVVoq$M3NY2kLL9^o0_*p_=Lkp=xhu-p;&_4 zSWcGv%W3ioS=XMm6X=(LFt4y&1LRX18~4zOdpVyCXp-0*^-0I{iLYkmX^YhsFU=ou zi4d*+tgc|LIko|`Yn+vnQ*~Iy+6NYqc={ON_h`{$V*N@v#KlfmDE&u%y7WvonY>Ta zfdlew&9}0stD~YS@tHycS#UHXgT7FD9o52~D{Ly2Ww90HWB$qQ4PRH)YP7zmmebR- z3e~aloXwd!hP|X@Ud13t=!aE8UBpN#i03BhBr98!lV{EgrFlPf|+FyVSp+f zp*xAkVES+cU3q+FX!COY0j5KTxuEaY-#(o_pEgC5j+e{z_U$zdjGwH#0&~_XW16*q zGjs2j91~Q!4D^LXb!uPhn7rt7dL8DEp&ic+T@-w( zrL6guox7Fgo)wzTo4=-*DYEH;d27gYdY3*aReD?bvilCS?b7*+X8o;QLgK1{1eH5? z$)H;zyHu@ux@COdTPM6mcmA;Nt&^ona$S+MSb&Xx@C;cCn1jqRe(@F0Lt=wMyiRE; zw!=x&a>_3xmi|GDe3!kr+%bsj>&UkK?AVyi$_euc{jg5R1k`01)_PIJE|nq%Cp6l>x}&B`h;KTdE99#WIH$I& zcrE@aPByz5##7;}MlYLpY)q_khC8pNlOT+)Tjoi*JeYu$uw^$R({yC%@o&6P9JNWP?16{N&|oJ~pt0;jMfo-KeD|VQ(Eaamdnx zSJ@OqHk*BjfDSz?*50v-PePPq>9ndok0DE?GV+f+7l23anxmvHl+9l+u|z)}3*V0E z)oTom9NV)e{+53nHEL8lWj@TJ1IZ`t+KnE~b@gL1L%Pr3Uku@%HW!s%_Ofu#ecnc$);-Y@zqu(j=MWr zDH;1kHJ5)V5_>@%X8>*eX-l+tA)Bp9uJmWwP2^MtWMwe<)JD7I#$zw`wvbx&Rlvl9 zmO!R^VuBimWTTJAQowTM@VS$x%q7|LX?JoJxLb|>WTk9Mxr}b2Jw!Y8nboCy~F>j&H!v|@D z{*GL8@fB2KiR6{e(y2VV{2qqVC(go9dQ3L3Eb^RkETf!dlOq6xbyzx2=JUB!<4#yl z(A$v=M=zuMaT(nY<|56fVQ@)0pNeH?ic85pEX&@H3qk+=YF*+IDlQ!ab=5i5zN81a zug-HKEm(rwH&DD5(nvb5ENn>@VVPuzA}%>f?Wgoxx zUH-McNY8zK?Rx&TWHuheuia3uy~P`%iv@DOk#fBUQ1T*`ENZDNECl~nKCHudZ9aLS z(xEI==|G(O__goyuk}To_xZK!>b19IrQ&?qUO7F4xWnF5@yD9>ltT31Dd007{;hoY zhw<8c*sIcEPf^Pu&VBsacj~pmvJX;mzDZGzjU+y)sj?+DH=?k79u~+kpZ+@qeCETy zm5=i@ULwn-B{(c7+ELWj96@YhXY4mV zzpGrREy4kVm&q~+owLZ;F7>UQRJzQb92qdWiWl|sF?*T}MO+HeMG%QzG8wc}5l>A9 zKOgN>LbCjPintUnn*V@|B}5^=gbvY&0{^K;noI_>r=O3bI9}fDiUnBd)_yyS7iBEQ z8Pr?5^pYqPabYxSWh)B1q+&k)Q6Cfy4OgWfzeD!)wM0Z~CxVxuWX1C8$u8F*a50t& z3{y{U#YZqJDl&WOSl5Pa^`m|N-96pal#~=@2nkkh;Acn*KhXZ~xhMv)ReY41e7()$ zDJeOrDcZH3Sa>7*LH7P*k${#RrFA8D)~X{D?~b;P6W ztEnTu))5P@Vn0x0|Eb9TN86gnwKeg7tga^hucrR5ZFShzM9sD){tvdTiT`U`|7Y7) zj3M&wN-?_S>WZ@li@!12WE0gNQG(ItEl4pmn0iz>SqmZ{m=@mw@SJ?PT=|g%O$S$c zV-Ot+)3V;cX)qt7dNr1Jz~t{Mfk%*}0*v)CAXGz;Erz`n=IO1sN#b~*r|2DkV2Idm zkArm2sL7Maxf?;AkW9XS?nPYa_!hJwY^)!vEGM1f;peKWnl#-=P74{X17fOK1m0YeFy?4XbJA zjeN!%Myd^is}0+AT6`2z=%MK?26Emoe*PM9^4aB}m{F?4c z`hY$M027peBMmK(1jqZp>uu|my!pz-(j`g6(2g?}(_LL?7~SI2>}u15gzZv$m`#^0 zrbA1Wgx+dA-jCP8Ha@P61o&YXZm>wc5M>E4nyn&}5Z0_W4S+W1`(iv>ncn}c+5TFv z6?VZ%S^}OxIK4o30W=Z^U7&e?Krxs~r>n60YOtBqb$ahofc0v!iK^1@X?`)vDzS+| zyd=5HXLIav(MRJEOT_++wzr6#QZZ2`+x2`=WB*G#km zjfZc4oImJKm_VetFrJQ9(rG(by@b}LIS=3_T!i8D7bQ&DM{1Bh#6lk4P@Zs^3xXsf ze%4M6qSXU2Ss6N$m8g_R;*#U5f2TJ$om>s~U@OU`)947O0a>sZM$_@M8*N6n!f+T5 zi%DtaZb3b+;H{Kc)H;+|%VD`efmoFmZ!d%18x;j;DO$4Jx4a53-uha|I|)81IXQ5g zmW1CRklv!30BR0{_;usHp1*s4ANprX7rIQN+vR7ZJDRtaKv8Wi{!B(jFHdBoDtK7^ z*=&o!$|qfdQ9->tv8`SSk|Y*Z?NfyvvyGOgv@(4Hxf!; zhr!m*(ug~F(DR{m5nV!0tsPe5H+V4ue%|`cH(P0$?t5qoY&lsSK7K^oz*-RSDg1s! zcMYc>J~0=u(jjZwwWUWKwkwL)GaKGC28Zx=?QhadN~Ad&TaZrAY>H8w-Ybh9fyxlH zo<>p^xVP*JdS}rHY(snCGTeaE)qx($qVoYdE0mB;@XWK`g*O9w!${hN;Tn&)>Y@By z`TVWH5}-Hc>oQjA2W(%>Qh<^Y7tmAd#z8cc+fKcx6`Bx{lFaop;0f6Pjq0O;-Uu~m z4)uY@VsjY3;^B!Fn(TFxkry^YU;wMY6eYkHtVaIjxDv_hLN}S7_z^nLmk)N)KYxa5 z*XRw{|NXG>yWtc$jLP#J^o1614kplZ%6KvbLb1_Sq+ihm5DH7+9I?E3q5R;~pOkj= zC$Tntfni`HmC-g&$;(qOq4|lRE}kb!vCQkuHwJ-7+uwo_KMQ$qEr>?I58JlULr}fO z!LXgxH?JD_YQe1ATZi{`=xwy_5MTY)5ae&Pae2v-mmw%x3W*7d4w9m&54G%PX`sqA zNLI37B@o(PJPsFVaYE|RBxod6i5zy7jv`yhx0^eDHC~g~9h6rvrya$^YTRFBy2{Q@LdHWXIbb5{WUF6z}QZevy5DCn2@?mt|PBm_n3DMp`Y`H3no6JK_Mt5B5>i?=V!0Z_3-@0Gu;C!*-#4;@~a$tMC`w z=)Q$C6^1T?gq={6*nbg?k7~A~gSXI~7ichCy#jSN!_1}(e`MYrDFpE|z3{*eQSC2$ z*=(?xwR)xc|9JyZ5rKR#ofu9WqHXAdxg&%EU0%-TunL-s zFOU$O-h>^f9BDGzP@TQ0HTFy`ROssGw;zR%w#7rA%-icBo3;7dx3HsbNCMI7!#bMx z209R$0V^Hwb>E;o%JMgaRd2=QfgO~WjvHT&3>6$N5b)M~7TG>*F-?Z!*QXA92*-hZ z{opE9=&u`;r`Szz8`2Ecptm9_D5M{@bPj-$#J@iLN#B5;`gi)7&V%Ha&7nCRNDo2+ z%%to3&<1p)&e zy(W!Dr`_2G;_4;q;213h-=P2b8+`&b;dPfH1a^n6KXrLtDB3NzPe~l4SAb@{d7IV$#{!J_(m`6$nG6(GTOu$pJmhgP!ejcqovVNxW9JZI--YFjcNbZbO7{LUXg0` zP=HNIT{Ui)fH3Q#>`L&JCM4soN6SS`Zdnh|O#R&nh5V1EjXMsxKSek~PRGXX=1IM0dDDyTj5BK_>%V+Mm6= zQghbta!^@LZ!^YVaI}D)UYQD&Ab2|q z!FGH(75n>{Fh*=aTcLp;+qa`~fdoklmAwr?P;Km8@ww)g>w`qetdmf)W1@qDLQFxi zaxB}BQO_6r@hlGF^9J;*InWqb1hxpwr-0@RdP0XchH<@2^%BM}omj7a>HgxGX&dOz zeQzCqxMIv_2SaPY{QWbI9WL1{&a|X{y{)lFootxeZ!#u${Y3EubG6&YFAIKgzueo) zTkl=aKZh-TbZPP8M~^1ZK0}6(CZCh_Fkt~KqIHQxmtsu0ZQ^j)u_$X9%~;Z@;goqF z_hq@!h_9M%E5j$}cZ@2cSg!Rkyh$6;P4hNmfZ}B!?P$pz7{G>1SiiovEKgXwwjaF) zk6=0339#{CX?Q3#$lXTwfX9zy%Y;$8VEedb^x~Rk-A9jYmvo0Vbi}nCdEDd5^O!K& zQ$24nGFJ7Zn9~LJgomhDYgtFL8-Q0h@I-x(oUARvlRCs=bKJuc^j**MB$FO0r z5FL{hG&y&DGxP#Fz*`I;&)~d0HZ4Z5YT(YV93B-4CNb9qbF;$yXD2ZGJy$aS?h2KHw4L z!&$R9?&OW7;hTO0h8{n5hmKvlRLv)0_zs~g**a1zXWbIWYB8F5y~Zeuzv??0f~x*3FVm$!`9)Cp&WPi14591X#Z&DDzokg?GT18 zfz0c(NFH9gk>l3V?+HpEWDoTjyO@T9C%rL!5d>ks1U{!hnmPnS_>eu~4iJwlrq}5w z^fJIi<@S_iwD*cv;xGtVa#*2XuYo@lfE@VlJD^7opjD8B> zRrNiEhU!eZOF{(S^UPadUb~UVfnroF%REO>NoH$skWL?hksVf6aCEF$uclB03s{wW zNjV)0=EP3`l1f8AFLVkzd&bx9)#5gECFSIsMd-){pMLhqQo0N(2L`Y3`MguVu|PA) zn&)NwVp`R319+gjw3SDJ>lnWv)o+U#nRn0bK}A9*R>WG_U<131YN}g zaSaA!{TAYH)7u+avWcj{jN{|IECixJN#g0#bolAhN@JLi!gBtUSI(F|2aEQ{lPoP_*L=|)ob9X@8z*Y@D|u;GxC-lsrLqE-L? z8XzIN?=M=wtKo;YG3b5h>*4e4U%d~9gZAO*@3DBA_=`5aP3pTS#88v6-895EBh#Go z4im%C!jxICAh+UskgzsUN?gcwh~X&A0UMJE@KT4pj8KHLFq3{tTUj!FU){ZPGB&d! zM$ywzmvUlhJ6LB_^Pr}+eV)J5M@%5*MSEc${;K{u|_jggq>>vFcXjb5a=%#ARI0}TKnh{ zK->lT5K`~7?0gF***&?ilIR6`9Yf><7)`&rcoACD@$@Xcg-(x+xZS&_3Qg4T#&NuX z|AbkyVSk5RS)y6df5QJAGij2FUmvRB5B(Rs{~Ido9?mxPA8CnoSXf6rr2LzDKy~_C zNeto2^$)mJC3D~%j(CIq39m!l{th{vUZ8#dL_xk5GCJbX7Ch$mGw`iG*b>P{gSuax9k!F7@3fB9i{0qFSKls3@ zKln%FV(omL1E0So!O=&2{C5@NpyLA16BfW^4bfXo|15%5zfa%3efsYt@NY@DKvRGJ z9frMr{=IV2D-M5k(CN;O}R%<#h$N&f*3L&CFCjInwCE z!^^-$Y78x1A-r>PGNn0aOd)19)g7ald@CM^W&e+_g0h?FcP4&As zZ{DH#yz^swug%s*k^XbZ#FCn4eikdzfnfvd`!&~dtG0lX@b$O zwqSPgF77G0xQO0vy2KI%^wRjJNUVp8xLzkB(*-1Rjh8n!;sWUA2^n^4?b z8(bu}08~J$zoITK2Fb%c(VNkylEwR#B*paz@$2k}pY37NCc!7Xwz-^3S%aUKONp|sLK&S)U}@KY z;KT|AqBhT> zjy%cNSvkUQ__FE#Ym(B&bKN-AkJ{!Ek$$!!sk+_}d*Rms zpGlIh#QyeDbk=CmCorgM0OCeWEnDs@y{}~p7(pim1@k=-noNW5m( z77wgffBf2pNkvMPnbNU6B)3aVEW~cZ56eYD#fSv9*}T2KP7(xtU-pKjF+kEs#{}9Q z(W(!h!m%H8m%H~IJ#?_DUxH2&)3kEY>_xrcz#rh)(}%RG?(*WnLr3@I>kEKVR#yz+ zg|N3UjM{eBY=afYqQ_EN$wuV^yGGZRS4so=pKMz_uBEOHi7n#c78vpIlzMgDi}^e7 z6(d(QID9p6b?+9(S_vwgPL)2E3gA3d;gqjm07n!`=QVfn)+chGqO2geN?x|;5L8&! zI;*qQ_qDY@)VHC$JaxtSYdTU1(QcRQlDL2`N^LTiZ`Cd!@U3O3^@+TQUD@PVpSnbu za!G9xYQ4KcwVmsGAjX}EEuZMA_cnS;R`#N2WUMjRDjIDu zHX~b5(Pji>H=G?pPLXbpat>1ZB3GFVX+Kr5*{b|>HPGKbP@&nxdj5R1^XKI&2e&+E z--+Hid4oJrM(D{nVMD#gOA5PwL z`{OAtM4BA_=bW28+9YiO-=ESncc1U~`#Ilr&iP*CyM2cmr6KEYgj6`Ux{oZ3?*o9C zYX^Eh19T#x`a7CI@!2jo9S$`b!5v`A@Auz-3C=wY=-0mZg7*Qu6Rv@);Vw*fKXzk3 z@~oLV!3r?%Ud~6xv=1kI45i4bRF%037xov^Ps8`vrN$_{c8b2-v6%2LxT(qbRg-Z+ zlj(Z)0$EoSY*WEYfh!lj!77b&=wZgEU<=4NeVX?HxhxdlgL^iv)v}SiD*|WplM)fU zMI1KGD_Tvj^S3LEJu6&fUdn2yi-~&du_*Sd zNrOr|3QCjWwcy((vX1p`Fq>P#+A)Q#ltw)TkH8n7isITb6@46Y-~&zr<9h5$)O^@N zk4ALwZ)!60;L5M)doW&uzY9*K#}Ikpm1&}I0qzR;rD{UHQb9`Nf%N*VB}3p@u=TAk z;eSikwV<0k^Gj1e)r22-{#=2)rd|Iq@spp4?!~<&+)`CWfeXI80k$&CUc*Do9d{f4 z0p~WIHZ4FcHT)lW`3q^7Nv7Fk4L7N(h9$yXeh2+g$DR1HD_fd)bI94aFP%hMW)8tW z#v7%;b&DD9EqP=LAx1mzGdOV&oD7gG|3zMU@)3OR^p)7tym`1X%#|&s*Pf(ujWFFB zwO~Gy@yAHUp{BaKI3AL7ucE*eQt+E7#8NrJv|PYo86yz`T=HLt3?P#P@{b;S=_OJ! z=B1a84w?movu44Ivt}g9@3}`#f3A$b=breEGrWuMeE{!=51f7f{r7OOhxgyRvN=1O z{U|%TqnRBMt2%7F_mGO!c03iEc$l7YIMMhUC-e1JKV|pwE>R+4DUmyj4U|xz6Oz{{ z>Vwq-+SqB>fA-I!1s(f(46Pc=I?N{S4yw zujJj2!Cd7Op&&65zq*E(B*u^o$38#04=KCBzBU>tI@STj7y#b~+tvX28n6u>G){#F zdGic+!*5zAgGo%O;W*sWxDv!O)0zz0i|@aGk$KZpv@8WAn%-;kJZWnHUX7*!Dg|DY zr`QdCJO#txlVB@22R?2xz7Efr8r&gczsE(v7`&Fx?@4m40Ar6_XSxG-6I_%1Bq%=x zk9KIuANV4=Up~m=KAYfea3y(-%o;27noRGDF|GE)vYv(d72n*y{mpG84^aY;%rv}a z*augGcCZ+%oeXP`;i!Nc;L0X&*wkd>+jO>Zt>IDh`8JK`Q_xopi0*@=--mGbB(Fy# z{Z+%XV2UpyAzcJJzyX+j3Y zs`1;R#3E~DtpZ?M1CIq-tS#}Iig_aZ77QudcUMvM`X=~v$ZcxUANaFLDul zqu|r;==x5WT#yf^^!W z3VfCgn~+vmn3g9EHPo#Ge?~?GCGI9LFQIY&`+v*+r>4ke+i{yso@}eONs+o_k z9OR9FP0Wnx3#<0*ZEa;taV_&L;$IXV#Zr+ax2D%Ynd@3|W<@13HHi6k@WbPc2*2ro zKk~tv0ka2HjjrfFtgfOSMx-UKSf040DKQZgBkv^)n4a+G1#6KRICf9yyDP-_*%I@svXI~;fG-M@i4}OovVdJ>+z6^Co;xx7#7y`bd>!;Ld<|Hm@-^`4 z3>q+J9;+&)SvXlTeo=ZKkP8BU81#o9{{iMLho8V-H-q<&eJe7@hRm0UCjlhKfccFG zM;^V(9QqI~W(q_!v}jsJUYj%w{QTsO{5-H0b>(MJ=rQ^z@5zAl+-)6)*{X@mY2kY63q|Yd+4EzQwY_rw)Q4^&?nM z2chfy$oL?Is~-?wN1!y7SXbbJ>-bh+f17Gha?x*}Wz9-dfg!`{CbhRq*|3gx4vh%S ztoW@dGwW{lV8^Bp8yf}3xSE=n57{O@IQl(Dzz}-vCSwKt?k?kO_)JrqsWiqV;{jYr zkM}et6x{>U^#f@i_QSBOanLB{>a3H(I-sg3d625@_rrC=z>u05V8{IxnV};Nv6)xK zHa339uI{M1cR~}*pS6?t$Hh~*1ztI8@so3BSWLERTU;&ZFG zOhRjFqsMU)rN89T~`A%6dMe4gbVoF6YCGiKg(1g5%i_){#!QA>i8het0km5ak=;#xIJHRyj+j(YA~HTYPQ zJa=xgwLYu4I$Xy`fq~4Cz(B)HW^Qcy8ko2yovAb25tDuk_+$-!y}FHVu;^tK*2^}v z-H5H?tQDy!B(j!7LuvuM44<_%SM&z6UN-z|9euNnUfyqflJB?QVywU;oLa`ls?|7$ zS8=5sdF-dHYT0Gm?Ddoa*yt!6df4kJyDDVZd>9MOstFm5bx>fdo@}a;?f>&Kv%^LW z8M1j5h6-C%#Pvbu3-W#s38xiIP>DBJ070#bTlWLv&5^%Fhvtx4C-7MgkWEicox%wI zh6|k-m!o@`YBeJtbb!eY*u2V2XP5S2>|bK${5~rQS8fE%P{&j!spsW9TvVn~#g0tP zSgYBZH|YK0_YY~FSFA67EjI8BnUMHr7P-6 zgtD>)vov~jXo|l7oDl}7&z&%`c1W5q?auX&9FoT`&q^FKy1Ygi+IP>^eaBTQ^6qzv zSgtvJ_Iz2GJI1TNU!JaQ#-)u4Z(mX{0< zHW^3WR@=1qJ$g|S7{U4LU-Qb@Msr^!RaCHEMUgK0BQyJdoc0DQ(_Zc&BSEV24;vQrz*=Nu*9sTvUz?fU%L-1!X z0!#oCnqUJwYZ9(u1SzA7u0Y0@{|mX6`0GHdVHD_BrHBUTKe|aEP%uAVZ2QG98GXP% z!H93Z2DRUO-Guyv(?9OThGZ#3fHWOBb?a~mbt zvC$&Z8;pxL(Hji6F+UrZ(6@D5qHi;9HMOh>$)kzEr7f;rHNOi~$j9Sh+&k599tCZy z?CaR#+z59Z$AdyLeq=g-BiT;2Y%9rjAItR{$@M9g>kG(nu5Q|$h>%NoTf`&pF5CsD zg6-sZy5;<4vYlbMKeyf2yp3zSpzTb{`5LmFWqJNN^89Se^|zDb8tyo}Y&xD}xqbvW zt|i-T$euh%j_XMKOz&Pn+j?^RS#om z1+nD*L#_8G+r#YME5*m}mBPolny6@dxI_C!n6Jn6uh8~L=UV(|TaRm^@b;kXQDpl` zbpO%h_-Hf#5kDHy_878_^@x^ik0skkD(o_{J&rpcJ)b+jfo!9@FrSd^@x;cjNB7^# zyNI+<5SJsR$V)*fAx?`T!-8YJY(2m^L!>M&fdF_32Efbozs{U#(yYkIS)qYPPM_vo zgbR$pZ~?fT{?(w|0?vXDwq%BeUO5*U%Kotxror^B_}ypdfd@(MAcV7vq)Ia~);z6> z)}5XVsyaReRq$>w&6F#+vIVCGE1D`eoz{x3-;LTT#C=t-0G#uq#-=a?Fd$KbtHOo= z0oEaU9i_*mH4_9KfC7CQ6KZCaPiDprXnhxc3z$Q{g80l~y#oLKrCm7pGWL=5D?O#}F}(O5};6i`k7)C86O zzr%rl7OrnH`@RPdKam%W+OEQ@4@E*X#vXEbIL}v{Et9B|C)j;Df|icg+CztegYoGSnG!x^r1NyXR%F)lRIJXhv3(a580i@Z{ct{$|!S4 z9tx<9h>nefjv$1MK1h@2;rprZ8fr?&xus$)dC@F+ue?A)pdrVv1`%VIm1m+h(nL1T z7>`U;q@~Gg)@-G&f|uadHQOG9f50&K$3t6B2n0ZzH8%_W&zzr`IUn%T zMV*;CBsB_jfP{e1?T&_?#~`E+j$%yHUIY-UU*m zYE*EX$+m4FwoOcQ+rN>_#uD2TPPTX9@qKb!Lbgr)6>Uqo_p##I^W=OP+1`VWH<9fK zvb_au?;__%lI{KIe9ksTk!_Ql(RMW1z6EW!k!`Ln<|%4mfPz@yRKF7G<@!>q1XQv_kmqXq;LLTPS1gG8HUYj=gJ>%-3uc9`Fg@%fvWh(p) z?TnUP@iR9Rln8~<5fu@UVsb!52%<$oQH-p@baup`h$ykpaLJ+Ze4DnXqP{r*c@u*@ zX}wM3eIp6JjdtSpTH7dt?|Dxq@W-cD$xLTgM4}r2KMzPp_%hQjA+(P|p29?GiWxap zTDUg`Q!eq8XgybAJsCK%!wGtPHD&_WL(t$l9dzVf3pJlwOfBy{?(w?r&pppn_(!K2qK7&C zl}Gx<-@^NF{Z*JOXHmxz-}L9 zb5nAC96)>R)ayRyF0OLX>))y}5sMft!(Cb=ilRqWNzrliHJY4Bl!Egv<7yYzUWu{D zr_TH&^Yvn(@h8{q;M4@(lZbT>2M3F|h}yxhu{p28&1r@&JF!oA9$+k4<>-igCpgom zFnZ|WAqtY$l_ii60%L++fkKAt>@ddy$r?1RX9F% z!#iJXt}90KzV+S?yCf7o;Hz<_>}^z<8yn>n2fVS{9<#*>B5(|7LxMF!3eOC z9riEkshP;X*h$?@-A6s()^glHeupb@vL9b>U&N(+pSwZ)6P{gvC6yl0UYFJcxD=`_ z|JnJDXcR>mpKwMaoNbBhO09j!+;Lp?A;WLZHj?iY`{!DHgiiZC>ji;bI=W~4ag}mX3FS!a&8Rc_M!(-<8xy*e`A^t&+`cd6xsSo~Dx7h5f z%jG$4ZDZIzR53N&F7?<{xp1Z*6EuKWP28_;V-d)_*qe{vCoZLbFY9{Qt>;|imx2C5PJWZkFU6Mfhnrm!D$s?NH@sVyGm z`y6vNqpjl#J%Ambed6x$lwa?|fL=EkZTxRH@{Nvpo6*#4lcwKtZ6x58U)|$k@nul5 zr$yy+zSG%9!?NSDHV^lN^ifcIv5FR4a8S^*Hqk^(yrS^;S=yM{y&?2;G4bukv~a4c)=l zjSxoI`^fhBpI*=XfLEMy9#|QelRK_-fi*Sac$U!cyNj71y^*PLoO8p?A<$9PD6&{& zpX+u*cQ5d@i6qi+f_>tijYqDjSbYdpu92vH4Pbg&{LVfxH+P1U z{fpOTo@Z}8qc`V|_B>8{c}8l_D-K7W*nYg@DD~cT9rO6>fU1j7>4ry|ClORnqc6CN z@s_u!FK?_dm)?To^&g+<1$^ERBRM^;Fs-o(w{Ay4>CJN~^w$6>JXbMG(y87PBd6Ew zrwh&f#e z`bLREUH4quoV}~q^u@nQbm|2xZitxGW2oF9ajZ-DIL9aUvF*Em?daAurv6$nuPdDW zwc=nmiYvIw*!a8u$>{i6f%2Ni%+~;^*CCE}iQW(oV(UNu|A?;Lxaj|bF}F*6|1ZYj zUB!r8Y@R^nQ$wk#)Jp0Ohv?i9i_W;W1)OW-16RoB?qLIc?hdZOZwcFtYdu^yjL;~v z!74@+Vo)YI(*ixqVaI*Ooi46+26G+?|ZUje!qeQVG`+ zG(IO7t}l>+T;?5`h&|X(9iz_nc;?{-hL;a1i5m`bz9uTJvp#czfVvUj=s;X_EgT#CwuFxz4&gw2QpT z8S3BEB@lRnWma51*0aWNH*@h=r(R*xDIDV=4|6SN%oASiaxIm1U?kp(^Dg5m7uQ;I zEjFE`(z%aVcA*w@r;F@xakWGKrBZfX@-L3PhD`l+>@}56oyOftd513Ju3P|D6BUN@ zUJ}eU)kGz=-bD)VZ*whFMsWM>?9@w-ay3zH&JE<=z@|sP`0aS7>b7=+LRD-f<5_rYOIBTUd zl<5K&zCG`iHK|UC7udui-aBbc7b)iUE8fSQC;({ORMF^K)IyJ z=US$&ByuIv#S=WR&jLI8UE3(HIN*)l_M9!g8gq|X<%@-Pwo%rasIIwp4eY*4p7wH$ zQde9yJk+ZWg1-yiTWg|TQ|^1Po;JNjHFl;xdMHS~A_)7=vxR_YV)#ZjKeDm=n&$3S9Liu-#n@Yg-ew>wZsrL7+#@ zn5R|4y2vSjO3(OU>mNAOMD03)cVqOu;fc@53QzguD%kJBYx10TelBw#WF1e>=0Cd4 z(%!C7+Cw=N&sp!nKd{c}z9#t>Z)DQTxf)NU)SEdSFGOeOAGoTIdj0&k>nPNoEJJ$D zb4s2|Kd_VB6RD4SBjumGGVeD;uF6w{T=$%oH~NC_pfAkzQC&($?An_8$W6ED>2dzp|?{%#9Y1?^Cr=h;7inj5GUDihJ;rWi&QlvLX<(3{ALg)q2yYPn{YolI^Sf-br(cAM# zdln_VIfT(0(6RA{&A!PD(=4J5)Ls-%z0o^f3Ugg-cn|wSUtM#LzyV&BR&=>F`KHr2 zY}uRqE`p^V_b-CG7+WE=P;aF1m0la^yCKG6dRX;c_aU2J(T~QzCyO8Z!sBK16%IW=TIXUr}Zaju2xK^Ev%CTPaLwX^y>?Qxg`$cd)YsFp4JFwH(^ToeP^y#{5-^ekkD;03V#;Go$C)$kgjH^hTj`p^GQ zqG{JI`Tt^!?F!-lgK@VTeeLfMi`&&cwTs3bvFMC@Tfn(SK5&J6?jAPKcT@a{fZriZ zzm8RXtl>ND%0G0qx)}k+xzLO89S_UI&@)|JZ9li(b^TKhtm2I!T+d3YTtAU_kqWrp zI0$qx)@)b*)c5h`8v`FcClRhAW_%dRzTP+ra+!OutAE{57uzD88a@x{G z!0H5P8$`PY^fj6{aD8eSUeoCXw2QF}7v(BJj*Ehmo}+!1i>pmFPCLz?SZbW!P#Ki# z+z%XbD*s>A`SdW&lH;O8tMPG<%Dd9Hy13SwX1Tuoh14w-Ohf%8kdjf+xc09^6s}QZ zYehLql_DE$C>0541J~pQ?Ms)kFE3r%(T{!k;>C`B7eN|3i2wW2%WX@S3YINhdhv4G z#fySv7yo!)04`tUYO|1gM^K3<7SvD$=>Ad)Ll4;wWw=bK(<+e}!ETWI2Qvyr1C(lo zK*@g84;1)EpO{q^S8!KBT-mG>(f**onBdSVx_TW5dT%$7uPuj%%hxgy%i!uHRqa>z zoS8ZE%spS#s**q}Tkq6rco2@HLk&ki{@7gi&Zg~^zO)>5ZLLmEX>*d434DRJ7-+K5 z4FKOmI=~*V-*_OQ1dN_OGG}?k;J@Wh%6nVF%@XJFSf*bN-Mp);ihBHi;fyHu&QQONnw6bm~4S4Z1I!Bz5}*VM4~e}<&w%^Zg9@ne zSgM(Z|I%NXYAD#WwFt$~%|5i3B2pwm%u%aI=&X~Qd>E-&hNghpM%d^oPvv>%5v{g) ze1lG_g%?I-^xX&I>V{?X9X>W!JFeTQ&nbGSXjP(=(2w3-?G}g+}BEyRI0>&|YpFr9fzdH(=qVcvkP`$vu5_UNe5GYQnsjGl@*#7J#Uj>jC?!M7ccdfl;aP6Eq9L~Y~=?z?OXvoQ-oN-i4Rr#d*C=N9Pf7^7M$9nx#ef_~F>e0U^4%R>Q`TJ)- z|NQLxpBoO+@Ag@!HoWB2$BTT?^BNJ7waF}dD&J>s?pL}cD|y5~k9)fD)13ncG>(|% z)aEK*P#Xd`aUkzOCdoh>T({ThJrzu0)=hbbPQCG5-qg&#&AOEgp`SP^f} zJ@@X}dvE>d)e{3oPHG%EvT+jF;Tg$k;G>T}`RJoh9)2UaITx$}bNB3lTlchhMzXU# z@x@D*X+%Kdk4%clQ!oAE&7gT7oB`S&g-dVt7;JDam;{%@GO!)artEwK38kRYQR{Jy zXsc!S2NuQWNq})isxKa~u~@tco`lC&iAy%r7wV04=kWzNytsJK&h&ykdtnQ>qv793smUeo1qVBwjpI*%(nrPqtN!i>WL zZz*>ODm)|4Hm2|xh;CyFuI;tnw!G_r!ZS>E8c%piohR`GM`sZ=-fMJv8%%g6MGs>M zkJ0K&EWz<4$6Jn=0|}1^wZ;)1OVcTi;M$o_ji#n~+tzLb5uVA>yBNY_ads<);P^F| zYVaECUIq}J^>NSQ2Txh!L;S$;qktOZy`Jkjc<_h^?qUaz^|!~dgSoGGtIzEM2hZec zi5oob*)HM+uDyf2MymUu!83ulj2S$}pzE079HMEdDQ3t*wx+W4n87=W-31J{xguBW zS-b!R=U(0K@8!$+y(P}lAC*qL|B+s^&> zPUz^;Wp{yxv@R)faMIm2+tx4d3=p=ixFdf{x@=9?j<;J}bn0t&(qi}SwG%%xh=uI} zA>KOFZaMCu58WAJJan5K<)rG8O0$#fuJKmCxHHb1TwxnuhI@W0vMr;#Y(qDkU$;E> z&fo2f^**?`PIxQE)tS4(o0m?l+y3L3AKMAZ9=oni@=ik*w`<+dwX^DuHh2DMXL_s) zm(;1xq;{>_?3_@yac2B5@pf@*^AA5Xw~B91%(-J=5a7MqQ6u=-W1p3y zYeYAxa_i7~L!%of*Lzw$@qIbEo4QH2$BwaAvhLhj_MRW!_|RsYS9Xsx4i2_gYxH)9mTm+fUSYtypu`6#bT3xn_(^6#b*mqF8OV60 zUpxzLyl0&+F%QSDN@`?xb#T`KkvBYY7bN*$cRY`s%zd$Yw#Y89@(LH0V9N*1;wlE? z=o#6~p5Q(}^GcvDgEk*9-bF0O(L9(M)m=O4J^=JiUus;2gFX=cvdcKpS>D}@glq#w zuk5025a|Pe?P5#TCbkq)@g$$YD0qwt{Z}wz9uTW|VxV##XEwp3fPWJZ0Nxb9gD*~g z0z3=b8*$t@89opG4hK85o^63|AA@flI|ekz!0&KQGW-u5@x>QlKS)SsM!Jka0d?SN zv)~DS3l&IFVj-oFQzG(tfDQo*!6G`y_#4~^HyMASe?VKI#-GX7Z*&kv(Uxm*>`d{v zOIeW+*xZLr14ZB^*dLw%jU920Hw^_ZfkJe`@t=)XAPX)zKEmc1fm9f3uFahR_eJo8 z@fWxWZp0UWMPMNvVpxst`7-PWPtredHzE&3H}1H@{5;Cx-V&GhMznNxd$`yA0|-I( z&yd-3xKnPoftSgB2W^DbF#OgZDp(q=n6rIJ2&0@KdE>?oU1hxXEc z+RKOXqwYq}cv(dkCt=a0x@QOM~cpM{B>&0|h5!@+@{k+c7og7!2H(zP!su_x8p_HV7K+k?MH%2JvLO?t1&h+* z9I0F?m0uvA56r5~i1w$2>w*gAEvVP^*Jt*toIH8R@Yeoetum0ZKLyBI!}_-lA2NAz zWxq^)e_j28c?Ci1gtUKjM($lTsi(JWd}92))wkX?2JB^x7XZzI4k-+lKX&CYISiJ9 z4weSS3oO_>=B`_-?;Zcd#x18)ncS_@rfr?pS`-mh93fgnHa_Jxj0rlmTBjaQKF=rS zjUQDE^7$R{H8U4(uc^9AuSr(kI(pcQnfn^bN|J_;hz??`aB>YPsq`u+bI(=`05OFpJJfLfQh4J(s(?k zj^ZO3Ud72^V8qeb(1!?80Y4O&m!e|8C17}xAHbKZxwHbaEW5Y}wXY~HEImXdlWJR9 z=t@mdaW?wx7_NCWuOx-p(PDhBtVG1i%Xwzwi~(!P@_3?>vWPHVTyS^*s8h>xRehzp zpsb7>Iw>wSHB2N|3dQ1*F-7nXcntngG^Ru>7AobUu+-GJBswP}D@Z5ptICzD>p(zw za2zj;;d9Rh|2>dWlK1MBH-ja4!T?1QKt3DFAFFU>!Y=)1&RP+o+LOpq0wI|FVn3*xn5T$m-R4dSJUsdw6>uC(fuT%_}Iv>v+se8+#dQ+`o~8ib{Gf0_ulr!iRGfm>H>X& zUvPOrb)={~adB{{c)E7fV0Cz4kX)1%kW!;ZbSFnC#UTlz$jI7TZ<;;(rdw+xBSi@z zVr5h^qE}y&5|Aa52L*eQ70)M;cotOHB%GUPZG-5h})JF9A1z*orCNet=(NoutDNW*|} z`6EW;j~mc1Yim{cfXc0)y?FUQmKTp*2MwviS?z0btYQ(zLYF$xSgaVE@vhqNN#tUlS9kOiUk? znKmgYGchDokfRdC_MeoNIVe3*85qMd(ukOlAg18a)`b~Uix)>e@M!)?iR5JdqYp&S z?{`zi!q(KXv;n2dikE-8WbN7|-!3m+mRFNjRC|1+0q(tej@FS$;P8RbK$+|z$l>sT(E%)H5~S%6%oGVpVRC|)V%h{70XBA2xvF53d{% z7aLzcwsp|F_?WqaTF2JM$Ht9V`3`6X`bjf{k+IEN{eoi>){PN_=I1^>dj~wfWA@{@ z`JsX_>k?vu{kAs8Mha(4`Y=KsEJ;ok$OgqHv3`YG-a?_a(2q@uA0!i`CQE|ltRHSp z-SjMR2>K7}B=W>~{7VOs{g5Y#Pn4ryFq1pOxPQdH(KRDJoDV;Lb9ei?ooSg9vNp_^ zGeD~yFlWYwtO=QEJJ+@E=2QDtuD^%BuPseCuB3X#in%RM=xb{9PqfTkF{8Ryt1FV*VzNy#{44wXk0Q)OgT zf;qxO!ck$Ia9?>gZX09kC@O@M9EEp!k&+Q9MN*YcujFZ!Qo40mL4I9be!(!htZw1( z;pmHDwxb{1=IC95aP||p(`bM@=x0aQ>|4LDh7PKTX)?-hieau63`4ghcOrj3vG;8mQtqy6YHy!vN5723s9GwYDxvz58BXp9CA?7PB%z+5 zu=y@~Hab2WX`Lipd}N*+ zeveuJ`0oH|TwY|nE=d(1DUOSYHH$A?9EHwWpB@tW`tI}R?|DraoW35N7afjspw9iW z(4!t{7m5;bsT4>YiF%!je%SF%mjUYSW}dTUhEa-!&0xpo2Imggc@PU<;P|#;5xRbJ z17%O2x!)C2ZhMvo1nQAxpr!6{;W2@yPa^_1xfQTy6bhW^D?lC^UKJ^mT6zMnd(`sx z_lp4_D!N7&-SJcp5zeNq$xTR&iq@qmweoKAz$#-t6^y)86^Y3yppqdcP^Fge)Or*I zc?4Z{B~TB3?X|)1-2Lzz{$l*yC*ZQ`w_7%DXnA|&$hTWIY-}<9?k#Qw)D}e3DZvyf zl!~WP5Na!_QDlua3JayI9(zOBr%5u?)fZr2SHS04d#lP6XQHnlCs85CuCY{PIv@Et zI7319%5)034EsUI&7xx$#3XM4+c&FY7pSri8x4oE;ZJ6gKM(mDegyyZO~`p>hpA^9 zkC{6=45s72&0q~3WBiYqSzkilCr8bUdg(V%1*-c${rP84KmFO~;N3xKNwa>cy z>_dk%V3?IB=R@-HLe8hybpFM4!|8@~$BwOQZ7{%xElHVih6Y+!HEjO;VO6?+{@&6O zLlNE)JP0z8tqCD-08K}}2JRC)feN_hkBp}#oRvFsmRMpGC96bM=85R{K;OaeUAn}H z4GfF+4>rDr*odLvij8K5fd8xoDQm%tPng;DByZZ;IUm5I_Jo5AEg#G=79)0TcF8S_ zAUZZB<%02@Z{fQZ-t_&J&ZKyjz7a}AQ)(2y<(V+#hEfOr!_1&`KspmaM^|JyyIB7+ zGY4ET_b(!T_w+dV8f_denz(-DM3;ulR&=0?@lx-(pf1e^edkEpuU_gmZcc=)Ue_Z( zaaiY8D;tHld?lhp6OQzmR)e~FEYLa2lt%`_NqB<-D0Zr&I|z4Ra@H@tsb6Y3Qc648 zKrGk+V%k>d-*qcro^VJ*d{SbxFjxTq?ZT#E`ub$f;vtWQJ`KMHF>icuf72B9W1w*@ zZC(Gw5~!rJqVB6;c|x(ekf3)STzZS$%tB+2066~ykBFg3MU9BC#cbWxAx6}PrOH>A`3zG zetK^)2uLdFBaaCH!AfIgkun$r#K`-UBn5!tz4ZQUP#6irx+MRCGZ&ACs7m@3|MOUR zjU=)h$mLlfv4aN1hGfa*pgdAiQ-189#r;ZDAuy$Lz8DYKF_z4av+_xaP*7-zoO0Ak z36VMeC<02pz=i`V2aCxlOd)_ZTpH2x$c0DH|CW)?x@&=xJ#1umNFz8mKEfI!ow$EU z)8@@h_;<+t4tO4CZ|azWsL1o@BklV+W6GT1*{oVTWl`Qn6=C!ran>Zt2 zjt0(o*KUEyN4D^nw7(0^!cENaD|DO&-V43IrovVk}hpftSV}p5IJFPQGvA#teK1g~WZpr9KeS)84uu+qBIbA?+&>tM?)VIS42IwP0vqPw8to9BZip5RK-4^Z zan8>zEkDnJPuT-$TbDqx#gW+x5gduVwL7Q>=zOs=2>*=CYvbaw->THWOQFy^^O$LQ zhIPJ(;NS|dYXx}GyRPfV?|6bP+-^7h#2@GZlVGkkih~)oxdN%R{NLC8eo z*e*K_`!)Opow_@xPhiBrlLKRd612JUWx`0)_nhP)ygNd;ES_n=w}flD$PIpjPx=Lp znh~2Y8B9r5Oq`gPoG^KEa>B$Jap-SCa^6G-zfWq4=iOyv7!=m>Bmx-;aNXj~IT`cz z(5?LdQ&X|c<-pPr7Or(=?T+i*M2V*CUeP_47$b_-TA#O8T2dOyXY?R zq`9U%qBkQKDr7K}gl2^j6Yb-O1+wSAAnL)$w-No`4pK~MYctVJ+0hkX@;)^rL*Ud0 zy(h`q;S7horO9a5xxVw9BKv$VUN?&~zV1g@xa1&@OBDhKT09v~$>#Ee;B_;x#&>Kf z>2eI^87@Qkwn>c$Y-kbK`L1C^I$APb=96P3HqG@AVDp%Slf$xZyH^)b$U(D*HHkP3 zJdJ}8R_dFNWmM&AP-v7}k*3~^BPEKm@iRjyF|i#uk2e6<`%M4c^9DF@1USvEq&n0I_M$}X8@YdnXCQNnW z0t_L^P^j{O8N6vNAI$mOo^o*E?3@pbKYL5R6)!?6hRny(lksI!eK+$w}lQ^bq| z?C4l0df)?H>I^!$^W1T(0|-HlJ*D95&UFg&v%4g+A;=DTPI*Qpl|v2bL|fXLYbTE4 z=@!;OrxJi?S(wiCK#x|K?fSD$EM=Y@m_Jx<9)gk&&L7z3fo5gG%;w#2(w=|Jt(ztf z3n|enP2*1`!F7{2;S=rnAtd$#$F(ldzZ|_go6iMNpq)fWhQ7`M`?xF`pcp=;L(sM0x#;N^@?qTOK&sLd zy&vmb);%?j4HP+)oZ{gGp&a#YpT@D-Uk#y%wGRQc;W7H9hygRDW+1Wx{U!Z{M@2fXpPihai0xs$H)f;f4Kg4d{cqED+$5Kt2So7Z`vbAUuD)8biX5}jU!KBY1hUx2@(PpOREwE#sxy1%e$ z2>#+9Q! z;#_Q_#o%b0jS}yGZuQ|rras<}8boZe(|gz$F9T_N9`H_%RK-V1gM$;p0(e2{_<}GW z0&ADNpieE#4h>|362c`Rp^4!_aNOH?+kq+Fn%`khwJ-BKTnpU02_8=RjAxk-$D@Lf zMk}Hwqo{_{RCY0G56^Yu?=ur)Ym1JnqvN)mVJ(E~dacV^2}8Vto~<=-7pIw@~RWDcXfyhu>8rbRh;)Sr?AsVojigiHuP z?h5xRP%%yu;~pLgLO?7)o{Lv2xh3MRj%XPs~DkHQ}e>6ydJ%fr|Qw4bzJXo&*B=d%%CPplJGri291Q zq+4Q_)9QQ`KV(Lq+zIOF^)0Yt+4^Ypgxo$eLinnDHN8CcmLyQK1o+R2&fJzODiqOv zK|z{OQTCS4jqA>D(S(I+BK&ByKX+SZG?P4h5o*M6{JFU9N5uP!NCt)vi9F!aH;cz* z0U1yapBeDQ)4&g2e(HR{%;E4H{61@3@tfZ!#<%2M1Yt4B%GtlpOH-A`6qa<<#K~(r zN(y62RcZ5novlocfj?f%Yl%<%_LC%)VobqJ^$FtgrJ?I`b(tXnhqj(SzvWP1NM_5r z(52<#g!-Eb#!!@t`P>D>PLCrMqivi)nT`I@+jyrkJH6!Ek)*rm-OMj{G&HZ>IA!9N zg28Iy@r=%lWCLx6>URa8AS0a?GPs4vW=7E;T|jBv9p6Jc*%BE#M|uGVAv6=~3q zT93SJxj>>vNAb4(8EWjI6TjYuVTmS&ibZ&Rw^l9FXa#DK1lTh-}6)01faY*ak&)EIp6mguum*omIyz&C4rq{i6?{R z31*SCofh z0&IBC*-1S9pJ>YH+I#m}g+zmX%@z~C@f0Ye3b{%r766et4A7hl%*Yf@>&n3_aNu9y zK*v>E+m^?~8UDkJFf2X^0H8tmo6>)Goc)iK_fhmQ&bvJpbDm9eT1|fhPyhMGY@6CZ z1e~<}+#5i&2c86ld*Dyt?|^>!{P~yR)%#G7%SXO{k^o1xu~Z$kg}RS=oH|6kNWFrj zWLi$CC-W9atjEd|$y!QWcF}G7h;D6!0@Irx-*?Ipm z<9GoW%!AMQg@7C>JQXIL`Vd|o`M|U&A$&^;GD7^|5gr)CceSi?4X=}Ble`)1Oh3tV zX_Gj5;c;%^= zB!@O+;I)+oRhc}pe9$f1x2&ojE|Zmk*Apj8`b(?&%_y0bpY@+5Yu7IRGFRJNGOf5q z(qB@S<6?Q`OM?e=wv4iTu%KK}KPs^_0S{_#!V4*xQk}dsVMwE(d|2w(0RzUQZ8~{! zll2>91c8EpZ9I1E6!pM>Nt66Zy#s%$5#i`E!chrTL5-*OQ-`UO)Z5fq>SLUUgvRKIO8I5? zLU?N7UB9Ko@FW2Nbi~m0X(CNpW{jWEjIDi#!1sqAoQkk@24PF+7n7NmBh1)PXE=p1 zI(e!Iqx?7>{1IccFoE86|5C$BmA*JjENJQGgXAlqg{${gpJcEIWKX2Ha`OR}OG#iOC3X zIS6nA!;4FEn3c(Ct`_H}sM8|T)@uq?qiP&6SKgRhs9B#D`IJkj_S31-azwFAm7tvO z0R(d*V?{Y>DqW!_W%^_@5Xa9=p94;M3_^QdmO@RW?xhY;&rv6+ce>JL)LeFqI9*6TeNPwHobGzHh2D#k`nFlA709?$X{ewbzSrv_|KI7#p4B; zHHzf^xqe1&{knv{>X+MJl{mPsUv_#y|0(-|qB2sr1?+B=-Sl|>0X2gM1kknDRO#&< zIB`_LfQUeatTI&|9L(>l2u+WbDS{&Vm!%|4T+W0`B7*`MEroM|w)F_As9UMKs3$tB zMWE{SvI4+Ve#JBupDQq>%H}4s;UlIwZaKQn3J}mou4P35`pba)^o(LW(LakW?TaV> z?@!OiD*=l7meN^xbwIIm)q&h=QcM8s%q%O)s;WBn&!V!Fib2uB`DK~H=s^`JWkvry zR#lZ%gl%7d1qTetroN0_Z3>^F^1&QfbR(9hfH!YWPOZ>s582i;385k=HI+lnKz`F9>KMXI zPhv!BL5azll>ie?C_7~EC437wEVjyQs?dimro^_>C~328WoGpRNN9n-Elg;$)ncqb zF}`mP4ZsAO!NFQB5@UkLEM%c=VD*sgB+kIKLl7g_Fv^S%KeGk$Ga)3j@s<=jXm#Wl)h@YxOh)>c+n3Z9fscu`q;Q=R zNBrDG?V%o_olD6{;{}t+}d#(L8yH28oM;zADmQR%U0tD zBDpl&NxtE!fmZ3lCgaO+s-?P7!AIcp-@zCgn1Fs^QE|dl1T7TjVQ2~EVk@xN^&6iH zDZ#@sX$+%9<|boGL~KdOb9OmC!^a%QUt02M1tw8>08@16s`tEJBz*y(GV3k8Lcpiir$OI|Z zMboddo7A#>`+M(#Tkc@_Ygb+R+DKN6LC{0=e5P$`gofe zad=?N?c8^p?5UOv*PEyOWvdp%syD+~$V2jALa6ilcvgTX!e!^-iEx{f(%wTCmV)Ex zCWYiSC&5B;HLhLxGaWiPe|X*EVZ%h+AUg%FzQFFLUgw7)-#DO@p%|7Do;{N((lE-` z7v0SdgX<}ZHhjbjx!Q+!j`+_Hmj<)c+kDy&G*P@J)=zlW@acstbXDPn>`bcq>5viC zPm4y38~qaUpGql!KK-s9&lTx&#{lkN@Q88MPs_M7t{&&kpi0eWh|n34E-y#-ju_$M zqEb;KXrvo?jr_S_Emvm9{&B*y7tUS~<)MGL z#f4}iJ4}`*Lcf{j_QsL+#-Shk_QsL+#^K{+|8v5?_$YcjP?N%;u|P@CiVcD$TUP`$ zq@=ackQW&rl$g9~T76BDbYB1F6n zLcHEcczs)`2+#~oF$`Tsfu7}c3ZLQwDHR41sYIX!{lQ3TB-l&s1y4~=fe^%X263H1 zTxST^#Y)Eb`pLV$!CVJ^gzx`kf4rK-yNopSlF|T{;?Y+GEX@}P&z|I1d(z5L0cn*0 z{n)okKw2fh$E{#@aek>7!yt&oK!{~A6w+CL3SmL4R11{G2amqL@sUS1@-D+m&pzwW zwsoZe3=60$0)_`HZ9AE5YFqWw{-OJ|ZGq=5plfT< zwNa*PDGY1{2Djkk-Cxmu=)-&_LOH+=2(=6SFchUl4cLYLQMe8=CUPs;kM5yIN7U%| z%C22kcI`5q!*J)Iv$#2xlo*{MGo86=*RECMWUzHtljZ!Ye9Jx2`S@J1dJXsfmqb%BU5%9g)4-CF!l?@f4UM?xduV+BG@VbcM(2k+o^NV5NF96^cUe~26n)Ds^To|s zY3-PgtydrRYhXkuIw;0>5U`3w8xj@SD!r-3z0LGcsYW4DB&fMM!rYs0$l3g*(_7$o z@FM)@Dl_@RKW!m@Nwi$LrYWw3W-^6Yr^(We?w_ird-@+P~}686y)0u{-gbWS_CBNL=1$2D=SQ(v&Y9^&YxX?#7Ti2xKyiCv@ajHt+pP}$2P2bq;cjw zHTkXOlfl^KqpFpW0nzz!k%egm;r@utSFf5eAmj^QGH+wPqwQnnZQQ5O_7U?o?lWln zMTl;`|CsJ85FVzcur+3S$^I9u z`w`vu!605S?Kt!!g)W~I$1TtF~n6Zn{BC))s zM=#;=q{&>f(vESI(b&zUmfG`O4W{SKx%lZav$0TTt-CO>Gl_@D-4BYIc0Areds7 zR+}ai=H@pP=VX_biDD-xmcqx{+jlkH8~SX-(B}=eP1v`%eab&}od@(6H|2=MecDTO zyMxEwKXD23P*`}PD!nl^UD2cnlSd7X4v3vP*wpVDc-5x&Q4?GXw78-XE0b^q$IY5j zuX9TUGko~8kF%pubg>{gv)?4YCo8*OrxyE%ZWm?9yk;loHecB@9QXi!(wsF$Em$b?& zVWaNbagW9S=OG(e%r+n^W|nt`M-n%;R_wXdS9L0Q!^d2kc;N(xq+N)&H5U2jd5Zws zCVGm3LFUHJ^8^ST58JgF#d$mpGf|L=qcDG<19D7S;y@t~(J`z}6hnmzKfPeUIVKd2_AR`SotO9N1uk2| z{ulp_Nq9D10>F5&28gV$aYOzt5Gg-sr~lJlH|!AnenwJ~F|M8WLC3A^sw=V&8yoM< z%zA=d)p09s4~pdIc(xJwYuTkDI`A=`A9a+^qk*4aAT=;ZXedOF%|=iE>QkIxEDaO} zmj(|FZVa9q%)`&c8dQXSw3-v``}Vaz_Z-^@{r15^aB?5<+u<*;p3Xq`44+$C-{z;I0!sjm{q`6mZv* zW82X^zxEr8jy=X+q?_#SX+8EhyUF1g_dJ{HxaT??GhJtMY%#x?4Iphfz#az;c5T^+ zp7&pJ-4m$olkJ|zU008eVY*hKW8`|9>qc?cfko&TqLW@}xh|7yC$E&yV0Rra!Y>~k zJ7~J@F@7>#Za&7&CdVG<{f90`$H+ORdrm=ZS!8n^x+lHKbgUj78-tEL#qpXPn@f(} z%CBdBCv7nwBfN8SjPTCp*hZn6KEggu3(+xhj)ew+-#C1XF9hdp+iBR%uDCjs-y%$+ zpT+(<-3~8PW4U|`NCRoOpNjBIX*zA)JIX@DB^OkT7+349y}QLkLg?H zoqqq1#$!bnh7H^KCi9~q41V)N8i`RKN47vrCsBMV9^Hn^(*aT}%cQPo0jto;xl9Lh z^u)&2){Q4%a(f&TP?>Vmi7Tzy@qRlZs-H6%}j59L8M!ktNY7=*#8Z~rxYc)>EJi^@` zEO_>&2Aq~*cQ#vYWxCf9bgytK+9tbWOI{%0ZaIALUECcBHM{QS?#tzR*qvO<`KxX2 zjbhY`{Fj-5C_*YG?=p0V{!OOJ99VFLH!vGTIW}xG;f1Xk2l~dwrR5AA5%>R^`x5Y| zimdHhb+_Kro$k)sNvG3U2muljLJ|eiAYlu#!-RbgD2ptj2m%HWL2=CoBO0&;J_TGr z5DbU|3W^{qVsK_OI_}Ch5jRvM-Nj#3cj?=mP6&?kJpVWe$<6I^-m}y>r>gEf)qc@m z?n?7|7tEWTlo8XhXMdKRf7gejXC7XJJ}Sdn?X_?0jT_Ju37@CXlWW$syS{tRZWAoR zn&WlP{;y#3<|n5voib{Y+mtf{2%E-?*|cDgTNeX+Dd=&Hh3a7m=c77KU|f+aUy@Rc zKu)Bgg)>>*2{cuzt7x#RL^&`|sx2h?%Q1ZieKWw@!pd4RHsK3xo1!rzc7T_|`Oz`R zE$0?sS=_CR3fb1`;HX#`J~*zI7)Bc--~m~AfV=|$O9cncou&H)sH6F^@p#1^%kYXl z)}do64>H1)qa~v|GcPiK748x98o$i>rj?r} z*B<=<`_{u)i4))j#(+npRF#o#P^rM4m8}&nD_eb(1#XWqn@x*{-2%ajw{mP9$Z(dp z=T)p6)4yZZy|pFRy>faENNV4?V7lps(LHhsz^?<-fB z`B%Q+Gx;B^0{D`|QSv)CpO3-6e?@=ah!#O3x73=&{7mEO<|_l}SQw1I-H!9Uyq<0M z+C6s9i8XuIWT3qtfRM*|%GGqqJ5t_{e&IwlT}8@rdKr+)L^Vp`1EJ@|J46rEag z##_{{paL~CI6B{ypO6quyor0ZX+5rO$lA^O=r%Y5 zW6OqnuB2de0>OweA3^KD9U9E_YzoEv1M?4XjBAoGEAzr1-pBs~A0W<)NKW`GzVTO_ z6O2r*FU|lrfNDLr0T)Uxj&&JyMwi}Tvep+g7FYxL8?Kic3ohb%$?l=VJVk{z?_c4B zQ*Q;go;<~$+tsvU*DkIa(*@7L4ZNN$BY6nm`*?j|J6pDE7hMN{Hb#&}B02j`?)CmR#(1>HF~i5=b7Jj0aSad=;M zGCB(T1?ylxe)Yh16@2Qyu6AOwoIodes;O5tbe;= zlid>Q$a8c_su($8K}pOQlQ+NQ36|BTJK~M89UW~EbWTQl(Of#=FI}A3T?b=Tg1M0I zK4{cqIrAqcRa_87XF|G5Z+2zI>KNHZhp>&l{cqbyTzpmNXhz6JQ1%^2aa|j#HXv$) zBEc~NMC&VkX?L%-BC&^i3a-MO@^sHzBu(|M!AHz`yX+wrTZY4%mg>qaf3xP%`{GAk zn{yn4hLVYrYov7~t^wKZ?U&A-6FV=$F`(=hY5yJl3wy5a4P`|CkZItKuo>bODYv)0 zKuf%FaFk`th1l5MXbY9#d&$0(zV1g%znFFhXo-oIN(Y7Dj&s2+=jv)|YWQCAUgaGMUpRu>&4~EZ90vvR=|+if4v;>H z7UB=$k74_gy!;efgZVm{5}(-_U(UO9b{lY+%j2vU8|x2PZTU98jU8WF+DI_?jG{kA z$NCNH?S5TeuSwP1K3L$a>x$0P@xl;4+7!fL3A0kA2j+H`ZsWbHNZLZ zJJvev6q`p`Qkd^Tgcq$|X3uZeSLkj__mC>Lj=-(;S zZ%E$|b}|1?T;Fx^nRy*Fm_$M6VmWBEHXJVq94}}%Zi_9&I7~d$u`CeSYQsH%coKcm zCWo`niXE}q&RfBsBs$AX>FNcOvh)v)FM$sR4hMkXVNG1o6W8e!xA$JBf zqOEA_F|hqIn6nnX61;((A52$p(fbYL{-Q#1yVC;zgBsU@Ipl8g(Hi(kFuex8BHzD4 zp-=DkhVI^ejNTh~5Z{Wi;0YB!7~iXBGJHn8krQ1!=YpI8&kE{k05~A9+jKlt>cwuv zc7-+%2_^jCrdbE!$b;_?n1nZ@V5RhoOgo>+Xyyzqo#4VD!GuGCOz|Zhzl{~BM-)gj zNrX_SUf%o;B}?TAqsvt*IE@@5lQl?WvC|)*RPSLFoC-~@x@i`rC=-m38P~y_;DUf7 zB6pJka(-c(2>nt;oL`9TO8ltMd5E@rzh!08go)39M1_WA%AAHe^Zz<4>rCTsxK)D8NFZ3HO}Dcu_LJvP$YrArTx zmP#HO7et%K$v9F$K@a+JtpK@U0~XwU_m{x*^{Q11D~7>@K4b{@<Ql0 zWP3Et;x@3gz)X6#HUg-8NhkIdssHtkajLk_d;Bc733MW^9 zLK-uC07iaQ_2_|PZ@87J|$j zlZ25mHsVDE3bxEB*l)uEny%qep&>$@26iHYRl^S(^10(wR-7tio<}{fBt)~?R zGI_N&)98lN#WI{73MOjMRa&SPG%Ay7ijNk!}s=DEfv8;%#OLRk7$ki=RIfUy* zWdM%`JA@d>^cg8Oa_cc|0~61*_nG1nlSP-^0$nC9fw)e+lwkD0A7id&On#C+&ym@GO*Z}uCi9g1H| zcr3BzSe;%ci!O6algX0Y;$nzXh8q~k%cRI-kXh+vRy3i7 zI6+087WpV#R3^D(jTQU2c$7CPG zYm!$Q@8lH*oUFRUl13u(YrRBoQX4;;NBRM$(^oIPv21Zs=EnEWPFQ;m&EGzzdIdni ze%r^){vUwAg{PP+6&*XCt-Nby5Kn&YTzS{)8_--Zb=8We&;F!5hek2l85fhu6yXXf zo3pwcNv;$xiAh;B%PS~N@qSa9U$7--&{DQQ#z_Lx)sZ^RwFb2YjBN{6;on+)W@4z4 zIx*A?1!|+DPgAO2fa!^(7-5 zoB_vHRurmfdD)2wGY;_HI6_wQlV?%L)@`%AYFk5U!w^{EJ zS?rxwQY{lMr>RdFSwFAWRYQvutSBFK@~M<4pjN}G240B5>pn%E7?Yd9lX=c9K#R(X z$Ya7YT!T&yK$MS~j431N3qGr1q_UCrp|Q?{O3Z`B)o>4=%@J>P<2e;$GC&una|>~j z>Kat_S$JUci^do|PSJKhM`!yD^no8*Zi)(DRY;CQ-47D(2f?vAFc7^+CB-tzs#Qgn z>hek&bK{v_zS!7AiyKdy9R^*T3kq(INs#3Zp^1rc5NoR7IjzDqQIdTWlSVr+a&$O$GFY5*jS_9;bKK>^*AjgVh)SdPV8YZ>8hP_q9S+# z-NMZx0b=nF+~KDDa6om<&`4O+brYV^Gnu%IG;+|T6LB~Ttroo`_~ABIr!Jk?=zIx( zKg6DRCy)V0lGP$wlfa75oRY427)d=Mm^sd6(33H(SuyhIb$)Ie)bmn+yeQY&GHJ&< zGHrPYOePN1^%NPek>d&6uvMd%^q4R!DtM(5nEAPPeAm>!x z@SAC$-WW174%t%^0_r=COFUcYFd6&S*n-yB=I#cefH~3qQH^lNEsV3W1Oir zaC*YIK*L%`Sc{?#+VHRua6*e<%@=tz%!9MRc{EeQ9~W*C07;j}RJje9y(jK`@=252xMz(47yDy%T`o{uE^Sgc`?pJH{)_(oUxoW zU79niNG+)tsomgrR@=;J6lzOYsjIhwHduVFb-37pqvD;b)hkhJQVipAVz_qBmKK6b za;n*l(K-zNxN1Brv9_pJyC(u{IMTYniZH0H0#)bw+)$c>@Qex1IgKto5Lp+`S;&;F zL7sFPIOrF21}UjtY&acI7H;HaWhZMmfVcY(T+BStL^jTbPF2Nm_11%BCj%N!|oi7B)Zw$Vc^b!UyJ}XJ##<)4c+cIiLsr1}o%gpB_$==6u+$C{NC> zGA=h+Q^F%T$(`VGnSp3eHW7!@ATuXpB_~3Ee07T1?^YMR!mtsIw1N(eWD{G%R|DP) z1E|JXLr8aSEyPq6BC(N4MQCn8cg^v&j;;l4!CFmisq8bj1sCJSiL46A5me3%Y62RVd=5%ldI#*ZY+xgXDrH zR69y^Yq;GC;ZV&;aT-N8PUUW%BwRxFG)cI)JgH`-*=m7WlZ47dLX%Qtn&n&HKAnN3 z>6W0wS%=O9V-kz9Fs*G}S#_O1huhB(VvHay4r_8D{} z#j3Ij)m)^kZQ~lo^Gt|ku4b?396iyFk@qF&qYdOBa2q)bfNoGYqiy}%P=3pRVQ4>O zE6W$GUcF$z@UR^qu*T@_{L~x6N9DPVKi8n8=G20x-gv5Wn(?O^Hhtd2l9GwqeHDU% zoUOrNCo5_r3VEZXbr>~2w+)86za#6SH5}2lYnq|Z?%K430WA&35XyJ7V#VVexM;Sc z6?UVvp$PqaHLX}Ls%g%nq&RrEp6`WT2k&UsQz<=KT^r1#V&`0fQeDd{o;=Pr>Oj}z z8jqUKFkL(-Rl=b>CRf(1OUhzWWlc(kmjp^w!5Jc{5LD>phUDhHR`-qdE-B5^Mg0bO zZh>b3kS&1JxOA}{ERhOYWP;D0lO{)`f>qbtCBK(=#gLpALnRxPV&0q&A=5~o-OT&o56T8kKXHZD?80*ZiCls*pL*TSe@ZF;i(Ny z@MQm1JNWIIh=~oVja0y_j{jOUK-7g|lxE}ymTQA0SQ8edw0q@5hIULJpUu=B%ivAT zb|u?@E3P~yN8Wz6DN=Y9DJ7cNa$oR#enZjP*MS(Gq?G=|&5$D+v*8Ft!+)4WTF_{roY=%XPgsTrTWjLDf=OTV?2@QNO1SVux zsuNP#wE`vl(Trezn~=1G18fe#xN;@X$TnTE3Tajm);6IlN%T4TU2u)Cl0O%lZQPI5 zw#G{TWlvc}@-J^z?^zXb4`5H?dk%!%6HW*Jjo!1r4fjN&b3lWqB|4G!v__{jJdyXv zbQl2s$|vy2{HJ(KUgtC8x{?)mPBiFsMw7MPr!O1Vz4s2%!Q?yi@D zUpBr3lfSD&pDblp1(tD>0xQ_+KoELx2fWk*X5um zJuAD2zCH(7{|zrJdiBk^JMY}^TpdD}CqFxM=$2voUqm0@+^cHp58uG2f|H+k;&0pG z(m*cy9Gy=|-PfW0E8H3B8T)1EA+9ewjE>6^`W8$fZ2+TrFAaY$QePclTWC81(@PJ0 zF?ra~;pD}xn#tqe?bNYq#=;Sv^k=;~ee;eaux!buLF?8m>OZ_g-O9T>Vpd&yedl?} z?Ry8GiPEbC>tq?)D&x#(3rg}*aw~}TZ`{~2g4;JToWzg+4fD&D-aKyuPkD(+6ykHG z&1ZaF+I_wno_C7}#bI;y?UJy2-q5OynPq)?`nv9D1tfgh>~W@9fy=pLI(QHr>EA9P zDRJ1?g7!^C^xZIK*_975{>4;Z(sS}{(V6m6cWYR`QTq(E2<{c-1$bV@u}j5~-$o?b z_E)W;xmj(E)iRv#Lrt^j9vyv;jlSENLGiToCY!w_UvKHvwr`?1dX(4Pf&-%ZxCWQ2 zHB>|+Eg`rE>meFP-^MVxT_m!!$blzMthL4kiI~k@(OG@E5gpL#nLTh-eyZ2C#IL91 zZ&A3x1j*0jcN6!>yoj&0&M(ZrTH&iWS9IQCe#NXrCPQB=Zy#m=GYCiSIPxM2eeEg{ zgum*mv{z7?EO@izH&$skD>@9w*`EX2oK-ZdroFr|NMJx zohSNA)@3J*xck*1i|?9)zPqVzHUKpfhfbMz#{?e$R$pC))pcDmZF;vK-Z}Bq+XXv8 z0?0zUCgZU(X>6iCvCq;cQXLR>+c#@hk0jvg3;O-~;yVrdvJx`$x6FQES@-{|9nft# zL>mJMN^cmnRWPvMD!n5zL!BbzcTZ_FETr$_Q0YaD*yLZOF$cISw`AZ{@>cMWx(>NB z=X8)|99L15=`AZ>7n?t+ch4#Px`7E4|Gn3HI@NU;GVN%sZ`#x)GhTbUU>ATOjtFyN z{;unI+%q{-1bP z_O*D}MMaLbIvJX*#Vi(M%#x4w{u8_``fh8@b$erX_MWw5Pun09~b?G>u@&bow zSPbnJE}dP|uX5SsL+vfr?!zipuA1RG9XoLOj)!0VuKHyF*JYv;RMyla>!G_IzcJiF zd*3^IMa{i2#qA0nnLVLTI)Isd&)?X`Wb9BkF6lN{JaqPJWn=r?W9NfFl9}e`0xYwM z>BJO}lfZ!lS~_Zj^-#-d?JCQw9L~WjJ;%;afQRnO%pZ6NH4YfmGrQ_p$#}6Hr%&AU zP{qiFvkujrLR%%1eXSxn+1}gzUSg^RgA#@mtQoPc%#+=_ap#=HZ-)9;Y!x|-F;~gV z)Gn>T(wZSm9tG{A=-X%z=g;|@M(dx3L<&&UQIS^klhvz{3CMlic*&>m*in3HQ`wD>(2hNA28~1L?DJv6)eDXDTj5-u~8RV9pmj zf*uC9)cq4U#`Ruw(_szT;CaPy@`o&Wp+xO}$B%2WfU>Ec?DBuB?on4ZzBk4=bTNCY zjFRe_ug4fov@1$_ws$1OsuUurjT}orRSYki#vfLy6hlzGDrmkXIi$> z{Sb8RlJ0bbnRf4^=n5LUdCJS(doP=OVd9Fhr4xD|80miq{d(!KoLOMvtM$RoYu_;` z7||_L4=(|atS`8={ajyuzHi>x8**nWyaY41q(lHg;K zl+L8ZQh#VG9y!i*K`Ie4ojjLI9y|{L>-OZSiY}F>moKdPL{j~K!x9rB9>#lU^I0QuAia$Wt4B9z0mr zE+c#7nCy=3oZ>DWJ9a6~ad*s~a-+LLyE-^hG^M3XoS2ekf>IGldn|7yeao#`*2A=? z@jiAI+DdyT*VA6mS)>;soowqq{ulN@Bt70C)5CuU zJGteNbnz95F8TY*?6+F_!5v{Z55Nl&-Qb5|I1i9cZqoHIobq+4S2qXn^&=8~4zRP7 z-q#f0QCTjGPw9b8alI;E$GB8FO)8!J?CKC5!J^XH4?2YC@QYPC`#}#p<0n1xpVqC! zV;_&F%z_LY<-25OW^|{UJ-|bHhhR_P<5JZA`8XkPUQbv9G49toFst(&fzfEQ(e8(P zz@)&;i7|Rkc%D6VDK93j)0lCk#^Gr8lgM=RE_9%bcGIuiIGfkciha2FZ=%p+>Ll=Z z@Y`aq!CREPG3!$K1RGyhkYBnoYYH%uHuB4RrOSKt!fJt>fkmF`kb+PYu=I5%2d}H? zWM|D&DJCm@+vG!2Ict%lt$E^UG2A6%8b} zsW!%x7$-elH!~$+g^h6M$|AUzPqgxNdF}opt(jeUTKp%q&kdx%Rc5sIZ4?-ghBk2W zQs-9?>d%E^c1ugOeC^boZ@&~WOWkW*yw=~CKl&WUuI3BH99@^tIZDbWWIUWZ!L#hJ+yS z`+t>&(kpn2w3FGkUcqGQceO^rTQ_cOy-BcmdZY5}8`zEcn;BbVe_%3BHO+ya-?&lJ z7#Q5EejXmepC_GfqxS@+WFi^@KdH2!Rhj{dTjYH(st>GF^(lfj>qMOvUrjgax^wFq z(oNBvp#WnrCNq8OF)^B+)Olt|U;ET0tdQ1VnwI7vOw*z4nzyJsm2`v-pHk?DYf{%m zb}p>Tz^8&2$LMR*W!Q@T)pUtIYMU~H+qJn2nZVB&S1bCoH`nL8QS^D~fv}u}Oz;q< zdv%@KThQtD=sHDPm3+d~1WpLK@UVKugXYl#A!<)*X||>8D1X`^Ij*3nTgA%0>Fnsm z-%lQQ>wHv~SJ(OEn1PjpU#sv;NAc1T59O054e92q%b!zoqE~X}EHHKV{pxv*QN8W<~DiD5dIqF{+)3{^ zz!=kvLyYWrKwf_K+U$jP$h`H|Th6Tx?(gVwE_@J7M~@RI4_^6#eU?5GoWZQ|<)tO@ zkP{La>zbIgCdRYMYuaF6@2$=h(i7wK7-3Sno^gS6mnSPm?~2Q`Hjr1N>l?YOX7ZM{XsoYThMt5Eu znWwHKuin6)y^Dl#GYYRYbm)NYG>hAH3_bA3LNl49WaUx>ujH${Hap~(U8q_Q1r6q` zqwAMk?0OwE2#v+;wM{j%D~+*+Bq4ewaM48Nc$3Uvpyj=bLvsMWHX+q4dB z7{rmgW19Zoh^wS@(ASRZ|6gMQmv&_eI`8<#{>^OR$lqY%y{aS$A47YNxNZ+m__QA}k5SQ$P6uBF=r zzJ9C=KRc+dR;`hYuC?Qn)YBVtHa!}x(6rWStKzfXpvHXt#^nN{=9&EBss&`t{#>ys zhV;X%On32V7aCs>?YzjUIL(Qz<$FQw7=zR~?&-D*4sV}X%(*86^j?iGd{(d*fBY0f z0~gRrd$C#}mhdX-(dT@&a2d~7E*^91Q=fwYT#)0Z>68YZJ+#{p z4=}44xP37(d292X>QW-9a-;HbvQV?Nym5|>p`a#$YJe3UgPK%drB>YK{3Ol@IS^}5 z$%$rBNK)tbF!jCxk`@!QIJs|iaX2KkSNe<^sL-lgl0H$UOtP}BgF;*JF1C6w%{cVR z$MSmd$ThIL>8Gb3{m7@AE=!H!yESs8vs*iGO`-T)UBufibS&0$A2d^4Zy0{ScCZLX zDQ8Nt!9QXIlo(21LgOgHDI-05ZCq`7x|NdR;neUEislZ1qLr5cgzG)*{(G&B%DhjQ zQd+_n-FdQ(X_8IHk|o~jpH)s(zPb2D`Ac=tx3DMFp%7p06rg0TBO7HS@%2Y+$3KrY0OUd@>)dpPAG>Z`x(8nRWi=$<>APk-VG3^5TUT zr+yhz04V9H%?zu@%@z*oKv@DFLLP-ISN2pAVc2DlKwa*+M8&4^q7Bj(iMN**`9xTB zL-@H3tL&LlxoIu=0f)U#sx=#tA za8#st)r;)yaDe#1f`u*J__cb`(5j6RZ?9nGo?vj=-a#gatVtBJJ*OQ;b7=JV9B{DX= zV}PxS2ca6=knh%q1YAfxpexlJwSaIecA9Qc{M2h(_X1Q-NEN`Zo|!J{u~n78p{cU( zwEEg_#kif_?TGp?sWa4R?#{T+8IgYFZm)&;kr6QS;uP-)R}woy zlCPdF>$|)f3kVcnJUduV;HVN}UB3HNcME&NFSCYsf0&v#7+Pi$ak*oNK4?24c(=K; zvfKoC+<%pZGXi71@ArlYo3Q$ATds*Q%sZ|G5B9uNXWtKkEnR#D!Nx3hEOwaeUoCb3 z_#PIreDEYwk-D2}64dZI$v~;-I5kglgd=22>}AG=4UOrK3`ItXh#t<#&3JjDx{TYA zF>fD0esU|vo{(upZJJXW#&MXOeBBd6pE51!u|8j+r{p;oj8pEoP0`J5)W=QR`aILw zo#|`M=X&!>QAdfkNA5{P(ouPN1+z;y0DrQDcN5k(-Y$bTrkDZ()2v*$>xsnW^dEP1 z%J9Tm2PAxz$0M3i)5ahCLH&FUf9vK6{Usv}2V5RPq-zIu z+2-C6E6B&=S4`*{hI?DCbbw}q{cYMq^&^e7_pzTMb&5a$Klc~6zHudE_ey3DmJ&ec z2B#+|)W9;CZTqU-T4uBp;x=xd${>b*%tt4MW7VDLtRHL~5O$;8li*FUtOf_|P zTz-_YhFrSNK2>~ZamQ&ww~OLKMo34f^5+&a{R4vUNFYU!8wn1>6C-K9fpv_I<#S*>rx9Ax!Jvh ze6k-de=(qEqB1eb+EJ)BpB`i{>$cBCWa0?F+AV#W%Kl^TV)en1c*_Y?z~Ek0qb%%> z8qNs#jztN*!#noz9}*$`>MqQd(N1eGtMvPcRiCuDGT=$0hJ=ZUXwD;kupxHP1rI_H z;YeYu)hKlnp3pnyo6;p;QgJu6#y?|TF^b>iIyaTQKC&T*LpeIf^RPpJ>4A)0^@Gwh zXQaRF&%@h9i6H0VY%ypf2AGesFHrsCTz{ngJY}7bfhf-mf#^F z8Wt09ReK#-^z6%L93S@8+Lb6XM1#TA15>-{7rLQei{6hh)A|uc0} z&gXe3ffB404G-mik0OpEcz=8A#tpkWg!%t^264&J*VcwXo>v3vec}n9lD&C&a{ES_ z4W7V_-}n47CQ6UhnQqBMVhMZq>~-c(!zsNmv>mGb+0{PtVvul^6xX^u1_emGpkA&^h4F?eJU(Sq0L3fbe?-9MU=gF!D;qE2nM=S{ zKCJn}INHoz;Yb8K%X3!TM~N8qSYN-AD`W8@bQ4G5i4P8>J4E_K9hCLr(U|pkC4U{q zJs$E)IL741xJ8F$7J580(dilYy5;wJG9admmBhOFr9}k2H6O(kLkQ7^n9c&jKZU9-r$Nfd_cC z2QOXJH6GAz8*G>chz=UAVWr>=8IlY!l`MG_b2~{t6ApN)0pRZpTz)sRKuy_zaZO7` zu4M4TGBxljo9#pX0$F&o|8@gq*1%GW;0-Uvk-0_*W$);(GM_TBc3*LFKgJu9+}nPM zrZYf=Z!`b2!n$O)^iGP$@MUi+UYB^+s!tE`;N9H5@Ld*9 zlJ0((vcdyDTqtiALf;YT-X}D+z!J-M3Xgi#xGZ>PwRd{rNjonD!RNO3>qgXfe@SJy zN&?AICBGghZuoi!%Yyq-fQytUCP-Uhi0-&;T~`xXQHEZCuy~MGhDYvKp~$hO9h;0a z!FIb4KV7NJih!Ei)^DoK0d(fK5Bx7VLa_JKXV#vPOYl~L)|VwxJS?hzHb>|8^{4~WdpHcYsq;)TbkKXN|Xa6Dh!xpRv&{CHVz>46K0ws00g467DO zeZVTStS1T2BfW62rOrEj=_Kj4FTc3L)l-aox4T>$t}08Ms^Ev~+26~|%7kiSpVGDaf;SFrB&Kr&Xb z^9(GwC>-|PcNDNDi$r>u?StJ)q(1XMM8Bw`?rnJt%`4`Rs9ZIUv;EBU(CfoMuk

    z*ULy~=}zPiu}>tQGEv3%8+E2|Urs6Sy|B+(VzffEf!?oacW{*=f7qLSlqur&4i(M& zQA>#Anu+(U$p}nDKRwd*68oGxjYG|uroH^2P<>BsmTov`t_$+4`|)NWp~3K|1O|6) z5^ms0F4+h?hX#A3q}7d|cOlXp1XQL;u|28VVwRa*-y5A}&!mX&cuCN6Y`ep{T|v@& zCB^4uCn8P>HE8uWbvnt!d&~))l{g|hiL>jIN*g!@GG@~RXk_&d(8$rs`J9v zs=7i3=Itt{%06$~>_2U5Q@l$({cLpXE}wit@~>XZ9H zxsO&DTpG`9&wQ!u;ZBiCAC#fpB2Z&vYELSYR_>fXS=rQQKBRsS zM*LXf)s_8Du#bd9#%0;=pqxmqDsOq}x?QGif*CV-QMzsvt{E(wK1>m>^Ih*1h!cbR zAx$h<6pb?*`&H^u>*GGZMVWW_Rf2;g21nBK6Cs5_WP?ZD;NH`Lat#&g&HP{wFKVqj z)ru`@-0kc!lm1hhvR0;5FX{KXn3LWJN9=JktQcypXe^e;el~tH5H=rjcyFC^P+lPB zus`BsmpF1_G$A$xE50V_tA9n*9~})po-g{!SyPV@U4Q0yY_p@myN63q&k@1jb*VdE zQ(X3?bYtT(hcUYs7}oxA_%`Wo1h1O+#+4+O@hymkXTZGYFma zXhz4gC$GLObRRi=wPauhw+W=cA~|XglRy@Q)ft6IN}>7*B3;?YhdLLtCo=L*YRl6l zB@Y{(r2HZtCh?6C-RUyU`P}?i)RJMfe6PzsCbTmBgGo%OkZuvc=@7A`KSg7|%Vy8% zUQRrecup!G9g2H3qf3`rfbB#bi^{^xR*bHX7P8S5>Wn3)ytw7SjLA&+>TL4P=sxYI z6s<@fz%F-4iTcfc-;K9^5$N|eN9}=@u~U|jb81z;P{8D}k~@8`;abJ+M-}t(OdrcA zN~^Xk1$O)K$8q~d-dPi`=)F#w%;5q)(cmT|M)jm7RfIcfK9VbLd}B7q#SR&_ zI-ArOnGIHgXrb_TjTo7+QLe&j>&c&y@1-R)I;64{bTQ9rAD{OL0S`2AF-lji1F(3I zo=>R)-{#eZF<9A^NmLr|3CAoOn;RT7$CG3PoIUD(SK_=-!b@_y0N@A33W=2J>iygwNBD35s)@vRzc_eK5usa2KQbqv`Uyz$u^HK0= zLv;viRPN$expMvFpd~gn9XR#Ttq+K2>DTm2H@kBHDH*kEutKU&mkyjJP{>nzya1u(H8^F5* znrtb>g#I`P{qYMlN>rC3c@10fv!&Jo2rx+ZtIZE%k>5 z{_)?*IXk^Bxht|JOFcGk9He-23=t((zw^Yq^jh-`f~Z%2{DgA=?GSi5o_w<55VpRF zl2u^P2CGi88_!-qGz5@2SAt0ALxLl%%@I5dfxS-{8FO0Y-ETuLn)9`hlF{oa`+^ad zT1XL05hlqE{E>{H?QGRIJ&UPcUaNR7C;P@0XOrC*{QikJq`Q*rcHFnd2%yMGf*)I% z!noIYoVDXK9n}58X}ui#CysoI54b5u!p8Q1!+*(?d;@bWN4z=v zR`H?=M$9tc6w#Q>jxM`FznkfD5)KQb(kC@=dG1 zSJ`W5-^5nNYia|q{jP5~K|Rxx@P*!L1uJD#=q)1WmzwmJwIahZ4GrLbDA@#0$2s*qa%kl z`Y-FaccW$oqTf0=AHg>BMrs-uTZtB2Ibam9318bFC@GPLw6G6#X(whXM?lDjV=d~F zG4!_8;hxgzGw;6Te3oPbU{a7P<4af2wIIujr337!#)9EWD^@KXBq9JYk-am zuz<8-Zf-qA998A@=HvrgVD@ai7YpX)qij4Fd$(Aw<4RaY{e0b8l) z&ibjfYG&dw7{&7a^Oo-@o+ z>_`vt4rcMh_FJf1{iHER4$!LD?`p>x`1>!OdE3S5PY{FcZe(iGg%e>TB`FTpA6w1| z%9-=#X1y{#54P^u=eQ@X2W8?|WXNFr1QUFDQU zLAiY#4-4QkA63F}g^Hy|8?R?2i8{j(BFH$ff&y&s7(uo7;$|@-`iWCf3BlBWU~Hqr zto*Y?U@F&8{*4x$Z97U-Ne5ECrihN9j<1Mq&c7f)X!i*qnm&Z6_69|l7&)EvQSdCv zwPJOt^8OwUL1YKLuZ^KagDSxct|^f?ZFkWyHM*iyEX1k85Mf93K3fce~; z`>wecL1J$D7AQ0hy4u2f%*jU|f@^X5R%T({>k&B$3zJ{=d7c`dvm$Ym9DeRQtct^F z#461Z;1UC+TGMjdey|BlpDWs!xp=7G`f2Yo>HD=el(O6fYNS+`yhQ2ew}M>H=Wk?V zG=IixKjyshMRBGp0Jb4*3a|m&U=uxy;F74{?PhV-+*-F^3_f%VU;4gs>s+F{sHn=gj6CFSdZPfVr(g)HZ)AP~ zQPfJMSh)4AM!~!d?>E4d{Db#ZWa0eZFy_*y9s~034OIzC?rbgcrCN0Ldjmbyjhko# z^+|(I9Uu=wyM2XXVK@2Pc5BWS=K_crlbbYIn_~i!q(wAWF^&|cgbSbH9GjuZo}8zC zbD?Qnu_Fko!>O06(w0n}wdAVd3*-~`6XqqKi}`gP{aWQ)#aZoM%?);Std(t(&VSz@ zAK!VR(!C%6w#cl;E0e%YUf1ouD-)`Pc;}KS66G+rA}tjmx4Eu&R&X{QdE&o>+KExg z3&feC)k|1l(V8ISxDoUA%}=I*Xto12vyhY*DIerzDgvWWkQygefQtGfk}+|)9*Md5 z=bn0;bia z@bIHgkYjvqX<67UvHiYB0@D=M;ddl=dFOz3`GLgX@vpffWkX92kG?V--AnM0iFThV zZy`N&jOiwfmZi056h6|=Bky#-a3<0rv3~zTI@y1=E&qvKSz4*YO;k92Bhea#L_1Bi zokH3t8Tqv>GE2$Mm0QV4w*?X@q{8oKGrDriF(HgqXY-M5HXp|Q?j5ZtE7m01eo*ar zch@~NJ}WNY`^HMZ4I0|EuVvPsE_ds8I`(f^X49Q`1~^U^`-auHQ5h`!WWT&aKx3BY z2N3c=SmVR-aT&(ww@r@CQ-oj+=N5og#^tjD?&`$4lr~?oCxC&pl@-ux#ra}cnrm+RWpo>vj_z@ zaalGb{?!Xx5~soG_S(WNF@u?aBXQfDsIxq`tSht~S&SijULTP6msp7q@X(0-n0Kor z9i=^447UL|ZbiS$Qk+N4jPlOdKagHIajeY;^!mkLHscShLQSFgcPcbqjzP1WdsI`S z*t_W<2=SmH8;K)9EWzBsefN(i4>ng{=T`byHe3(~dOs1wKes;86c3i2XInkp;C9Vt zT;XxB#YH4Iv+%Rce{ljECmD20I|V+m#gj+^L7(NDm7oX`t?EF$X9fF0gtY*|ACpPf zhnYt%c~#YS`t{q)eALgh0N!A9$7Al~GgHy#44T9H;2ZfIpc0{1xYda|q( zx=SbZjECv&!DoI?PV%J1Zuo92g1h=OCr)pb%{0dCiR5QZQj|C`ZKh-S*3Yg#&V0gt zNz@3v78olJBh-F3q2Qe!PdoW z52^Q)wiot@?)p`F7V>!IbT{0{&x-@FOq)M4kK$FJ!FXCGd*x&S(T6Cj0m1(1o%I>( zOCK z%TXLEcN{j3f##eVBcop&ENJx_q((5?`b)-zt!md#tjvBnIb{n@5EbZmZBUL3Y3`-j zp6}h)M^_47&Xb7aHAa+HyzdyQrY3@)mHU-4-P|3p7+1=}*jz9~@$&7MIQhPH`ob`s zb~QR?lhjcz60oF8Sj+W|T?Jq7`-w}*hx=4nau>4iJQ&U;sTy(TRiC>On|touwMjaq zt)%E=exG`}fZK+5{S)PWT&6Jgv~qdr1@^YZO48Tgb4hG7Mo}gcUXuqP^2uAq z`hs+m&k))=#rv;SKD{Mj8xf|Lf2{IV+wt*GnEUfoem~I@@=vj-Z@`D|r0;&8eb^^U zF2VY_p7pDUn153H&R!-l=s|QrL%7pWZnQSvFoEOfo!j*8o~_3OcP}c+F{#HT&1mcn zFazo6DVgD%k2>VY*t2zp6^xwPwqjy45FW%eOm|4C>Dt#N%}5xxFAQ9&gsFUn;uCf^ z7xkfR;`61qHL8KQ9Mgz998#fy)YEwFs=LbV{mBwk`j){XN}25j>78CXbfB?hhq@TL zx^SaxM=PiPJ9sDJ1NG4BKPko>h8-Wi7^WTiuq!+%jg|H=k8+UyxdeR|^}(C--O-#3 z{Fqwc9S(Z0t|?fk?f#g4ZD7WW-O7`E2=n-s`MPECSi61#jH#*Emfbl9H&K5{2PPFQ zEFK9GkM$My(twgBxjfKwp`37G5OblZ?YE_KaHXSPjFBbTFWWCW0PX`_sR3ZlHQ>V2}w!xlPO@|hvn7Mtvp7S4=Eio-to_u^#t3MVt%mBBBV{gF% z?BKu1x>FUf9P9@~(sT|U;-yD9i`MBKewGR^=-~^j-FMqL=EE43mp6|z zT?j`E83a4XSm?vo)hvIPsf8KVu(4h4`h(czh8TtKpCp*VC15l@ESXlymV^0H%2Ie} zu>cLYi7c(~3*})3X<9_+_mPF8a#W!hZStGK@6E6M0is4O`OXThiH@HzRkUM+a4rxhEU;tniPZ(CY=>Fn{Pn3Q zwi3(T`Qitd15P*=H^%(i-sA0p!w(12qV!o>_J3`2vV8_OF@eol$ zFH=#kt8jOCR_w}5d*zTURXw|)NuQwA^;d*~rHm_E|5U<*f-CfquJb!hq$~79d9J2m z94{n=A~>&)*EzNCU&2MiQCnVx=O0T`RQfVYt4YTuSq_+mrKsTw`?~Rzf5$JQh0)r& zP_4T#wsP;yoXA|rq6d~5T%8wh&3`w7&`}TA-%E1E)pI49aK#ZjAfE4nLYQie=S26C zm-u8=Y=1>kH<+mi6M}}xxT%Vo8Ptk=n-VfZ;Vdi+v9KIhG-Q4C3f^9(gk3pU^~;Sx(B;6?P6C8@CxdvIkWwz(!I*NpOjK0 zwtA&$8`}%ay=7zF{65&_sL@$ZKORv^5xu^!bx(RLL4+3bC_XJpV-~3oNDlhMGuKWPrtPxg9%y{0aAfgZ z-)w1mOJr6R!rx7+?qM1sVtg-eeP7kJwI&dcL4qE9nhOc>;Si_V#=gJ2P_5|LEK`Sz z^LOF%-{!c^%P>kPFMmq4qHwe9ubPY)7F+YMns38x3a{N4<%{?h)K?c!R2Q;c_bv^B zhg_CviZxoRkCw9e78yG{1!4bQ4KK_?LsBh@P3gnORClXFu_|Xar2PW$TdKtY99F>^ zcqHF3kqH$Yh}$FT$8U=FKblW7r|+cCo84>q)=DZJxDW<){U%)C>x}JO6g!q^#Xf{+ zo)7zNfu>HhTq!xMsz-YM6qlZ2(>&wdd4Z1Wg@H}MwFfe;)EFkbq^hK9Jr@tGSo`%p zIMvr)61jsFf=oyw?H2yjG=s30d63C2Nfi^DXO_yu3`0AAo|h+b?HWH5F+!y z88&=szwY3AQ8bqnc+f1ML>Fn>!O@;SL$H~qGFv8izE!c0o@p0O&Lp(50NQ88W}NCz zo7_gZhOn{+-N2`~N09;}X$6IMn;>^BpsFVZW=mF5(~c+mGg(?>w)wzM46C zd`t*kffNtJGhDNd4)*s^?fF(8yREF}2{U6H9>j`V`=!(Sp+%l9|N$#H0Q-8fqikE*nA^5_crFUk!C9;6yJutsx{^R15{%&}3uWcaS zqfmAC%orcZrBeY5ez9vILxjc#+NNJB8TTnjKX`raGdmETyer&Z5GJy8PvGxju`c?5 zlA(IO@qfJ(8~>vcW7)fQ8Zs+>U9Jm69B+#5fp;Cy=4K$K*0qxf=}?4w3#E_9V9Nt( z((QeFnijGPEja%&Thq?T2Q(GCt*H(-MC5R-^hwfL z^E(0v1#rp9cog(^mlgB)FV|sPE4Yhi8mTkA*Tl!&yhnGmEr<#pe6xDi*?!b)C8TT9 zC|rPeb2N1~uL;IC&UNr~H3o#XTbC>gie4Wr9_-S|M>E;M7_hg^;4f?u_F0|4F5&g` zYMBWy#FV1(Z(oHuHXAej4U+!k*w^kEK+ETj@@@*LJfUf^JIzVv}PzYHrFqE4O;JqCu3y_-`1lVT8n}iFKZP|me_!|$qn!He^`oqgKMllWH=eTCsnJ zUhh$?>n{cq(m5nF+%i|Cd;i-TjE`k)RRu}*X!Sgu7n5< zN)4_|ZRrBY>w_=L|Gf<#^HsVMBX}u|xN5W=3npJzd=SI;~lzIuBa%gkUeNuToPlL@vuV|G*y?A|Fp3xKI=nr`5 zD|$RNYO9s?2fR+1`b(BkiTTTkKl*EAXU-hAD@zc+!Ke^~S9cfnx^JQicR{atN$n;6R2%*Vzq-oy!95&y!ejyS4*&leASM(SSZwph!TA>e z!xr~QW-s400$eb7dsl69Om*it*Txo-S3!o++n|THGwEn-yG1T*4;_y%G{0EScD8e3}$qz9_T)jF9%?8}R{Jilm)8Wq^ zlIV+{J+V8Ij8F<>h1dZj-DyQU(?9U%Y6@KaP0)e%RMEM3!GZE9o<$@8`Pp21@A2>w&k!+l`XXpKC)x=4olY z106PqN|~{t^NWA5@8{2Abs>KuMb#=LI`$>69X=WsjT+{Tb5-jW{4X}WEE>Jc7-XvD z2Llp3W7{VW?pVQRE}wb#J%W6iyDK~Aj7K8rR_DtN5jul0U)oU9gMG3y@H3qOgqeaJ zteJ3CZ`1C5>EzQQdIFw`j-u?NXs@~Ce=$tiJWE2Qi(I8klFrwwCEFVzB*>LSFXxq* zl%3@qchP1I%8PH;qwmjS=g+*exM)tlo@<}!NJ2izF!)Tz>se-M!B-|9DI0FDJSS<8(LK^1vQmtt z{Qnk2m0Jc;vJ}%;blv4v(iiNAAk+P)Y4c)4d|klc-`V~Lw^?*OpANmvWOuzd_ixX` z;^r9%ZIXXeNA0%9Ub~x`k+KT; zYg~CvNnH~apRlE9yy;l-5xS6evJ1;pjo&GVm*{wRmP5sN=>u#rfK5NnvD9m_tUAxx zJ9e+K9p`+3Shg8kv{yIAs8OA__&9SOD-P+N0tVTw6pW9)1djN&q|N6*^RCsoI(XJQ z#t7lME#WK!FIk5ais0tE-m!HhUO#Bi|FS7`_ioe%|X4~Gj+sD$Zk8BhcMg^Lu>jFXThy9R@$kn zu5)qqS1zPHYuYO=x!Vt}+3|e(ESJ@>Fh9|8X@->VAjs!SpM6UyvZgmx{j+}&Zi_lH z|EPot{ynMerbs{=#`T|!e^hz2R9z%=P_~=7CcNS>+^j9XJe1|SO{ncatz;{%=rpdp zeh9Vq{1M0=E=%9-e+k0;P0HdI&ub-i9L_`0^p(MY9Wr$iZyk^l5BkH}MnIZnNSiEz zaCiSukkDnmJpeJE9lt}_;?@-~z#*p00eJ0orm)ugrC#$REwM&6jn~ZIVcXrtX{NUT z6*U9)>(#<)sO#`|GyNg-S8gDNvh{IS9C`vRa(JEl*G)32$n-fjfm@srW66A}QMza+ zgQ&Wmce$n??OQ3DX4U^E(a2gQ>?gTTI*$PL0lGZD)1hlm8{f6@t`rjwUuS6j;yX7* zSLZKwKsDd3DD(G;6=ay(AL8E4la7fkPYjxMan1o7yShvO5MPCIz{r~pRy6{FfYbOD zKqq!>$I2E~dPxAs-o!StFiD-O?qZit0L$1X(^xk&OzIpqe1IjX#|95V(o1H+aihP+ zWzO<#y}eoUnR5aH-m?)#MD$4bKa$hDhZFEH`wdNizkftTfXd(^>GdhEarf`vrzEAk zeV>w&GVZJYn-FGv%!(1xtk!v~2LFob3ih4JT;?6p% zm+cTlH_6`GCd(8VWOznV|B@=`=ZCVF1Gx`kY%cshtSJxd3o6DQTnSDN%!#ZotsF_0 zuDMDwt{+nfWcA=Ly?|&GLf^wQQauR#s#bkfWoo}qyhrOo42P!if!wr4Lz6#t3_Bf( z8buI>ooa%Z`?9%<&Q|=>-cG7!Momt3UicGQXWkLu-6kMjqs$K4ZDs|C2t|uaB`f09 zF)Vue&kUtYZRN1+#H@|G*7;BMrb|sls=K?t9tkhYIN2{Y@k<;Ww3nL6SZ{(2`e$zQ z>j{idQDkWJit~Y_jUs^QP5x%gFq9v(Wv$c<8B61D-n9UlVm#;5@S445i~znHyYj%obZtW|uk=FM zkKlsC*A|#xW@e1X+`OwtokJwL0Ex?uZDli<2+oO+f6GmQJ3j$WVK^Jtlke0=(ystG zyW>yOaa@U)hd$XqLj<0Phs6fIWmK4XIDH4@EnpHj;37a2XhG-+n7oX%Hw_XD%42>) z^x5|M3;Q;vXNXsRMAgdjUb5Pkua4!%NPbPdN)6d^NH(GGMp>+h_s@nN_$FtDY(i-U z_zQfej7`T^`h0v8H98N7YB6QYumNe)oL?gKWitsAn-45XfjSmneRaavS@-Myy%`KBi2uesrRkk zVF;S}M%N!*@^>`%%sr})ypqwXy?bSO61l|R-I&Z2d0aP1NImjRf8LTYAN6=HYUDU$ zPu2vuiGFC3b*(ZI3D1O&KD1{MR{r>Dbq6N2YSS|im&Pn6zeirDdRjdiWfH7*l7bdY zSWn4}RBN$rK#YR&Oq0C$5;vVvt~&u>N|W_r;))R;u)gWn^^SgixG>!fXt1xoTqi!Q z?$7dDLw|yRkdH^D+O6;BuY*;LN@Ml#j$Uf73dqooLpODR>!N7CtfLhl`v+u$D6e!* z^p;>u*z=Qx^*KBjfdBbBU(;v@k%ft#%b$d@uN$c*42>OJOS-CmgKd|R&T8Tb$=@KM z^%@*+yZAbqGHtI@)Mrf=9j~D|TQo9!^Y(-#veMSq&*s}giR{G+r=EAR>zj$6-$GMg zOgd(o4P)2_%)HiG*LtZiMi=MhIs>|m`$V%&F0}{FQvD3xvvS+DM?Ub{474SO2JF*1 z-Z5Ywt8Cl2y4!I{5tX%hYH-Q#2^E_+YsON-fj%b#j91Reuzb7N37M;mIV&;r)POJg zh=g%B6y#ruGtU$RzKdpty6a;@n*oj*vHMGRnXpG^`4g=!7hNkkXRPVI~w06fj_?#$fVB1<^Fd-LojqO?B`ylMZihP3>UnEJ_TR~E)4Y&9}s*s^Mp#bp(o$mDmGXIbvA_f-9z<|A$e z{0^=Utmdcl)ST`edg{LHLkU5(0y4qJx)A?K(npFu47|6B!Y&?_N4$wR4hYHi<}S?B z2i+{1^!z+w35nRQu4`BpP+^T!%FbBSyeFx;M&-jLVX~3?0h7D>QH88db;tR7qYXAl)}btVR_wvT~LQY7eDR`Ba7LH9Czy>9Uju7#Bu0@ zI_ne75L@f5yQkLXr&qL`^6O5gxO26e*c$hx9Z%tU2K26tYvb(9z^3Qb0x<$#=|=~* zs*yov;+V35$FI>3fhNwmpRh3(Sh}Xhz&t64E1ns$4a&i^w>psl@zsl&?Zq5k@R+Gg zCLDV60hxYap@Xr97o|5^0~+x6xW5+o*WU8I-YorH3%+MVHY4|8?IR%97970$ToFUL z3sjuuUi$h*k88;E9*nL2V|Szj^Xrs_j|X~d7S_$WiDpw?*W;;odbp;P^Lk6M$nE$- z?;?BtqUEplwtL?Y;LVCul>M6KfOO$XQB0X+%a+gA!O$%i`~6RO7pda!FHKaLz}wr- z9+-`7#^%wy5>bZgU$X=lSsKic4-;SytOp0Z3SDSHDKiQbHEc0`KX^FreNm8K=Dqfs z#6|{kym1vfhvnbJdYGD-9WRZqyW)V}e#M3~c|R{BK`mK$M5l{oqsWjC^VB3R=><5>u!8l#h>-uNYS}L6VI5NY_Tx?EwvO=jG=g&4n9+(*03K*T!Q+lO{yMbZH5_6Ua@!A>r^m@A=Mm z&iCVFueIme`}ei(%$~Vs=0{IT;~qn^cke{dp-1n2kn5bXi_*tSpA~-E;E!JVQ!QeL zV`lLgJA9y-WSPPH`lhz2!&{+8dKI`h;)>^vf)r4ThgK1AW5ZW$RVLX#FEB$1&sGv# zJu^nb#Y1(aB6@iD9|eY1y{~V{uj-n&m)n$FbCmN*5HSwM{aiD?BlI|T?2)Za{(fmI8L@%R!Lh7$ zt8^;DUobOqhNC{w`uL|GgNV3ncyhcobjeHO>`?cRR!Dfr!+f|^8?o}AEBy86h zQLJkcwn08qvtD|X!a-mWE)lJHFbqk+OM02f@tV|=pZDumm<&3!5C%u|>l*Y(`W_}r z6R*akKH{fFq^b#zJMA~B+DBeCyKavyktj6RGSW#ehJxcLP-8Qv_t?n=6E5$z6M4W9Ooks$yu$=EsC09QO{jN5#YPdXUfT_9-OyV*qv;Lx zWCY~Ey-wTl0QN6ng@u09_=VQJ+uvZu!mucRe&vomg9rLgC^yPYmBiyDKU*Uoy!lA< zQoo0vqDt5NHw@jGF0iUNcbM5mfGI9--{%f%mpOM3+Y>WW&Ka;X%2fNuHv1!}aL$X&p9~@@yO;;(+{={pK z$q)qYW+M~lo8h;#5;o!J{g5j%#7(h!1k;+pfC!a#l`ML^ zDT-1z|JSy;SxORJp*`v9bcSYaK1qsMs@GVslEwY?_}VS#3{BmDFW78UE<2&AdM2E)hmx?-nTXee_>}3yJUU4OF9<$zb;tB zxU9W(dW|k#do*L-+8i9f&LVc+!o; zg!M+|i_%}*9769~{=4{^Uin3x7rdf>x8Q~0_u{Kk-zI$V2|y5#hE=_iYwE46Kt!RKQ*a-l=BNJ^!2_Gd1TIqXX5dm!Zx#B``UP z)YnYTH6^G+MLaN@ZO4cS>QG-poo`Jr`44Dgf-KBCIY1WtV*+|SX6M5HV>aeL$1p&- z>W_iUwP~QK)5Lgyb!%?zp?}blZ-9qK>@MtEXLgu3_~&?&@3v{(?~+btUuaHZaf6KS zi+rsTpt)>95gK%*pDr?na+t&JJ8p zN&O_l`l!tpVCoQsg`Oprq|li(hEyaS`rOFO;q_tJS|MjZ_mCn9^=a_ETi^F+coDWotFN`G0^$vok(d4wX09{!c(< zYcbPxcvGW1#hRI#bC6aX*!b{Ve(Zq-CFs9^{f0VQap06Ne^s>yt5nbQywSLPP=XDT z&Q`_SGRIoA(n7>nkHq{kIpx4u!#5lK!{oUGV>O@th5tERbx^D3n~VNw5`m8p|M}D8 zt%F((-x^GtM}ts!(&~Ol_!sm-st1z zvbkBYe^(RH*3S9F!lja7rQ zo)3Q&P1gH1qo_QY}1sikk;UW}rR-H1Q(4v-dgsLud zKLiV#vL90NN3-*`=`5$*^y=L_So4-D;tBaHsj_Plu$+^Gb3_SwF^N?RO<7wYHR~YW zdElp6zej2O2Q+`3wth@k@`nb#gK;hW-rrXtoroFj?$phS`DR!L3{n zRWk*-O>R6r!2igThC2YohZby3%ifx_e`<2NhIvqG)?NuCHLIKuu>qv=)b4SbyUdHZn2qX-`>2g510H6)6p0lWf}; zqIdG5=*C|3x9=-U#O&ejf%xpnW3N&xY;9|lbgWqNsaimImAQ}7`kf(bM(EK67Y3-y zz>1hP^&&;Z9P zdFIH1-g-35<++|4110TFTZ)plcScP#9i0|=t61oe;)7T?cQtxzltGKTA{V=)yPHeV znaHlyc1b=CqGajHpy#$Eg7Ec=f;e0~-g!G}co@1BH5?{N`?%e&qgX?m-6>P2!6?~e z3~)eAOFqPi@5GFeZ-X-wQ5<2RRB?jlK{9jjsX5)Xdlq*(iP>55FZoLs`iH{p-(!v5 zKE2)nv74_Knm=CpBBnuk1e&ES@$HH(Em^sV&Y;iE3%Wz6jy|H9cfBu4)lE^L6)ZSU zG;syt>8-hr8ymS&k8XxE_WFeKzTF zo!ex+rNGNNjx}~}V%=kqTZw%0rsZnyO=-)4;1-D?t>CW`Ln0x~5?T||H)j;IXUs#h zJ>*&V|AjM>v{T@BC$1?dT~pw`HmC_;B6cI|lP_A9P9)f|WdBM&<#XZi0hrVgnJcdG zRc5eTV-piU5zp^di_L0I?#8iKTW_GU%Hq1M>%uxoh6+pFwT_u2WfPXbI0W{aB^sd!eZ z{gvPrfOV{*g|0PhR-5!{*hx0g8Jg+k-@nxPDRN3)iFOq&jKupLse44`@<;Aypshe5 z(<}#e;ZAw(&h47<+cEvM;}a+`Xk&Vmc)cT(JLlj8-L^V^qA=Aagwx0}3-KQJxu*5q z(BgrT0_OYzuPh{Omlso{N6_z<9UUIYcPWPK6nOi(DG*nXXj|)K>bjVxV)nL^3&$#O zu2%A2FY~fg_1L5nB7Na~`ew-CXa**-#_q`%O$t5*A%-P_2UojetdIEcxYb4j&jVx1 zFi`oo>g$fMdnMp17+MG(`1?EVm1>5KeY9&XnV`Aa$aPr;j5;FG2n;!n>gGAIgvo}w zjS`Zund=@K3T8f^j=t1$o6~d1+{iURXf2{joumz5e2>ZwlBbSNt+UkuK{d4Jn+|mq z2}Ki!Bg9=ZbmdV;r`aHVe$}nUYjW*)*fDi=riUBY?HpNmAnY={=lXkaGM?oh@$?q= zY|k?qw=?F4HbWBkZ#Px$fK?(-@`Hd0ZhfcUB(ABcE2CkPG@b5b*DY;tpST_~6dl}k zbW@>n4Q{?ElYQ0yc)V@P{o?#%%EzHl#Y^js>ql9ej`-w9{nri^8aJ;U;jGEde^9f@VMbz-bhU{furE>RF@~D9ElDNq2TSee7;mY+HBoR9Khq6e`=W?)7NI zyxZ74dvnB9WNbxwT{N%Z%w_~eWOLz3QRh6$2p6Mp8gtNQO06RAAu%&;rWFSU@Y-|h z@drNRM>BM8>EUgcBpXaX+x`Tno6?cgEa@NjG_5;yS56Khe(doy{NpY9x~KYJO1@7= zgOzd^9U7L;I!%)d4RaJZcixSf-%@m$+l8|0=aAJQ5dVZco!%gL>4RprgPg)@neeb3w>V?wLA1 zod@Ehn{j>{6WMa0$!c~-;Wyhr4B3SGb@m37V>(FU0u`h5JH`(kL~v|zN`Q7Y);ZOu zP`ibj8rG|+bCG8Y=im=}nlH4R!Cr7``F`2#G2zFt52oCp?@W<%@K%n0NUggn9OZ8C zT`DSz>DI$3T*g92xn5S`lfw>*H#r1%u`F=&VflVHhgplqja&KBxWF;Dk-fa`e4s4v zFt2+Zg<(sqn;f@-xU~~HJu2?KF>z+~%=fR0=gRBXoAB5UZSruD9$ds^@yWdxF6A_vo~@$5Tfac+LvG z=%ALeQj1e}Go=m8!6$s2VD3NY3`qHJGtZ2!f!>p1@5ehE9kI)$tqi< zSjCV*iLBJe%po3=ULM}p(BjBpzc$S-JR^7fFT17%ew*jsI<@gYZEjswJ>r$Nj%R$6 z-Aiq;SmL7Nxw1HX{FLL%mGnp4dYd`*ZSNKRaWdm=#9hW(YzmF>w)SYc!1jKIP0rac z=@H;1nbMg=g@+;3%ABcF;%T&qeci!rT?(8X<%H&hJdo@1MJ-O zGT4{0<9JW?=-)nlGmOgbs+Qp)nhr^EZrv3+=3&2H(O^`*0QZt3ku=6Sz2d916B_%= zUH^J9D7gF{)O0vbR)BQ^w1%$qn1=PW{U!Tz=vC#sQC<4B)WYX_j-2ez9~pY(z6~{& zvrsRxl=vJc2_h9QE~tYT_U_L4?ZAU6XF>=0N;NrUPE(p!L2&(Fv)gR2WLU5KtuHpg z^tL|9OLTWG&5u$idtP8Qe=A%WzSl#!=N`Ey^PR3XFW*kPek<$W=iFlNqu}K30QTdK zTI?HWF${mV+Z>^DSKLWsW=#lBEafgk_6%*_<|2NUFd%ttEG&6ppBWAuvJZ@^{mF716{?Pe~?#)BXf5{uWI%w~CmoEn)D5>wFlXgSvG2);W>rsU%$wIU; zZ@<;4fjHsX)9rf8HFl|L$1OXadu#J_vd=(sShp(`9z$~NEei^(qbrovDN=U?ZYp{l zmDvDn$JO(@4G-uBoBPBrpQ^IsuXY*3!628P(_e2E>c)>zB~Lj!f0fn7WKX&}<&DDa zFX*oE(ER;`1)t4z^3ndGny2cXBAX~Y9!)7bEf z9P~)EqoFH7kb;Zb4Y|g1i~V*Q(&o81#_$^`1-T`6J54I&eD7^IPrQ@vH?T@Re(XTL zMmg^vXPSrlcUPWxocFhRQQ`SOQy$|x1Q^dO+b5l3r*Evb_jUqcR}=3p2X+Xvzi7KG z%tyFRPe`{weIupqu+~)7*12eZi*|T88&jjUbv;38OETVJj4Q1w=EmtW*isbbhY23~ zP5*}hqrn`4$1~<&R+z_A3O`Cz+9KUMIZP1fm2Kw%e=T3$-sdV5SXbnDUXG`)XtVU5 z+Y#MDlZziVIi==n9jm8(h}2m#6P$MM zNT}2rF{R-!TUmwX>^ICvDl2!%Y7pyM=$iH5QgFnWZn(DeMoCS$4>usb?fms(8TG1O zd8Wg1Q-PQ*Ad2RC=`|V!^<1*jYS`EX@Kqi=StU|tp8fvYA={D@T z3>);IX%k^Z7|KEa1h<pr_h0N?o6`3C4_Jsy)CR^ir#J8INA5|FV72Dg zKlJ?ha3DLPA<(bbGM+V=@C2HZY!Q$Jc;#WTIue%m6JHLCyZ3Ks_aBMZX7$Qx(wu49 z!$;2h{S(@4Qk>n+vethef5EeF5mOxfH`&2BM#n6O&2&=kQ5=}exNf?zF6%SAUkCcI z_0$3VlNn2j%$Qq;;?nR9n%wQAvp%ecMjJLV$#dS7nM^0P+-6W3D zVsidb&EEX7PZ3xH`e+}mFD)o|tS|X+nQl%Jn-y6|@*bNTU2S6AN8X2<)E+kodH>V` z)2!$(!c+RGLnf-|Z^GrH=hgoO=a23l25pGGC7eI9I1HkSMpxbRk)=DkFYWa!uq|yo zk;k!n_iWUE_|y5L>ILa)vatH1k%gA}tZ+-+_4T(Hk*|d782-cKH0Sb@L1CS$i}WXZ zo$|w-i^i91WN4ko-rO$cE5xAM%v?(lomKF=BqCZ5<*of4lM*&4UbtgaYb=_NETpa$ zQDyKieek#!!+XK+W;XYg4!OYsn(Bn{K^ZGuHg;vw=i-dz(UAA_=HxZwp?otOMW^Q| z8-SFFCg<;u+l-%sIR0IDDbKN87GA}%T@${*LA65>)M)%PM_|9|`;g|cd~Q$%5b9uZygbn^@aoKU6RyEKpehjP6l-nW?nTbc?n-X8y~% zR&TNgt!#vL_lV8u;Ox98%B{a-Y{X&nAG1@{=7cw>M<(PQL@5%Q_L+Aa-F;@79i0#T zH>J=A^c%FKN-}M%zU|`9o>$n&YDu!!DgZ^V&e5QlHNCR1;e(B}^aYmKgSqwWl}~t< zUyw<1%V{GX&&x;84jJGIv+GKaSe8~E)i-yu^gH`udBwROFYuNhE*)xb`|MxbV;V9O zr?qsZdqX;oEVnqzHrrPFAA5#2Le6bUuZPMhI%u^`a4xivooSlGj0ZkV^4c3y856R( zF_Cnld}e^ovbM)dt$ycGdSbMbaTs3eWzRpN7#*Utz%ISewU=1C+1)b(36oMcGa}h6 zDFl&(#5&UyndZ+PVW251zI99hnh*>vHeqv**VL&TwKFcAu<8#duG`^F#n*$tYSkWP z3ATMyd$7pT!qr3d9q>uANWZhPqQRb9OBe26e*R&-HFr_t0Yj^zd|h|UN2 zt^s}t%ZxW=($WfGcl!Ls6QBKL<2^RjPK`ZtXp!4Ba{hku#lXeOq=mxcfqc&)vHS1m zar`jBPlTs|pNuYBH+DSNd^UQ)frasFAY=VkStjs8lA*}*t z#;Q6(l7Fdm=OwlPrRO#6JX4qU+IJk~dS38g>iJk9+7IYbV(*es3l> zvy!#Jt+U2N(Ji4<;jn>0%iilv0(MlKtlrjO#4~l=MRe1XFnr))%z)tpxi*YrNVSi+ zejnZOS*ETjf^-(_Q3sAC9b&po9n3C#_T?z-QNF)7?2j0M`zlx39FH-#h_E~OvG&uj zYAE?CW7uEX`NFWj6aUc1J?i|bH1~#oQ}#{6|2k`{!sgLpp4@8>Kg#ptYD{fI%VZqm zSExw29qCm8cbea@0I~Kg?l4Og*1j8UYn%(Way04feZ^9^{crSG3k1_tSz$hfS)rXW zyCD3)I_mjxoZ`CYTX(E4?^%ZnAI<4L-dG^}ulGLq> ztm~wvN(Cn|H=T147RpJLpIK$E8*S%u^{3tr6>)a?+&gGj`<;Tt9XFfw9Sn%pl}8iP zlH*Tq5mIo^r2YS}U+}rP8YAz8`xj||tk-Hw0A6}RReBF9jY9loq6MyPO?rK7y6)cJ zh4FWfVJKTnTJcEIZhKx=YiRF}eKLXDxLuF4X6}-p4E+Kx?*?q4{oIl`4{xq})~xLB z=3*h&lAFh3Z(o({tsB9h+uLw^+ZFMJJ4lW$&cnS+6fKO8W3tbN&>G;qR|PSz;_{Ko zRscs;nz=#66GxW|=}8*WS-Ue7t=Mdz&a2&%^4WA>P~8*%d_@BN&Wzh4+>?hj#NSXz z@HZ;@MzfNTLDJ<;Q=#A9lvZH%LPcBWyQkl7tg~D2B}R2|TV%eEj_}#6xLhYuRejwevtOy8tN3!AFyC*77^j2r z%YtL_zdNE>1(jAWRlC*JU9;Jz@#veYf783oX%V%U`$FC7ww~{&HxlKWC^0jbF7FXMG#{z7inP(bc&S97!SR{4y0I}eO(M*M zoB44Msz9@J(#2#w8Nerv?|AO6{+1oMR1$i)xJY5YozxoeudLjawWoKhesQ{frTg+q z<(=QPE14?8mscKm&a9jk7(|#!(-xN1CUE zZ2y3Uj+mw*hN<Jl zC*)rdOKF*}h{Xl%*BO$7cF&VC^VO?3mRyCC$V zG@-_ZGi`63y8Xhx%k`I)UL1bXAUxcI!V3k|CAQ94;}gw}YxRALZcy|$kY^L4=4)PQ z=WF@>JNO7m**;y5F=!c@1dc1#TE(jUS&rXtf1GIHqhTAksJfwjS(}xu+R#>)N3^U! zbOGJ6!TaLwHMitNj|S5N-Qxy52d~y`oV~N?P6s8=xHn?F>}Srpx;V7SYh>a^9a@>F7mte@k*M1Zt9e&-P3rx) zA^TOOh?_z?e!ssFcr{zjm+;+dons}obpN=SZ03C3i0ARB>IeVde&_BA-)r@~DLTpS zY%%RzqQ83SyA<=~^cLSAvAi<(<_m5`lC$4Os);%G30(Rp3iBl&opNKoQC(hhB z#d>VdxF@c0XgYGVx!jZcECV6g^GHn@d4XOJ)_j!hE*jCx1pxcmZ`1-`f&v2 zy5(wFg;|+I7X4sm^jZVdk{d_U!3~elws*Hct^;>kj3=6Vh|s&T`%in=Cx3XojAi(! zV3_4!_KMH&3d=uH3OaX~o4%^e;*&khU1Fwi&;a#mf?#%78t6YKe0Izxt6h%-?)8m(T+5@kRRdPYgUDh(O=;BWyBYsvI#Q|NG$I)X(uZy_s zV%byY8!J!nTRu2ckNqH$@c6W=J?km&Yx?{NP3pzZo(X1ZUnTKPCjQdqzO&C)jnVt) z@~NM3!;?{(=V|(Fk;!)1lg~3P?&!oNsuJ2` zUK5_{wkgCl1UHrZLkTS0shm^aeJ@h~og>uh;rNTdJJ+d)uv_j;Vb%_peLuL|s4F;a z&1$C_nDw#Xo3otoV`rs*|4y~sb-fsLUluP5>P@ly;eGJ$@m)d1lLUDyv*ynleRnRj zM9%l)RzBS5Jsa^98Fhm9ZvLq|{ZnyFj{~0<+nl4AU%$s*?H+0Wt8-Xf>(k3?A9>xi zf2~C<@?F29nId>HK(kbcH2!bn^J05_+{?}1k?Hr@JFV|ex!2u&#`W6cwP^Mwtoe^u z7n~WVSW9$1wG`u%-YdW2l$JRi%V>V?BWom-o$s8nFwaE|z6{UO_wC9G9Ul^hBdGHB z()IdFMZS$+^#*M_tv;8DI&MtIJd~(1o76w38<6>QO)Edx_0a{J4=a}cf_|OGMV^%y z;(7jyOVAx=i48w zb%OLCY_{yti4xV(ATeFKaHT2|tV~cPdSNL%mdFGpjv^faczL z@SbB~(fqon!|StGUKq`NN#lg&4>kCd4Asp2EJt4HWpCGeX`0*nV8qh(!6gsL;GDbw zVb8Uoj(cbA32^ux%uvauzul5J^5#{b@yblN8g1>STVcARI}}grJ1~jk$V;!3b1a*WCbl&fKpV(6;-6ximK_Qe&|__vAtEuj(D?UxO_p&_-0=UkRvUd*x9 zSh^-E4ye7|GB7M@t#-vd)be0XRD=UQlJ!d5Lg(}vk4sWyhI04P&vJl~P%;g%yY4A!@lm?d zaqJ~uhijpS%DaVUTmk|gZxs~Be!%_dPVJt(30>Yn<)(F_7A=cSx@bg3&Rqm^pDxZe+o82C(! zK$t#Eke-iNYsx`>lhFWHr~tYXQQ(N`h$$ zb;`e)A41{b4SyZ)dn8E5eF&d=rHQiDTQ3N_1pT=91H)>Rr~X%|IQ{H~Yf1WaFTbhD z=ulu*px2FS6M-%!8N8l5a+9`8u}|7vU4;K?2i)_?{R(`_^{IR)DcC^nClTk6-^$9G z9tQjjVtp1jyJ8;BJNA=MXAIEpHg()8#?6$Osp?lbVpU|ut!x9*qBe`XiZ!VNgI6yx zA?}~YoHW&|6RIAT_v~&DtTiRnk{Ggo0@wbow<7>F@MM&j_c?JCvQp#q_-nDSJwN} zu{3_hWzg>{p`s?jFkX;))D!j4DHGMSF_S1r9c4b)nSbTo(mz`F$Y5G<;Z^2KH!*{0 zwk{@$bn={c+u9$C=cHzigu5fkcrldKoWzq2`y*EfO{8TwUNimuWzlYU>u!)A2ll%m|ARX(RM-uLPF$;QI-M%>)cRW7So>z0 z(Z$L0KQuqd8XEZ@kBEH650^h>f&bVq4xD1!Ln;FEV(iuq{y?zr1L-B6xA)FG4t_cE zAeKP=c2Dg?;tTqC^K?uMUGf4Lm;{rKm_sn4O;!IR734k*eAnce%c;TfL;?_Nzg z@B66Z7jy2YGVZt4nH;fjt?{Lw+-mj`mrs}eE?i>&dYSEetn&AFxs`vqEo4xi-{>&v zDJIp}{1E;`VMsr5nwVsL*|YdWTG4vse1~&vio+=sG25XjJY2N@{q2aGmQnei{H`o} zKE0p~)L#qWW9+ANHZ z1+G1p4Y{g#Bjhd%#~(SxNoI|)b8#2t`v>~`+=z5wIGj0#Ao$4GK|^c^?&l=;w=UIRjHBh z9=9x?tcf_?TI9AG`t0$a=10>v^9-2sZVBEuypxs~`Z|YG-EP+_^yW@gl9JPVMz8xj z=V+(v?2jk1-fmj(=ecBWlTBDZ|LJC|!ot@@N2apf=kirv_DY82b>@PpAG-`qq=}VL z*42>)eK&&ruB-*qh9_FZdChd}WSUm;Yl#PAx9*mhBL0qk4x5jjs7PWvN3Klb`g>;T zT+?;0`Cla_2c}MUc6J!NXsKt#N1s;O>{c@TY8kC~%6MmBdA;H0za-AK6ZaS-nJE{$ zDk~6|upFnpZ9kj)eCG$hDxcepKm# z%I{OP(jC!h&o?*hK-J)+Ihj3?&A8K2ze zZ%S%*xO$j^n|fiUlkxe!#8VL~)xSlGQ!6%b{r>vh)NtJw~ia z4?kFF{HEQXdGo~KLU-;=Epo+qgb-Gp1o@T^QGJ)qGHu0uuV{pUItNi@^9Z}2xt~;$ z_DqIK60{tG-5K(Q7`;9<1N_g^NptyS?WI^gH zoUSI>xbDoZ%=PbMwlUQXF~37b`JmTgupEwcR@3J99LAqeP3+^U9pZj(oABfRJ^8*; zuHkLfd9SGN39?Q8AFVRXB0+9=In+IOU$d4M>!vczKXC=;sxoanam8$e^Lv7`%FTj` z7Y}Z6V;p99i~jCy1aWX9zqbbH%;>ChLdkzW$Q()yh;Q)MOE>~jUpU08^-gNp%NV>9qa%7+xxkPbR_v4x&>RSm3q&UA{3HqD(j0f zRK@7K>yW;ozN4O_X>OCFKM{9xBlwphc;X`XMk07?A_Vr|-ue3WUQ3@)UqPQ;-)i6O zzQn$FedB%def53beTRLg`h5GI_cit1?Mv&k=$r1l+85FHwy&@6NndFnst@S9&==Tu zGna?)LHOGTk*M4suW~hw)r^gdm5ud`HH}S;m26+Fy$u+6p!Zg|@IfJ8NYqgDQ20>P zP~=dI8lHrn3l97@zl|L$fR@$yvallRBa&Rv=16(Cnz4le@YgtuU!&(zr zWl%%*h3re&x3VU+?`l=`Gk7zkGEQe+%jC}B&P>nL$!yMG$aKqC&veQV%t+2m&M?bh z%E-@b%T&okWFY(8m!#poTNwkw3j7K@3W5rJ3c?D!Xc5hy(4W{yY)nxUzZzMsO&zBy zswS!)nJJoy%WTd}%HV?Azyk*aw~wXwv_6qOUHH>mKm9X#;0Eyct*_+?`z%oS$kQh(;ue}r*@~#%|Dy32x^4R&GyYsraw#_OzljaL4Sfeg4%;R)&Hn>sJE+k zcK+#n<)e!0=xp!o6#OIDVL9tBH2XqpPNRG7xyYQP2j9}^B_$6lj~gC(9ugid9?Ufl zsyaDQ+3(sb>a*&j<@IZ|YN1dQs0!2ostq+GJte&+sgevyFF+ko9aIGkNxCEr(mT>~ z(p%Cik}>HeNuQ)ef|8z*-cTai+Gpk%QC0G9u=lj1y)xwHl4g_UpdNu+-?wtd1$H}i z=1gZ#dc5X}2$(aSg98o#1>gd(02Ckr5C9Kg`uG4ka1!_oJOdg59v~Gk2d024KsfLQ z=mj1FB>)nj0*t_SKn-XI9ss!j99RO_fjGbj7y)E}8o&eC2hIXt0cD^C-~%!ND_{<| z0Ym|Mz#t$2Q~)l(Hoy#o0Ga?15C#eXdteRV1d;$#U;Ov8xR8+0K*o40&AsLa=|GBu6VjEszw zjr5E(jZBS{;1Abc1@z_WzA7xpEyxVk8`2+oGo&}9Gh`t7T2fc?t)#x>8%aG$9Z7@A z*Oj`JZ!7gH-&E>V>QoxIzIN5E{fX>wxAN^P)X?RB5E;c~C17QfX%LsT^?=r)YsF^u zlwH^Vr@57ZReWheXDgsrC3Pk0h;!(9Ie^eGK8dZr3MHQj2C_L&jDisxuDnWfm<)Y$H zHK?zsOjH!A0u_QPL?xjbP+w5#Tk%_XR3xel6@oMjaC`lnN>&^LHvpl6_CU@-hT!M1KR)iv+9VGtq@k!v|vG3YYjGPpgk zJ;*%3JQy+%GN?JAIY=BJ4hjzl4;Bs-4%!dc53UWY4RQ`}4vH+jb4iqiCZ)LMUmH|g z{!pPZar|Oj)6335+Y)5;CX_i}GYs;$7*6OV@h9a{vM5EAR7x%-lTt`Yr{q(zDLAea zt{komt^%$!t~{s>cKsZe}PdH1sNH|qES2$C+P&i#U zUpQMBSC~?m6ViJt{_j=c!6(AQ7YYYP%cIJpD)h?rDhA63D((L!K26jFX3OnuD&r=gObit8xsv4ramY;B^Qun3t^=+zW94 zJFq=~A0QZD47Ln#21EcXz%~FLfKY*{*s8!)5N)tF+ctO`LI5UUD*zWjWW%y;v*FnY z8<>r)4crE?09&wKfG;4}U~IN*a5h8?EXFnl9)mD|8Q2=Y4G_byVcTK&FhU9@Wh(`j zLR7)3Y^&f^2sfCUtsC48u?yR^-G%QWSYRx+EN~V?7%a>-3?7EihH2Ys!?h7TupZkU zcn?ApCTc7Cp9U~6oGlKHLpZ`5Z5`o`h;`Vy?K*rN!42cK<%V-3l3~fV$?#-^8O+Sq z3~q)X!^pN|I2oY`Q?yltD3D;v=p?W zzNo&ezNEg=x!AefxzxELxG1=6x#cgi^+J1Fqi6fM=(Z%94{e3Mf!0Gypk2_+$8`%U zoSxaxrHW(fMnm+?Ow3fw49v96%*ap4ugR)pL-GrwRrYGuw=wRggEy8QMc$TS;3<+fZ~MDSLNCXWMk^B>FXXU%J}?us0_VURU=*ka4uTS31?U29gUnzEs0k85 zVXzRi2iHJOFbOmTCqMp(B?0Av6IKozhJ6ace98*l++17kn~a2S*Vt3Wq! z7i0m$Ky9!G6a{ghBe)K7gUO&7NCp)_g8zp<{uVj@){Fk;vHn*7{4J~fZT4Qi_j~!_ zcdJlqL91QsYU}OR#MXDM4Dioo>C_8qxZ;wXgL_ zYiTR06==QC8rXU>-TXZ7gRmXwebla#7_R4HEhq*Ai-aiv71Sf!NfBUka- zU}USirEjmjhB!ZaWC)j~fTd0PaID1^JFQjMlFjnhO>zHVb4vru_>zQ@x{`pB?2?$0 zs*Pt$sfz&)|JhhhUPtBr6Q!A;V)FLXDil=_2rc%SHCDiZKTxuM(hWeG7 zNsXdbP(!GN)Ff&H^$Rtf8c8jq22t~=3Di1j05zK$L#?8QQE?CAN^@iLa^q^@v03oA z%B9$%r8qo$Y$|(PiA<18zD$BlolJmCwoHsnl}wlnP9|A~Q1huKrRGOXam}}yoSN90 z>KebAjGCV{*Lu}vCX16^I?LS21!Vg^qPBn=)LNEnD2NDV(q zu&x_1ca4uSN!E65qQfTqCN@e<*7kSF3$i+dDq8Dv_;PrCRlhB@W%E*+=Yawk9}# z+WO?2BQrSOa{EV-I0KQ#>EHNZqBX^u;y^K{JW#NpSW)aLmJ|fVhT_Qep6mVu?*xMD z1D73_1(z+CHJ1aIITxIZZ^DYpp39O8!DYkch<%TRVLxE)uohTbtTomFYmS9ut+4i3 zODqCwgLQ-+k8Oi~fZ9PVptewJr~}j-3Wr)j?V*-X1k?uVNP16#kv@>@NERepk~PVJ zWKM#UtVs4GOA>-)Lvn`id6X8TFqCL@)h#=Y!MLDg6-wVTpKM30iTL{|)h_L^^s{0PGCbG6|EP#NB(raKviiJg`OB01e>4-{+1QcmTNFbCzAV^mMDWWJP zND)LSB0}gGP>M=Xnv?{PE)o&~Lm&RQ>$Z3I-EY75`~LsB{_B2n&vWi`CS(qo%*>sf zGe`-f9a0+^gxrBVjg&?@BKeS(NF^i&$%QmR9!4UOVn{er6Ny8zBVo_piMqrRWv$7* z`p86;{x2oIFMP`b3J+e)=s}s3`IfL1=pkD~%YDmoZK`dm;W%rYEzSl9U$ zvs<&nYnQn<==EwUDiljSxK9I@vbaCK+yJZDng^V+HTC?z8Q)>4U3TtJ$jAsKJTW zL|dW_5$Usz!#cw@!zKf6Z*6aD zZ(|Q<9v%(zY=&)y;ksv%ZFFsQZFJ%F*7dgaHudn}GcMM_hIvNAw!t>R@Ga}DfkcJD z+ukLG11W_@a-SmI2kyHM-kBR9%ngP}3?xVxx%8KQDjg{8FCD~u!VF;gF@uaxi~&YJ zW030;*8o>P*I@Lg=z-||=s}}TMgvCuMuYD@y&HJf|IR3R;P9uz1CC!K6~4YUoqOLt z*YM+7=w!K2cs%x+(7|LzD*Q1oLkx1C%C8FQuJAp^zvas4trP$L2VEiP|3sSIx?CU(>&) z&mnNP$u7%-mUDJrx8XV=FQVq`=G*`efC@kW0)PN0fDTXx-~kZW27~~5015a3$OJ9} zqrg5O0k8l*0LOq5z!RVY9KbE$EYJ!Z1o8nlU9ZXul9v@&i32w!g-^+66UaG#T zo~k~o7*)S=bh&rASGjMwXSq)~rrggL?dx5Y=Gl&Q3GJFQ_LkMSn+|c2b8*S*d-!=# zW3&Cdi;&AJ5%0*f%Pv+fDW$2U)umCTd8Nsv#L~FZ;?j)Lddv;XBTPJoIpPHK1oHq> zfeFXtV3IH|F)^3|Od6&J6N<^gBw}7*ZeyNeQZQARNK7u~KBgRV2UCP0VCpa-m`qFp zrUY{flaG0bsl-HJ9%Jrd$}q8*LQFcQ788ca#@xk}Vxlq6FsYboOcW*$lZ+u^;xNUS z3`{-a2ICPUp7ESd)qlOX6$YLZiUNCMmo-$GxRg6eR zF5^Ci&eWt1|a z8P6E0-qnn1Mie8Dk<1`6;uyt;D_=aTc>1ie3R#hhtSq0cD4MOT6RXG+t1Qus)_kU! zs#&cWrJ1LhtVz_2(=67^(5$b%QT?bozWRCf&FUxB52`Dw!>eH zS|W1~ag$?*V#y{$CgirEHnPHy0=aOgknBF>PM#Z@BTEcPkbm?`)1;)2_*V0g z&r+`vo5`)@{yCq#iXe}A%^va_2{b$T2ft6`p7crTB$Y}XrOr?%sB_dY>MV7NIu99v zOhd*YUm>3%Um%kZDr6Kg1DSx#LB=4nkSWMKVT3SE7$BpI*EZHR+cwoUuP~x8tuU_eRpGP37lla$s=}zkjKYM% zoWhvGtiqJSeBnspbSzzzK;upQ~xOMD$ zz`FlBjvdP$!0ykEi^4_)MEOVIU|3iH%pZnp#x@5u`#0m{uyO%%{&KiHY+gW~e;&>S z>k{DN?}D4cP6bT)PvL~HLIFblLbzmXazL_wGR_KX6=3CWh3mui1@!s%;nc8d0c!qg zI3ku9K=dc#{IGrje*S*AW$bdmvi~xU2g?({iz3+!Pww{VE8hXY30V;DMY}Bpbgj$YJioXKe!6Af)Str_y&|=T3SxbT}A-B2VMYsKozhI^Z}PZ zZZH-!0oyH<9 z1u-B4jI!C6oYOa5zR7LIggA@KuBe zt?2Cy*W-UpIzlQST_=4diIdVumq^bVW{qtb-Nwfpn9F0bwLA#=@(O9%T`YQT7+8b?*zK*_x4n&_qUqPQk zd!Y@{*U+};05lZsjJ}BWMVq2M&x^ee7boUib%Fs`^>aj7D(;#9>Ib=m9T`;8lv-#2I-X*hnJ%ZfSg7L~_p z4|Du1w-uKaPv5T8%eYVbd?PPdMwKjYa57>N;tAeWUmq&yJ2imm4}br16zIFFfdSu)4~S zjQB40#!R&OkV={$Rgemy?xTuO1*j5KKB^d1h$;!$3lWC!L&PDx5K)LA1OnLy5rGIm zBp`ecF^CXElCYN`OyDPo6L<-t1VI9Xu#X@@5Fkhp_y}SIA%Y}gFG3i>j}S-jB192_ z2nb>yLIfdzkU;Pu#1KLVNy=V|FomBYPT{49QUoaw%07w+MSvnf;iHIAgea0adv%0$ z_;ti}cy&Z|1a%-f`*cKf1au^H_;kc{gmfh9_SOm4@z;sh@z#mf3D!aC_SK2h3Dil{ z@zsgd3DrsB_u_@|{CIIZFJ2Tch=<_!;YIKQcnLfoUJNgUmjw5M!XQ5=4)TJcpdbhV z_kkjy04M?SfnsM9#1AHjx+OqF5=3kgBs3Dl{1YTuErbm$#M^k=MB4=0AZ`2FMA`(} zB-;4e#M*?~Bo+252rKX_h%4|ah$;vwKos^Vh$sjsNGR|rh$#puNEYrb6pp!xd% zYolwn>zM0Z*DlvmSB7h}>pRzHuCuPGu7j@CuIsK*uFX#liwecY$?B6oymmdOtnuZR z?`_{Z0oeyF?7JmRVtsG1WszLvMeq2=<{DHRRKsxkI4I5l2V2))hpro}!`SuNq3j0i zuqgc~Xp}(|45kl*!VF-rX8mSpvq3XVPG1fxXCMd5)6awE8RWrS^j)AX1}?BE{VC{_ z!4ynLUkEB>AOuU+PlhHNB*U!qt)Ny0RSy2wTh?EOE*mVvc=UOoJO(_lIQ=+ioIxDSOy3M@W?%;E(C>hD7<9lC^%bFt28ys^ z{bFdbK`{)akAk8MP_TLZdFZ^sJWNtw5-MpR3CqyWfMytE!0h$yq4oy$Fs4Bb9X1$- z>FVo3bq#c3_4@VDdV_jcuzoN!*dQ3TrN7m5?ntv?L6dDkGxU1X#p}(cUz-qLoAtz- zEX12jUzawOzA0_Syv8(P-e8&;uNh5@H;iVk*IZ3pZ@8MHUq?4Zzlm-(dTrEX^v0<9 z-RpNv@7}y?KK%M{ljCRTkYN;YL5poDMgd#$hB1Jh$k*BCr4p5XSM<`m9{gmUBLzEK~S&Ayb^ildgrgv#U|3E*+bTB>XbUFvq$2?1Kr5|LvnQrtM zx(L(Lw4wLYHJHw(KYf+X%Jer4=x^vUOqbJ%K0y~?dYu>OJ#-bON`X+q`(+@pOZ=_2zT~SB+7@d#ljat&X=t@k76hmjw zxtKnw5&a$gFw-qX(r4*nOwSZfAEawCol_irozBkmPhs?Cx*XF*b)iqug_vHd6}^wH z#&lHu=*!Iee8vGIuQOY#&C-X+E~x7F^^VWp#Z?AzBADtU;$RXyizJT3V}RJX1g)grPrY?6%$>{~Q46+W0=IP1s#P#~1N z>!NfhS?RXr=KLx07Fqf5{SVsbVy}(gW@^=w#?dLtU0J;w!)3CYeqC@(;8xN>yP=25 zT@rqU4~vvmgNbEjO+MVNci~&Yj!^*ta^7OvO1Cxcr!PLgTOzGFBjP{P^kR~b@HEB_ zKGWZ7hm(y>2mJ=&E|VALHiD_fqSI9B?A({sP9=&p5xGG#Cw|b(#?H2H)KDH$g=g>7 zoUB#4UG9NgwnfcKI&LP+&x@^sOD-T-_pmt?Tr8AGV4-6}`59utw+midfTLJ7S^lnvVZocNppYVE^nP7FbYX&vbxk&V84)6BHjw_I3?6^yxwLyJV zw6dpDxfd5rK1Stj&7y!{Uv({pHb#lEb{UT>f8bWu6)p+6PdEuft+$n%_r&Iw{7FPRTl?4 zQKyOAWL59MPWL}2&z87lmw6UvHoLYY{0mwMsjg}tJhI68)wg{4=41y@Lh>d21esd3N)d;}hlyJgGL2lVE0E_NqaomTEdJsLh)AA;Yp z$+pJ5C>B9%eUH#q?~)*p3`GlaekJ|qyd=Y&hxZlylGN~qTAiX9?pkDB+a45Bchde* z#_utH@m(9Pnw{P6^EScw=QqMx4;+!Yyp4nFjP=Qe?dJsJU))Gy%{e0FwCy0*8UJnP z5I6WY|A^h2e-H7^zsL5?zeUiM8&Yh${vq8|UA(m;R9))kzoUUpRMxP5#u=%bJ462+ zW!=K_ZTc?WVhy#Hy7}KEVX2$jLjP;pUcmMI$5&M>v)_{^6^J)WhlX}0D@!Ct{z?RH~pe(9^# zDc!!;*vszPTEGxtJJV!Gl(*$^sGGcU+iuE-PEoct$j&LZ_`sgUvDf5=>vnxUsT7tE zJ8#OK!YZ7Jou$rY0QDw%A9p6o#w&;9a2zm^a@&5E?@Y?ce@UQiA8zaBMuf57N_mhZ|s;KBO|1OYZ5@ z?IsVByCyDJvg2$E=VGD?uiY$;o13~%Bqb4MVpm(z+nfVll#-IDXQj<<<7~~gbZysm zD-_n^o*3DeJ`+%e3HI*i4H)PxRLob<4(e(xgb#S@1*I3|TUN*TROiN|c0MjpD=5${ zxZdyhV!Kl##AmE^b4^zJZmxHJsxNnH0hEmPiW~T_hH4~1P+yG?bNDw*2j$Jy3%!~p z_z#k^2dN@t;CkcMG90F=GPYjk*`=o9wwAldL9RV*C)@WCcu@Cv#$G(7d!r(nN)Y#i3lkTzH0yF)i~Y}y_PGw7L&E742Y~dQC3z=FWj>ATLNbkE7TZB z2{8En%u>gO2RHMvw6*LJdt}Fx1L=-2BJbR-Yiu{JZ@-tL)MJZu6;`SXUPNwaeYBEY zyvGsbbjto==T9k%A&dF;8@wz@ERS}w$gs$7JIV2@)M+E@eV^l`A2ZxMC5uD5CDv}#&`KgcpuSkYF9yTy% zU3yGYd>mrzCS@tw!vA9~`WUk?>iDg$mESZMeLUjs!8GI1tDJJo`XsjFzcl^plpm5u zQ;%pqsAW3p$r)#fO=}qYx#1{=GsAKvtzn8^Cr>&4Aoo?~ANY7O_y5<_t0;{bAI)=> zlMZq_8J>RlOUk)!Df%`k^7!LSKkUG!JJ!`D;W)2{9qnUH)8AH|Ekn663n)x zw30#E+6}tUbi=kpHvV@c=?#?kof<^pz$4CUr%dv*J38`N%b1_LslR+S&n67~?ifC; z+Ufpi@FX$BV+Wb7irZU^DF{q+db3t-w+kVhGAb&%%k;m4^R)Byc+i!COWw5#^^Urjgp zjfw`p6+c{+_*q*_omTts?Lb>E!90)-en7$gE(x3ULvQXW8YV4iR)D+W#02mcMy>u# zu_CpIy91_kk9^M^{?Za~c;jh9@uBZ@?NJ=+!pg;nza^Q@=HbJE1r5!I{zSafV=e;t zi=+Rq$Z2{EDNuKD^lxcmdg?obrhkvIRDn7h0j4yTeIY~#Z_7-}O5VhnorrOhc8X4@ zS4>gO{sfPK^!0Z^QL%ycxA6apR&elBu-H1vam)Q{ee5Q&Wb5a1@_Oz~)x}W*R>ebD z3sN*E;yf)YR7jxa$;khPBr)yxXgCDVzDCOll@rj)A34iv_SAyl{j>PJR&FhQ+AnMP z7XELN2>jn87EeA}F1l(k6a*c$=tlkyu&Qb(HyJsNIK3=d)z?`YNmcPK&cuC}0^UzA z{dA3T;zjkpRJ$ThGelGRI%^^)Rg{Y}{kUt9({`ulMFaXet0O5Yi$%YeuAGnC)cZGe zf6@H+lB?b6Sy9`*&Z@{>m6t`C818iB^rh2Nq9^(~D0#0TK$_*P{SNIag6KeRXL)3~%FDt`cW!s2D?B+n;H%KTil+zv z)b2l&4;S6dSyeJ~yJJ!;xvrgc&sNQ!>)vxs&gVQ4lFz&X<94~ykuw@X;IBo0yvn%u&fr%f2RV zbGKlfXTQNe;T$C=N$uc-iJ`@J^xMA$&jHCV>iNmvu=_h=(w+bE0PxF)40Cx&ZK_J6 zudULf-3Lx%$2GFp7tv4Yu!!D4rOr1J2U04JmEoQ*9ie7*>Sy+M%PuaPe0(|@ zf`?o-GXc8CRoq=rb6*S7Ys*TBzCiCCw5H*ld|7F-Z_#k;(uqohT(QBoz)`PuNT1xx zz5C@c=f%1|TvGpXjRXw4#*{Rficb&tyJBy!@AZ%xIw>sXuDsWSpZbzYxbL@z+namO zg79Z)yR*;A;bL3E(S8Az>{aZ|Jd4H>Uql`%xM{bX+o>2bBD1&P{GubU$gZ0+Kb0Nvq6W> zbejEy=KErwymr7n9NuwXuMAO8dp-eu3zkf=0Yk3{VxKTOa6i>lFrWDOFjTf+rrzN$ zj!pKHLP1*vN$lnhHS`GEo}pJEV(MsVDnU$Rw$;Y0J;1B?ZYdeMrXZHHS5Jqy)(Cf)c}6dIErO7p+p$2qx+6%!t+af&3K z>2SyVDD2bI>zS>BDZdi>x-$p7j0VE{D@Y!YtNTm@KYXJQoEmzbjY@u1D{_c`w*Y4( zCtQWQiP#-bC0iDXco%_H7_c$YEN0DZznruGFAS&8=*md<&0Mv6b^GCI()&z@N%Nx^`3D;O z@5MQt_pmBOh5jVF#+)kp?30hRJA_E)-25wuZvI;YRb^g;UnPE7Y|26&NF<)%BI1Yy z(#0Lex*5Zc`90cBUplFU!j2}Q55VPDL8qPlP|Ha(r{75j4{Aq{>U!^{_Kwh2?%(x| z)#+rKN_Sk9m^~rG|DKnV*{v$eRkpLj(;`Ea1`VxR*5?MF%yr)pEMCt8c#QLWtcts; zj`^=)eXWWqJ!<)WH29dhkbU0WNttvC@Rc;|$~-Qp}H<$Ul(fH|FEaFyl>MO%z+H$rEWZGApK`^9TM!r^FIFBM+#XhK~K2J|45RVb>jv z(coxG**SJJ)Ki#L5$1VC zaVe)*5v06Jz;@(F)cyKXf*S%aMvCKEgCmBXD&6k{>bYo)RQfOBc{7O_w?q!NxKyzm zmWpu>{}6LDWgk?j!S()oYdv~BSG}s|dq%qcevGuIRTH2Nef417fhp7!e$3>%=C;DT$A3hw8{_r?= zOWS|(?aXw*#}7+6*;b~odhK;o*p{73Zid70>(I!ymggcOs?v?lS3m6zeot#=((jb5 zp9_s4Slu)$E6Zf24l)Zoo0ouL0fZ! zd)1laTMK*d$vxjLpO9drVDtPIeyu7;}mF+Gk?s=hIt)7F)lyX37%oO=lRd>=4+`uDup**vsmw9cQvd z+?1tbozt`JUHWo9#3-lu2>O~07mY>2i|0BQ;Yvn{XOwu|p!?g-15+oj=~@;oK}=7fEQN~heQ@@=~wi)1QGCpm|Ij4@C7hoU(0?W*g+ zsqDvTH{$vBdTl>tda{LMm&UdqGJbO`}yxPGtN*SlZQi1~QSM7i@a8g@a9lBqb+2el}HG{c#=< zccpK|qj(8PAC~YzSH$H#-(Dgocs?$#D|)6!T5hpw zlt{@5j{hQ>KK1(V#6m$Yd)}SnvT~@Y%Fd?cJ#k~EPtB;*YY%6_2}K99gRu#GWtc2q z0Be~XQd(cpHC3%?K3?JZ|nG&rQ>wv8XSk+w7bE{hlM zNv8Niu&LjJE{RF+D2!|IegFc9~7Rv%%&Kg}fg3(9go*GDC+(FLDqKD=z#q>7!f{?OC|J%*LTn zD~@`@l?x5Uy!d;6l)QATKiVfP3dw95oDH^EV81R?b9mIQb=BcpO!dlSz>@<#?7Yma znXxcq)0*cZBNy=(@pHR{N}tw)m;WU=h(@LyMr-+rmJQ#+Y}s%H(Xh;0mrSb-pO*<# z)YyOI*BA}v*fLtNZ`k4mlWFzgTQVDpf0j^TQ|`1HZak4Rue#F7COJThPz}tCT`v9W z=*y4wA(l{OD|62N=$2@dGJZ?eKkF>PHBs&#r5hffm)o}bdRCR2W5p~s;^lA6b)Tpk zcQob(_a2BNvs9ivly{z5lrTYl^7g*CO;I;~Jw6ciM2-Ln$PJOyQ^p;&N7IKFsXJU+8E}a)1rSj0S?!EPlx0_}YVBWWN=JSV^&r@-S zmbLG7I8HFESG5+y4W|W7n*SltYtnXyv(kAYEFLp`aQTv0nnexwRZKt)OaxYix(kVw~DyiJd9=oLH81!>0G!eLe ziccfs4C3>WECTg;<<^+ooeXvS?~<7lI#YMmGhVMAXqUU2(dsf(((Y2g5Sa~ZI+0P* zPLywcCm!e7`g15S)B) zUVDKe{hdBir02AMA*%Lgiu8ACph$n!{+Z_Mb%VhwO60@fjpK~^dKYkc`TZ71@P`8L zm0q|I611l_H;w0>L=0H|-2dO+OJ8<#kFziASPj`YiI>uimu%trV=-h*_j=gvP^xnPiw_$K_tv+_kE2|HD{xaY3}a5{CrQCkHk(#U+taAgQH%WH%|Nt z&XcS{_OA|)2+%mOtTo#a+lp^kF^eKi$}w)jT}N{-8#g|PJjU%P`m>-eJL&Ks?DC#S z4R!1uLfF)Z#$PQi&<2s!XMPwl`G&)&&1Z-+H}ubhUOmHpFdlOJ+ZyW55y~w)AF8#EIMI${ zMQU~<*c8K(N$>txoPG88_|qo;p$BG3e-E)&{{={5KS8O+1=~R*(6ui`kJ|3;yHX+8 zSSDQb2CWc@JodBnSxSA^p3tz7KP?2pIZv@>hMMa=kvhNk(5~N#2S)I!H$+czKVmcA z@nl;!%QY62--<6~o@qp|+=}1X8o%e9l=jsf3UKijRck2X?HRp^z{s6v!VjE@>?}PQ z(840}1DofWZ(Z3xX}%r%z>svFGxyxld!hOK#*ZBiv05J7R>Oi|QM@7aife?GwjaB% zW*1_o;&%RRw^_55h(XPE7S4pu)_U+7B4;{3Pr*eG^(yLOe={vK`I#VY_7GlcY z_P@yA#pE=~P|&Iz-fqn-w)qL=Q^2b)ZS{TjiPfwA+F$7ITTmzIH!`7!n+NQ~3VGKtXof=SkW5 zBTZ}Vnux)*)Cz2N@$pYrYP@Y?l1Xd19wy|J3honOdM-z&cSk<)upnnu`F!ckhv)J2 ztd9ohiZ72L#F4wp$LgJ@U20Zq5(BQ$Z3wlh)t~XBA5E_(pVmCHeq_#K4Ka9mqOLZm>iQOu zwi3vQTXG(ayknhE?=k#*w?)tZ{^;iFf_Lpq)wQB$lU3I)WZZh%q2J?jMgPfApnv5} zwpUR-Et}}IwG~>0R?RTjXw{T#MHwE8`s{P7k9p%$;0X}$eg#>*)&r8sdCjTy#mS)< zWmBS&S3ea#)9~Uf#?8?rx$hzzk&&a_<-(hBLG;p%C?#o>f#< zRaRZ_dG_UEPhmdXl9=mpw~Bd-pZviBkJ74E%Rypkg+f#G;FX(jbK)ZpJ!aP#_(XrX z->r}jKSwO^upz(r-j^N*!;Uf1pq{ko~&Xbz7<@^Ox$adXrjw<9(BS6MgUd z%FXSc!*{GyW|;adC!4j*hoyV;k%v;^R&UqWcrgawvA>Z@K(JXh_H=GGVlPVPC-lf) zTf8Rk{j#s=UDS~4+7EfjN>$7rn?bmD*A6_vm02ub%ck}~$%V1vC>2S zK<;@`ZPK;wyf9P{SuxYz;XUP2#ZaoHf9tqZ4;5pgXfB+)YpDc54*0pJ^vK>OCVkz1 zCZTuUCB{PUd;~68k$xkU&)U!67uA9UYo5R@)a+RME}(y-p!b32nO(mKR8bIpgR^Tb z6*|Z7z$UfhI)XNa8-a+0#^B(BDSaKCuf+w_SxK&uxkAPIne^V$OO#+-K+QUR#{cZq z;rgJ;jq*7yM|Jx-p5fp?yN&z%ii_u%f0I0$6hV|6?EWX$7y}? zeZJ{1&)CvEdE;5uxA_ly5?3wnIq^3~@Z^P8(ZsS4zLB8jMb?TM_ld5ykS8)AxHErSnU?|@GM14@lYMOuh zvZk5+HKXezs5jBH^Nh*I!NlIup8JH!Pb}IcFAG)8 z4x3eK{y;rH*~ZYZwGf8m5S4Q=yTtd8t;eL|)p3*$$ch^(l z_uxsXVMF6nO}jnJi)5UV&eEX z)pbsKzckBw>nfT3Ht6`Fla+BVK6)Q4l{cBHke7K=o}|tnx7(vhJ^!0;Jox

    rq_sI?BDP0e-nL*8x@t&h-skBR+j1fD#O`Bfxh=fj zpELcj-%!8xTm###!#|9v@HZRA&+I+F9Tew~$Ddxu&<=_S&b)O9x3xNRR-oG{D(0lF6&?f?J) literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSans.woff2 b/docs/java/resource-files/fonts/DejaVuLGCSans.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..fecdbd87ebc740ac6c14da99b4070bb546a398fa GIT binary patch literal 208088 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%0Ag^QOihS!SkIZ$3m`B{gZP-*Ny$sQxnX+hcxb_ki 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

    Iz-#DUloLJu*l7si^HErGogYfjGt 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 NH|PZ+nE% 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 literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff b/docs/java/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff new file mode 100644 index 0000000000000000000000000000000000000000..7a6b3ac043385204ff9b698a2adb8c6fd4284643 GIT binary patch literal 131976 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 Q=m9nC5s}uij~U_r1B~}jn*aa+ literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff2 b/docs/java/resource-files/fonts/DejaVuLGCSansMono-BoldOblique.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ede24ef6a307a5b22c20bf4fe2befc2b5ad6c529 GIT binary patch literal 93508 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%0AEOXR^i@$7%Li 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

    pSRNOHl*J)SyI!ETTMlX-5(T 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È_Cm!r_sp;O;#9&Qov?!7do# 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

    ;L|np_#Qq6Oq2 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 z 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%0Dq7NczK0<>SFoNBD!? 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ℑ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 literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSerif-Bold.woff b/docs/java/resource-files/fonts/DejaVuLGCSerif-Bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..0f38846c5a05dbc290ed97b30cfb26a5ca1b3db1 GIT binary patch literal 167488 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≪bOFjsTGGS`V>U+|x78XpA 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 z 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 literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSerif-Bold.woff2 b/docs/java/resource-files/fonts/DejaVuLGCSerif-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..d65a5e9566b45236fbf350021280e88e63c60093 GIT binary patch literal 112512 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�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

    ;Y00o8d|jwqbj3YY~1?O1Amh;s+dAm z)kL(UWQ@GbT&=5ZYP}JVx|*etGE($F%f=KpA6t+i+&Lg2z|f{OG5>{Ih0}VT#GvCq z7;O*UW=X|Q6i^E{Ufo#U;1*dM$n+bMTgtt$d;@;-V>&ZQ+^fV2*7xRr)5ziFD#&R8 zSoL*Xw+RkBb0%=g^U)^%I6o7QHN3$XYR%F2W|~Jk9pP;>g+Us5o1ofyxv7!Y3^k}i z9U8`-@PeNI@d^u`@xU`6_>E`0W*NR}ukgD~MwiNKnf=(^eXi^CCvWPf&;4DEjZqPG zHBpgK(bY9k(NR$~bW3mZ6}&w<3}sJ%v<0axO9JXc(fArv3B3bkkFKe1%8@m7kKmcP zi~H#Hb#-@toCVgZJUkp&7RGcL&@^;FIV_v9FjyWAu$kWF!FaG3RyBud;Vxji5N;aF z!2^PIHK#Jc2AVT+`%tUQE%$H>pOxZjGTJA%E&H`5={A$bIsY3Jj5P%E?PIA`d0yGe zaRQ0p7ubPz|#U) zHHPg3TQTzd#CgR?_Jl16w95&Q8hTz}u%#{Ss{cIJJ6E;*)86x^#;!Wi^T4ul4}tN< zQayBtKn^sZ1x>C^muXdaRR``b*GNrDkyt2piJGw#d|_X4o0^1V^z!<07mFn>(>)8O zm9@Y$?>4$A9|qmT%&Bp`h=(ST6|~Q4$jgxlbuq_}LK{Q^o{T1`xAvQeS#Q5_8d!_b z&I^mxn|W55)q};yh$2U18>XG7VXqvt;9|uBW8@7so5|QrY6s|vi7MRly@$t7FZR7B z$D+#TzzxyL?@m=HSD>~hnC+~EH&K>mEnpnsnW24 zmGF;#?CWn*Cb+9uFYd6Kj)EN0`{tVj57UoVd;+043UJj!Z;ixXi!<;qeo5FOyeJAF zr12w4bwRbeTh-SCe{2^3KP0>4Y=4)y)fBDHv*jP9%Dtzd=zb^2A1w}-CRb6J+Dvi$ zg3HRM7sZEMc8*)KvZqyqry*Z~y^`9n$Zu_txj?xNoNd=BmnoOHV8evojJ>h(H_Rdu z*)~TT5Y^-JMLnKAyNYfa*;?wS1=L@hN!8w8ZTrgeys_&n*kXdeVnps6J^4bCgD-Gi zEMGPH|9M3IOw{H>$yE5qE$FXqv>CHSuaR&=%R_Lsqylr%i}RvUjnrbOJGX`-H}yYApw*y|Z6Rf+saP z!POxvd5K_Cli*WEC}_+KEFOE?JJPjQZm1-)-8XV z3f*G6guhrlXIfkB?en)zDT@oXKwqD1z7A^vA?eJuYkgaHbFw>bc?HT=TzpCI*359! zEzlFC^sq(gJ>fifL61WGYzi|8;k7z!@Ee1zy!bmb?u7?Fjn9k43)Ln1F363(0DJ}8 zLYUtz-8$fHQ2z^?)3N^oir$<)El{LsrrypUE4O@x6;mgZ4aRZ|Hys2XWV4`c*6 zn>*QC=~|ns8DG=*<x4h%tG5jX(hE|75)8%#!4jUL`?fmF+4f%M0hGk$CH+r0eC? zp*{HHHHHD>SI#`}=y*Uvju&WXb#YB}0tbYzip&1Nlf(z)dB9h-w2ol(D17Kkx$O3r zacuRj+GE%R*gp)Qn(MVvct?Q4rm*oJbGUjWXCC0bxV&qb{NK@8g@CsK zc-tPn>QlW-J({lep8@LtBzE*Q;Npnr-C^CTz5etT)GLl}J{&BJj?$@xn~u_PNtJ|$ zW*#7FzLxr|?o{l;zv57^*J(*=*PuMJdie83|L{iehUBhMMYd5gKXtNCg%-wsYTgW2 zgRQ+A8*W_+^M(l>mG4RNq&2ljiLYvC$0EKb7AApr&wRf@^j2>CY878>S{k1l`#qkt z`Y9Soxsk&ChFVA4Lxf2#IeUJ4bn6kOU?uFaXjzqZgs_MdoA*`kuYVDq@)SPNzhrb< zt`Zz4@6>8*O^f(>XRXQPA=cE8$0OL_6=eAP)YfJaJH^WaW&X+f`j*;meqm1zzh2~2 zirDe$FAnG*fXksDqRAw*M?Mhy0stv|Gg_-tyL#8{Md4 z8g+f5qM2%XIwE{}%D8=W7yd4!mguO1@|%&7H+KLnKNfOhJ~tmaRFgFQ^!n%#bn0QNh+2qs3e0+1ujv^c=3;;5>?`ryLm|%Xl%yMjt>|e@pnd5m# z1eBdb0uUdSOY8pb0!@kRxU3H`mQx2f<1VRQTuo=KvNBeI_Url(vl&9Vw9CAJF<32V z``T6jPhrz4JIiO)2OYAPgkEOuH*=4KUgXd^x++Y1&$B+Qel#e;er6hKAvVdWap z-J43Ns$12S%GWXUpK6M{2XV&K0B6urRL zL)+4SbVIsuGXgF(#^yV^yjWc<3)}(pzO$AFN1eBV1XzEJY+{R6qpQ-bW~id1bGxOjH(o71#1YDavqA zqDl@GVQ9Zdu9j2c#2%Ve<=nplW`y>hkkH3ZT7VukX>9N}jWzLaXf#0^O7U${ z^V;a)4kR>$^~h!)Pk<1vBZ?4OqzEvBBX6nM-N!fYw?O@eX{+XW)?4sJy-mnI-Xq%^ z28WTOhnv@u-hv_55f>a&08E#j(YLHi_q1jGN4N#|9NFE}pqquzM95q52Aj@hMFmun zz>Lb$ox>-(NA$08c`INzCoT!WDc{mdn8hn1g8RcRqFZ5d?08Q|h0tZm3)f;ZjBuN% zF)6cE3qmY?sz-8UZ%Azh5SN$`9MFos7`9(f^_ z_*r@$5B`B801X)H))LeU+H*?UuciXwe;6~Ie8k#py3w@Bf}{5&Vr2UPkf87bkuNN) z7O=v+Aq}^*v5_)_><-}4MH^$o9q_V%JQXXAC8E_S*j2K;VyU^{r9m4bo06rf^r{S( zP`Krn3gX`O1M<7tidy8(TmtK zEQ(&?pGe#36$}$lFOSvqJ(4(;C8-ICK@g^|Jt@yv)7LEBmy7|2_c7wEeaKMUu?#6| z5Gi`AxQVoRmzCD|gJWJp4ixb?Z#oE8KMV}#`vYXYT>&W$=S>r7t3M6QFN;9H z46b=Nfb$;NhQ;!Z;t()%YaR~!=NU>HmN&qh5G&0TLm5zUh*g_y8JR~F3&4PY+M{M% zE|)#S^5|AT<+jd;rq$$Xwox?|n>a2DQ>ip!qeVabA%JXG&?ylnXZT{0Me(6hZ{o=) zQZK-T{a&F|;&t?XytMB};C|9?EdkOZl`5X}JAo#0u&?jX7fL)qRu(G-G?EFmC@^3$ zDPZkrT4l%7qbkgbiEksD&I9qgn6ZhCR;glOk+-XpJCwF?go}>G<3d?!Bt0(Hk@j>2>QK(*!so5L)If> zaAxLJ(qBv4rJ$nN5?eY%A>j@irFB=Glg%?MCy{j)05Q-_+DCs`lnyZj4VU>5z7-z7 z+c2w`)$dw{3D|VdZ<>nUNhd~`CmWyG)d%{a3~ma~IFM+KdpbOQQ>u(yGw|CX`Vh%j zN0KxdQ3c#^v1x$I$$?MZO=;lzo1xU&M&<$++xK9pQP)sLxu8+?jLfstHLg(LV(XDQ z4;q;=Aal1(dJR+=o8?l@NM|;#I~`mHyCUlap^%{fSuZ&AsN}_j#qg{G=NpM*&k3w7 zjZE*Vp|p&U4^PgRd#jHaA#q^7(%&zpqUJ#x_@su7q&wwCc8|6=4OuYc3 zGtas?;I+w~+L@YqzcYPovrW?P&BR;N{6^L09@mjGW+*LAJUa*E`TYsE=I|Tq|aXaRpYniM9xouS$=!c z4=})z!vwaK{l&C0ztUO<5}v{cW@O-*2ZXYA4nb$<&TM=o0%%4CD;L}zAT-YCD`KX+$*HWm?}K(Kqd>5o+IdynA`Yb zzkmD!mPbV;M7b1;EcOIagD8Hb?@pk@D@aa&81M2VLXCfS0e9dF<6c}z05C%VF6Ayv zDuUdGO7@ouu#x8#5I8R=V2(?w9RSBK+sAU+TXL|sxmXfK*t%Qdo-zdaQ+9Bm_Y z1ZD}dgq^TD{esZx>gX1x=5Q&eVl*_rEm(hH-&m{L}-w2R-pz{m@VnuhRQ{#XVqTtBdM8f10 z0%AosHK~TI4wi(7j+bWiU{PgR0;_esDe#l4WRHxgth;3~M?34P;}p#ZDHQ_hzV`mN zPGA^LN~MHNn&B3O-bG%WJ<+4;xR(ehxWtSB8Wqi!GG{nNQEzFA5_h6@fyWBF833y| zV2kFr{LG9kj5ogIEcjW7*B5$hjQ{0_x&~g?6gAFITQyBH@)=3L;S(_Or^jQCtt!RY z?=pcv?IAegVrMx5{%hXxXn)z0#PIIsR(93WK=xTvXFNgDX3yzXL% z4y)5M;JB&N>sH&B7beWdi#xzwH5(Q6=(GoZZZkM4(j?GBaK-|~sg+LsiFYbaZss|L zbPS|}_3dy2vh6PQF@rvb869WZuZnkmph^Sub@FoH5R2L6Za;Bin0YsBx`xJoDLD&q% zi-eRo{|rA9edv`tBPsjvNZ|MtF(d~;au>PWP*=GZPFp~o=h+Qmvu}G>2%#N2Mhh)E zW*nT^)0LfDKFP6%v2T#}YSKyIFgnLaeQRySHyMsy0jmN(_)p$&DFLTP8w>d0y| z=DQJ+qgeQ;YB~BC}OAku?g83=N@vI`S1a#b{ymL z?&O%f>W4Wd&F*8Nc@l)@?1WnDFJed&v8=O;Lntv<;PlV3H_<6;H&t1Z13MXesUTH8 zn&Yywcd|$pG9KxO~Ji0^GTvsDMlHcVa{wTvh-}=dw#G zy{pmHU6Y`<=tT9WvZJlv(1iN&dr3!o=hvTm9Jg-XL?0fQ^<3o*xORot|jv>BewM4y9^q_K(1`)FdI3SPVj{KwON#5=Zr3ou z^x|U(;$DFg>0rm)_S>}KahhX^G#q_nFgT=dFfe4GKhSTWKiFTZ_YEKT<3~{7x7{G$ zA3yNE)TBqeP8`<4zV1Sf`-Ca@5QNUlSPoP?2R)fHlA9xrBbm%$eGNu%bH;Hd{|oW+ zvE=Xb0$CnH4xhi4VTf+V-C1!5<14}+@dzhrz z?$aI&Ipg9xa5dce0ZZ~F*(Pv$hmu0QBb$u`U>{@zXz0KHUNoorx@#4wESn6AVnSl3 z9E@1yapTPED^=gSyuI>x%DAr<zds*J z<$(q5|6WG9^pCwy=wLetF9E=_^S{9_Z9%|~(xIlfQXIStq|$h~X&op)trDdB#!Xn~uu+H)d^^mAQI=Gm?cW>*&zSu=`2ja)&XM$g8i zZ%o$$$CKL3_qELm?WIw*Q3G`YmufHN$HmlL+Cg0LE`G&C))th!x65ca8y{DHF8y-d zEhE8X~r9t4W^1Nl6JX_W-*ZTHW6BpMGqrwHh&Lxp|VxB4#lG>Tp z0Bc->|FQpiiss>z`L}*p}CtGq=T;#1fM_Lc!o!rT@G)lRq44JZzE;QO}$<% z$?0r68}jnng{WR7YgePt1(Qv#15;~nU*}j;`HZT6*FhsRwn~c`r7S!SS)Wu*No&4> zvX`QW>;&8qw=}&!8=hgq@i|Hewa3FXhI5um$#FuVXrkYkp|>UQ#&5p4S?XSQ`~2cDQevssA7F_=oZQBbt;Q=ck<_s6Ae; zF`SR6lpGf{inj0jOw^17!Fc<-tJPkNirHpxyi~8s-K7W{;SY|DXYXD?MRBL@`QkRu zX?5bL@3iw=qRLMx9G6m>TcKA$(^<;3Ynq%dejj$@OpW43t zLAve%sQ^=yRIvCzO&2cOg+n0f^yI-Why|$v^SrrzXquM=dO=yaaM2@GwWG)UgLP3Q zGXVW^jAFB48gTFTQy1npE4`BIfslN6@@Q53^U9e)TfBwOr_*T7rm znv`+onq(le4T^JdvUm+Vr);5yysrjxEsP1E?#|h{W%Y+ znPz~?Y<7tsT87`i_U`_eYmZ0n@SG8k5D>TFaO7=+SSMPWBd-mIfVg-B&zX@s*BR%D~#C(#@;5?ZPSsy zc@#q+Ozct>y3sbj1?|5T%d?^dCTqrEixlT?>?G8E>BsvEbxaS0T~;hg1ueGNIRXcg zcWJIYmYYghu8M0i#_{}Bi0RD5Ob)QY1E$zC{ZOcC>8JYcu^mut9J?_2HBJcOwNBd# zmu1Lql%*tl6-M$^t9V65l(n3-ql3X}X6@wF6v6voXfPx<+|0y?Oo|LJ9TT}8t${oX zR}tPTd_GZYbQPOIeLA76>{3&;3F`Cyfi5S`I;@*y zWu9ZMD;~1?Vk^8uUNszw+E%6x7Rjr&Yk~rePg2v zM@`+r4J6ZlKoP3sx=%q@>4w`J2-kM#_%LtZX3Y{1n_-&>!fe)CAhUgTli4J*VFze5 z>FG}m#D#B*aCHR1w@bMC_9%&D=*@S`Zdo7^m&tK}BX| z`Er^I&TlDf>d$s|PEo){SH0T=$z_(C1D8$txY#@p2<6ilS^m3_JgZ5fxhX~)xEX4W zLO)Hogpye5Ofts+;hXcf07~FpNju8TcO&9rI(N3=AKAJIMs#*EY56`o@-m(nN z(nEo&P~S9F2}qT;K^OMnf?8j_YMol1vZ2v{ROR6dHZel^v3h{Ha0}7z+}-B&X0xAs zEHSXSO4S5HK%3t9j0Zj>zKxBZo|*H6pPUG|Ht4Pvn?XU{-=1F)nh-Va;W3}}3(vW` z)~8+`pti=h28`>?c=AlZsGCkJ z(1#cB241P>vv%>Ezt;N80^ZfWxvRNjH4HHV9s$YJjqa{>clYt;e5?NmcBn9v9pQzA zuVu1^skfM|ZB*1j@Pdqj8x0L6s6b6N)kv11LkLYJ%nn6(0*@}-xV!s02=6s*-%Vd-)Ctcw?adJoT@Dh~~9a`OgWUUX*_{8ex35b#8U*i9U~XfOhYrta>*8eEY#knk^X z$ooe47i?t6P8UK*#u|?5&iF5T8QgW%c9yT1=l4mG&syw8Vf#7NKcBf6#6-{>^1duG z#JQ#gI|A}9D^d}U$s?|_ko<9KO#H4v+JOE;T zY-oGLVWUv&P=U}uZ`{ctW)mfGg&vKwS2rK$5=3{fkzlVrO%qqz}iHe zrZbj(TlC(53V-<;aFP27Hd}Lub$5@h^(7rxrk7ida3_{Q8jX!ns3RxgWg2|5DD%{AEU~TgN=`&6-@)9+ zvNhnVrUfw60iSd#zl1FyM;K#JD5hdtVvWzA>w7|D)YDW3-(1ME<6GUv|VLUHnJBVD8f8V>B;_fA17-S=|B=DSE%Bn9W{Y>C4; z5>+;ZL&Y1oWZtRnS>THjDN_zL>j-iSbSsF?4fn7lJK31xZ1KEOD2dPDwF=gH^m~Q4 zmxPSK`+c0kNIwpW{I-eQf_YZ?-_4SxuZwKUARUm7NGsL%Eq<>`4$>@2pK2BP;mMAam!IoXKdB(N`{hx$<t{HLj#4!Sk{;GMZAHF#x6_E;S9s(M4fA-=b97+c5h+XW>QdbK88 zi} zRf2QyzZ&mto)=-1;PXfQ-$w}$H`dV(4&-U$HxQqw9=xDn8yh3&ka3MPg7>z~((-e3 z^R*7LAY0=kiNIUaA?C*m*wxR|6}(SGFWJl?sU$SBs9?YNo+Pl`)6|KUd#NO50Id3) zncJ_@`8is!_LbGxSvEm%FeHVZTx1wNqd`?Q)iih(4EOmAi%V!g)NU)?p!+!?pXgP< zFu7T&`EhB?%JK%*aIpr!i|>CGLcgB5&$s+L@})egWJ2*pLexRn@nI7u3Wlu7)sEliYt; zl6U=PM0r0pOn)gquAs!EQX<-B32>BLWl)$#K3S|&?VkGu;r*AL zRuY(VyC3>PVfyLp)x6UD8*@!9 z8?#_*Gl&;|M|>RZ5e=z&1)A1NN0(rxc`(h+K%VG3`=uz4sPh;)d0)|I#;H|3m$O#L z`xEy&w*`vxY&9q!p|f1;t6S%*6 zmHq}~nmdm~1TiO*Q@rPbUy|G=HRh#Pg!_=PoU&>GTfDrblRG3 zd-Cj@%n_CA7gIWU9(+!nR>)U~2V@|R+|=0k`k2)8y38N%vYK0>Cr0y#ti?{{)}?S? zW$h+GtU%nbPgbfL$nP9ujUnEBURnF~_7zOj)YbyUbR&X0>sWRCXD~r)cR&gRTImg2 z{a$Y_7Dj#R(t;2Fv4*|n>QAyxKF_BW!PmoS%~JQrF+)w&M_Bz#>_J;?Q5Sz_WhI-| z*2ZL|uu_6;Xgn6!w|L2!jNUj#^{dIq_}9L^z^w z;=s2Ec1gwGp5HN}2R6s9_xK@Moob>0`V`Wp-!pmnwu>&IaEh>peB9^<(?Yie47~oG zOst)_6K|;C@g!v9BvenYQreVIaK=m|K2V)E6)&JLx_JLHNKQpeIJUg5QJrTAs=5Ix zY%`XUCOdBDD~jTAJ{kCnzs?uorM#X5#gZ1 zj{fX!5MBn&=D7}=gi7Wy;1l)qJg#4#HImw~db~xLH&~bQw~paNJ&+DP7&)oE z%mJU+#vJ`x#_n%_6u@YaW-i{pJ}ip))c#pq>&jqAK94i642U24oGpsEKI|9V$#mD_ ze$#pOy3lJ7L+}*v5SA&neA)&z{Oe1l)Ohu<&J0cK^SwcCFW8W$(`RsPvCMa zMug}9coLOXJgl)6kygQ|1Jt=Ha7;_|9>vt(lz=!yXudNezM1>@WGH-vaDu-=Z=}~& z{4enZjGqGzPmF4pbv~6L{W-roZr$(P+Z^Vl`@rEb82;8G3=Ug6vi$>LLdH>5*C`w! zzt9PgXZwQ)fBx`j6(E&VQI>1W$BjTJz_nU8V7JXFhlv#3q#X1t`Y(w?3A%0Intm; z+Bi$nF#Po^E}8A6>-ZQOX?w-+WR7gp)rswWJ?OT397&Eef$EVZ0-6Hz$(ibRM+-Hn zUDF-M`HQPbSsK8l>Z$nI?5;utP@&?{yt|N%K)niD%#p@mkncQZP#ZUk425&b z+5w_TQ7@+t!49f*=q1^_bG)2|Wmx+K17(AdNy>69VhZyG6oFK@h0oZvlQlqo4bXHs zHHqgcM_eMQszyZI7{BT^#T+AStd;7NE;(T+e%U1$vwz&fSo0hjSoK`q8~E{A%h)ma zMqzi0V-LG70?E&n%`N*bgeVskf23mLGtw`>w>%jr-R5-j{D7r?W4VI2zC`LOSL_nh$lkUUL&>yYw6WHFDf;2=k1@8uR8 z{2**~B{!pBbyjA!XbfK`qj{x4;XyzdbhuMxCX{9hl|ULUwr%EckCO(M2cQl(I#n< zZ`aY`Nm3AVhyYOzYMR1o`Q=Wy$krd%b>JkdS zz>(M*+#e!tD7!4*(cCqmTq@NJd=hlzbl~?D&bgDMZgJgsoOTn=X~Fji4g5Zzd{2Sa zvy0_&AY0Mo3?-@=ad>M}fZw{%n2E$62HYYN)QeSNGMoJ2diON-3?S25R-(l)w?pbQ zazh>bHjmKRWqz4MFMGBK70w3S^TMzS#+k?FlF83srXCoXwBzzBlz3I1Bqr0gA2!T) z_px6RFJ%uQYmc)Ni$VH%s%(4T>|{^f^3!J1_AbM~1S+6U5 zKf%kR6qj;Ri0M|&+j^<82iD!p>!~vAd#R?;Dr@a%#|L`Zk`JwinE&(tG7k1`YNM~N z;8+wB2yK=t+KEpa09I?@8B(TX`-eA1auttToUF0)3lJOX>&K-y^$ZOR%k# zlU5Qm`>CNS&yZ@4z8jc&!FZr+e2#XIaK=20e2KKR(bYp4O=T9FQ%wjZ^|QyWOe5Nm zR#>1u`)s z-LJdsb|QBw+PsQ>?4~5n>`y+Y4hMfm4J}{Rk9XFN^XBq-*}@2km@w^`3anD3BkFOS zJzOYrUn{x(pRWp*1BBgal?c03QbTSj?2ISS@YnAH!_6~{I3P6GGs|&KjJN@Lv}?ZP zBEQyMK*?uCJ%{1udE=Md4MXr3T;|t1C&~L$4eDLVVEsM& zwC3qDQZnvXJ z)4FY@{)&CThhLdd_`v*_X0Y1bs(OLVj*lVpd&BXEIzqi$P1B^I$C4!|v6j0LcOmPW zni{dcF_+{uWVEQHLXzIddZe8rec5^=^F1jU@{v_RBU7R)!4TQvt+ebrdb^-@ zNcpkvz+6U`ymfu;ymSrmWhq#*oHlNwnV%aIsr6&!ntD?VCXc=9rvWcy-=aTsjIMtfArM?|; zLeOF+AYW~~qp3<^qKgDrG)$K3iYX8T&nLH)^YsGc%i5_++*or+-bMj`mbkY_MMs;M zVrG2}zYl&@o4O$LbWvA;I?s5{_{;wKHLJ0nk8Mu0Rqr*c=#BN9&86a)GJf1)R@NOB8k)uc!P%yQM?xY|EpH4)6*QT9yS4# zQ;#_oFgIOW8W7}t7ZdYOPckmh9w+&7e-yl*dgDOJ9BEiQ8AsyvB{k;h%Yp`~KgiH^ z5qeUY6kj|uZWli++r9&BQF0ngXXa$IL~nX^g@GRtp|f*VG^AIwyolO9-3A8P9EXOKXA)n-BTT1r8@O%gRfu^~$jd>xYM1-@h#Z)3d=D%k>g- z4S596zCELDM8v0V|3@L`uO*2Tf#62S%R_zlMcjGn(Ornn__8y&XAOt;J9%n1i_}Yb zKOD9%*{U5MN-$(UF>4`L%5CbTTeQ%HO1lPGM=XOG%QYfN#^1kjv)QFwq(wz+PKNlt zWE~M>wnc#R|Wm+21|3H~0p@`$)rgYuPt`S4;YN%Fe1yY{8G8 z2%^+5GhA0U??FWo4Zv1pI$iKu17pX3S+X^2l-6QYwIZh!O8VB$j^nb%aIpSfsjNP% z+0q6d<*N0C2&OUprXnMTyN)OCZ&cu;sBDIS5bw|Bk_d467=Td`X~!i&az*|8mM*!7;YRylIyO0Kj20vYIkP4Jy4I;Qcv{ZIDU@-XD`&P&J zGR@XfuY-QD3lIzD(_qJOP4WsnO<9g@NI2Zum3RizuB@a{6hv%G(h1m#Hrd6g=#8#s zOk{GP*cxF~XrHD~pCKDnn9-=l@Z&w^L?4nTNUzBF?e6aQe-iRoduZ)pL)l*OSZ!mM zc&M1c-Bi*i@p$Cph&_f5#rrjV55oFNYa{EVU1(*D6fMi-M`aW|G@t1aUFdQW_S$_z zT0sgwa)4arAa1hQn)cpJj%2hP_^W%S+On$-s1u(}xj(EaTC^G!?~1N27@*kngieW| zpphjtR@CLT#UDv%{My)(V5GBgCN;4(rJQS}lWJ2&xC)d(t;ML~5t%3cKO~oZ+D%)! z*>;2}Dpba3%LLroc4%9cviUki#`|+$E?{-19iWr&qowS0!_l*+3!RZeHAH4(Uj!em zGippej_s7uhOo`l(6vy!yUDzZ4PDLw7O@qt_Jz#@soOLZT6rZ z9bX4Ga7g7jyi};{JuL{v&po38j9|4LbwJYQV&a(2GN?M|ux}W4sj}5l0Z|$Y6t(Cp zQr1TMtG(qL4#Q)slmmynzH2HCdB3OrsY`plJVB8wMW&v}9qdDSR&zFTFi)ITR~W;F<+ulbznr1r^FwM>R#+Kk&13 z(Z#a8D=8{G@!SprGj}F+gwSTt4q#Rq8*t|hbFJQPQD*_xI_!vJplF?l`}O3)18k?I zlz^))S12*HxF6*pQEY*~HXM7Y)Qjv_M-* zm+tTjyK*k#&qY2>p6IZ$Jv!-gl#|B&RLG4##KyLS68qT)lQZAHTSyBiu8mvtznxc{ zr+3NR(Myp|}Z#*TEeHG~Lj-yn9wYYdN{xmMd_Tot=%%J;v^E(O5JK zfnJ-n)kSW$-Rdk`A@$jo%QxvgKJjGHR$(>fsBWyoJq~Tj5$d*4=k=5vF&EwtBU~C= z#qO`xFIIt2Y7Lj(-(=rH)W8+VyrQ>adw&rXtCNwG4!pIxa?wr%3RsYVP?Y6d`BGBK zR^9ewC&-9@r@=D&26K<6N|B0Od3=8R6Za$AL*6fK^7`&v=PG4v_?5$v>A+X>-4t8V zR}{641r*3qQP~Q+G|bFB%&K;lF>x-Yqz!cdlniVW{DmF%x_DIP6Wzpw@+;r%6}1ZD z3jG^&$X5Sd>v8e-4&{MsIu=(3w~}<^31{7aU;;UwSV`NIFb?l!SuMm)pgJO*=)YaTN1#&U_gQWv38+xX?xWzOQ-Jp?C2M z*WL3jFH>-N`Khq`lCM+|)LBhzdPAxhYNAQJr8~`kl&VXfpoYJC_*MK{{5q>V3v=}E zsqD;7a-C5+fH)4CU2Ex;wNBw^iMVmUulwBqRN+N~C%Xo2FW+Dco@86R$azg+q()iA z6jhVvbDgYav`U5c(l3T6T)JR0oBPcHUWEQ2F3cq@=|hAkp4d=|F%S10)ZeyfN{?V^ zjNyCf9*&%c%!{*sW0FEM3iPSx9@n@SNtPT_aXPYAEAf>{3|B2H$B%tcS?n>V8S+%f zX9aRx)^$ZzQbMgCSv2$2Z*|S43i2q8P1TywwQ*%oTcK8o>C?-_BU_U`2%9U*$ljfE zpkOz`hZp2#BIrQMfdRI`txVPA^a=-YW`TJDl>qLGSSA2ah(|&yAT9Y(_x` z_B(6k^?&Qlk+$Mqfv7rbgDHnB%;?ey5^8d}m)|-gHmr#npag%+CvgT|fWQhGe@jd0 zRwnn!QtZjF(Svz&WFiS&cbL)M79E1 z&Oo3_86re=*2(2qNM*#ffU@aZ4rN?Y-svPm@Q_;mivsbzkOB9oQ$0=ij8V>(Gs=EF zrILFw(n^`ZW>%m$X@*K&ecx5(KgDy}Qz-|C)8_gK$|c{WH%#(c&mSi>UpR8H%N5aD zXE-V7FT7ZnwT)0OV5#yA5peqr`9>lZ%0vbVJ7yH0tfN{M(++ks=Vwhb($&XyE8bs4 zUR$K@b%@ABo0P?yaUP%Ef6UMqz!* z?$8Itod$o%R&<)2GK)!a68nd97d>gBY>F|d>UA|9*++?$hlmmR-`c?u$v$*7+iZ5Q zeaQVO?LXv6{8Zc;p;a?|`aL4*)l7e&kM`Eui)pYyk3#(7fWBGk0O+s7k^l!xqZ({fH zTGTQt_J_uz`D(qdU_!jF`pICyx>1j8Tk;sXMXanxj%k)|-5$_I^@x*MkqVSf0m^Kp zX>1rK+lgV?vL^Hz)E>F7kx$vT9n`G(IP3EMxVMZuHh-&sqP}W(H8I;R*N({C1(h9P z>>f;N0xVX7aL5RC3FLBh4uz9j%WI6A!DtOdoB&eeNuw_Safk4+U%od*k3*vhqB9S7 zB{3qIe8Wi$f+>N8Ezq${)XoO>Oq%k@QoF*;)))lMnw|2lO}r#^>U;kTYqBNkrnxhn z2Nkc^bj@BmZX!wZFxk$m1wah8wE7>+swSh%3}&|e%YYPeJ~JlvbwyyZVs4~caE1hC zdA^P%L{(Lj52UvG<860TP@{?T>w=fL*elvifz(pJ*_@>+jz@P8YP#cL{-=jA1AE^Ikh$Yz_Or=bF73d+4TDwots4q@9X#gg`*w_{_rtHM3E9 zH%#`nAbK7C7M;HBlw(X6uE-2D&CPYXEn5r?j*g@Wso!xeRG$$V%lFB*;1t3092Ft(pi;IZ2Kq!@oia_Oss==mwgJ3;d;xqm zlEtnbN`$yCXd-4zRpPxTb;w1DzO!DeKZ<(PS%gRz$+0Vj-i z0$=lqVJC%RNhAL*OhvU#kkP=v zo*r>t++dubY3}c%m6hL*xTr7Qe3I$x7~|lmpC1|I?P@x6woKo6YgxC_#=v6!!gaj| z%$v-b;2VmTDRdG}dk3449$InTu7sD#o7Y}r9NNDo@KDpdB2N^R*1O-ujIrrO;sl~< zQgnQ6Cy&)3Y?ExY7MH^K%Z{Fvw#5!Zp1JS88T z-~?Cmsob$=jmL(I8<-8RxJg3Rp7DEJeEcB@?r2u>p! zwnA|-{#_X8Wte)no0?GFW0ICVsModN9*Q11yer-nnX(+;m#J~J8|sJb@Mc68gqXRg z=j{!1C z`<@^rBaB1xCvGw@Cved{;Qj9^jWDz&Wo_E#ARzvbGgexu6J>0`%*O2gRcI_=b0u*5 z0IDgK`v_YZEBpq^mYbP;@l9^6Bg_gS-$)V(7)=2J$`+w8g}W% zC%tEhvD)=v4**yFYa^|=-H zJ(v=mWEA3H6D}S50bjSRRo%!6T?OYO-ek^kW&i6;uBkY1`w^fD?*3!equP3S?zU{LV_bP1K9Y*0L=^io|yB@q)8 zH4z&I8H8ORU80v!NhI2$frtyxB~$`RQCeey{iXr*Ao!}(u^m3%78}a-D6P3^E93<} z(;=Mx;j(A=oueR);Rm-m|Q#80q4c*x?=2w!FO>-=j0ZZC^5z(8=gGTC;6M_S~@ zos>3C4~eQ03SElhN&{D`SC&e=hgP1!ISeX7M9RAqsd(3I*=2EH9xW>7y6S1j%ce8G>!0iU#t^m6Ux5DKUi)j{Zj(kex41;V0Ok6zg+ zVe!qUv%F`ux8JSmSZ@6BpoWtg-VhaKV=9!5I~TvT{yDMfdfvlW#tv9e*D@{IP;me& z#!N+C_S{-5iRD&LS{W`|J?vrvM6?1BKQ4(CaWPjT`jxlm4EoV_e^_WlGN=S8wo1z} z{;W|@<4!GWRQ0_^AsZDV?Y)lTb-RU(7iL`7<6e9bqk-{k`$Y!6QB7HjF?oM<^^poS zw?vF65Z3y&Ta?d|wjwJ}@AKf_y#^Fr)084TVhaozDUm@~$e>)7YC96w2L9A>q(P~~ zsnG}x;SkZ$EPCkpT07jlMwpHF_U{4S_=bpI&X^Y3Dtg^_GTvEDk5JjU$7T3je69$> zc#ox^bBlzyfNI@BcxJBY;liugAc)Cfs@)~(6UTo<#5m~}&?z?l`O$MXxHK`KsP*F0 z{#`9}>5_yg#9Pavu;olmzDn+zl@$j=fKE;G3E1E$F94<|E;j7pDLRe=D4QFiUvjWHCsoTcJ&nf z^L-qys=6O%qCFd)OMX)*62FI+nx!f4ItWRD`W_M$M92z6a)9|B5)L(*Ny-N**oos4 z)|OGK@lyVrzD;7YdC+fb%8A4Z4WtjPL)fad06-*)eZ1nopb*}nQ;(8`IuVNCU>Si?~hi(qK=fvAgl*7NC}5B(jbCx9t_Bdhz`=Dfrumc zE%7Y;v|2^dMzHT=|DLb}5OrC`{Rq!1{G;f=0*d^lrmy!lAii9TuK>9I%nXJE$vM*aEs6-_j^}} zbN3PaP_?_(@Ua;qm__*AG5j+4IVO5sk9H$aCd<}`3{ zYg^fiHIY?Q`7-{mgR=5h2akP#YhgcVaRemOIfB)=1?}X04T|48R7Vi--|kEKCWkt- zS5M!4* z9yi%7^)5U4N)P4tOt9i1saFyShzs&Vj*^K%DVJ6LK07y%NK@o4pWaYlUs{;q&-e$Q zSA9K-Q8~u?eWYC(nHL~0QV9;uOQ&v#2H=OmHoHkz9aaW}CLV1Lb52p@6W$(-H>*Ky zv8O=_$E{zN^;dUC$`#t8Art)2cu`0MlX6j}sZheew#)Nob?}F>zd_CqhzTm2;=cLT zd@!}rl3r=NNcEwjIq!II&`QU|xW4d6xKaF_|h3ju!lWF}7HQiB@A8Wcn zhLBIyDKgw;(T#y{I9qx5V^CFeH(|^-A+IgVeiV(3?-$d}KSOmErb%p$=dLcvs^J*Z zVU$7=_6n1WWMy*MTGD#@pfE1gD_&|cWTp$2N^@w#464j=nm z8Ks0NQaU!&#~UH>j0(|B^%$f=9Ji!NyD9N5I68;|A~Zj0*l9oo)OjU@ z@xaL6e0p&TloINK0Wb!OeOfVvgAA!N&~>DGBk_7?Pu%{Fc5q73GUX~%I_JtrtA6K# zLR0Qd8T^Dr$(~i%VS|WJpatjUrm-%Vfr4@06Gu$O(~~|)lgkrVMD3{eN0H=Z^I7GE z?5n1G0E_W5{H4(Q6R&+qJNT@e2A|E++mE~cUsWR}m*2eXjgN*`o{81;eD}_;sFvj` zxU%>-crSQ#GQe2OD$i@h#2OG2haW0WgWmU`4=@cSE)X0vmG?+cdh+Tld{o@LS{Lyk zz_BM9B`2%q1A=2Aie}&blmDu;QQGnG_c&(}-4XnPoXzUjBlOkFEfS5v(_Om$K)J-zkLWCh0bOy%^6idW5(O*es*w>Ne6snmP- zFqZe>j^o-i0D&NNvyrh*@skK(LPrEZq=R)NWFz@)v`z#Q#FPEA;e~3wzdY#^`h*x= z(-ETqRy@3y#3}5q4gK=v3t4ixrMx6W(vu~$f&q^=)b=8PE=j7m!GOMaWsM$Z2kYj+ zD*yDXOW1P?dS(=*K?td|&>qTXafzmR&_$zQn z!Z>lId{_qe<$x30Z0M6TNg{lXx}Aa3Tg^YT{TmKU9cj}#7Z7heBkTC(_3ziq^AtGjd6 z|4VzV)Ys*Wz9}zhc`^L71D9)YjgFGkJB0Hw^lHy)*uK5nB2$ow^b-j9d)mZZ|Q5akZ$`=lWLP>Wj|8MdLnnec&V7WaxSfw`=;CJ=pAyED=KGnz{qS4kf`Izj^_p`G?DXf=rKJuJM7R(5)d zIk16`?ciVLgm~}3uUtFcIuGFi3h3QbaE^Subs`~k-i?1f44tadN*>UP>TeY*P zj<7s27>~o%Dn>o-GYj%%lHdFzr5y)e>$YTz2cT@5&3%kGVJ%X~D|Knxo)!zgS8J=ss*{}t@x$|lsoDXt^jhKFRU$O0?%xi%LS zAIHW;eL|nqr}XFg3;ks}ecj4)L7$PYRI>Ef@{Nk6^cF75?`)UfLwtBf{)FHQO5HCS$0=<>H39arva+#VGdP0F9?WeeJE^ z`S`Sb*b?1Z#II9sK&N~hJ~iw)0Cc1(G~>I=ja!GcrXdf5XL0!rFO8=Cnj&aoeg{ zTrLFel1J-?c*APeV))v8rAx}iBAqNSVz*hSmD^I&ThdfB>(Kn3GFT>Ty32LLyRRO@ z!wVnUnXI7$J_E>CpqVX$ zHY;rxiG(3=slF2m{!PE2DX^dS=6<4@OS02Vx#&g)tW&w(B@1=mKgq$tbtp@X`PuCf`$)__(02?*?Y_W;g_HVACNjFHB z!m1knOUY&FmGHsHSC1=sztqXYI8v(muGHk6r@jtIN!t26Yx%vi_P)M0l6-|Z_I|hT zynR9ajs`*z;DBcDpeLH1tzjZR^dDObMgt2kje`CGi(ljYo}t9k7phLg_c zr^8~5C%TK*zQ;JvSNP{sBI$jby7$gdTOxV(UMHNoD;CQ8TF;4>gcwe`$DchQB^y%W z?#hYxYQ%8T`TTTVIm4;nz^CNUZ!dd2x<& z{|)k48&Z-oo-UhrzK`>`jyS?}p5`FHXS z{7z2RO8*1=w0q~g^7A>vso%k;fa08I`yWu-^7|O$Nu5)y66ZXZn0P92@$AK?^8KT0 zo_@5ggzKZ9JrkdfE`wc1aPve_Wp46O=Wj#qgYePzKRq{fVtHe3aHIYx_ z^Ee;O{cb*WWdG>eERphe_r6vU<4HxSSN?w*oREAB{0r>~&@0vM5xe7S= z2n-QPB{B*sHV!TxJ^>*SF$pOd`CjpNolvI%Egd}rBNOwqoB`n?M2ZqEMyxpT5+q8J zEJZ4qG&bonWXh5)XXbuGf++=81_22L4FjuO1spsAB9cmE6jZe6z`%?ZRVX_l6Dczp z&3i!NB}kMcSxTt{CM{)Yy7PAhhC6r_S(5yF44{&KMu?y4PSmXk`=_-kx4Op+b+7&N zjVyY0WV?r{G)eQ9Nh+xm(`sJxwX7*VT^h`EvI{FCEbTQ zh;!479w=Q#nWiL1I>o5~- z@%KT~=?4hEq*V_CEycS9ap(0@m6mOzY~{zL^!)S7|Gs?b?0)a#mj&x=ulfu?DJXx1 z<**8hZ$19<%?4=%9yS2*Qc#eG6lC0--=T}ohT)ZekIl(>zW&d#Kihs1KJJ;Z-Q(TQ zPtS7J4vQXN%GCM473D9G3Q8)KO68l(d_X24>A!(L0Eq41g~0!-l->V-vwMH|_Z{$Z zz@6{Y0syyPO2sw*Yb@t)$3dyg0s!3M{C5B#0C+V>z#qK(lg%B#{_deI?QGi$)>U-s zQ(FMQj}QR7P0;1q^Q!`XFNgvLgAG?8FD1`S-Qg(!s@Vd0%QQZc1;&~%In#D z<%P>`U*8?zz%7n4!ucY+Db&|v3*S;hGf0WT;LAy1dlJ5Z6`K%mO_e&8LBCTHRT#3YgLGw8`6*Nr z^$f2+2t(yb2HWq{uclEA3HU*x5+6Qij;|v#8H8y~VK4{gWd#VYps$0Vq9)2*mPB72 zRDX>RU@`9I{zavKym}7!jvPx-hbWGiBuavwn?f~?%-G`Ul*GvG@Q0`Kj4s3^Q4*9* zt=^PR@cNy+_xqs_AKQkI{`39A;>iOJyw9kMejLVpY%#~K2S4Gy&_69|tix9D(sjdm zZaUksbC*cp;yU{2ys-qmu-_aWv!C^vXO+Cg$1;9pQ@S&`mqRRX0H7h|3w@hMjE`#U zm~7g+zQ?P|yH0VR71#!l*QPud7fFITNpatU={(OHxA-5hXBfB~N3XBOgj~(6yz3Nq zLEzZSPT;*2wx(%q3&jm5n@QP}XH$6Q@)pZ(o|*$NPesj4A_Ewb*gYTLmPgJ}m_g(f z;*bu-5tHJ-YM>;7Y;Moyz&oZ;{Y77iX9jiK!_OuOw;J`H%)GoH66l)?ws^kJlf4{4 zA|g|qwff}FIgp7E-0U;o(LCetOQZaY`dX1f07RPuePFI0)I}xcZ56eSak$1w-Hdv4 z$|kwjgiUVEnT)8Lo#Tp3$7Fnc-q78$Pv>pIM4I?yjE`;)TVm{<6=b`bTMNIAJ_E62 zN6C?qELt7O?(W~)>?!4k+nR7q{&rM%_y5Jg_LQ_WITo|Z-HYqsa~Hj${#D-GZs{7l zwp}RdE%S}TIV8M{U6r%RpDsbZLdlkgFnV(!Qu{mcM`q{7Qv9m|-m5XEmmHRO8sn@} z;z&}$XdNjr3P1@5OaYz_61#G(DCQsmouaX~PND-PL}tF7L$PMf8WNh@L#VY@;KQUH@_e!}(9pqog!*I)NV5cDY7QzO5rVf9+*8 zuHa?Z-HXLRRrTt724#1xiko5&|bibW@pdCg z*=*{OE1SB#)4cNzjMFYA{et}gSoPOeO3|TaUW}Ld>C_53&v!=eIrW$5i(Zks=g-mk z{-zaXC|T|-&2G~9Vgg4_ZL14f=cO0-71h1x6n^U3$?MNk{0x|EIFO%*gIdt#)hQXLl4+iwT<#NK65f{{@Q!&R1CH29s>$J^2YdgV$J_g zD6X_qY&?Jd8{4#%tl#vs1pWK;9e3g!pf0nWv4w`P6hW*I@o`ac^6lN7eQMS(Z+<9q zHs|UwyYK8i#+1y*(d}DQkkgf_I}tV>NBcQInk)hDtGZr}+IX$9H?P<)^z(z7$cX|i zU!Bmw9P_|E;Sx^-W?xT4YgIa5BLEbUp>MCH{a*5Ho{1e2mbYG>;{-#{8Bna>>1SZ0dV*}^E}`@UEe4KA!OU5wDk{~7bHE1?a*20=-QSVOqH|5> z8ZHak8LFNsA9ds$^W<@%y!%b->oW!?P9PFo6Y369WwxG;!UOuj8#Em{d2$*l8}Y}O`zwuqXJiE+uc|2rZfa9J z&cMznZc}V%x45Owos)SO`i|$R)=5IR#c3z==VID*Zj_XA&-nfW0E~urM~uyVv?q(O zA^I~Swg>oYT3p5Mv>VS#-yA3x-K)>B;_JwaXca+w$s&Cv)$!(KHu9)^j%{B@W<;5w zOq>?jEPG}Q{R^Y9QK94iGf(s4FVCV=wvDG~e!BbSz#~w4KUm|@6_;1PvzF`R488DcF>o6Bh|XspU8Ze3P6^94I~>-<)V z=V@2-=)BzWNxk25Jy1E<=_Wc^fqf@KK)z#?tG&Lc)Qo11S#5Ftemk!*S|`LpP0?0T zGYLsZR8TqM?w;}sw-}gqcQ$a;Rmho~6QLdJZ+>#x#FE97JJFQ2M~awpv~zf!cIb#I zSHGvK7gceAIg%53B5>piIK`vteIx921^$AEi|07iG?R5op{ zk6Abb3bqm_br5)UZU6J-y9AOBCPCQ@uzeN&zLTixNw~ZB2&jgdshOyt+EYv^F$9!E z0hIE+V|WjmEpE+cOF$%wLAQZKlOQ|p6+i%&?#5YPq}W_Xvn3LVAaW@OP+jdr-95Y6 zG~4+mGCKDXK(tfion_tL5(HG6nyHzn8`M#6EV~zABS3jWqH`fv?iSYz63CQaA()BYnfX_}(^C-D24?nlb{GnAS2MB0PzSKk(Q21_9O_DI>z2sJNq z{+=-q4cpK*ed)Yz_ zlDKE5rx62q06b4oI!>@`ecBzNJc^_Fc>7K&-aw#0e_ti_)y}>xt8Y8jH>Sc(7p1XU z!=QHjZsr=nek6D;qucYVmy7+9!fp8_yT#s+4SXc@ZnVgl3FP3X&~R_V(ZA^s*Lyb6-%R=f*{gfAFcNVxg3MBKSCyOW6Cox=0%of{ok zFpfHK*dQ1Pfm57MpW?AL2nL5u&oK@L0KmaOxC+qg$%CWeTJGNl(WiKGU~I|U6mnPD)$Ng!Ceu42BN*xQ;6cgwZk?Nk18+x|t-nI~2wVXMgL zlm$U?tzo|OfT>sDzj+jsKOzTU)dsbYQ~_c&?J%wetJO*{<@IiJ z%eT)OfH3lp_%#zpRs`~5(M+FRoQt?a>qA~+`b6!FDl_IHylsDjgMJ(^6lHv>xh~8Wj$b@I?piP(hvB;!m!ZWdH0iw$> z?pDzKBq~7rd`NSUD|UBs%70$Z$JG<+CSSWJ11{3P8%U0I7ER zV&8&L(ZDaSuD^rn(@$(!{=woqU?LL*k4be-Bij>MQ7L0TR*^sm3L3T zrEV51R-e6VY?jD-%f>2i9M5j%Z6_Bwd&$)g^a-wNto(Ymw=UN$b5KqI=dxvyHS1%u zW)jw1*8^JCpjti4+o+N9Um98#vIeFpr$K+q8SYz?@OVN)bspXW8Kh?9}-$CGT zIkQvKY#biTtlazY{EVPDvO^a91pbrqU3qJHxng?Dl1s}-kXn#{x&Ztq=3r85$WeD| z2nm%)NUhx85G0U`MM9wN$E1?yR+jfntx`*V)C2OTr1YQ7@AO*$Z%QhJ_fD<4P=8$X zJ;?s)?Wxu0um9$4OpPO_9uQr>WBf#T1LL2*QVWv*;|b*O*K*bX&mi?Y`Y!;eWB!n` zQ@gXue*XdA@&m}aRR6ciAOMtPHE>pB3(hiJcYcTr(9a3=umz{xh;{`*e93er3(P|YrrO?YL8@0VK;InXFALWR*@NOWCnad*s?rA)I7eXsytC# z0ueGr+G>?m*C>?F+&ewkRk+qpa#?&Yxm0R87_aVyT~;Z6zIk)P>iABar`Aqu%{g1? zPl&{7Er$x)t(BQMh?>YX$m0$3>pFWX^iur^RZ2A|*{SHILuJwx#ZlunJ;RsU%kOzl`phjY(CJZ+50$385P3^kLC?ZyVXgxKH@4HO1Kd zDW{SYS^K8(jjqY3w1KR(rPRsh?D#elwmi$^qHEJk>Zy`KBhAsczi3aH-7)=k;dyg? zW6;83k1~NqD~+oQ`L}{I^O=!%?{nuN+SW;~v1Luu@;5}4@m=N|xSJr_E2uXJSVE%U z{P1x3X2Evi$0!JkZ@@1iianuG6`lc{}lwlsPOnOGt;IWa`ubn#V+K+_K2hBn*5{QT<4|oRVOTR+0%ySJ_d6 zA7^oXVQsJ8I+*O-MTUulw=) zJ?qN2tJ5x+ZZ@)@*=c*dK5$MZSukp=fwuw05n1lvpYU`N z*TFE>P`1@Cs2!dRF>osI5z=hoB7I6?|H-Ml{foiXX?LTp0xKTJ9D{Kxh>$uUCJ>i#4ZTPlho7_+kOIif z1w5}te7%Z`i|H3szydh^<%pSMkDrN%5C)pyXv{8Oyl!(~_~pCYtGKiduCKll^90m~ z>5#l0dD^l$*lHXJ0J?mW?uW!V9E|{%v3Onhm_{h{QONvA;y$Phg*HIrc1-z?>Y}7G zLzF8GDkHMt14WNCfIc0IblFamSHNyjc&qjrbhwwQts#+~v=!_7o*YQ*Kp9|sSrs0{ zuW|DTgU})sbAc_?jGrt4unrd&3rl&mNjHndMR%d%g@g}pVG!{IMMVfwWyCn`2gL}zkBYBw-C2oLs zW7;UWs=WYVh+MmfnX$u96a{G-eu6fPek&AQTfYE}%P@Z#B@R7`D~NWJwn*~O0D~&T ze)l^TQez$39a2~B$>Agj2tXlVrNbMhryvvrTmeH_(in6jIk|SWjdaU*yFtZ5 zM&YvX4LSvF9}kLgQ{+$g0K8JC(+yT)>+4Vvrk0g)nbj^A1qQDBeoDI) zyTAboBN!Hm*alVm3qDtzC0D_fcR}NeK83GGwxI?Xabnx2-m8K+9vU29+)4WUBUkd1 z7@+DYI5zxPx*);3VXs_g?Q5a}qX4N$3k25bICGRMP}B`6cMDvFH;k7oL0EfWb+`@C zO~;HV387fg3d<>7H`8WC)(_yj&_r>FIW$|PvM^o$;vr~e0#`E4MjM%xT)K1ovtM8R zQ;*-h4l`}G&OuDzOiQ%)1o&@fFW$-DU4Q#j`tNq$K6UKwt!8;=tbuuI<}xksko)i0 zyU72SDs=i7MU{EM(?Eg+pz(jQ*+xIK%t(k!+$$U|G@W}Tqkha-bR*;QQ=vkvijE6$ zdn~b7=4;t25lxQwbkJ#U}ck_y{qA7L2<3n@wq-X z%ISN$w2PF@G6tV$dr_mNyKwkwcE_H)^e>c@Vvn~C#% z@Wjm2vq46ZXc*u_K~M`SrxpCbiohVrjVuh;|8W?H+?(%jYuc|lsb7`qirsakUqvD8 zx_#Y~q0$8=7PM~(!xMo9T47geE83qO!0a|(hz?StVNv+`p12b)L;D@VC1UW*K-iTr zG9Upn%cLhIYXc7XdT!U*FYOtmDy^l5X2m!49`wqqZfvHrw?#R>R_Tw zylJouE(M~pQO;hY3#`Hx9@QyM+}Fy*uLJ+BR}2mC!Sa+fKXqy8Zi8)QTiu4M+O|i7 z_XGLyfAWvTRzqDlAJkrD3Xm>5Z@83lr8h%$BeX zOe~I<*Fj$zCJ!yvx?$}T(L}gc9ZnuU~@S(cJVz@ zOU~JVn@TX0ZDH%e6$Q36Ma>p;+hJrm>clLL<3C?xz--G};VkzQrI#eC zi3B6f1hJJ%Dx{n(iQz%8&qiTOkr3B9>j3Zlaf~% zFd;VA9VtfKEca_I)z#W_iJir$=2PilzcP4d)`CyJwHYw~)|VN& zX1$$DFnj}`MneMlfqj6<%45>$L`ONgBD()-T|V*1QnfC2ZECJ401aHC5oE?~1Dc>(r!5w|7D}yG zU@eiS{-PZyjMg;Z|H6TTl)cdl=~L+_jnk2ZPW+u2zpx$hFIZxS1EYzR14H=3%+MD0 zeyok4A~)6!EQ6km1qLOhyqp9%!W(CmuZg6bSEQm1zT}syL4=wST$&`Hno-L4RI#oRv7JXN6(Se);**` zS-X`Eu!+QZ$yFA88mti@|H?L~-CTDzTre-*5kyP)I&)sK|&h)zFkrJs^-MTI|5KC&o9JG9b* z%}|{cOiQ5Rp|jC1cHGMRiYUsFVdqW;gy$Eo@5mYKc>Df-upjP6`|%>Vd%y;G=ud)4 z_yNoaql~eVHCU6iRA1xzv?qMsjf!Wi>@yU0FaSr6T9GL1IlEGw`L4#nsg@hIHFH54 zmHv+h*MT~E{JH&_f}4dPJcL^B5G&t`-%^`jWY5?joro(BdRg)MbRg*Ew)Xu5KjW2; z8Ugvpqe;Y^SpY^a@07%zmI6RVetm4k84Xz!92Hk+(egQ}C@M z@@Q_lV9#10<5l5Cz9-li_9B2tDPrsE(Q*q`>=u8%eeRp!n=&?ID@L*XCy*gimXPe0 zaM!CV1whzG7Wg*2mE}Ij$&n|2n!*!6&Lc-BHUrXk&*pi+G0~owaHEVk?LwaI=?3<~ z#jk@LECF=geBsi3*HoF>*L&?igJ%^}&OIZ+Q7_{=Ccpno9OXl8PtvinX%@3a#yHsR z?wP^HSW0>tY!#zX$kq~LMmW%ym&x|XuI>Fb4H&TOlEsl{H>?I~+i0uTca--`B8E@f zsMCYgrciWt#DRN}N7q=}y zam0;@^JF!eGb`2-jI_c3f^XDYs@8^xo4wdp7!ZUrXZ+DH{Up%gx?7k%q1-F8n*n&ck!GCC@YynXB!ZN(jn0=ADT=|w^|CUFjbH2n zdzBl=lxIjWgM;wiVkSLR_y@qB#lH+K!oqeA-x)!aT#SP)ocpgA>@#ABZ0qaZ`E9Xq)!W$u+;>X&{V zl<6ehPo>`d_6YIF3N+At0oQ<=aIK%U2`PHedt+zfe7`er#?G(w{YoN7NF{G zlj^K}eMPBKaMle?4cgeBh+o}(JZ@SbJ`*=YQG8bNOS zw8ziu>CY#^A^5{{{?PwQL@|`QY2mpVZfa(ezRL&Z?n&3Ch}nf`S11sf30LrY`1nri zo%cTYNG=t?VP3Y+{=56s*L^eMk?p(f!`n#3jss#&_Ry43oCHf-M=X(ADsAL0GzP}v zm@omAw2W9*PLr$%m$i-A*3Ogd7?SK~^=QL9V{;31z`3BLslojyGEG-OGC}a-h@T{I zF5-S5psg?Y5>2s=WcvzP5m=UvK*Yzh+#PSnELK-(t~;Tg#f+s)?MFzJk6`vfz;ks5 z&XXqN&Z)Qwc}fg(ycq1EGeC-^5iO6FPESfFAn`sAeli`W!|Y&$=8WitJ~O1!PwwrO z1OiwhskbW-Rwf8WI*2OtBS4Ef?50?NjUE%K$*=pFyg)b8Y9RqRpbho6YiIR!ZCw}h z0UmW;^%C|+5w3mD0|$cuyNWj_6XKaEYjFk?V|0DsB`^ueRmB0(!b;i-nI16+JI2G0 zjNF%k6YQNeI)!>#oj&DWH^6D?3EVO4^Y&bU%6O}t^e&8W7gVs)27KVw-dx#++u8!( z22LtR;Zf~`bp|hkWweSTr$Q$`k{G3D@}p}9;_W7>O3&ok+S|o}y$B{OScK9$wfCQvID4i0QB%^NZCT`jR zLuZJGq)%IMD`}+*Wufk?3%Cy#gBWgqA{{OKQXC9xCBubTWwDxoZpn$Th81t9l7r_p_l?c!EK#T}{YUS;`~8=1CkNSR?W8=Rf&57G^>eL7y~f6aZDm^`7W; z9j0XwE2T|fqL^^q(ZqExC;x!Zs$j>3Z`(Bnd$Fm#k{ea}%^%h0!17Jt1cToGLy1~Nyca8OjtcO7#SO1-o#p48Al7+5j^GywuoONT?f z+Iw1mI*x)yp{2&4rkF4K4D6;o11!T7jE!_kLZ4|BD*L^r)*hgu9brUmqm2S8royK4 zfaeG+Iv|;`0iLqaa)LO;(YYnt2 z1Z5~W#M#&1-GVDnjHRdLQI!an!MTdr8-!&NRLwj>S^)|VB|wSAhbV9kCTyuMh}c)k z3}a2_^Ll~%+PR?GQrs#Kh>$eF8Ry*fg!H68A|qM_Rk(>~Y{oa;({kV2_jjWMc8(u+ zPl^@XAsxy*=HFxYctv}(<1HTshCyMAdHQC_wCZd5>He%b=smpq+-|$0R^5lsJh$sh zO+0XJ`zTU)U^^%bj@Di~+dXXfsyo&)MV~be)2x07Hm}@zrd7=^x{eiIT^-DOi*vg* zOQ@GX?P0%kDU~0drj`$bCDvFxoGuNH@&6Pu5R&zTa-uNXkrZkO!m#sVtzQIONskeL zT>+;MqmlSNEWQt9x#E?!)7FCkObq~;zPD}yOIu3YjR4N|Ty`7J-gbTSxf^FUe{3JV zzWdY{BGATrySF~EeP*{Yc*K}59x*n=S^gig1q)APC8KrvzVk2kr~f@M`j?c3hGkwI zXqA@;q(5aQu>aCL4PLs~PG0uUu8rlDF-TdvXDN!So|U9VOIkmw&HQL;jQMdHrT-?a z_(>!zWzsuZX0s?soN({#Thrv|lmtEmb0!_r3pI=l1pOxObTdXlw<2ccThV#Dn{U zy3*q!_vqb^4DCnHJu=*wFH(?T;uR^U1)+MSg@>G=#S;|OAN_w41d8yWaf`&kJag>O zHm%*xz%N0vSb)D(6dp8E53;gl#ljfu_L`*P=v$g5;no+TFdU$C$%>PT&0lUq*y=UT z3tcLKXZJtRdWHuxI}Lm>_$gh9AS_$Vv22;Le$F-u@AS;jcX8QQ%9q}{^=$ale6#;- z_otg7pWuThglr-|MShAABQVMcWmcRX5zNmZ-A-BwZ?j?`^w@!7{Ir$9sFlQ#=c^a# zJ$s0@c8Uwx)$!7p`3`r_HlkVt>8{jZ3i^Qo?AAdxn>`03cmv0 zZSe^pEl3tt>co$ak$57c`eu_I#Ic4@P#t9sbOnN+C)M*t1Y~RO6`6GwndQe?H7q6n z(n+w?Q<1Jwzw#6amN@tO)G$BkdXM2X`W)b=_?4G}?=m2XqCXmIKPrnnZt8P@4xY@X4Ov_+*|b&zXyMzUCAKH z1Wi7I$kZ#|80NSrq*G9j> z)xYOStH7fm6RRM$7Bmlmc9{62w!pq*t-`+%$8i9M@*bkunef~nC*NjH-bb@XV*e|~jLzqmrF6^BP9 zw1BU{BsXE$LuhJjc)yI{z49Z_WcIuG<*jH}6ro;Vb(ad4X zfrm6GDf-B)ueE&{(}C({-S7V}R) z#l-!GZC=hI-;+knS_0sC+&aXwhX%#D53bomPj*m|14yyS;4q3iXt)PYclOZ6T7D2$ z=Y@W+INp$Yb;RiYx=Fa;`f}n!_$_X>5; z>$Dg(T7cqlka0&lY9-ELz#q1vfYyb&>~cx7q_h+`lr%0ukM7IUV87g`H!1mbPm4@< zR*NHH&Ha71&vTpOn*Dum1ZXGihy@A#Jb4kL)2@)WUPwJ~)Htfkb)Gw_N9{4Q`swDV zArkgF{nVh4#1g;8#XbZuPVRS?{rw*pj)qwL{&X8o!)hzxpAW;L&Ug4f+b$!67LrNn z+I7r~JU3Ljz$hzQ=K-)=EQDu)mgCAemzPUNPXrxW7N?!?#x#w z`PZ`PUu_pxjk~SvuO^|=ZS@1M9fB2-abWAPn~SnaD-esaA9e&l@{kjO^vkgq#R~2u zRfcSwdwg}4O&c4tR^nmfTnpeXsXkSL!&ClKOuVy^`Ge8)J7#lUD)wQk!h3L$p#90l z3>8t8iD!nRV!N+#)v<# znoek6)n@6YhK9AjX>|A=NcX^SW5blXWG7OtN#?J0>DR*}FWJ+oPI=gqjc`YcdUWG> zwUSe~Elge=uc#~u0tWLSl7T*aRG<{+nR4ho!zbI16bCs~T*8hSM&0s{vbl+(^Q>s<6@*sF|X zj4?46`F3E3c4Wt%p$ehbxO4qphP5E64cp=RWTc*_hfZ6!889a?_WAx>+lH?`3-BX_ z9|EaGf&uw4Wd9h06%2%jI8_;8$GB5ok((;xB!`QX#hI)tm^pUEy@B83`z>>lLhD@p9l3 zu?NYQSkE~>o{PK1*+|Ntxy{n-B)dr?fsZc(BJ7we=0LOfP@<@&)_&aaJTdzPm*?+* zOMaCa+3M3U?II6kSK-<0z^DWL^}xbc$fTB3`jJ?$97kaMH5?jU>x*0Y4Bau*eq@HQ zJXezvE~%}GI&EesRT;!-L(^&%F*aCrRl6>n%983XgOEKgr7MvSCjX2Bcho_hP?l1Z zXpOD_jgAp^9By;#*cX?JSq~jB%KJ0RXM^e8C#xPn4^mnahu2?;m239d2QGdS^g;dB zD*?d^KrIX;)NiH055d&9`uH+B8-Avj$vzw5$aY5Y33L8P7tUcC(@Bjlh8Q_J3L_1L zm%VVij&kp7?%4;f6=!+2avLlGa8=uH4f7VzYf?h+{ocw1%l%sVf~BbNl|mY&mXJ-u z5v`F!wy+oj&faV3Dv$GPcc&r~+CGC9Um>pFTFs%IY2& z{;F!Nq^C)NVm9=>q8}(^a`^Z7XO68SAKEpx0<2Z4J&3S9%`aqD>}473b8V~%^&^0$ z1zpCor6y<5*&42Az};cQxO83Nl$^Vw2$8+8onGPcD2yls*1b5-U%Tirmz=xr%Hu$z z^QSr{!PaTQD#|+^1uah^<~&YGv7|nT?P>xHTUu@Wifv(*X}u`c%4eLDBXaS2Gyf|g zpL@5w@x^4JmVwdg?FsCrtw0|;=0zJclGjcp45hUh?L|~GD4vP#9o)j*n7gLpR&Xmj z^x@>6q1=qLuYo=G%%rwr{Hs{&RU`w%JuG2($}zaguS8rTA{))LP-#uaYrf{u70*jGkg&#?-LXl9Dpi0t+C($I--nq=NDY+VZtJ29q4lR3yw{?C<~cU?B$EYDPBV@)L+uzi)%(Yee5;S&PujG|#t6(sftH$ijI&(z zIUr>!R_Z&zm9Ub^dZT_Ss@<3VYTNVDc4nXQtULw(!cyU0)#OuZT{9rZRH^bjGhFP^ zec1QM#>xVpxZP!_`(#pH4qI|HwAyZX1t!kM!w#(5qe@ycmmw|$#|{HmNL zE?$~`)r7S?{C)7t@7+;q^uF#J->9zl^_2PF`utiu0`LMwI~wrgT-97;g;*$$SHX0b zsnrsw3nj(UFeE$(H2Q@CG@ppNPy2#@oprkH2gl5Wv;~kTP`~^Z#}@HFO8>LEqW%NE zy}$SaC{l+$0GE8oiG=F#12Gb0IhkQ@X=sang!y%k@nUV}G+a}8XgdF@9$oxSpU(S_ zVQ-DrglyZ$kP0lqEXGO9eAzctAF6=g|CeI>pC69*@K2{-;hnSp0x@MxjGqr8d`zx> z!OL;lju1R<`tU2=SJ~Mg<}Xh%XrG1g{R8p+#gzXNoo_&~H%Q-N!?g$P7pCIp`WN~a zpI?2_)a(yOKhpeR&4T~sMsbE>hGNZ^oXoc7(y>rm18lM6X5Z9Q#6y?c`i z+iJnU30`MqYGhhUZDlctzZmPYDF|R)W!rfV`B5t$_ZvRth8O(tb7VLx@b8rWxly|> z{!fJeN9+_ptRD+>yGwq;FFN$wKI_X~_GcH6;Y&vAA+0F6`n*oMrlzK*rlzK*rlzK* zd1`999@`f-d-@6nO~e^nXFvI4R&tTNbhV;;Ct7S8l=9_kW1iCgS^7ZvkEIVvB)_yM z5u_xFmW*?9N5x$P)iP0vTqqO@g+ifFC=?3CtU$D;R(yV@*S~qAXNjc@4tz^vii#F( zHM()B7LTw2He&&*TDR7rWE7W_%3!>+gyI(Lw>Uc2&jD|%bho)pd4AAS>%f5n2M!!K zaNxj!0|)uQfrBG(!P&b2J^TvrJly|3_SP4nG8dW`gh6G^&{}}b^J^Qi_!7`weTc>q zI~DcsYM;@jHOSa68QZjLipKh=j9fA0Yt0HRI}|2?AP9mW2!bF8A`613B6?FJ_+2qX9WmSZ zzKQ58h@qUD-Ct|?=M5M^jo!45`v$NMF4cfK^h^^wzf}~w%vDuYXZP5H?a?ByE{S%g zMe^pL<1N4eRX5gpVwK2lScR*fkcyWUc*(-888S4w7b;U<_qO2cR+POqM8mlI^i|(5 zO558_26(ACVrj@*!+y?F?bQ3BUuIb|#$3ZhZe7|orR%Q8(d$K_hLV*n{n%f%zwf8KwmhY<$XvJLp+}GFF*VotA*VotA*Pr!!|DaEY`3e}J>|3Oq zHiCXy)R>F3-s{Pxb|tzSAaZ#L>s8l_t1Cshl}4ViV96Qh+~SIdJmPh1h@4<4lnO3) z8|>=bL2vHlw7v*EJB;N;oMW+AEEbE!VzF2(77Hi<7me}s9k8oFnSn%V?kImv*8t-S zncm8QXp^>-tlDI!cFps{O}*BWCX)A&WFhY?U9+r%b%O{6Thi8FhX!aNf)cEX5|_!M zHTjwJ@-uE=B6FfAUi^;mh^%y{UXiXqs$?eR?W#Xx(W=pW275nW0=M=-3OB?hvc-rH zMK2WEn|;LH$VFW|*E-oH?a(5J*25@8$i!Q5#c>DroxxNFGN>{R--7C*y7L8>U+ zi_0@JNs=V913JE>DlWulX)flU1 zTuHVNOE3i-bj;{8m=9d5rGCB#{J~iGEE)rN(Y%&4xKa`dFK#^;{u&tjf#W!n$z>F(*L&k?{ga%3+qrlAA&XxvkEP9^X4>AGr9{cVOH={QqF#LCr7;>>f-$N-8meJYC~X$u)HL1J3)smHU>) zt@Grjgu_(f#!T9de$Doe2RKUXAAv=m+H9{6$D;|~nzb`ug+Gr)XbR$c*Kt^{!SSLHifQBC34mc>=llGJCar=?<_q&M! z{6rja^#}%05<%Hz=BES6#n8OfPF-N)+UDB%uqhc&V{o>p6{2p$2GeH#Y0!PZvMeX% zwX(4%@3%{}L*~QLjPDpC)4hJf%`xAYZMuJ1fG3CRl})c6vi-EWwxOHF^`~@l#+Rvm30dTQgX z;l2+VxQPqBc_gN`KaH}D2=8-(0leVL8&F^3OGwLFP8XIe8x)~IA|37YR$VM2!) zUjJhb^6aHmUVHNmxq$c01d33M63JlXC<~SD2Mms^n8jAY5|*-z}HOYa?TSKGon2KsQ-{ob!$9J&wr# zG9cDjekITb>)k+oD9C4fMK{5^l>L~u&&S__N|P!7&r)6jpGW>*p?=RU%J>um0swv6 zkB2{qy$ld>`+tJ|4loXh_v2y5X|;hfbABMXsWEj@bW#A$JIqWXXZ&Z(dge*>sD`E2 zF7g_t`;bEvC~E1Bo8;-F<`lC_XUd+eJ-Xe}K%QDMAo`BnPg(>M`dRL?0Lzy}If`)A z$WkRX=zy>?pQB0BF)y= z3`e-X-xP&HsvC9dzA+uz%e;tfW-rvQo+n!v)?80R#L*pK0x+yOH|Zq+AOM%ept=-; zQvfl`Dk6!e(C$YMBH;E{9j&||(AozyP8!qWX`r3j=W1jALb^>eT zSIpxpQz!bnAlScR7F~>ECrLGPTFZ!|>5Ur7Kp(nk0YBaG3RM8SRRJ!bVpsKfnUBzL z79N|26ZnPCF(fUs;LF|$*GLiSDxa>f5saNtgDoBsX`=1IhbW<2A0>h;WP&rOEnF*eEW?ltL<`wKxX6sO z(Ij77Pa~*8yn@+=R4YwZk08J^nr_6ckz|!KBneqGB*+v}X^J3W%%~BG5vK(O$R82} z0Gt)T6dQ4o`%-haH*pR6Rg6%efp_5^op)K@2*oRCLUppZzB!T9?oJP}g}e&$Xe;OM z1+7Qr{8og~+x{Y(N~n0UhShNU!b#mQp5S@l;@D%2S_N<^b)x z+^=R2ui=wSx{hA!f(fzfi>;$S8?|8cE$)SUA{nxncji9(E}eOsG4+VSs-y2yA8~iu zj2n}&nz54+A?6~3I4RB^L(B4m^??Nl(jtqY{*npWT(^7UgQ*4P>7pPiqbE2TYjhSI z7$@iky{M($9UMkA%oisUq^zu*o+*;0Ve}2DaqNd@%i%b8_PQT0=n!003g(<@myO3^ zf0Nvae^VA?X9PBnuv>-k^1{`ng3at1Z|m=zlAT$9Ep+EdjK=lNri{RMJCPT;4sk}n zx@2Ry>9!2>Q~plB*im3|Pi>62v<$8ICdsm!6P!FK>_Yy59;s5gF9VOI3d7ar>m!!m z2>J9nEb0kF$y+zsV-Pe;9ixb@$+Yu+D??@$3Nas-r?{4$)jP#m?0D6uLNGJ0S9f$I zF~MNm{PxPRw|#+xxGFe_VKLX3Xw}qbz@}i-hdq&KiRu=QeMLps^NSMY=rPY zB$sKzX&34v;Sln9naNH!WaY_2io?@i49ruY@W^8)zU>g*F4AhbW?233&9R;gTU=dK z0OZBI9!p9~esu3Pb?dzEyu+$V0zXyU3_g;2&17e3KOM^Nut&&RUogcSZ7qy>!N`IS z(ggK$Q+M*l7X?3!jX>Z)Oy>!YmC5ytSQmUAIOdiF1!5Te`O$9#IOYSVO;*`M%V-A$ z>QeLL>(rILq|a40RH|l%8unbuo^pEo^2T=SU`Bq+5dqSQT|I69_=>~nFN>OT<*ftEnKNS}= zwCKu-c4cQdw&N}HYApA_Hq9pCdW}oqSCOa#IOCAG;}_D0(>O0r_w)KBO99zjPNl?u ze@uxz>Uhp0CJJD+!YtZEAXsf^IVZiQbCOCn3l+*OH9}xTpauuMh7Y2)WuU_nt)yNI zTmdo#`9bA5#E~Um_TtsMc>9QB%TsPGoM2F3-Q%S{?4ZkK<*9 z4KWJVPyqxLmW;&L~)D z&ax)^Hb*ot58(9j4jaX1rsnT8kN22#+DTE?8po!RUQmh`3OYO0GB>Rqc? zWg<13+E`{`K%?D4O^??qjYl4PC&hhrR9sKfChicN!QI{6T>}Jnceez02`)i`1`Qfu z@BqO*I0O&w?htH;{37qS`@Xw-zWrn8%(>H?+g-Q1`l+X?ZVz+wG~SzvAn!BROZD-( z)Tp0FVZWz)WF~-J646vpkEf;G;|a`}>Cp|L4Xr7~tdD4YmPt03eq-Vb|0QW=CiEkQbYB)_0KTbtUENX* z-Sk^DpFq~8=^(@8?NDP65p8)71SP7IDeOrcXWmTF5zkOSJJbyf$`%Qo6MdwBMs*i@ zei(ZeWVrrCKFu&8ArPxYEMTRG^mUln$_lPn2tcAuBMjLYtCv~Vv-6VX`;d=2?{$lG z$ik=Sh*%vwIy`r1ktQ->vZTcq-YUZ8FnC9~nJS~UciH$i(RxU`*HHr_q9Ms5U0t0-ai_#D*RAZfxTY`sMrg*p5HOZ9(8ek+ z{N2$L0XD}9QHt7JSBs+)QoIG~-lco1D>}7rxW%ElKBvQYVWm3&Yw5kitq&p6;bfDZ0|B&stuUTflG1eylHKDG)hR@(gT3B-75D(&80AfjP`V1Ql!xp} zF5pL~X3nng0JrLJ0nL|d=Wq(xWB7!)VT6KmO`O-J=) zTmy-Ug)9oi-VxsFsXEZtJCiH%Do}zS9EucjW)&{Fb@zmbpsW)eK(gz83?v};QYx8w zwX=(<%d<)gZ7Ct81?`8=OzF~cMQ@O;B2O8iir+`lfbP*PG#xCNQ}~@nh@1rr6VDcb zlu1!>IG)}nXH5QhW;aH3rB0lRf&!L9#RB4JU(ApOq1{zhAM~KY@}MLJW{t|X!iy>` zz5PGH2Wd5gUp7y_k<8Mo&3LDMqqCN?A`kghh`t$K250B)0j~Is$vg6Qd@CQcz)xzu zyG1&eCJ^}+FM{%_5Gby?syzAWzBc6@Oli`@PNqb#I=`b5K!Ww2y-k5L3PI+%)&`)) zyhe{Xx`}2i!()g8kls)PzM!}Zg6+5>KErz-tp_GBqODPX_ox=daP)CB7Kjm3*r6se z^9bO|Qe2!SKg=;t7%8eA!18TYN=F&3(0ntv;tLUYJm;Z1KN36%oAt(LDH)R5QGr_9 zX7W*J5z8CWuM=2|_c_|3@FMFrUrV_)TUl7CHwwRk8SD`gC;mLP#cq1CE*PPRL_XuY z&i%;<&~xGJEE&OehEak(ZqjL4=|}ZRm%L>A+zO&8JttCK8xZsr8q1wqqxNK0V>+65 zQ=zhL6;7Q_mil{I!4~F_nV1&XwzkzH9#cS^>wwugn0hoT{$*7jr@9!pgS|Bin_I>% z+Q}ma^kS1m05)r3|3H;Bc*Vk00ju@3tKC$KJ|?^J~|d1C6y_Un0|@1eh1QQK)hBr;y-jh`UM^j)G| zs_8tO3mPtB!;Az%pG9FDIDnqz7?-d8^5~Q?+SQ3JB3sz@7f~lovmNSL~`6k53DqN=c-FeyltA$*TUBsR=N0LW4-)lLp01 zJ^l?f^YMcoI>Zkf-Gmh5q=RE^i%l2$$9+j-9m-Ig1USBTO8a09{__Av;4uO8_zB5cjcMZ}0g99bm zxg~jhEclxLO7>>NI)(*o4o;;a>QPjMGfJm<*Bm|N@*S{VujQp1FR4DY6`lTqM{ZoI ziOr?OtGr$Zh{^hCqp8rX?ckK=e#HJS zEW6udQ5uGwzsxj!wF)h+UXo-BY`+|-;G(pks)h&Cj)TXy>|)b;@yL_954h){4qNp? z+ZM|);w)IfOVcphf@wCYU!+kpx-_|9m#J++F{yP?qz@l3k$ZRi9>}QNqQStMaA`gt zz>XVBsTYH7H?%$Vt!f={bH_rK=lm8E5hgVe!(zV<*LKvwttWt8wz5LFl_*F&Fdj$H z%&SqR_uGz%@p-aJiFt&Q1IS?l)2R(&U*hZiYXopB$; z+p)mgszg4sm9_)cNxkm-1RbkFhjlt#O2N{kGd*@NA)SrZb*HA$KuLN(8L*80d9356 zqL8tbeufRA?&$;g7+B*s-j#531FQf==zycO9XS6q#?NX}EhIupZI~Y#qj+GtMp=~@ zGOb;W*D0WUw&3w|NixPFzj7TexY_M^*_nMoiazz5=Q%zAx;lX)i}WvF2>Tx~<#?a8 zlfM*rnXxaK$2a#<*i$vMki1ceZ`WMy1C>Y`oQf%llIr+ZH0n&}4$g+fJX_l%q8pJ9F4O_TAjG2`| zuPnCH2^@?OKq3O2TxsH6gLOPAJkW{B@5mRoapuj>A`)4_MBDXT!MpPqco2-$IW6`SwUj}Fa)8S)5-J~TkQbS zv}So4r;5rv_a=Lo-|1Qe9TYTIo^BS*ov63a2oaDBsEJS5NJ2wLNxWslqS%;1Ur@T^ zA_~j;G!qpMbleK!Gf=F*ut7KcR=D@#-Ut)g53mtRgmBI&OyErW%8N~$7dE8^2Iv4a zq4>i3M)Xj+e|880g@_bd6Wg(lLYsr+tO35B2cB|c*i<~P9P9uj89G?7tJG!NQ5o=JRvhR4mTtP z20H>hn{WJ8;OVtL7E612{iffPW4dJXS)82a@ijE*mub*l`_uMQ*1N08E1u4x7jmi& zq&E3ZtoxmumE7t^136EHmp9+!qClP z*P#^6&L5p8OzN zmP9i)TRCfvVD962aR%Ii-5)Qf+L)B=A!{Y{z_Z+^J{Z)qg>)HiPS_7+BoiA%*(0Ia zi-`>i3R(*k=mnTQYAiN>Sja_$m5~4Bm?GU`d{M>oI28jgPG5Yfo@c``y{C%tb z>mP~zaKHP-mll-Dm6WQft6%!EYhTe%32C8qiW`rA1d{v!vaCU~Xc1(y^uYEmzGVTB z8XK3ha49hcVRWoYp60y?0*FS7U{Xh73?!P#x(p7;+c?qbd?;k+Dk`N>@lMox5CM&CKlkahLHYm% z1{N?;xm)tY+v`OdjVcy_E*pX>21oiOKF9iDp{8jm*urJ(it}BnzzJ<+9!;d`$_W(N ziNwI|B)hW9L95V7ZEa_t|G`2#&o3L6l$P%CUuT`KDHXD3$ZrNO3+?WVh)75@FA&Tq zz`}+@aG;=|7{_k%K(PfX-K4d5c91VZw>87by(=L}MiG@1?`!Yw?Clsfebf5|Um{5Z ztsaAEv@B5EiUMhE1(iTZiT|*65?s;9Xm#aW$PdcZgqIJ7Blh_fl@R_~t7GQ&ogS3G`B<)Hq&;G(T+bLtpuIJa;~De3IYu9K5>v{(ZswZVeOm`=k4+ zA~X^Mfk5XQ5 zqLp_zPQxjKJBAPk${b?zxj-^ASdIvOwV{@!+^DrD6mjmC$5pjwohW@uLNxL81ZF~q zAF@dwwx9UxkD@~h6 zPn#jef<#jEOSQd1IlA6koIMLH$1jb?s7z_xC}Ru87AjH_$YqXT@z`}9Vf=JO52{KT z)zOx>Arz^_%aGr^*?Seez3)Tj9jjz3_gfXgMBQd=c zO<;5D&QxVfBUZTHGb;=uxB>qZ|xL=&B63l-?ICD$Cq2dT6^fM$g6C^YX^E#NmiIXEUk>N zt7X_eW(v&1(I|H|Rvlpj3=?*jd~U~WBP-E_6P021#-oXN*1od$Bt$R<$5em({KK++ z47E#_+it_-(49>p`FS%b^Gwx(vyp~+W~Cl|Zi@3tAUk=<)&9XaAsgHRqXA8z7Pe1O z8zq{M=Kb5J&H&u#{-%e59TkB?Gmv#pA6f%1>N?2^?JHagPe@OM3=zGEnICBV9TEDjE^y&TRxdG?8BDb|aC^$OC zLUq)Egl1}*Sc%JgFBXWE?#q<{QabFDP-MHxY2-1 zw7^g=5TCsiW(M1)OQZbIEuqT32rK=v=yin0y@HJxMqZSWC0g@Q zW6pUL#m8R$;??hJGQ-=a*jFi&$sbvH&4P|QJhrak5p>Iwi_BiT!+k!7=Sf>niL0(C zR9*NATNT47irq?jTRT`RT@MqO$>8GM@iprF-HC&n0)HYnUft^yE$NCRIr8!Jm+QJQ z5(9pae8n5ausqqLy?Fd*cZ_f%@B!TDj2zHq*5|i7&}3baYHc$qF4+U~bdykw6KP3b z1n=~$n49#ZiV57%Tt8k3BnP7i1M#9+#kb2*WBPSXSYuBWqcDWo=ur9@BS}i{#$>h6 z#GC{+2X&jQ#h>X%5Q6B5+)3yILE{nZUwx_ zT0~ti&%zoCz*5@TfD#VgCb*()C*sW_x7M!~0rS;LflvgF=r8s;%J-{6x7CI;RZ{O; z)8Z^;po?1Rvs2%LZV5usX*d=tgtFBw7fIUQX~GwVs=^}puVz@I1XXc|sDE?!pE4?E zyx!c3-_I-`nfigJA2wZ!hYEQ6vK_R|IO$c3ER?34m0WKNkMuIUP? zhsI^Py7KNKPR6$V^-~7{7Rm+~NhJ1xHADPY`>bRG?djk@`&p!J23*Sq9dC_bL z^8r;FxJcvo3U0x@bn5uFktJ$TWbHK1I}C|R<~yhJU7NCc{$&z(8@%btH{4!TT1>_7 z+vO|+b~Et;!a@tsLZ4BtK73ixGXJ&~O+ojrOdpFOZyU`^{-kBln8 z>o7rr(Hu&F92z0aG7H=>Vbo$Av8eCXJgaOhG`#wIK{jo6>NiDWjVZE@h74wH);ESa zIDv&^SX%&vWJzQnJ7P>9+UylhGqhMegY%B$yIFMBPa2USl2sXMlrO&D(OML|sprn( zsfpVl-S>FwbD+>15K0k(@9B^yrBuLVcJ>{Sb&f-qI9ZKuGQme1(Rp(0gWqy-_P$vp z?G5fy^L1g7%{OHuR&8u;oP~u1TS+XDcAky&%B6@K5yfWPq~4iKOoYmLKHmu*{W}L_Cbv*EqF3 zgcERohP9+CS#qfGdL6T0I)c9?IfmO2f(c*S8jK2*Q_K%GDCsn&%Z5vSThFPhY>Jhi zkKT(M&beDagpk(|wzlE@QGs;RBV%287BJxFa{X)p6WnCu{@GPmS2 z5!=TxU|(jRI>LK&IX}lB+r$SeME%N2)=qyCVk?!fZ0cBpH9cWfSU#e$lPsISCj7w) z9V@}bv2O_t2vy`?S(-kR;KVC<~(*4FyMjht+9~fRZJ%>t`fyN z*cepyX>oHGa9A^rFvZM;D2Ytzm5vqOqj%3Gvt>u_|c|AOFM8sqHghYJT?6(ZL0fY&)%Tb zSI5`L0umZ9gll(x)MpCneR=)m7;lP*kMm#NvY&w-a)K*dLiD|!u@%e+S+%MO=-`z7T9jH(k(GtG4ZRDhIGnlF8Yh*VN!(wBNXQBh654fXQiG;Q+~I;az)*ua&}1<2f)AUYu41TB zWz7(N-34fn6n29(B*A=3srp_oSFMDz)o#3%ueHMpSY221+Q|(9O!qL^09^b7izN@l z+dW6=Hmf;T00YWPlEi*Yx|k6o;4A@C9P>_ToTQ1Y;RW^azy?C0T*dg_1x)^cUG?Y2 zD*-T6Gjn@WTgw+=BF0Wo=%Kwv&Tk+RB#M*?39>Tvt=wRedbXTAeFBv!Qe@0sLRAaD zS-E=!kDJvi7jy6h516<%3VacvL6@hZNYExe7;t5Yw>+s$FT7)CLu|n$Z5hbe%f{Z z0EHT!q_e3~>iw<1vkYkJ&1B$u0iunkD?Q;kV4`9nZ&4|wGNEKu3kKpTrL!R9miF`&gj}a zg%(TDB1;~?l1tXfpMEyLoY;S|Fc@41T;ysM)*qlTB&VOGtnNA$0b zrjtbkMhXyR&13;6T0~7-yylSwL!)}{l_0{)0#8dN`-uq1|1Un;g%Lr)7P_~x zvvDAn&z{D>6+X0%7(!MpL6=1T?x)M)M^n{=iv0&$gQEtaVRpekGnJOTM|ctxs<9X@ zj``j;abX!pdC6UaSaAB6CkRdzv?t;on5yZQ2AWMx-T+-!re=bd%#Or{lo-t;3*n<7 z89sNXh$KHb0uCec-}=Wh#{bXsRP-Z&`TsX`TlGTcp0(xCcZi#@ya5^MnF#pChi3^I z*5D;nfz63OP@jVj`_k~1M04CP8cx}R|Hb^`_0&I^7%e-lVjl6o!^R}FI*#?tg3%uU zO7WP(RRqitiRH!N>$^VVZe6t?hPx+;UZWU3%PZe2I{aarxh45Va{7NgR+y z(;%9G$kN>~>$%wdTTwudZ2G38_O#-{WfzZqee=WW8&E1CrF;;LK_SV`(1(~uL0?*g zUu4ezX&crUliE53$6TG;e&)qG2lM_WLco|!>)g@RbD|=u%F*T0LLvvuBZ~caE(r=* zK*E{xV3x=vj-e=EX-55ixN|zr|2+mbdbf`k9$z{c3UB@B$?^BBx8YyiQJIpv0xFF^ zGgeQ>9*ENNjO*9E{7|Kw6D>SdG~6dW9$1tz4jue?vO%!~4U>QU|1{^}A+IKgf9p%I zXx*&mzK41L)>Ok$&ldK&>3X=A{CVxqZ0rY@>@z(PPTxM}qvG--R87vMqq780*KNTt z?(%5kV+hJRxiuHkU%^L-cYe&OK{bg#j=?JsoH4r5_>{*kOr&)sK-RA2Kb`!XH&ZvqQ_Q6Zq6S;b866Ov`UDT>HeKR=;}=QNY_(YENOV zE^nwxxw))9{hE^b)H|zih?S48$)^r@V3}2lE0_#!GFjsdZga#c7CIlPVI&B1=@EQW zi(lvXp`IG2;v2TMDQ=%FIqy8(kA6KIK3zKGIL(MwQ5}<=kLUt~S$osMJYm^!g5%Z5 z983d>wzY~}vv?$h?d4KyGr;kkL`HqpSzqx~CmVBm!nzGJ#0E!Qx_J7rtO35Sk$z_fo1EY#phyEE zprsef%Qt&mQEnGvGh{*V=6W)PF}_a4?yKz;F#*34C8kQqpMeR~UEctQq%(w#sbHe_ za|@A3$bk3*jR&M@W=RqI2=8|0IoGkm^EI4>+dA}z%=7)TdIXVj3tqB5JYXJMELOt9 z{?OZNh7$QJgG?j@-u&r=*lgL?$|80b0NN9H-WFh-VuvFIH2|j3rwy}ToVGVRnirG4 z!Wc)h_P!yv#QvSGXPCZIm7^{Ec>tXPb$>o&x;`uOd;o1Q{M=;-LH*P1-S7VIRCR1C z>c0IvfCh27!hjN|IVO=1+|kQ_>H)me8Cafnou^Vo(i06YmL6&4=#FS6-G@sEl9W!I z6mIi--BVYWqtngKV>y-i*-aS(w7)Y$Zy()(ef_weyIku+#P>%xfg1_hpOwZ?*@?oU zbvX=bc^8%lD60V_Z3+GbFMP}{dF0y(t4w=c4R`ry{gB&TRt_sFvcu0``+dQ z73TtkfFGkdTjfeh(@MTFZae%RMpU^c&EA&7e0xW@qbHg3u~aV2TdBFk<*WbD8U+gU zRstu*eU+qL0yXf55SyhAJXKb7ErigQC^EWAvG&MrEQF}hq-`TTMkPUtJqPTIBCig$ zr-WU)I$UYZ`6SLNFYt2Gxh+ASoV}GKdxul|=@#uZo#-7IF5+S4B<5C2xB-?`O8<%( z{M)K+GapClFHrO#8*E;Z%)||51tZuYkdSQRz>aIaCJmJCjY-g#4!> znQ+IM*Gg?b)CX3*Q~eYQ4*pL9sf`R4#!<)T`ln2BWjblU=cm5M9*D}c&b6v zeRl4I@@ps$Zh%7_OXy%1DV zKPO-+gwbHhI%SjiKP|xovcz*cnk3%~@UJEkQZA|EYX$FdGNFI@Ch6rLiWs7Y;OKUA z!N}3+eMs-sq?sE9zgF&D#~3nm`Pv)m*7r~tK;xf&lUiTH=$-PkhJ$@|xF*RoZdEA> zM|u%|Dz3EA08!p+St_YDctgBih9K?BDwH}FZ3oO*ENS0%L+cVy=?d_grHyvaJgnl-HFpVLL8DReX+q!N`i^Vl zTR$4uEi(ZRtZ^u#5pT79r!`DHAFnvYm+uo#2D4EbW`>b&&vD;-6ur=Z{5#XKpD2DV zk5Xrz?TYB*?`OWS_5DofdTf!%7UDpcn=<@llsK+~@FLmGLUi*Nmx69E4DJ6ydTq6XSC)VE&g}JsNT>R)$gBJ_pBvhVq{#6gj3EIsapO?@O;9%*)hI|f>d=diZ9zQbq z+djciXuK{;V785Ti{baUU1YdFKl`QHEv#R)e1qGb$#deyokOXqxj-U@+4)?Bs28x_ zLH!&LK+8D0`0D)A+lLE86)20$B!S9+@J1F&P<=oB^aD|)5n|t=g#osO4BahwHJ)bS zN3KlWVOQ1Bw_tP;H-|(4v_XqXk`S0`3@vWLPQVKxr{~al5@-_5?P5Xti$?j-YYaXR zjR?lu;DM`D4!#m0q~L_m7E`sMa#75UJz`N zYmP!>{_r>U>b5qKiTRUa>_|Oz+gl7iZumU%(5 z?XjvPb4e!TranGwp~U)f3KIU4mJS2~OQ8z_?h z1`7JWKCKD;$Oip{t6cQ zqh{{{HQ3+K1@%{>e{Np<%n@<_4n+8?k@_DQXU}B$&wZ-R>Azvxd(X>|g{vW7vuykh z=5Oa;c9A~p12gITsjnt%1dF*Ih*9tz{Q;hoogog#=JS!t*p(0z?|L#=U6w_E<^__^ zGHR=tD$V{)o`9=4zd22&eXIcatn4SndiV}~b;IXzx?ZtSj{?6UQ2-A(N;pW2)cps- zhY5e~E50pjAO5UYUxrwe6?UpxRUso++r)C<2(-aj{>=J2>fa{Z-zI>B&rjnyleql$ zXa1L5f1CAxn;uR#K61_9u|b1@xEJaEn_Ev+Q#CXXsAm{(BjGa&yw2_}|!TJT;i`jo+kv&87}ay6xMxcQYW zjB5Ezlj*(=OoLiN8G6NKEPm1P`|rrfUZhi#54jhXpM5ncdmh1y z-0ME`TO*yz@WJyD5fCC5FnHe?Ce{f}P7rkHtRQj|8RflR{9!qjUc3Fi7l2G=(iJ~% zY16ql#1cesWRRC_tRQ$LwJ{yB6Z#a*`Ib^oaO^CaHbvBMFhFF?*t!d?jxNWGRVfl( ziuC128j`q)_AuBv60?DVM3V`FN7N7&WuvtA9jr8fxSLNzRfsBe2(#FYfN<||VJ}=N zMrWfIfd}gPMz=BABPEoHc`!D)xPlbG^lB~isXaG>1!iaWJH`W5+^WLD;De2P0S#%N zxJDmOxUb&Fu!j+5i*3v1w^nxsoUoSX6R9Tl8H_bLycRG*w-AVivWR_Z%mueO4J?yJ zB9m-M7B7>K*V7Hx+47AQ$iq>5_;|(f^Omnl4c7|E1a+6*mh7KE7fe>0%aqN%+85_j zNrH_L<#=S^Y}<>Kn5I`cEL2dlH-E^NBfg`5pD^ex#~B$nfqBc@#H+18_-H*TXzmaM z2qvR!Q#DW2Mqe%Fda+hHaw`3)vY`L1R3zx%^CfnQ8&BmcIs(KDMXcuDu3RT?JhiV} zQfxdJISnzt2K_jJc}$}M%(?2NuS9nT5byAlaQq{B=tEcK{;5>S;-O=scN;P#h60RRA?A$9=N@BT+=(f{o4;s4*n#8hMf0Fb}mJkB@p9Q$4u#YIHLzPZ6~ zJMGYAC<;0I8*5@`Y7GET zfBOMUz7cs8b~9+I@Ay5JhV$Eo`yU_ykfv7d-`{CO03frL05Dd#V)$2cGh=-t0LXjo zw-3uV*b#O>M$Nv-Z*KqFCiw;_VlM`dnYEJ}0OSJ-06<6ic9lS3o1L{ZcCZ0}qTm4l zup;04!SctC$h5LG)CYj#>wV|V_w6TxW_DX?t?yCLHX~y)PSi>Rd=whAG)sd_+H*R%YkyqF(a^T7;fZ&ZBIg2@ z=B=;vV|VSdh(@Trn8%=8MO>i-PO;6QBOl{$Gq;O6-<3D~MLf)vAwE)^PpscH5VH!D zaQ!=vE=|NNS>spVO~>gE&*=}Ar<}K|XAV{#{a{jPWFASG0R&l@`ov_TIC2eW8p%mxjWGjbGW{y_+lGW}QqpJveX=pB2DRPIEywO7hpVWPjkzn=T;ScLYtCCI&>eWk zdv(`+G#N)k%wb*1Qnc?heIYsw%%#K@iYBCXuTA4dbk`eXq$Ucsri>>__k~Irm7m+# za9|$WV(CGhpx#n#xe)J;33fG7>dD=IGH^E?;nCRqcW0Bb!Hto@+>=R_KNj5C;YmNi zyZwGya=ubkN|k@|Z}xs3wy<1VlHRA*2PzprS>S7;Td@N?G zFs&wTT1#yyn)oL-G{Zz+(ap2mLh$WhOmrn=_@bXGLWO2{vPESoQVnJZba_LKS!%P~ zs}fq~kQW8sPH{1_k}*eI?GnT~dW5468C@Ib*o~0o=0ps9dICdkRRgWeFt>AEkEQez zMcp}tY!hTy&OP45dnVT_P+K~P=`r&~MXS?HIi?kz#1#LCrfkU^qD%6L6Fp`HcaSvnh9=ckkP9ZZG z<^Vgx+_CSZ4x1)dVF)NE;rb}khz$O(B+b1<9qti24 zS`2JP*2CLi9SIy64uuYh5B(>F)1=eH)9aMfR1*Ir-=!WDgN>`JvZZwXE_+9B%`&!( z3g}EzSQP$zs6U)590wm3;5ZlpCgUw;ad_)^fIT~p#^${s-CiC3mX2_EcK`8Nlk&7k zR8wEcQkEj7lpS3Z{wJn7h9Cx1Tvyz8glL3u1Zu==#BGFhgmnaN#A<|hL})~51ZKoy z#AC!{gk8MNu*I-vuXe9>FKMrGuao3bCCjFC3)^MUh24(biQT!`so8$>^89?#`H;tx z=Zy=J6Ot#CN1S_vlY*0irceWaYL{xcYWiwkbq4kPicz*1wn5choCBPrjN^<`YUe43 zDSJ9QIu|e|?i20-0bm<_yZcZ_woQ$eEAFL?YjX$m z*Jl65>c(dF-sS1#4!zxz^OGy01ES#v)Zy&pUOEMnyd%&K=mKhH?%t#-9_ zvE9o(nCwV@Vj(o)pY|H}Ui8lK9S&C!b*}JXt6WsW{R{uE#6r3$+JonehvlgJ#lp5J zm-`ofC4#zmx#0rzsnMdmx@o!bsh4wnyUd@mYE_QES_>Daa?UlH`2>pce@p*KJp_nl z{F!%)7Hw+ROj-PGS=}_ZYM$LlubHzbO|uZeTJ2~ZrdAL=H*AjDRHj+RE}dCOH-lk0 z(WLs0KO(#K*ZQA}Sx2Mys^CSMixN*^_B_1@Y3%&o!!f}?;>p+}>rLZz<74B~zFWJ8 zhZ_v9H{SyeCZ;rq_PM8>?NV?&+Nw!(G1-9ii3mg+1BQ3ox%Ps3I<1N!Ivn~Hx z23jUsfUYyHldf~F!>-e=vkWiUJ~g^exSuk<%{}2g!97hqT>>Lp|F#Bnx3A8wt_b%D z4+(b&F9@%4_j3<(cXDO-b4MoGc6G-)1Jch1dve@aSe7Ds)_c}~&bvq4H;&oQ@=UqL zhnhEzRYupBNjoNoeC#BX+L>)2j>3l}lXU58jE)~hb{|Ij%ttIwCWjkLhJZW0!<|Wz z^btmRy~B+0v}xYNbWb~or){{)KJ4{CmR3m9%BkhJz7LMTH{0Rqs4i@DY;k5eqpaz_ zldVX3e%WhoL`d)p@J8S`kQtDg;H%)=;O#$dLAyYM{R?_~d*gmd>Z#~y>lx@-7Bf*D}?z)socG)H2vH+R@rE+mYMR+c8msXA9aYAma2*>bcZP){53T z*LpKjEVC_>{6;#*JtxFN!^6Ns#>2-W%tFh;$U@G-&%)Hk(#Fw7*2dQ+T*q6-phdhy zxI`pCAVAE4$$`&79Cj9UJ@etKTw26EhJPsWknW21>Dbf&{=0kF^bqj&f~LbQvzJVJejype%162>=xaszFK%XMSn&92=dXaSzrjFG(t4b|3!&Yjyn#+ zhQNl{1k(iT4C4%a5bO~QBP^QlpZ_yIVdn2l>&)QHf`Yl3nwgxLpqagyyP2xlA2UNU zOEYmZbu-;#z2o1Arsk9$tn{#!l8w;!f^P{!Xq=I&FeY{7piBJbnUxbbefZ!Wi+S zFrNM<)ScCEy9<$47h-K5v?+YarJpRRi7b%==pRF|8GrKdZ zFzYZYHA^+qX;g1y)I`I_!bhPCkBNwhl#7y!P7yN|Jrcnb!4yvwR~KCpRNs#Z6}c&yLx0b$r8)PvTF{=V#IIdG_A zku!F-3HWG!zWaB`1=9+9?X@kgw}sDtCj13+pD1f(X|Oh$!D3WVo=TDCaYDa+l*cfb z)skjPU_U%)0C|sNg{I8FHqvw%s1y3pli!2z%({!jyhj9?w1 zZoj~q@elu2$>aUOe^xYg=W(p6hkNb${J0WiUpyUYKg8?yS$8tkuIvuz7JWCaM000* zUjiS#%XvpCuR~!koGT}z>z`8^B#lr_X{Jt04(Vu6OPs^avDD|ckNTjvehXXEkFpM{ zQ_Io~kQF{|(7zKuwiln1`R#+yiHdB7_ywOQf5qYpl9Sp@U+;%W^tq>ysHK-U32PN~ z`e_X9iZ3HJyxR=?<`?GH6AtV8(3d!d!a&(F$fo+-vT$&uH>2e;lpyG2u;%TiI%D-lPb< zj`EuJF+71U>;)t6yKR@)4ppxLLWRblH!S2Cv%Ueu9xJlrcK~e-2!BS1w7w(Y8Gf>X z>hQ5w_1Ux+sCuQs?nF@x#jnp$cs5SBr$aEbESPqOIwKJ5uKC9U;(kN_Zm%&0Qs5rD zHtEz2^pEtdVI_o>D)YN^6*A<$L}v&VyAa+fK)qxK(Xy7x@AJbAakxc4M=iKT!daya z`I@hH%D-wo8@yV%Yks^fOqgYxcv(htDLDFf;F-^l_gB?t`$>JIcU{m;aI1grgwKO= z)H&h=^RKl|AWP$NYsif96*h?v=KpqBYHdS32BygbLSG2`@Gj*e8=6R--kRIEcuTsv z;A;_E=}wF2hS^z0R^ye|roOk(x=3@)vR;zb;nx^-pzBwIYFp21$9(M`J`tI=W;W@lxLO8LiqMAiDyg1rQK^hN%{#|6GG+C`5tRWJ-jHbB;oh(KnwG7d z4sCUzU8Q`4M+P;;;3x3oljIs@bb1DA-LN4^#iX>T6ZIKl8#?YGU+_r*3a4WA&YG~c z((kDBy2=^-p3qZw@|wut4dI$W4>fd3w@NV$NbJUA?wr%eGsG7WIWrkz0%!0WPGDI! zfo%&DIW43uA0o-4*Oe4O?abf&&4>Gt8?k=Uj~|RppxA?;Vj<^Wp|<*g6ZUoeDNn$C za1+7&qRGaoqXI#Q{B!DNvz(MU)?1ka#rf92vbx?Emeq_fY3Et87RVE1ihtdvHS*vE zMOhOGg8oG(*w@hvjaBeFI_eytCk zeV|dIdL z;uF`4ySCaiEzJd_2Wovodr$k{RmKLE$HbR(TI>&R*XI|o`&@u+?S+wse8#{n__2V* z)XJ@{an2vVQa}yJC(I|$%46-Jq&b%*dmeBdCYOJ^j2y$ZS?Lc{NX_2_Mxq)h%izY?fTIrxJd*RId9% zr?|gz1uuWq(YZL`ogkr*Yz*t!&zB#XJUYG4Pm4LQ??l(R+kGD0zf_l{ktDOm&(HiO zX2&M{aDVCgO-CJ(gCDuSfNkp1xl1PT--cf##g2_z|`a(J)syn^&o;`q^rrP0a%|_tz#z zpAY-HfO)o|{f4@%wxLdcm=?w%Bk0)&+O)JczHHmkKJGcH8%3a;&-17Wm8I}1F*%{po%o=@);C&nmyAJ-G-aYGC)sVkYcIM+n zRRbC0Vrv!CG~8b@^N_t#UXCn*i{RQ7%W5`z(3_FVEU$LK!AjKD+D*~zvYCvkIgBN5 zs3nU~E-m2DqQ*V>*`(iF7vVGca$~P@XA|)At^9-O1J8iZ-v{BH?EaxVS9o9MKy7%@ z6HxK^SlXT&q*J~vn`Bkhv2fQRf~btKF}#Y`o(q>TxR5|TkJg^qr7@XwLxc0oia6t6i5C#W&B# zApN(Ps6o|lX~ZzYUBU(3EL7cDKs*vO4(SRh2Oq7u5o!1E0{h*}0ja!n=&BxK$ak55rpM<43 ze)lZi82+S@3He!{7xNeM^0?gi+INy9DAt<9^_=dVri)cx3f7^zY5gTjE0jQ8-k z{lr_-PQb2%_HvR|l2*{4lfUmGoJl-M^!-&%$}mCdCxubyA-B>88nc2_%HtxK#?{Q~ z>&3LnDdE-Qxk=xZ;{p5u{H(A>X(g(FstZ+zNO!%~3W>++@bYkkr`4M^VYny0GoG^u zp*V>+iQ;kVgneo&aCUxH`Q90g8)oPOfqWLIxKD{9piHO~8cEzF;w=NGMyQ^PB)mZJ zuWncIA@x+*Ac$Kuo60AjUhyfS^xwxR(@ln2Nf+g!rDId-AjAc_b^LOX^-ObkOQXXD zpW<}#QG!l#tF5H%4HW}v7u`p;!JOQQcR9^PGJ-PLN$Wk=hF?$4R#Z<;%aAT`Z8qDf z%J+brDaM`nPUTSPP@{8rGI0Tvd21V5Kc{)pG}`$v!*p}J6ATz7*nn||do$ssE=PI||sE+ISVEPv<;_-Sv;yd|Gzn_fgP2|n5RIK`4O z2&9=~JVc)Ka)}#exg%hZHO%Sb&2%TY6FMxOq)Ag}sWIJ*>RCNnpk=6fGx-<-V>=d* z94mt4{W(1QM30~FQoUdD26eaGf$7jru zP2gWEa+g~wlJ10zITG4^q1X9g?tYeB-}w1NWW#dgWsb;rsC)2*G-scI#tA-jRU^2m z6SHJov&JM=6)Yywu@h8?NL=W2lj`pi<=hRxYV}&PNsg z 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 ZY>aQe-rPY&d@tdL&}X-qju0e<|1VljT@U~O literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff2 b/docs/java/resource-files/fonts/DejaVuLGCSerif-BoldItalic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e29307ea2125a0aa82c4b1c16aec6fd2db653d76 GIT binary patch literal 113032 zcmV)!K#;$8Pew8T0RR910lA0(6951J1gC@m0l63e0RR9100000000000000000000 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 Z2(5)b37^BrsA$aYLq6X^D7;3}{{hdnEj<7L literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSerif-Italic.woff b/docs/java/resource-files/fonts/DejaVuLGCSerif-Italic.woff new file mode 100644 index 0000000000000000000000000000000000000000..5df6d001523f1ea293f55549335a563469d14ae8 GIT binary patch literal 166552 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%0A{j=ODoM+B!nLRT0yzEq_Dx?0w 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 literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSerif-Italic.woff2 b/docs/java/resource-files/fonts/DejaVuLGCSerif-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..61ff1463c6f1a7e3a92e33b3dee2d5753bdb4752 GIT binary patch literal 113988 zcmZ5{1B@pWfs}-aF!qk&d!2482gA$#56-P zdywe5Zu2)$Y8OWVIDZF`LXBaEf*WLHE9{u}IltFIn+Z90nQd#X+Jpzs{&I z1xW=m&sm6y94q273_qB(9IIc-4K2E_WJj@EV3=jDE3=h#94VZpsn6y{AqqnZb-7n0 zQdcBO=|`;MOk|y7o5Q5PqG0qO6{t$3sE!xgGgTy8k1or-!}Bu+BZ`ixDU+!&pW7DL zZ8~%3$cv5bjDI*cJDO(Cn&o6=!3<4hEBh^H=hWQB>$`F1d=-kxUgN3Y%-XYVdeuN$j=DU*N*v{d=iWk8lHNLhiU5O~69u~GvJo4J77Fwz*Pgf*X zp6^5At-oum-otUXK@%BJeo@5akC4_#e>Z}a^f1T>V6%Pm&W5cn+*;9)pJ5e0PaQ7hO1_BN=Ol#9$)X=jFy2Umf{yL6$0ivZH)@sLco~m{K=}9q}=f z#Oe7P`&@yjt%><>+N|9De<(p-N&65t=ly?}vuoa0Nj8xNS!NFCHr zDIwZjA!Ap97^3YTw^Y!f5Hx@;p0mnsAPhrhIASOB2O08N}G$!CmWX zciM1Q^{vAVDiF0WsIAcPw4(1^Nsy6&lKn-DG5$%lQ>J)$Sy%Bv+t!p3@OkBSpWq(D zyk)&~gQ&t1oy2RU>+>c=9|;kY5#HXSF3-jfE9XR=QBWrZ=cEEVb#O+Q!>!FLxxDZx zcl@rDb?Om8?1ccNt4T-0TU7}iSD}`d#3EFKQA0(vNE@lD^U+%+*Gd^#SgvGpi_m

    qB52NAz3&Tjq}* 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%0DH1U%*gK12DaX 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

    Qqdu@O*rfwG%8Xi77w)CAN|8f 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 }Bnr*i3 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 QhD=UDUShMHfl2cJ0{<{;H~;_u literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSerif.woff b/docs/java/resource-files/fonts/DejaVuLGCSerif.woff new file mode 100644 index 0000000000000000000000000000000000000000..280e3783cce1e831e7493c72bd19261e7da83ec8 GIT binary patch literal 186428 zcmZ5nW0)qfvi`=lcWm3XZCg9`%#LmC*tTsOJGO1xxO2|EzivNWNvb-P%9C_gD&23p z$%}~rfB*mh@CpwA^(O}th5Rr7Q~dvjn3#$z007kaBgg(B9H+jwRdEqfu^-vW5AXLw zxdGL#OyUai%0CTi{8SSM0ECQuG<#jel~siR0Nh*v0OSh*0M8|+=*E^6RFMDx2!CY2 z#sC2577;>NhP*O8697O0`qP%$f5@V8|JK;X(EdlJ0{}o10sx4}Hpy0H#;(o;005oe zk8ScFN{nT$crdd!w*dg?OMmptekk(T?{?7K(CJ5)0r7{2{VzcPAk3}Zf37p&0Dy7u z03fX(-{B&E)M{}Q!9fr;L_gF z^hbB0@@M>Fe$4N&x88SJf9A^WS z+EXTs=U7tL(eRd|`L%m(EYGU>(o+_~`&i587=}pq5w=qGqEM-Vf1y&*rW%BbI*4a! z+;g2C^cn9vWzhxwS$k&XDI#!5x#8H~0+b4#{AA9x1FM=NB1F(glRY9#xCRuQ1o8!{XS z6Gr*XD!`%`Fv*0jG9aJ}aH{k>YJgc8@LGr1)WSUV191S8@33SBM%sg&r2#7O9*E0u zM2k8!S9{V-Ym|OHq?ar>W)`c^KBoV=nqOcz>yUzXPC@euB!v*G4p|Qva8Blifxp6W zgU{?o+C{OKgi-VAq!$aa`zw)GGjHdhlsjCVMo zR!GTL%Tp_;7TpYskRO0w*erclK*(Fl%NF4c^uT*WK2vpZ#G0Z?P{=CvS%9=ew)9*; zU8pWSEyXI;EDcn+SAbCnEr=1q4b=+Zl5}@7bZEGVqUdR1muGPATCwKlU*Vt$@( zo-4FoBv%6HRE!Zgl5zc~sGhc*x}3qD(L%Tt+`jD9>jmnY&5*;E!>rGu&$t{J@Ee`6B3zG= zge<~lD8>kbQTBrP3B_qp$001tT^uKz3*3e0Ok|;K57r@uLtiJXRY-?QEqsy4QC;LJ zVpJEYjhe_!^q~5WL?udG3(=h#54|38jTFHtsidQn45PS(FU zcJwKuMh#lqNNdSj5^XLGCE88eF50wY>wgB)-9ndBUo2?rz>MxpbYH{i^YcrcOg<~U=sWq0g!75fQTRf@=t@4|ynhKgC zStr*<)~3^qC!65w;2UBZW9njBM3nwFxMXqRx8HkZ7Y zgqOI^CC{suG=&r=&Xp7NQ1$&mpBRXc+e(4cwxJ~Sq#k}i$E7^ARjj^?{ z%^2(Cxi(BxF>T(>-r3&%T^o89`nLL}`o{Wp+t%A=+os!A{096+{D%BC{N_EsdyHz_ zAmJMZu5P%5VnoEX#l^)j#M2963v!4@;?6PmFpn@#G50aAQ%_RQQg>7LQ?E5nO6_S} zR5;6Vt#Gk%wQ;y{I&j}{LUCMT5@MKR?qj55D&*|Xvf}4YAGnF9NX$LWBN{50H`8_} z9N`_0IAJmevI;Wye^v^~DT}GJskSMmW1?fDW2R#%^Ju3mrv#@8rxK^wh9&nE_YL=P z_a*l}_tn?vNGB{^wUl+z4rHCNYWQjubvJc8^x1^4>uBEQouA#1h zuJx{I?@`@jzEi$^zU%IT?lYj+En@dfydLsB$-Bnq!awaEbG%sDG}8p~*(JTq8_eU( zQ_6d32WdxXr)lSu_cV7jPc-+H4-0>m+}YflJzPDW{#f#c@{aJ9@Qk7$+zkfu+!Dxl zj-t@t4My_Z68&E>B-Eap)0WKbxY_P^7^-3om+rgy<59mvs<>Cf6IpU zsqU5Tq3*u!_2$Lq(dOaiIqwed9`7#iCGT<9N!MQ0GZbIL^ws^FP`8M_w!XMNhJJcY zY)uaRNXj|(9`+ITDfT}0b;e1?S;lV0e#W)-NyQEAqv~t9x0N@xx3(9zSBLkzSE!du zcS1LF_kFi?cZJW*`Dgt0>GM1B7m2T@Z$wW8|7Ona^c}+8@hi;7z-Ph7{s-xoKw#(Kpk#ly9_emT!V@g>Q*(Y|oPKitmQ+xbKp0pYQ6otRD;}$dVs70R%Ge zm_NM#g21!DwSXA`Hv`9Cd@$Kd}0A_F1={{>J7vi7<3 z$@W$CW%cp)t?lgY-0qa^tnLKw9PY3a(wV?&3Sa%jk%A-*~-W2W<{{_d zk2+VyeAY4Ca0;&IU)*iljozi*#ogW9_1+cUZNC}2NxONyDY{vN6nQ|R+>3f4j+0O- z^d=#lV~xif3p3e;KTzJhPE=a`p0U>E z+<&Ul6IdH~F#>Cx#L2`HQt+w$>weqvRcxbG`8GT$-Tl}+t|(rsa-kcSx5!jC`6&7~ zOHe_3OA?a@nsf|}j}`jPga=)7!`qO}n6H*VgwayA?hB z2hOhrtFlf`l|pep$P|JsTlXlDAZ&z`cXy8}dcw2G)u^u^H32fNoTJQ{y{CA&3rNag z=|6iZ<;^VE9eDqxBS30O!spL$8-akV_v_hYmBr|@6oKqcQJZ{vrK8d|;&nC1ZdpH) z-WFxiRiR8=*WuUe$dc*gS*4~!5Fd-JcY5_*9gb?b84p#H6=)Z+9oaOU$@Qjl)qxUZ z$zR>b1SoP8va7lh$clZ=P><4G1pK^aBH6at-?+|5u8JLzkji+rNLEWCbO~=aLFv0= z*;p+VtKEu6SmJ+hc2gjGM2KI>CKobHYG&XR#@|wM51Ujo)^XF{wC67x$v#+Dd&qbM z5)K>B9np5n&90TipSb!H**V4uFZf;F6XTV;)pV5@+$8%h0ILXtH&FeHvKRPBUtu>M z{pV%b1dAvnnNl38eTb?IB4gWW{exJi%e^BP zdqU4vh5w-Ksvc}-eRQDEk?Y9u{iC3#CH@GXs!kk#zbgp>l7eavf!(MzC*WyY?Uw!r zAxmcpQugIP{$5{F_EloRvzXTXKVBJ1rn z3w#SQ{0X;V&Ub$GXpk_AZ4M+|F!=)eB%M$P#8S8MK*Y9}Ip(%;OX8u{nlfvqY$^ZR zXE<4R<1wVo2iw_zx@B3%3<>=s`9{vw5;D1!#g&nH+S>=2_xuI&D$KZ6Z-|oGYt#~C z#Bbb7G*ued=o*Z6_9SzcMBf*WGjs0(&c#ge6YuT(=U);p_>Ji_L>~l?yMkx(^8LJJ zc-V&W4=97cUFyh_qA;!--jw$lTP)kq>t&mlR0w4`mS2Tv;tJEwNvMHIQm|}X$`gw# zx(|AG!83ZIJ_@V?dSzvI?ek-swE=0m(dA2%)RpjgNtM$JK1 zwUO{dr_0~xR#lFDPubWeD0}#?YMzvS74OWoz) zuloNjT=CS;cb0Mnr9iDiVjy0LdFu(@YfBq@>TIgc>7DqsW2n~NKprk09`s~<(4%|> zbc;5UW?vA!+m54+IH$~f#iS3Q;drN9{5a-{x<^rWSGdPlx;+7hPM>OO!zKg)@8Wyl zPFb5v!f)9AM(Pmb1OBu(fp@GYsHP%EJKWVC0v+L0qhx-mN6hrKHg%|);x}oi9>Fi* z=qg10_XXB!q;B0!V-(veP5d0Ct_3}LVFGWLri?|m z>}}M=gSfH}+%D^_`>_Q-0pfHpc~WL^6FV1@)s!iXvJ(*$4ZgOGq_X=bGgVx0rhqm3?vL2fd!l9o zztdo(4)J=z^n~^4!y8c^M`TNq4TjJ_dxwKHUab5T(x7}nuP``OKfNpHn&u6MP)8Bj zU&GO909!Kfd8je<@6`~R+^NdoS2lvyfOR$8GWe1GW!uvY>@v`Z72PtFTk^D{t^-ca zzK6X9L(acmCta+Rfx}*yjjmL43`chzyw1@>r`Osr>R#0Y((1pSfblk>YDlV9(hcN4 zVAEpyeMVQ%*?m-P6d1up9|f)7p3&c|`oRBQC_hj&rsVfa`k;NdzDZPWD>xzBIoyOOKB4?+sbMiFzO{UmU;CGzQf7_{?y75`E#ecJ;-pt#{OKs11m} z!N0*jVtf;7LS((*^g%LS-CiDV=z5TrzxZz`YNN&dFF$;DB02)U!}wu6Ukki&FZTI| zoTO>LvA(fzcD~1b;UQk>U+8xjzR|wXyl61Nh;fkGp*D9)XVgal8^X|<_Bxmp2Yn?% z-G34EA%%mLIOsnzZcv?|(1gJ5VWfjdX$Vwc7G==4khjbPe_}u3WP%0grplzL@`gH* zO%+{A={ek4T+^|TTEdC7U*MSFwXPw3A$^ryyL`fY?`ei%d48L=6fCIqD#CGjVJ>V@ ztUTlGm_9ZytmlM$gi{6v_z5cNKyhm0rJoQ}!0;O^IYhYK62zGJ|DtD5~c# zQKX5Dk(X*Kx=|ggY4u=nS61$nmMBc;>*czn*V+BXHP1v!^lo&VGRlk>MHYBX&Od-W zqzOLO$+cq~XNRT3c445(rfd^hKq^f&=FllfqVL4XHf=jCZSC2$ugSZxOKK8)J?h)# z^VbfJI7eu~L%YXlsapN+{TLaOzZ;6h!aS&b zMNVz5XMkS{yv9HIUPbJEadNR~p>HB~9g;Q1#9>v1RS!EpvTExx*Ki&BIJYfTq{$a> zzwo(?qeLuS$6_Vae9A0+ED2@s52Dp1iMbEN&JM#p8iSDN*F54MSJgO?`nLRwb@^H6 zVgDek@}9gs7sM)S7S|;<9h5;jP?MS91})X2=U5mX7`yo%+{R7`(pqww`CL$QC66!8 zBAk?H4HF4|(tb5C#ta*=X|0uZBN!=RY;N0&zkj$rnNv(9iW&;-duTt{IrwOGD_`fm z7e#DUhK;!6mri&ydv3}j-9L)XGA+Q(P88dW%-sFKYCsgum?k;8K1_T}Q6|%`GG(g5 zT26ca4c6^B^z0q#yJyKbGFxh=fQjpkVEcU)VMOf0Em`o^6C7(vx8`@f73RdR88TAg zJQp4hdJ0J?yr_zfuo;62U{OjFb5CTx?Gp-K1;?*X>~dFux-bG-N$p?vtLgxo|DCV z(3Wo%F8w5#6<-16?8lZG`{|}DIV8^uH6aIY87(>01)r1Ok<`Dwpw=)Wth(ECXw$WZ^TD0Y2LvK%&SnM(NHeb!)x23mvW6du1rjr^V{#9HBoKyei(oP7}UP$EFfD9}%$jDqPX*jhn` z;B^&oX5faPHWhVPiftu?Zw2I0=?e>9axo(C!E-?k5F=pQCX z4O=0oetZR@TC^gx&QN538w#8Yfn5V~XowC4(3NPSUOZHwr+mm-1W|}43a$tg-b?|; zetrd!u>7znV;mBu>|1+kW=0f=iOG#zbG;)l?t4c3pwtPIK|yqp%wFW)K4eXzlp3zeOUHNaCr1rySyJnV!KwI8$*T$9z$CG>F*FgCM+D3nSgi9=5iAAB zlcm9C3sTIM1z1hOWDy{5c^rBC5is=%8!RJuqhbz%@DUhSVz+&~6h4@+&qm*gZ7I8a zi3Ig52)wFz2L(a97!*jD0gfDL^}vqF9Sdl9IUuJS!@N%V+JxQj`r+@p}2q#k86d*kXlgd%U1XadU*t zVetu_!r~V=hZIm`?P88k?{Gx;bC~-jP=Ip;8yTpX4b2T(&!nxU;noFmB66pp)J3)- zQq!<7BHRmL813Q?_Hc*!nk_{%1ym0TF?S?wMsS3a3bHSyH-%gcO2;)B+8|P2Bx;Z^ zLD`z?YO0?I%E%gTYPy|_c`%qj*DXz{)uR2C@`YooU9@I>$_rT}@QLgSZjD(q{2Wtu?ySd zNx=45MDAJW2wuo+OaApFWwZh726ZAxbF`jww7TtvraE%k5ZnXE{fUSszo$)|U>bb@ z`CzRg)oqE$ZcA|3T42grDA`&x##&hILInI`m~%VQy%7C=1Zo0XaRQUa44T~x65lL@ zU`m20<_~m?)vt~O>Y*_Hkn3kku@^$hTVFu>rgHSpcRZU!JBdwG)RCTJ&gZvlJ`^M* zq&jY9awZXzQH@Fm_7tb*^8KyIB>Kkn%@r*-QY!!1j0>CEFSuc?rg1i@hTMRNtyF5G z1?U#h(bA(#da)rjrg*)|>+21x)-d{>X{YRCx9sm@9z=lY9Q85cRVRO(7z;OFyzoe0 z97yc00v+=cM>bzP7B`7DQa-uuwiptOe_(wPD4IR*?G#0R*@4^~Pyd6)d(RTFKE2Vu zHIDPH5JfEP72Ki0Y7MRk3^&rT@Xa#s#ttLhAA(xjEX$^l8#D&74kzCSsv;=E8I*vg!IV$3Is`rCSJYclsRqzJ;w?kIh9jO_Q;OeKut-fS5^} z#KRii`fL+NFv5=$>~Uat7GVqh93Cj}|GqgnS>ecTd`!e77GpdzM_A1?Y5=Q%FC8`_ z-cgJMZ_LGAuSM~U8wB9>8AhRg;L%;Y{PEGTp-sGeWo#-?;M1Uh`Fwa4de!XvR_lfp zg)yc72Opyw{%fHij{0}tz4`~5<1Br=`lqVn7=7IG2dm>My%T~`qf(<~N5$S5u!Gri zqUY2a5AsQ#OM+wdP?NysUu>b#u46MK*X2#S(nUdBk*=vTnxCjYOPHk*@eK=m0J|T% zmXZf8TZnnYBkX)_%G+5vf}@D7JvUZKY|!Bjbc>)T7uB3{NIh}SO3EQd$xE1WN;%@1 za)_s>Rf5td7nNTr0!+#wP3c2~(kBl!GSMhpiDsYcmAdF9OKBr_;fdxYP^nTOLOXGf zUh1|bC{KxI$fPVWUXMqU?$9JyACZLZSIl$zkOgLziNnmCYrh}AMqJxoFvW1)$R|_&XVkAUI zF=E`MA0Jeddk`Rz)RH=tin5CNIl2yK*PJ+|Drh#WGSu0I63j%bAo>N+Kl(MMx58mbOL1RIxx(; zw^A1DUtUfL<^<-Ej_O1sS9jB18$18>HE>Vl2i+|B#752t7$>c{hSl+V?a}t&hILm# z%KiKoO%?s}BR$>2Gn1_`M>npx!=~Zi3)e2+s&l4R?Z8WXP@%y@(2RQ+ijdtq{=^jsA8B^k+ilr*gZT z3d@B|^YSO|@A@YAmsR|!5Xwnk$U1J&cO6eJ+ zcChRT+gy~=Hu)PPmz~d3l$KRVJQf^+bey6d234lkX3oi09Tt|?|M*%0c}zKkzj`yP zHk_F~u!0?9cyZEWd0el4;}P;R^8C`nb3gN%;~BnBIr7T<7{7siP21JHa~g1(@XmAc z_v0xz!Z`&p!8a=8gLF?1lIZ(@0dik@hJDHY0?WSdKF++xTFB14ZY$;0eL!tIM&!k? zu@X)8QcnOyxl#cg>iHNtk@=l zDTP(BvMf54<}_IqO2WrGu_U2#3dtY8OP+)rR8tzmSdo>(S@id-1aeC$<(b7FuCqY% z0y4#ng9d<1mEA_s9&f+=@2$R`vw3&&i3*TzUAlMy-cx4L_I_cxmHqbxz0tq6vfRrMEK=-)> zA-xI5h(S4m!_AJ*FW`J1{LJL^1m|>TONaSc$M*ZCXN8ssv?vL<1xIKKb&;RMuk=oB z`=?Kh&v%bqS|YIJyJEuSyD___=cdm!j5UW#?8~61E?2H4<|T49qz*bZIyPoDeph{K z3v1a*HT(kgGv&v$H>NHvga_I;SMQRqm~Qd!y4qHTw9L#-YEJ$(idT=j%_Z{-BW??Q z3xsCzwdM7Ki;N5RCo<2HuI;ahuPHv$?~B4r+o?l2J99tfU7gD)XQnBeDaT_*^7BeJ zHV*8p$tgDTP;95j4KZ8hmZS`4-j-WLdF0?qt!AE3tr1qDSJ z7*nxn;FH0q16&0EP`Q-rZdSJ=oWW;?hw=v-Zn--gP}=0UDsV^DY-j(#U%YX#Gte_| zJ0SE^MwW)A9xUFJx}UBS7@zA zuIv!1o?W84dVN;6Z15YcE)ra`h~>)WarNK10y7O?xQ5dXChW_7Ze0=@(DYfoY^47aNjOIV87FPm254a zjV?FGpT(c0{mMuWtLeCTtcXW>N$*{j#3kWn-!W$>;AHr^0`&*$G`6m5$|v5XYXI`$K8Fh*KTFq!0E=UhRK1& zhpOlg-VLy~A$O$U!lIhdV-V|`qrp1PQf|%s+_M= z8%Zx4ICFX|d(*&GfmrZ)%zG2KRQ6T9uHZeRKhu3|UaN8~Ygx!RV{H=dDsQf+vMkW5 zSt>hTR4&)5Qma@Puq^UWfKvof;a`+~RN+-oUli3Xr&G&Pk!n)yzDumqDn~DGvn)<8 zcTz<$E!Ci#`273M_AG0wZ!2$WWov6|X6s>VX)8pR(80NUbHX2k$N#oF`zpSKm*!|P z7q=@O;(faCrQ+GxT>Mn9M%kpkSd5Uv!}F%_PnZ^-m0QKD)M9cYo!iQ6L8c5xQ&W+% zwO;UOOvdFXZz5s>B+WF9n<;Igb>d_qI<0$Oo}GWQv-%}uFJiAxwsR0{HuL3s`ul@C z?%Q;#)c4VROdhnjO2p}n66wf6&gX5(?4P)P) z{WyzUmpw?I?@iR$Q-Fr_YBg9LInymX(%*X0UT49O@Iu0ceT4Fj(gkr<(epIt0jmLT z)f?2L0CNnoJU5bCpzu_tj@%O}7f?3nskk(!Nj?1KQe8q%`~^D%)0N%|?hU-+2220o zQX8Dgd%kYKtg<0eCM(^NpViTP5Px$$hvId9g@o27;dvf^?_ppM57ee z!uDvOFZltoh7TS&_$uy65k+DfsE3bq+-(~h5#}ah7ZH|{_s4pg_$r7Fa2J6fs1NQK zu^oK{&J)8Qrew^9H&P~u?Q1i|pDlXNnMLFSRuz~Nt{*+VB#Cq_B%O!N*mU9?`Y+s9 z$Wt8iwdWEBB#aZo98tjz9G_!g$I|G-O-u|kTH(%(X)rTf*oLD8iCy>-EfkedkR!Lg;lCFY-NbWzNK zS#W_EaQBYPJZU{}d0AWOTwB<;5m_-z_FTQ7KF&59q9|;|4=3p`PG$^*P58l!^)8D3 z+-IE+=lkwi>Z@GHz%Tny5zLppqx*uVsP$P=BygwRA^c>tefPw!KU@u=ADtYv7zrOd zFgIJyicbf1`19f!AfeXrDJj0P-f3C0bOQ3J6G*WQkEw)Yk7tju47VG^_}9PoK0GH7 zW4%)k&K$DwK5dWq^&um}Z|4g}c&A1O*<;rpN-3SH!)ioRC&Y8QAIBC8x4kU;?Sy3D z-XCIOugTt@$Cl0U$(9fM_G!rUUM`7bjuQFl`#bTA^#nJM%NSKN^JN>=PFfp2qW!tJRUn^fz`@=s(FKa*xWMeXuJ zi6d6r#?*UxsKC zAf_uAO<`kEl#(jUYD`grW~Id~lHnQybIj8r=}De)tkWS%k-|8o+B{%7rQ3K?g>qEr6|*%oqLLwv~9rf2(C(Xn8Iq`)*P z3e7{nhd$CYe1qQiuj*Y;Wm3r@*4TIh^633tKxM+?UB30-l!Ms%IP-?ddP%+Hs(Mkq zq|16?y~yJO*D;AAnJD~(4wGn^gt3VSZd2s>OFj36PKDwO;YmX#L9_I#iRNPbb4%A0 zN+$NBF{gT2AM*V}cC(QHBs0zixAKWd-^qq8Ax)B4R2Eu_7+;)k5o?M zECN-KsKlsn7FiE*t=d9_=PpS+wv%2p350q)1an>j?y^7Kq<*Iri8JQUT^Huj1coEat_jaUM zmCA21C8ZHdmJNL)p&qC#Ijr%wHHVEnumk`y(WvLDTbo7IV_`!81 zL34k7BZL{mnMH5(QZ@K%CK-c7mfs2M#3Q)4bb=6}vSm8E_@|$x?*OC1!~mECd2$&P zHWo!O0I>Fy!2gNb0l)yrpD_O$0P-g@(+kQ#S#|A+)2(N0ax*@o$s)ek=0r@|igFP+ zuBaX@uIZwvu?R*X*P51yU?AU`C@f3@2`NcYQv@7nwUQ$WCWo0|KX;$P#jtq(Hp37z z=;pCLzDR{D!X9c{|N115J>-|Aa;)pbu)6>xX5iN>p+~ zDpW=#wAv2<8ZF;&&MT{uv=w!;>Rwt(M4RF-%S@D)A|LXe_FgqMT8=Nlq_C&`hRlxr{Xlxx;)VC)MrvGQ98 zXq#aq;kP@P>HHu>C3&MQzhHF!9ov~F`VeVz-O>aEoJstQtY6S3wq#XI2qwiD0R&2} z|8mg}@jGN0ns0O}Knk&nqqKKijHo)Ud&MVCVn7}+!|Mv@X<*8B6mB#*NDg(G&|-wfPB$X*Lgvk{VKgb5XjhHUYG(&^=ZpZ5p(MF7q7eEcEz1$QMcT#=eVraf%6f>WA*8TKu8EHL~RJbWtJsP+ad| z7(9`7_tL`L!D#o)22snnubYW@GY)+f={vBI--Z0tc!?ZkIWa$V8OB5xIj2a3Lc=Pq z!dQ4Hd=d4p^X!rXiWlKpYS=vX-)@?XD7u6W_D=z?PUFRsW$8sJawW~SuSX~5vZjY4 z!&8WOIliBp*Ix>1cZ&S;6JrG!Z(-)E<$H#U{!c(NPb*r;KDa)ow^`<(6er8Awv=y^ zZPe~vxz|?M&mU@Y-%z4N5VQW^4R-p5$|u)I_}l`BK?3j;aK|JGd4mc>X^ELCBr4o# zXVtk}idC*;BPq_3mF?t`2|_%SP(ZRbH$v&5sO@RjaWzc@vvJz|7OD$g58JtYtRf&h zBrRrec#0F_58Jm+*1$3bh(M0@9mJN-KKK#0todQA5a3l=d;`ysCCRaPtS(gU1``YQ zvjx&6F>4MFD^A?8c+x9tY_=8VBe%xU(RR2+?3eDA^Z)2=wmy_RZw^b?x*q0=Cu^eK zFIMXQrNrX)$b1}z`Z6Z}8`=7rKin7RXMXXRzoedkYV^T7@K@e-oE4G?$Xw@Lrg6K@ zmKH!Br!1qyk*^hyla-|$mqinBOU)~KX*XRkt7j(Net4#7mEiZyNN`*;fI`QWu#z&#KV}1h)7q_~9RO>=h zrpJ!X+de4pMPiEZ6-QpU4G6dF#Lf5%3O6M*SO`Lh1pWzVNbWO`FvZ+JV;Q~l>oU+| zV9x~;9p!Q?-MthaiF!R+j9?FEe^?tS*TP?R`Fx({$w+v7?C{<$&7h^r;AJvej5O&!wX0X!Bc`4R*(V;h$lWf1`&QG7($ulI$6_wvoOMqmxl?1(bj-5 zFpGp`p#1qkMIytjfZy^RFbhJ45>a_%0qf&{c>d+GKitz?rPC(M&kN!MUDD6=avC*f z=^g$9n9t{rAMTvG%(huK6vma;hcOV&B z&p#WlyRNShHImP_?fodvsKAsk2NB#os8?BF1w;|ey?zKyHI_&R&>0}bmd)0uhfC@k z@0p0DnSI3idVp+amBo$Ex$sb^4Cvci0B~Ebfi=7RD8sM>v8a!@@Z5x$PfF7A*q`he z&B@fh!EGShXF~X2Jn6sGAd$O-fYFh1BZvSb%(EUuAHQbJk8e;;nF}i*UCcet<=*xX zm|?r>&z{gMg=K0&;slXW9h;;m9O5Ou{)jPg&wf-lVV(di0xAowCrtZ517lJAhypXM zKN2+VCzh(FcaD1=d<72mmvbw9^&vz1knBltim#XT7xm|#<%6|%Wi((~&XV55J|(;6 za+hUIPO9@bQ+xaEaa6^aSu}@dL`j4N)64b@a0M#E3TL98U<}b3ziC&O(@_g8qYf1% z>J&7z5w`4pX@0P2Nnvg-z)rNtKPudLM8Vzr?1ZLy6^EyXRWo8QZ}6eDfd@rfF~H2W zNpgl27$7RW;qN?*5UR?4o@O1=vSa7pwSogIDbmexD4-!gvH#K-&?z3#l~mBcpk|2L z15lh9GJnVCSw0c%_TI?Y4*f!+mJ*iFw>UNro(wJ)a>`TqO}+4&Bu}siV`8irk;qU3 zb5yipG&lrGObd~z!IH146I%3>xFolR$nv=9G3eS>^KD}vyIHv*kFsZ{f;r{!9{!<& z`0Wa-*5Y5)NX}LV-n1L{+B)g)?y}$A7M(2{=2;cV+~eL#<2nl2I&wtDe~)61yZTU3 zAeo{vkgUmaku5^Du2VgHOs?0p4jMx8#eYFeqcf97A_34OB;XCh5bL5X7})Q?C$r$X z*{|mc|1Ce;^51oTRrwfiVKAGg>22Rm_z%33n_sU#50j0Ni$^4MDs>V7LB07Q zm<7m;?ywe^8YKhL;Wj2=!4W7>=lSlkSqr|Qvfh?k`WpGCvL}0LEk?G~e~s`abEkK= zYU8J+mg>J>UBCI>T-9vf>0f7Z;$KNO8ht)s=8vHZ^OO3Q?ScX^93oRJBW9K%Bzu-O z#+&p|Zpkr~lQHmIvXB$UH*U;o*dUdLiqM5){D~AAYn&LZ?AHXV5JiuBC!&^$_-ll9 zhJA+rOM#qh=qP#y0!v$EM!^{fRF(xK9dR(mMZ2YXz1H+x`%^FL3ykEkLVf-5+7LhW zVds3`942;($0`5jBaQjk_x;H;2XPw#FG$S|tZc}G1FAZtW@JR4zGms$yKy$|{rO$ceZ z>Kuf#lF3$H?wu;xT4?(5Nhhc(TqHACez(72QJ_;BZbWK^7Q`p)z2+hm6{70HxJTu# zi9JYC|E^$x6MYKd*?8@Ri+#wrf9#4{Ezx+q+@5;MpDf#bh<`ta>+^qpM9cGc-STX- z-}m}wP2+P2OzC&IoS%&}+wva2)ZRX;SATTh3Wu6+p9vpN<7;&x+|SjYXz7HdkcFW5 zuj|Wcl~g>&IEFi?+)Ln+t;4BhA?<1pGPga8L=&S&=m=9ROxc3E=U<;Qe^qXW#8g}=%*mhR z5MHI3x;qc2p}d7Z{&d&pb6z|A7#ty>-%UL?zh=(u6y|aF_LhCTWPpSUh;hX?OBmK{ zNmppDsa8AE8VFwmxrQW`=Wuk-d zAmzVH!?E%fz}siVa#t(v#^f)zUWgKe09nCg!W&)$}o_(hv_OqDWFJ353QnQ^8BKd0gIPazreZGeBLF{;5M>C_>5@P@p3lr5j zIDBjI1p`19J?md9F^7>vD+=3FOLHB6uPA_-`=1}%eC@wyW<-EsueM3!8XxR-AlN0~ z4DWUaLs-5H&4snLW)v_~adr%^F#N=$l)HG-TK~vT+YTxeBL5{@T91Z=e!^wUBN7Iy z`mHPLrX%$cpA>XR&Upq;Wc4dtoP>OjlrhLm8P^qhOd&h4Pm4HF=3uMf$VFZR)Sf_< zh?sBevQY2$ZMQ7S^XIAjJDF{}-TT)5=bPI3@iu0Q@5A+%5}P}?jHk`2zLaChc@_PK zn6L3|JsNcioxkz47jOv;CX)((xi1L&!eWiqCWHBB^zMLdHuv*D?e6*dTD&b@4KKIj zQ2W7*i1(te-ds;sv%&3O!eA8gYK=xvzMCf`jn;#>MbG9GpZi)LS$^?;IMv9U&6Wa( zZKts6mKrR+DNzwaG|jhAfLNyp771pE8k&&UiaJvWV!0V7`Zx}Ceu*Xl4bw=SC@Ap~ zFcznk3azpw5t=44tyzqyFTj6jJV9+RaCS!3DU$dd*wMjgsXuO#D8au9+*|{G2{Xb+ z;7@5}#ErsA3|uFP6!K#5RljqcGtzt#%VO;V5MCemf!M)s$b-K?OyYs-VIo~k-o1|f zPfU3>mfw!kdrwV~ZYX+t7qoV)x=#0HXO@=5VBwtSt?$Jy4bL$a^dM`8kI()zW^6`Vnq56$}M1QSu z2jV15*J}n{HPAEc64+X?)PyL?LQMjcs9N|$pqK-8G(SwnD6r2oXqXk|vm6gPmO2_8 z6r7lp<2P(pFiOP8CwTKH0tGSpH^_}`$ zL^C|695g2f7#>d5tkN=Nsb!g&<(HDRbSbR0E;T=b_*fD-iLps`3M8r~g$OwBZ1n}K zmC;5cg0?lu&3d!klyxY}^`Hw;Gbb`T;~9v)$FH+boS+UaY99`-E?T5Jh!cy9NgeuF z7mn%jvGxrg>xV#eZh2^K8Ym2h?w*+y)WrCX z{oH(VG(4NLi`siZ9nFUL$K7*zB@d<5}cWFs--(Z1lH z&+57k8GZIg6ZLOl^9udLefsNq74px=E``cA%5m%s{Sb27f1|(NqX%48)BcB|BKQ)V z3`^mQ_Z8?nqBLY4Lp1b&N#U-JrMzTjNwU^Lm%22Cgh-mLz$PS`+)N^;iiviUA|p~d zIYi31*dC)Fvhg2ltJYRW_Vt2R9GXTf>G#g^F7=-DQXPA(8F7E()zCjml)}UVCrAeW zJkkEviME?3FqLcC+X$+r<`$@~CLT2?ZOoTAV&p>d!Zs6A%au}~mf#_h43&zYc$Gb+z%0crR~{)JGGS(0AC7#q@9z z50Q4CiKMUAT&g~*5fTs*Ma9Hv*!(pcFsa4RV)|LUgRu~XX5e)VXi>a=Fv||Hdn%5M z`Er_p^fi2?aRr$hb-JPiGBClbbI9W21(UubW}i6w*#n#OZGW3OWy_!F{F<7ZC;#(V zLTnFRXueL^CEQOgQ)J{@3ueMpCdrZw`9?;HN7HOYn#_|>G~pc<=u*3aS?I z)xjicoPsu&2)GOy7Bpu!sj>V?OLjKGMh+uPXxO2s?U7@~2N|AOZftmVvAms6l*5*Q03G7=**iqoW7G*Of6ie0r^HCw7F$($r4Tav|) z)J4A6)ZNlu#8H;8xljlTg_f|TPz;NGq_7fJ!`84Z>>gn%HWv${EThC>Qn6gDRGF)U za!a{bA(bj6YKgVPR&QQnt{0XF^DXnm`BJ@Huk=Mm@D4XZ-1t6`i++CCo>NV{+x}uTi0L37qP+!Vh23VJ#ma|Y3Tpup7?UI*dSY1- zqbgf&HZ;!l)@-B&J4r-D=ix8jYv{U~Tgpv+4ZeQ`0PHzqZ>`}6tYrvGsAUL1Xfgs( zHkoCaBF(C@6f}{w9NJP@Ktd}51e&ZY>ENV9#gV8fiY1XxG*gMlj6}D$rTId0Gn$Uv zjCa^b0$`!NR?vE9i|M~dqAVSe7RlJ))jZ3olImies!#2rW~wRH6k89qx0-Lww+&TY!JbDwl4-q}VT-q9z> z!Wr9m4!%JMgaEg`ce4G+2_3A{fw7IZKBYp2N}(RT^$$w9^+;qN%Whv`_8>Z2!K`qG zjH$~ap^=JY79x~ZYobdPOjtgVRTE`%A}d+Y*2)qQutm4F850wc@oX#Bf7#heey2bc z4s9OvYnXf@&B840L2Z_{RBP1eJBxr(W-#VocJ3TpLN56&A)Kpk>vztWcm#gUi4Q!8W4&ya^5I;x{t6-+U%yd=>B>__O@S>U&Fn~-)*!S?{gxZ9i3COhE9RN;_ zVsGSpAoF4)SP_x~{(bZ2zpvlCd420`1ZHN;Ds9^a`@<(@qBld~LvRor3?I_>>2KKK&`giz%>q21lLf`U=-Te zF}88XjEekC4BlY-oUONJ9h~ez^n)>+7=wotjyhl?g1{m7)b{O9={F2)bLKC|GT!`) z{@%C5jpw&MvonHhuADyA-2QoWWNvl(5rckq$fB)(4ueCS8(9=&m@wEOa@wIjQaJ_#uy!`k>?S~BG{9h-x z9Z24=Ws4CPfA#hi>T9%jDKHf7gUFj0kj;WQ-bZ--vLKj?%z{5a+2Imwx`%)| z8`G1<9YOetm@u1xWz_)`KY2|f6H)4k? zrN%eiKRqx#p(?n@w8*?jSY)Xe7x@#O7k4j)s*u&FivX(8iAoFOF zI7(u~L{30HBtysuOCdbm90`yhnZKqNG-YSSVxqD^L>b62Eag*Rr%*q>!oX58zA{2) zbEZ;f~x zNdn`t0)B-Zi4O^CC8E?`;zmFd$&4f?sxXmOfT6XJL2WZE0OA{rl%k23tV2FeiHCp_ z?+VnrjrF*JI~L1*!n4yuOpIU=MaBUSSL_48-W&9tBnF&3_Vw4tPQn`}^qcxw^!PVj zT~pK6rhoO-S1_JLNV)Ah{nz?8Fb<9|aBK^rJ+8$O!IR;9iX;dOA7B}P9F9m35Wz%? zNC4T$!f+;rKnoP8QqE%HIhG_K;3e8DbwnZ}0I+i$!a#vs6a^xIU?Bt(!wDSZ2#TaA zj(0*Q;pF2iabg!D)siY&SZIeKNKS+kc_MGBBvhM#4?KrfXyrm zW{O5rAxtt&Q$?Z~taG>sg?WFv=7{FI zGlFQ~vqNLEts{R1;fMcZAxvgkbQ3`fGybHyR%La~^bU>+&XFqess znCFUi4x&9Fd5-5Q7AZDytx$xdj%+m zLVWr+S z8mX8-kdN*s2Go4y9pl=q@74G2*6TMDfuk@Fj@$*u!TeX@>zk+(xBB4Sy>);(dMlrr z5Zz}1@$JjluEBqWry;h5WeAReG7ms-7s!a7cFpA`JhI)cMRr>=b{ly(BHB#0QOKVk&jpX#|g*q{pQh0XLq-;WkQjP;v5w&zfSsj^jtZ&d=}r&+xzGMSFkH z=Y@BrAtNFmXRtyXdPG^_HV+t))ttaC+O-tWg-sHZweDiB)?X~tMvJ4gYEZ>a70a}G z(7@VRz(StjNtUI|lz^B)V(pxZbK8L(y38)YZgEMPtSJu7VYj>NZp;!PHrdieOp%i0 zBqh<6=+5+Z2YE1$&9n57^5uLbPb&m{;RD12WPhf=Ww12RR;UfM5A=)zBj5;P1UZ5k z!;auan@0;HEaRo|wlUgR`&dsoC^ML(j44ORyxd%l7^Fs;E>Bl#Y~}V6M~SoCRqihL zlz10{2G~F}kPXZtww_yPUMSRC7Kx7_hFOAGCTv}zEK(O)7u)K!dG>{_h3Av=j-`(YRkJO!`5tj~j&cDC<7NGxgpTXi*2N35%< z(S7hs$k5Wz8YufkIZm?i$IvmWJNZW@h0RVn`E;IBPWjF4e(@wk{L&5 zEljD3%$1;+t)fXGc#S21XiZcU8o5$PQ#3cVH8&Y0Rgt*25{=0HUv;H~^~6CCi3#vO z7clrK5B)@)l(DAnrv9e!IkZ5a=j2}h&(1gYYoTR>Jp~K4;aGLr z4~*>K@{@YbS|aUrI1kQy86I4x_dZ!oxQK5N)prv}nA_9aFI1xmPe63?N)pCiZUGV; z!4QB2XycH9FeBw*0n&q#$#AS9nNiKi=1(AZwY4pxwzo|phcpbJ)i2<<0XJKXP$HV+ ze*K@sGRB5(lo(d2I)K_h9 z@xxtpJ%Gd-41ywDh4w$x^;nVS+-Vf{;JO}W6S~h1G^bi)PBr{v24&g zn>y7j+RC#+r051@swcP12iSC8Pk6X_QW(??!@2fj0EZVZ$Qd zx0h-m>XWA2*3wR`)=?R!!Ko($wYZJG@8dx7( z7r!BSt+hmG5D6Cz0vQRGbhiXTX4;)#Pfdwb)MRHj$Fg6Ut<8Gt^>5_X>lo@`Cn+nO zD5ut@F6?qDm1^j63Z5cPkxf(+-NZC$P4*_oDd#EIDYpfoADG*b*|Hi=Qb)2Z5X<`I z8WlQZ=HDM%xq5Ehx+A;w-92~K9Qd!+Pa&~s#mq8j zT{o!k_|6v(53FBNR(dHV<#J@*_n~zkL40Hb0q{ULDL^Y43F0?%&dnlhAZLRHv4mTz zdfet*E0L}#R0w1xU?&iHfjA42+0tw{LNa!Q^0N*uLBvJg1V++$imGNKa83j*0>-l9 zcyTQUU{&{*7B$_t(X{BL?)uZPYSY?v8#k_7yQ!KESGUh7o2>ut=1u+FP)aC;uQ4-)O@V z)SI&o*2ZD<70KM=$a!Z62glJVZ|Kkaze5<={ayKQ%WJfC%b(i%^p*wd-LUuGgD^)2 zw_&%;EdBenOTYc*o9`Z8+`%_jqV#((oNT9LL_gPNi*GZlG*}V+*b>WHLQU6XG6d5> zZk*eciV1kFxvij}`6mPn^B^b(mjw3*sc1AB&liVaBJ<4++?DyHa`x+6F(H4r@h&3d z>#*X;rnT!gZd{KDS-q!hGR(Vq6Lz0mMx<2VdcW%A@BZ@nXJ4J`nD=NzM;q{fq2YLf z(;5Kx481{cZUE1!YlV_Hj@R4>X1S$QBbtAq#gJ1(PE1X?6?3%e_lCVoyySUs9-b%8 zYv(;Q=HEb+pgEnYBv^yeEH%3A+g&^ApY?4{|NH5y`q$9@)qg|c0<&@Tk|$*XaF;GG zS-fvQB6b_RN56F7=-VgWis+3&0Fbj0o#Vjla58HLs;PkkanuIaY*}cqaoa`S0yBWc z%!WXBtAsc;%PU_iXwF7tj+Rd$#}S7nJ~=BJmCRWOH^fKKxQ5k)*H9l`^oXdB-;{t7 zNc4_}I4c@q6E8ICy`oWzoM`r%oIM4OcyQWCn4({5X@7P9{{3&g(RXDZ+BJCS?2V7r zw7p(kO%AVFaqzIyWzb#Er>-En`#?IV2jjk4IO*q%|y+#s6PhSS|P)&d=cii$EfHXT#Bhx;q*RMC%|*=qm_7 zXkcL2LGo&YZ98H+5s-`}T?iq5Q?l%lsyzCH2 z-eLD_u<~e9+pW*}oEdgBH+y#}gyxs!LsM%rN`o-NwBafzBn2NCl^BOJ{U!cc{!X;? z8T0g^M`WId>Kt`W0!+MXzL>aoaaHbzc;feGW%kWLTIii$4_Mx7GCOMc_%R*x*BfeX z&E9=15V%}2ZqYK#ANL{t_!jYp3oZ#4I~sY;-l*AmPHL1T1OdfHp69GKLe+Z7vLy8q zCFIi;*(DD7^L&GuYG7tNZOFNAFmG1@q)A>wzMP3s?5wH)knUhZbUK;k#%nLY(Mp8F z9nmul1uY1HW3l;h&Z^@e1Nw;m8=-j#hnB;CVmV&o?VQ8Txh1zfnM;vU?8sHJ=Q{>S zqq#BCG;W$S&0gtPz^%4#kq&cCif2u%nHFdZBLb0;IIG#l+Ew0avYK&qqAJRwCV6a5 z

    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 z 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 literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/DejaVuLGCSerif.woff2 b/docs/java/resource-files/fonts/DejaVuLGCSerif.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bbd32cdec41e0c64e5e0b667c63d86b6237b914a GIT binary patch literal 127416 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 J3~+#e{vTUXnbiOQ literal 0 HcmV?d00001 diff --git a/docs/java/resource-files/fonts/dejavu.css b/docs/java/resource-files/fonts/dejavu.css new file mode 100644 index 00000000..b450caa3 --- /dev/null +++ b/docs/java/resource-files/fonts/dejavu.css @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ + */ + +/* DejaVu fonts v2.37 */ + +@font-face { + font-family: 'DejaVu Sans Mono'; + src: url('DejaVuLGCSansMono.woff2') format('woff2'), + url('DejaVuLGCSansMono.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Sans Mono'; + src: url('DejaVuLGCSansMono-Oblique.woff2') format('woff2'), + url('DejaVuLGCSansMono-Oblique.woff') format('woff'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Sans Mono'; + src: url('DejaVuLGCSansMono-Bold.woff2') format('woff2'), + url('DejaVuLGCSansMono-Bold.woff') format('woff'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Sans Mono'; + src: url('DejaVuLGCSansMono-BoldOblique.woff2') format('woff2'), + url('DejaVuLGCSansMono-BoldOblique.woff') format('woff'); + font-weight: bold; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Sans'; + src: url('DejaVuLGCSans.woff2') format('woff2'), + url('DejaVuLGCSans.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Sans'; + src: url('DejaVuLGCSans-Oblique.woff2') format('woff2'), + url('DejaVuLGCSans-Oblique.woff') format('woff'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Sans'; + src: url('DejaVuLGCSans-Bold.woff2') format('woff2'), + url('DejaVuLGCSans-Bold.woff') format('woff'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Sans'; + src: url('DejaVuLGCSans-BoldOblique.woff2') format('woff2'), + url('DejaVuLGCSans-BoldOblique.woff') format('woff'); + font-weight: bold; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Serif'; + src: url('DejaVuLGCSerif.woff2') format('woff2'), + url('DejaVuLGCSerif.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Serif'; + src: url('DejaVuLGCSerif-Italic.woff2') format('woff2'), + url('DejaVuLGCSerif-Italic.woff') format('woff'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: 'DejaVu Serif'; + src: url('DejaVuLGCSerif-Bold.woff2') format('woff2'), + url('DejaVuLGCSerif-Bold.woff') format('woff'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'DejaVu Serif'; + src: url('DejaVuLGCSerif-BoldItalic.woff2') format('woff2'), + url('DejaVuLGCSerif-BoldItalic.woff') format('woff'); + font-weight: bold; + font-style: italic; +} diff --git a/docs/java/resource-files/glass.png b/docs/java/resource-files/glass.png new file mode 100644 index 0000000000000000000000000000000000000000..a7f591f467a1c0c949bbc510156a0c1afb860a6e GIT binary patch literal 499 zcmVJoRsvExf%rEN>jUL}qZ_~k#FbE+Q;{`;0FZwVNX2n-^JoI; zP;4#$8DIy*Yk-P>VN(DUKmPse7mx+ExD4O|;?E5D0Z5($mjO3`*anwQU^s{ZDK#Lz zj>~{qyaIx5K!t%=G&2IJNzg!ChRpyLkO7}Ry!QaotAHAMpbB3AF(}|_f!G-oI|uK6 z`id_dumai5K%C3Y$;tKS_iqMPHg<*|-@e`liWLAggVM!zAP#@l;=c>S03;{#04Z~5 zN_+ss=Yg6*hTr59mzMwZ@+l~q!+?ft!fF66AXT#wWavHt30bZWFCK%!BNk}LN?0Hg z1VF_nfs`Lm^DjYZ1(1uD0u4CSIr)XAaq + + + + + + + diff --git a/docs/java/resource-files/stylesheet.css b/docs/java/resource-files/stylesheet.css new file mode 100644 index 00000000..8086e0d8 --- /dev/null +++ b/docs/java/resource-files/stylesheet.css @@ -0,0 +1,1461 @@ +/* + * Copyright (c) 2010, 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ + */ + +/* + * Javadoc style sheet + */ + +@import url('fonts/dejavu.css'); + +/* + * These CSS custom properties (variables) define the core color and font + * properties used in this stylesheet. + */ +:root { + /* body, block and code fonts */ + --body-font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + --block-font-family: 'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + --code-font-family: 'DejaVu Sans Mono', monospace; + /* Base font sizes for body and code elements */ + --body-font-size: 14px; + --block-font-size: 14px; + --code-font-size: 14px; + --nav-font-size: 13.2px; + /* Line height for continuous text blocks */ + --block-line-height: 1.4em; + /* Text colors for body and block elements */ + --body-text-color: #353833; + --block-text-color: #474747; + /* Background colors for various structural elements */ + --body-background-color: #ffffff; + --section-background-color: #f8f8f8; + --detail-background-color: #ffffff; + /* Colors for navigation bar and table captions */ + --navbar-background-color: #4D7A97; + --navbar-text-color: #ffffff; + /* Background color for subnavigation and various headers */ + --subnav-background-color: #dee3e9; + /* Background and text colors for selected tabs and navigation items */ + --selected-background-color: #f8981d; + --selected-text-color: #253441; + --selected-link-color: #1f389c; + /* Background colors for generated tables */ + --even-row-color: #ffffff; + --odd-row-color: #eeeeef; + /* Text color for page title */ + --title-color: #2c4557; + /* Text colors for links */ + --link-color: #4A6782; + --link-color-active: #bb7a2a; + /* Snippet colors */ + --snippet-background-color: #ebecee; + --snippet-text-color: var(--block-text-color); + --snippet-highlight-color: #f7c590; + /* Border colors for structural elements and user defined tables */ + --border-color: #ededed; + --table-border-color: #000000; + /* Search input colors */ + --search-input-background-color: #ffffff; + --search-input-text-color: #000000; + --search-input-placeholder-color: #909090; + /* Highlight color for active search tag target */ + --search-tag-highlight-color: #ffff00; + /* Adjustments for icon and active background colors of copy-to-clipboard buttons */ + --copy-icon-brightness: 100%; + --copy-button-background-color-active: rgba(168, 168, 176, 0.3); + /* Colors for invalid tag notifications */ + --invalid-tag-background-color: #ffe6e6; + --invalid-tag-text-color: #000000; + /* Navigation bar dimensions */ + --top-nav-height: 44px; + --sub-nav-height: 34px; + --nav-height: calc(var(--top-nav-height) + var(--sub-nav-height)); + scroll-behavior: smooth; +} +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ +body { + background-color:var(--body-background-color); + color:var(--body-text-color); + font-family:var(--body-font-family); + font-size:var(--body-font-size); + margin:0; + padding:0; + height:100%; + width:100%; +} +main [id] { + scroll-margin-top: calc(var(--nav-height) + 6px); +} +a:link, a:visited { + text-decoration:none; + color:var(--link-color); +} +a[href]:hover, a[href]:active { + text-decoration:none; + color:var(--link-color-active); +} +pre { + font-family:var(--code-font-family); + font-size:var(--code-font-size); +} +h1 { + font-size:1.428em; +} +h2 { + font-size:1.285em; +} +h3 { + font-size:1.14em; +} +h4 { + font-size:1.072em; +} +h5 { + font-size:1.001em; +} +h6 { + font-size:0.93em; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:var(--code-font-family); +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:var(--code-font-size); + line-height:1.4em; +} +dt code { + font-family:var(--code-font-family); + font-size:1em; + padding-top:4px; +} +.summary-table dt code { + font-family:var(--code-font-family); + font-size:1em; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: var(--body-font-family); + font-size: 1em; +} +hr { + border-color: #aaa; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + flex: 0 0 auto; + padding:0 20px; + margin:0; + font-size:0.915em; + max-width: 50%; + white-space: nowrap; +} +.legal-copy { +} +/* + * Styles for navigation bar. + */ +@media screen { + header { + position:sticky; + top:0; + z-index:2; + background: var(--body-background-color); + } +} +.nav-content { + display:flex; + flex-direction: row; + align-items: center; + width: 100%; + height: 100%; +} +.top-nav { + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + width:100%; + height:var(--top-nav-height); + overflow:visible; + font-size:0.857em; + position:relative; +} +.top-nav nav.toc { + display: none; + flex-direction: column; +} +.top-nav nav.toc button.show-sidebar, +.top-nav nav.toc button.hide-sidebar { + display: none; +} +button#navbar-toggle-button { + display:none; +} +ul.nav-list { + display:inline-flex; + margin:0; + padding-left:4px; + flex: 1 1 auto; + white-space: nowrap; +} +ul.nav-list li { + list-style:none; + padding: 5px 6px; + text-transform:uppercase; + height: 1.2em; +} +div.sub-nav { + background-color:var(--subnav-background-color); + width:100%; + overflow:hidden; + font-size:var(--nav-font-size); + height: var(--sub-nav-height); +} +ol.sub-nav-list { + flex: 1 1 90%; + line-height: 1.8em; + display: inline-flex; + overflow: auto; + scroll-snap-type: x mandatory; + scroll-padding-left: 13px; + scrollbar-width: none; + padding-left:6px; + white-space: nowrap; + margin:0; +} +ol.sub-nav-list::-webkit-scrollbar { + display: none; +} +ol.sub-nav-list li { + list-style:none; + scroll-snap-align: start; +} +ol.sub-nav-list li:not(:first-child) { + list-style-type: " > "; + margin-left: 20px; +} +ol.sub-nav-list a { + padding: 3px; +} +ol.sub-nav-list a.current-selection { + background-color: var(--section-background-color); + border-radius: 4px; +} +.sub-nav .nav-list-search { + flex: 1 1 10%; + margin:0; + padding:6px; + position:relative; + white-space: nowrap; +} +.top-nav .nav-list a:link, .top-nav .nav-list a:active, .top-nav .nav-list a:visited { + color:var(--navbar-text-color); + text-decoration:none; + text-transform:uppercase; +} +.top-nav .nav-list a:hover { + color:var(--link-color-active); +} +.nav-bar-cell1-rev { + background-color:var(--selected-background-color); + color:var(--selected-text-color); + margin: 0 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:var(--title-color); + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +ul.contents-list { + margin: 0 0 15px 0; + padding: 0; + list-style: none; +} +ul.contents-list li { + font-size:0.93em; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; + overflow-x:auto; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3 { + background-color:var(--subnav-background-color); + border:1px solid var(--border-color); + margin:0 0 6px -8px; + padding:7px 5px; + overflow-x:auto; +} +/* + * Styles for page layout containers. + */ +.main-grid { + display: flex; + flex-direction: row; +} +.main-grid main { + flex: 2.6 1 0; + min-width: 240px +} +.main-grid nav.toc { + flex: 1 1 0; + min-width: 240px; +} +main { + clear:both; + padding:10px 20px; + position:relative; +} +section[id$=-description] :is(dl, ol, ul, p, div, blockquote, pre):last-child, +section[id$=-description] :is(dl, ol, ul):last-child > :is(li, dd):last-child { + margin-bottom:4px; +} +dl.notes > dt { + font-family: var(--body-font-family); + font-size:0.856em; + font-weight:bold; + margin:10px 0 0 0; + color:var(--body-text-color); +} +dl.notes > dd { + margin:5px 10px 10px 15px; + font-size:var(--block-font-size); + font-family:var(--block-font-family); +} +dl.notes > dd > ul, dl.notes > dd > ol { + margin-bottom: 1em; + margin-top: 1em; +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for table of contents. + */ +.main-grid nav.toc { + background-color: var(--section-background-color); + border-right: 1px solid var(--border-color); + position: sticky; + top: calc(var(--nav-height)); + max-height: calc(100vh - var(--nav-height)); + display: flex; + flex-direction: column; + font-family: var(--body-font-family); + z-index: 1; +} +.main-grid nav.toc div.toc-header { + background-color: var(--section-background-color); + border-right: 1px solid var(--border-color); + top: var(--nav-height); + z-index: 1; + padding: 15px 20px; +} +.main-grid nav.toc > ol.toc-list { + max-height: calc(100vh - var(--nav-height) - 100px); + padding-left: 12px; +} +.main-grid nav.toc button { + position: absolute; + bottom: 16px; + z-index: 3; + background-color: var(--section-background-color); + color: #666666; + font-size: 0.76rem; + border: none; + cursor: pointer; + padding: 6px 10px; + white-space: nowrap; +} +.main-grid nav.toc button.hide-sidebar { + right: 0; +} +.main-grid nav.toc button.show-sidebar { + left: 0; + display: none; +} +.main-grid nav.toc button span { + display: none; +} +.main-grid nav.toc button:hover { + color: var(--body-text-color); + border: 1px solid var(--subnav-background-color); +} +.main-grid nav.toc button:active { + background-color: var(--subnav-background-color); + color: var(--link-color-active); +} +.main-grid nav.toc button:hover span, +.main-grid nav.toc button:active span { + display: inline; +} +.main-grid nav.toc button:hover { + box-shadow: 1px 1px 5px rgba(0,0,0,0.2); +} +.main-grid nav.toc.hide-sidebar { + min-width: revert; + max-width: 28px; +} +.main-grid nav.toc.hide-sidebar div.toc-header, +.main-grid nav.toc.hide-sidebar ol.toc-list, +.main-grid nav.toc.hide-sidebar button.hide-sidebar { + display: none; +} +.main-grid nav.toc.hide-sidebar button.show-sidebar { + display: inline; +} +nav.toc div.toc-header { + padding: 15px; + display: inline-flex; + align-items: center; + color: var(--body-text-color); + background-color: var(--body-background-color); + font-size: 0.856em; + font-weight: bold; + white-space: nowrap; + overflow-x: hidden; + position: sticky; + min-height: 20px; +} +nav.toc > ol.toc-list { + overflow: hidden auto; + overscroll-behavior: contain; +} +nav.toc ol.toc-list { + list-style: none; + padding-left: 8px; + margin: 0; +} +nav.toc ol.toc-list ol.toc-list { + margin-left: 8px; +} +nav.toc ol.toc-list li { + margin: 0; + font-size: var(--nav-font-size); + overflow-x: hidden; +} +a.current-selection { + font-weight: bold; +} +nav.toc a { + display: block; + padding: 8px; +} +nav.toc a.current-selection { + background-color: var(--subnav-background-color); +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +main > div.inheritance { + overflow-x:auto; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:4px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.ref-list { + padding:0; + margin:0; +} +ul.ref-list > li { + list-style:none; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +dl.notes > dd > ul.tag-list, dl.notes > dd > ul.tag-list-long { + padding-left: 0; + margin: 0; + list-style: none; +} +ul.tag-list li { + display: inline; +} +ul.tag-list li:not(:last-child):after, +ul.tag-list-long li:not(:last-child):after +{ + content: ", "; + white-space: pre-wrap; +} +ul.preview-feature-list { + list-style: none; + margin:0; + padding:0.1em; + line-height: 1.6em; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border:1px solid var(--border-color); + border-top:0; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:var(--selected-text-color); + clear:none; + overflow:hidden; + padding: 10px 0 0 1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:var(--selected-link-color); +} +.caption a:hover, +.caption a:active { + color:var(--navbar-text-color); +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:var(--selected-background-color); + border: none; + height:16px; +} +div.table-tabs { + padding: 10px 0 0 1px; + margin: 0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: var(--selected-background-color); + color: var(--selected-text-color); +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow: auto hidden; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:var(--subnav-background-color); + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-first { + font-size:0.93em; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:0.93em; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:var(--even-row-color); +} +.odd-row-color, .odd-row-color .table-header { + background-color:var(--odd-row-color); +} +/* + * Styles for contents. + */ +div.block { + font-size:var(--block-font-size); + font-family:var(--block-font-family); + line-height:var(--block-line-height); +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:var(--code-font-family); + font-size:1em; + margin:8px 0 14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + /* Color of line numbers in source pages can be set via custom property below */ + color:var(--source-linenumber-color, green); + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:var(--block-text-color); +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label, .restricted-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment, .restricted-comment { + font-style:italic; +} +.deprecation-block, .preview-block, .restricted-block { + font-size:1em; + font-family:var(--block-font-family); + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:1em; + font-family:var(--block-font-family); + color: var(--invalid-tag-text-color); + background: var(--invalid-tag-background-color); + border: thin solid var(--table-border-color); + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-menu .ui-state-active { + /* Overrides the color of selection used in jQuery UI */ + background: var(--selected-background-color); + color: var(--selected-text-color); + /* Workaround for browser bug, see JDK-8275889 */ + margin: -1px 0; + border-top: 1px solid var(--selected-background-color); + border-bottom: 1px solid var(--selected-background-color); +} +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + box-sizing: border-box; +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow:auto; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); + overscroll-behavior: contain; +} +ul.ui-autocomplete { + position:fixed; + z-index:10; + background-color: var(--body-background-color); +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; + box-sizing: border-box; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: var(--subnav-background-color); + padding: 5px 0; + font-family: var(--body-font-family); + font-size: 0.93em; + font-weight: bolder; + z-index: 10; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:var(--link-color); + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +.ui-menu .ui-menu-item-wrapper { + padding-top: 0.4em; + padding-bottom: 0.4em; +} +.ui-menu .ui-menu-item-wrapper { + padding-top: 5px; + padding-bottom: 5px; +} +input[type="text"] { + background-image:url('glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + background-color: var(--search-input-background-color); + color: var(--search-input-text-color); + border-color: var(--border-color); + border-radius: 4px; + padding-left:20px; + font-size: var(--nav-font-size); + height: 17px; +} +input#search-input, input#page-search-input { + width: calc(180px + 10vw); + margin: 0; +} +input#search-input { + margin: 0 4px; + padding-right: 18px; + max-width: 340px; +} +input.filter-input { + width: 40%; + max-width: 140px; + margin: 0 4px; + padding-right: 18px; +} +input#reset-search, input.reset-filter { + background-color: transparent; + background-image:url('x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + font-size:0; + display:none; +} +input#reset-search { + position:absolute; + right:15px; + top:11px; +} +input.reset-filter { + position: relative; + right: 20px; + top: 0; +} +input::placeholder { + color:var(--search-input-placeholder-color); + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:var(--search-tag-highlight-color); +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 1em; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: var(--subnav-background-color); + border-radius: 3px; + border: 0 solid var(--border-color); + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: var(--navbar-background-color); + color: var(--navbar-text-color); +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:var(--navbar-background-color); + color:var(--navbar-text-color); + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span, .sealed-graph span { + display:none; + position:absolute; +} +.module-graph:hover span, .sealed-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 5; +} +.inherited-list { + margin: 10px 0 10px 0; +} +.horizontal-scroll { + overflow: auto hidden; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0 20px 5px 10px; + border: 1px solid var(--border-color); + background-color: var(--section-background-color); +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:var(--detail-background-color); + border:none; +} +.vertical-separator { + padding: 0 5px; +} +.help-section { + font-size: var(--block-font-size); + line-height: var(--block-line-height); +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for header/section anchor links + */ +a.anchor-link { + opacity: 0; + transition: opacity 0.1s; +} +:hover > a.anchor-link { + opacity: 80%; +} +a.anchor-link:hover, +a.anchor-link:focus-visible, +a.anchor-link.visible { + opacity: 100%; +} +a.anchor-link > img { + width: 0.9em; + height: 0.9em; +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 70%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.3s; + cursor: pointer; +} +:hover > button.copy { + opacity: 80%; +} +button.copy:hover, +button.copy:active, +button.copy:focus-visible, +button.copy.visible { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; + filter: brightness(var(--copy-icon-brightness)); +} +button.copy:active { + background-color: var(--copy-button-background-color-active); +} +button.copy span { + color: var(--body-text-color); + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 0.76rem; + line-height: 1.2em; + opacity: 0; +} +button.copy:hover span, +button.copy:focus-visible span, +button.copy.visible span { + opacity: 100%; +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: var(--body-text-color); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; +} +div.page-search-info:hover button#page-search-copy span { + opacity: 100%; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; +} +div.snippet-container:hover button.snippet-copy span { + opacity: 100%; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped { + border-collapse: collapse; + border: 1px solid var(--table-border-color); +} +table.striped > thead { + background-color: var(--subnav-background-color); +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid var(--table-border-color); +} +table.striped > tbody > tr:nth-child(even) { + background-color: var(--odd-row-color) +} +table.striped > tbody > tr:nth-child(odd) { + background-color: var(--even-row-color) +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid var(--table-border-color); + border-right: 1px solid var(--table-border-color); +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 1050px) { + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 10px 5px 8px; + } + input#search-input { + width: 22vw; + } +} +@media screen and (max-width: 920px) { + .main-grid nav.toc { + display: none; + } + .top-nav nav.toc { + display: none; + position: absolute; + top: var(--top-nav-height); + left: 40vw; + width: 60vw; + z-index: 7; + background-color: var(--section-background-color); + box-sizing: border-box; + } + .top-nav nav.toc div.toc-header { + padding: 6px 15px; + font-size: 0.94em; + background-color: var(--section-background-color); + top: calc(var(--top-nav-height) + 10px); + } + .top-nav nav.toc ol.toc-list li { + font-size: 1.04em; + } + nav.toc a:link, nav.toc a:visited { + text-decoration:none; + color:var(--link-color); + } + nav.toc a[href]:hover, nav.toc a[href]:focus { + text-decoration:none; + color:var(--link-color-active); + } + :root { + scroll-behavior: auto; + } + header { + max-height: 100vh; + overflow-y: visible; + overscroll-behavior: contain; + } + nav { + overflow: visible; + } + ul.nav-list { + display: none; + position: absolute; + top: var(--top-nav-height); + overflow: auto; + z-index: 7; + background-color: var(--navbar-background-color); + width: 40%; + padding: 0; + box-sizing: border-box; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + .top-nav div.nav-menu-button { + flex: 1 1 auto; + } + .sub-nav ol.sub-nav-list { + margin-left: 4px; + padding-left: 4px; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 4px 0; + border-radius: 2px; + background-color: var(--navbar-text-color); + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + max-width: 90%; + } + ul.nav-list li { + margin-left: 5px; + } + main { + padding: 10px 12px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 600px) { + .nav-list-search > a { + display: none; + } + input#search-input { + width: 18vw; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0; + } +} +pre.snippet { + background-color: var(--snippet-background-color); + color: var(--snippet-text-color); + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: var(--snippet-highlight-color); + border-radius: 10%; +} diff --git a/docs/java/resource-files/x.png b/docs/java/resource-files/x.png new file mode 100644 index 0000000000000000000000000000000000000000..30548a756e151be4e927e8d28c508cc5b3514bf3 GIT binary patch literal 394 zcmV;50d@X~P)W6IT{!St5~1{i=i}zAy76p%_|w8rh@@c0Axr!ns=D-X+|*sY6!@wacG9%)Qn*O zl0sa739kT-&_?#oVxXF6tOnqTD)cZ}2vi$`ZU8RLAlo8=_z#*P3xI~i!lEh+Pdu-L zx{d*wgjtXbnGX_Yf@Tc7Q3YhLhPvc8noGJs2DA~1DySiA&6V{5JzFt ojAY1KXm~va;tU{v7C?Xj0BHw!K;2aXV*mgE07*qoM6N<$f;4TDA^-pY literal 0 HcmV?d00001 diff --git a/docs/java/script-files/jquery-3.7.1.min.js b/docs/java/script-files/jquery-3.7.1.min.js new file mode 100644 index 00000000..7f37b5d9 --- /dev/null +++ b/docs/java/script-files/jquery-3.7.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.1",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(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&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(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,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===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]||I.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]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(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,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.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(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="

    ",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.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],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.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?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.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.on("mouseenter",e).on("mouseleave",t||e)}}),ce.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){ce.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n

    6o;JmTYE9s|z% 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%0A+0eOyOJC+b%-VM%49~|JWJCXAsVArr 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 lQ~n_|0|y9^KN9&Alb@peqUl#K-e3%-W(vxPdAD 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

    m|1P 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�d|mLi82P(KX;Lx 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 awrLj_r4l{ zroJ$XZJEsoSUGIuo-@;uNeYsn6iFL$B+03xZ5ut{(%{Lzs6Y$XmJDuI_?O$-HQ_2= zyO1G=ZtJex9seFW+H#?k5H!7Q`;<86)&N`YdrpPzPcSNHd z<2xgf=QSp^+N4pNQE?}=Si+B;|8}K8BRb1#YnQv#oL+R*Rd_rVbuLlQsol$KYs;OY z#!&h8`LWoX=@X{Ro;_v4bj zwoXZx;e%mAx%^~~v<5QE`l>542E%{P{fak~RaPx5&t`%aG?zX_+Vb~0?IoREd)h0q zR!OPp>}>Ds)F{oiYpjC_ZSTxBZ$G`E1uPAVyWT@iFn*8lJ}9K zGZs&dFG zm6uQ;HPNDAkW`-~X!=^j%UX#JM4SI#&c0p||Ly5iS>loum+0iv(UE#7Zk1vZ8N9}y z1D2Rsid)E>`#?~No2@a6vU$|2eoIWU#4PIWt@%cBPyP|IEB^>J0(44IvpFi2@o+9# zHA=#>tQ2tMZz8X?gr%q`My0rrpG!^-`OG+>xk;OU5!`C`7qWH0U9b`yzrC*R%li5P zpSlvsX*H>+rCP;S`d0q(JJXoBzp;PuxPCWtz}w+>AZqS;a#z!QfnrDSck_fLNPw)olZ-7|LY z26y3Uz*SZ`f*Mg><5Mg2lE>?>@%d`}UXNtp)V`W(6jhma<7prjgO7pM*oX5b%|o98 z3>Oe2y@>G;J|c25&u9b~uDz0KCvj~<=b8wf6w7Qd^r#hlS{I9If4 zlP>U&uD|5xkblPd!g+`mdXdhVB#7L<$9Fd=FI?mHSa@Gkt=S@KjsAKsg1Qkw-CEP+ zHCo*6H9J*oGPU)ydR}93)r@Rh=hGSJ!dZ z0J5EAMql*7hpFZU??t1HM^vAzXEuCFwJo`?I&|PpP_v6HoX@d7ETAZgFE0|%;@|L zO#U&4lGL@RNKgI``QMX4@T9!9fXcZMm6I#G^C_(Oge8SxO$NVn+Wo zmYli0M7kqede=l1^G5~zcrwE*1V-}1JIYhX8dVZmRo>g6xqYI(U~968xR4&pbffW9 zUD&+=1am^S+ z8ZEwLbB}S`NE3PY=UwyRrwxj=MxS=}=mV^+ae{t%MsdfJtIO0HM$2?R26wGkM&4Ji zJ*5746SLv-aWnU3%hcp;4}x&@ZSd&grB}zfLzQbU@>;Ez-}Bd#^+J22ygs5vFg}i8 zEcL@UogLh<0sVvos_vZOCrRh1$;?WA#fv&3{8? z?>>Ym1D833e}sLr2to)G2=_Nsz#oy)aQZQS+%qytf4Ok zjCu`uC!?0OM>N#Mz@lCQ?qF0XPD@=J*mdmz_&IzFetzJZUDV>5=3QR{?KeA{YZuWi z=?l6S&Ax5t^l00>700@ct-tBuKVQ7OZuvD2w2!!P-nNY|-F;qm>IIj<^CNplckS)& z-rF^LZ^T<(w`)UF(}rDjd`*nn=v*(+)wH}nbqnF8Qz*Z)V6Rx1b`ibEE=_o>r{Hq}r4mnO$11G1 zez1~uRJ_q6{U-C#bLQT0%sp%{UDdGdqFz^Obi>H7^`!B#=nWghYWgx%_M%fW=mpH} z_=Y#YNPI!*k($(nHnJdkQ?0CpOT>(3r8vt6;biB+KFR?D%45okwLFH??XQ|&jJ+`%te3}_eefQNv{LbZ?62wG*eXsNK1==#2yl3-fxqQ$_1gSmD z1G1HZ4B<3BLQFDYUf=_K7R~8xF`Bx0*BeHA{x@V9xI}aCT;>7hcx;1NC|CaG5Eytrm&wW2pg|rW z1d!jvnR6-X+?8Mj6Q|(`Cd{l`N1ne9{RajthvRzRuON4DJA4fN zOI2LRR)Be#ZM8s8QUBNkD)W!Q>$ZUzn5Jf)g7k96LEuG7e~802m6)C~n7LGefu~Z; zYDCtFgpR@!Hm<}crDU6A5gX?FWXq3ihKyc$V@rvsoH!9UO51MOx014^!|TIoE46a( z4Q(Y3a^gg#xwz$~y~85N`$4xm9V@AkLs#F}TH+*odPrwU>y1~-$!bbsX?Hh(yKZbP zb>JvRY3q&hS(fCf6ZEZ&9zAIZ6JaN+cV>2pVvix(?VsJD0O)TJ}$&ri*pMC|bxz02VCBdSG!Q!K3poiNJ?IcjOX8&8bu0(YMfDsDFOM zC$q#zq7!MSYlz*%Rm2^{gLu`y)D6(cm#u4%?kP(KoIJ&`1+?U{k|=Ou8p*vWG`@4P znImI%gTh%Il*Em2TZiWn#3gV>Y%Qq=vOP~o9{Si2S`sB}l7U!{kd`uG2AeBm?+pbj zVw49Z4dX#l5CjKQr%`XKs9g;FJ2l^_3{O{X+sc~TF9Le>?chdu>0jeHv6@iP`{{B*MYxgN zfJbN=afci>1n@Gl$#Xa-g|VN&9KOyt910?Ai{YGz1)MOI6VUts5RP+PIEVK?I4UgQ zbCqvz+_i7oMtB3<;&Id@?lmS_^>$|uh`<|jQ7^5o-MsdiYc7il#*%$=9=7M7T;E)i zG~OF;btIDEE9XAsjQGK15EEL=@RE@imRDqQi)>ww+cp*jgX}7cspT9lvvf&X5s9|~ zPzhfuPDQ90VDUoR6J55AUYhGVMO1*&VvDIT?~fvs^o6to%?Kq#Bhe$Trg}5Apy0h7 zFCS$Jn`yGk_J7&y6!>1R^+4`5S^p)xD0v0%w`HQfwz}+SU+)sTPcGFMY=cC>%mvg-U|kE1$q4tng7Xg^yfkVw7GE*@L3{q0bxqYtKJYhC9cyS)X}iqYK+qFt zaM&F#mA*x-tj`9s@a9}aS$3hV^D*0oNFd0rw3wO}D$15D#>CSCE8uIz$uKnzEL>=N ztkbsM%dnmKa*#?%CW0XXNM5|3o{OXkEz(Ugvc$-xDcMLy^k=-8e+iBs9w6kF2Ore$ zoI3S<_zwKD&sm>3WK51SI9$CT1NTiT|84!oRX_5(a}~LjNVkcmMqw8^ zPnDJyQ9Ho0WsYaY*thv;ZY=z|3e=ZcMVTgQ(HPlBr;*%;xd67g^rBAshP>?$kp`xS z|D@;rgaDogtsjE`KkvM?O9LIHxsl=Okt3@eRi$vh$6jC+IvZjYVR%!n$VV#?tGN2= z%c4dBvkF`OXP8w8_sFaww13V+hy=(-o5nH|T3g4d)Z-*=DiTd9jqo|dHL{p%*e{6m zbB)D{L9Rhm!k3GS!_-u;Xrb-#E^C2nRDhC{%rqFpGYG^pjI!tL9MMip>$jGX4-DnR z{#EB8@DwZq{x{=eS{OAbno6A$E49>)Aen~9xS4auPoKMXfjyVM{y$|PzfX=&B*rI? zwdz%kA;vkjY2>)oi|4Obt{eWd3RIR@O<0dkpbp+fk3zCg zn5ZnQjs1sR>iQ2mva7N>TfW5JeGGLV6v7>7UCQN_pPNz29jJoGOG=8UHDKvE_NTgS zTM_Yg!+%tPD%=5v9p3_B;c&r`1 zwBZs89(}0(i_80*;i;y?>)brDzFKDxpzAS~T2X2=hgyrORN&96r?i_o-RhISs;N*c zGLzytT;(FLc>yz>LOD3Inf`ME%Y%#WywXLhiyWzqzFWP#gAv=v}q&K<80zf5;}gJ|v;pgoR|kW`(M9|owvXzA8rJW^>>1ihwI=>>dI@$>#q2f`2efg*D!4j*t!+0nbxpR!yagduiQQo za2pSR0biCFqP#w;47)N&7W{MLvE%}! z_yO#`5S%N1q1Mq~sKE~P`qfeTgl;RGp>79{%{k|s<4ejNQNNjN+j05!V0DBEY}gB) z-%L$n;cfo)T$c#ekjGYiXU{G9#nN-;mKFV1rm}5ETU*1vIOgTm1cUUO8T~hH7j~TF zh1vcU(SAQ+VBlVxQ#ylW@_0nEL8sG8qQ@;t1|6)Wdrk(ZnI~@|%j6fQC(3_8Px0iv!DhjezfZ>>Ni0B?(Oe)|6S|obTn%D~1S%JA-a!5Nn9_#HRoI5aj-Ug6tOpf&O)u8|LHh=?nfDpJa<>0I*D*FaTpHv68ng&ei#cs1a1ER5#5u2Ix859 zb$SbWYr_2F{;FLeUR4XX%E;r?b& zN*fI%?FoN0y+={#(nwY+fQsqpKV`l-TKvarAezbS(>s~ z2KLMt)TXulZOZ;TtqKf0B|%yC-)Un0CM7&3nIu|HmIemQzV0I(%X z67-@UYr@(gbO9u>bMz+SfPBvw(o)CLiSK@WU~gexY$%Q^#0GH+a0qsi>+tu1y?giK zbO%mBx{7|BP|9%2(m5VGDnep?7%zHdk^alG0gm^B;7+jljR*g0?`wwc8u0s?Up@5V z6MurUujnG}vB&-3gm?ZHA2})(6TKUjW%Acn|FRC^>j8+Bh@Pf1E~J|h!kJ|rX#jt1 zc<0HtU-&0%xPCl+BAJx@JI=4nFCOt$Bh(hoj)jqKdk-CvWw|g`wsTTW;-vonW+BWW z^&#Oj%D!q@gE)PjD z>_y)-Yt=2%Kbx7V#gk{?dly8pG*><^lbu^xUSc+bBKXGGj>Xj^)$*;SMWt)HU^;cm zQ|ZB|JF4A9OiV_G5}mh4zq#Hk(gmd?-R<}aP+P;*5K^GB5SNDD=l z&4XWMw7Qmv6OH>Vgof^>m!KylQ9(>52-!6Oc0UyYlDz$mdZ+_3+OrOaIp-N9oZcr5(79lTgSncKeBZ3r}5RK;vfiY-;O2j_|A1urNl{77b6tI&9b^c3Ir_TR3{3_NAD(04G97RCm zIuWsJO6FF8ktMPW{luv}Ei!*aW6VrM<$IWr-glZOF_9HzM`Ba}O`c-GI~XH72jjy6 zALg+ivEk0a80=Xr7^Vh{HVbx|;L1jG;9HHuM;{^C8|rD$OzIrR;h$L&815nCBn>|! zpJ2(SySlpId9>~~&E@A#@0eYxqRB5=79IdbQUl-YqRkdd)NF}bEGGIVu9*6}D;u2k z#l8_^ttpGSxNgk|a5T7VZmKbqPEMXRCYAB013q|Ipa9%r0IP+IFJtI7m(>{7)~8de zFE-S8YWzz%kWgbDX0c#yu9iKrQS^WH-~X9LRHO!G{D=DD1g01e3YX*}%~$XWW*v}+ zkbt-N%Bnz4O5+c``Q?{ihK=ZpeDJ2I`|_8`fPZUC^Ojcf#r(IwB3rlY*&6hNm#((N zZjOYWoHgso@H6C+{Jx3``J4Qw$LPxMPbZ5rnHgo|!u(ZbGcuXtWSU&8F{}NnR(<*9 zDm2E;1WP|oFGm0I$=uUq7d(Wq`L+=Ve#+0IKgutF*DpS=D0o%5UF(@K{jOST<>K}G zr`$(9(lVp&jRoNK`kAeCyq0xssH};_7scb%7iLGNO5aL@G<3ph>~lo^dq(Cj?TBu6 zBA%$lH>jL$BQ1z&b2ew9IoU5=C_uSDEtKjf^&T- z5R4!~=e&_ZzuV1%!GldQ@_s>`CAWIRQZ7G z6ZyNW-&czKT?dRF)?oHz4Xlavh03y}WK)aZR*{`rTUHuzoa@rgpy?S}*SU^JX<6;m zY=zB_qAN3JkIq!ueh1%r^;Hml^}VhoU0qA)U(=h_)(OF~C9$-&sXgPWbY|O|wCUKA zvfy}&W)s6~(pbh1L}#6qt_+TjpM#^-n@pXjf91k&*fl-j@68_Afghe)`knZ31q!7K z42CM4`W$coi1!pq^mc>IrgwnDvjWoSO*1{du7wS{XxTY&Q0ALJie+T3D4vd-d`}9@ z>h$~Ev&QpLT|=|B48&{7%FL91aynkb=8GE|ic=#SMpL9g5PU|XS1|H`0w58fsAd5K zn%m!PE}@hD1W=jG9GUPZ$kNVt+nYf^Xkit8M(MH}%B%GYa#3$7KOyUE4=%0YXN=s` zz%3oWvsSrc@|t34uF@CH>83fe69TLGnx$21xQ0y~>y))Sr_Pg#*Gx%|OqMh>lq5$+ zx&W#41@VchpihZrxK4$iqRve+-FwYu-Z&x|;PO>t1ZxlZ7#B#6(CZ!2rQJ+oy;9*L z##ny9jdq&zPMv{a1sF*+JHl9&lif7e@;^(%{kE!6Up( zsQBp_&^=ZZ6VU~gwIrE}Mkj|NMUhCjD17W#l=W;#97 ze(}^9Hl-uE6r3BkD{V)21AB3CSy@TSamk}rr7eE$(zruun>GzRZ4RL#Lm{!Lsj0m< z?Qq)dG<=I=><)*cv}f&@@g{RJKDVNt;gZp45+oU}q}1VXK9DX}&^Cv&t+7cAhN976 zNNgtW(7SkpgXbLv-lcyimK@jA+(c2yw$9GBBt`lB%}wKyyF6aE$L;Y|StLmmCCQQ~ zPA05{XKNx^{8n3MEIGERIS`;}1$p^(*IiDQ05WMX2TRAzm^r32Xf`D1lD(tHj2XSR zlt~!Of%KS}GsdPvq9I9w+HEauZ7thuKA#q;?*`tGD=W*Pe|pKEr0GDQxoK=F*0IU$ zLrrjdAIN1)79DR$SxlK6Z{UMI`{uUx_O{J-yoM4*GWVT~jZhON!ilu3bBPPE-*sS; z5sCj;rYt04i`Q(BmGB87{6_Z3Ba;P%cbp0ig|da+DiPC_3rlJR$EG1n0|f(a)?Xl1 zzsz5-O=$mxu37f<<2l3Bw^~46<0}p)6ja<(6g@@w!(6cdZe>jwiV6bXDIyvS#wkrv zJns8*i_OtBnIvzzvMn6*T?Y300uiQt-_3xW+~qKimiW>V(cy{%O+~z{W}MmK=&a1e zD>WeDa+pd=`9$ySy;E-Qopwjhq&r~SC8Ikp8P#z~XV-4B^wND=_vH2ar&_hM4~^^r zjqM9YG|V|S*D<}J6Lb_`Ia_U?x_|XFuXZ1(9~&G+lIQf1Y@b;_I=1Gw0Q`1MY_wXU z`jFyv4oQv*blY81j!g=?>l;#*mfY zZDCn5V}KFrD9q||L8BpT4Crinon42%^)@>4-TN$(50{?2N5fLB7Z<}0@Y87iPdck! zZ`BpPu@1D0P|$6Ruis)&1g11CN+6seGG+b%5}czNA^&za7|WeJt|7C1@F^Y3_yiV) zYTGom`FjMG)TnDm=0Pd0kHasC*UQIGjGC+zPpj0RnWWs zfYNIVhXXAxEkwlg=5qGx487L6AiFFyoTfk=7GCi3Q;L=T8dKhkfc_) z&a`m-gA_Cm-3e33S#U)p^Jo_kh6m*`PESt0a8>s@lZynL(rB=nTvnUas5fYpN}fj{ zi!I(*Z&MnyT9TwlrNWS_irI`Nl}@QN3TA6*+Gtj4m8?=j(iUfD1u)-Q-lBm;`}37L z9k01*6Ec>28G1ewFZ+y-yfyc>vgDD^@|rP-Oe zVggGuoKmCFD0z)i!wiH}28{{)i9;c^N~2NhH7X^?QVgn3qgCm(Dz30j1*X!s(rUs= ztiXKASULnYytXj}Qy||WALQi2or5?!1I5^OA1Q*_GL%_%jd*%=sWgaSBpA7Yd_R3) zSS|7<(jeOI^E)(J7X1KLK&iiIHIAW2vL3wV9b0`n{M+c|)e1(f5_y-U%4!u&8kI^d z8eCRqy1vuoP@*4)seNSHX>}PyHR`rWv|6hyE?!ir8AbK-(LlJpdaUY)NH>FasyhgA|X2F0eRvGm+$<`mTaweTYqt^?ZRi!ZqW*lKN z@FE2%MLmKv_VeWx;56sO!^%5^6d4V= z)4^N^vcrcMzE^7aP^<+5tGPHk7JjNg@Qkr@#z+&+2%nLf{N=uV;8&Wa+>P*yiYA{) zr(_ixrD!ZIv6uycQ)m^U(Hg7B>J>^fzDO-6GOpT&nAPGEtOj1G&}jWutJNt7SdzB$ z>qf(6dKIfy(u|TbXbd{1O3f)~TEz%zgYNJ^luC<0>{O{Z98hbuIu-TErDYCtMWaQh zrnCx!WHH(W6K~=;-Y80<(TM^oUP_^)dIQU-7>=~_Duq&SFq8P*QLV4K1va;k9bLO087Tltzihlm-oOrIMmCk5v*ipq;*w zrVwvDA4#N#iPs1S5}*vU4){_SHarITdbD;P$>^5u0&x7+HFv|6p&E_j??kIQMXE47SwR?UfP>!ycU5&H)f*`ld+*Pf`E z?SQ+WSvo4q11?qy_YI%3PnZj3~Lc*FnH`vlNoU*wP3LZCAY(35wvPE`!Y#0 z3`5BuR0qD}3qR86Ee$R@El8f06t*!8;%{isqUlJr0S#?t7AMLf5RXrZsC4--p?&BPV>UV$HyDZ;1A9O7w$ z&S`@K57i`@>Awp(XB_g*Igoo`U#*~O${yV1jN#Cr_d{HWTsK%p0Yr2zp!qnRVK1)$NDNp zZL_iwx4AT_(Hg8_hgOs0T>&FcqTxYuI+N9|H-S_F&0{JvCvs7ZXa@B(!<$52(CQSy zV4$^aV$YlfJ>xo?LvpC6XTj`ACCO#ov*#^exnO2bcRUs=8aHPC-1C+#n9(yf8jER* z>#%U7+PzmMY6*dquOTNvtHR;RaF1A6v|&FAUzdL5ZiQ8YCFJ(9B&!_QRe zfW@xY{W>LxSn^XS4F*w2p*f0IpdX$$MdwbN+&(H03lrmfHJSr^u??n>$%WHc zp{3GNTJ#tGN@X=R1~?Rw|NKV0%;?XJwHJ?Cy5x<>=BX2x)sI@)yyAE!V6g-;$5%A3 z996$;;?&KNHui_lW-Y5j-30^M~Hm1YBdrAx4Z+scn3)xV?O$bWktk$ zH6pv^9jJd>r`N%ml>g*A1VMvFLQUcm%K>K6+*Qticd|+6K_#QI!D_<}i z?$3glSD{(>Oi>v&jxIDz$cDi{DFgmkWuw|*;S>OkZlf;7yV2|_`m6?rV0LMB5nXky z8_fYop`ukZU|eQz!lDLBk^?9mpm++vdYW@b0BO;a0_AbgG*CEcW89?h>w>jrEWB~7 zMXm2Tx2uyf(6mucQ=u7A)^9PO`Hnd#~wo@w#-trd^t1luDo1QY`A%w|yh|jLueM`!#bwx-BWt7&Wx#-n#6&)&0PhsoVXp@_=8WpV4=&|XQ z;aJ337POI(GD+*vF|?M8PSPp_W32|s2_i+Sa+G64k?}!=a_fQOa3Yf{j9m}J7dU#F-Vn|tIh|6W*D2`<*ghpe?5A&|PGZYsqC>uaeG}rmd(a3s z%gDrcQDMr#!mS<@7O=8|(_+6+%gMM;%g0eOtjv;yLN>ijz1biZcJXTLz(k4v_aEr* zry5p{6Xi<>&`{Qc0;@(rT6`1~4|nD7wTLYBxlLoPyDMzbdEE~3#t?u1*s4UW+EzU^!CQ1=Gl{ID z$?FTub_a~vfOoksp1-9^wW_|`XLcLD^N(b}CemRxn>FvMC^Z{x9(PQO13PP&KKPOqcyAVk70^SLxJ z4(T6Q-#}2o*XUtbnhLs%D6-dTYD1r;XYf42D05z-9DroL0V^ut1HWdRTPA*!%M!kLw zNbB?8ePz-tUoNCjc&DUv=iKcbT+Bj|C}S9f<` z-3^FKzx?9T-x>{q@%?UoMGQ%EYP_DH)@aeAN~OVn6I+cYgK>aX9!IqD&i81gf5pHo z$}Tjd0)qx&HyP#-n+{SSEMd;h$^MK0em-+*8k#W*GeZt!aZ*GpN~B10#}Gc_76Ick zZ(F0@utvS>W*y0pj{W&>^&0RRnQ>uM%A~^NZZuoCjqv09I*nyvbC3~(c!8^5MjTXJ zYe6n3G661&SQisyhJ?ytN;4Cr!?Q#0fm^^Eu#Hx0Rgy}L`iQh4)Grj!s%dZ(7QyN7 zt>U+V>p&O$f;X8`CJ`@{D3rWGL;({I^zaclcN_TS-`l93*Xl%8!y%PR!D>|&m5!0i z)3E0HS0|GHT-ZoX++#H0^)LgH-cfF2LC_QSOr)@!76d$fA7z*C7A&;CzmI2An%AGg`G?=hNxcT11mW0q}Rp{>N!#*Q2AUX@9g^bQ%rIajXVu z!@NO17(#70NF1Xp=ne8o{{oXAa3{(U1M63^;|+_?=to-N*RN&Ia|llO0DR9>Tc>eF z5;Z}xyL^!mT>Mp?N}=_`MX=h#YS&)q3;4{1b?wD4NQy}GtiF#=0csWeGTrp_FrB!(4{lB zU{CKBP1qzOXI3H>sr&UyTes+KMh~eG9UdE}aa&AM*P>r`>W#cXOY#P@)nivE4C0FW z7WW7yoghVl%A^Zvrfz@!cPb`o6ViY|Y}V-49fO}Ax>RqDN_tZ7N{a@i#WMcRkIplb zUb{wZbL*uDszWr|ulecipJuG)n8T+r$EAC3{nO7>1sjcef}t;`CnEeyvi~Hcfeicx zhaSBYHb2A8>%DxMQp3mLFF+M&0#&C7&<>BlCU^w2gU7GLfqnRSANdNXhR+NntQtrG zMnUhD@F-}zQoi6F5EBWGUQe@_{=l&M$iIW_a0C1RZUEbXliUkGgO`BSzzEJmJhFmd z>4Wrq)OtN$sm}Ow!&*n`4;?xLUWd`cFa~~m7`%N59EMTw`eE=o=C8#_`MH^1(VrL9 zG`yGKRgi+Of?{wJoC#lsGr>)u1l$Z#U@&kKZu7MSMHexyLYs%x`~sK`Z+Q*g0;a!4 z9eXWrCO>@*OhLR=>{EcF#clA3{Gn~&`E8&PaNBZ7G5i~u5etHmx883Fm z&*L(~@|6SVFP-sHvVVSFcK%1P@E2cy4XVC=@awN(1$ugR_t*IOLF)PsK7cRe-y!`V zGXl2B4@Wrs3ksGOmPmaYM>VNN5{b6 za+m1EmnPtY^<-*VM^j@i?RA7g4tJ)krD60mhbxR3Pko3j$X9%u5(&i?%wn?o8z+6{6PmuCDD z3J5tr*>?n-bL0rT68-Hzas(_c-nkQKckbNT^WdII=;tB$^9OrAl%MF&&`3EBe<6>R zDo{D*lTSbW2`Va8$qalqN@3dW)jH(IRi9WzW>i6o0Ey2tWE5oGTVrnK(q#Sy_E zj_BQE9gHZ?TBZIXNiH47i%a*X#|X z8q8!GUR10sD-2xPPv$fXmtFu^iTCL7vsq^`3tu{4B-hxCxgGTR> ztTvm~>TeDQIK9Q~YIeIUxD>Mo6^OFlOraK8 z>ioW1tAw*k)>@yx&VpJ*-mF0Ix1IVMeU!c!@h=^l5M0 zs#59{u23kN@Q0laqrqTwIK%!#G!$|vbV`*w6e!l4Y)Y-bxePd`y(rKVC=_FGae`Kf zUKa<#E?kVWBNh*YoHi5Bqf$bFc*+-YDs;3Sl|s%=`-*I8rH*rUM&rSd(_%Il1iLd7 zj3<3zC#Rzgu3)fOFIrKP6;1>CaXL_4{vt=AE`^{`p}NWnP3BOOQDtGL9XHwT3!EGjQ&V|A!Z~hlPjJ$PaIOq%(t?AK;8c z!!nV5l2O#@@rt)zp%=`O(WI9{ZoGG66!dDvACWeJ6d%3bB$&+tj#esJ4uwQ3FBo)K zmC^A=lUYP@9E%ca%>w!@Bvc?J=CXv8E+f}q!@LL2iYcQz|(FZiHmiD{;KSpfefiou~{w&Lww5Q3#nWM!}`zI9$YgT%m|Csvf^V z&BOPfDh7IGG)qV{hQi?uf3?2$T}T7N_KOD&2dW%E+Te$Tjsh9fkDDLcJ)IM1a<+hGA4!C>B>Dqm+A3 ztCD-*LKR_56&it2Dixq9&rh*af1>Z87vVD-!hobQAe;<{I0ItK%7t?$jEhBM;hye= zeXCaWE$r?Iqu{s+a~G0D@uCT1`{td$x^MQRv2pY>cJi!+tJch4Fm6Io9La*gQyzhgb=g?h7y8|04Oh@lz;-> zBCzU(7s0BpZSY!noei|_gsouCE-)9&+Xd#pR&xI|&;5f z6wHHL043i=h2V54ok4Zr6K#~2p@Qh+rT)cU7}>WDt^)PzKs^|NzTm3$OXtlP+g%ii zgvNEvnY(PsV5oEMT)G(U`~>d$3V$s6d zOa!&*ZaRsiK&*fNuqgrhMdBe4lt2Jp^5Bf3h|kBPAD=H$G(0eQ7kCt2zY7Ct7rY)k zN@M;@y&MJ!d3yt$fiiQU!Uj!S$f{VZc(1*TYBe{P%XoE+m!`I=a z%Ps?3Ko4pwYI$)o76}wu9*D$}#Zeprm%z#JJ2(X}@H=n^U}U{>I1S-75-H6|VJ;U= z3q!abf?;3N?;jrd$ipKa{(a*-_!FR60Mz(P1Aj9A3>Z?X*S5U61%1Fmc>HO2{O3Oh zl~03LzX!XTQzz*wX~*~Lw*xPOVHou0I3(QXq;L+^Zy(=iYihJLj<;{6Qv}&IrnI}Hq`Q>#!zKSjpMQdV|Ge+31796LAA&`F{s#5A z4p9<=vU)7!zrsH^klozdA9Pv5`$ z=`6e)RAhJW2FKy?-Q+Yl{q&(EpK0XjTWN;S%3fv}AqAK)>YpG9-XKz7s2pBwrf-4I ztX=UJ_{SA%;WJ>@+T}}t4-zxrE8k52`#00Sfv=F~{0Z(3-up@rtoj(N4#J1>@ZH1k zU8HP#4;N(o>?ufJOK+8Zh$7uHC}{x~L>ea(PJkTv+uuRu26$Zl`a3+n0aUi_+3p2qS!%M@9C3RD#9G)@-ehF`# z0;U}X)2CqN8+{!{FUS|Jz5e=ZuYLZy7r>POE_va)=g|i)0sEf64(qU|@<@kWhD*ms z%?2+dLJdVt2NF{3$zOo(EPSXFK9mLBFaX|x52A-o{PIEY4r#!_vCt3R#t&mUz*zkL zZIp0K7Cz8{>Ifhjzn@+wuQVW>YJn1wtr8^gre0q)m;t{AKY^nVmT#`Ef;R&d>;Q-1 zH(&<6Zt(3*h{oH&5%}L=W|f=++k4s2xIao?IE;=8`YAp~st4XM2U38~g+U$gN;%*L zJcr0CNNIr(R3r2!0L4%@|DhNB^xfZsis`@a?S;?%VG3+{_jmBQ>A#yYWgQ4_1X1|< zM)=mcweYQt@O2Q~2*T9z>2FV+dU{e&`G=|C@ps=QN8{vg4o|*z9f)is`tPXvkiHQO zd%RvE1eE}{LJ1hMZw7c1?gVRLWX5zD0qfv};7$4zlx~HO!Jpm=MevtfK{IH%m5_Dc z_mJ+pvH;7|`$G0j1g$UQ>@UMdCr*HmzKjZ5_cCauR}6c#1FT1{Cg7xmtPg!E!|<%- zZ3XT=Ai}@&!S}arf$#UhzW}ihxakWEueJ`o+KQ7BGOpi2xbBmwRmf36P79=<5LN?D zU~&l%W+;j5oAg2ks15@FPa!;KUYIoT#Vq{#&?%Jt5Kw1dq!++bhj7Hi9u)D-A$SUa zLqL^%v1cOAc&M=ULL$0dCEtRD2vxwNmkUaaSM)OIKNl7_3K27f{)cl6Vk#Lg8a81( z#L24Ot>d?RKH>zZ^uu3(@rYW>{qXpS5ua@yzqLOK9`~bh`2dRig&&lEhNCDC3O#_6 zK6_%siLK+e^=_H4?Th-);B$VELuHJE&!Rk^*MGic!j|4`xRlRPV%*jeME^I@eBA8owZgnx&} z7VHSH+)!5=h$rVH{D*4c?27ua;i97O z*!qgO3sj6+V9MuKdmM}@<_H)~RYlHX2I&O`wgk9}Dow_KGiqWSp6Uf8)yEf7)9BKBedVH_51i-=hqJH4{3)7T5AxZW({C^YQ~)_ zMtG_~c+xbdYg9_b;xQ_kR*qYwRH$mw%^HNI3WTNNoI5vp0M9skor1L(HIs8g`PD6j z{9~0gts1jfp+xyx)I<3zdX%DtC6CIRQaYa34Q){kglbiNGb`%Hgd>sgnEHy@^JNOi z&8c=fSpidkP+8kr zQY@k$J)3eC4a>f;fPX-go%#!XfPPo@;Dv2x3MM`BCAtW*-@|wT-BQ05VK}4**vfk- zjFCHlS^pqv2P_T;iq4V7P~@s9jU774=buv9(c-U6hI`85BQG8qFY5`1M?^-Bs+!{S zNxF`fp373QpF)2fAD>`%>vf|lJM}6tFx6m8l{ZB)wffdZ^0nk>x3)VQN5B={qY? zMvr|$4F0+@Yqcm8iP935R`X>_l`T*yy1?FQmsl0BsT5^KHO-cmCKR02nx!cvpD93`o~yT+hCPvnndG2KVhbu8UUYfpjk3+R>lq3Y2Df z5VlQJv&dn08?|=5Q_C7W`CU48?2_*>uv(|yt~I*t4$;mHK&5$(n+)=H-Cx<1|6%Cu zn)Yy5a!vdA8e?()d0Y)YbVETwIMZM>8ZyHL1??Y36gaapv$BJJk6x?Q_?_9o0<$TY z?gufZcl$%3ynAC@s+BKp zk7!#v*M7~pMqCt*C$UOZ$e9x=%+Cnl3mx{nDG>eA4zoHTe_w;$=5*Ln@rHENM`tK4$_T|+ ztWeMZi`zjrd?}^4c@$(niN@w|+U$nDeoN4*{6USSO1l5c;kHl+g#xp&P)1RyfngMk zx%C&Q%bS>7W*GA+;!p&QMSnxoj#UaXa@XEM8H=~=!Me0DAt;ev+MpnA-V+o&%Qb6t z@X9uE*_7UuE#b=aSGI`DX7jFWg;%bNPw9`+)MS+qT+tSuoFYtS1*MeNwVrxQTb8KU$)R@v$+tb$e7Vf|H1P1z!s|NSPj9s0A z{f`3VTG9!v;qVJ8sZ=SKiQ9T)a=BcpdI56}*tMn%okk&*Dl|Hy(WJHGv6#EhuC^GB zso)HY+I}C0pH=ZHX$pZ{rj+xlmJb{%l`73&E@Xyrjw&Cr_bwmyKQET zN~LsVxt!^CCBWKDK2O-GOeOMrE=%Ngczr&P+h$7xPcQG!f5ZMF>X!AtWYE068*oxk|ywaXaQq6jDw`?oiWuBT-PC?dpwUjZ(JW zrqsx#8ezi<)DL(QTA-A#u_?6eLbVD_vewAkqu>C=BWY<=>bugRY{aG zK*4fAv;sO(iAwav7i>MwJ;V-6OENsxALaZzh_9u~^*P?b#U^<>mmM@llYtrm+VCmRHFRired?Wxm$*>yB$E;)W9 z`6u$-h`e*>A@7aINB(&uInHuAy$e)|oZN8O=K^&@@A8GixjCS-xbzdOw#=;3SVhN@ zcuuy(N}o#NH+JYiACN95Yj7>yU^IE$(Aw-Acp5bM`Z@EajIAG-nVtd+)l*BTsqq%zB zP@hSz>D{5HTJ1_7l%>&R4z#<~>Yg2XY2_y0P@O(E+9ebz)6kTwz|QZcE{$bW#qxC8 zp?;%W-Mgfx3Jk`9SxbExR#)yi6w?*S6gGc}(M1-M1Gw8YGsU4BqwQE6r zZO!zadb#h$`b;nHs0c;8;mX_qVjT)Or1R%gg}p`L3Wu0Zrt3LV9%FZdldGXHDJ%t zFZK**=vml%>u2ywBaUwERoDZ5zxaI5z=qz1J-2=Z5!~NvtJlr?bMc9rvud-e*Uh|X z@vL=K*|pg#nr`}I*1GE2fz@kgHQ&^6IW! zMN%OO1PSXxG@VMDk(tvwN5IrRRS+QC(wV{(c_w>*PEdS@JZ;vjG&$S=!mLmTZcL$I zj$YSrQX(_=9s&vBpIIh3*`U({Dw7zWEkGvI0z_K`O~}h>LX$b0rj+wy%7Ddew$gdI z%+{Z|C!wE}GD=3n7#Ita$8?1rcQ*C$Ci<+StLt$b1yNXz!zdoQoXJVvv+erVcEu2G z*E_T;1-_lUZ&!5q%g!S@cOHQ%$+1clNbDnDS0X>UC_IsF!qb{;r4IBHR;jyAr=&MJ zWlqjjL5;b3N5tHz*ivW>2Capb;!fs>LyzWMGZ;@C*}3z`>cnvrtR!EdUC3WazCKC5 zszkvg38x@kv8jDJQ?Wx&)?O3c;p{XZ2Vp4iCXLO5B9sLPv`%1lh|Ju%(A=P_N-uCD9i40*|XT*sk=}r4liCmapL+3 ziQ^}$1k@){0RAOf=;O^-A!vE!Dg@}z|3HiASH#l#6Ss?7$E1OD3^5U=lIhC~WyUbm zsgE%_u@j66=kf8vS+Kl`r!|jC9t{pxP+yqBp+49mIE7*9fC850(=hs+kK@AjVai=6 zV*M<2SCI1T=%eTQ86pN~1KduN*(D=yqY9bRVrm{mpHKyPn?AAU%|=N}Y#(p(cv}9^ zcJH#9J#I6_EIvW8f@t&e=L-3sm?Z;o8rH^Um*O^z8@Nt@PK6c6(4R(12K z;TGy5&|(k=0`VlT-_CXX42mUGXf=mrdT5%H4Dyn6zu(@0caZy0rU`}3)XZ;Z16xP^_q zlO_@1)fQwVXHj>Pyx8gy*0Kazf9Ia#IzTJ;GK|3p`Vw`h>{BCJr{G>6pxbUDMVub0 zmftrDInXBLSpMUMAD3gfUjGew>kcGYsn_dutC8e(^419*HXk4-k@LXP9~LkEAu$G_ zPAAqO={khgk>(92$UEZNudc0cb89&{!_rj@L7i7;q1!ehIxnYgnVHs=!(E$61-r3j zW(mD*71ET0@wJJoyObtK_jyFUI?mWKj{Us(Y*$WO%5G^HpVp1jc56OM({yOv!QIQ* zAdOs1Bh`5=@D^*!uu{&}t+}O?eY9nGN6t2^x#iM+mRXnJd9N-GZ*aBrV}EJ>d<17K zW4E{T>&RtxZ~g^r!EDga9_Qu=es!s&WDIh34q_2UTF?!Mqw9ted*K(JAw>AaB{Woc z!i11!+>x&2f{@!qC|b9%y)_NL%5R}Q#OY!h{OW!DmOp1nHoznLpjE+g{JmnFSI4sC zAb;um-18F;+7;n;ivvNTJjLYea-#@pXa||B*IRectje(=gE(Y#&(*= z{sUQl`;FrMgx!k?zds2h^~e3_2+F)=a_7bTK62*QUzyfc#IXNh5A$DW!-_ETHN$A7 zig2r+7HexObAjEH-%ru^oM?gx!Nk0UNJ5z+R!?&VS+%6 z#!X&&2JN-YWV(V0?X;PwFCLkUde||UELx39Es@G(Dy_he1Rb^>iyfl!hHyBJIcRUXby${WjD|A|`*=99cwL0p1O{LOmgF3xZ!%NNf zKweQij-1yIyL0m!k7OJi-?Fu?%Yfn%x65b>X5|zVS7c=7`Ypzb=sS{5^WEC|1^Y2~ z0Q%7A75Q#Qzy80jF~pOWkMjlG8tsg~O_{cShF0TtW%QXiAuBr&pk{d>kex*zf^>ah zFp$k1@GAZ8a7Nbnfm5D*a>}4_Ss7usQ|E2@Q*ZPEjYS1H*+HLCr-P^LoPwg9EO-*i z=uPPN4csSSYjhTO6kj=_dG+)Q{tL>-9Tn*fg6`*bX|+17%N+_`7tCecRe8sP+;p4Gnx9u*+NDcrd0xKNW=qd4=vZF$z}Qdl>PE8ZX{)6$ue?K-&Lw5} zdFfVwE$G;xYjtVI`~s`(X>vQ1XBA`PHgdNyDrPdBJ5Qb%FOEz|q-}kr$taFen2hvL zy{J~$YZ*$xUN)>k=P`=gdf7HdAkj-nORA=Ty zTA9c1e)!0s>I&7s*E^JTiFo~Hr#9V~HnPvC!5QUVe?_N^OjTjGa$ivA)7kQheY!dQ z#zfh*p+K?Mu1PcJJMtRJDr40}eYTG(=rq7TwdazXZut=T8g7h-)?`*>=D6GzgVqu> zmXGXR?#k`bI>VREQ$nL+n0~-u*<6QFJm9dBokP zQo8Db<`8lP+4o0bGW;uPL2VRe&{WjZ$4Q$m(!+@ffw*aFsvmwvx{m6rwNP&{ke%GGxdt?jqc>+yIy zR}QQhF`+azbK1&V@45H3rE{j2l!jwPpDtc<=f)+Ar%a5;#kQ7umycmA1<^|bp>!XK z9|A5H6=z4(46N)-@vrPxJM`|=E2qsWhF4FYxnlK%a4bG?%Hky(?_9F@)1r8&v}F36 zC9Chf=ayB|Ziv%Oa0pFoUCB=62ZBBgC5N?oi#LQpV~Mj^|IO?{z=?aNXWL*L}~u^Zj*ug!~>L zKLZ>+bC01%b<#m8yiSDU#sXw>Ckly>jqG4|@FVGZ4W6FZQI1k)9m5@T_7Fx-ag<11 z2!5bm?znq{#E7U_btC=|L3bFFP(Jj(fv0s>%Zjqx}_HD z(zVBz^oP9tNw%>^`N>QMZQA5c{_tz$0MoqAb(HWh))eR2#JI{zd_D*$m zR_4t7{2OYktKWI-P|ea4>zCQgRaG0BmenlpQhng7mBrEJlUILnpbPCRnL#L@Tg-mT z$mkkqzp(l_!Yv|?okWs^2LFp(Jc(D6$B^V{BoW%m9Oiaz1hSNy^N3YbiYA@W z+kp2O5pNjfB9@()*t!XCA^*a|%h?f$@ps}8yE-Kv1=w8lF!w0iL}@m7!yM1?ac>?r zE=6*5lw^=UmL^W)U(dZYdh}c81e$xIOl}od&J@vc0BAB)Wcu1fN(J)zXiG1Scft{G zo1p0=C_Tu`t&+;q$dNR?F6>pQrBbO(wI(sz;I+#n5}Dm=zz?la$sky*@`iQ#G?b&p z`$Ag13X;emkS-@N!sA+Xx?T(6>6$evz0P3J>L5@#XdFm%Ml~L9E+YIgD+h|es6|)cRs1J z3;DQ|-#p}aO2{u}Mx#00EY1pd0%Xu4$2bi=nOHZAJkRNxf5rO_9z+Al^W=H4Z(N8T zEqTmv}E1e~dUEr~KYFZZ8t{&o$F0YQ%S2W@RR_f3kYP>1jYx<;M4 z@4$NW4oV{iVo2p_2E3o{aHl27bF?J!iD|SNO-t0Wx6S`<+_>-Nqem%EC!nd^G|mgK z8o{#w6c=;~VUrx0ye2$~NYKUYXc&2H0iA+_r>Re&@lTP*$YUp-LO$es>YRWhpPMGg zng5PMBjAvt{A=KdGOux4*cP!q+mSaOF_@4)8utdJh?RP!u@CUzaoz7t{5eIFNZ?n; zqW5ncn|OLH`jw)(V*}Z--o8JDjpl0%^BFgjeMZD*hx`s|fYu9^~ditA#de2#ZAd!;smy)GN^T$V`08AT%RLZXXy*JQRFoFc!#5JjhD_ z0OEk$UO9dKcwMAV;9Dk>;GX0PQ#j+^Xgo<|3g?!F5S|hmgyw|E+Chn#JFdgiP>j5v z*o0>__s!`;*23R{<~J8W4-#J>)W^RuZ*Y~|v%-kZRjUx&+0Fv~zjwDXleU7FQEJ-6!*SYC2cu9`x38D@=iCx2+3=4%G9T4{M;?d9J`~-tp(J+89G?V& zQ5Ja;4axtGJn^mQ>tzr+403mBQjWJt@hA_uibEdRbu*SPpV7*In0|UasawAue(r0|Q2)`ca`wR^w zPvn1xhJMHXeS^d|_hymoMl|F*Akl<|h;pePYx$y$rDYX;{U&n3=Js~+d8}j|-A);n$whOSJ%E91-j-kFF?86 zP5CEyD7`48}5^ox>Vc+8}&tRAx}Eg8jafF@P`B8fZu_J znqBTnx5IkD=dWjlCY?$V zL#+Km49LYL#}{o&B9mvV(0gapny&SD{Gsfu!pxiL_UM~)hh}Da^7Iyih3)DBT~g!f z|G@|Sg*&{#ogdLUH5!dReNd-PgB)&+)#wc6yFLCuW@gau-ZNsv9=AW3nHlhlbvA_F z?Un0=2CUOgczUI!yP2a*SzoaXtzq{YQA)T*8_KN9!qrS(w*J z6%0gk&+z;nRw_|RsDEv2rmhJ&!1=92BH=ljx(7UNYCDZ7WqJJo4`ox>QQ(xj|>fSf|})Bz&(t$n*3!!55+YWSVJ z7A}pF#sLXfemix)4G6^qkdl?AK_rG0dw7voK{Nq)^)GSmFl96Rf5t4ZGc4RQnB~dq zoFv7s?gGE05=n1h0>`ssz~}|WB)*pdzu37LFHZ6cr%MHXO=f|;0=QJ*SN9aZBpm9> zvv|82vP+IpEPfG51R!TgFz_oL^oo^?Y zUD&SY&|8>0Dr>p8JR)J`07_>0OvE2$IT^E`MOIs@t2Jp{P65h{i5rwh^AYw|=nCR7 zs3d<>dAq|hc<O&<#tK+5$_LJsCOuF0Xbkqix>eBA2WbL8Yp zWXW8Ge7~jDXV%L|X!>2|Yp6=YH$;;7b-R@i5FXD5!1#LX)CJ!zf!yNk(iwXEL(Hj1$2y6u zntM_(iC8uxNP84k*RK3}i|n_$&Szg-lXBq7v1FsuTgJ?J{ty;A>dQ>H@W|h-)a}3@ z6tQZ%OH@(u#kXY${<|Ub+)sgAK4KV+9V_!bxW6`YP%=t5ve=p^ z?B75Xz#NXi5!syKOmwYw> zeM9zgVODf|ymt-#YR3$TxJ3hWAykhy(a=*-l*XCp}T2QB1_$Acg{pXF-II{**mVt**z>*Di>Vmf?T}p zY3805>h{Rak$2`}v7!CFh>M{`^5!7AsZg9f8FO-{BJ`!lsY}LTm2vch+o_3oD9Dz= zl}YOqoqG_S)~CDpBoeBbnIJlC(IHM;HPV9g6BbGA6#g?J{bYsR+eqnNOyFh+hFk$cbg8b2l?v)@c@iwkAl7r3* zYvaNI8M2uv@9>~Gpo-Z=Izl8pDjc#Sq|GYaq!kUt^yH?x;}z`01%OnCJ+tcSNUi8ok!Dhu^N4<8uwm z%>74+=>q;@{S$vSAaHe6pXLEQy@#MCFw`@k`T3dZidx4chv`Bpz0d+ICvFIZhppx+ zQTwUmv+{(5o1kn_B*K-BAhQdQf8<$3}2FrjewiDM-hM$7qgUigd}8-LGaQ}#8jHdy=`PHFDA z6zY98I&_rfH+3wP#8IeqIYwURmWbC?@XPWQ-v{I%eR82|@e}FA`tp7Dwu_rV-;M<8 zefiMsWN`pXSIX4P@XJe>LCF7|67-2xB6P@aU5Vi1v>H(&cbRZE5l@}Ixi1g{DN1^m^{{HVFp zbhfJ$;|s-~_;B%AonK_!EI-`c6+hm875+YxExWlilKuM#-Wjng zz^bJ3NZM>aC%iy}^sL<#| z%P85VDUbWex!os^;Mr4&C^al=bu33Fbc0XKT5f)?_bUAW&_1VJ4Wu4vYYO?|e=w0~ zwj3>9TjTJHG0O_m#F|a4ue2o7;dwO$jAl~9^It|Y&nMT_tS9pFn=p*&nIDYp=}aWN zcw3Z|48V=P#+H>KH^UN^`M$Hv6`46j2P$HqK`MtUJh0B!=YpFv3 zxWsH=m~`30s`xZtIx{aV3shTZ)=g1_emmvVgr;$e7IY zZP(kQj=I{%b3a_J#q`Qs`7)XOuPa7*@-Z1l-;Qprjy^3m&^1lDE^BwdMbCClg_nLP zB4yB|cu4uH$oAW%A1G0x{VNLMbJIa5XNq#b(1*3R^1-F_gqJhFr^rHCr4PX1aO}6M zw{8~yw)CF@O3ID~l?i_pkd)^^Qa~Rrq7N$c8%@Px!O*h0C*u-H?~k&APVed6@_iyr zquuOC4UByB>*WyuzwYJ0hFf{4{?_S+Vu-cRRCr5~MDLns2seM{Inj1P(SZ_#df-3L znhGAlU>?ymAbFwD54Z8u!>sHicmE*$@xyXp8qW%IT}^;yq;9T4L(R&WDh0UHw{T z8hS_I)$Gi+u7x`+amLIQL24nSgC#pS@sp&aspQ*UXo(0DKi^o_|C9)XLU>+UXMeBV zCL`^@dW3Kh?V0iLxuf#3gceuPO0}+Y)?%Za$bMG-9bCXkDHMPf_|%jT>Un+VfNAi> zl;5=gFlA_*L*!n*y0 zTZ{}qe*a?ZjoF}lg09i`*?@O{^@PtO>LU#DR+c}!@iz9ot{u={WJX`c0%(3w&h6Dx z#R+^TW?2CnCBPg(Q@tdeLvurFxR+ze^1(MUN1c&8Cp{yh#%WooK6Aveoa&Qq%zsEO zwMX+e$<;WESHD=xa{PEbZ#|xSCLe&JL41WD=EIbs^Hw9m719kfmA(;n2*xR)+Ir7X{%Yw-VDJ!arW5$k|-6KZUCc;@VTX zASuw6@(}J3FJ0hVn=5d=!`P{zHDaQmltccoxh1LTJ0@MruMa^j+M6;jW*s^Ua*7Tm|o8vAYtDuAf5ZHIE ztZU(e+9T+pW1H3ssjinjR(JWj#Z{iv;OvoCSzK-5sr5vAc*L*I zw`rrtlip`Entg#Fc}Pt0QPWKERM>S=@Y5VTvaRUopY;aQ7#@L`gd@{@;-z0{s(hYZj=AkrZZDtRzozO0 z!vw6$8Lqcs-LKHEJlLpmcZJkz5YBe7|JtpS2L9Cn=*Hw!7!GDoTbKJp z{N%8k4f|!M_g5J&*O5M$)Id&-JlV*zvb^MM%H}+i!e34fYW@nKQJGTVovjNu1h1Ch zCxy1PeJApK63dgv`+c^A02Z1rO`ztP+*59p-BV5j{Mf>Y6X9bXC5)w^c5Ig7L*D^) z%u{|iJT1-Sq{`81XtjWnin{%^L7crm=hyENVgm`u!@@FsNr}1oN z`P>yUrT>&Ec#u)m5m~xzC^4J8vu||m2-nVxQUGgHA&7i^5zqvT18Q!2I z#DuS(#$p9C!NzbQzKiZ{+lv}&gh9>d?>_#6+WSv36=X&nBFY~2{;M2C-@S~Cnln{3 zs9E3a8qZ-uvSWrqhLn(e!{e=L!pZSel--aA39EB5+Kqjd1Yq=w48fLv`Uj8B zayX-qPp%y5+#h*9@OUM+gWIUT50%@Jd(4<^GQHnbGi7+e!jXJPC5*QXpLkVEiKL93 zN)$%EXaqWlg1r2Zd%vldQHJg-oVqbwm3qY-L#%w&OvN2T@ZWOwiZO!d!OD7@87|LQ ziCs;ALk#M2U2KyJ_eO8_W!(-!a%vUijRiv=8et=C)Uv9nUOM>X7Y9{?})DW>xXh@!i>%wUYER0F5rQce9 z^w}!?Kype^{6Uka5_-0Vuc*Es^!|8bTqvkRhmQNVZ%c+3^kLxo6BpsjTX}xyjWu-V z7fbt+95cYT{W{6d)=~kaKe^?nHR8~My<|hZWVabXl=l~meT=A$%+|cRglk0A=+8Ms zwjn*FX)n_VbUuEs@BXXw#ONY^aKyN;o^rMsoX0@V28x%ok7EJ!@ACYK;szF>i zVF>(n*>1O@NE3%Q&yAQ7u{t}Lxc*o75B{$$q=yq^%L~;bKA&Op4-XpL^R+xmpc}fi z$Lb>34Sq+4OAguvQaGH~ZLFd||HzpF@#;Xc^W4<+sO^`|+9+DsX>E>~d z@Op;3SF-MY!JL$eM0_LuQ_T@~KI_%!5`5666)aM4QfJ=n;j$ZS12d8H>8fxA35sx%NjxbXC!Jm$tvRwwyn1EckkN2m6azrUYQO-7d8x3IxE0c zzkDBMrJ>&p{@N-grPU--q0fz_VYlE=p0Ta%@Z_J!SZwV7UdEBolz(T+Hvs6owd0J*76FK z-&d^=C_0yQ5;IwnD@Af6Yg-?&kO3T}XxLv7$16Truebu%BR4x?WVNh;a|atUcHAWk zbHT0ODFx4t)?k!VE?R{-LFJcQ#%Z|pC|beus~vwy)8PZyEj?d7{S1^0ENT`^Q7ur* z-5zT$zm8b{IrQ%JfcCB~D-<3#1sij^dma310YD)&Qa{!#vCHhOF%>l`>m0;o-`F-& zZCJ%5;BsXI?r*P@;6Fv3oR3TWadFaebPzyX9BP0plJ(A0_oJii5H8m?d;N#;LIUkN z{t8h%_%<-LEm6q;Myjyq&8mr=uEcx3#X2==5NT=`uK4#kiU66s z&j^Qgwj0?(E4{H*qMQ&_RbgajhwWnAck|20=l2^$GtYs9l}HZD_NHdeVlIIrG(Zo8K8|G6B(eT;RewS8Qy70or|K_c1)a}5*Ko<+fpqv_J z^Co-Fcwhuc(%_FJw#uF0X|Dll=u}{YDEa5&>^VA`Yi5&+OR-Dhb9`LQ<`b1U2NjU+vg11ra(D$JAF&BxyfCx!eI~fy;*yvq#fYbJTWaE z5;c=nIvNbh_R$7$`QOIc<&%gMsI>eME_bn=v~EYG|8}6t%8}#P5Yc(D_=2%ljJHI* zUo_AZB zF`pYPdE==iaweX9^~2Y4)2C#^Db@R#Yg#ZHtIO>opI0@;4Uk_)UGCd`mdfo~=Vo#c z3}UYud?A9WQraHoK56iKgMCXU*IQj7bN1!GGryWHaB|{RPzFucc zOmcLFuT!iu56WP!ON~1wb}E))Hqz58OjR9mZ7T}W$R6sJdrQSD;j~O6lO(HBtuIuS zm!~uNOG)j=Mg9F7MVvYWecW7RTu!&%Y%fFY=c%cs+5K9YNWKQBYr0poDA9{%?IozD zDIfU8VOX0}F-6HlsP5|M5aB}5$W*5H@KYCQa3pbdMMJ7U_kn~{vT`47%C6kH%80-? zsLVz-7$mC8-}!|^B*C5P13LT7OWFI{haWV7i3M!P8BRL z_WZSpbyt)Y10shWN>+2UwzmH#$`ifOab`e||HZNbmf?7B?5}kk*6+xiF;?%xH+nmm zY;DC2s?mT7&$R`p;**;fht6!s!~H@v+%TpT-3FXhtIz8zxffaOT3YJxvfmN2QHzU{ z`|y*qak^)9H%9)LGl`)$$HFzO{bwYC&r-k9YFitjxAAN@S|C-}~te|NG9o zZsd-NiJB@aJbj@tM}cr#Is_&jPdhbS@zcdCnmvzwX{2icl4j zw5~H$iLMn`LdOi7p4AO zRp1aJYlpqo5)A|Zk|pql(5`4Yi;}5Y4ChlwinI8OBMe-?xSSCN;ZdKGwAQl!_;|5wq?oraT#w@XW~Ybu zk*?Wz8u1}Oz1ZS03lu{yQ+e3Y%p;*-zi?BAei5vG{#jZrS@EtH+<}%=hH~`tB<0Ie?3*61nUJ16;zpo5jCq!1XYr_SnRt-MOIfCt`s?3{rS-?f^LPhC*#MJ7 zQg7(kd*XC1#RwVAi-{I=uw1qPaA9d$;x+E7c(z8hW;0ARZPdV_Au(HekexleaAv+w zrbajEv>~fE6W$@7jd93gA`aK$NgJn@oVMSyBhO3r@$;^p;@=kxczd|-;tV8_{*k7h zBP2lrdtP`q*f{ovR|cbvUO%u!z2S-x7FEs{jQ;4D&*US}eq?9Q_~AX@H{pdnigr1@ zy4+taHNrXXlM{ zY3|T-eU1vpV?Qn#AaS})qQZqSq_=bzAG18y;0Aq*I1pR~LN59--JinNGZQmg7AK#7 znXgQcMCbBztBkSR-1)-%KpTxxT*Y_2XLsWy#=tHFt@Dl%l=ZAIC{uqTJQ_B<`f~Trd+Ga-*e=+WPYO52E zsKna{eXJ~0+pq1lS=iS3*fVQ8=>Z)4#!M669jaej$=+#)eej%9|7heG;H99+)2Mz` zUa-x{w3;psz)$@?4QY@42=E|oH=BLGhsi@+D7qX)K9%RU0Q@y=YXSta|W%Y|9aNb>c=xDU>r@MQ`&a@o1l5&$`>q_uHQ?alVehpXjbQ$G(8hI z6rOV&kV?c><6bKt^fi@ly?a(I4uklHUchy)QQ4@7aXOs}*uB8-5pZd9F0whFH=UZI zll0c~5;&nwf%A@jAL(i0I)|=_Wc%e5HkmhzfEbqfk0TqQ>~cjZNYLx)N~|^p-`BV| z$f+ZSNS#vLBq4w{e7sg7kekoE{HBwS(|5{X$B5y?9_5BS8STBGfP*f< zH*S&ffpC)Y{{HC`Ajizu+}PMSYSrYu^H4z$JgyDzjRud=>L-h!{4w(8mVD0|{t1Q> zM)pfN%%=!ARJ#AOX7Y`8w7c8&TIB*LywHatiizC~{VBQxt^$x#o#E>|H;*$k`NM^f zDMcd(82h2vw z_g<&&Y?m4Iy^Ij^mY6gbAH~ZB`afbPjdGOjMvln>`*1&K9bAhWM`_wrxaAuz7CmOR zt|~(C7in_;e1DLQZ%ptSVcL@^FE0?xOvP~OLM)^^u!lsb`-4g5wsx2WZsa6|OwM`o`Cx0uGM|HcH)wp3?;JE;f@lPtibAhK2xq7{V8KpSm zXHhluc2OAB@DC{SouP$ z(MkmJk4Q!F+9v!C`(CS(RGlZUHytF(ZD(X_(yY010%karE1fkYy#Xg7FC}`ucmx-Z zWr)8Eu%qF3K;L+g>ESU-CcDEWIas1|E7Xqi%;d?(o+*hc$u5vCv%q*S``+QI@(>|= zhbyKavS-ij03(DvhCkCvv$xk}jS8{7{?8 z=SDRoa;`P*)$RkG2`8i}QOjz?c;tMqJ(`-6V{vqVsqDc=;FwPCnl5-^e`ga;l}$p)pZ?sX;~2(Nfi05~!PIWe zyGDX%y+r#|2yvWepc93ZaG814w2oxc`%mroWfnW zOt*PJt);rCRO{GTC2Q7lj66IbysLt1I?mN6sRijzSp z3&FTWO8)BY%35RTY|8DauBgMMj|Owm-v(~#33cS)F{ng8{ME4Ui?tB-XW>v^_ z130cC#bq2mDbZ%L34_Xd+`Erd6zT#S<|th2V;YoTce~6rp*#9w^Jh^lTQjCx)ZMLd zz=?ak15bOcXUdQdV{Si8F72@=t$)c{?Z21xSfz6nr*vu{Z3r1f5uekC@;<#f2jWDh-;|8nS@ z2pq)9rw!8LVMxX@tO>p0>q5?8A~kfa$RCen3Jn)8Bag;_f~)_-QZhJ7a(A{v)sA+g z-nO=H5V`bKH6Jl@KtKCeitO=lqf@iPo~ilgf9W+3c(hgZ+qQ>Hlkb@WUo%@&V)Hy{ zznq*cr1-=m7DSfH(y<5CBAk+cm&G!-Zhgz~1 z=-1(QBq#n{%?w)mjkfoZzA0Y)0yC@A9ZcNx+}(^1QT3JI7T-&VOouqum*RcV2Nwoy zyGk}@QUo;SjHFkmH(I)imgG8B2s#CP7w;}&grZgCgMn2dJ+YbF`v8P4?xBur+cl!8 zZ#=hthoiP&t-;#FeW30uN~?`e{;RJ=BMD;YeV|-^r-P?Ao_G9^GJvpd^!$d}p_KLs z)yJE9qrv&-L=yker!*^B=`&)dI=o_Fh@M9hsS^Qa@dP*=>nV-oXtDRKlt?bEO|)Za z<<~2(9x+;ndHTwDJOA{d@N*Xmjel&Tn%AhIA@mNoT*ak|1zMybI|pr+f^Q&_bYJ;e ziUzeLy<2~!^4u~Y?%~UgxU!$HQ1lfB-`@Tcs@{hHz@-N(u0;mLRnG@Mv2f;xJM+FA zd(Miw@`}>a7@-AWbzj{9!ON0UUPtWbfTrmI#cLHRL)c(qoG03mAyK$rl*0{esQ@`2 zY~VYU4RLv58@+?ai0c)OOcR9Q!{JU4vtp(&jzef(_r3~nDVcXHZBC=$VRK8+G@?9} zHnUT5?JUfalc~yZGPOvRUN&jl6)Wxbs2i`T@)yM`9wOXIo|xx3ee3wbbw#mO;H@Jb z+Q%_AD3H*itpY7Db&&6!EcClJVWIH!Pru%^ek=329p=$$-v#QT-}x|z@`bUi2orYS zDHzkLkiAXA1-9#UeTnsQw|HjD7nIJu*rqx@QR{Juh9JNwU1-8S6+zNaKU)V0o8^Yj zMeBcw6{b+0SN{;=MRKdHlz83d{OV+te!BFp3-7VfkpA)v3DWD3LD#Tar)WltY>pA3 ziFar1`JeUAvB^p`HBrgzeDw=Nj#puIemhq-M_zysz;p7H(>|8JQP|Pzui$&3Bg$|8 zyt|rxV%`hQ4^80Oq zDfB&7f2_16#ev2O!oKL$|tuWUCQv5$2?3|pS;{DjD~eP1<34BB#rbw{dtb|lG} z8or9eu0$3J3jK<{t9_yUwuP;Gvrm0spa5Ix?6gVf5o?GB2EvB#p}!Cervk5~JJ!`g z5Zf~vqukjDI2f2Sv)A*MH8e`O0r2zWpWQgyX zrl9JW*t7_wHM&fC#5Z|&DtwbbOtTKv8jg=qPzSx#&yPE6#?Ote>zUA83sn9q{#Ojc zakyX&^&fJcc?yljpv#Cftw!AfpWVTZ)980!)oa44aER{Xr**MACKL@P7@5zc(JLdIISzacr4x( zPMkLJTnFdIlCJ9Zl>wy3bCV_!LRjJ}cYCHd1Tk8>+%3fhq z@sfg(&PgwbT}nymzczkN{v^w^qUQ)EOI^?uF1cZv7yPxO^4*A`y25$Jxuk+`Jkven z_$5nOqTOdEJqlGU0g6&XndXDt#F9UsUPR;khwZSIQ8UDzpyAx2Zz3#r{DY{I58!rn zur%tzJk+M&*>>6FoB@({L6Xvwnqd#{Rz z)DVj0^U*g|JE#fh95`NNXWS_bQ57hmP(S*)WN{GA&F_T#(35W|+P~5$xUe&WDQ?w5 z$`C!-ss|czXLS|r>Ny5p^w0F`^Ki2xO>gyj!C(AYw!b6Q%HMU)ou#j^l(Z-^S-j{D z*0OV@ZZq_K5354aZX@`+uXWWbZh&)8*lVwugZOj15w%5_Xw#Xm?>e@d2YM56@)Gfu zLp(PXz$nC#iVPPc|237B!6asHQ8ue`PHmu=f$zI(<(}q9MH0tf-KO@+Yt7w?K@NgR zYr*2{7;eI1mzY5|-3#kO83B=%=jn;~Yob`Sp|2isi5!Csf?CyPCUL1eY3REEzPK=# zPNJdFe}ff}Xu^eeXq!mo6tEGyICfKX^Li@!~=pb84)Qu*=WkBILg~>)h3V z<*ZWR04>Cmkxlq}efXBp8$cP8JvO3bX+r^t^tr`JUDlyq(eBrv z%n06X4g#{eY%K3<2sBt2S$%4ln;B>Puf-+ywQmtw^|W4 zg&?`xYbb_esQ&sqfZcm(j4Xnv&nKzbyvu#K$E3Ha}$L7K_PqHcw zezaO0AAaMSP~ZK=Z@HaK?UdH}<0OOHskw6*VAYq6>cqYA4|a27z2a65uFTN7+~&As z*4^fWWJnLnz2bBa%AMk#%coxnHYK?HezPrdy=a*|*o`^HUhWcXj&p&K?feiX?-j@Q zclCwxN0ZyKxYMoNp4k@1#^x{EAnkY`T~C(-z}l6A%qnl&ys`uDtAkmAO|Ndhj3!n) zlZD>jp+6L?m~xw1?e-UTYEoN1Z9oH%=Nd$XkO3~FIj>J0Q!z{_uRN!~TW^t^*YQCZ zL7(mw7>H5-tQ0Hh-g592>0CCr<6U5qB@=eb|V3Hc_0M{^8HX-5U|RIVTB7gdhOT{pu=$2VOKg_Krj z>+J_FP&fO5bO|JUpmEvuI0&n4-8Lz7wLF&~kC+pEShU$k3 z0K?u_b|#k7Q3khmc_Z!X8yvU$DB(`ix9|Qwsb#h8zH%S$efYyRJh-uLMGA6r8r z*AR_2r>kew!;Qc$f(P4%#;kX)myWP}r(U1gcfC&is?wHRU%l#6=i1#>0oKJ`eU%R% zg3ZtmX41|1zDHy5Q1Rm&MA&Gvo1e zlFr`L^NS4D!wup3FGE`)$1u4&1=ZsWYFV|M{0q9U5B(2kwe&8ZoN>Rdo;hiZa-XhF z)L#1t#5Y%&bwJJq*K0uMJ{<<<0)puR&KFbh#Dc3m$;6Fks=LaEo-3<1VV*M$$+QCZ zJ6P`ly$%1)81?R|cta{WRki~d4mJ4lcizU<{NOJ+CJzrA{VxLW@;#^PMg`Aq^v~Fx zI_})?ggTzOvdcP5&Ij98m)C8VcF#zjeeb-{K|(i=F99o~EnSwzENfksfZD9b8&j4y zUm;RolM9ak7N*y&3yo9Z_Q#P;1Ykb?3N0`n;{Wdi*rM>{fH3GR9h^V;`rMiC^g7>e z#PV>u81TmX>GacYm=nHFho7nu?%w{fE86h0_#~+AA+#yjmUlQjIIlSP0qy!B!H`(} zl>8|i;5z)0?(Sc4X*B(mngwFN4c{gj1ZHT5pA)A&HZ|4ezUtLR`dxVIhe^O#KX_6wA+|B9D$^*h)3n&Vug<2@6U?*c)&q{>M? zxZ8WS3&>3ZM#+?2<=o`t{4pF#=Fjjr_!U>m|NhZiYh;|m?N&B^XY-zaFl)nC_UtAt zWCd^;TyA)ntbElreEa;WeHie4vsUm;$q6{Sx(Rq9^ao#W@wnX+iU4;fff?0q6S-~| zL}zY-A1w`FUv6OfD}vL9>MW_=&pP7(4BQ37JEY#;w+dX4tPc8oM0jwWPpa5bK0!o@ zY10yR$Xgq@9J!Zy80UdShy2XI__7yS>R&pJAAX1d)gwg)o>ioq*b=oI^hL?NBq-1g zA2po`&n~!b)TYg^fR`)|+3JJ`d*O7n3P^=$XABN%K&6Sugnq($z$MA?$SsDORg@24M=t9@$W})OQZ5iC4!~^MuX! z`zKfQw$a#HSLT&s{)|`ho*(n)SR0?)fT#zR@ez+-^B7UjEr=^46X>?2q3uxxb-qb$i2EJ77G5>a#o|9VjWB)mj-nZJ=KSoE~&sEO{3Xx(y@y9sS14=`o*PQ`2!G#>2P%yp}t(J}%)EVBjEJtJODe6!C{6t={> z`CDHyf@@DfjG@o5+dvc%)2Hdl%z$;cw>STXA-3+7Pgd|(cLe#1ylxIwP_Mc#2x-WZ zJEFH-5iP+qpZVcOi4_lxH_*a_GQh$6L;rS2Q3hAy=hJlp26o~Ha7L4Lng(yC7gcqL z99&K!IS5@|zQ}kHiR@TM?y3=y0B^$wZW;1Q0saw(CW5Hfth*+IeKFzq=p0a%&||O} zNUT`KG~J4UnVpaP`musgS8wz@_;I_HZm_(@=cyoA@U`Ec#{eu_mq4^yRFij zA0mPT{PO-^;hJ_=WiTIwp&PIK>(o1}f}QH8{G3Kl8D&$;yOrBj*WR{sYoz2ygT zqXclg7{)X+Dp)m4N_!PUkE?jUp;{7*ac0=C&Kj3i&?*^bb#i(i-^}cnj4Gt3GqV^N z@?W^G9k1iHI3D}O@n6`t{5zhK zP0yp?i2MEx^5d!D%4&PEH$PMa8HoFC4_SU{xVGAz9L$duAq4*OP-ZN%HkhCV@xgvz zKqRivdqn;Vb0U&&5_9>*??m^9Ta!Kc!6FDiw09y1-;>+bKVcw0S_BWs{H_madvd!z z-1*-E$-5xL`|0-TaC@>ZKU@SI_#Z*y8htJ}cW4OQ6Y>?_7E8BLAovsTe+$=mJ1qT15nv1;`MWqI^a=TYgb*+y z5c8b^BJ~t~g}2SpYxGY5=Odd8JVjsQ?XnCS#ely8+1^bd{}Ix+SbB_pf?d*g0X}8QZ_BIR7^l5$g4ir!P z@&Dl2p_&fgnrqgm4Rcv>PTc=MTTYlO0fTi-LEF!R&k&p^#w+cu+HRvDFf28{sD3wzD>GRF4u+V=97?Pa^|WsWUaq_WHCKi9r? zUrm}36R;67z5bEk6F%+3mSt7!&8mw&cx8hUYi3Q`Ql1# zlaU>G;T@U)w_E>{9h5)vok`IBtMl4W-|OB+xEXm)s5{G@;y3pPC-=?EwKvww#pKud z$4^S=OF+?cbbvDMh!K@j;v2%XV8rXC?OTV{9eJ1clD*&NT^E9;gdJFNqa67X_t9#VduQy@tE+tK%AbGGGwUu~9apw5T>Nfz z1PBYWIu|-!Yv2^B@?wN2>la=!uGJ>I68TT|_$U)kX67Gm3r?=$jqM<_8V1(S+{>Rb z=KdG~#8I}6V}LWu~^^~FNgj?QTO*I>P{jCe-Y%?*W%b}701 zBp+qm?bBM8-!0v4*n~*4PveE`^nN?+k7z+wogIr^2vu5U|E!NWgtthH3mBhwcg(&h z-*(PIfJNZ^@>{H@{F_^ib`iICx7%C3>ipT(XzdQ`RSPGc+>Y~0PtW*(^ZMq++dp_0 zhPQR-AHs{T+ZX9Aq>oUBBv;R&0l>m=qbXoQTJQtQH#^uCc--86jg#5z zc`+p3?0Ywy1Z%&7w;<7JyPbS!m#v+<3qaLZbia3~#rUfLPEwJIYuekJM% z+Ygb$cuFw8@25s#GRTaOq5;|dCW$QCoJ0!83aj6+$ zwJKe6m2}acD;c5pW{=oOTXEQp8*}ff+#*gJ@vi2S9{AZ!oE`|;Ks5}&*6UBghUVGCH^PuP42yA^g0OeW6@M&Pjws<~u+v>tT%7C&1uo>mKE z`B^)3amDNDImLD~@&CIO=W*Yx>NuHoq2_QqubhbKJv&sl7%*@nf*LjS1lG>~RiZVX z3#-KFy{mdo=w(7e=Qa*b)i5z=f=31KXgB;@r{#;p zncWG&qp_-q1p&QFdo+Pl?ewr-i2JqzUVD3aEu%{NO;r_%JC~h-i-#MCaLv)(b2i

    f$fj_`g)c!}-E!SDa*`H9~>KXI@8KmPvL&;Ql;|GNAWzb~Kh zVzx7au#kV5@ga6zE>pym6OPcE>BkIaM$mPsI?10z3X8y7oHhqht(`5XjLTIXP zWTkgqMe~yoqw)fowrro5>P)!?XITRG_nYkuHF(V!fJ;K76id4QWHGc3nX*vnjlT;m z+v%x(p)8d4*}KEU1HwZD>l)HuW0}m3^{7&xFef`YoEP{9d-8+V#MB6H4<`~%#1WcZ znVwcvm6l$Ka;uuEtI5TkPmwP)!Fc53`Ux+_OI$xZ49`LaWWv)p55I_C!kxY{*-jwt zM3Q-2h;$0U0bZz7R1Z-4c4R4Q-5^lBpN!Z2(M=XOi%d8>e%tXM_ZRI zv&IxjFuM8LuVAAdS8g{ew=+_^W0FCD2cR*x17mdqV|@@BsTxgHzlR3K{Xxs5RaZ@L z*PKFtkN&#)wf9?MnKhc!u!9Hxe$8Ib|It-@?loCdQJ~C$9ak<0XuL+pw zrcl2*i@n>ipzou8PY?9plT&xBkuK<~5ITPNv)RpTwu_6-U~v{VvHeTbz4Mgpn6Zky z*_}2@^E>E$iI-nxbdp9bjc0*05Jio61zq$@N1ZjCLe7gC_k=Ya=&~5u>982&!*J8% zhZEx~K{IU=KDwaK+6Xv{4@C>zw|-F-f_HA;%3s9~A2@?2;kyI;gsw-N#0bAPUS{ZD=RcoJIU2Y1*mTm@+_sZRQEASx%&;cik5QBcrTxzaGSiB!*N zCtR4&QwXUOG2;&5@%Y=Ju;lS0iE$P9tLYn|oYo0Dp&~};{>bOm!O(lhR%kwO1{MG` z_=#PQyoPV#(SPqM=e%f*;A>d z&oKoCnCCp@;WfK=wJ28ip6%uF)EslYK#c#kefxmx)s5C0-{oWZcL?2w5WHH#NhQJ^ zyoEaFQq{jbygdyVZsD45;?tjf1_d|U{*5g*_1?NV?P`q>re6t*H9F2|=;GVd4 zZO7;MX+nkXL5*Sv)Gfp6uYu>Xhs`1etsc+JBj4&Mfvjs-q2P;!jjxcmRdzYHw!Y_?``Bm%D2&N3)u6cyLL@+ zc1_DnC|y5t_=eK>EMiJr*t7|fAiRa}io^{Y@J0L~Ea~b@EiX@XzMxDfy|!V)wbDcd zEWsr$=&kis6QzIaU9l~6i~u-NC&I~yX2qD@!LaRg5Zo?WsjY6M&`XiA+V2(aZuG!o zI>tv%>_;t!5AU434pzX*^($5&1dZiGR>G>5l`9984Qo#YST}j+q0^^Nw=C99UU#+I zvLzcfELqkKwKR5BqjO6aZ``cF zI)&?i$7~M|{*^h{G&`_jM}}M))96ERa)I>IaKi1VJ2cW6C2Js@m?{pZQW~=njSgfq zFbcLi{%G&4)Zz2{Y+nUUb3Ay?V=jzay{*su;VHBC;EzyGmdB^J&3$a{>9#wG5fOoDHy^1wUy?OFc?`Ny?slh^d_-4gGA=ObPG z`r6txc8yP9ASVU}5}oBUCPygXM-jM#7!#8s^@(=p@EEY#wVbux2$NG+R@%wwb0V>H z8jInhvCBVP`}@wD_tgA(5CW+%VuQ>Lt4*r0f-+5rC8KW9jK-iACGuFignEfoartvr8wL!M=b7%VZfl+B| zic30$gsv(nMbAEV_Wi@BvDdMwY|o;J&7)p{zrQel=cZX1E3*c?TRAQ^u3?fRB_m^O zoUJo_K-+XAUM@UC>h6$M^^@947HurgwF~7k|hmWM+Ah9s6OpJWB&qQw)<#S@yw83y|~w2 z<9fZ8ALF6;5@C~KGP2r}v?>}EN*eRDSPg9T@XCOZFE(#jzHHOvnCXl5 zY@9qaDJRYJsIYbE+|`do#KlHVh8}%pKjtYuvYx-zwv~JTnIS9p&wKPLHvu@9Bxf}^ z_#$$_cS8RU@YiR1)~;)_tbBQk%3Zg^kSa{!wh><4iO_(wl*AnwksehdVV(v$=|vle zAvQt#3lBawKKR06C>R$jOFYm$#o=#15FI&nWZ(X+-A4!5TYETD0uu0E-VXUqF}{hd zJs#3ITB9SU(HF?Gz-01`v;B=N;1{uMS?A8nmYMKNHV9r{TGFzlbJ0?KV*p$SnRV&X zqN1fsjripx2;NXu+Oo8B(QfGDpbgH?DzC14ds0y;IQ4B6;w!*k4YWb_ySu2$Y?9xyt-ReG0CyV zQt0llEv~Fy-LBRagQHp2^#r~I@pu-@kZBz+ z4IlCHurOrGR*IaXut$$V2PZ1CO(<;G%Oi%r7QqUYb(P=`E-VQqU zKEi1$P|P{oQ`-~U)0`?TMQTSPZ7#5}Nx%A9N^F1eH>qXyJ|T{fU`H^Q`fYNxGQ=Jh zY!5+kPe&C?MZaC?QYp; zqNr4>jcTP)qc$lC4{|IxE$|AJ%A`~o)hd%p^ne57`tiKVtkM`&N|Rcx^bqmJfe9+P zLZdaPlxCGmlfzZ##!>#770u7lUf#u42R*qRAym=!+9wmry+Z+uutv-%8lA1G+^aUzYPS zk`id0NonBvB^><|v0g@tiPYIbQ&d6d5~w>8ym;jDVspK`r1tsk z++;Nd3L*Ka4c-WmJ_R**F@J@>LbO&r;i0k8SiO5wOQS|q=rqzsJ9LuFNF)i}42AA) z1x|7xdN+AywJV6}#Cm{cKlqNTs~dM`#yINxHV!=Zp_V(}u*Fqv?^JbR)y3eN&R^NI zY1@i*u9It*Z{NOrJt}Bfv2D}sJ5DEib54Ez9M^=VnKPS`ksi6;r~A&+G1du$j-5;% zQ_1wD^xL6hO70!*%X_5R9@vKbmlXdF+Z*(rKtP~7xX_JlR1Qj55?$$7Jwu4IgD3^` zT3EP;cZMkvATqiDeM_(4wl2?VGWc|9Wj;s@X^>V(dChm<z^P?)YMmKD646eihis_K)_Y?F+>C8=$Y8Z+@07T$o-vEVdiy36 zX?!e=j&0_CLUe(~gA>Feui(gQ#owjSq(mt#aTR&t^&f}8aX-KFe7LZ{xUnxm>BAZM;nv5K2;o zSi6-)MU{24hNuZ0wNzJ?SVH9La{TV2X{mFkjcJ}Ur+EwwI_2>PaehWP59$VFOQx&&?ti8KUy!k|!!_;#{#>cZ%*~&ela(16g1$!~k(rsDCg$g6DwX() z|1~MxcH-4nFNi++=Dge~d3v3RMTj-&^m$Wq^P2TOG=}?q8C^=~^nXq=^X*&x{#AMD zibPjkk^fT??X~i9e5Gqw(my-o4UNHPrmgGc5n1Gyy$W9uy|1^}i`FKug6%0GK6tfzW>@7Vtwvlt6%6 zDoAt1P)gwVkicPJ;)s0Abn|~=#M{)ydoqChcecv_Djal@14j}Op`>@SbRCAnZZ$~i zJ7Tq&l{Gc~(Huhl5~tthTQIfH@Py%Gg9iF0GE}`_%eKOyw#+z^!h6Zkl*dY~dR#f~$dlYh+_o)Qq6XcjcjphJ+j(=^x@}H=vwe z_(vDVN_suqs%Qsmtg5Woo^HR;9cb$i-^Z$aO}$Lt!=E zi|fK<6WhG+wXX&1Hha#-`l#xwHLNARX2$7K&(o0Ji{&rx#$Vx^sWlZ5yZdS1_rag6 z6IvjI?K$sKm$;L!!R(!^WG|j#Kp4kgV*K466DqAH$*HtSL1g42BO2Z64{14~ID^|$ zLh>Lsx+j$&LbqbJ^+8jF|9-@V~_3Y~te#nL)D7L>o1gYYwNEhHx!|En-?NQ$TVKd!fY`cklm3+g#>f4+&( zj&acVgSpu<_SMTUq{}OK)a-eu?Vj%xuGt+C8g}?1gxwjf>s=*{7ZZLbOeA>Lwd2|5 zaCWRNgm!{L5wA5xA=X$o;^9lv!{2ayE4VJ~d8HeF`O7|u+lG($u)53bk6rW7k@N4o zH8qy@jr%k}C_t+rEHT;1u7jToTrc^!E{r0rKCVXQ3i3ej`!1rsQnam$`1c4^_iOi+ z(o#>e|5kHLbBYdD9R?ce7UT!gw5iJBq~6{(H-_V>x?-0`)1;0-+KDc3VK=?j7%)~F zmKpg=o%~Hhm+uF&RhKAr{NuSH0YB&2ESX^q!Ph!}x7TO*1kWEc#RZw=Z;q8~MRRrU zt$S*GTn=Hv@LA!3ryY?`RD&3t5zN1Lp)hssE}d{SCGD+&KBOE^yj!B8t{ndSwSu%S zt9*pfM=Y-mRpG}sz3#($Ud~(7#{$-%PLt-(dnPVg_#lDxWEVbE7IUJ9{M9=bg8Q)z zTDR}dwYyj#C}(_$-Wo%+0_HcXe9i7#Rr@Xf>!&J7kK)2j64$g5fu+`xJL-92MH6Hz z(d(itWP5@izYjXeR-yBPEM!}vAGZ&Bx$lCv)4P~G&z!waIiynGs8xO238@zYmoyS_B-v5l@bR_2b~bOeVc z9_ioj@PGk_`}IGP7+FxZXMIi0`aNX@k?wUFcmIJ-w#P5B>F6qO%0#7zur>v1ED~Qz zFkTMk-qJVp=J>ZgZo9U}a`VDw`|~;6<@WEnQRMp&x8JB+EEBqsLf9y%T|?J$BzL!)0B+Ui{ml)sbDeXjQ-P#BPP1qXO?-*$}&DjxLA0Lg;$Z z-FW_Sk~d{gyiVaZlBB9B%QkWDDtKoDk&+c3Ku{y-{IGY07WRFecuM2J2 zU$giw?$MLwuiUwew=_UvtEW`oR&q!n`N=x+Gq<}y7)gdUv%+{JQh;*AMez6#N=6WZ z`0G55e+=De;CcAuQEriI1D>`5W{|uN5N41}@``Z#!s--Gs#__X^dRLa9Yuly!dmT4 z>XAzj59AL$9LG;&*@=^(nUCY~hkO)2YZjU@i<}`Ge+c2U&^I#BQZWNBc0SDI;j0`6 ziY0g#Id#fdCS<^rl*OGOjN|a_`B3IshaX-HP40C%H8gk!I4e)=c;Er6fLddEqO(xCJJkLf(x+4(KP0_Y=uAvE)&j0NUY#0_ z+Ow9{8qFp3-%RQ+kQP!iK}e}vPZPIcLx;G+SYe7*> zr}O9*hScZX52#{G_xvVGE~IM{;&t`t>%O}9cpaV}6CV?s9}BU0u`zM6;*B@FCQtTy zvv*EqCs*z|{*njB3{?6KImnAp5Hh|7y3U%*2&oBFn@dU{4b zPaisre2B~6@NRDQeglq@Plpbje&rI)=+d}H;_ytE8TSb7H$Ls_xmpQ~MxrM=m^`M8 zSg{kCB}@ymi#bF`t&+lk^n4Agr)_3OR7(&gQHMmM$!aHRC9hG58XM7x;{kLk$<34~ zcRKfaDhq4ZsccEvRGtWC=|e(}$PcKW4{MRSK6OafX>`<8gRmab9qd-hh4eHEhelvY zF60}O304{j#H}3i1oif0DZ&K}%fJhwh6ppgf{lR1X(43;Jop262d}I;Esqrn)d!D}t6ibrJ(^V(+%1OPq+H8a=uE48jyX2ZbC^&<{SB8&?K$4Y z^8=6hvAoD?52$O@XdpjR$u_~}S5a_1nnpU}xF{3ig_i;hFY+F(RUSOP(v%?dL_O>4 zd5_Pu@k8-&57!f!Lhn%U!3GRY(L0FPoX@h0iEjJrD$X#OV;;;>RA4 zy)5JLrA44yF&N)c;BO<0r~zuHyCr{dT2ng~7!Vgtj(;5m`$ zJa6G;$m5JxAcj63Y%3|LNzWq+*sR5AZJ24B5S3df#~i1PoA5x9|yU9jIngf`qDqML2Zhd2y{mGGo!(hm2H20!S~jbc(@501N(CmzK4K-pQ(vXX6!r5`4A_--ShZLjAI3{qWqs)>|IzFCh{~=;`h+ z8sXk-@B<`5DdR6dk50pj_+^ynzj)j3bxDndrG4yGefm^cD+;mf&m!ZE`q3aZH4Gf< z>o+z`nUj*5BMZRQe+?`5X~2_EfRibvzC+OA#bQxu+DEbPqsZ;h@>d9BzB51HnUO)f>G*j|_O7y&we9?~J>{uR6LNAUbOPVOTHk(lF=AZ*`lg-hmLK$K zbNxlaxlcC&(VgO?=$U#A7*+beLLl1^!r!gNcssWIS%P>n$#n_^x~BX^_}F{!sTnJi z#xTx557w)H5|%4}5e7lh{bulwF>)r5K#@v#S=Bv#k0^I~qVBO4qe$*qla;7>pw#Hv zRXT^0SL!4s&dAbXP`bbpY?8vJmee(p+^(x7JJ~3hpQbNv5Vpwi-v0a- zt)R8qM7H-X)ZZ^+n(rb1vu(}$(dg$mmgmoUa20_AZ=h=k7U@ITv;JYP^LzU8JpQ05 zp6|v#)@_;-;jcBk-4g}`@^#(uiH$1Yg5z;_d{bu~oaW&NX}Zxt_(NGXJ|T|`fx7Up znUUV9EZ#XT&=c>_jRW&x0q^B!CM3*e81dfvJr!dnoGyd(>N;i+)quiPbeNELFDRso z>>N4`!3eQUG`)B{bBJ8Akos zRZ?6AW5+s7IZq6~aFxSO_mc`|1vjA)JnHREVmKHnnMpB=9CS#K;F~q;>AE%}5;Yc< z81q&)foWLLC~AyWGYtz!2RR(z7vM&J|KdHm(9(@8& z`CA>Tg*3Z=TII+f{9W0qz@W0)(AbUa$I6MpF=+cj&4_`U+pd9nCCiqxy9A%jsCzkb z3D8;Xe?Yfa5FW;hAX*S^Raylg=xjN98Tb667c^~q7xsSH&85Vnul0mpJ70z+A6DaC zkHE-+0Ws|BMm8B+eG0o{JVX9=U^w3WkzO|&JbV4bCgPi#KyOegf|n-ZujmH`YQU);VmUgy4u6 zvKr05!~6^AKZhd&mjG0>>-pUFymYkl7 zTp7Q|>`&*>YcFstviuG&?{hD_hR#2We++)v!|(YXlQ+Y@eXx0QkLUe7Uhe-JoG}Oz z8N}ZvF#AhBu}Oq9Xxtgv+HNfN(bN7|zwe_q;6IIMk!OB(QPA8Bom83*mV z#-VRj>ad{bsNhhIid+RpNms7j{JGojax?GDL|=3~y8lv;E0;fi+qRRNL*(cE^61XR z&VN(le^C=Sb-(=k#i0>@RKK<{9rc5Qe^5WP`41A?d^##E`I0?Y@6JpK)Adi({7*py zjz5Cvk5m5(IAQP~CHDU>fERuPdp)tFhWzKyoBt2m*|p}+&;%FuM>PB7A0+nl|0m4ibN`-4{4d}e-}<*~hsg8ax508|HPiC1Tj5_}Tk(HH_nhgE zFyLDIFYxle+C%=3tN+mztp1~R=>FgQnq~eV@y5Xug8<|mNRFd0p>&F^DgxP{PMwrkba;QviI-D&!5lD(CagD zGsD9>*5f}|H^+ZcJ5$G193(sb)2h0%ax#qV_y19~-wV%dziwX}*-`(%-_||pLGRq( z)eohG(F%m?Nd^7@ac%4Fl@tE!Hl+61zbnaf-x<#!{QF|tcD7$-XuCK#vqG?1cw$;ussEFM*yRe&Br1qOu?wz& z=hd5sF;+K}0Qi==uHE?@-@xctKlF(G(`YmxV%j57sE^$q7_oj~u1i+@OS$Wedyd{+ z23>3M+k9ciZ}Q@I{3Zh+mJtZg^Y2g{(i23h)9TbYb#%psbk?doK?fpO$q!fue*Dy# zC*u}HpL+QTD1)*m&O8ybAf~{G-@=a{h3r%KhsTfNAD)0rG#x5Wzj8WeQOuLCK8X)Q z*VC__j$ITp1~-8nA9@^rcM5Wj9mCI^0y%B3Gk3od2J!C_n~mE0zi}&65i5eu))_TM zgNcTPV|g(_^4F4rBvF6Ejvgs31Efny-CkZ+Gb{PW3as2(WQph;5!u;lE{gcr!)#?) zQQV7P>n@k|2mxCUq08KntUMbP8zAAkjf`t?-EJ3-0R9HD1ogorNBvU&I#rY@M4pFeHERD-W)(kxfJ zmm#qy%jQhQ$2-XtJrk+B5y%MLgz;DCiWX0hrt=9@zCfp~Xf!paH%K82sNV#!L$iTy z2&$77(}?Uxpe+fi4d}Bu3key~ow+STYORBFfBGSJkfpA1Gh|1UaFD&ZPhee8320p( zhoc2(ksdvb-$>6G-{l0G6J-Fd>z)*kTty-n@CS*CT#uAJMcyH%Quaib@fqomfab1s zrJ*xx-Fo!2yI-+ylQv=*EfXc}`$g=(Uqy@S2o}eZRx)ec5#V?!0Gz_AQdkuonYs&}i>FYjQ(!5)7TH0^ z1E^jPPrYilwauE8k(Jl|CSFMTvJ`U z;3|%!f2gwVbr;PF*J-6)I+Pi0YD)-XBUP(#42G%Ad;MmRZ zoaM8PEemcvzJ2a;NJO_}n?z&u=GLt>HCtOZM~Az0l^5>5FAU?~V6utEN$f?2?xx!w z#6>!)+oQNhM?Vk@@z4>>MLH(8M}Luy*&wYwCx4t;Fj$fuN$jwm(Sdn6(@S%@#p`#P z=%R=YI=4?*N2RMOb)x`q3?q`8q{^!1zWHQ5m z`<37C`%m&F_uP8!Ip^MY&n@T559{3Ji4uhP73wK0KST)zeL}s=DZ@3mv74CzV8kOJ?zv#t~x-^{A??q24Ylo?BNHQy_nO z#E5iqEImPP=RQqjKQ6jd=J`&m*x^)8!@ z7dn&0s#9-Hv$%Q~m#R3~Y2v)jyQa#kuU4xf5sIO> z>S5|I^(^&!>P<4PBVDo7ZIP~7LH3o%Eo75!NZgT2F0F{jBZLXkw(79-o|P_4vu5wF zFlXJQyJyql3awR0<-3~vg$I#9PKU}LOU@rpX2a5sSF)qUD(%xIIAk{rlboe8#2Ao9 zguq|?6>(Bzw-2U4kuV2&9<(#^|F5IlFH5AV=FYiUk3N#?cg~q>cciN?Yac<=wbj)Z z#^O~~@yec1glP>;{-Dpt;+s^g&mZtN zU2xN!`F3YbYF*oCxvDmis71A`s-Y?154_pbpklrLVE2THj%chp5sf;!n4~!*S=WU5wf9DfBav`%$uN)0<#4!Mo|?Ma8js8EaJa!; zTZgpWGn2J*Cw5hov#g4KcTc+0TUu(gyG^{nw+qouxEr%atXBto%D{BB9PGA*DFKx1}IlXEvO?Q<{^91I-+fxzf9H~tYi3$GAoBfEdY)NZJ4fmJ#ygM&&)yq#V zSn%Y_PtTt}cH-?1?3p}y&jYtl6yJ|uQsddr*jvRhk4DrR5Cg+*GpGt^itL*5lgkFl zesglzAkoR*ijUrn(s;r?JQ1bu#z(1v@_?ifa)1c3O0(-AS-I@w$zifp#KqqFOZ>v! z_|tv+GW&mtYVHyTPU2~>!zj6wQHfU=ToC`FY(2mDOR+^;WVZc{M+AMRJG z7^gL}fUV7}<40E8ttorL9D?p0ItM`rvakP`RH@i~x11c!sbqVeZOz<5FRst%AW-Z) zpyBb9bVsM`TlOuoW0LF+LwrIeKs}OFvN{lqA=w}GLT39^v_Wxdte(Dd6~4i!VBZoH znUC7X>)SIE1qD4x*WSsslkxR~__U%M^e}SHFHSX*n-EY~yaEx%XMIfb&U()#$$$?s-2LgNcQ@B= z*;@PO$#c<~c^$RQw;wxp`{25(@t;?&yolyS%RX&weQo>X?E5g+5%WLXP3VC=rc*ao zsPXqmrT(SyE!6&rX%8M#vk0{>Uyct+`oo=gsDyM2ht4YK<59z6?bQtlJ zSA3C#^JaP^Lp=-ek=5rI?HORTF75u*ZPLE%G-(7tX8hUJHG_&oFV|Rbd1ebq;4=yTq zyo?fxROZ^x@RPSKx;`}b)?Twet8<2bn2Yh<A; zBA0gNY9qer&tX#P_-}7Q3-TtH&S6|?F`Amk>Dl9Fn3)2dLU;OO_Eq_}pi7S=Rtqe> zDot*JHaDgaCvV9-hglH`!NXV;$dbQxON!}N6bxu&#cc_Ht3MnHwA9V+n$_JsqaL7e zaPW|+lc(1u+Ho!3^w&D{@^80J--PQjZH?<28=~b7yWJWqZEjxE+z>5u+CgV5mQnkB z!H)6MrcRmK)z(-V3PqYa#!v5_GGp@K!Qqg0|M^?aN3AoqK8>qt|B9bHf9t7JkV!P! z*w8$L;-SGnAUJeTcSQp-<1crBT5hh1 zceN7lKwBhU1az4&{p#PMmuo+ofa~y<_GD8TD9)fj$LeZZ`arTPwOVxRv@KBex{vUA z?&6_c6KBty*fn%eF|R(j{$G-k6&(BL5wMC9XVARpDDe2^7DB9nr2>hG*lk|q@66yj`4KS~7pQHuE` zp+G}L_aKQTtzF}0&l}YX#cK$04qSj{quC3;Z>g<|Ni{EPO1Afb*f;Q}JFZjn#e<}( zb`5O_1p*=@lA|RgsIJ?A?Dt=Q&cnAYJUPZ@i{+|a=CVnUSZ#pBxlk1{%I}apm#udI z8e%|x)>a`=MBEh~NvlvKbQVd-)t|lm-5nFpjqSu8@8*zw;atelw-FMZi-d&42QI+3 z;#<#2Lc(igWUFPrgRx{i(cb&Axo@pO=JlwL$Ty(^iU0n&aTABO`vU=g`_PHw3V}yk zYU`(E%S^Qu0wY64ix3ZNo%JJP$h`ZDU6Q?oO(c znoF$|PgG0j`1`lY1i9mCU@=dL=6CwH{`8r09>_+Cs7DuE6{8HS~A6UN#O|0MSB|Aq8k~A(mr9?CMj0c=uhr9W7^me=3Ey(|_JF zcjV!bXvXEM@y6AclQG4ws4kXacYyv$R}e(OJ420)p*!Ox(`HwH z@aW^H?%1rSrVY2Z{`h07efYGeW*w8(I(zN83Ip164V=x6>!SnPZ_TWwH*xSDngaQj zL%txKxzW3%j(8Q3RNhuBGwj!7v|e0&$7i46$JejC4>BKf@8(C4K^mPutRULp!i(;K z+`YTRVLP#xmd#sFnJCJvq6;*Hw2FR+Zlas853=}L%)Cp)?NR17x<2!K<{$Xm?8skx zA6kMs@nhn9GoL5f3zxRS2qtYMCj*coQjohMLTu0>_u9-Or`F<6&}O_I32QQWts}Dr z3E;I^_5*nK;610-;7``!&(~%$4@ia5<1%ZJunyYm>eB}K1U5veD4lrbTJVYX?No@| zpMreWGz_^_C?KDJ|Ad?2^CxsC8i7W9eE_dQvNzvEvhAc&+fnB_JQzK_4nKxEnRhbx z(A}Af-grX2le#?1R8xc>e{(d)dQ&IxO1GO>iNr4kk@bi{neoJX0)_Tonig;m3#3+$G;Gbg(Lg}LUYg@{9QMh0K4PZF?8wF)~3l5 z2M?J}KhCY+^VRWQ%i;6!kH16H@m;?|?2q4la`#-{!pAft(=nDBFmZ!R@OQ@ZI zS41+;dG_g~B9vE=rJxw<6Qion7>-;|DBb034V_iB208H{bjD0W-{{OsZ?1U2Rm#vR zo!uIAl?8)AhhQ~nbvApzT^a~Ao!1@GTTEt#kuf^0Wz>YGklkf4Yjt*~H_*`mDuGF> z(s2yyFS&3W+WOh(xm;%U8>e&vZ!-!yBg<;l2F`5fcwW%y6mp%~gDOo{msZemG7@GG zEWDKybOsi}3>tLBOLC=7X*F5BHj7SU(A$NeI~??QtyX~S5r)+n6iS=LY&N(0?FO6E z6LyE(UYlL5@z^}Bpf}*LYB`0@;<#{}w`BM$m#A2UMrY(qI;%-%RH)=~jh5p~P$L)p zYZ9h6a3+Ib((6%Tnwc<@387M!f_?TDs;r!y27V6L!w-Zi)DcEiMQ$I$VB;C;|%gm>mnz zl6S^lSpMVR2P_6H)9dsGquFFMfJ1bf%*2froob$ReR-2!ue2ELfg-mqZysTvw209LzBMav`hU#-X-5)3M%POi|YZJbpoH5k+Y=#>u6$|HF$%wRTI#4s(Z z&>KxWua}K}Wq65qTu*>E$W2|c8AAbjPrrlPk_T3m}?TqRurxZ#A7e^z4llKJ+<5+1|i`Gq==dXED+#rb6tl*{ott zj82?Q#U}ZMSkjq?!hF8Fsm_&857Q_V8kK$Qw3dpBP_f@^G8v1VvC_(Dd6~ahXOhRZ zPe#)}ns!yK(t~M)J<5hFrhSC(n!G(GH<>}#tt?GMO8lidNEdR&ODkK(O||0BT^g-Q z&A^{prPcgaAp2&Gos$n2bryM@HiJ$ALM_vJJSM9m z;Cd2$NzW{uKKgBZ-Hj#?f7gP^Euo???}V7}YVblj5s+()T66;{dVBQr(#(5rvvQTn zqEgA(oP&N_snaXuYA|DisQu68H#@Oo9|j5u)q+fU-VOGnXrr zdU#h^1QTb}Lx2bg77?Or`hbc)QKuOi6*9R}ueRx}K9|#OHfptci`nb)c_qlN)^kc5 zhrfCDyI9xtEgp|Sul8$=X1mkn^|`!ei(V^1KC8~I=4pEB%C6X7%leRsIK=nj>5pNI zdxBa_{fxR^8uOoRy{FIELl|I=si4V5X=&pQ{5NIWw_Hl!`&JG3rL93}3%Mqdd|>=r zc#1+Sn>I7FTCFkjwk0=QwPw}qp2~PUI&bEh)mt{LlOR|51+}%c$(4(?UA=qP_Dw66 z))8p&)@`@kx}~%=Xwti6i+;U#tlSv%t5T&!t<6T0#h;9rjKgikRdy>=Ave)#vojFl zo#@sk3ygF;YL~i>b9+!)F1I;dHiyZqNhIQPdM;jd)wWg3&YxACg|=O}y0z)%3$NU~ zd(XBFs}?uZ*VimxvUT$vHv_b^uD;$hq^mMk<}WfDUOJAhRq{1;t%FL7)~z_tYjJv1 z6>Y_?wANqRSYr<>1w*B;%I#(4GOvZx#w(J+uvTqK)eWf@&u-=TWB|Rtoa&^`r#4G- z-H}k9VODdtKQa@Rn8ltal*%zNc+RPNb0Kp@!`*#&ANh&7S+uv=CudQq(rgZTjWHN99)DFuH0ZUc5W36Ho6Wo*ZBVJOCZn*98MZ+tw|IlmiYnj58m(Y; zIEy?^hgHyOB*;@FLbQ=kQP%{gygU#9o;W3LG1STD^xt)|N5gV}wcFH+`YI+C!a zLNt@GCWL_aka0dQj%@%EpMc36j3@%>8-s&-uD>36lKa=LxUs8e*Yul_vaQnVt!%^J z-#mR+PuGnr*6vT@kFLMIXAu48V)idD=+uZuFgCn=%n=7y&N+^NYX_QzJR0o_e<3>k zM(SO8rR)dMLX@8>Avmd!4;8%Ekhmz%f@gt9fG6;koL^%86CFG`868w8#i`jci!z2D zz~dNv8*Y=`huh?e?3Aq{j>n_>nanrr0cHUz$FHlDWNy`LSM9^^)7$WSoXLCv{u8QD zDx^7A#XjWEtUx}q*_8P}=05o`S<86@{;gw=gPwhadYk%(bf!xj<|V9oX_Gn|vI95O zE224X1tTvKhY?nB=xy~$@=L~uNE#uE-@HObx+Eg;MYJW?N9EPE>^?*3BVOjk=i7jo z7%(FXKvELu%p|nPtv`Tf3`vNYQxTNQB~g`YP`&#Q2^>S{k&wkyEre-W<|y&-eycNR zG*xn)!@~x>SGXt#;Jl8FRlEK&zpOUkY) z<0?itcn;nZ3b)QY^QxIMWIQXgnB+`sMYW>TW7aBIMj0>GDWg?LFrbvxmQpdUbuk!y z(h6FkFu02K1{)Vw$!N7grk;in+K;q)L^CQm(jq2M(`w;YD7vm=XdsxoLba!pZTGBRCKJt52#S=0)xCG0h6W68>3bA^|V4{~y0PR<%tiA4sr)jHguQL}bXJ6mM_ zF>%YAD$Q-bsjEy6YOPC79+rxtRxW|3@?{nAI-Qm?s#Jni#V#}PvB5PelUi-!H1hf6 z3}P9zSH6&41if-CHG*0yo&w!WZG#qXktTWklJt;)uYxs;8xVWfZ?bkc6(au=q8Y=a zTZjNI`bg=3buUw@ON#l^nSkCWw~>v#GQJN!>SqtRfwL%gGyz%+lDR zN_Tiir*F>q&=mar&*l1|F8lPggIfH->ZY9)^&yY$sXvq#r{sT~()9g>r=IY6lq?z* zDKUqxdVf`o-Tls$ZqJ5C zU%6>f=pUgaZUef=qyI;8$>7Gwl%NWoXWVneT@&b1oyBB~ph$aJg-)ZDhh|=|aJ|C4 zeA}f9N6dP4)4Jo+=KsfV$Do*pXQDO99dn9EK(36)KkV4JKK$}B|d|6~6?4v{`Dv%|C^5dKQ?iqRSosZ=B3YqDNupuR@pzE!k zRBD*zOQk|>(46|&PTlo8bsLb1zVu*ber6+wo}_hy>CCg}?vy-pav9BXhRkA}(O}f6 z^(q)as?>VDLC@(`dX+-Ps?`;j(M=k4Ekc8oTBDj(er4@QrCqjqTF%lx+dBxixhJsvERCZaGCnp>%f+)ajGNKTyOq#52M39dV$_Md$ zf-gu2(uAa`t*p9Ex=E`-jK$t1V-&3VH6f7@UQ@FQ=Hy*7X3Ti-L1r91Idk8s2OdPj z=tu2=jGXDL%5>5DPA!r#N`;9xDU^(?*Lidd{bRsRzi-p1RSNlfA768A4ewhoSE$qz z-&(r#t)*zeQG5U&IEu>cR;L|5x72ofL$Qf7z|fw|4)r?M^w^zNJ9RF3$<8WR1j2vP za7ky4B1LpW5n)h>K@ltI%+-)pLO&?LPj%qT^ovLThmpjIfqv93Ay8DiB^g4Ry!ORAeo^GNChX^x8X_05FBKs5|A0Q5fGn;%m|2k7@CAsL7DVeRki;LC z(Q=T)3qe4PI*n1TB(kU1aR94zDgtSsfoO+-SveK^Mk`*xmtWfnv>uWRWdZC`^aw3o=i$dXvth(`(dnxm>B#=m9Y4 zS$c5hrp!C|FFUOVXgB%|-raA+C<3Sl56gUffF6cgXEDq0m*ZVZqY|=FtBg9Y&ZH2t zG%8)=@t4aO)V^g3v+R&9KlE$Lj{|LomNC*eZVS2}>RCdC0U-5Iq^ctpQrCf$esQqO zd`5=>)%U-vs``%hLxujLFz8KODQD6f6iQ_;KtJ#D5ju7p)PtdJWPimD&h8J- z-2i4~K1DBV$2B;;9lap_1CTz3)7uERjey&54g3>%@*vd=dg~4`4~^_PbP;|5Uk#rZ zz;!iBql@5^hSdFhz_k*;0O`Lz{S~{LeOI*WE$;fsb?l5qvP|9EQsqoxUGNH{scY5fR)edIW=wc0IO-eWX5cD?!`-jXVHHI6CLm!c-5M*ckkwcg=y zb6TV4zMBvJLE0BaodTs$$sVJ|=IWB`XqdiQT25CZmx{@A!&P!RDtEMo>0dQsFLi?3 z$txXduU>Eb`tuuauyZpH|b1YV) z#ZiegR<2C9aL1=VXxU>POC4ghdYw>gdH1j^~N7phB=Uj9E`paAz1~hjHC6a-30e1AqUww6)UY^;0 zBD0-deu7@{70S7&Gtxpyg|(z_K-=+hbWLH|bO3Ef1;s>SR$B{Q#~Yw^+( zcqzK}gly=EQ~Q~TC(yMNjkFMd5yUr$x7a4Eq^JlNh>%|^**-!tNkAsDK|6Nf*YWlp zJ9eOQw0y_Wck%0}{9RNo+q(mA&&=FGYj&XJsC>tdL?3)NGn2mKU5Y_X;yoM#@-T8X z9_sPU_%mcf3y|$7vfkfaB`y*fxbN)8a8Cs z=q0jsOGZy?YmWri^mI>aA5s>ostT128TM$;nqZ{8ZQAH1CpRt`biHG6FHiLD8z(zE z&Q7v-Y}>YNJKxy0ZQHhO+qP|6H@|c1p8LP2>Q;5lbbn@Eta&jtJ>6?P50|;92x~`^ z4p?43r`MbH1^fk%?-ZuVxAGWpXS+&4%j$57C%SCszibpuBUpLDkXarfKUh^cK|N{6 zlq>kzc^t10NC|kiwyP}nnGpA@R^wTXXPp+4*+A=kCTps`>@ex4Y!|GqKiuat!VSQd zC%xW8L9KF#P!zp?qDf^IE2_j2qi?Xa=bdb2h&~=QH=2%Wo-KeQ&M)Y2x&y!l z_6c|5hTTC4S5MhLOIabC`7klU-iw6taa!df9g5^O=&7#I;6)17qwn@JH!4N!0%M{R zWd_iUNDiro#z^kaj38SX8st9ND~~p}Y-hu4xA2jNQ^Pv;$@BI*y!^vlv9x9UVrd>< zM&e{_ZyWaXX>1|*l{0(ze#cT&E-YP%FNF6Lv3b=p_+7A z5zEU<%fd>e)V0KvED)|AP9vNg1#!vzOIPkv5+V`g)+5<(tg0jhA7Z3hii@i1$S?fm z=nmwS)RtA{P?XaTJZzPS_RYv--hb=6Y8elNsW5*7)V_(w_zy6dXpUS<;a@NwfVXqT zE>?&{9=jw7-*4&xM;>bW*`p`*m!T-TzC~sAOT1HACz4O_EyMl=M;^x6e`tJu8y;MY z6CYrQT;=t{D|2bzJPd>~s#LFJ(x`xI9=AGH5)T<^y|hZ#2rHpGXZwIFNwF#)&K%ERVXMS$ z4_^+UgId7V=gTv9NpD9Zsqa5>QoeUX@d}<-QyduQH(I`w?-gg_#g`}c3kprRuv>A3 z0xFn*YajlFFe+}oWJ_AGbnk>1t=}k|e>5o#!aG=RsJ3d&sE)jVe6|-ukC=;J-pQH{ z=|z$*f|5NvvtM_7N6QB6o<2{QD^7YQn#zVn7U8^7_h-g@!fSMTVo}xYT_{N0PoXc%@!1@!mFL{XO`j0#OCJb zNmVNikze@j8?hSeW~v=#{Y_lX7F%rqS1GOt8TWBhYLij6-btn)i~XBVFk+Ldji2As z;6MSq?~$fbh2zO|_D0JBo8-H!=&kcMr*Tkrylp;vL6?1^krs!Kw`U9w8I;1Uf{OLf8knjW1icOS)1BpSPzI zQYY)hv)wb@S;E^!R{CD8z@ON~%scn=*o@ugYrWJ)Wy4>JVYlE6Ip1L%@8B2%7kqaJWxmOPMk$47*2-`##4E!nNISsQyM z8hSx=jswf#dcaui#<>U44Bi1W;!|x9!!u{*vu3wAQCjoSadmnxm%}$Y*zPcaI07WL z9Nbash{4hM0wMX$-yAKf$k673u~CE>q``b?x3!W`T|N>nS~4w=UFUtD;$CjxTYmZ! za*`jx&9wd0LGT`_d0m591MXYC*BmBO9Dqr76>h28oLCc5E^u*GC?WyU$Q03$;+?+~ z$s`bOP?b{~QOe#BkKYkl;9xC9JinaquChgLZg*1^PG)WhL{7$S-Vu%XyUXSkQ4Hg) z^}Pu$2ZB2Y@c#IMOep`@Iid9~lWYg1!)=7(4E?_5^hrMn19jf=b27$HzcFDnKu!xa zvf^jBF){jQD!ceSV675PHKrK(X##x37U^CxUp#Ad#`w^Tkz1Fz+Fm)L8K4%Ng3uZt zU&?FrMvETcv=N0C_I+c0+qXU|_2Rc~_{R-2*(-{N2V(lTlHrM>Pd^}yrYp0WvK(txm=j>Zy`#j^F8q4wFtm$>%Zwsoui^Q)oc z9ExjU3`30NJ$T<2;{lQ8ooD5F0laDWe}O3%Pkw;rO}JIDw}bs+9tf<@09F~B{6 z{W(x#IDSL=vIydV$u*JHgAVA+PeRr~Zu$OEA%dsTfFtW-C)n;{G-!Lym0*s4YWk{CPFrCQ5AD7G%^!)gejusvTfT@jOFb) zEA(>i)N#zZ72Fn;&vrQiWO$L-r+m=&lqV*?B1BQ}5NL-*U`gMbS_v~^H!}7HhEopZ zTab=&0DuF<5&)~6`A6iL%V?@6nRZ*T)eOKXOApBwY0r0obAxWq&6L~lKO@=OzSOFV z2HPhKBipW0y$+&z?SPYpZe~ntLI`O>nZi%TMA2_g*UDm3$Q3d?`j}f++ zHco|Ev)UNwBC`-Ky@hA}TvZ$fb$bEsqaj4l?60w-$IrNX)UAq=^Z1WDw^l8J&E2&9 z)O7X-SCAfxAltkG#A<0=(HU$WzahNhU=wQu(9#z2cD zxRFCTW9nF2Vr_(6#P4P#pOSaqZ|EJKRyDti>)0l&LIotl>7AAVD|4q~140X4K(HH) zWJ>zJ1@83P2KA`slIfdH?MpAwesQX1VPQB&krcUkb*UyRDbrP#Z7JVx3Il^ZgJMTY zYAVOnBB{0=yuZ)N*m3yDH0X3}IIevMa)eI$f)<>iT1U(>nGU@KWN#_+hKfqW97!F8?+a5TwrBX%|x@8wG?{U!@as z>4@*Y9(IVw84ci*MY?od!R2KCJ1H)9lJCZ6SP-7rR+J)1pMBhCNrTl8W5C9&)xFi_cv{EmnDx@I+O}Q$W7b z&K-imJ8fQ#scBJ8`N#xIV=)wG(dD0F#sz8gLXxxF!S0xAy2QdqfFoPdR9cf2NOhD& zCeH8iPOQVm*t;Luu#j6bMxhw$SvBmc%9EQX8I{f&+RWnkf^$*+w!G|Az{qv<3RpH1 z>Bz;PBQggE$r8%CA^*%7vISx{&Zww&``@i=%ZtyMZL4>(&PU35PtdbX#8)4;m!9FX zY5L^h4Oe9iwDNR*rcuSVy1W5$sG~4hsfy9diU*|>@LqL!IW?v2Kjpua&>bnuuLH$O zxRBt~FQsbRc=a~kkP16!iGIb8GalEZ>Pe$lDtA%Fg|RFu4d>~#_o#o)syccaaH5dy z=jPaSY~Vn@+aUxjG7X-Cc<~Xl`XeR4QY@eU&Z$WV$A0L-v_@6XC}}S#E^RKc=DU8k zmVYWHafbvDY7uoQPO}#BZP^)xE*gtVUfFnkPhRaQuQCWy5L>1(9VbIVKaFA(L|#a; zlrtzJF)ynerd*XfwAoM8B`GR14xA(95|fG{g*dWtlYdF6{d4`%_0p3+ZIEtXp5MJ) z%T&)CE0Aph>k!b#KK8I%!pAXU_(-&cDlAV7l9PG0DBs3_Iq0|Kb|@ZXuV9l~#Wx^? zcNT}Q+Q;IVlpc2vpP$h;Q=_%(Gm)^HYfHNh!`LEas z*Uvhh@I7ExBC3Eua)YFaA5X_TVwXUTqI5!16!Zu0;ZC#X0P?>s^QPtXzn5lsJinD^ zjZtd7B`&(Nd02uJ4^T%1ua7#solNO9eip2HjFveImkdVSi|xY=KQ*`oxAAbfKh57ZZOb)Hq^&-ALP{rM>$~7u+h< z$&yD8#2b~%m29(T?vnjG%Gdhh9YMB0wCHgFm<=D#eDTA(Bd#j$lD*sGr|@ina+%}2 zzg@{%;;n;NqZr&g2Z>M&4~csH7UyjWIx6xCR*v`Brg*O|?;&A?^GDCgX)2-r*@fm2 zc_N_%i&KnAgnMce05D3(CyD$vW*9nb+l8xUOdr`Jl`HiPp=#+9HNQ)=?PrS77SIcn zfAcr4o7+RVF}!W$d^O4#lRY$@Ox(L#l?Mg-dhik35tVlffxZI$QVRf7h*vJ2Jg7&C zSFKK^PP3eY2Tz_?p@KD{n=bfmC9hi0|1iqHE!52GW%SSLhYIzj^k2nuWNNVLcFGhC z5kfX|l!8kpSUIL8s!2}j0q9HzB&-*(PQgG-veUKDr(W8o;f1uhL3*Zc$%A`&hxAOe zQt%%{8F{{;OlDgkCCsdt9pEp^2B0{VYkeG;u)N5>tEJVzAu~~+x%Akmiep(6<+Xoi z?0b*@B890_PPE>n1AIw@v&-{Z@D-IXnbALeWo;YCRWBZIi2I)I;(X7~e>Fw7SfAV9-7-(4AL>|usxVft3?)?U@9MD#=I!Ia2V=!`iRDf#f z(woZEB8zB$D-WJ+u?BPDU=mtNm(C)x8K{ZjCKOC|{-JNjax&41!LzRA*f>Hkb)X5z znMHANm&`>QP&Sr5uA3=yoH-+G$60m6U|Hmq%18Yyu<}lN%&<_=`wBh8rXY~Q=7?o= zo}lkmjTcQyR0HdkS5A`r10q4v7$v#r79Pg=*qDj6|IUA`O1RbuspEv!^~bX1_ov4+ z_QQSq41~w2)(d^=sy;;&F|ULuao!+vIGC?GZ;q7Em*V7z9ddv;u#@0!%61eYY2K&+VQ)i+1xv`@>08kRjN538Vs_9jCx zG-Iz|BHW__ki>ViL$}7D9}e&Ny%`SN-uOK)WLF38qkwhpqbDPu!^yYkuMae`DVlHuH8+czn(-HRM2Z0mDjt=@YFAM9F4O3u)lJo4$wOi z&4b;l`|HbNJh<8Ccm!Oc*I$6nn-Bf9Z!EV zRIUdeZAUdKQjym5MGi_?zmRg0Ka&5(M}z@{XQ&<>Jf;lzn*@6AIb@&XW6SIV`>P7L zw1*(%8ySzDZYs0qpp0!tYun#)kvtG=kL^n`oMCIcNsm&g_}9s`MyK_B!5^srjV zFjacQXf~|6YVaFLDGf#{aNB@tLpb9IL6TV9-M+tK#s~YM3k?Y=3VP&mw%nQdae%BC zt&}ivLlYQ{YG#vyyK)0M8&>_<1fdr6Z-HFfFrq%5VqxD3mEWi%6L^Cog8RfVk{Y{q>|B7!YtEfsm#68xL>ExQq6)Op?%UvAaU$(*4{rIg3y0^Q9DqfTZS`II;`#v98a`8P6ZqA^81se1bK?B6LYph zW^&d2m4Zx$bhWIQXc^l9yHkWjNH?|GKKEgZ=?QivFCWTQbvK* z0rx=U^5ObD59FmtV|x$W3;Y3i#DKTnaACFQCQl9dmfXhs0xayoGiZLur3H#Q*fQd$ zOka(xBoEE|?(OliXW5SkXYCHckQiD{EQqc~BY4laeH@3D5HbjS=mllQo*fVvyUZ$l z!Df(}N@;9hh?$acpcEl3;F=LK1+quC#cX)&Ba>-1q3x3z{uLhwl}Q6dRPy4%dr~Ta}g0y zgAZMrr1Yh((oOAGot4^klQd!A{hrlHaMRqmaS03O!nSGQd=Pau9e_Pu!_7QDpu!J0 zVg7Fgfj_F-)W0uN_9Y!CSI<(GmA7I_Dux?=vnZ;C0eLXU&J6BWpn3PcCz^c4TU_{F z6#b2kRLN$7!91SWJc8Ibj^E;bM6+haNchgLKPPUt;0O zFPT?G1(xhivHa47>aC{=Yd2chKQj!0T3AEVp|RLRRIPI@;F~TCcA!lZ=>tAqU7Wvt z22~SN-T@+C?i;ES%hP9hZIMvS28s$7jWD!sdjKRe4F5tTeUnt}z*KBlk&q>ohn)>Q zA$q{OJ_pb-sF0wzI*YQRQ*Z(^fE&8yzvZ`~NH_`wS%-Tp>WUEeVwfMZSb!9N!+kJR zKBIxnRgi09wslH#AhI$|iiMKH%>{G7q#(JfR~8c2f6Z4m!nz`+7D6QNB7f7+I}bk1 z=|UZ3jLgZg(+Y{L-xeQ%y%iwB;z=v<35)rSKVA;T3ZeD|1rH=`f@${`GZu8k&g?Iz z!VViwmc-5~%(S%2Q=dIl7TS(02KMHIzv7A38SS8~Fe2NK%ilMe#*-#=czI!$hw47$ zcwLT`OSR^EC9;igGs6vw0uSx5acv;z$}pg!90!)*2}0hQZ-h38)*bsvgO{Dp=Y9X^ z+3U5-7q*QLdiAFStgkG-aqYgz7c~w~7;pZmUEF1Yl24WHzF_Id!rA$fS15I_fTHLf z^XNU}8{N92+M@@n*ZzxhpY9;>c(a;Uvy#yu8k=%pA*@n@#7Z=9U+5UuJ>|a?`v9G| z#Ed;L8}6rr=xST8i*qiXq-f)Oo-Sr>2l4mlr5@G?Jy$7fwL1^BGz+z~t-2KtwKI$V z8lIgd>FK_x+QqatW$@lWUEQI)=Xqh=Slr>bywSKkzZ!ZerC}GPYtw%X{J37c5y^Zm zwS3`_$LXm&zKrKnan(+-^Kj(ukhK24R>MubsgXavI_y@uOtyvN{#Ni|_aw90ZUJ+{ zJA^9|^mimmyc<4JWdHW_1e6gtvL7A*_6q{%Hu*~g+fTM5n>&bj?{nu);%iSeL62^l zlk|AhvluXsdcVWX_T4E;Eyxq#no5awv=5;7z{LnLVGH1rMR?*hvZIc0^C2q|=}pms zi~Ku+MDVBR?vF6{RE93n11abERd%#{D4B4$9D`TT3a76FGhHS_IvjAL7(3WO!LFWI z`K_&F52k9Q70D=HZwoe$f7&md98I;%6m1cq0Zd-6w*=`Ipu6|7gQc#t;UXOQlkl#Q z-Sc|Uun$O1!#WGLT0gs~0cE@RyAumnwF|jy@f?~rWeBP%!JYCQ!`cZ3;V9s<~Rj@cCVv)X9N@Y;ntjNM>vM z`I@kX%}^b;@3HXMi)qqYSgDpblah*3!-x>Zp=Yi@?LbZ!7P^rA zBRrABITOZvxve~wQ6*^|At?iMiZs{NIDZ*Wr-rlPMv`qcR=ug5Cee|r5Mp^)f8inI zQ~G9DrFpGX&jI1v%HnMUsy*#$KzAG3La)PBI#}C}(O3hg#Zk4}%bgUw=3sh%?#sjD zd0G4+ir*l3S zVpJeZjA1b*GOmAi*x_wp#aJizDkyzFRqltYczGM)_}5$x*_CMTz-i6m9lfIBxEbEB@r6D!d$x7N8jbGJQUyse;eo~tG27qwZ=lpqS&*(y{bf!SscGUQ-Y7mKf=t!m^3X3IRq z#F(~Z#Nw1|#$xT)0!c79g3vItn;3XVo-rknyjX@roK&unPT_8T+GbZ7-F7$86R{cI8Ly- z*y_BejySS<7m_&a8YmH@|Kp_LsuJk=A~YWqY&MMMnjR#HzBuygCp1}gQiLnMdW0+-tB_QaB%FLddDAedLwo+NH?d}py??MuWl%= zE-i29B+z~EM{>e>nQ8Br%SlXw1aJJ%1Vclz>t6q}vjxsPZ@MHg z*D~`o7L-iL%B06(N?k7^OP8LC|L_1C#?Tf|d*sND;|nq~akQ+qzCcTMM=V39gKs1U zvy;m;mIiZUV-sAP+kU4zyiSYm64&4ji`T*i+xRWXB~^NL%k$N6_D1`0nv~^bZ4&Xv zK29GEif@$$xA9fUZGn%w5mn30&6YchHdjew zqvd=O$J3sSK2>G1Rg2+sHQZGf_-MMi{-tGl)oT6o=evw#(uX8dD2SrRz&3PM&XGX zACd@v!!*}`5&1e8nc45W6I}I|{>6^%8Qkh+r$3tK>%$tyGeTQn}&m z0VP{4A+bATw*-uI9&QmXOb~amXoqu;r+8R#9v;3MWM+_wR{&jRxKmi%Rr4?1EG>-` zl6F)U0O~AD-Z6bW^j$@u%QDK5n#6WiYG78r^#tWv_OW2dk9+*I(L}h5*DU0;5`wj| zURJpvXEdx2$tNcBI6H0?2t>Ow_+E@suY-3Z!Z#Khs+Z%u%I{cz&rnve4WX5ZjF`PV zQS?3GIYMf?oo<>B@h32`M+3hW;9%Dmy(Ji1|CnlooA~gYenZmK5^>+(j2<`f?V|(P zkiGCD<*$!8Pt(A~@ z>zV7$-rbh;3AT_4bkJj@LG*S1;)OG5!X&|N4ldlAXz3??u6#P$lPRN=9W2c~KZ8S& zvG_uJ=UrXadGU+(Gtx}WPghz}XK$z{_XKmJNsY!4|T zV!+cudiWa{a|CiH=fdg*+#M3!?Q?|Vg*3_IW=HdR8~l=8%>7C6i4+jQ8=d!1Z_>*! zy`zIQ-yc44|Js8$@&ibgq#7YmH~=C^|5M0 z{Javr{uk_aquHgubw}cDs)Fw*u$;Kt%jLrtoT6H?F@idB@BC!mW%XZUuMX837t6jpcM7 zky?Jv5geV-aa)&ls!$ByX15!$na};<*1Adi41*5e<&e4hbsWQ`j8y4DpBhr!k%+@l z$)d$@PtR7b*zryvVoqSfiz`H()4(BNsRG;xs}_bC6vEbKuhzC6vNURZIuPz)mn9Uo z;`1+7;v??Y9LQ9~PU(bs_3rM;@`(52;!7!m5CnUkx2MgrR`uLyg?7SlcS74a?cvDT z8ytb0zo#0LYMg5)Ar^NGoQ^cR2kw6z9MNF-f_})kUC`4TUxydo{{sU%J_63q5YN@q zl7GQHK;xs!Cd zTujTnqtAY(RxzADXw`OBww6}5+}7tD=Vmr@mSjAoxl~mpYde)e55g;4Q4Veh&$-^d zPKD!d`iXMInsLfTPRm6?mfi9)VV4YnF1qBP!z=Fl{>T3Zq$d(Sn%kIBXw6k>|IvbJ z+ew9-9=x&eGlt}R?z#WVDYD~=oOPj@mi~sux!T$Qw1YIViv*+z;v)fM^9zU?xQ7U+ z1q>+phyM>)>zRB|$hNdT*Qr+JCRD|K_fwOh(fK&REq9RNFb}$4eAnC+e?;|fSX3C& zWH9yeG~p##+B1Lw=VN!~UE~_GAti|>9f#+;qZVWO;K&;WgVE$Krvt&)@;3L&?#!gd z)pOq4>(d;|g~zv3kH9)X+{gjZ?S-e?2qZxSFp(vO8~Aoe-btB4c9yTSTv5X8b=*}F zSwb=EVu;n*I>ftp!n3zd-pJ)OTns6sXaXqV7%>v+nwcRxRL(Defq=gZ4Ll7L>;*gxj#kdQdESZ(`QAIwaJ=sZTc3L99n1~!<fvK%wn<_25V+fCJfbXd(X`{XdYcw2r@2Ifk43|ih0 zytK|wQH`&x0$1sO;qnqr`_V7OQDyiJn~7ElGa&38!;jTr(WhMr$ZZZc z<9mJKE|0D6{7VU-yt208?bhqgf6RJ8dJ0Q=K5}xr2nd1$o4kl%Wh*zK*w8`X_MfR<5USjJE8qTaPo`r&^CU zoRb4;1>C8abYoV6V6VHjxwK%ew!O8y0QY6dkuy!SIjgTgplVB<2E$jI91bN`G$1ve z5y(~y$6^YHoJ@^NMhcwpXnrrQtks7pWlfyC#`n#OPMbQG%l~Smy=a5+Pmk1~9sNbUqg~8Zjp2gcUXD7k0Rsn(g0#u;zm$M@IJdMn?AahUQC@ z8f`|CpNY3mcy+a}y`<-%H>brc)?RO?@S4M#6f9;>rfaz+%!k)a zeHkKu;bda*Bs@(X>-FO}>6~n2LY;0-7~N$lG*x11 z+3L2Ag_?1(+}=N5(XOWNRb$i%nQ7VTr|zNZ3{yb6+>#gpdl4K1zKf1CzWK=IKwL0M z7BfL5O7q8YGs`#}?CFZBhxD~qf6(=%8({7rr$@wNNQU)p=0ml??r;XpX#hr4!kmMV zs!~jMFZ`%TAjrbAz+jl~E1pEcwUKT#R-|*K{cX(^pphT@97SA~f3iw|9Z90GsdAvc zC}A3TbAw4ieYK)Dbz$xHFgAMGk^fz!&6b)fk*&&7?)gq+&;E20yKQVE-Au4QBvW{a zon$|DF|@im2pI(bdRJ%7Xi*w|Y}wC+N`pQJdlT%M#hU zvRS$jEoecAEWNR+`8TM!Gt#0O60_VZ%h7=leK0d!D!wF15!!ZpLSvGL;TE*dca@FVX=m+$!=VSjm4csX);jJRH@v6Y)wo4m!!U^{n* zvfY?2@*7({GHYZ^v(Cgoc`1)5RZX^wn-$O(Afc6qPa;k3dA@c(Eg%84rG*56z+c$ARwj%$x8na&l^aIm1Drc@76ok??6MDKcyg zMg!s5mA#f=)M(Vpxo)%MtSoLXez$gNDdlLj`#A~op$aRcmGb3=DGrLFc~Z~N0c-!GQE8$ua+IyrRWBK8Y= z;NyR7r4HUo+B`+&2WeQIQ2m@;^T)3+N~^WhMM>FszrB3DAam`_dvW|!suCni&lM=6 z$MhQU^oRQgM2a|GOVKN>2DCLw%*@=7O4}Brp)__XBe&RK|KA4@@Z@ z*ucNcde5xN9c&U@yIUsL2W%FnyDlX!6U5SL6^3P8$~B~~KR&Rz*r(Lyx;`r$Whf^n zCQchmzoVvF**e`k7~G|UqZqqTkp_o+DMTu-mYZWm;v4a_vk2}W2ZyN4)0wTz)YTR4 zn{;Wacl+W07#oLQp3Shhw+qvrMIIR>Yx-6TPQLXJm@TJSo@`6yX%pTAcDkP)sLv#7 z8*^vubw$3~jNevx)d3F9an39yRW{u;WEvX9&mLsOY)BrOQ`Qrg>qVZs*6XM@DYCpk zI_Z%&3c4D}tT_t7T;Cr$US%*mCTN(g>~{T~iKXXEIC1R^FSq;%bhuip4Kd)$oz#g) ze9y#B9hHse#UsQ^y|ISKht2BH3;{jknMaN9R)cq9$kQFRrWUig9afwATyKY0qUp;~ zKhl&uvlAp^V{0XEg22E;?kBKDK2@Dc?56qv#bgO&;sCJzuD8YbpiV=fQeQC93N646 zh*+@@k&SHWV)>}5nynJ~g?xDmYeRFSi?vi!=J=V79>coX5{;xKsSCXRUvsiJthU6n z8wm*1{Q22a;(H$b@Z>Cil4-{aS}ZMuw#teYLr+e4`6X)4J{Je-HP65)p&h5i{F6nB znz88?U#~%g2bz)n$9o=ufWJ+_k_C%fCyqvq=M(H}Qu%2FP|nz*3c+E2ISQMtpEvIg zkx9IqPUL4-mhan~!)wD39d@dG&obxB8)x3ceS$?su}wf~*HiyWWgz@peZ6xb7B)aX z0A*b=M?Qb4EqjU3!$d4HlTKlgpHAa6S5dl5B(ucE!r?J{D3QCp#hrhCJ3M;wk8-!C zuFVs~mcgfYj@UlLhb6okf=L~Am!E3mbYCB@+CRR(1= zvoitWf>w~-k#e8{#1Jt86>a#FdC-KB+0{NEpXWIS0-yp!Z)t?K1h!b0l}3X|MshpD zU@8+YtT3Ja^;z}L`DKuXSK&^Umc$%P6@=Qw7YuHP2a_?z8jrXoTap4Jf3qtG0JDm5S^@^IyHcDb3?sN(~-gg&z5(hZa}xH&0eeRFTV z0Y(%35&-$K`)QL+@CMXP9QpYH&(9zz*ff4-W{uQ$pRl|c6H8?wU!1rb@XLVVh< zQWx+8l|<_mnE7SldM#+}9hovRG`i+1p|O?sK*i2B4EK?!^e|s2aavry@+I>mP}t7P zpyL+0%(2U10Yiv5h9VL3()kc)C)5fO%R5`;O@ldD$Fcvf7!#&S5C%^yX)cmcD@(S^ zmlBxf?KfurX~MgN^yz8{j-<3V3I~O!#VK85G8Grpw#rxKXzc0~fnT{O`&_0Oew}z~ z?nKGnI}~#_@Q-3aP6Qp@tO=GA^XB?GAk1n@ToPc>kYTpSxdym<5+3LZ4Y$HJWpu$Y zuHd|~q!nh4RyN%peI3&#_Q_l~F?5hCQ$HakmEWSfK&9jhgEik^rL!DWqMLC)? zj1ht8F)^&8SF?#@L(`708!(fPTjD3X>{z-hX)$b9H(wXac$-RC4MVV^=$Kg}p~n;F zed*fZK%P(db0^03Aqx7`N332@VA1-!ds|2X3Fy>W580wk;+X{|N(Rd&FA!)F_tb}c z+roDp%%3I&DLyg>T+aMYKAxlpV6mh+p(N5vyurl@MXk*{@$g3Eh73gUzmFfwCLz29|oPk?`S`IwHqr;f* z(0;_)YXc&EP(Qgo6CvQ=db~1SGxD`6fL`(l_?&GBL30raiw3UM4SL=A6!K zaVQ-u8bm46vvhgk@L6xepbg{hHc0p8m0hDE05=6vm_-*;3(0IS>jypVYj6DNP)}k7U;2{4wOur@fJ9Pke&k;$8_rgzyRXi`c zobpsiCC!&t*wNp2raWg^NE=1E6<|NiO{p|as$8F~JSwdPL4ev8mer3)dgE6w%`t3Kj-x+K*t=}*(bjR$PETw7jO)HDCh#Tl!uGuc1 z9j&QQtj{>g@htN1b9sLGtvT&EHz;kT$MPDb0J3Y~FvKbI;xvZdP7&+9k!HXzl3!cWP1WPv|h zs+B$?>TqKrdfU16rNl9)|=e6u8)NpiV7@dpvJ;9g$51NO&e zbyB0z3>yR8>V_D!!-20CvB;=qTLG;#k@BAwyIahv4-05Me%g@G@LvJX&Q4E(ehuMa zrpORzK?I2VoY_LZwx$vqiT;?!_x-o~J{rLv8 z0`~D@*O!-*c6ioYbnzwOXGMp13{or6mkU4^B>AsiR${T}w_mG&5tZz*QbbJFw^vLB zTg<3CJ_!m|c<|odFuBu-H@O>!=och#Mv{^JcJ*@&e{n?=PlEV$4kTk0ZP&nTY1doL zz}}pOY|WSUk<775m%BE}1hoFDTeDY_Pao#&>_`s?0=+rL%k^zqc%v0JjsQH_5d@gc z2{I2rREFV^t@bvJ#`Qxm#xl#NV5?8FI6?ior%TT_K-MTGx(IM|xSL{*-$R}t>+1dL zjU%30*S(3t)T@oyF$Rb!nz;*rWxWNWJe|mygwcbsFb@_9r~YidkTgUvf73gj(YRzG zY}2bJZf3?5hob2q3Nvh{UY1yFrhg;#^5kRbthNkAf3c3i!URmxSBan6TB=}MnqUS#}uVjaFN^M{k zNh$6k;>319oQG3zd-Jg5QGMGB8ov)K$nU^$fWKc#IEF4LG?Won{w6EjlcCZ_v%-zB z@Os?I96mL1$6{mD7?_qCSR2Zt99fd906@d&ep`P@tgbUpO4QnC zZC?u8L&a!kF1t|AtE1Q+s{CTMY8|OjCcy8$iLlZK*hQIYQ4=^oMs3#H!}P@%&aA~6 zFYJvlqD@pZ(o5;fz9z^#KoPsxRC3C=5wT zO^tQQ7)jfl*AtX!G?!p`ZV)@@Y^so9m_tEXTD9VCr6iPDFNkKdk0OyWTVtc^;!3z3 zR;?o6>{8py$GI*C1Gh6DkRPu%PF`@EJ)Rlur5Q~sS7R@7)mw5`f+7}qLZo$VdJ70oRO4N(f^Rxb!9Rz;;1=7%dGT+X7rw#R6yz?((91x|Pt~?<-TPfyxFT*_TY;LY#qI+< zugmSdprxh871xxcWC+TQ5Krbbe=6^yqOHy&j-4_GMyq?b-lqR zF&a4Z0GVZQy}fLt$2{c!J4Iy9rM~qa1b67Z1k_Jq2OR$iSDm1yd8&SD-`r(hcii-% zL)DM?l0@~qd&&jJOe|3n8R?EW1;sy3Hp%_U@VgaqDE7)>Wh6o<7o2+u=hsimk1uAY z>`Fu*uSeQf=0ciE+D7suEFE zmjYF4Nfrqn#?~a29F@wrAEM-8C)sr^J1U z8fjZSW0#uh;pGk`G*noD+P53`-FEtG)LXnVDB*&}FO+M4%9I9lU}3H>5OED;4MY2` zSN-hLE+0VQ$%`Vo)nOack}wbiPCBK8)jJw#u?Lib{hJ&`Y*OD_Hy2(V3Qw(Yk5Hmw zJhp?Spdud53Cajb*|YQE#59k+czXe*U4&6W)+p8k9613S?(;-$?z6$uMBa+;dm->(744Y z246jeWG;voLpn|}7XBC;A!{IEF9VcHz5k7unW9x{b*+9LvnW8~)PH9SwuB9Fn zEDBWvr5s!P<{=x>loY8ayI8+8m#HmekbV+7ux(+7UD{6Vuv+M?ik=esNR=Y}IR2D@?1s0fZ=_2X-d#@ZCI%sY5 zio1gQ%cGy^H=;5{FhRv#^6oj2rkld~k$4AKCLE#>E6W%jo3_AakePeyfx*aoal+vF*dC%Mj4If)a8{%fK~3At^o@3oY2|q!yUtLB5A{bWSPIA(E@RX$pl)Q)se(p=XqF{^ethv-@P4&N}PoxgB}=C6`G;X{|JQOBBT_+Y_7$nCrYd5f`5Ut)55-(M9u6;->201P#k&YqU6cAmVe3(hbp824@o5*gYu`>h0*Un4sfV~lSrRegJ<}JjO zY#^!v&;rHy-1)Qol~%WC3%o-4hM!a8cE5uWQ|3K`-aj%TuQM*a)KBflhp1_UF10{8 z^Dgwc5Q#$2y67+lj^^3kYqkVqZ{enu?9v)DuOrPYuE?5+EMe8B9pk2t#zMZ8#~=lJ zbz8E2wMrb$ZFK^yXD<7rXVCk_l%QRsaqIrU+g1OQYBF!fG&BF78xy^lsP@IQ9u~5M zsq(pPurr#{JQh-id}SPq9C!FScbBq6G{^2r-o~cP1MIi!&+hJhJm4k$57`zCEnm&W z?{QyCL8H;<${tjbvmyISxuhIZOE9w6=9R1K*C` zAAJ?v)gj*%tz8;_1lG3DLyrCLHb}f5j|@EL*hf_TU)8fY;pk^|xtDRigDHx;Tu=YV zkGTn{sD7WQYu-EFt#e>dKaORMr7$MiBy z&6^A#lg8Qa7c4Z+sEQv4zIVq=MYR{P>C#nMw#~&Aw7kxP{#X2}|Hbba^Ra|8{dQ1$ z-@@%tA+vT?w}Q~ML?Yw3Y66vg9{t^)IRE1<`_#PkQB7qD`_$6=Q4Q|_nZBa?^?yIy zu4|@+r2k_Mx2svrBzz^>&E}#%Bf%8`|NMM`CnVw+Wp^p+vPgp*X&!?+fFxF-WyIwU3nj9zZxN%bn(FdaA2_w8b+-TYgI8PHn)RV!c-EcA z#_RgPtzTManQaKZ^~>WdBMsqmL-2pNavGA?+5Xp$|Fxy9+5R_-|Mh|IY+D<~|N7(q zaOE^SZ*^PK5Iv}0o|i&+lz;xqak^neB1`>Pkr*#5F0$S{?sRL4ZizB>regZ`*-C&42&A$k9yZ%ee%>2 zk2JXc8d6>jzJG)3ui^ClyK)~MMvcC5gY~c>d25MD9$GIO0;84~;i2`k;q?FC;PEi9 z)N#+6_O*kK5bzgC^t zsI@MyUJdh%dJZZ>A>fmj$j>ZY zN*K#u^Ms|EW;q$%%1~rDV7}&rKo81VjSto}n{giJ8v_1OiF&q*c`y*IAK&`NSMS3% z0WwzKg(!g>Xw++4tb6#1$?ltXk^YHK=H@<`NYDPWd&27U^wkq~{{t>J4yVbTcSt3B zQsp*p-=zP0BwM7j`me4S@YH}=8?N4Xw)n+q&)mGa-U$~SUok+im33 zJrx6Xbe7W&%fGC@dh?lSFBU(0F^P`Xi1aFZN*G3-Y%yykp(JIWvg_O>hCBYQ-yAZyLaG!Y~I(!N=3U|*7A9k zZm3(RN3MiH(QLh~jH`km%5LRyS@o`DB(!L=O|t+3lzl7GbwQL?Ifb9K=m?7LOh~rgiJ0vGW%~)I#gUggFc8ORyU9RpfZg`Zgei#Dj*K{=pM4u{wsT>eY z)R{kNxxKp z!8GlTlIe7ZSm*oM%8$Okd@nWuP6}1 z4H~ENzrB6sXBz8t3-}Vt z(%a*6Fgpvu&tiCL+njFAP3|6alD>%_JgpD(9nq>)-w5|Anztg&E<$IvB21#z%$ENV zlN0>4X4{IsPF!dY)+ywP305Wcuf_+1-w+=UU+)&FD@WZbDlnNkrsaEhcsr5k72R|| zr*w1V{s6z`Et5RGy1P&8w1_`7wC$*Y7ZcO-eO~tRjs@?PKNbxhp4+cWdXy|tixX|1 zy6GZ1qzxH3Bsnd)c?%znB>q^vQtfpr^4)c@Wf0jaU)5z^Z`3-{2(LmI{U$gFPSPP^ z9upi8Zv>NQPrbvfj^qeEsr&`2NOL&oRQ#Kkre8hR&wj&M#@ezO`;oTAOR6NyF98iA z;j3MnqqO1LYKU@v^J-x@6Qy;G&WW$a?wwPkW3rU*5mi`Qmn!uHB$S(WJGu6imB|){((0m~{rk2+tRbX|<*k!Xu3O!GUH^UW zG9jYh*&eh^8s2Hm3+)Rg^kQ`Y2S`}NJTe{;CN_NEabLIk?C4k4MRe=%x8r>>c}bh5 zN!e>(ZQFviQMNj1Ec6xn^EJ`zRS>0RX#4u0@9!rjKd3ge)he<|Nvx(qWVO|yjlF7G z$Hr!R8=|sfVw>t7P)7ruE4QP@Q|s3+s~bKvcg-A-s%Pwi0H^u_gCRS%MM`2mUXY)@ zeNf#+Rj>Cm;A+h3K4iej{skSohx^laSlx;aHrdSDie$Ypxpuv24gqr^133`_a-%uGllyaq9ROj&5|1% zya9CHO-PuM&{^M~XBnW`@=`eJjOvrm zET>=6i_4sFOF(}?$7=aLHE0YbJ#*r!Va_6dy=i-HkKJBQ2sN76KKDX|n`alNyPeJc z5f?}c5XTQQINP0fgB}?{f2aLm|IP$YcT1YnL-CL)1!au@57Rwm%rcwywC1ezTmSaLruk@w>w)PT%1CtQ})fQ#si%h4K8A#dAp(LDFCe1X-DxY*&?adCxu z@I^ew!EiX8>n}q_2HA&yU8w|TMP2`j8UJtYSd@r58{=VR()1zStu@MXhZJrIbBjUqNr)tv+wWO zUD`?nPqXNCep@1%c0Kx8Q^@IA(#o@Ee}kOcko|v54{&})J~TZQqj(K0ZYVjw(}TC^ zf#1$r`=p3`St{XuN66nubzK?0WKVJ=(_zLmy28*4-cXJ`UDk_ck@V?GPnn2^kS!zK zAHPedKYq9D4bC2Ccm||Tc7%sfA_|W3?c0vPRw!-7#o{4`)ar36wA)7*a%dZr4>+$A zc(0MamTyt1vefC^ob13|$8%66M%+-=Dc-CyGowe;oL)A*b}j1~Z&umbz9-&Sxj$|# zSyd$}r@NeR&teSrd9(%pP5q+F=kA=LzSE*PzuSo3b_w~v!CRG#2IH-)v`R$%u(k^V z>oeYf`o5H}|Le)t`7tCK5eGb4LZYmfxp3$s?TWwHvQRy@v5Ms1y-TOwy{jBqx9+#I z^w~373p;_aXKI8G>T-ETJp=12^FmM=F00^epy@)jFa)kFy=y7^{S1sf``bFr%-_$@ zXYs^pV;)C-rwV~Ws1Rk>$yl(nG!(2l$5!>LW=H(&YUgFutkJxDsFH$Zs{XiI6->kR ztLxA5yABoKU_8WX`u`w2z*?yfM8aN=3 zvaRaFs;a(WI2o!*!vk>|Q%ycaXJpe$ZeK9R3zIy%U@b-hQuTC9~Lm+XSb z`M=mkJALCWnRi!AumTnPJIMKcu-PUV{7`|~D7#{paTTbo7zBP7R^Po#x>%vY=XT_o z9^F7*ws6!_*2YIRKu=%z?d)$BU;Kg@*6Pv-_Ufvs3_y(akqEwiy86P|-_Dlz#xLk+ ztpI7Rod))fW()c`S5=?S6;)C1%PpQApe0SZ&K!v|<%dyol3SlYHI1^gvD|{21{(dkuw}S7J8d&WW$6(sg4Ud zVe^eHRlbP!VxpDL4i=H&B-=$qWv{gUl5+2oW!UeKeH(Ik^L;-IN2`qpU8*hy2;>qy zdFhgpik6EWxJ?godIlpsCv7k|U#fT`SFdL2OSCnRqio?n6@NS9Qwy}NTjbCH--^T662r4Adrv1<~=oIv@j2I5uQShse0#0EzYlH;<5{{sTW9 zn3o*n32ro73J8viRl4)`S9e`XmO{+k+YkRXC1G%ULPGrDxU_EzQ@fiZX^ZPNyOfK( znTnJ+#D3p?GtD>bgn?Mo}^w=iqzoq4dR zI-F!g)S$;8jzfyzI0GycAG6G-i(w(mqf0y8m9-E|7tOn~l&*wOfWEobxY~uoac8UY zCL0ah4;Rr7cfjisN&ld10rSQ2hi27)BJ`a8)m{4f^si)XHB4(QL$u>ut&Hl}I}}iz z3g$Nq!FnCe<;|PLveuT=fwNV%iGD>}!g+|IYb=w+9Wa8mqLc346`!b#jHnb4@4~`6 z)1klBAE^;;W2nN~1{X$%J1mpw8i<1Pv}F}cM0L;fJB4%$qAEm0sy_cZ4%1BtL7QR6 zP_MqOvqnJd@Yl+ht7A)BWRehNz>KnZ`X-#qRK6o6crJBzM!sUe-9>lHruSFBZLx+! zxel@dHI#eNnH=%bgNm(2pHf`CT;!orf#trz;Hlddkr<14(0J`HB&z-?ynGLn;w-fOW)Z1C#!FtXp31dR}UMup$~@s6Mn(R z&izzQaCrY+RUe)`JWzeHZJ3=NAcg!#a?9v3Cq(TTr9It5j*13o)=6o8C(?#D;VK1Mm&l_cxsBDLU7&`eoo zE%^*A>qL(3RN5mP@&Obn8D}j22>0WoH=5bd6{FtYm7u5IOwB~vAPH(VScb%MH0f$2 zR>hLRNfrt;InqmlE9>!!bOpW@ncf(gY{nKv>z`;OgOw{J0?xAC-e@ct^7-eA|L32R zp9)9>iJ+GuQr-Nm<>#Ld9f}9*Lt`-8t9!+%5UoJO?=3;rY?KH9Nhlu+G%nVi-!L5{ z*`A8u+jf^@=_*gl3*__mbn*h*j&tyf4KUlAu!^^WTE*n&s*06PI8-O5wet^afmNgU ziLLIW6HayJ1Xryp^0Tde;+(3*8LrH$L;R$w65<>*3UYgud< zGq&Zv$^HNrSW0QDC6_Jf%nO4{EE}Dv@}wu0*Iq4;?VN^Eh%P!7c!95+E$*ureSDo- z+^u_Xi6KdZBbB1&yd24Gg@8rrBatOXG=b&)<>d1JS~Ow*d^43;_dL5VE!>w@)bYgj zv_!2<5LxmTEZtO1;3_$-ybnt*)R0zhWN9@ctEa@Ln9f+0&Q%r-WQMZJ@|)O5^tAjs zip(Ojl$D~+a?f&4xG%kd4F}y$rrVMeA7!O&@Tj6w<|A|Uf-mnaGzrawmO?9(XtemI#DqixezODcFxh_jnR=CAeQrJQ zTXX*Uqf_yZ{-^BLNvY@5M{nUT-8J=lb`!t+ZWd34H_OW4(8-gQh+_Pc_urh#ev8YG zPc6P_dj_8sPra$iQbgrR&1V`DMt;Z%VvG>;#5{VW;v4ZzGErG?@nQ7a)3~a;n#jhz zU=ZhkL5Z{Mt;+F)uv%4CO(j2) zAC&+|q|d;3@)eAy&sc7X`S3FBYuQEnB93+#LNd?1QO)w3Ln=l~c;(xgi}K^v@x7?< z@EPp`uZV-;722npnnwvx>7GIbm!+Df3@bk!M1;wL4y3TiDMSVgMDdW73aTg;s$@td z(0t=YdZA(fy|8g3*V`SM-I|_^XRe}NN@Y8>T6{D;EPE|`p{o?e=(eYERYwBLddbsr zP|QXKg{c|j{S3cxDO5=hQinIk8U|kCh~mG)8Q&8 z`Yen^C{TITiccWN2Se?4kl@4j24@Pa)dYiyjj=(b{Ji|1Z<{iP;nl>;Z%5m_mT&`9U$s`WF7kvhwr_>WRj&V6)8pW>gQ_fKgh zWcV1|TpJzL9Sb#vga!()xN2VUc`7va_dDnAqb- z0Ig2`nH>mVVEDm+2!J6Op@Ct6#wOu`rX~?d!AT)qg1dy|1?Pq2M2!v}9WpG+YY4C{ z%8|&%gv}n%o5F;~z&WAOhJe4pD8_(^d_8;Y*x5Vh&PvOsr|DVJ1I%Dpv$og#jI*@x z&E!W5#P);66b``X{!f~}WI0NK5BSTSk6+mEUQ6$Vi|GKEHl+{pqhsYxIavAttx>e< zL;GTLRpmA(wvI3+BwM2!J^IXH{vi7C=@im|iO+SR&vrkwcxvA0DI4Q40 zo_0KU+KCJs*o62nlT1lIY7>U_^9GhNwg?sU!jR?BDw_y*o5L|1ElYa?cL? z3fdk#C~v37NP==2gM<&aXD3$*0T&>3@GEc`1W4y&9ZKo@+G6> zpq4d*M7_f{L%v*;t-~+)h3ri?X|y`uh=`ae85!ul7xo@Jc+#=aqhJi(JQ+5xPfl)P z@-g(!+pJvF_$VbKVq#~`yiOCSi)vr6Y|W!6cb@8qJiUqgc-WGHoQ0v#q7lj~bRjGz z(eS>~3QWp2=s&f+w8MFi|r2S9`+hB)s6=r@(H)qi-x<%t- zc@4HIs2bD-x%mZc$zkLp9+8NLJMS~&s2CH$I8FM&^0jz}E~+>z8ZCdy=YO&!GaP;r z|0`JY-H`r~hE>luT|BEC6oGEGoFv)GDQQ@_vPHQ8f#sx7wf7?`uWQWmUDRi`(-`mU zM(GL@bb>M74+UMvL`&x<9f65-{fOIJ&~Ci|LqWg!4y7+2KK%0j!-u6`ua`$(TQVD7 zBYWV$oQf3`P~&MZRry+|O+k9Fd5J`rC?9Nw4XErzqpwY&XX)we-m~V?lHX|wT@SaQ zALPML>*!DP4w#lN5ns1l79%T4<@1(r#ZZPb+DOFtJbF8BthNkB;2#6rCWD5;W6GB_ zQTY-cBLnD|GU;Q`l}BSWT~=OUc}H@3e@1$n@IFCw;+Wbndc&iDk($7@8=Io_Fmc4K zt=N1Gr7zI`ZN3BKl{epf1qr@(T|STW(i|m^=FE|1D>O)C`p$x6la4xLH6qfGdJI0Rfq?;rhJU~Hhdu@8A)=^zcWl#?)kQTq!Q zrWsR=;p#qNC}FN2$@jSK#ff|)HU7n*`}=X|Of_7hexse~FZ6f(ehwZ5g32`wghTzH z%a(%td-}k}y(PJ#LYiE$PCj4pq13M8L-H34A2N8^S6xE9gH>7TE(k8ukOpg6?yRgp z_U}xI=Cya|>~~A)YZ|KnHP(?PiW#cY1Hd$qH-FW z=*`%K#skSt`j)7v*g=At?TUH*!**>4bzgPjo?ZuNqxg79Nq+XpUDT6qqn^7~l=w$Ce*(57Etkc{jiqsmo}rhhJ|hGE z2R_>t-yr>R=l^dMtc36ApPJ9VCSDDKdWbb>DQ z9pzp6HW|Mqcix@(<6wSH&a_^=ND8!}C$Qx>0c~J}Yreb33;XuH;MwR=wLW$rpG#F+ z1w8mtKVqrnd#IoZaGLr`!zy-s|JS9nm#|%^JXh%geZ?`}T2d?s$|w#)L$-Cv-acGn&u z#`rN~4}N_w(rUkbi$K^?Ei#wCh<9L6i2Q{F)O4v48@Fv_rOd$WIlOr$^1{TiQdsTQ9< zA*PbQ)#vIvSJ*{=z$E+Sgm0B7Rc_e+j=@mI;{^@_9skD4dg#~kTXKoPpudv8)#oY< z@;5$h4E^Y@-@-p?d-oLDf>4wPKAsbJRkJNpBiKtZC;12_toi?;dFPCRY!H4Qa$jh6W8)Yp1yzji{rzO@)-Hd<$dxf~q6%JSUWHP4klF`V9BHM?K$d61Fa zt6$0NY2(JOJNDtaapR`V-rYO9H?*JEyWgx;!5K3$@PE&Siu2d6Je6Bc|NJlgIj%*^ zxVV-r;=unTNPi7{>gx6L73=pf{DxKDa3!e6Y}~N5M76g)+za@b4NJ}aSYk4lu6eEF zM^Cw$Gh@QU6~C_dYG%&WDWl_C=RrbJ^Qg5cPj2lpB(Hyd*KMm4*G4r@l7=mQ>$M%% z7p>0f(j_ZvRo3c7*LS@3*5XkgzqO!J$n4WdulMYo3BrQ6KIXhfadb5yZ==NbnH-8+ zH8(krn+k&VY2UVrxlOs^X5&TIe$L0mvHRp+BMLIG)3e4{ZaVf#yHe*3|cBL4W;w1(G$$qgO$RXg>a<39O7oMF{{_8j38Gi06s3}n=(|H;hx86K!F!J~f118e zMs+zw77kVx9pZ8^jo#3nS8KCqvKCGICtVqpvj$Vd&5;mM%|%5HWoq96o&2 zGG81PNgr8+Q8xF7T(7FJjzR5fWu}g~BzUCJ`l!$S1K3(+=4u^r%1 z4`;)7LI~cs`XYG0kM(|P9sdeKUp8As-vupU~|*L1YaMfFo~@Nuqi8klP4jQ zzKQhUcMi6c7cl^L2M;jQi}ZIm29y$-PTNy}O7S_m4kpueWS^sgf!$Z$KWE&n;$|_nl7;)&x`Zv%t;CJljSFU{i>E+93U>5AA1L;b-g7$|! zC%+~Z1Lf9|kmQLfjpW8IV$z?I}4DU-DD#!8X z$TfWaGRljWkV^Y&XUM;BoZa!-fYC{)U>0J9WTCy#P3R>oVm@tTg0G1kQ0-Sx-NDx0 z*58N+Tnp8%4e@O1P&BabFt%T|RujgoLpV1QXdKvg7&Ztf!eOlSU|zX^>G){m*3#0gQc5X3KBTcu z7chi=e54J5=SoYTBgsdg?T`SSuJI5^Elp9TZP?(qZQC~a5&WWE@e6WR++MNbHo3a; z)`}IkR`PEe&+n=KG|u5d98k7@Pg(x5eWykR1_w7TJh^{a{>gp&%LXmmS2nsyaB!2+ zW&4&5qMvVLeR~)S>rn4Zwm5`$Ug&uL8EYTgLDiP_?5UePjOvNo(ZbQ2p2ZM3ZB}|a zt%mn-pl&Xt2#H>$w`NYiL66g)R;>b4r%p>Av-Wc+E2M+mR=Civ@_y9QVAb#PRij00 zsjHUVz&L`H<{~{!$ANfy0{)$TJ-x6;kHXb-D;+BhyLx-Z%EPs?4@^bCDHleiu}zEjAnCtLFD*!ePaxM`6Gd7{iQ1 z6lfNYTHp|`XJ6LW2AIZr>Am&hTuC-1|FtYVLNEC5cGx1uJ=-WnhDy_yORI_F(Y$GlaYBErY$yS0^{RNuK^ zM4Vv2b^(?hJz8EWeO6jtEI(OZTt_-_TWLi}J<^e)Qp=Tkq=VL_$myEW8Ckjny-7`1 ziWp*|8ep+K)5W$&kJ7HCHY#c?(=nZuiaOI-si-rZm5Lf^kR8&Mmf{nrN+YureB9gO zQZfUD{z*0dvpwe!)I~TjMJXI%NoZMVooSR!b*Hh6a!P}^@ZIVY(1$vrtWr_M=QGGQ z@~-?nf5*w@imMALO&s{w;Q7zaA1r@=rT1iI23a+^H&43>(|*I#n#_F7q-1|MZcR%z zVOp|EnSp7E@CMlin=q}+-}fZwwI(xLAmokf#+_l;ugl-i_ix>zAAQ2*);X;{Il*5q zCMNj45w_EK{W?DDfJxsc^FR3nWu7V9Cb6?l>$$Qj?tUC;>>{7T#tnUsFk(~>gP+#V z;C%)pAJ%$?&>zV&p02OFrEx>AqCe;%3QY9L8zU#u3OY!z!69FAzY5{RN16D+;rM&M zbJOSM&5)ZU%FA`l7TFDiw?HVtX7R`E!v~how|M?(a7w&@{s7~TkH1V3bw+&zygHEn z`Gh!9xhQ`2)z{h3>KqBfSdFI_^27_+ZnN~ds`R^utLe|8W=S#zy;T1aR+2+xd)N=zJC*gEkKD6o8ttqu_aX?M*W zdAra|XvJiVcV<*WL>-N);=vYzVs8$BHvoxn8VbcTwBUvQ^ZNJNyN|vzXX3O+$9+|} zxp$v_eP3)&PoI13APGp%H^WqE7^KruT3lVHbg?R#5N40#MZZ7JICHG zR0=dQJNau^%eU`ww)6^bn$%OZ z1CG^M80$n4ThNpV$!!)b`mF!JL4(uwwjG+>CMACQycvtrJ9X?(+%vbJ+o1d*`6&DM z77*8OmKgiyE{XD`u6-bRf>+D5Sc1tE{qhV8T42R!D}vwkIO)Tj0v z;|V(zNe_G6N1DMY9>?;iuRy)m5ue)vKnw*E#Z%?cY~3PuPxXf}4w#E&#S86N&#^<0 z7ioJ{WwJ$v5yk|Eh%lace$H_r%84y%BsZryS~5mr z3}Utbju`Ve{1lxb!p>-S>o!_>qFN$<--4sMzqIHDP{{S+-PaPvsJb{`8+X0lE% zfD!-MC*P7+vb?k}7nmOLfsl zs_13*(nRI6jTU>~ke-_dUY7}AzrrKZpK7FNp3HNu`;Yw^Oq+?XrvQMCZ!uaw=;B#SOODMoMJuhS=B^ z*J;?;L~q{au(2#EhtxqH|Aobch3b27u`vx{@5SGLUp`+zE$_28;g-AXy|^^ZI-Z4% z7ukcpj}?}$NpFXhm~aIOKmAmFGfuK;HhVAr*=HJ`)yF8XcjL-V_Fi22=$I;}*cNIw zAYKB0?;FV-C>akj8NIPx6_;sG{4IZ1nZQP^EER_;1y=tHg>f(9pjEvQmXW>J+eEjJ zLh%(vUT7&IH!xja#Ffbg*JxjL$c;L#r7}cJjGwRjW?oRBxC#Hi>(V=VF_h{MQ4O{{+gpi z%<7$-#8-V|b7KrftJfy(hoZ7wVe8k0l$2p(v-xyM$h!4myH3NH1H(J{k}rHa4L_np z8@diZ@Y?XM^1V-ALK(2opZ9$F=^ikE1nw_=N`G21=*cGsEm1aX7_wx^5Vft-%tl#t zz{MYHNu%O|Eq6jvjkt6IU%S{RSLQBnVIpqw9nww+}u=dE3EN0@7s&!cqG}n z-pv~I3>+F=qr$K<1vGp1Gz}l{o8&!?*uRESc%X^K!4c#Cd8a=-Q zJgteuxz)S>R;*Av09UN26dc-Iqjmh1mW^Lv_9_W&iaPp8LX*h{o+Yx^dF{?mnKNgK zvX?A`U}#0p(ChT_Wx8wQD!~ z=3FQ+nz}lopn+ei*zuHdQxxUadx7Nj+p(i$&+`noLb{0ci=!=JtNJl1_p?g5sj73^ zhiLsH{k8r^vusWl3lAK7?+^<1$`HDS7BZ1Xfqv%8lTAVFaiEZ{^Ps=J}iQSe#DRL_y0b>{rZM>#kk&BhiIr7e;*U&smef;7=+t$Z{K z4*lIPWgeV88K`zB6_9?5Wdc&)zvQA08nZ=$1e7rHbZQ{a3}G zOX$%Ol#UVyd1fo@sPfDjNl|Sc5_yZ^o1jXERiw`|A%?{$%r;pNOX-k_BS%kCx>72; z>}c6?N3wGJmSUG_Zu=c&+7Z0oF56a_rcrduP893%atFb#l4<1&<&b9C)%^Uc^xG=Q z=4I7P3s)e0LY0Pc2HMoq3n`&a3Th+9QoKW!v86#m;&;TwJ(v~_{^9jgvx;>jR8vq8 z+6aO)1Zk1k*gMt^N<-*EC0~k^4uXmIY2*=aj7vqeuVFuPq@`j1{HgYL46_ks z7}F={QDzhQKr-Ix!F9`9{%ZX!G>T`Zt$XeuT?@sNe_VI{XK@AHW$Ptg2}v*9JXtYM zyYTvone-zSu6zvjmiPN2TwiRVc%Qi^sDLq;l)WSqgN9HZ68+)ygh{9Ae__BlF}k0Bc*iX02)mWW=atgsu`#!2%sxd1fG;Fl$4LI7`bP%t z!SOet{I%gLBoroA(5rNg@-2U5C`dv@HhZHg2^QPf$TF-uwbkN|RcptdFfJ5+viFfn zfnIA=tp|+krFraCDsfvk$=d%V4MRJ6mydO+yoEl@Zj?8F9yMd6D4EzgxLR{^>qIt= zQS#R(`^!d=aYw^P{qXsJ$!G)Q^0oBjf9MmJ7PlVOVIGvil4n3a`^6448|1O0N6ef1 z!@LnbE`hyfT}>O)?DpiYUE#C2uZG+(dwIfG*xn|Y{*iEF1vF0xGQpzJ|Bt-y0BGv? zAAg_sUJ^iogph}9#`u+WDf!up9clX)j?mlnJtyy_9eB}`Fl4V|) zHlJZV>WS@4iY2Z=>6eC-z{l z#gX7YG6gv+L-vk~AwUauOa}61gHR~yxfM-&F5?U9me}+oSJnu>!>b1L{LMyJGQ>XV z{@8N*v~7~r!M{QE0b+CX`iFq6c>yO^oys0Kx{K|%-SUIVFu zFmj7j33`dL^3j2_50cP@ZXITiW*1_Pp4e%2!i*H5*JxOyQB6gy zp>_Opk(V%>=@`xs>=)D*cQ|0s6xwicTrv~e-g7148Hox=Zk26LiGm~A=mkmP|6~Yk zcI&03yU-1jlEb~xY)Cf@-N+h*kJ*nfsaU@OQORwubX=O>r*tnmcr^-+pTI$%@L3lA z;5{%th>o{Z8o(3WiwtD zfo#q$+&5|vC!u}g_>{x~agKZTaQ`%i%xfc}?6>Mk^hBmij=S}Su;Vh&F_mH%`WAh; z1pQ#!sn<`~odK~vK0~4Gem&LEEB$>HgAd%gVJzLIr`mI+cU^CBryiXfe;&h~{rF)8xg*nK z^(a>doWF11f6W8F;hUrD@$pH9n8tNHrLv_nI?MeY+xm8KWF*LwlT%aTUg?E-MI-J`u>B)cs)ubFc5*T7;sVArvUJh0VYu=hGvEo!5=IO= zNtnxj8lq?x*M4i)PSnmk#lFmsm0YHK2N-1%b}*7uVi9^REkK{7!IwV$8wUT=qsKpJ z_1`^v;?I)H!-fqTAv_2D(OP!&h!F(^G}be*izKZip^Oy!{=@?pvmz3emSRmj6&$Un zzvZ-A1?46k*;YU!0se`$%`-cBv2}$T9s_#htnAovW5=O$8zs-_y!Z6!y?HZ}lAr1N z=EvrVZ98^s+onSYJ}4zSBdujhPIh$kn&99@32|{dz__Dvd_tq0+P=ko@&C3pVA*lv z3vd^$c>|uTGkaQh6p?@YyBKFLu|tHhlCuO;5D9AR5fL2ak$s6YC+KI{&qdY;qO{6L zGWDh)(V}SxyLq2N0@Op+U}&03O;<7Cq~Zi{Cr-{n7J=hHP>TIc3nIL&`{ z;DDGH>Ce5)?#B1XOJG!>2X;4-4`Ay_79BvR*281;86!KCy(+GmD)nRo$g!nt?ob6g zbTa$K0en9al3BCE{f%t?Gk%cVm%B~wV}F8^iT9Jl`&-#T^L#r<(hiiFLnN5+9E`$` z1K>LMGCZ~(ouYJq7e6zf?;)4@e8n)9YyI)OcGGKL+pZb$T&~h<=WW+8|yahkhrnSUale>eO+%qk?w?$G}QTmSFkYxCi{I1lqc@i{!^ZhGx&@tPy< ztz#zn&J)&17L~*wkfb@`=jT#9+UEa#DV(7hjvt91!PG5^r74hZ!Qjk@sL6 zJ3u!)05cHl<(bkYbR|Nr4ObYHq5}I@3ay$^@-v0I!Y?hLOS{icpm<0J_ykyA z;S8HF8=}y=JN{$t{e1!Z2g3@dIR4Fve8e=&})z`gr{paz?kEMS;y?=MmF>`v&)3oN@#)E|Q={?}7GhJg^+A;aV) z=)qL|UAP50=-vF}MfT7OYy>Kn!)3Sv=aDBM@JGdG*bChB>06K)Yqzy%0_7F4U$O&S zD&sMb;R+M!I}t~dBpYw!lCf{6(dzLKd~fzVFeN_(L&vC-pO1Mqe*|oJoeM&HJ>h%! zmH+pAVGjCl0+O=+|Dun-|7PtTGk|_RyKc`$cpYWUT11@*r$Pq4n!Mk5*XtOZow&HL0CNMpw{bSx#&8GhuY%5DX6- zh>>ihWLI*&JNNG0$?f*Mh^CI%RQJVY2#_z7e6q0lrg5+v`2GL>E5xJUKz$D7qo3x( zz;kfx8oNq}65eLpvsr8`yRvnLaEag=+t4m}Y_fY+&T0Ju#qs_9G+H*0N-E!F652X% z&4;fP~rYF$cy)Yj}!!)*m@D-)sPndp7sZ_GK2h0op z8Y}J8hGe~#>@-kg<^bVu;f4Y_1fKkS(uOAv+=XM~4j+cEaKHlKgWmoeKHPTaF8np^ zmv2V=G;S*TTI9Qd_x|zt70K&HPs!&r65bm=-w<9aj?5K#~8bx5Ly?6r^)9irgcFKBk*+YccLNrg*n-PEGP zdpUFreqkAIMg){>LtlZ~Q@GB`U&YkWKDm#DH)zM*Z=DgPn+V5J34sCx98ldG^$giE4G-(^$ zWRIfp7|G8;63hI)R%pb2`@-*tK_8+C*a=t+JK5M3D}*yvdVf!CN2tYin6xsg3ygZY zFEcqxp_TF$jzYX}$s2Ng&mDy!J3GG3qCyw|F!1Nw@Byj^H^2B=KYXagSt z-y??Yj5dHbcPM1?YBYoeo_&6H&mR|ybH~0SV0`H;_`-TbA0ZR*RnKxo4pCZFlq`xM zO(_F(7L9{pZ@dX;@4?O3C`>@7APD?8FCp#?XgGStd#sFQUqd6%U+^r{KXeMVq7JZY z%c&31PiP|e!V9Be1+X{&hQl4UtrBjCIGl<3Z+)r#C41WCRG&tZ+GGA|6~CS`LfWZw zzjH~@z3VObO}N88&OcVt5#2g9bL~I-?xNeX&fdU0)(gjft1wJ*s-cxWIFOh6nG*fT zo7wbAPR9Gm6l%KVTVeFm>DkWBUdv|LJ)5?^QLqC0%8>LgM%`y<33g?Vz#$kE%r0iH zv_AYA`eGS6#e!)e#BBU1UC{E%?4fAdR`l^lCV>yrUdeoEdrk+r51=679^ANG_{^Jd9)3T| z|M~s_wDGggP~I8z>F=+$=)Ga=k>Ap<{Qa2msf+^Q6w9*7Gue=7lThnl-W@{JU^F40N7!(S+V<0`H3lljIA+%x!YQ@6tW_;PWHDnUB8l)Fus%tf zd-O)1qq~rmJ#Yt1=Y}*umkZG6An_CaV}s^k9UgYORnF+qIe$OKh@gdVh+4>37ZwZzyl@+(dR!KyghV?k$m$yd{T|IhJluKzj|*2| z1GI)tue@Tl@uDsl@s>;~hm_iQt-_eZW9xo4>80~0uyw~l6{N3Dz=r*+?*R_#hoQIGbZ+eqc)lnMZu7|{r%=h6A^@%p*9tr) z=l+fM&h0;N%+yX#?m{UR+fji17OT(auOY84#aa>)P0@j(5tegg^-U+$!q(%bKK>BB zb3Fbg>&^P!8?qYRK$siZ-n2)!N~%)rSJ}V8XdaF1fUy7k6L_} z>Cz&b9yDlGrLj_!Qlipg-e7Umg7x4v9FJsw_|d9AT0vA08i)4qA#-Me2W-L2clC(y zPSMfxSWB;$Uxv>D(7$L!zv<|v)dyQ*iOEXGFvtn!(!eB*hqW?hL%K2dJ1gPt2zJo(Q54gSX+uggNfVo#^*_>Dw-rctsYmGN|7LoiT zmMMt@k44VA6Wv6r3=o?uZwdr~KxG%lyd)@6&@B~73NGiHBPYK^1CM<3gf>G!bf}2suB<&(SgyZB?5jW%=Vtz?Rr5f`UD~aMTJ@h`9 zG!km~@$~dKG*ifR(FUvo@w5%mG|wYZtxagHRsn2ZTnD?qZB(cwO7f2$-X<{_BG@D; z+9i2q<_lxb<;_8tAV?h#ae8=VC5yg>rYtnX`1DSYYYSSS&po+WsTmol3-VW~;AZ;~ z^5y~K9!D?EK8n5?{L+C#0}U6U8}#ehs@t}=E}k0#QXCYce?>Zv!n)31sv&E-mdeK# zRqaQV0G;Od>`Y-QmxN+bV=bgcu&Y;~<&Xt1NUHhT{0!2=m2bYg$K2TmdB7e(+eLbb z{l?R^=|C~ROHUt`>HP<&i~fai^!FhbW5i<}T?hSVe$mxHyk(p}EawI5iK__o#bsq+ zG2qeIu4Evzg#2d9h3gM-Oyk$)U+hQyYylb6inD1V&S*-y3{>n>&<-8B$FR#>bUzL4 zH_xgFZ!+GBH{5q*IgpINp4!zvizpCjWk-?mXutkzvtU2Y@#%ON>-WG;5HDgCC`qdNg|XDRg8!de>;;_G2;$KIk6W4QbexBZCUwg}nq> zVdz`*A$DQHz_c6(Kyk~_Npu~(1qNuyswYpj=mIjXs6(SlHCu(FbJI!{93N7_94vZO zNU3Zhyf_b;(xPMQJLy<=XG7I3A6ovDWJ+;LW4;#FRWd0nO?p~sg88Y!dF&>_9Ryn2WTa5aNUf?1* z?DXoD8cXg6^i*y;pyntr1eyiG=B3$rUS_YH78|u&+h%p>@By?V+IB5!4F?hW?2R4V z+Lj$L?Z&pmzGnZSL$O-tEaQqiX~zkbk6w>j__6f&&lS$W!kKsXRWK3J_LI5DqAh$G zTRIzwTlh#Qoe^3@ag$xqykyZ<_AIGW(afy0>1m~n#U@oW7j`F(MnApD?yV3p#7KQq zAyTYk6aH*a*0z^F0q%&EN7XQ*!bw=I$dm5i;4mX4D@mRZsh351R*r_F5O`tLix(k~ z9a`Ze4x`6TpN5@xLMoU9E7s?b`dij2OLxMnwBqR%OYIAV+(gPM8Ix?=;GvK3X5X}N zn{AunFQIqNO-ep+qIBy!`_hHTNL^=Je8-i&u0nC9#0 zt!$-IYgZHho!INLdysGeg z+nc4+y(SkYE6%2LTH>VG$?S)CE`PRb27%bK!w5Yk^}lmX(!gZJqh&TMnTtmYJeP({ zW2Re+K%c-E?|8X7b{Z4v=^f-hEllbi)hZ%7FU}5=nA9RGsDi>GH#EK&g_$A7yCLR= zsJ8>^Y2%uS{6HC^GLDFJWD2q++L1BZ)~hGtm9ygwKA+&+nM16YF69w)!HRDWg6{@Q z`xcr2g?EhHXBtxv!>67WD)o+RrPbv%w1@ASnLy_k6dJK1(hoCwgI6`O$hYMo;a1RG zvpS_jrOa-j3~o`iXUNNB|njiq|5SUQ%z)BM*6 zJg8-`{pSV`hB0VqSQx1!d!|RvUAsa<>7XT@t)unmzPAHC;vF1vkLl5q9{KK&6=JFV zSa9!0*&WGWOjnWtww~)QcW}!IZ@XjPVZd8<_1VtP(_`ym**M%AdtN$Y>XqYjXTey9 zdB)Ul)ikk@o^1C^NQ~C?ONYRo;#R+jqn;i9yjTBMplQ^S5buXvdCmzR1*3UjrLv&{ek;WIyN`wKzd^lKaAuDu9xLmL!yLNMMg*c z2ORWY>WxNA$G+4!{XkAG146LW8~3Rvdv_IaU@5~Zi?r5smv=dj3@PGuUPsCvu$urvKFuu`+2NsE?e5qe_}tejY|9B zm_+oG#~#^Ga+;2Kjh?)4xbz8%0Q4)m%H|7&D<`rkFoR7+ z$&%hB!Tc5TF7}=Pg=iSr{)hXMl6`xUO|(BhCJ5Ws7;%Sbl0s*zERDIa0nj6=is(o^ z{SyNcQUHuFBu75T_0f=AjLxuq!33JY{ie)A7tlFj02JNHZq_XO&H?iK0PM+2=-xd+ z(>A_ezj$#%g$F(z`I0W`$l|Zhu$P5ZQZ`>&$b(s;Mp5#5$y1l6MhMG<)2hg9FlI** zKarfpOrbTz)OfyOVl8lu+E3-r%A|JlB!>jRsF3RqzzdKE?I#W!Ja||k+KK-aK+*R1 z<}Wyi^u_G27cNN7_8UJ4-QM&Dx;1EgKQb*N|FnTju4Ls}Y}tCz^Si6@;6G42`C9Q~ zc~2ybn=tHrqA->nBD};FmF%+sS19~iC~PUTe*YBxzPI!D9lnk7?Z2By{lLN4_qi*% zZaFDQBtT)Q1wpD!N_oo(twdgs<0W&-lu>p;PGecJYkyV$6hE zS|?hpo`e+`*^`S675=oCU4iF4qOcH(ii;&@3rm6v3o#ml8TQ^{G??v6_o$LxRSHrB zmA=JYCl)v{(6Stmtn%@1lkg-u14X37$(Uw^&C?{k@6PYivT=A&qrpG$rwYYFCxtCr z&SdP*=F)ehk$OH7x^vZ&l$C>Dii=5CT=WO#vE0}1n->w>7D~%c`|x`@-rcUn>Gb#?GO(M+k!w|rtlogEXTap2+t{i?BWHBX%b7S*cGgmI99l& zJLL_fJLPGmQ^KDxbzHl4@2x!Ev}wq?wVxNANY!(l>Bjk99}RS*Zh?~o&s^N z{6a}!*H;UB=O@)S78{O_wW&70SYiebH-Y0T;xgoNoUzHodjBL z4vN3Wz~{m&mVw>y_VdD5s0S4?JoOCz5LN5=TeugGq4fJQS_2)3eTeid?Fj#s?m_2n zLPNno|DZJZgVyanL^fnkM(a^ex*xk&p~$0j1X{Vxj4ep|2+*YpdQNq zGNu}yuLiE_ag`_^h#*li~(eq8D$j4`X>+^74Q7`46 zmW{|fAII~|#XhSSwrHW0+o%bPAjVg(vX*NSk698OgS7z1a{U4W0s?ou&B5+sQr)u6 z+v6=~Eq9>>#q8XDEc-ai6|sL^`RRJjMzL&@c-j(Mn7bDwQ7GNKc_?H-4r8f#!W(J* zc#?yoeyD;TR+E*M<=0T-LR0{6?EPl@!rr|L+r5p8%(D9)zy8yezgTlVn`1c#oZGuUOCpDt?_S^r z48l@*V5p^5h=kOVRbmYnE}lBJsaBO%iBX^fse;ug6+iO3=-TTr)Ip)9`5+ z=W!SbP3Rd)vO6K!6ivdFBwN%Z)>bu$5fWRc<*L}EVz$wa6{#sO8%;s^J9l>Pae!aF z>2WZmO)2?E@^WE{>G|wJa};->u-AdSZd3;HQMRNFKZ(|PNoJa1O=vT{#LSU%e|pPX zT8+(tBHeN_5U7tKrye&oK*XsCP4x82OqfILBDO1AMh_W2n4bP4=L6Bd;?Y1fNTpuU zzo4N1O11yQIDJ8Zo?XySArI0QoZ%)Gnib^mpIojjB8UIp@1GAX@6xk@=EK}m(_!uO z39Pw@OA2W`9rd3cC+5!atUF*lsj*FLKx}TZt6FAO;TGSsNMFFrZLyx{!~)X&*i)aM z$A-9l=Bz-Cr_{$wX8xd<9c4Y)Iia+&Ss|OaJFm4YK<6vhW+c4EH74RhYMWz0Nuc=@ znOH+UiM}0+u7^sfr-AZA0UKQI7xOai$-{ITyq zYL%LZB_SPM>XqD{VE6nde?r>ewzNBROrFy9E$&Ro^+S@JlH$vMj>|tPZAN-#Y5mC8 z=$w4S8PTe7q5}j`#f1cNcKivUHT(GiVF=-VNz~neQh)OV_)54bY$0VQEq)#QBb}ep zYVEL`D~XL0OJl-ieQ}4Rt?dTy{N((!yhFT~Iq|KoDUxSPrXI~7_vd9k+mgq{c4q;t zQ|pH#r1qrp307E6q;aNH*%P_6I;(}S_VoU_n4M=wL9UrSIoml=dt`i&kH1Lve9JA7 zGUjED6h>Z-ZQ*%4zMv<5CmPy>Yeep_yJh7~46ke6RNW`u6i*$OWleaRfMd0FdRi-l zR0k%zDs0t&t-?!VUSd~d5=+d+9=6YlLXJ;V*wm?EYdQ}Z)Tz^;A)Vo8UFg)Qq1FOj zVqFk(eJ(&L$shb)_si9jFxM)U-+sFvyyFn*UX zX+IAdTT!1C+_{oybK5@&UH-#Vb>Up(^55wrft)uY0GIB?(~OgeDzS#%yPKX?GmvuZv3m%bB+HJ7X> z@5sUP!s=g=Py6;2vq?HKFFHGHK!Vw#H-vl~5Ppqa8NXF%BOvU`|B3!w1y5Lv99jc| zP>L`F|6T(pD6D~`?kMh4N@9J9F&*>}sY|kz95WeBq?FuS-riXWX!i%)kr}8#>)w6V zeER8_G;eRA7*4|QDIwao#&D8CT1c!g!OKU|)BHBA5rgqKlg^jqQ6dTSD&i^`aA zkg)3z`jYn+cCj5wz9BE3qLcik(7db=BbA)(v%JGeE+y-E;=3?N?G)VBS?e#8_qNE% z8DYzPl5djJwJ)(v-f@T9^=<8sX}f{#`*-R08`}E6N$ zk!`#&wB6Wgyf|xHCeA0`ss9A)__V&gltg9@@Fj`&(OJv=WZQTQy>FmxOT3TUM#h3K zQfnKxP2%(T{!!X)!Z_kHg|w_97s=N8lZx#IJfH+}d?xZTFF z{x;Lr+GfReJ38M3*l!ct?QPFbqU{d0=TDKgBEkAD6=Bal`o1gD?n&Di zE3$gD-OG00i?$!9ZHw&UcD|K9d^T{{ zy`Low2>)=|HvZ}(jmK?KKEiOjE1@SR%12MkFZHESxGl=ZsCz$>y2Q9G%12MsjqghM zn`>+9kMc9u&ce^XTE5@j!hh%46SRMud`Ozpc1Npz;J>8(iSn@nvF_eA zi6?D~@-Z9tcZx5-ZBagwaep`IeNjH1#rHp^?cSFDuSj2}?I&ovDVEnz$skOh%e1`! zw};UAETHXS_kQKCQ2Y(1?a}vcNM`T@aQj)>o{alHOW`lDz?W@-Zw_rY#^W8L;|-_r zSAPs&oa8#qTh=4oq_gFY^Xr_QXfenG?+=%!!W2p9<0Y=o{=m zybmp~`HqGbC@!m0=d7&GonGhXM#Q~=_Mp9Q#Iagv^F~}m$s~LQa?xTm5|+a_7*9%| zn&tc*KV^xhlKKSe@Z|os=IKd}9kdFGK}Qqq?AYRBWQ5LSHwqL%UdbLy%CU7}Ym#** z-`|M8FV;pTdGRE$tUl@0a+y@dMaT?MQz9_*bII12qeXut^e%M``?rK@eG z*3GKJPL>u**}Af3p3k&+5yiCHyi<5pIOwg&8h_wfx}P4)OcJdvD<$vdA(b^qwoEL= zMLb=0Kk|b=NpcLGf^BEdqI_W^e_M#-j3lXR?p%mE!JAttjB7Ffu=Jh6mMBt29dfeu zP0ojtq&@+Vyh6Zeiy|+etG{svg{xY!<`R!~3m0#`4*su&h21Xh4mZ-{M~;kVf9uV) zE))=V4L$Kkx1BxXId(QTob?dSY9r-KjbhL!CLuK{ zeRMcwXo)zwp0luUBKug+;Wr@=9lwQ6p~El%T7C3h^cHmdyYIh;Tc$>Z!{V}@3Du75 z)_Sp|19~zT{fkWKJ6OPe1Dje*^G+?;jb@-8OM`+MjD~V3rYteMja@hZxHSi4ia zQ2$-@lU20p@1VrTRxPdT&R7JMAz=xYULC=6vgH-D7*125Z4FRo3GHF$yaf=1vF{5(3+Js`g9Y~z zx`@77!_6ES+cGQG{L8?|Hv9+-_=^(9i_rc`Ra z!_JaQg=eJo*lzw2ozVU+TI+s(47VLE@pQ$oTYT>+k(+S3o~5&7D3l6OkRrGYOiOeX zQg1;rq@#uCT|!Gp#k5484z!#F%YvaUjv2J*DIps56iErwU^68pT8Bx={vhz2mi>&7 zlGOYVbtLv_l(cryuf7-U_8r)XVwykzQIYn*pS(51U8rrtV3~mR|wuOgrJ5c;S z?(a`}KZv$1{D9lRR-aDdL!S?!ymo@g_R>n4T516%iSGoKG+w;8WVL5c=))d0NAdra z)S>cf|7;!d-gB)&PiqY)DNcCyTzu;=cYbj;d3rJTty#B-Jxbph%-g=Frg@qOnt!&v zD32;qDSf3L*mWq2mn(ua(NO_G3OW81kQ)%_C%?1GIt+U>N)zNKm&-#mQ95#qJR@v& z9$aEKb}Wu!lIaO#I#`)0l({TkwVRX2TdoE@hUe(#>#GRX=*TC0F<5ig!#Yt&m&=0# zS_cFw=?xtPh*iiHA)3~frvq{Vf|PReO{d9A?dBfCWZ;-2m&65?&)#nG)dLBg#uv$a zOXsLTUsN4T@Fb77(O8~t9f&&s4>v%^{AGn*MPcubBZfZA04wK|!Xmzlk#WgSQKiqS zN*@Mibd+H|sh%J~oT3dctRDfP6i4K?aH;HrEL-+D`R%1vJaMN)j+PU=SdbL9j?g9fAg??5tsBWenk8eiG#exF-asZ&$zTE;F75J_~*wubE6_i z*j|L0tb*fGhRpw#wUN>?v44|NAE83I=c@okl>OQx)NQ;Q1kU zrSKu-k=&QnIu+!bHZXf1t(;SpO!`C5Pr1z>k3=5JeU@>^+t{ruxb`S@t}SS_{7kgR zmHqsps?O&fF@ms{YVdT^A9Y?==)vSOeTh$2bLidChc!V8f3`w(RufDubt~WJoU`ds zx~^~^c&FMvaZPY4?N*Hiy&51|_@f5-M(4au4`!rA(=UB66sVG4ec#Daokhv}O{!|= zJInfLgmz-q=C%7lJ>3JykJgB$+^O12q}GJaPuKc-Y@Kpwzmq9u_K`iDk1q9V+os)r zrl`c}e{?v-z4hd}PQ25N8NtkCUSzg1hnZu{N#>LL!9ChXDMqLXJ4tdMcF<50{(2O` z2uB~;G5=HRxgR)OCg(wvfi=0~N*9!-Mx39LoBwmM6QnjWHO_l(#61K?rY(*vCOGE0 z%YnNV@LEYq+$_DHsJ2U-=a#3-*pc^@2oCio@9_c3kf`z5=C&cOt0!&3)dL zthao^{P<|CxzrXrKK%8WTHwz|VkPIkE6mc^L_D{nWlYw+6s8BjDH2yPOZ17_BcrI- z9JiQd*D8)(X(Gq?q;&6-H9mQGmc%tdsunQT5}DlEf%PDW=T$*$`T8RmUAm^}qY-nu zBJ`sYhq{(r`<%V2*!121mFTnzZ1G6MtZuW)BNE5DWS_F}iDPX0`Turw>zb$jw_;vb zeD=Q;2bZI`yeo~3fB8Qd9X}|heBd$j1K`w$5J$V@ULQAN>pTB{MAzlG=>G>}ZkPQ1 ze=!cPEJhS#^9UxDd5js%OktjPiq4&Ru`J))Gn{MA2Unag_F>2RVh^sF-xjtDv)w#5 zjJZ)`$E$>+FoNRglQ!0~-FChvtaR~hr(hobwnIK)CW3OpFCq`yv#Lv`EPGe@(>0ry zdD0@ld(gr`%k~bJQlEWqt>ExY>~ZtIS91byLvJbmsYTxYEX7l zg2UB}v!;|~Wwxmc-(GUNbmsKzvJG!`XP3+5OUq2(ZuZrKsk)B*6c;3e#Il-%R+Fj_ zc$ov;?CZ@rK`81+#w9=bIg^+^49@5%!+Ly&+Fc#WmDWV9CG2sP%kzCks#^;=_Z`vXEK`O0#?yv-7d26xPcBkK>0CP0a%aJnk;|f^ zZgPB<`sr!laIK6-?*qhlw^y%c9))#>=iG8UAj!o-jj+|NMILshi|X$PF}1v zQJs0edge(oyzGJx%i51^Z=XtQqPiSiSxuYiPJvU&Fni%5ysnU!yj%&dOC9E3S`*bZ z?kcrfl`O&X@?u!~ zny8h_JzE6;-Ezj}gHSSWWHgh^vAf1DM;Hp0A z!}H@FB2n*W8PW%yQ*xjBbt=d`(fX*5QvRt*=KYb#Rk_O{4?U+<6@4Lf(ihhHs4l6a zbZt$m<#SfIu&FCI6xz5MB0Bn}&T9;%^-*gKy&L+lCP;CohG~ruRT5K4?$0@YV_zS& z=Dbr~|F|YNt#-N68X@}5mg?mmoqaUN`lt_p0##aLyx(N0uFrk{NmZTPXIUT3u|8^z zsi%AZK6*`PTDxUPYeZyoa_z3o)+vYfrS(xCS?braO?&VaM;|dpsdR0*t`qOLs*hS@ z?om8KF+xq)=~0LnYQ$i7_de`6!qG=|u8-=(40cMUG96Q@V%*zJmfbQnLAg5R?Z0uZk6O81tp&W=rNB8o`^zP@xr9+0tYha7TYZyZmR&>(m~}XwI$1kj3inWK_mU36QCg1Xy$Xkvkzmj0-zWW#6m8`AMTBwiG`bw>>^gR-5G51;ZJ@h4; zTG5ZCaY&h3sLBVyDXw&z@kFf>(pB20^eEE($Fit~9QTYl#3E&Dp}LVpd!PhyYwy$p zAXC*M#@eEtmy5l2?U;VdQ&`WhuffT&TJu9{A+oF`|Dx)L;O?&#cS-L$6~>HJXzVrV{H0|0Y|GyYxyW;TwgK>8``r6Ye7I&z9>JW`P^I}=P zw`VxloDZ%zU+lw<^~)*#M48_yOn-<~eM-Z3)|G$g>U1+^n6ialgwNb86T=R7@omSw z^{(rmx?vR`4dS|2TIJ!9ypmMF!{&oJF4meI>YrABz4_7Lk7_3o9wN_FV=4P#^HE)w zxd(^(r}sJg@CdWl|6uLV`;@MDsBBm^j&xP~^g(1X9u3~C<@ClwQnAM z01{8`VLoOqGygrby#Ou)R`eX&<|+ez{9C!_&~Q8urAgzT$HPX zWETY|-RJfZF1~H4aav*i#8%_r1q~$;h&^UG$@iIb=pMSh}1^l2C2yl`w9#BLxqJU8T_H^ z*Gn?4LoA;o{jc!$+`>ZHq{71Mx948JE}L}y)|WE4eNU{-Li-M2qHrvj#5BeIs~N(2 z*mgwvYa)$?NNh%k8&v+loR&+1NWE4T$$ymrO+AB;j>rscx~get=7^)gp3qc?aGDj{ zb`I42Vl{-%&O&>#W^)0P(9~#Mho9D*8b18gnx8u8qG2ZAt<0>^Hq@2%H6Qrq8*AM= zySe99XXaS64Mr1VNREz-kje~ckd%l!0I8dBz*^WWY>7yR9z(k(Ki#_hvnkK*K)ai` z3y(Q{?5MCNknluir^v|3AtAFzEJQ!WyMV1{bzlnxl|OzcT5kx&U>PxtF<=ls*aPb> ztnBLiLGQhl@=SK}#FirqM~~?C#1s7n_NhO(Q|@%rvNw9U3$yT?-^k8W=BWH91qXG^ zZqsf=db8B#ewuL#zo!PY>T9hR|QLAy@Xn7st^rOIMjh!LPv#0CLVPb8kZ{22fUO$wDv>8$Z7>!9L!DcMSGdxu8`Grf+pP zH9{s;`4i|&m^t;)N)(wXBE zp7QW?#RH~lU`3-R3>D3T)+otss>YlDV1KgIP_Ub8a~wk#RAasjr6MI_ zvR+3+XJfdgGHEuX@o}%m$GJ_`$75sKw(Axf^FmB-zl6lr1IMSP4r~*j;OCcWdTde# z{%=x;lqSd1qjkEd4Enn)-#>(#( zJJgQ&$x_=yF%QW!GCw&no^m`{NmZd{OL&E3?V6X@u6wy#kEwmUy7ueawQJvgu);l% zW8tfBzWwT}Z(loEzn}?BhbPyrMa$NXau4LP_M|#qx+X~hNuJoGDBShZuTO)5A~X#4 zZ9;|9+-5ek4*H>|Q6?-$BN+!DLB(j9MtJt5Ms%rV_XL~bb0@$!r8cGIElg8BgFZm- zKch@v(5;zCU@MLKxEf~s) zE!>60jo3njt6P=fayzhak5(1O74E`Yg}B1XhfS*rxl>T#9(eXKh1-l+ZcHK0y+c)J zUU@*_9#2*nPq+)6JMn}FXLF`^mASL3!GwEMbTgK4n_H_BONcm0t|~^XfrMLtmc|io zQ?pDQAA?)C>Rf9OM7T%Cs>Kj)le0!Kgov;9On#Mly@~;Zdou1`{NOHXsu4ek z_-M-HR9(+i9z3{(gYserxAnK%v4d4ss;bW&0tff#YKt4(mTVVsgE-%uDsyW2L4$h) zaTznX&4aFEhVvMvLQBk$fNf1~#W6$GATBRpnC}W)rF-!Ligyp*GW4pl$88@hxMw%) zV+FSvto&F(%J?y%ch~vj#+tQ=bIn==UEf?oi^LHykeKlO%GW?cCsxw!{ zZ&h?^%atGZ{MZUWcH4C=L+@B@aVysil{>5D!B(DsT9F>B#3d~wGclFxHU}rPTsqkN z&Wa?*=4zIiN0Z7qrhMnJTm-uGCoAFwS1zOje+MuTSf8faX3JINN|pnOb-o6dz9X98 zEZvs*vKcPjMQ*foR_uwM|=OTB0@X3e5HF^JgKM3fKm%ePf&ukToeT? zfzQ$WrD#6FmU}*YhT@&3B1u3w=r5E53iKDe0}AdLS7@-KT_h8Sqs=su;guK-QtP%~ ztaR|-aIAN1`bQ?!`)k~BM7yT6-eL%RUY@?SZNe1zdP+jut?BaT0}XHFrkGDw?3|k0 zl^o@uZp)R)QHzx`3x4~pV5V|$RPyuLbwP5hq@C=B+diuZS6&UFD%YW{3XJ7AxmAbN z9p6`kdteRWcH1$o60IwCmaC4Bs`$`WKF_TgW}F=CDuHkBbXSAXUHjr9T=_MFs&YrY zO8j1-^Imnx-SX*0JhWwo*O2q8>hM>I1KbP(sv!wgjtxY7W!4N^*1(}ENGJ^^s=*0m zV+;|F*34j1qqioo)F1$<5)V`@D5(Z3)GSsJ@kw_<)ku!27|2vfzql9NR2_BIiFrhP z#IN!SIoS2X$3k;B zh+3kf(6=Pixl>;_2+i;V@81yaA|7r!4`DY(9mWq&*RE#}KghNVf1^ccA^8GKfbp!4 zc`EMn5XwLwu)m2N(Lr&?CC^*OW1RX{x$GOmQc?G4UHJo0fE>rrIAXX$Y|n*5v>%E& zJW_@;`e8i2+R{22YEc#*`~Cs{)zLB&}87i%t~*d7IYRZ9mY^P zjS;UXZ-nxCm)x{<%#`IP+ngQvDTd0}Q35-E$eA|2PV;5&IMRplU|zyw9FlcoWQ>9d z#M&l?Nn)mvw>vV)#zeKhG{Qt|0}ZpIa4Q;L)!43BpD|kQNE6dIlTsr~<8e@ql~o$h z;M@mC?iv}^5jV$Rwj|@uy(`0eE>&* z66^-Y0sh^XBi&g{82fW(er9I=cts;`MPqoAHZ+P@Z$%?CS{<%dhhL+=H;m}eIM|bw z&#BvV%(!mGmZtcO-2VMLcA44IZ>9zsZf*#gnSL#2cInu^e{M#+sim>oxG_!Z&XKd8 z!Ht`&Y8Ug-(uLc5zub1#s-Ccp7p?)zLx~!Bhre<6jd0|xh7z6y;TjL?dajz)_T}E& z7cTuMhHJ8H$dF}2W;PG-OAAm;pp6S+Lx?cy^+tVf`ulQJO7HGzkSZ++Yd3uS@^)=j znUd;9&g#)=*zltK%=G9kdBHv$=M$XQB|1Gbzi9ZdPCaHt)=x66YSV7{_~Grs09Qb$ zze=R&cv|<~DN z-`+NM!J@tI&7n0&+TJVhY$RQPdCi|@PU|zV%o64$W*sAdjI6^)Q&js)^@Q*iA2~@C zS$YFZ8kyb%sz`$l)0EsMc^Yzdl6cj6lUkF;o3N?HzX@OH8}pbmSYMFJqNBoj876CE z4qxGD$fF6B;O~a=8l$dsJdn{5l1;d~$cV;LePi5D8kh*fgt8iS7+F)t@sWm{;^YWp zgtElY`^aKI>I>GRsD$An2z%0hAPv`xX$5XlVp?-NzviKSjeHauwPDmKHaDqxS|a`_ z>5_CTCA}fHVwCVjX1YR>lKj@fVXdZTrbra&nE`&1P;Y-P=&TQKqKi`->n1c#W}`!6 zV*C{0k#eOny=QZD3%!SKHSd|ORLUd66@D=>q0ww|-{5YvN zHvF-rVS383yB~Y2QsiFRrZI+KlQP{aGqpi%WYXM>dP#|a8l57ezNrX`icIx06go{{ zVp6?~xk-_+4N^0`(v_xQLrhbxmpnz~?H$qAQyrdZocF;zV`jM8vrnWqm)sBS@23be zy)t|%`}wGuqwxR187f6sy+FS+U%*1~3cI_}H~Rxt2<^Z4V);{1S&G26O-&IV-dRoC z1}d_mp7Qop4mEUdulKK0H(Zh6)v%oj!(BfpQt1<+2n_5nYtYD%gJyLI3{*t;C?kXF zV|Y#N8hRxt!t2)Y*SGI(7^?K`U>TEL{qBl@{oj=Q)iCz4i@Ba2!QQdHDW0jrJ16%s zL?m|c(+33VRh{bvcjypYud_-Y7@+s-k{Ds=liYcDs%MICtaq@7XYR$vVjITSAD5XG z-@0*haBy_v*6~@HV12g_b2#Bm`lBJy zApQZ3Gy=12B1lWaY|K!Ud=1JQcid_BL_ zp5A7px=Lp~Y^ z4MN`!DcTLc?JgREz7K*>l`neV>+bssnX+z}L=)}XY^l(D*bl>c3rm~IqcxJSx=NX1 zgx5&l@KHe{CmcPGE~D?xAAV|N(8y5vNH18_zeQ|pi~a*cLSS=Y^X7$(LE0{)PGnT0 zocP#&(eY6}zOrPUqF&2>vGF;Lq9W^r@SHjz#HTLTbkof7jR&Va6}Vwj>IW*-2dSGj z1dq)a)Oh^Nn9SH#EheQseRbmO*%Plmoi-_@U2JCaDN9odCT1)Tn6N0-Q$4?*w|Bq! zYR}X~69SfJOe{!QI>k5Br&IUFX^qjXC2Q9%f;#wPr|v$PL?2??>+yoD4z-K*7#)*9 z_rDEgRxw+|_v$%YM=nC-55f(M#U4Vk$RC6|!1g5NG$Up+ZA7$RIOUi$*1|S2Vit+6 z!)!p<%rBhBY#>G~RB>TVhJVYj(rOG;4MvMW0SN?11qs4z)ZStSYl`(@w2q{Tta_Lx z4!OY2<2!dA|D4(+S2vLd#Ogxv59>`YqI&^hx>)i9q4d7_$AX!s`xZAX*o^+1{@Vh0 z|FtQ3q4mPL^_rP8CM@L1oSD74h1CnqoAMbHfT`awd0@SQWggxk5p#OVd{dij9k~Ks zUNLfOlT=?>&p8nx-X6;e>IKS&^*a|3?yagHBh%!BMe`ob43hD3Lo*LPIxI&ci>a^j z4(C0{bUF`BQ2OBiQD;?nR2cbT>(c8;q6&)&$3HM!d_vfqSJb0j-np^p(#Na!%~=^6 z|3t!qVWV3a46Q~FTafTXeC*0O`&LVtqABy%NQ>si8Xr$@J8bfkqqdvcwKHuW_2lGX zZPOn&#?CF0u9-JQIHi*Lc1{gVdNEElcXIc>eY;PdtBQLuDKxdSuS|SjYN_9+rt6H! zObV06WYSX!)(8_5M@RTX{3x+=+cA^L~@Eqg<5AcMM?~jYIbI)rm3Af zr#9`xW_BLmr3?OG9_j1{&vo`L!Jq#YtrW~?1-q+9yP|nT?by1lLk0@rgF?7_O*`Q( zX;1X;w~jtDj!7JS>H>t&3sCS~ora)8uR|~NZNry358StJumk)W8lxJRR3@EiNq0Dv z2PnlwWO6i?1g+g?Svd%Rgi4|14lMd$(cI>F&4mV*58sswJ`PSQ1eaAWJa%khmx&X* zSpROT0RBE$Kit9allqHwv5pY2(36>p;m32w(2!_bfn^tirK1ok%Yom*7+BHMoGz(4 z5eKXcUj(e|Nf`=ideR}RT8}k2SIMJELv!3!|#uD{S}LmK%plwN&}C9X;= zt{pu}iy(+eNKe1u`rDW2@3L%izGQL%FOQ8d5C?2{{#GJl$Oorh@rNX!EJz0vMMqz3 zbq}%LlY|4WO5=;F-#0(qVvQ|=ELwzd)r~JZJ+0`)7u!#}*8_K%1F(1Ato_hW`zD-; zP}=n(94C(H-D~CJDXz+lIk87zd*-m?p`HK>yX%yv8{u?%gC|g2t9LkvZYS()T{UM= zMiw?ow{L+7@OBu#<%Xia`_wP59W^Z}#S*6tF+s@m;L`|yX}ODd9MLeZpwD6a%V+Lw zY39yCd(YY~9BfIAj?(B$cvUv=PuGylATisKc*1B>{O!x`_n>PINHQprq*B#iWi#J- zGmmEXrENEVQPh9ek$pRo?$DqLgJwKeO~KP-%x#n%2el^hzFo`;r;eZnZ1{bj{>@8H z{Qa>pOpk1j5RDm$G<;~$DldKDgAv&7HwxwT;1odNI&1Q1+MjfybJm8(&()$A3m5D z=yabXahN<_`7!5*`?1g&xJGor6YyVD>V3`cc`Wg)EkY#1GV&ilBh#qjlcj8?k&_)y9Z_7o-N0x1+Udlh|pb zNwlGlwZSh)q04CE{DkD$usPKs&OV8a9_J12CXdTj0||IA}OL^QC$ zV?u(W`Xv%CA3!o9mHUqG{Zn+eHL0KatLJWkJDT1gVVEh;CNp7rfIAl0pI^q@!|`um{`V9#hET zaMZ63uP)#z2g5yWw~%SzD`XPFMGh>+a#@S*cxqHUG}E?&%#;97#F=40Pkjej$GeW? z`?A_(k4{hTUn7aIXVz*(x31PCj!V=qW&Z{d-9sHecKCX2dAXKtxmE&Gd&PQgyhQOf zzDLQ>6;Xes!*3=ln<%536i_H#3`N!f2!o&7c4o;xJvoOLPA@s*`o6#XyYZq0@$@`a z5#3)F^TT=Y;?p4Xxcv_r-E}vKlH(TcO{XeIPFaX${jj4$CBOb;H<7YW4k;aJl(wLZBTI*D z@x!vR;gWlIp7fL-d(-yWV?wKn%;Nr2RY>FP?WCZGJhaq*ka=wn=<#c7sRwkx3;o|; z@>V~a+^@YQrB5V&B%0>aDG_Ewuloz*mA#mW)D!xt)Jfif_7pwWOQtJfeD=#lS%Mg!gW z5A`@V9)stPQ$Q~q5SY*XN zBcrS;HTfI=jEv$sRtz6Mf61s3%TSRUA61g@IzuGEI%*TGwTX*&6xU{Cn38LgO&J-r z#XH&(YORU2h27UHmL^9#-Wd8W!D{eMN#wMAfqmr2O*UDQxY));D~F9*vc&l{mH8J`{;)_=%Uw4gg=N`ksBLm# zou#^bFQ$-#t_4g7~{bAwgHr&mq zVJjCk#u&|!_z_%t00wT?rv_>+M+BrKMsG4@y%m$NH_PNw2fY{&;f4Jmas4fe#`Tg7 z6MjQK2eya(`atpG>ahXhT(7WVXp-VZRsVqQj^T9T7#{@cs88xxdb!K1tvu&?ZzL^ys zv)r$)?IAXI%%;YY6k|5&ym3Dx05-GZbVtW&bYehzR8vUZ4z{d+&K`iC=K5Be(XkKj zE_3N?QM3=gj=rj2P+z~m`BdMdz?UaS5u}BBcz>TvD))`F^wx}-<{KKK*f)|H`c->J zt^}$@X8bkWKgt$#+c@AYB&=6+SGmSPaVo56B!PwCcKjqo;MyquwqnM4YY{IC!;uYb zjIMy}`U4}3j7o$CEgK4PxFUQMsGcknlMx;ULtz5Mk&Dqro?$CM;*e}|ls=pokOXLr zG!_Y!=qI<)UxIB^liNR}5VbVCVGNOyYuK1ED;pcpFGPgQdMZ!nOH{h9`-V=4zGYrT z*`rX+d<|8PmQ~EVC3?cpEh!rle#6*Gt*X%ZX~i>aaa-F^=i04twi(4~^FvkEQXBJ| zgpDb1#A+C@C@%N5VqLk8(F6zE!*uyO|LNL%Zl^sw%pR>_@cYHL<;Jn8V^?A##*&|_ z8ZTnmU&1mP%HeKIl zR(&nh*4AzEumvF@ddhjyZy;SZUqbGZPNwUz#3iqX4JTeW2V4NXlq z%wJN4F2OX{OTshwb^tdoH4_EHb-Nz+6mg7TgMu z33yN+wbp_@*qF>U%k#2 z&DYupC&@=qmbqi*(xo$(E+apep^Uy42;1oZg^7x4Y^wAZe(SN`mqX%(LD-_GL3GY3 z_IiY@%AlX800y)mB5mgQeQGCAA$!43lKp>+xT5PB-8)PMJN}kDCi%ouXo@r$t%Z6u z)Y-xzBZR~r6V?CA!j+MkP( zDz$V~lH8M|mnE$QIBE!m1~Y|)$>S9yO&c&dRnSmaq#}2Zl5LUfh4yKcYntb*s=RmE zihaN56AIC{XfL`@W@hiWcdcu>8jj@AVNED3h(s@iN46dy*CX$n8>>aHN5bq-4LZuh zI#o~CDmU=GT$|+Qa|<PHT-ZrnYY5?w#xE$3{ifz*CmlhQX1;2hFcq zRGRn6>P?$geOl~TP&K!5gki9uv7m?RmCug6uD5HHwIkKF>IoAq)yZU2dpo&E$yOH{ ztCL4HscXk%Ou6p5$(h?vp4{&K3$f}Tb>MA0x2f4SByiTO0GjV005oA7{fu!`1%`s@ z;6d;-I0@bWr@>jWX6*)p(S4hi%mhg;8(WVUB7>hy9JyXW$kX_w3KmeT^a(F14Pg$X zFcVRxg8c@V`Y1!t5u1K_&kFR?iaW2Q$Mc53Kqh+h)=Zr}GdEtNm9Ta22>kl#{jC^V zuVHLyHSxKb1={Re8l5i@jLvQqF{(-|L>CE0%afUod)GLBYb~lQn4)RrT2z|wU?Ufu z5{eNwWB$hrrn`2OYf~aI;v!VsJZ^!Cn^I6-Xvr)H4~@=TapFDKiL)nGq{nJ4%x96g zHTe-+3E*Cl{}ce1X-UO^E5Lvo5>Z)Q!2UKhv!~0s>9)+6%&qov>%n5%6{Ew^vY zjCrg_s17Q$W)|oY*x~A0l^+l+h)K{DWLgW$?dkJoOF*1{eby3q(r*xY+Ol*o6YK>K zfy3ZM@VCBf8GV!p^C|59lZK6k<>D3fBKO^N@lv|2P`I?Nyqn&;X}f;e>Z&ToiEp0G zA6mN7x$b|(&cRQb2Ukv4=Z-L?4ldTXg!}6Trb|;i*lHP>qsh-I8{B*_I5s<7xWMki z*v(4{xNgMA>jIgE|ESTsXUNQnW!FUqnWBbe7(+r-Ii|3zgeX&R%;1{zl$pO_BMdRY zL97FiwLoP)g5lsMa3^@Aw_F6)e|uU1D5hT#kKzjnrmXqGVK(waJmXeS*joYu=IDPi zqX6@1U};u%B{}Gy$5iK#!~YLvm6DqP6*<*R9=RP***)t(@qZ+l0K6l&rXp|n@Z)b* z)T9rsi_NJ_ze_sWjc_~prtBgjRst+lnCS%ND5FQ%tJH||Ky7+UB! zqReL!3Zj7x6oC0SZaM;vW6WGjj6}*P5xrRz6mbGPkfAcDWN^s7N^({BhZ0kIBY7>>4HVbgp3s17hy)JK?U7g!9*eMtR>10j@(^dxrm2;yTd+4} zAM_U|H!bf8Ct;TMK@w7U!AtQXR#?3!IMng#TP8~Q&`2IgBO)ZMX=Azvv^q;G8dl#r zIXi3et*aX<;92S|0m*aXjh{JSAGjYphON#qaN-)H=o(rYTuhykthN>!qi7#;Y(~ta zl~-G@4UYa@#-?t_$stXN;}X%XBaG@u(~ehO+6AK|7{MRu!L%C$6Y4jn{xh~m-`qU2 zy!>BBFwr~URf;2~0-MUy*kqD*CJ9eQkcrXM0(Q{#W3{j$;wW$k4y=gG+_GU03vMjc zs8J15w77^jD3V|zRDc5aA|ZkgH|1ND5q1uAPZq&cLR&ty6tdi71@@_WLXDxH`&e6300woJ=XY~X9bD>^|w%Ua=|Qbt<8Gv z-j@_AL#JW7tgVsZdW&Oz8qRR{e^V^P;9 zaQP+VAl#0W%(rmGYIp)SQcjyW30KhCBzNWaOxWzwv5l+7jL`|3>;SqJa~IKjs#Y8u z>#9|N&5(dIx5=eqMAP1_ZLlZP3JB&l0p5%W-Kht)d2XVX8 z_@99pyjUF+p^wsPAYcPxwSR{3SbI@0zFKbzutY#Thz$wU#Kmq%)NBZ}Xir}_ec^;I zyd=B?{}aeReIY+Qssz7RB2#3c6j|_>NYS(a5C8+105&KrNE@UJ3J=l;Lj7ZGQOi;Rnki%yD3icN}3icd;N zN=!i3*^G>R=1j!CKs|3S3tmzyY37bBs!jn-wH`(k)OmZC;JP#OC!x#bF## zauP?>oWliRMeEHrwb|7Q3qE@C)Tt*)SNGiqy!xuI4#3a_YL=_>~J#DsBS zJnoB0;*xmW8Qaza9FLxGl)r|DGZ}F#8Fl}lqwWcL z?2(Ohp*;<5uSskV5OkObLd*mq%(L(}tcI=jXNQh^eeVx>)yc3`TbRGFz8ziO zUywGEfe9m_@s?>brcAAg$r(0b>D>CP-6OB-BBJWLfSDT4Ov2a&#a*mF2yC7%{XIU*~kI0oSqT$_wVV)}LW$wl7d6C*UE*WHt| z@cDbHOY2%(MQGthw=f_Bv26<49-X&*-tYf<>%;;JDzDFv$)_-^{_EZv zyG5jle+ScKB>CNeQS4BbsY)$sNFWJHpI2gtVB+9*B9{jqI7wu9vbFW(JGSjTVGu;LufJ=|$~43j%xfr0Oe|`cM|8Rn1*?ZM zw`0pjbcz+H7IG3}N(#uNR?S&0wiHZ)2x&4QO}3?YiYm&kqYP=SS4KyDL3du+_`{QTiDu{Tv!KT}m*UG+@$hnCowd}~U6 zY|O@Is`0;Ps;jEHx|6wfb_=YkF6w&M5CvugG-e*dB*Pi6t1NZto$@pHL7 zA|sFYFHyelM#21h{A(bGej>GK^C(zsBB(HYbSjfYL=VB5&SE$6x)gH?q*g<)83x%@ zR6zsJ9UE3Lu4cl%wRPqB;fu$)ETn)8Qt0b|XGX``&k5F}f!t6--1B3hvNJxp^d&8FZPT5@z7@iL z)!4lCxfhO$;wd~YrnU>LEMZsp)B!8v z>dkdw>FZG@kWW#ysvTR`5l%mCcYV>|7SnP*Z*@IFX%6aKE-7n2b zr1q}eS#sFhtA^R5A~Bqojtly!Wtl2JHN9P?&mV1brzM&3g1))?WPMi+Oyhb*%-?^l zw+}$^%*>9?*QH4Xk9}@1ujVRb-DmqfuJwK)U^f{{{$PMv*>SbgldktLT@nt82Qc3C z{Y1kQ1+9LK{+$Yv$=s1I=Tg*lWM&rt9gs`uJjIa8=8nPmtRJE-g$>>LeVdv;qd7fh@VCWQ7v;6myaZ$D6A(nRA#EV2m`saXwipT?doJ3 z_QW(%{UO-;VDa*>DT`iT8XFUWKI1rO|2w~}dL9F3WVEJ4b4||Nx8T0!RpdltER2JC z_%<9-qRx)*>Vg|plh~g$IHm+k!7-*1N0a~Lj=@PJz7wBK#_=6~k7?GbNf|Q5SJu;h zPRa|6c_2CLdJ%P?O zv`t!{J{zoR=C9W*!OuRy0bB|{qtHvmvIW*f9&v2V~J|^^6iTfkZ zKEuyOdpui&p9!*-o>7_8XASsSu*b8HxxM1EMf6#x)`pRGlqtv0Xc?J@6`JSBGgTWy zW*C$v^2|9HkHI~vHvH@v^fQ>ERWVOW>ptSz4bYKOxVzBxw^(lK39*1E7ICR2l zCoZEUpXV^_{&CII;Kt9F(uE=o&!Pc;Kg(Pc-z`!jln*xd8JnrXhsP za22y+tQo5yWsk`*`ao#kJxS(9E)W}&<`(QE++GBT1HddbC9`2une{@m5$+i?ok0&1 z8y4E^d};w9bn#-DRI=WLT$)VwAsi``VjrP0b2hRRA;^n%l;U29up4DJCQVfg5h8B5 zlgFP%504W?ID}_5*zY^q{(Bf(7?hMdJb%O;5YC<8NT_(YZAxvpI;*6{872^SHVr1u z|7F|MIU8%!b>`IMSe-S|sgCOT1D0BP$}L+huBHDj|h57-t1$w0(y4UeeuHep0YpX zQU<*0(W5vf`A}{d9vh}!M~5hOpM#{neF9n|^xN}bVKYT>QXk5^ri#Em)Nw?`gaB=@ z)_LJ%{o|oy>mS#RnKJ25K-G1kcyb;%3=XK?Q|DaxEVnvfbVyUk^&uNVI5-`<(FjbH zf!wab4s%4S=7!hbQ$=(h-7@X`w;v1ZH8*2{USuxfKCEICM}ts%zCOjFV2ivjEfO-% zg=#o{W?EM5EXc!F#vGAW8&rR8T3wB9(S_pDm)~0eD^l%oQGrHtVJ^JSWO!*uV=U$@ zImtW-hUFeTeoHO&r(j*zr@WK@POE~S(bto@KIOjUGw|!r>FYyi3G)Kiq)h=o0D!IT z-6sT^6Y-C`aI7G#&$D*D)x?_Mq=yebjLyS@@1tq#SI%AR^=mrsrRC8FXb7_pm)DSS zPjdVe>CLQ4Z(>zk1}q|b6^`kZGt9>izhd1151z?Hzr21isCQ{f z@pYYt&s|(T?L|x%gRUpB3ibz&cg+A$t0MH__a8zdnQ)n2HFKJsN$EWX>);#QtpdGz zlL7k*gXtLA!XV$=tv{mseR zS}Xt^Rs;EFw7U3`p-q{|+D#!0j1IA6bIexA1(lYE+#JSoQI;ijNpa`|Gt~7AGnC&n z##{@TLHSD-&t6xYmm3!uySs6+rSLHb?_6FoY{kum<3j^XiOe0_+qa`b_=keVfH|1P z5#&>d{iczX7TLv><0NQE&XG?c+2!2_<+{6H{FoB8mT@&jMfHVc;fZl}ZC?0@33FE# z2X7BHXp6RL_`pC-bWl*ZDb!zvZ^_`IOQ*J^n<0~5JUT0pVcHo!XV~~XrnR$TvrY#F zMuh~0hX#b`V+)`99jisfHe`}chBKEHaxEUI3yP3h?Y}@wDHdlTEe&-N0p!4r6o7N@9 z#d4c5?lz%Gm2AT#Vg-l|i|sOtQFFtS4XAmyt$X7M5KLS4j@Z1^w#J)YC^f4E*ae8~ zx;~d0MCV_e+#t6pw}{4}^8}PQh6LPVETcdiN$Q{}4$@^0xE9?HCm%TiC!>RK2eXMC zg96}B&d1PirTNkYv0gBdt)gZGyj58h0_a^?s9PrVsi^B&Q&G?LTY*l#p52S%7+?y( z#ZAzzW1mFdps&#$_ze6VtUAQhxQ?@XT`gT=AGCa+P+n(O)|mSUtdy%jzzCHj+V~iu zA2Y3lYexvh|AhWPYLoKL7E)8hDSsC(A0Xh=Bw-acV=xkG@zN!cI?k0u$nw75Wt zR6&r_2SVHK@=|H3u(JjDrh|FeRmA1shT&cay3r9J$X}#_{hg1plm;>=#j@N7ojOvO z#eEB<@mN}f%bn&gVcwDmHWOifCB5>e!m=kRDGDl~F_D~fRjG9*_;GUSkkVxGgZaDj zeXDu-=FML~?Uy&-yxd}i&vUm{HRBGqnqg6L#-a=yP0;JoetB>+4?n>rCz5n~U-&=#-y;?N>bUQi_hAD0L~dswl=u94t8;Y>|5y)oxDR~Rfj9Kf510gi zdNh`W0b3p*;DV&Qz;4833{M~fPA7c0HBEHEXQGSfPY1rgz;lgLp$!f>$gDcic~ilX zvb2&F%wF^^OuKY)|Js|;xsH7VdhFh|_3Ktwj%k+YqkWN_urgwM=`DhNsqU4Q^TW*~&?~%qW`8vev(0KST8qX}`&vXHF3V$nY6s;4Y zvX^PtHv(6lMRd+3UoJ7-DK#!Xsi&5Ay z(#rW9_2SIL`nnri7rH)zb0ORb1FW}U%(Yzq^eR^if5vs{%P*Hs7wMXTvO=?DLSsGV|C|wasy5u$)vqV^u)a1L*%alototwNuCw;`!)=gj8yKs+lz`wa(iy4}rlx4!-88SUw%V^>NK-HNfNNw8xko$?EgL$5*yj&TamYj7@Gi^uwH zXbHAT$0Q8UdSPzsEZZ_TPgxZQNuHHuJ9tsDpT27=>N<}RJA>&}J&xC;CO- zP(6P2px8v3M1;$Z-j#TeNMUMS$0U10+a!5Ux^Y8g;X#*2qizb_9Fq5F(_-7}BznEc z^^&yM@YMtCPu&}K9uu2ooL#dbBk~tJxfA(9lHcgKK&Oo zl)H*{!+W?h&bQGdX)-C$C)5d~bs)(qBh_+^hWDb~%8KqOrdT&d(VtM)vu2&Uo@8Ux zO}Gw=XHRiNGiDv6iNZ3VPI6mXE`$8ZT=|5#b;+{zbL*Uwn4t_Fb(!e+Lyxe$AT4HZ zV?$jdIz^%ireyzBe<$DyMtB2uq2C0iT?;dW{0F^^E+e-w4?L_cA_KM&@k zH((1}0{3G7?>xnnVBZfz$uJ@jnTR!^-B@?K6fixu>^j2oz8WXdlV|f{`?q-0-K~9J zt@qrv>y)Rh4^Y~AVtv>*i8v4rF=i6OCG!ou6A_zihMS;|^tcQy|swqrFHya_5tm7xkHQrJdNSQC3=Lfg0ooRo;F0V zAhiX2;6fXpda^YKEe3dCUa?o9Frt>mGmIFb`jsK{P>v8Eh3mR<)YIU4b6w zKE>FBD`l8XDy48&jJF_yaj!KdhhJ2{=E&fpAFCA#Rr(UQH z^0tL0gMZeLxBM&{XZ)PJ7VgFGarXqbEHc z2C}Qm`7!&Ct~gbcR?Y0~M93+e4`4Q{+W9l#wxA=J+|640n|(#ACcpU*xy(&oWgz=9 zF7vcU8P9g`Gg{_|A7y%K=V=8!zS{9F(_1^e(c@i4YzIJQxN4%RU0p|KNNTgqEPkun z*OZsPRZhRxsOv7R!T&B1+kXsAP_M%J4y7|uNNt?(gZ~ljc72Q*;bJBUJ_f$#ZQ?-*H1;?W^Y*?XHGfv2PVy_LzmH~MiY!GbnH1u z_q*4jUEEV_BaVVoKt8#VC?7ggt86;D*=tLo2a{MIm$2AB#8r{=NKY58`|0`JcQ1Z4 zHf~tuU2ti8e739m^(=UHNmXVSm_I)$x(IYt#Ah{5+_rYlL3^WXa1R%^1e>)E?H6fG z?3F@tM5`BSP*X>T@9x9seFUK|{wLg*6*y={gWme1d1#0oh{}Ktl1aHx%u~bmLCQ2! zerighAvVwO*vj&)^#@~X2iqU+g*;|>NT|WeutAYeZ-JZ8SL5{g_0tM$og+F3&0Qa3 zn%7YI2)AQ;myvuny%z$r<!$UF+>3ve6ycpaYB@fG&hJBN=#eJO^ z&!OoVJ9_?w&%A`xmk2 zlLi@hENDl;LCu)=Az(Q9lwK=2A!DMa$lS+yO>{I!_mlB&;S*_+Z5CaD;#h7G%_?Lf zFQscbs@UNMD{R$UYSszoPSKUod6Py}tR7Q(N1*wZp+hFrHmo_{bo;6K=!5yNbrFO+ zQygs#lWnECYS?Pg#>Ym|bOBe{;@PKO&!71QOhNC{6T<~Xp}`45XWeWGpYq35N2+5j zbKv-shu?VUp0uFS!L{>N{HFSwy~E2(m_Kzmqv>5Zv|sIDzrqn)9{D68t8^|mM>sMY z<;Az!gJH=4!9NV2h_1}8&CG`owr0hRt&5hqn>O^;!Am8!y5OCZ?uG^kGV|x(w%0Pd z48p>3XG9(zI<<6iv`9aDwWIS3;l3c+uPMeflG{7w^yIT!q#P2#VM#6>ziy@ zDXu(9u}-9_$p__<^x5+Q)x`f$3^5l)3^iVJ6xpr`k`77UVZdN={kP;j$T{p_wFC1k z;HhMwh_dwyRgCQ6`~em^EIT_&ucjE&D`2boSE9={AcUQgsP`9SND{bOz!Ng zDPYDmMVfRM5?)i(ManUW{#WCVeTv?v>};3ysupmFLEPEmYZBr_`C z^$uZ_qkcCM^O*=T=-pp$WXc?=RcR25z}gct@TEm9ZUqe%>3-%>)P^q1ojC%2>ZZDu zQoU@MsE|1hfyB3)rY1(e;zb=0>H87WXOq0HRiMM>gG^cQJrb&#@c^1jY0B-1Vo}mD zuKC^sPsQYwdlN0lRex7Evhm!7;s=kB61UgAMhH@lm|u?~G+i1j14R7HgJ z=2^m0QUB27VG8_56k08D&=;yCN`Xl0kC;}Q+v5%hSsvQxKf2t+`-d<$3m9X&0MPum zirh4lvkPDz7`mYD$AFN?R)=7+T`SNiI2yLzvQJ5Cm}{oTNRUW{fRE^$@W>oDjX}HJ zG;VOyNcWz*Fpa_VHk^&DenKT7dhwiw0vR5O4^F!K55hDqh1oKV&phh-hivoRctrb@ z)L{s4pLo)v{>W2i-W2p|yJdjh;6aNduS6_L#pv4Xrmvg8!aW9&TV@eqS#~29p~gyptqcxNpxhx2(86DJeZYJvpPOAS85Mk|D&n~@xVww9|+L2wPcM(r{Xy=Zx&5jRcO_vD5c39SW`Z= z{_t1NqQ9YC?{8^)Y-5Y9G$`oh8{z&Zzm=0h{7^liEwv&dcXk(;F>^TtY2&JA-Lhln zl%OuavpSFbAKaZ-eirGbl2y*K;9G7UK^9YU^@~+a^UHJ@<4m5?%Fva~Z(8*QdPbt^ zzyS!dLox>Cq^DcbloHAa!4l$!NMs55qDY=LZHo4LnkVWj_A4n*%)JFrTi@63-9jl) ziWG`lfg;7FxV300UfkVEaZi9$a4odB6)6;VC%8*+hu{QF@L(aA-|zQ-?tSk6eeTRV z?>u+rovc~sGvAz(ImteI&RQpX@AZ5nDM9AMCJvdhKkl#=kSaXH(!#Vk8o#i{)a`ww zHO=n~_5q$<*{q3HYx|acN|Hin7r=fkpZ~(nfXxTXG?!J=d1i*{1zi~1$&2lZ^Jlyc zrNnl-;=nLl0(fWtq>q9*jQ(g~&h+c-MvCv;40?-gdAF|pYNnlbHNK<1eCRV(O}iGr z64I)E8uR6%j1{9;`=v1N82P*KNfm|rYBLn|#97Ark5o4SAFQ9#7pezY{v7=MHg{yg zRNj3px-l!|(d4P#V}Z5kjKwkPFLf;2&pp5%Jrj>qhyBae%w~=v#>aO~zb=*Tl#QRj-K>nk~QNFdTTqm=cylNc#zQKwx&2ap0GyJ^u|A%srCKb zqz?M4gKA#0JVn!{Mxk(UI=75X%<76+KAv3;9+2@d)rth+7p`8a2KEYImfxR^j^z`& zs%?g)Ecv~1pD*7{^{^eO0VJO#eYOdfeBO3X@MazK_QVO6mGueEuC<=NWsXVM5lb7G z<1%An!HF7S?(9~>8}@?3n@9idv5=yLVw+8)umV=MU^_bq5>~H0zwcG zuI_>2nk8PuYG|UHwci!xgg+d%i$A*Z>PBoL`;$zMzP0jCnRuH7FDC6iqKk*Ulkji! zfnZQTyDo4l8gZfK@whR{iac$CTOHZwk|dmCH+B)>#tbJyY5tl^1uSz-STG=q5gF=? zPRor=vIaZ{=NDR&oq2>$+psf1}n2)Ygj)# zY4v1~CRb}XL|3HJ%|q4AX~x&ePu8pD8UJ~-iuU5nA%tB~5 z$#nCcNwv6GgUL{~7~89F{=Em6b)H6J3!lg4YS_R+T&%zvuG~}5-Wj0(r5d0T8b_04 zV#_=K(N3~ciecMwRr-Jk`Ga1Ai^TouS@=t0oU^Y~uVdxd0)ENWs_Y?08_f1rP%@8} zF?Wn^$_m89ZZ(9nzxKA4VUsq|K2$K1MGfMX1V(4Ne8&hfD{#^-)Sv9W)2pDje0dlP z-Kx!jo}nAX)ebSSb^z*tM>j9}3omd5zhzp-rMAm14u#HrlItRY;}3RU9Sl-l^rDUN)Q-Kn!8eZw7pd7Aau zerGHBYV>EUHVwT_r2j2dBoFU5IBnQ6xxsbtjo?L==(mf=>w>F4uM`=N9tHTobK8l5 zH@iST#A;26mKfxAywH%JDqwFcS4+BPX3Z2&oNGTUM!3zZ8%P8TRU2b^&xjhw{2jmX z!mMmy@_ECl*N^)N?JA{@2E-NL=NcZY8;y#JAs;x&eh0;5<-Q+RUNLmdK<2a)s@gx1 zW5=RGt2q3eeReye;3Ie9tqt^6KAti@DxSv7(Z)2 zem#eEGyesnc%h#QrBLGrhPqPI0PBforWW~RV-e^?Tj4>#;H1ro`mZvboc#h|;jpiY zI?u@zl5Nxn5Dyy_U*f}ZO3MgZgd61p==n1amGkY}mY(6wh^rUw>u02QY1hy~sd4Bg zt$w%~M!!2xnrctmhUrQs^PzgnGv@-=33uMGe^LcC{>g4w&tROSnM+-zdOu3S%TWCl zE^kut>Ea7vb-X~@TIXTx3h?wt7k<+^(6&tKa&tqOYer=KKcclL5LVO0C@&h6R{`2Z6Ip`RhYATo4? ziGNOCL8^l}~ zEi)d=ajDhgUQg0wZnV}@Bz-K)phWQ9Oh1oF(TeMgsfHuF>wOttATEs1(AdOy?6t*k zwTEt-*x`F}`(#a%Gy+&I`s?XD;Yn|a%d1-TAxi$Hy2mI%$@8h>?Pit)-Kc)RvpP?& z@R~N-G6JV|fC+9p8Z(p}Z}Y(e-*hW;Yjbn+h{ej2;}VYJTOl*bO;L(Bt0xS!LKGp+i7X#K2zrL~<-uQ{ zyJd`@oM^Qmm4&MQ!e-l;eQx|IoGA>y7I4Bjt#LI6QvwSlB?D8pxEZVvtZs~n~=#^O%$OH+L zwgShzT{SBS^2OpMr&cYUncFGpRcWTclfcW!z@#9j4vyabP{K%N;4~g_j7Y(KDgd+; zxhmBcZ9l^dm+Y3Yd>p4Z%-ZXSHt8m+mXu;(c~8kuBF}d6c^6{vP6S`m7SZ{_?wQ}G z2L;J@AAa@_;M_76NOq+_P$6zledY*&itTC~y-wYz3;RUDObgCQAT@2q%)9#f%dLz3 z{vUN=!<#83X#B{4H)plj41K2Gwr0e7{4RJmlQ)vpmwxNh8L=J>9b|r498w4mTHN^N z9}l^WxDu|)aLMJ{Ae*DK-`n1J(oC8tTZbKQCK%H1oBYgn87=1FWj_=Ccn4Onx ztoV!vz)NNHV?L{t&+J_K#x$5OhE2zUM3jXj&as2S7BpN%Wu6m7h$86f<3rnTudJGU z@sIA9Ko+eOf2sevF<6Py$MC3cEy$eHoH(fhuGQ)G=j-&RjeQZVX!%DUIWN8oSFGgS z?<-6s`jIn4=W(BTF?3gEP;g66qsiDX8Nl?bxSUs!%0pA#R8`_ryKNmaAhPdOK4bc1|2&|?BMFqY02E>E zpZz|n=^;(y7*n~=H=>#RyB8qCn+YL%s(Z7j-_}n98`TEt5Paex92yayhyQ3yJQL}b zlIdhWMGm&E{k)d9FcS;q{fU|#y^(y}Xi&0Gj22>6tVqfjYIR`uGLXGJFEUH~r8FlE zd0%29N?4u#)Q)(Iay3buylSK=K#h8s1u#GIT^?;epY`JoyJ55hcRMyfbZAumD_n0s zTF$_bY>*f;4o2G-aItJ|+LM&aDTQGJ#Tm?>#hDaOSJ!pto^p$t5_@OhQnk{bT3$t` zjlM#c@FV7g>I&rm~I|yR^Gm1{+=hkp!6v3RnD!drr&mSRxXnvvYI$UymQX=tOL`&1$MfMB3u+i2? zwNt)0{^8+9xOtZDO|+Nf?8NJzI7Y!woAolS%H^Hg z?W-;qKPC1CCY~qAgx7{!q*)_2=7{!|;JZm~v><2jkO&z1hZV*+u#5tT$iU=T_08LeT+57T!Hd>`p>4;rJaG zd)|0|2wPOcOkG7Tm|L}z@1NResK3Me{2_W5V-K{5DcMEA0{9S2AHdA18?jI7>G#x8 z?zI5W!uQj|5P@a(>%Mqt7P}wh&!{ay+JIT-Q})*aLK;v&!|*|f8CKPw6Rk?aIruR6 zeL}E&dxym8SoCILw}d6r+i3VIRfw5h4LoG6B|tJri|d;CX7DBt!=Yxg~BaRJ)(CulWc}F@v#(7{gh< zLqAz+J)3@K8PXf}Ae71xX@2wY0_P_y8`%AU|^eIw%fK9RjssK#AjarzSSg`oT*XBKn$ z-OP`419$Fs#`f5Aifg1^nGwLy8NEi>pw#b92TYN2i=XKU!z=QKW*ctb4wR}!E1*{w zs=nHtQ>H=@Fu3oTE^vmb%&F9he;EVFyxjLIccMB)t!Kz|32%OlZpXO07D`e2Tctn% z8LlhRH_)SPm&MLxGMkXQPMHsB^x*4+N2DF1M3$Gg+ZZ@+$Tt?}%&dIf%L%&9t`#!09$Cs9#!4cIk& z_?s{GSv2d{*AU5t5Xb1q=lgDieNd+mw-2WNc&Qbm1;wv129S@g6`a~P8F zE*%ZZHyM?_jCaqxf*Lt}o*ZUzcu6+%ie{?&aH#0Q4r#vL)J})o98yGmu$vXOx8zc2 z9d-%ESPzKGqZzW1*0bW5bib1%P={b65fp`=+IT2^g!6qj8lCSt-BoKm#d#0x69PkS zs>DLYm=DwK#y;%n*&G``IiP)=#OKx~SJs@oEB!{9xo@dGChmH=VaOPeSrr(Sn0dBU zJ+*?4u@WI)VDXXjT;@9Azf%pYRBZ*?p;W<*q*+wr93G#ilq2G@6)!tni z8+8hcOrPolxVUTFMUXa9TOW{{mqQf&G~eAc9D|*b{C+jkUa^(Gf_QINx{z1j@*TuV z#}Qij<HntU*E)?u;loOq6Nda6~;uv+A&k6H%TXYxPw;IMs7KkKlgE}*-o&? zfZ%Ra`VBwYx^%}|&z8$dguBXiss+DK5vdhVZJAh$*?7#Iymd#_2$gDC-(KUhduUo| zw_bU<;+pBhZW!qd7tA*v{Seb@Y(~;(8tP7CuRIXQ;b=6Ym&0)l5a63g>jgNJ1C)7F zuEbtlHI@h0nTik+kEFDIzv?`m3E&b-tLEHMc4VDRj6#h(ZA*d6*kF>sL#N$*=cr5d z5_DPvo-I(7pU-o|+jDxCwOZ|1Ee}@OLjp22Ja$F4uO4wMVQW~g^aYMz=TwQS_c`U9 zDkTqN4eWb9xgb8(5}~n6Mp#BolUWVNJuKPoui@wIy?nDOZ3nlw^rNs!iy9hh`05ZN zOL+RKH{e~=XDdPT)En2-E8tVDxd@B&>IjbPFOQd}xbAj9;saTf@qK{!|==NG$7PYvlpLEx9@2M;@6b_RZrOzF29?Y&Q(R?dyf>fBs zjaV9_d7(IYE{Nj_Q+O5QV8pQ`D;j0RwVyV^n<=GP*@gyLkgSH-hZXPpZ^EiyO&W8- zyf(cz$;0HkRVjJ{4kiXK??~RdgLRi^wb$8w+&#R3fD~E@8(+igm`cNTIEiy+x51n7u?ErHk@4E zQty$rmeTD@x0@7oaUS>i$y^%^iY`I)f83fneuC)xxHfevov^HE0Cf=2oqw$O<^?wzS8b>-F|9n)k?kwaIyf@w?DZrqx@Ao(rfrz60i9< zh1Uj?c`tc&6h@-p!?HQ{hqoi$Pn!e=ZoDF|8 z3d-QRYBpf2wH~t|Qc%JP!S5F3SLJiB6+er|`#Be+x8+7%eX8CmQv3`Q-8bl!xS5yw zaXxG#iQq?IeOfVQUct}CCtq;;!Ubz9I%w3eH38|vV`=;7#kr+*nqyx!J6?zO%#iuG zqGg&T8baf4lH{icCDZ-7xy?4|$rg<-obtix$!vae1q9;}sGF#{-5}OeB^1ls8^{8J zo(!1jP|i@Mcb*5q3{X!#8=_)r(Y>>1#B|NvUefYW?x5B3LT#wpEZE)&A(Y&k+B831 zuLi!aB{V%s%e35k6c!i#>0F#yg&^#h2-8%y7PRN1`qcqXU*QY+=dHq(4WdTbX0thX zRQ;A(M1$FiYKC%6y}Ho-*d}7mnynaOeF`8}aZ$P8B}wB%e$MGQ>&cQNF4xG7!v^yh z|K9feWk^c!RrlkC=xPT9`2fO~F|E4Yj3t6pj-AtytK)KTOks_Wq&HEhEjy= z6YO+UL>^kAB{MF%YqUg#Bix9`<&)xErB>;*hp#$)*I96x_zR5|7b=ZCr@Xi|zRd~jnnhsaM#?a5-gR#e^4`Z&KnOY!%%i$tW0HxkSHDC99 z2qMN*tx$>Wc7JlFPuOuG9VYe_;~mYQIsd^ zm&a=9fWh1)qfH;yw@m1)%7SOg&;fjT9+;_$J5;mH&djmx+k8!5`3E1-dXG<;UGi$& zi{NOnk=dWe-YV<2yPW|7!j&nfr&JfytatC5F^3jqB@~TnBq5awr%#>xC0BhZrc%^l zQWL>|-rrMPsogWQP&myS9>)g?L2YgYhwtuYBsn`9yRR0c-*}XHBdZ4E=F#Aq(N?fcQHv%SjkP~FA5*8e=Mt_Q^*a3m`uTAish<_S-W1cjYvxu^UQD2v zYTG;gKpTTR@Ox-V+y%Wna`NF%ag{8iTBkx(!Gz5ii0&%lv*Xw9jhF|6(uPB3CZJ$= zlr^ngVXf5IV2}KOF!$ovN^2I3q(cz-`SboU_)prtef5uEQ4FBT5rHDug>Bnk$Hg@& z^9*Fu7j;oZemXobvGZ|=)&aNDFySifGn~gapKA*${rysVj?yKaI{2I+wE@dMzF(Ha z5kt*;MGo2hsOGoP6;=tF;4LS4J)YvqMV@&opa7#pLMAo!DCuJ-l)3Ih)`CjQCC|^4 z2&X5G7``YzqZe&v(;6UlsLETX-TEoqaXuxk-16R!C8d~j;hkVAj@*heyzf+*PfU=o z!YU2D2H9V;3NDF)U%cnC;&CR+ax;lnAAh0M0-}vJiA~f<|M>fO&@PwGOo*B2Dm~bM z{GoBc3bg; z#Dgn^Gi2(-t^EXMF$qTJSf>Goqn`VGT-N)t8?t4K0vj-^%om3rN02$+ox4QCME8U_ z8_mY+h(_lW;zQg-)wrQRqfZ6DK^N)?{|KVNTcA82aR0vSbxwS-!*(Vrg{+8IUA$c;Ycl4=hYrqAI8w?ibX@5C=$|sKLuvduQC&~B@FhvcgfT~1?72R3F z@z+qPs6WJ6?8-Gu@=>e@NX&N>$Pt?*59}YO;l!5wd^+ZmZ$OTuy6Zx{CK%21ht&!V z9CuuBRSGuSC6DfEjA8-0nJtNToU^{#dtsN#r6vtow?DU=JsYNexWI^S9MBmfr!e=Q z`hHD;+az^*>_~oEU2+MyNoYLLTm4U=73ZS5RrJqy%yu#@jFn3YfYS4fgS)M!_3E8S z-V$8D|7Lq!aSlavMV?Lm9(@4oN0y5Oos&t)DxApKznVRmv0TJIhwN zwEW7mIL&t;N|bt^J!VStQC`4zJ5>Rd@c@x>vLIB6MS73NM>VfMKy*a<`x%CAWzX4q zKp`JklENsL^a_g~mTH0BPEK`o;UA++!vVJQgA=Zc7{35~*UYk8q~65c^lg6<8kR;e zGxV(45xgVStJOh41s*7V1aV}`L)UlPs3g$_=XqfO*^NAA-}&FqlIo)GFAcW~^AH>| zng&wLX5M1Wzf?A`{4wsmVOadAk}?X=-6Qs?G|_0UQMb8#(!QW;QRiDVX3EhoZdNTA z{tzC6oAPTpkY5zr7|woxO1%vopVAGs{U3J`mTzI=AKsXZ)i~&VFpCwfOsZgHX_9@V zOBDQ;I{Hcu`AbUnde7PN;d0MIOIB>&Ox8M*k#M}Q6(TFj`f!T(^({`IlCo=MUg^LO zQ8OEqTd5V|7__!O3-TOj+eM@v^kVah?eO`^6yWu7d&V+u6X6LeXxVYS2F`X9Pb6u)*naF&bxz6-d8zH}i)VxYulX)HOBBSW?6JRwi z=|9Wq;x%25aRM(U!rL?f1JamRNZ%WrjHE9$=PgaX^SuPeTwmBxz3)WE9h>wcA&Nu3 zQVLBxxv}*GHgJAUq^@~7kV(OhC#O6uI4*pHGVs@WMpRPpTZr`cABo{_p}>AOy)_x6 z!(bK`kAE{otNhc+sUz=JHQq(5s27Ry%O+i%olmP@+3HL3y(enjI_7`XcVkb}IWXS;z!n|bQLD>x zKd>@=T}6TM6Mdf%G@5xybZ0$AG3kiw7nl`C-CZ`l9I74Sg0Z6?}X6UHMh zTjd-XmpNGbX;wVTnL{3}*#2>$rP4!E*B~jKk~Z9;WYcuOUCktfc$-ccjTrLV1A%cr zMve&Ba-CY0Mug|_0{gC{v-}L*19{{XVY=x~pxvZJylI4Qz!}0XV3YQz4!zT%bditA z2}HZK0MLC`3OF_DzTR4X|K%>GA$Hhie|S~ga-YqbmwUx9ip3cluBA2hAwcm~;V57( zt~IHS%3@Ic7<@K*ZgQr6JQDhG@mcGQMq4H7>59*vm5a@0+^a;{*2SGrx9e7L^qubA zxM6Do&!2ta^YGEitE2~Zdpwv+$UrIU4 zD)bRpY=G^#6rB5f*yH*RfVC1ZSBihF{$AJr<5T+{)luu4ESoKi$fm++v*eu-fnW6% z0K#Db<$xRGvev6qZsU2U(moAGu4!G_%3T<0sg`Z{r-i^;*@CQ^KgvP98MkJObQkFgZnYboO(jV#bl72a*y zG+RX|RdjF>!8ergwth#-if@5V*{?v`)K0K5cb{iZt)}-S!iN(`;6~=P#msq1mQNXM zFbK}8S`;68U+mgfr_dQ~echk>XMCB?XLef`eLuICBjS#bNqk1&{(mCc6i0iLd9S|F zjPK8ax~;~WoVR@G=;S*Fy6J|F`9oqAVLP4 zV&`!TT1jkuZxDqSmHhiZ)#p!KEZuzJO&4$c<(Cb>=3oH=yc$Wf#c9= z%l)KQZ{J`&vn!9$n_l6z-3%lEVj2d9vs#V|c1t1UIQcRu@JuS$yaDBYCYItYPt8Il z;f217f<2~4;T*sHv-f2$rQC|wU(nbHcroOf@(qSce&9ZRF>2BtXVrxRQX+kiPKI0@-qZbnv~w0u>UTmhBHDQ zS*ZUtTvMFNMYilCx#nFo&nmgX6{ByBt^46|5prR^$k)_oyJ)tozk-lgXAwq+wT z+~+sEXqJ$^Nxi$zS&qg!e{}dk2=7b%yTuIA1 zyc*t0q`BfbchNF_>ip?@7YF7)$g+UVp@UFZ&^xRE*)~0+;r*BeH|qKTnpTG2Y{$AD{{E#>-j(eShqhnW55?zKfqPCBcfUmIGiS zlH5Qv)i?=g&16yl%<8@C102~8srNch&CIQ&mkRk7agi$Aoz7p<&R)_XM&kxtXDjYq z6-oc>;Y!EdF5mDdY3+$|u%j!jbGvE-R{a`5rQjMjA5EuLv*D%Ia+hNh+O`ePh2q@V zI~;S}%fXBk=-F4cPmsI}yb!PagG4pC>uJ$wlQnT4de>qUS3KT#eH7ElCqlq#{xysC z_H}fG>c(K`f?j2cNsXuzeTE4seY(j}6L|J4ugTA&8SH(aw!G$SLu{3$>$QJH6`+7Y z(TUT`TPX^F7eiIS5m}O?^m95W=PZD<9D=Krp#D;9X@aMb!4T5&+s?xK zEBM>;YqF+aTcb#cp)~|4G)S+Tu2AaPD95++cjuY*ekGw2GaK`>*^1~h@gsP80CS-0 z#cyBoi>^>O{_(R5tAp6JUpI+68w~%P$?`9eVA$h}*XduXj~ZKPC82hgSssY6(>c7k zNY??>J7ZgaEZ|=k#>IjwA~LPJE*OmO6IP9jJUSAU5Zt33H{4k&Ay=%jPQeBO;V?fE=MJX^<(HvHQ?`3Cg57v?!k=QG$9C(V;d3|sOmMa~ z!5-SV=b)06y@DJQRApdsRl)$;)PGg-1b*y~*o9O6+b`MF>WTEtM?PQ7L~4v42hWw! z+-U$Mi4TFtLG|0Xh@rkJ>1T^QZ|Bu}ymwEoVlMp^{hOX4#{a4nelB8+tl){~Rzs(AOy7iJ0{?LotDYSAUVLE^XDlr0D-P z<`2<-Z3bS$MOM1B)qBZ0eI;VH(|pA-2Iujou%vY9w$0lsX4oi?D9Aak%P76MPQ=H_ z4Zg6xRNK?&80j%f*4QLp<{VdSw7GYWJ+I#WrNPR$ASVC&&i{`$yt=o;MxLcH2`PSx znWL!`we2MQy zNOF6yTHsKF)5EBV#E<5`j1u^J|0N|I`QiTKTozurt*MGLla+_* zQ8ae;lPWYFEa_{jGS+1sh9_-R4?&{kx7aHCAjgMG`nRhG%75K!374tYnGX8q=)2w` zxyJisAIMU4P^hhYJP}&`C-UJ4&sqZ!K)SFRaFSN}jlUGT;+Iv=KGt;VP)_x_S>!=;P6S-=}$yi+x4<@UyZw&?9Y0gnzoS%fZrgf}cw7oY4v?##49 zO)k3VvAoVVOJQw6{fbFVE9rl>X_W0m3cMk*C0t!kN;;`ZWOcq_i7N_bX;nNdSbLft zJi11c{#R(h-C@&!p|?h597^5Yf?K~Tw8R`Q>-$lll!|jMymLXT%#i$Q zko5v-aEx8XZ~-u}9JtXqqa-xPVWQ}=voi}1ADMEduM02-&65L{)#U=_d;XOP9rD~* zYPQ(jL@ek{wK{n(TxahH(EWXG3-u%H0VCEcHw(zZKf^3!%Q}^wLX0d5hkuF}-116S z_NNvCy$|XIOvdeA{vEkxy@CYpvo2g8`s9_j9tyUbVjlcYS2x?(R-OK0FX1QNNeM}M`_z4Uh@$!3trM0Tx=iS!bzqvT*65UH{Z6DdA6`9-T#*f&l^}E_sl3t z<|zdA;dar3H46RYj#|&m{d}boG;-;(>Oy%%s|Sij(MO?KZ+Ti!!g}b?VzlE1nlO!e zJLc~(m!wTe|+e_QK)YPKFRH`EH^JdrqcxJ&d3%JrOkAp_(ZG$48t=r?o zg)_Xg4*Je!iRzgkT35sN1bU*;8r2mctMx7OBH*tGf?Y>H6TxdiE?9AtG6W)` z+rh3`qsYm#&tUAM%^I}%F%jK+($_G6=GYHvQ#!+wiFD&PHAGgyVE?jH9pVZ)C}}6t z(Mi{k3tH1R_GE+anlAL*7eSQy3xO*sv5WX|kvY+)1@KMn#TbnkV0d1m_q|m{f{Qbv zlS5(DgEw=d=d?Pg)wKP1odnHscJ@K1V^q&QNMp&+P0Z}~Rc$&$iz#Ceu|H27X(x3( zUO=nTXd0`mZ)8aQMX<(%*DH$O_H3mE_f^b$PwQ&yN2;P~`Tf~syTs>%DZ#mSCV&;e z6(5V%Mg1`yGQ`ah^nOfiEn*|U%vscH>&$?_Ry1{J_jilwP#4$e=o8JiE?Cti<}9SX zT5$!W7CJ#XaijEuR~n#%Bi)O}s@uUD?QI5?=Z)$QGemrg< zYcZq^@|#(=;sQ7x*CjSiZ3CTPRYE4UyG5#cPJZ{rEH(8)TgCkU$f}z(dTq@l80k6x z4Z#NFwkFA57BfHe)J-M*&Nrw32CDs8T!w@@?VG|DrD?6A%nu_>3ESFGA>P=>+v9IQ z_)~(sk&iE^P71PbO0orJ`<<4a zO3f&fP^BK#g*WAUzD}6b4%9jyNl&xAOgnB6<#K=*yslRF(4E{-?Mlk$Rt-$eoVd({ z?0b6c?oCYpKIP7U?Vc5!vMvWC6EtH*kx6_kL?_-l;FkY}sVLuY9oFZ76YdOCd^mum zuC<-h5pAXEaWlS#8xBror5Up`*N&<{M^x>M*}coIkEUC^UP^SynnQQ5sE@2`ffhR) z%j+Z&QX3t1uLISTv6pB|0^Tl?pNL&Ah4*EQRO7WZ_3sZN%eLpIPuG=e&FV-XF2a&N zdb1|z<@0e&T|$8!1_Z~IQYC!eC?g0<>j?HHv@N>0L zJBt5v$V2zX{ggO%FCbqa9dGg>L_n%F$ImxoLa^h!7H78EC>K4dYSi~i-VFz@J((4W!Rx6-ThTgEZ&x{9Jk zx%MPR>US0v}5mrUL zrYeY}u2=Zg= zxGOI2-lQE5T>7LF>sQf3J7z3Cq6b_4#sn^nH|AKX9K(D++EPyR2F)A-66{9V?JR3k zN@ixMz$MvE_#=)xm-uLxqnUMs;y|wG{q!U+e}mC)=K$zu56mp#2e(s)*2J zn*lU&KRdMa%%!J#T6Cc|&B?uL%J!If=+1j-(XU!|nV?0y8r-FBZ6IR4X;TSF6k9$G7Xb{x7Sy?XoQM*Z#%7p;DcZV8M=P~2Hv ziz}S+Wzq>mT0w^RMEf>rxcfqc;L4kmOy120M$49*;zFJHLRL z6fwtbyJaSry;R?<$L;;YOPUxD*U@7XO%~*IqowKeBV-bo$qLJeJcW#6Ay={H$S=J* z1Yj5-Zv8fURE`u+QFDJ^BxFin%GgudG#(VLn6%R(2V-tE{pyzj89L$VYK(&M#|%|) z?;|4YI!PtXzWB*QNWo@tKEV)XPF%m<5>{SUw&&B2kvoCn#1X zDu7O&m6o_sTtSbWm$#t@Z<1y}!f0VehO~a3qKG@oPhoP-vmH@BORT#iVtXmC2)E!*uM)Q&x$`WR^s zc>;ChlUcs|m)oqHzni0*qp%7|nTuU^-2Gdm5V@J0(IY@}LdGcglm zmaCy9SI$|Kj&Xj~wmM4{4ss9bFBJ~yciMC5^1HbvYW&tKeg=YV5;aCj`*aLI4UP_+ z1D7z-bmz#qHoX;O=UFE4K=z%KKXUT?^HTbehapho?puxIWzK5Hx9H%7P~Q_Glg5Ls zbvJIWM&C4Tg(Km5(JfOFM!%`8wE#M?`*GEaM%F>^s;;diuFSVLkX^iVbi|CYV;4B6 ztMj-lm)MDmP;7|Bz_a;S}lGNv+5nb?|Ibs zkq)BjK17&7QcuRrKKEkmJ^91&3r^`ZdUSE`^f~lpRylTPNH;a#UgJ$@;FxAVe^^{` z+X>NnR?U`^mE+H5sMyZIQl8vm31AOd6xYp5_9L4#<7>+FdYrj2;vwNnkmyt1fBG?V z_7v|H^re?P{Tq2%NPi@W>?Sk7>?@idl5~E=A6>q)Pb$*07~Efc3rK+IO}9LT2?~~X zftKe3Xz%vVz|QdUE{=!Ak4l7xZ}0A!~?eoDPhQ+Du&ZZZBo*E0mUbOjpSEka}|GZWp^6E%%`DFKRRi1vU`sE;q28?+L9 zN=LX-jiy_wl1l0^N(@Du-UXx%rTFaBWUp#VOS+U=Te)#=;O5ALvQbZX4T)1_+6 z!Vw9p+8^|k0+?Yn{7wmqILY)Wr-~4m;!N?FK~GBIljhX)j}SXSKv7D)Pu)8&W5MCv zkolQ07yOo24Ij+&E{%VL3SOD~z!o%_jW@aM`gWRavm`>(G!}=k9L`t^pM*N*4^!7XUPoVU4Xi)N4E8IJsM##_DGvMF-f=WS%Ng&jbU2%o2B90LyFH)E zTI%3%=s}(CbX1f5yY#khMtbdv)&GKy^y;~(II4Cd062SiTr-Qb<84uwm&!f#07%Ww z!bGHCHrP;aR~Mh7D?HPHFK9dwS_gRltlF8EI|S?@FSd4&7pitCzOh>p%6+@{wIK4! zD`8T{L~qV)0UhsRHnFT~A`Ht(1LlaA!QqGS>wS3ZZU+a#I*zVouLDgdvBOZ0jc=CX zqz(X@q9ZpP4O_R*XD?da%s@VR{1ZlD38C)O0OAKX^o3P{s($vhXzg~CIjmw-vA zVpc%O`I?s5O+ZF&>)v(YF03gl^SWbC(MtLXwS^SkzZ1DWJv9QZ+%I5)_PM@=2yBQ$ z0}1Itd=AXpZ9wtW1?MTkATAp~-MeAYg5)Np>{Ui+ z#I3o9bWtpT+N5V-c2PWxv&|eZYTWIAM*=TalL?Y^Qr=oKlYO2K+R223dUdN1| zfTlKL;lJt6?|$6uu$o3!O7}wbDXao!qo+?r0;0792w=WaF~ar74Xnu>kFH2uRmZY? zGWz9wr8llq?y`>WI?K&g)jn*Pu=3CQv!tzAgH^J9B5q&ZCa(jEuGDl+i|;@Q8z|P3 zVzAkjQ1pyLL;g5F{>AIt$xXFt>F7I$y#jIR$#aoq&ivC)O|Sz`I+Z@YO2|4iz1=&9Rlw55A`67y)@6+5*lk8#s7jORy$hVD? zJuD!>qW>9?Fk|GPgg_dMF0Jpz50F~GiinK+Yg=&dLRW6AtflU*E@2y4v7rAA$lHxy zxO{2BIw9*f`cJ@+fwyb?4kjZ;KGFCc66^^Oj^@nsxL4im`iH(Jy|sEAP5Ih(Ecsv1 zZzQ+DxD@Hi(|HIMs=`73!(bewtcSs|}U*N{m3;q{uj}xOf*T#wIxH{S%%@9*S zqnVVCd3xHOqd(jZ9r1LvJw@~X11j*pL93Yt?S4CS%+uHQZvY&PDQR!RKtH+VIBSzZ zbC{QXZp7GrlAOXTU}4)i9F&49Kw`@>tnx3x7}tY&IDuEM^B<5fDJ)0;82;^k7w7;C z|Cb8}k>2TC>aCeYg9PuUFZDM59cEX}zJc)X1TX&`R*ujiXyK(czd+PB5Gg#`vLX>V za}71wzp9$?urIZnF&s^(&6IYO44nnEmYfe8?;AAD2v}vr#@^6?LRiJb32IC@G zmeO2ZP7a_iU4FEvo(PRMg!80bR^7X+Dub1@bMXIilt|kEml-5kfXngH@_KV1-Y^$$ zeftuI2Oga38rnHj+Ojk_RLWc5x%9+?WB4BSfW@u#dv?Wvb-Q+Ht@XRWd)Kk_*n>K@ zZeV%a_|xR1kYW9JDzmgQ+TeO{-61iR)70jeJyOr$qCnCY6eNzW z?}8El#c3CJ=hXTL8pK!OtNR44@LyKgwBl!V-^|1>YrloizCPHTRfE~Hj))&4y4y(5 zYPbIa?%U=gL}wcw`rm;X?R;Oc64BfCpP{jN3;v}!G(^%J*}jbFL%1aA`ZvTb-7AC3 z%3Y=aXWrXeREc)?(!dw9v(<_ z(X~wIBTavCYSFfYaz_p=tDgooV6W00NdnvFMOP1KT)hb{o!r`8GB8_L2rucR-}F5c zBj}fAL;t${HhKrbk-$C&YLsKI(YuEb8c54^F#tnL=sW%9C?$r6x>}?<%b99u-SR=R z8wguhRNIGGL+PRmwzk-l%bjgB@OB`}>SN4RfLByf-({dmTi-2QJOtU$NH2`o5Q%99 z#hhO7T!O}LlUnYdIjeT9@ZKdN>s#8kGFH*J05uUK)-(4`1JRCC5(rEQww_n}V@7RI z`ggq+Kz!>{`ueGZZ^2}(!O=W3;VlGZS(`SdU zs#|^`@EW);P5d+=@^;&du{@~*@{(rj2<9g4ae&e?^EG!NSZ;&aZZ95o&RpHtU9Swe zU>?mKl4v++F}=^f(vz+{=2du_$+=)8_L zU|7pvx2)-Zt|;3%QXgq2Z^fs3fQMUunO0ieKt+7_L-OTPs#ysxZhh@D5f^I4{NSL) z2pohJOi68BzdBc+#l^+i zBpb7Om?_@754ZH68z;+ek&nFEBo8*w zcGhf>A8G#6l5@*b)Rt32{=-PcnXgq+kMX5MEZQ$qf(PxV&ohSn3MMaYlj~9zF|9LA z_v!I7TQXpSr$6_}Hx)$cX~}jv`h%kF%I|NXXtY<4k4Z zEKaCbyz;W%5AT=%djGH%&*pxBweH<;&fVucX9whN-7svPlMI+}sHphD(~PrQ^KM+f zQh7R`<`RBoL}O-8YMR&8(4Y<0b73gH>F3Ej8u}V5kBshSh0F{cP!SC^+^ay(Gi^rV z842tREELM0&m-!(r;+^x-moywfOT+-C31AtwbcjWlV0L89E1JQxcKqjkN->y-xK~T zvUm?j95KJMxVc3(=<|4#bprlZxl}i9r^xDv#(e(ksVhdO>7vu+MSBW#vX%dA`~v6q z5ek2OvGjExcCU3$wdr2Z{H)aR(r+wofj=D{f%ny(Y>+n+(m$ght>RGoe9&^_{Wb`a8QT z?uUn&kIawtnEaZ$mVo@tKgr4)HpYgv^a1dYBnxv93$V}m|P1mj%(y6i9*Vdi)$eO_ieYK z5$nT;^f5=RK_-@)iNXa=PARNVhvAMESJ$wxC0)*j`3eV#UzwmSvqneJ8wq1;@%M-n%9jhoy0QwM#xQj?|U^SyMhM z&OI+(6<*NFTRQiSoi_nEZ$Q5#M5-m|3mWb^g?8@5I2e+XOAuLm1U zv!@sTO%dkpKj5DTeV=4Fc5~e-9AnJfEm%L$_!v+_>JwlxB#4glAIE)yv``FEax!jb zS~r~`h{slz4hNWUO6HsA72a8i6wKK9_@Y5<HT<(?lb=cMX>P zI)f{RDFHuQUZ&iQe?_%kzk193DfY+PG*yO2)qPb{k0&8tqA1T;O{?Gb@FQ{9dPk2| zn(PvW?C7z%-Xx~#Kc?T00^Mvpzin4W1zcx7z&Jf)iAbTnw$Tt!IzVRQ@aZvMS)#jM zoXEjL5=9ksuX!FvOHS*z_M_tZ&Uaoi3;T#a&UjvAI3FmZn3*-|pci&;bm(klIikv+ znhEf6XRqtdc>Rt~w(H&E`&5@%J1hr=Rx-QK&=vv;l}f9I)liukw@OMS{nLPeiGgz1 zJ#^uNnT68M;?BN)>v|uIaKdQZ$8`FPQiR&Z#~GuuEQHKPEY4D-j=@>B?1HHO&TbpC z-N?}^N#SAkubfgM{B1u4DIjK7VH?+ijyNtZ>!G0H7lPv=Uk@kl*A#0@KiI!beU$=! z6N=HWAsLSP8Cj*JT73!Li|~@Pu+T?~;U;TSfE&GK9rx<||jMTcvYLc8TWx zDJOta3hPte>rbbU0+Etbl8Wue#~b2s^Xy`6$uak5vg%ehEU&kF-Q3AZ3f|xJ#6P#d z-={mDDLsJ{rFIJo`|A zsw46?K^*B&Wr*qjk_;txCKRneDu=%gZC?G#<|%qqnb=FL>XKy z`O|Qz8vi}9#>?)%tEfEw3k6F)dTwlQ47x3Rha`ILx8pi`a>Own9V?T!O?mbK79Q(- zzAXkWf1Q7Jc*q(W8~44s*%2E1wr_&HSGT-kwhnJdLRT}qTEtyS?ITP~WLt&=9~V9R zXk_EB37I!O1O^#j20fq>xFMX8%c3Q1BBxen0tj;4e)rTL0i&6m36Z;NCym<1~w|%clvB%*Lgn)Sq zK7(=dl9nevsV9Au)y(><$7&qmTw~M~a^_h%vit3f4x&8bt8WcQ*Kz+k*p5ww5}JNt zAJy}#ZYu{s;+iT?qDZDFjbDX7`BIp5l@{d=*Ij5;A6O~;Fx0QYoo73$vgMMWk9#Q} z?U&0>`>t!cMGO{}j2Fy* zGKPO?y(%$mc&Gd2r-$M4Ur@wHYO9%5fuD-#@AOJS?iQ#fdrju03VK={Lf(e{rbZ|Y z^rNQMWY#RSGocfqHt2Z$nTbGt)@|Nmz?^yBMART*Wa5r!_lm3fMyx^lS-t4diS$;O z;c!fPrvwkqZir8 z`unR=l_vlA*B4DJ>-QNa7>c-~3ZoonP>Cvflp*?)Anfb|QV!xfqU~q2SL?At+A#Eq z>$;g02crAqJvSt0Oe81Oewi=r@L4)H2~yi2Ef`F$V?P{!-V^ptHkWqMO3zETSmUC| z)x~~qyI0iX*c*4=s`We?4>kNxNb6%Mrj12)EgHoYD6j{|5ulY``CvJME3v3#y7G&; zV~iPTW|OyKAh*nKk*>GWdn8ckiFzj4F1%eKH4Iu=c9rP8)78DG%s7-w4_E)wqI>LO z%D{v1YH@k|NG?#4IG*QcwN!l2YH9w8%G%Zqb;10boScdyxolIF@l(Aj7kB^BRM@(H ztn3L-s{MwZMaWDaQ5<%;QHj=1#!vAQ#}~~lxDMlgwqQu4JvDC zY*d3r676Hol{N1tvo1Y$Vh)K5%35^6DTk21G?z+`z?|NcriV+V^!{l0#x zu;>hqUx-Co@RdabXGe?Ce{VF7Hh;|8Xli$R!5>}qXjN!z(7>0sL9yPWf6{5l;RLL3 zbO!znS(&g+C_60%cL}nX<;}_FcSM`H=0CyBn#$ftj+b?eY`41`yq$5{m?rxNCe~O@ zE$sJ4<32x<5-fetT~evI(xWl|Z9g-0)urL~=?U8Rgwxf9x0v4rjXgMvixyRjuhx@) z-`2bOQ?wH=JLUclUWwd>mtA+CgBOc|yJ>}Mu6wt8Em9WmzFy&*+x^?U+Eo&&Z`wTv zuSY8S#7uRQ;4~jayrilAKh7Oj3B2U0{_ldHws#3P%(f-`w|-z%pTwc~bjCRZ6sQqG z8p*ZwS7Wx~ad_(xIy<;rE2I-SFc>^ih&y?4>N9!7yXOyD5$t*e=Kx>r;0R32Jf|CP z_G7Z$3yL!XIh}YjKrqdzhATVbj3+yt2^DKg-340RabFW${^U>U%A&q*$d9u&Gq(50 zd!Vi{?{3Kd4LZqE$$Gek+R0K`zZ8C?5_OZgPrQ{xz7lndSuCjQk?$Pv5IrBo6Gh1a zQSpXFkEnhvI9H^$WY~_Ex$UsTb;G%WhTV8qP%o8ZFKQVN-cCNe;Xn7TDda@~B!{<} zIf8m&(GvGgpf?q?&^cGo0Iesyuu#MsZ$y`A&e48yx8QfLi-8+=Ki+O#bDs8wBen`y zC;g^Yar<%YM|?t7VnZruu`Eg&=aP>+Hq@bbVb+`ZFLya~6r*R@~5wqS)~McJ6RV33F9c^1mu$RwY`Mf4}%{eq|<*J*6yIIPPG9 zeVF{pUci~A-o4vq|(j4YY@%wUY`3lF1krh~gM>f=#cG-Z~w z@0KRTqp$>+Q@5oP9^<2{WjRZW23X)czCx zJKJ>*TC1H}`ej|{K1{wX>K@h`Ue%P#<~?)d)JG3?PGoM5dI&VX$E!_ee5qmtwCg;5 z;Thesj4kzSHF(swmf`y_s;f1kj#riw@*+xLCe}+6T1LCQP7s zcmrP7>UI;gK8Ac){3Z?EjyQa~F}y-&yy1QPKHSqK+S`Y!qdY4E;ZOHsmrwNPg-Izd_YX9s z8dlaj-T( z8m06j0cTJX*`D&W)H^(~@|U}%n{>>@-5*xGgCqYm*QR?@{<#qBaAyU!lPO*5U!X38 zkLI?x*J~&K=K*^67>wYB3lsb=0NXX@Ot8Tz3H~?GJ?2h;<9r0z|37G$OzBoHgu)0! zb5ESO0xb9+2Y{|IR{|7gF8H57Ds!y5b>?_$)p6f#&(;@|VwROO58p`65czsmWyDY4 zcx*PCWszg`?;uZ9roc}wuFo#1&!*S^F|W|5$@#W?LJ?YtJ7TjrfbxFPQ~Ht$BhmU* ziVCdRY)OH5F!Dds;cdQJh1f(jKBkxx!B81>hs>+kN!gsI1Iv-Ist20UjOWATWgpkS}b27X&~ zwxDg+)_tDF#PXvnh53VF>l2>}X8&qn%*-SzKG10K3|jmbDVDhAW^t^h;{Jr8+b!wA z%Gqoce}iW4OAn;wCn^+4^@PDF-zEJQ4|lDJ4sV>eS}+&%Zn$6|6LO-)zj}_Tw8&KS z`k0WElivQrQn_%cxNhUeca_ri!BUL*t@cG&)Gnq2B5ecO z7WW#hEClm7KQ-h5zP1PxbPolanRqBp2jBAv85B`Oa%*ym?lq0i4A|I;@_RbHM zSeioF(r8ruVn1|N`Y-V0(Q0*(axD0GaNWvsz1?4B!(&Vu&j@~Oah-3g0G<7Bz90~H z^}zdy!_L3r{$%~V`S@VFU3-vii9egGDYE(E$?w`4Lup8r^opxl~ z*46{U;SVFHmU{ld9n8A^xwdTH66@ei4J^tpO`Ezp7qa-iRA6j0`3{PRW6IZ0O%^KQ z1TNe7lYhRblPmhV>fv1CWWfWBIL9Ix-r+dmC2`A2@+fau+kCN4X4`DG-te0jpT50Q zlAQOy9rlUO(=%ji{nmTL863=P3TbWPQ7{Le7eGvcC?DJ3eJap14KnJ$Wce=#&2<17 zIVVng3v~r)FUloR7l&tZN1B0n9b7gOD>=#MrX0)`MMvwPpTR#0T+`V;Q3-H6$!poSw823=$Ia5)U& z5fNvV^-3t2g<6`E1ewi+2iJWVlh0X(?D#2aGIm*e#hfvlS5Ofye1}4M;DAmj9{h(z zKVKOO#lI7pAi0wxUb=u>E3K!Z7EmPeZ*M4VtgI=$_utffH*)*mLxFoG1bS`W+aav` z|0HuGq>C=B$=6g@^3IjLZX1zasg~Z@qhEc!=TXC9$ANH#<4cBBYnMybDzU)k<&$PF zctCOyzH18VZ+Z#oJNi5i#~7S9QX3CAHcglpovDuxxc$09-IHLycrzgSKW@SAtQ)be zM2Gh313r$Gy4EOH%sFdiSKwS~+Lv#i8Z##u8((Qifr(_Do=0cPt%o`OahF;?;?h_p zSp5Ma&x0^>SO>mgN*Md|7KJh=$cbCn_Q)9{cTY6`Ou6ug|8eyg{pq;JvncImRipGa z9!|Sr>zGT7o#02;bb6(?KPqE=bb%pLm#(~~Jj0Cf5;q}l-n41|Rtd*V8k;bic5d1t zcBeltUN>!<*`gv|w_>tp0^UHY?}%m2Uz!%MUp{R6KEK{{hce8o|C# z+|o2o&4xB8z79z#e>#+ZbM)Yn`cj9T=)9KMvhvcP$mxASPW(hX%Aa-lN}8%??A?dO zMp;-ca&bB7#xwB72>RCjFQSdIc@MH-Z@s*zW6B{Gy=ca)s7@#a5`DOdF<&|SVkrX= zkz;Y45Vm1O<`)am=513eeOml=AF{>z5>#sAD@VClt70S52VZ5r!K?7$2B2AhX82&4 z&{cYTUqroNyYSWsUu^I+8@g^o=6~Cf=}qQW_4iDz^s)^_@5LX@8eV_u!}WdMf}a!! zZwXri;=n(sQa+<=D!F$l#D*;XavX?aRwrcM3@y%|QtA{0;rN_5# zQr~2;WmYLWqVB5m?X;~aL263Rl%CWlE1B)9)-9H~8I*Pz6}HnvK|c|axogJ{=Ja%6Au~^0gS%I>sRV3s5BprMs$b$({o}F!eS0fmDARZOi-dZ>CSBF$O|3UNH1f_^7OFnD zi+$tj~b2Q^qv>Me%=I{PsvV1?k(d$X(6Kz@k_6FHk zD^^v>F=`rn_c^shKig*fpK0!gGcEcp&pvv*DA-qdUE%a3WZMJS_d<^}w=Hhd`lp>c zj&M&qkZ>2pUlj1*<=6Zv|qnYRDWUco2i#w zxh}TlN9B*m@_)xUZn#zOQvZ9sr8MG&(xne$a_-U>-ng5e?7v$YJS03AlI`VaD}Qib z_A76{uGAyhug!Sre_sYvzx^8bS^tgf3v=+I(spK^YK}zBw56RgL1I1GCLMEdRX5kmDUi#aU=o$n=dCXp?i(iN^nCU#>9Q^hOwq;BPR<4{YB!8eU4G}B zrB?gm^?}ey_-&u(Ki0Pk#xL#p?B6^tqoucC>#_v*D6ab$OFr$0l@y$ebDQRwrp=^O zxD8Qg`a>u!sG4WV8XTQ77g7Vi8?w=4{zbmpnZSi0I-W;$UtF`r+>gf(6gx!0&?nC7m z7cM**{c0{Q9DMqbc<^e9>A-@0RqJ)wl2TILXV+(^a*;pTNy~44NNIn?IJTkQ<*W>Pty38I`YRo+mbDj0?YI>vE3;IprT*KzI__eOB{RZt;faGLy_)ur$ z=_bfU#n1^G^h7(Ws^aQ_lEsP65 zM9y>5ii29okbx*<^!>{*F?Zp8H_o+i@6i;Fw~230DGcSO3Pgv@qmu zg0UK4r}<`wJy_yi>^TAEEQg&VO3`s{T+Y~n~r4&G`$RlWM{ zY<%tLo1TnWdnZ=n!&*=|J?G&f!2T*#b5;4@58{-<*JbE0ZgE1|f4{1Fp$7Ux4@TL3 z`3`Mcf@cko3vq{WmqRl(p|Wk;Q=a@Y?|Y}KUu~6>HR*0X5+`&m$jo`jvRgdrlet3^ z?Sl$as^PTWuhC@RU(M%T5I82dz50?B^Y3MP=KG?|Z*w#Q_bp?~YAGt_bKHHqS+D~`+(mo>w+ZOK)WN1Vz|A@+8pg9^s;HMW!=5S;FvKjuz z#~il1`h1Z?x=|rCy$5O-7Vx7+>s!%hkGY{7orovJ-C?}t0{eBv9G&_6Q?39pKGRig zqw!Qq8TFJ5{`sjCjIXPjqk++uuiRIZ#(uRd?(p zAG0$>wle=EKCWwWGqQNuV0w9?Df+_cPdcxDhP=k8d=9%a`(Ez--P+eldKcw(X_?9t z+q;~9{P3{HnN2d78(S@-?lgbWp>+lxXz|@-bLZB7U6qYG_LXsxI<_M!(u;}dpW08( z-BDi2Yrk=}y1B_IC*quhy4m?B4~}kcH!|6_XsGo1MAEaAU&v=CUd>B5ojG(?CrM}S z$i2;BN-c8cS0azx>3f@knEI&3N>Gcd7U8gdNg)Eq&;U<4aN-jcwP6IJ|k%{-Z0(V8rSR zY5R@yX&8O8Jn6s3_AQ=#71Ax&=Xs`H>0I#X50eE^{5{{dwSm_ZuD!>W?6H)RJKwd4 z>+sIlE7N6nzNog@&PZp$?})wSe&5_k*_Y=mnfs(|_Z?4HNAMn;fSfyeA6p{Ws^@st z##XXscR;|g&krCrG5Zh4MQwZf^nheiLPMvOWpl%WmyUTgQ0u&3)!P?Zr7#kmr5DsB z*wHZ+dsJ`kcR}2dYEx5pcG{_i^na;c_0;#W7Ro3E^FDek{JdP=&{X3c0casVU)Cs-H66UD9n1j+8fUkkKV7z0`nQn||(tk#X9yaPFDW!^x>_ z?$2cpoRM~JtvlJ3qZ%tTgYQ`@pDmv7s8V_?QGmZmBb5fel~^4-S5rJQE098LmVVI} zMM&BxIv3BbaV_TapU_DFLFLx)OTu@eiD3 z_s3fycWRb33#dDkTNKMf%GrA=LdwnF@2Y}S9oX?{q@Pq>H1YVp)!2KBZ+9-q|5~0N zE|Tyj;WJ%hn)UBVLrf)w={}vR^(H`ijm@w7fDm`_-@x{@XYL|EEJ&1Ym>%LjZ zfUHTWNw{Lupp6H`v4F#+t%ixdaSRaUTp1I&&o^eHHC5$5cTB!pu2AXcRrFnmiB#M9 zsq0ir<-QNTf;08gM{a~)qu%nqqZnErOy9bzbcbEE?I4V0_^ra?f#jVg&qM1N_A$Bl zcXo+rmvvlNJ0_1Q()eYGC+nAg>O7d}m00>!)VU*~od6=9+_CzmZcHv1wO0N!92~vr zz>Sb?18IHR?nxYwFu+L4>erp;ccLvXdsA)f%F>RO zjQ2QqlNjITjSbu;@)tI@OB%j9&D=?YZ5ey@WAWl-%bmm5 zuFLH^&~*j1JupbcU-JVd;c%VprjrG>FE42C8{QI|^4kU{slN8^nB>JTnz5m+c zRnQ)qTllen0Eascb7zm+-V0YyjUpLmpx%Uzku25JE)FK^D5<81r(_uyh0q++LEk5t z6Zgv|@7K7m9ranh@b?K$8aZ=6`jzs&d_9(KkKSj$>MC-lMiK-5mw$;|ld3%IL9TJH z@+pM>HSE=x{|?^|pH9V)w8|{WHSDR>n$dVwpNZ736J8W||- z!3o*3kH>~yl{uno3dM^Hx`q>L^VfK2-}Vqq=O=ZK2m`B+If1uVYo8~VT^yjxit6;wXGrg7(n z;QL|dh$cdtEQIHZw!O;mFvDcsVr+{ZgmFqW{m5vLb zfu;An?Ee`1#cJ}+=`U$LZ+c$WT?w(9x;%Ad%67_5{<8cPd0TnA%*&ZqGHo;Mye@lP z@uKp+Kc|o=*%T(_J|(Y96`_hasdz&1%#ddGF`Sy>F~#GGr?NE>XAvhfI`(zQciinr z>X7P4?r87$(s8}xeuqiNN(ZDvwu9XP?a=Dj*3sQD(vjDp-(eKQh|bcx5a%+Prj(NN zGAA|XbxvB&EAw=Sq({2VH}w-9+yF=ae>j`NgQ`KhM#=e|@8ne~?l7Kl&*4A2wfX zpfU>l14g&~+cui`FLBiRpY>?%zuHmNf2yPT|MExu{`uuwe1wmV{u>>Y{UygL zPSzl+leJJsQ72I+P-jrbz*C?q?gZ`(>NH9Xbrz+9I)ze2X`+s!G*Id&E&fsdNp!== zzxjo&bg!I~(AVlsW*ylJjti}kWK-+4i)(JPDZq(8C&H(O4-g z6sv_rVU@8+ti{BBEFRbdoCl5q*8pk22{;FY13Q7sz)2twI0SeAMgRub3S0zE05^dH zfE%C(L<4&Od*BRk3s3;O0aM^Mum!LLjsZ7-{eTOg14IJ<0at+2KrnCwxC$5palm%q z5}*e719AWiFaTnKy?`Td77$Od1AG8;AOYA6TmV#n>%cz18PEnIfL(wsa0&XB|!tUZ4E(`V`&eWPXPm%moI6Im6sxt}u9yQ~#UTe5(n! z)A_I-w;q?e(;*sDC#OzNotn~+KPi7&{*=5%=E=;{nWr)}yiR(Z_B!RIF>rF=^uVbB z4U>~5rxA@tehi%p6EL;YDQ_CCB!5r&UeZx$@4WUV!SCz$r#kQVoVIHG_PtQYq0gZY z(P!1?DxTWz)o0TO?}PRsA?G1ZkjoGc$VG@7#2(@ev4prlu0XCrEl|& z3-N?lL);+_5Cp^u;tH{YctLC+a0nEFq@Sld(J#|I=ojg3bbGot-IDG?ze2xCzeI=8 z9qB&w3v}l=hd3nNmhMTnrn}P}=m@$M-IZ=f_oCa-;dCe+i9L^XigS&#i}Mn@)FI;F z*vnWC>_w~_)*kDPwZyt$uVAlYFJWO=N30L_0@fL8i}l1>W8JY1SOnGz>x#9*dSPv_ za50gQV(L1H>FOb-s2gApcmtMz3vdOv3S0tUfTNgT7sRBp6%)x?Odba@VXVX?u@e)+ z27sr!dAhr~ce^3<-CU_|UNLTPfg4h?%jtQSN49mgd$vP1BHJq4HQO%RE88X;o(;`L zBF-b65SI}ih>Hj}ggwF=VTo`-TtQq#TtdJQjtC#b1%$I=o`Ks3wcxM*!9{YxUktia zyHdN|yWG3GySlsey9}s^87GtOE2M7yZfaNYWdEe`Fu?yZ7_`$(P2&*{_Z%t!`*nG%?{A zx^Q7!XRbTfl?%6UvT(C-v4B}PTew@eTEJOOEH{=53&wJ0xwBkZaJ&=V4ex@7;hpjB zcvn1J(x=mX+TQs|lY4-TH`*-_y`g3?~ zye?h`uZP#p>*jUxIC5=rU2+|AJ#y`G-Ey6BoV2#IuC$J{p0xI~?zGM{4y+BkWFhfvK>VrgmVi_)UfoYIQY zyQLpWUzHY@CY63E%_yapCYI)xrj}AmpO=zKvrCz!_e=A7@}GCsg~(9CLURplGl_yg zlOU52X8!>abc*vSxI9pz|GmLS$&m8kPRbBvh-yYLqcSN>DvpAqf)tP{L6M-|r`)Gn zQLL!dlxpg6%5iEQC6DS$@uiMXMyN6r8EOh8h3ZOirFK#}sk#(hY6+!;8byhsE>ae$ zyD7V=Pbp8Sb`(2m6Qzl&LD8TVQVOXdlo09^Wr`|Kk*8)-GO1n^FX{kgfNDZ9p_Wt1 zsqvI}s*ob2?x5_TKB7FL+E8q$^^|(5Iz^pYKq;UGPy(o9lric-%0X&6C7lYVz^NPx zhiXVMq|zufDw=|(u25E}QWPm_G9{S`r9i1{3Y)4$(V~(mWGae+qVg$xsxn2HN}v#^ zND7k5rEsYh6bmYg!lL3S_!!&t7;AWp11HAHFvgA+V}p)?t_aRc2`(oKJeNELeM@}; z$Pz?AU!n`JOIQIQHWS~rv`vt>lqj%XvKG`X)e2OXR0a7<`2xQsKf&nIs6ci}R-hec zbuccsAnwyx+=uiySEMb{6KRcfM>-%8NGnw5fM74vmArHn>58;dE+mu4dE`QJ0hx?? zkNS-Ih$5nLQD0G?P(`Q@s4u8|6bY4wDnu2a$o%*G&*+JfrTMk3OfSM`Xovcg*_z{8 zYaH3!n%^lDd|5lYcE|j))I{}K(V8C45QoM|;h;Dz915q5L*guOcyJSV9y|(O1EoPH z@EjNp?gTG`C&57Q5aFbq@zeL!cY}7I1{ea$gI=Hs7!U3MZ9sJ}06Yl7K|>G?N`X*N z3q*m+Aks?brj@pvm2PzPIs0mzTh-d$)w;KjpR+u!bHi887v^i=8|%B**U|T^Z}Z-Vb;-wVDfzSn*C`8xY*`$qWg^0oCn`7*RC#|_kuq&#c5lw6!r zT+$w5uf6sx!S`$NQ|)Vej#$-wD=yS->22v9>aFhW>}~2D=&kSN^s;-oMn8?(jD8vQ z8r2we88sUX8dVu}7&RL88`T;07_}M=8&w*$8#Ng98Pytf8?_h>8C4r~8Z{XW7}Xnb zjMzrpvY%ybWxvXL%WBHH%9_gt%c{yc${Nf1%j(K{%38~Y%PPy-%Nol1%4*BH%Ua5Y z%Bssc%bLmt%IeEFW$ZF8<|n2N^9$39sljw%nlXczDoh8a5z~*U!}MTUF~gWjOgp9l z(}$_WbYogDLzrqzC#DHAfT_oDFl-EW_2+8a>aW$_)tc3=)#lZ~)vDEw)yCES)wf)%sP=8~Z*t`|d9LAwBy}iv2*eJ!i?D zyQjJBS#xhzZB}D}i2%e&XR#=FbA*?Z8t%Dcn6 z(YxQf&b!CE)qB{x(z{*3*TDX|nt!mrf0&$qkU>job83rwvwKT-b9ak=vq8zw^f{B3 zMxwZuLv1eR_4AB*KX`GxHQsjKL*6A`9Z!w-iRaJb@#J`EJeW9u81PDYvAkv8Ufv7; zbV#cL%JE!zOA_xy)b~E$*%L!YhXQABEx&X9==ISn|53B~gxZAv#Pt%S@%gy(#$8## zvp4o$hQGVddkMKU8|dow{S$!!TDFZ2O zDSatjDZ}J*$$H7JXLXVdlC_idlXa5~q357_P#vfNR2!-f)rA_e&$0E`I&1^BHd~*q z%Qnx@fMH+I?arL-5Tm!B)H#I?@tIIXCIA@_}p<`iSp>3gWp=)8tI>*vu>97n~+AMvR zF3S*q4zGvT!5iSU@%ngOyrJlvNKd3AG7xEts3+`757<%l>}Y$MC})~V6`H7~O|&f< zlw%sD{>A=O{}O*1?;DT8`!2p7#XKsngqQx}yWBT9irja(Qn_L|s$7X2E$v$xCGC4! zX0xl}de1B~i1fOzM4VUbo-# zk~%LLVpvG7e#5(40uK{U6E9}ZfkO5q?bFqA4~d@l`Zp!L%CB}3hloQYGol%ZNo106 zL>vhuf+Pu|1nEBUKFNw`MXDxNla3RQlk$jpBwwO0X@odJk|D~FQiv%eSE4Jalh{ep zCF+t&h$W;bViakSxJcSf+)a8)d`hw-+L4-wO(YGX2C0x(ND3i_kfw-JBzdAdDU+B< z@*;YX28aVB6QT*JoLEkZC&rV6L?LMhaR=!U@e#>}XhW(e)|1qU>ZAf<0V#kOKpG>C zkq#0MlG2IkBsdXH;t)9`L!u#xMx>F@L^NrIxI&U5N|BO@$s{NdN@5e)BrT#AiA*Gu z#Njc&lgKCXNy;Cah{_}akw8Kckt8mWOS1T=OSH)E6o*U}kwwB2@u3ZAq1HcoVWBNO z`7*bv4MLkrL+fKh*~>FO_s;x!kzX?HIqf;qH{CY_nTE{Jr|C1;Y3vLz4a{tt-Zqms zoj7AXZ9P*vT|1*XtvZuGoj>C@?Kd+zJ(_PfBRefSqa9l<7ki^1)_*MadU|Z9PlHdN zPpwb4Pm9lxPjy(yz|7uqSL2?d>3$zqV_V}spC+XcawyrC96}BtqfpmSfvB6PTc{hT zV3a>940Rn9gz`g$qI^*yr~nj-e~llA?i-n&U*1|ikP`^~u0CM4?6}+-OE#;WEfLOq zSw6db$1G5)uX?#?Sufr&9vv?g4~^G~N5w10BjYXN@xo2Q^TMOTYeH$Elkl7{T)0zs zS$I+yC_E(e5E=bQGQyh6$B~K01?xUARx^EYuc82zLo>g{Oo;!oxyOAw-B3ZWCGyRfT>+S)sd7Ul=2l6gmhs zg`q-4Awp;-#0e#YR>I>#U!jc9Rj4bB67Ck-2{nWvLV2N=&_oz7+#$3PstW^z2ZeB< zp%5*U5<-PqLX=Qhh_s2kX%pdQ6BS(_ZeJgHt3JZJKI*o5xTSjJjR3g-Sb#x5Y{1?C z$AGf|VF5}3J^|(d2?3h}E(E9qTo2e6;2fYG5D~B|z&7AiKv2Np0M7tO05)J-fOWvL z&hQ5*Mqg4ObXTMN&S+R9EEX04i-ASK&^_V(S+NDx6Vay&Vtb-{BI}GpOs0&cjHe(| zCh|t|#_|w(lT4#b<4j1ViI^cmOhBVq#=sjA%6qVCYs(#HtymWHmS@ zm!y=GbWYhvtYswxd@XsZ`+JYERqMBsLfw|WmcF6B>b}mtroMr``aVt{yN?U`32B4; zg7iXaAYG7V$RMN&(gA6N^h4?(J&;z&Fr*UF4rze&L24o0kQT@gq#Du*X@U$u>LDBm z8^Wdkq_@$3(R=AN^e%cceUM&7@1Qr*`{{M`9(pT%m|jV5r#I01=(Y52dJBDsUQO?$ zH_->^^>hxMP3K~NV%xC4u)WwCY!|i}JBY2qc3>N^{n$Ee54IIMjIG4BV;iu2*jj8i zwgo$ct;Tj@o3I1edMpRa#&Ut5KpXH2=mlzkE}$701gd}zpb_W?>VO`g6&MC8fp(w) z=mTnjZouJ(xEBnl20DQzU;wBGIH}%!?%v(q-b4D{omB6E7;lcin=3ik_I$86yEeN! zyCr)lyE?lwyD57hyFQzf&Ccc`ej?fszYx8M8blYO88L{cLUbS+5&eidL=U1BF^s50 zv@4Dnc>hrgoAeKxl?$6N7)l*X9daLZAL<_L9?~B)pbgE0n+!FQhV+N1gT=G`v&OSO zX5(hpX1C8ioV_$#H>)=LY1V(1H!C-rHVd2WnKhU#osFGcp4~h9A}rmcRgv!)UOtpG zdjkD^U}W~+?DX;v*Fkd{H+ypS@7}WevoB4iXD1z_&{1ggO883jO5{rHO2kUcO4JHk zDqJdBDpD#|DncqoDoP5S9G)DV9GM)O9FZK89F>fQhC`#FkP(ByD(G&zzSOO7DNkfX?GR5&Uc6^V*PMWA9( zQ7AM&oFC1P8HGf1!@1GiNNy}Qf*Zq);-W3WEut+VEn+PqEMhF8EYPfQRx~S;70ZfX z#jv7SXnZ(68Xt*|#Yf;{@KJcQC|ndRiWJ3)B1D1{(B%VAfgW^a4}0khds%@kFlDc7 z(ONpDwd_CdFYsUVU*XO1mUs)|)M}n5;4Si2uuCa*J{+X>(~yX$xt~ zY4d4ux5NXw_C(x|lOG!iYF#-!b+<#9%zFV@A& zFv3u|h7Fn10*ndPB%V2ZfXtp+`4m@5#28|lG0d1u29t?n;Fur- zWJ)k3nD-g?nN|!dW;LUld7N>ana9Xu`Z9c(Ba9KI3`2&Q!boAdGF+LRj83L5Lzh{? zC}Bo1qL_<}MdohCZst?QQ>Gomj@iU$Vrnonn1zf&W(XsMImMV_$}{AdnT$-P7sHD= zz!+efFie=`jB;i?Bc3T_2$?$=JD86ckC-+L8)iMDo~h1IXBIFDm;sCc<``p)d603C zna)UO!WnQThrwYQG7OnC291ekpqVR-6{ZwJikZwvW|5^xA?py3zD@_R>sSz22f%IX+rY&2M9_NO8mwKf1y$Eo!Tj}n&~M!j99N02`3aar~?XvE+9K-4xR;XgNHyR z@C0}bq$Sv4qJ+~80$u?5L3@xHyaGyt-XJNc3UY(iAR~AYlmKsmFi;y50-eF*;8jo_ z^aqJS6_5+G0_j0RPz-bjDM3w85Of4tK~qo`^aaU5b&wad1&@N4Kq=4*qycq75fA}# zfTN1gNkzzeMauOCip~b;d;?^tfpU+NqKOkaZkcG=Ygu8rX&GbLZCPl!Xqj#~Vp(T- zU>RuHXqjb+w|rpv*0RKM#WLKo-SVmBtYxz0N6VL%+m?4NTP(G36zA@f*xx7h)+4dT zQ5i#xsf{7VFk?z%nqG>5pv_FK8LDTQ)V)-_&{i@>@;Q<@vN_T@a#j*nGFDPn@)VL3 zvJ}!3a#IphGE-7h@h7wnhq=k1s37wK1kbHY!<`QUK)Nw_%t6kHDe z3;YaR04@XPflI=L;b-9|;G%GTxHOy_E&&&U%fq?gVsJsYESwiE1s8!UU^p?SF?<*} z<|IZOa|$De`2}+ZBY=^?@L(h{!kDv|6BtnpKSmnEjgi0zVdODf7%_|>Mi#@1k-~^z z6p)CJkO}}Na2ntP;J`^h95@BY0lxre00BS--~l87Vc;xq0uTlG0cn66kN|`L zd4LNL0|WtCfESR8SC%$XmUyo$FRmcn5up&F5`l_Pi$FwRB9tODMHEF;MbIMZB1jReh_Z+VL4lw`KoQgk2m*$nM9?fz zEKw~%m#CK@ORy!%B^nM24k`{P2Q>$T1I9tgL6bp|L6rf`pw56~z%nQ^Xe=l!s4Sos z)D{p6m<6Q;%_zkv)hKk7dK5AW8>JkjQJ_$uQh+K@D?k)r3X}>o^%V6~_0W3idPqI2 zp0b`MfFgh@02)9Y011EvPzKO|6d)A{1*t&@7@d7SCjNYM+4{QrP)KtV&%vAVP^i@ zvt5^6ft^#CXPHi!OBrF=hBBqHYi0Unu4Na>?8~l{d6%h{Srb-Dyj7-M=3I8Q%)d;f z%<4U3bY!bKJ!;YJx;X!1wvBVLsJ>@qngoNC@wS_g+^PUtk4sv2{b*59vz2@LmQ$D z(LJahv=~YZU5YA2yQAFEYp69eC5jRqiHbyPqBPNOP;bzJC_(gd)N`~W$`L(>nnSaq zSkWn{6tpSI6g`LL_*eYt(BrFNznPi^@gY zqHNLAsA=?3)KPR2DhYiFbqU>v>O)JRq|lY9O0*Zs3%!NfLerpV(6Ojkv@S{)jYVP6 zA}A4b5vmAHFsRW>s3kN9iUXa2%0OG7EYPECsfB( zCtAi^Cb-ABC!UNynXn$Wp7=EWX@YT_aYEFUi^-KP*Oh77l{U#$%$%RFgb%m5gt?Hp zyg8Rkxjiq1;6D?*NYF>-g}>5A}*qTDf>mgbeh zl`>={atj$t@F;XXpe-j0a0}lx<=L=vJh#+{K&w$UsV}j#Z z1?&K!1m80Um;w?B?q>zC3B(XQ&_ZAlNGCXKA0>LdU2R49cf@fL)EC6W)=d>2s2Z9OyDH@mn;s`EkDX<1a z61>#sz#Nc5a8#>-UEm(USIq^cfh3?0s06lvSO5zY0ZTvzFnT4M@JA8xSKeO{_q{oe zn;g#7SzHtw%<+ikm{}65Rztm&bjkGXb3r?*ogUob-PpRd3yrc z++Tx;!P!SRh4&J-{k%r+iyhQ!quu@b)-`pGLDCB5ykN8?@Y>q&+|Zt3M&u7l+(zaN&ZN=S+_F7e;Y6UwyPlx^EI$@9e6yioLZ>;W% z1=TlB;_EJ4C2ltKsSdrjcaXdl6|LTS`t+I5Xj}H?hEA(~CLi#%e( zt&Pbp6FFiQ&URDJon_pTvmVI4m|aiuu-nnB`q-u^Be(j{r8Pe^`GXBtDN8!-dKa0` z4$o|J54e-EpTSIxt+91!)l}%rwTVntlXcEnD6knA*$)_O?d5VGwo}Y$W%t*d< zMh%{;40oX)=BfHk$lrkRY|*UG?)QK(Y>rml&UTeq!=aw61Aiu_PY{wS?m)ofh0e<3 z3!Y_zZ(Y=@|4P!lE8Xj5F{8(4yfQ}vZf!yW@Uvh8j6YUb*-OAA=SuMTsWS2hy<2YYPt!NLLP zjKxG86Z@CPjO`^WD)2V(KG_azopnYEhsYe|tI@XE{M?xA2@ifCe(b_;Dctg8&;ts! zUyl7sF!VvPCouGf{R8V1Eiy%LM`w8dh?gJS)}B$^8MgGk=finZL);nZHLI8O1vyB^J)}#3c52 zIAKS!4+V)U-v5{4+jAKniub80-W^hs;XF@HGJA*f_>pYlpx?#EGnHARp=bF6Ik}Hy zlLW;p-lwB5IIN_>c^*RYyI4l(b6a*Nn>46Q@jes9yTeK*oaZS?>;pN4j{F1hpZ&6g zVKr0{%^l9CEEfJoA|vK5niY-v+__5Rd8mz)^XMHjA_x7Wo7sVdSF24YnQgI(pVteR zW4WzDb7wFGF zR(wbDkmtU5U^e8W_P>zgNcKtm6(1A5Be~CWNBmGWgj1Wy{_uJFe zP(0+07LnEAWAqJ=h+0Wb^V|_V6a{I}ATlMdi=8bnEdWom(<{AXU#?#`Xu6^z9Fy!KDu@%w&2O zWL^_KX9kNgrZrN58t;-F3Pi=Dn6VuGQCnQMtd*}O>s{h`p8)wvi84uuxQX}CgJ2J;?H`am3N9>;7v%!8N$o-wMFj=k5M9l8lWwHN9;`Q z`-lAHH#CHj4K#B&Pm>1nQ)nq!eycW!klyBB)(o_O?iq|F9j<2pp8PY(=srK=4d|8u zCaI~GVe!dLk-NV9Lz;N={~d|pKL4I3-U135K-=OEpLude3x6GY)DYUna5jg~ma2un z0p&G>CpWb-=;Yk|($3FGX#Ljp=M?V>jWtB3Hcc?F=PtwVzUG(H`Pz};Z0@r3T`a$! z4&GhkP_lvImnR^-@&7HI>)L;P>FSm8;g7C)aMw1Z(Y_gB3MWH|V; zh7QQTr;87Of`&lGe^#P8uw7ON2ATJ;V*zBK7?9Bj{zoLqCQxmwtj5AHF(UHb;8by?VI@J0?NAM{N-vJL%5PI%v7TPjx=t_Vs4Z7 zEsgCQHwy@P9SyC2w*36BsWr;HD7s%~p3{>~aJ&sExc987NZ@;N$c#l?1dQ+gZQ{ng z9u@ST!Ua(rnnX4*GEIxg>>d+C1^};_&*NtMgmHtKBPrCn6 zvb(A>$70fls|xLvC@aizhow2rn5j&&$n@b}hIUJM6lS@>qUW5}tD-n|dU2JZbrS0Z zSqPZFQR!o;>cy3Z7D{*&WI4iql*9|N>|xrDb|xx4 zERTEj%0f{R3JgeIlD0EVoFy@ov9Bc6M_r-+2%W0On` zL5-ATBEJzmO_tX9^g8Bfmf?xr-D8?fLYl_{2uV*{PkUftakzEMQ`^2PoNMMJ0og;@ z@kjYTscLvXFo^$-siZUY@!L;2MO3A}K;=8Ea+r6125G{ww%^g$_0pyLmV04}`*7+U zlUe0h6=@&;BlSi(=#>8H*dT9)8OGm`Fhf8m`UX4q&d>1M4gFv4@Xu8`M=8|RSJopm z=1QgBOBBnh-|Za~!?jS;IlmMw_btA~RLxhGh3n1Ho>@xCzSvB>&vs46x$|kX??Cs^ zK(eW@7zZZMrNKuWjY=|cLMDi)b_x|ailOL*ms&jR0X#ArvfwWR|>-1ky z@`E(kn0rM{d<)w-V8?X;Gq^r8Y0qFl(1Qu(|R~} zz8PtTbvCFEHL3i)ps%uBlyc#CozYNI#I8Y>#n15jtnw zO$#Fhw#63}sW$e!PL)^XY8@Y_O=!IwN0tM!V-Rigiwo&zYVExzD~Ap3<{i_9Y+%%} z2x@Jkpsf zG|w#;_4e`gyi_#uLF%d3WRK=rW~R3uPL9uxok5(Y;`-wHrtW9vQHffSQJd0$hPheR z$L7J&8N#T_?vtW_=m~vHPTCb5G}UOVHJ{a9K(qJCIO{d78c`MLOpdP}PM&XuouQ|i zoZL5OeccmQjHOVN8V(LxR8rc?%>2^cAMtcpV1@@q1#Zb4M(mK2`UeNqDJhL+W+L=( zQhYP44C^rH4%t7IomvJKMyxTmea2_sOQly+*3L3BtW!XJNJ!;_g4mUmVly+<^>AE# zGqnGvT+sh$#on&=(mm5j7O0w64mivH!j$9V19G_RnhBzDWN{eo>tQ?T)P3!S(G3q8 zXcal>599rEJif}NqPKED4my*Uj!Vm&_f{<@aq;+(tn{a~)$WfT+^7D@*^`y|{iJeg zd5_TcbJ$u3PrP0Z$Pj#ZxC%l#91`TBtR$6{nWBf&=9}SR@SunOPh_nno>ZK|y22*22Q%?LC6Ty|1jKU7Bq93G>*BSLg`I4sEJoRSnO zlT{xV%{QaQ;K2p0q9y%ZE@6C24tVfFtLRCG!wbUBHXJ3gAo8m^YD()*`1#)+=y!5# zThxy7yj2*?-wizd(ODU$E0vweYJh|B&xAU){NPLP2QFU4+rPQ178B$5gm1=$!9xmK z#Y{RJ739)toS!z!>0;}uRNP%^ulu5UlX4SUB`Wr*B5T4{x!*{aZQXJ*GY-XEVzK9=CZp-Tc$}d zz)iA17vu?1st(D#s*DppVV88IOtb8I&p@_I6th^>YI?N2mICh4tm2Q3yXjFju{BcJ zaK@7K+sdo;^vKsM^pnO~IT@TbGJz+GL*pePW_h#4(i)CkR_tIAYt`%aIBYeh{if(X zX}vPj9`wqx;G}V?Xvh>O+^{P(v7fSX(1iqTPW@s{i0iEstI5I*6zA2%9=?sbAmxHdQgVw^3i|LuRfvn<^qM&M%$*&|j?g!5Kmryp1vvw>r+x z#ocxOf|$X(sCe8_aeTz;-!aaK=ES#rO+bvB8^E}<~BfgshBgqq{#BitYMprW_Z4*Le-Ghwq}Y#s3}3=Gd|A zz(4)`Nh-++UZu7RN8IQ_{z%Kjd4;;#Y1~$WQ;QzC8E3n_3r=0A2jFW1aj)H4@_nrn1STpDO7%+>c|K{6?Rp#C@K+ zK_;E7q+@eGj(PGc?S6f7I`Sa(6(_G~+XX5&x?nl`fnY-)pK4yu=%q~)j!4k+eIx#? z&NYf`GH(M``s!Sd6?}V7sALcIYBs5~y^@Z}{Wzw{pU_f+g#T99mY;>+iWimM_DrXA z_FGzpdm8w=d0l#=#k=mI&Ag9S)p?c{=P>QvlXgb#yz__Son`Vnk&&s4`D{DWIE8x$ z((Bl)0P21BJMo0=MShfKGQLZ;q=JO_+IPE-e|k6PYsXxHH&=2y@B!4Id+$>>LI4@f zVCt=BKLiygFL7Htk=vO&sXx$rd(t1S>D+o`czo)P0{Ncw81_&AHQ?TmL41(<`E;&K z=TmC;XU%Mj(>DoQa7Yhfuf%o`0)Lx&%N>)^y#K9XRC=!)@6}ypK>Y!Fs*W)K&p2Xu zUFTF7cgcnCu8|)!zowys^50CSY8sj-|3Px74jL#N<2_8OK+CthbQl!oTYzd*2fZuI zEE8N_K1?I>*R&+OJbxJbJxv|f6<(hFA>G6WU5x!>92OKV9uGnsfz~PU0c2SXghk9N z+tfE6(HxkL)sy~jrBc$freohzf^py|6X5)h6P5{Z3j8rORt5YPO8yu1EEwNwl5Q9% zmFpX!cg-^BP?;fod?%n9VL^0RndkWUXrUS*KcNvm>pM{y-@9mNgwWlNUq**;aPRT) z(`vvCnjX-_#NW)$KKG@HF=$GlD~!MSBt($gj32K7x%A(a2#NS9iO+|FK6PBNcSa9zN;4l42nhWOMP`%)3THD#POmOpwCtNNAp-W#mB_~L?R`-%3m z&*xus2>**D5K|Cg^?bbl8NA{KhbM%pEErBHeOf! z8?D2|i->=s)ZSJ$Bv20VPvqL$N`|+;Q4xdP#l4GuAJbO-a^y1jv9=v+$*X=xpKcp>@m3q9W8)Lj>C$F02$R+V(tvf6TyVmFICGZD)r!@)u2Ezr=5jaf8|mxP>YdYJ+iap4TvP6^{9+z;)AmSTmr>W64x6p4_qz?Qxl$Ff z^#5Ok!jAj?+l=RA72jjC{P}+_cn`d1prvNl5(M+z?p`b`?zm{$O^A)1TeY{ZUZgPl zHH2S)i+$)9R!Z|>5q1<$qn=;pAbjPhb}EeV!I4nQ7YXggJf;%K7A>u*tZ~j-6`~(2 zPCRmdLy=frG6chs*%6l=8X$7MLznq#oW6!cq)~I3?zf^ytniO;WSg7MFD>ovmLZ>G z%XcsCZj>RfIfQ6nT_*dXU`uayM^a<)(sK8vmw&CaH?XB!c+cVwiJq`|6?B=F^_LTc zHBpR{+OzOduh2=CCa zm}6mc?C(fo3r>Qq3v&t~)l0Vwuc1DmyZ9 z;&D!T@?;wd%!mvWj z=u-7=kG|#FMcDw;-NNHlUK@Og8`=s13A_;A1qWRPgF} zJSLdVOK&PqQoUUInX|rgq=V^@om?yn7VXAfNx3t-^12Vfu5h)!8c5i!jIFN$_W_`1 zf8ri?)FO`f>Cl{%&+O8EFSsc)vpQhHZd~4nF7l+#;E*x2Qy|&rFGFOASVTMH*9P|% zEJLt}wN8t24rO0`S^p2|%DX4ZwoY&Mrc*CIm&#x-0!=5k*M==(o5wx83a4ZH0=8Iq zZU^iq?_gsyT%?W^6}JlJuRu-x6ivQ{=ls-S^P68}?r_9(KYp{1#d2hb=&sg-Pjxqw zbn60SJ}cCKmukk*ByTV6%WuYxFIsGx)@}r>Z4MKjB<6`;?c_mMOM2mSV#O?7_6OXQ zj!4Gw{pD>6=cH~58AqJ-!0q8%E}L%V>eF&4v^%?bUA{!#hdg7nNu+}iVNK{>v`MUk z{IlphNz_1?1N#TLXLr@%TlX@*9R8~^O3o1uhDIr<0k#ic4=wjIA${j?2S+1Q^Z?6; zio6Qda-nBW@)A)d5f0MNKIJ8%O~M_xpC#l~sF%w>ThJF8Fpb^pMb~cFA>{uNl| z+ab6H2E#W0E!r?rx4p~#2y;NSiqDM!#XKgls>?*pE(>C~* z(lSayp@B@zijmhcTY@XU973T`7A6%~WL9X)ZVB55HzPs)f^+3`AI8&6Y78U299DFM zMxM6FmLqeSmfn96PemqKue@-mxyypcYBkMUVfseZB8$Gf5+;634iOIg&su(O`PRv= z^E3O0%{->q%GQa36{Mrz4F|s)0Pe1rWc=ghmw`7)}+ z5^-6tF(|V{pMmuSXGt(ADXCF$B%|-A*_SKUF<=nkU&0mqMrub*M~1wnYFag`%c{y_ zWH4EAFXk6EZ?dqt`pUNY)TTyRV*|?4_04mmP3c=IJtGpOb1knNSACwEZ~Y{$G(Rlf z>D3}_wQA=%t?IzI;;TIm`s^nX)jhAg%1*gy;v~oHohIor6fNC%S%}@3^y>;&{FM38#Jq$CCR~6S! zI`7IQvmL`ELx%3K2xMgJK-8F5GoquYL!<+%dfVW((QUmt>`L0| z0*^)AMagZa4&PC~g*Q?gehX^}_&4^7Z zrQ2%)$&QsTh2-+(jNSxy5O?frq_|~ZYdcauLXy#)I;UlqhOIk6fU2%G{$7= zqY0CGjcM1Al5j;2yBOts^nH|w4>c&HAuM-iOj!2Lgs}Xb!OQVgy+S=W+|u!8&C(qo4F@KjtTkBUu+QS#LrVpudv2;x<_hMfnegWJ zx<=q{G+zj%PoR&VNSNShnZ)?ST#R`-Jrg9NE=Zc8Jd)xOFA{g1?UVcDt1>p}v~U*< zo*e0>>6=fkBwOx7I<8F!emZSkv(b9#jE?mCn_*{qceZ0nIvP8aq^YUkmRiQtr=v;& zMX#vEc68V^=j|Jw5qNXJzxk#FVaU0gW6zTOFz3#L-IF(NMEKLqJ0B~##L4w;p0POh z8c-ZUrF-U7Bd%31l!e6^+j@WRe)eR-iD3FOC)>wJf;Yq7WK#LQ`dF(N{KB-MutWIM zyj-!eCp9yi^L`*BmD3g(;L3dDbmoUS3y!#hL;Gvy{!wW=!R^9m1hq>86-S$c;GLVV`o(LJ0aE9^hD9@f<$TvG(MNl z(4beB{|V{CaDxkpaZX!wPfnWDVxnKcN_;ft?YNmWOym_}GPWuVDvT=hsv<oAkGW~3*OCLk`ZDu;_5XoeHeCX1Uz4xt8= z3j-Cb3LQX;1PhZDBbc&f`YRwF6$qFegcLL&9v)>JAB+(E!xl2|kODT2LYrJ+6@hmx z?z-oZbst1XiismXyUCccM?eI@&ZR5ecYqY(7he`5$_!Hp&zwKH*%fHGtXa%08<_QJKd-cY$~Te z0!yv*HlTIo%uR`_qs|^m(hw15NE2R**+0LjR?X3t)R17Iz9go96~W}$qgO{!7~!)% zdBvra@eUL=y=L>_*`wx1NUaXvl47#E7hey`!T>u;!Y~8l&H%?s9cmE#e%K&!mSycY zDSj6t)MHQ;qUjQF)Rwr;mjcbXqM$mLqvCfbDS8?SJU7gRKQ$0yDEuy}td|=}!%%y? zAH6#iqcNDDx48K6^nT6qZv;${oJvwDsuNqe1U+xIyvPeZX&0}!vj|}#NZXq!VLsMx z&?7fO*EcB-o>$*wAra=S_%Pn;(Zfu&#s(!V+H_A%+i~JW3zA=ZJC_{lNlp!z3dU=@ z+#>rs#D&T;WvI&1XBQ=txT}qMv15lJ>cpd%#xlcJDXLN_)4ZNlGrgD2+&S_TDHKT$ zLR9cs)D?-;IF^&XhBKCwptEe;EW?tU6e%>3IFbE8c7uY~jPt0s&@2bKzXl$&=x=U! zqBuvx?2Fc|OxIPJKTlf38HdI)X+=wH>Ui#@6g`UOEZuG!wxACJoUXrF-fIY)MQTD< z-M>ib$9{K@=~V;5wVSQ(%QDY?F+lg8@UkPqs!;Cnc=XIwY(;heex-;jmX6}{>RBdx zZJvF|rD!P!dM>fsR5o|>N=;CCB9O%14JaZA2yA|aJpO(8u973WruvqqH@`9SEB@BT zmzgwohaZBbqJlOevFfL=%b#n;5TTSy#~`oB$j3Itm_`*e`vuk4h`1A#uMuBnKqyrh ze*{9wHxm4tvdTJHPnnN>Sx^Auh`W#khtA@|+>p5?r6mF1aksu^Bf&j0P70=u@zKtF ze`fF{sm=B0^X^AunCsYZrVi3#)hwCjk))0`xsX~|e;?2D!P-OzZ4sl5M$FF?LqGG6 zA->aqz_6q{D(0|&C?!2;sn}lLVx&4okp{&_a6n8+7%VfR=k2dSjz2I`@w9ZJ1c;f zVR=-@{cfHJcqW+H8o&Q8$VniJ~Bpnb>Wxr9Tj}Z!Ng5}^FQCS7l zZbW#NX!}mx@j7*No3=_T(EB7>(IYehLVBv@Fz{Ce%iLN}oNZteH7HX6{jfMZMN*=} zv5bb&n~8vrGo4{a4fzF1fHR=)25^hf*-O8I+c)>1&7Z`p{@gbru_{pH{8jP^SUUSC zd2AwB3MsLcb9WmQupEY1)~&PdV>7=gA35IbIS`7O$oBHC?zO+o;l`t%dS55FDBs%r zifmUd>{YJ|E7X%HSXEUvcfFuv(_OY?dqS3$uxpwBbA;q5xo)@Q*|i`^wXD?f+Loy- zO;r*+*#oGm$o;1lIKGL?M?DdjBqx?Et$$p{OkF*vRWvxc3)*WdaNE;UeW-Ps@Eh4thbpC2ITm*_ zk)eRBx+syx97Am3oMdc6TI;W`s&z+^NEmL%to%cX<1ONJ&E}|h?8cdraWotRt>(NH zCMY|*qi9SrY=vqBDy*;+8X6kO1scoGjHkYS)QacM#ZBeK`X{T~trfAcBIQ9j6dbKi zvP7c;5Hhf~U;LWvI*xiYGnfWN7t5ylE zkNiz+slMPI+f#%T7WWb`=HCMk4niBp2?LGEE}06Y(`c5orPOJk4>p@p*>C)Onb!LR zu7bgB@lmu)0wl3k{QTv|)zqtsteuD?vIbf{(GKF;X>%$?q_Uxl#u!q$lLg^PHA9Q& zOb{#Mymff9-_tW6)v^$FNLar*R(C2{ypNa=1p@b@?g-6Kvph4~cpPua;g&&nH8d&Mq7G)YaRG7meoi}X#jkErgO{|6U zg)sh4RujO9ynq?RIjUOE#%so!G#)LmghmfKJ8ycYZ`vz2B9J0hL-;@vJc&ecWiL{a zZ|_8bsw7$Y#|;j%PNmT;JO!)(v0woP?jYjYb&+NFMFABhFgppiB=U!yyJuSje`zNq zMX_Y|$sz4r7y0;N$f^$=NB(qC}#dY86?19G~6X7|{?L$r0hl zstD!Y*Qfi*y($-DX1jrTPWf+M>BxW?DpCwJ$YK&erc&9>XYLgQB(}mrGOpNyt^FRl zm=dd;3ai{FK*fiz#8#gQ?#4^}3=3LnwA~-iuq>^nZi2w6@j9bW|5L}cOJKhpb&xS> zuhJp^vWf}bORLzB5#|sn@s)SaEal%^5ApLKdd{kA&>*4H1JcW1@5SjP=W_Jnkahd@j#)%d(f`k=rc$r1;n-R0PX5WAd5q{CO^qwHh-T6Zb zLm^5_wjQfi=+<8R5dD6&mOkh8f;)FyUmO*tyyLYR0_@dd`i`GiChofqGNy!Rpd)4LnAA+4)BDP3u!YXn$A# z$HnAbwo4SWdd8+c{aBn4U)saZXZziJ=1BtZpmuQFurbkQ8V=4?%E&^C%u=dO;H&5N z0n}5FC*klRxV8N==VF!X)!iVYo*l>VBcQ1t#0#0~!fOy=|I*Q{rVgrs;l;m9Ru1X@ zTYFnY|IYCzvlQTqD_RDwvh|J-N&jsE*!@-=H;TNA3McaElZ;93XYOm}=PY?OQSOLI>rW(x0oWT~_?mQ76Tiyhj)v6F`HvFb-<#``-;O z0l$0y9@s*BvUfg)IQ?HREwIXU4Fp*Io1Lt3i>z>qL896BjP=uM^15!%DA(VQnei%n zGjM`LK&E*(lqRsmQz1cqYDp;CNuAaWY znAj~4AYm9ap^m*?%IquwIhB_2^1ofGN-{KoK0pdP>bhhMv>QVj4me}2tEy(>Oy+1M zCl30_u-n0Cp=iPI7fyF34CHC3WkL{k zdvEl*WR=?D{kX|YXCpz3M)?d(nBXPd@F(|bLE%y6VQHfA6pxc(nA^@#GjZ^M=O5iw zJd7j)#|yG{5l0Y1vtsz8>KS1Vo1znn0{S}@S*`q(ZJBI2R3>p1fmG<0JDzy+vi{JX z>V-IZThdopgc^?80Q~GKTWUb4x`32jfs?O{+~#0SKcA>vgGZfS;JN6`F>d{Shj;?i z(cWnMzkY)w5`ZI81Cf4L0mb(LDH{=0C>ERKLkUaD=A#`D2~C8lUZ{g3egTP{gDL_^ zN$C~~s~ADD9-|6Iz{6yWrH)-q!xK4?Gw>Xx%vF1?PvzzuN5G>9Z&ma0%+0byrKH^) z)0$@-P#&1y3antbxH z>+05?to0dJ4uD_9Mq3RrSyUpQ4`tV<-^bkOk5bY#wAW`?b0#82*ZP?H>%Ro)qL(`V z4hARyL@*Fskr;RZL`d2!{u>xk6@yS(ZsFo5(bve_<*lHJA}M)`Zt=$8L*jL~KI^!e zmuUF9n%$2Jz>wOcQ5!0$$=XGd>zpDA_1bD54gu?1{0OkAIgJxK>x^4->21==(P%sd z*!j1Y<*eh)c)}4~g>&aq>t+>NkcNEeWvPmNF|aH?2^eI3#aO1ZG%whM7C8txgV|K7 zW*C7_Oy}7?eXZMU%^JN_k4+5BbEOx)yqMUN8;gojhbB@(npFQPl(eAqyiiy=O67*6 zyl$HwDqp_M`e10Gy|xRfSIB?TAk^N?Sdi4J%OjcUOX<8!Gvbkxx1aCWsX;wDy4 zjS~f*C!DAmg1Ur5?XU=$Z7s!behC0Br`Abb*a1~$Ey9$m`xV7_XdEz#oWU?)8z#B; zk+L7Tq8q*fGEfGJ=!Vp%h@<`?wyr%G5c{;yW^aIukB!;s910N3z4SL4YO~3TKfu0_ zlMc%r)NZ@8Mv~LL1ns}T4A?SPUuH*8%r4=%(XAXA?eCkd92-m=%O%Tdfh)InWu?nC4;r^1KAT`fB z>ZRKYSnH11x|YmR)-DV*IDhZFAIRfNgxr$@4vQcSP>jmbas^R)0g7n$l9=eI^N_F` zT}MreCDdBE3aO2I;=#o(T9t0^AxH3#q=I^FFSZv149B$Z9E|ms|0>F&)WT^RGiDAC z-%ld4pi@)A)9iYk-O^`OL?tFB4v|y}mn0%q4i9Jjw@Q-yg%#Nq;JOiSHE5)_F5wsbSV@}7-R*5!lwm0tK=8+qj>4wci4RNo8$C3|_jsJ6m z*cNIaEfn$O#F41IV=3kD>pMl&7r)A=-d`l7_0F^uA<e_kKCucY8m5wHEP3LtVB;wUa}aQ{lu==f2ZE4rp&fYU0@Pa!MJ^+K-(@D;j%u zMoKV{fPs9(H^w)6_g;^CfYaX$ghoYoMGZ)_qm;i5BR`Oo_CT5MNZ~u9=Ns3;ri&WKTx0 zer4wul#Ua_6KpqbtxPzA+m8LMYx1ck>&`AN^d%FK_bwj+0otxp0#;V;CpXf|rzMN5 z(uO*rr#%X5{b}!)w2A&CjIM5Dv?fW-{wA+&2hVu)xFECAs8*sor7C&Pk-(C!OD3WuNo5*Y;D~Pa8tl z<0FCo@b-T3V)h}idiyNh%>$>xJuSmsqro{F>P{Na^ylM88jsGa`HYxpYS;_Gs46i% zjC!GTk7}B3TG70&4zB|5>Q%~XCmiPENVJCxa4;f>c=fw7oNh`3-!D&D!Zo3RJ2YD1 zY*KU1)afHBRhS2q0Ohqh-S5Ls9suSK8uq(ax`&cHvqQHiF%C2w?SUT@;n_W}f;Zz1 zYlsEt7I=C#J%rjW{K6(yXoRxWTt9J3Xtbqss^s8SOsu;G+i4~RgoFFFIYH=Zb4l5jC(MS2P zeL7#6_n1L+8HwuwHF{^joM*-7wIe2-{tGaznO#?PN?>5g{g!o&l#{KivmNh1l)|36 z#mC#z?c@FZb=&;!6m797%tI6;}`1Kw%P5Ffz|uJh*vpaILeblU4WCeGE{N!SG#B=i_- zoLH6;fp9RGnRW~`oKcJ=_}Co?i9FdsbpFG=S9QaE(p)l4z5ox9odxtm#omhy44jj%{5KUsmEOk%XjhQPfvw@_5Tw$^h=Do3) z;q1AP765xJHOd@unlW27ZN|?Q2vznLDLAc9m%l}Qj*IHMkT;2t)vQz`lhZrv* zY|HYGdppziK!5kgA+~rCes9FKd1wi0We<0W{Ci7GVl!KS)C7;dwUI5zA2qRG z1uzel_#uV>&FQ?Rb|cttocB5HWe5R@CYn+9P=JW^*WKQooK!M0d#wi!zhD(|lV<6)%hT}ncrYQkF_ zSDVm8iWJTb|MfK-Q~xR8bUBFmKQn%$Jl?o|HcQd$SwQZxv@%>{uZeO?PbL>3 zYGym1{euk3+98OgO7ycjVPEZQ(%I18Qt!{&8B^7X5qaY!8r z-j~iS)M{P!yuZ5sb+Zt>>)2*Bhh6#KuqhN-ebaTw<1BccrXs;iM5gHTV|T+S4uaos zsk80G8jE}q+5#GWS3UHL%Uj_jAJGNs?`6kIu^3-R&O`yanW@V%^KZ@A90o%EIA?qP z2&`9OzcBAY1p*OcRXAf%iw~GlkLJq0WWV5KHp!CRIkm2om z_6vkb<~v+i?$0R3p4@s`es|RBy_c!Dc0?6;#N`~#qxq3m?x~DY!{e~k1k+cHUiI!f z(xo?9K8rh(x?N3w#3}7{G@s}HEioq%5od2Qln|9AmZZe$kZf3~%*bYt|3v!^r#O;( zy(KT@MXR7aWTvZXq(3!EHS(M(c)y*_v3Wf9?!w^sfG4cyFUbP>IBIAD-rCrb&-m$6 zq(_;M-n-0^Ea3HrLYe%Z zA?gfb>LIXby5eX8auc5}feO8@jZZk0x{Jj|EdtZA^0M6KGf}CI)<$s)uz5E~jV*ihRE_yuy!xv1) zf0tLn(j9-Nm0o`!s?h)5Zq_9*nk;G66J`tTKsaP&xNQ9=>sGR^ZP(+P-i{=HY zn+O_Q^JXh;5c%s}`lA>7QF!awU1 zvH00W3FdKP&fRqMz=o64WJ&Xr+>M!MYAObil*iLYv|sdw_9d_NQIC!WH_N+l3%gse z#IFmCFO9=K@>OL-JP{th1H!Bh;au20-IQu-yjE@5s{_rcRXtAKdx(q4-Sid9TMvbQ zEF}K=-bo7$r>@s6^4Kf=5uQ>edDZ9H`S*clXI_o~(YmL6?}8~+xzbHd`|?*(R$$-( ziJq5e3l zi>Rm>*L_z~al`gQEPJb$i|dCYE1h(Y?#lcIERNB?npyj3gT?Nw12dQL$70N^82{bl?eouJ3W?ahhq9^ z69bk%pHkF^7sI*(G1)_Z>iQk=*}6aD`Z*hm$HSAb&_!$BhVkNVRX2C_9qq$Z&kN^m zDSL&xHo!Ido5$QEI^N*{tP&}ekS9bSd6H>?cyB*>g@~JL0wpOiIXnmoBd^Tz?PN3m z?N|c+9Rn9Fw2p=p+d#}zHI*eOWc&SKN7jptewH<+jm0g>lcTSVV26P?7VK7&Jg3%a zjx zCt7UEc#9fXN|+W|oR|nBs!AwW@^9h-(L~M30vT0pI-yjh0ojkIh?%FXFT}Dx5W_K?QU#)vh2&9=bWp4_eZbR1Q!1vZ?ktqV5H9IbO<@!35|3rNh3 zae_hBn?tPQA3l+A>x2aaWJDoxRS-~W_qmWX$$`7nv5UrPgp6iH>@U?6l6Hdx@kL*H zNIw)re?LDY^DYEFbo9@xe$@)4r%B_?asNxs=r%e3FFCUwd-nd9L9TcJ+5{tV8H)do za{m*l*X_CYC8ao}|8h8FWeejR^*SYDt4TzRnPxVxol++6Z=2%;Tui@Z3(Y<#o5?cQ z|H18ltgO8#{eP^?-4+~eiCgTxTCov`UhLLl_y^1XlcmM03e|Y~-@#q8iBH@pTSp>)$ zJHF-rAfBC{ zVCSvp5>%8%3b-K zo~cjr$P!vN%oWBu=bpDPg}_$x+PBR$#eiGKYV0OfSZf)N*<)w@U8s!tbZh3QV^WjC zJ2C2}-Q=;v$qpU?tCO5D8AXfoK9-|8>BYKY2$W82g={KgO__+`H{8spgOaM^BGH~6 z0%oz?JKf%9W<55Kx4k$PfnX=mx;OJs-&w(rT0wQ|5g&v+Ybie^jp$!KK}U&VBnhv;N1@!#>-r+K%y!&p^`3lkBynCunO%Q2?9B zk}B0GfQLcZVw3ZP?Y+%Z(j1EkzH$58s6{H?W6xQZgM9U#&{t=1s1AI@K*CrHH?#4O zA4Fw7sHbkU>G9}vdQqxsv0X08$G~Hf)Vpi$C{yle&N=Ux*2OizCVl}OwNc~`RFx*D z{Z3?2=cbjUAT19Y^X<}g5#+1Y=MoLxqk&s@5GE?lNK+4U(5t zZ{}+iiSq=vk}+=n56` zM0QPD30w#;r*|Q#E1X{UEndD^B6k)X@9CW(?%@qxBpkcSEzu11-01a&m?PCw5+Nt^ zMN#xyXthXkmlh7I0@&ZoQmn`0r}50myQK&b8zmO#zore0V%PKR2o5zsV!@#HiFOa_ z2J2Hq9J~X6nKQ~nI2+wemoK)*T%DDH!9BY!TG{{n&mkgmla03Vi?B3%YHh z7`GiQj)SRldyW@&TTX10y_lZjtNDCNT>;O2S%F-0evS7;7Bi1LM5DBt*WzF3T&J2_ z3PuyvXN%3WIj{An#TOa$-YM4$dNEqnrBsCOX|#P2*vw%MIvEw2_hZ`SQ@M82($vV6 zflCVt6$`oUeeG0R+SKid61Upr8_27AYrTNIfh%zpltE-J_df(70a_5KRYUk z*U4)Z@qF0^*=6LapM2?vxc?-X^sc#nlw918XHVL%vLu1Sq!l6Ciufz z5H^rEZ;);w5rXCGC1d|~Nl{?P#0WQqB%~pgAY;fz03P~X)o<7V!|VFFDb&xY3_<*& zxIsjfW(pGepzP~U-gk@uE9wvYK!YzKzNM<|5U$2YMkEfG9HFrt8(5(i3B*?orP>D> zJK!T8Uy4I0T6gYJ-wY;}p6ZHJt3xLd{8QEuIf)@5a4~f#^_)WBgYV-48zGrMXiqF> zGTk^<2X{1`CO3yLyZU%%+^8#g}+3%NJJta@Wg4?><>n@^BI|tOD2?xg=5I^pmH(U_e0dxeCm&* zNKW5>qqc`)leqGNZ4n8@!qEMH*OjpJTB|&gGT!^xau&iu{XB{ZPU9he`O6tYhi#(v zb`SwK6_xbWgpSwjo#WolEkFG$r3_ZX1{*)keB?8e|7@XDhhuIUK{gn`EFhPg(kPmh zh+~*`QXyzZIHp)GdF{u*=fP(9Kiz_A&&6#&z9s~CZ{CMwQiZprsB*~fWC7bb*}3v! zeHdSld4=4@4maqcH5!>rA1G~arz*Xojy9if{9*Z}EpF#R5hQLKMD0?oZ`|rV-0H!A zUsv&(pyl`gxON^@2Znq|()mHS)Xue*qUwlRE#9e{QJ&f2p`#UDlkiS z-dN9g&Dw~|R1qK_0T-R$xNK*Rz3e+}o?iUm(R>~G7MatRVNC&c5OnQ$U4C@<$Nf0k zcGSzq7Ph8XDgf7&xyRFYdu1;o8J|8vkRtHreWL+xc;!vfGeJq@(HVPr>a+5AK@1s7 z8^_J`5LkZl>kt8y(#RL4-)DGbkCPEIuZAQ7$T|6W4yZk)C5DmH)_dl;F5kLHFim%(n+O=8EY!~6$3{#09kbT_ z;UZxH=Dqc+?ln8+khn;uQ#T)n*rLMg@`IqNdh^>0f=CQK_?y_c$&;dN(fiU`X=7w} zm7$?buzH29%{1HP)d+rqTv9U4Lt%E-AD{YzIs@(7s%@B$?t|XLpv~K`ZPRl|d%@Cg z{SC|G=MC{MvG_7i5AriQF+pL2IEI1Ni|ixLevlr|=uGMwxM^c)qlH zAL1L53lJuZh^{;^nZ#*IP!zmFy<3J6u|w@IpE8zCmK3u=YGseaqo{~*t@ar(iXa(BP>e|m`mq{f>Zz|ek` z1_ZRE6Jv9s8f7R;H(2r@Mv)sW2$7hO4hA6Wn^a<7A%bAV7KjWOjt{_r!#APaPXw^u z5|TYA?v4OWDlT)F$)e4U1l{VRT>Sw>`b3>T6CMwaKqO0b7l_|PoWWclTJxoppVvvZ zH;H@e`i#@+(WzCKw5!4lLnn9$53vX~!PZZ}{Lx6GCjnvSvpf({G|a^|+grf9 z&+Kc%f~Xv3gURc)@r$&Y4L4yB5KyJ4WLiJ9g*#a0IZk?&tm?XMLvn2;fT;Gvqux^3R3(NiWigR*MOs!zY`FuU#{_;laa4b?(PZf zz53WoiJqI8hd}#v)&T{WiiRy`Fn!0NUET@cyO;&Ko6Ou*>+vT{sDLG^Msd8WJ8J`` z17BDZIBKFvA34rD@J1ys8+opb0^>J-62T?b?zs2+gG*%Hzj?|1!nUE-gj=U5e1#Nc z5bWJGO1mb6_x?@)ku^Dr(WthtHiY~ zakpgkED_0L+MOn{w`X=4#3j>ZbP6Oqcr1xrbc{R7jn^|^cex(fKz|Xea z)%x%u1Dzc6yA1Nl;p>dE0O7#UO$n+&o%0xvaWAc1)H=vMW#DzChM0cAkVuIiowig# zlSa{aH+Usu)2t*7pBTz1LP~~8ai&;&rrfEu8mLJRA*jz=YC&}$Ff=L4!&0kU!mg3G zW6YdJuZkHtvG=fz!}wQ(RoSps!7)-YL;q>LwZU!_Yr9gLn#4N+EWPpeR*%x)UEoOY zV?VmXpGYyzK|WGJj{YI!*A1^=Amn+cTGuNo52~rausR*V_Gm!Ylbs(hV8jd^-5NLC z`Ss|Vjxe|t{H~qe7xpfZuFdnF*Sl=v|IRoqVaN}0?~u-u^#&NILqsAb5)FqU7KTM4 zK@w4B8f}ISF+zTjqJ3ZrLra2U)L?Q@ltu41i?oHxQkJD6hl-R6Fd{Z6O%LvE@mnKR zyN{OZ=0MWA%22GQB1{|a5DUn)XR5F#Q#T=-YSD2b;jkYZfK&IF^udFILR-9_F+-n^ zOtCKqt%h@n=brWh5iOi!K*r7JXNf}QcpzNJ`ygx|);|L)8jcZ=e9{yTD=`h=;16YT z1g%!RAiVa%E0$Z#`&cso*F`P|U8h>yy$$yZNX4sTTvvq^EHPMbbxS506h>3x2dmmc zMY096w`x|#pjj-%+m#sd9_>^|;6D=|?=??KMD*N=wA_^vA0i(KqwK~(U5^J?w)|FX z3Icett@vBlC#4z}zqQDud;@)v{A^lorp}enbDpXLi?CPP`euILXl2Do$l<}ds2qbU z8#(;#5we6h>3{TupFu)??!EQhevO%Jn7fGJs!08iu3F+?>(kgBWF&grh=+{U&zXCB zzk|7Ap6U2mGjEZ2$CL`N#jj!?z($5@bu6|n~~^YKg4lAF!H z*0L#Ce^2k{(Ogs2wCgJ*a#W$nS_*|aQ!BvQ>0l0M#3ni@pHos;N4y(H14Glrpj88h z>Al>ymkzeR{M07ldy56Oo*kJjQ>_rwiFp8%;P&sx26=B`dz7%grkESQcaB5FMa?#iyv$b?26mqy4!GjWqJPH^^6X&SCzKE4os?s%VrM&Tj zABYx!!p&?S^6tDzifWxs9u(9(}z~Tbag&t){1>tDX3d3{ zCl<4!JBYEy5c-R~D6QwcoVTceuMxi0k%CaN2=g-QysSVGK6btm`azzl2>ZSXe+I^k z&5)U4_q$c0Y_$|yv(&W0bbAJ?zGcmay2`Ti3`Zu@Ktys{2LR6oG4@7?StKu;E|%HQhkltaRJ1sKep@rV1!p1{|`$IVPmp47A8O7}4d);ljP;GZlPR3*izwfYnD#h99uM*>xwFC#)?P8aCdJ{= z(rIp~l*O;H&&1c;VCJI?dur6o}@>Q5*4hw_$MBCq-d+DyTQ$zl7jMLS&+m%@^;iZ*n)W3Thm**-q->Fhyl*FYK=LdknI5Cl~ zWQ_Fe0w9;j`js`Fth^EU+VRfaeO}L8o}Ej$rkzVZ86P!>4QC+Ur)JsUb#yT(acd~= zHOMCVpC>_5ic$qH5Ev+7%0PlW?B^;6JLj*_h+e%(2X^qs+%e`zb-?%+3WY`@$p|%> zg;H`+m<`!Oi(o20cutnYV@kk`ui6WQ`aKqmY16Q*My%H>&E|G|VsZKQXw_oCdU7v0 z_P111Wk{PY_#iH08@QZqVr2mM4afUS+wq5Vl4RAm&kw3tYDII|6cEG8(o8Qsq3Uy15;p>OI@d~MXufxq%tKt#Xn z)5`mVgFgVG`{TvKkz(Y(sU5{470Z{-Gt>nxYIV2fFkmyvHoks^U_`3Fnc_03gv9}RcdY_&GED<>^U{5;6SfmcLvJ#dBX6D8gqJ;HM+rIi#EPBa{fpv4eV zP4*yFY%{bVm!oPh6v>!-NjWX<1U&Ao=qFuLd_YlixGd&ZK1ADmNfDSttPZG?WQ+IwQWt{ z@X{whhv`s3KZGp$v9eT?N|{4w!XHru47K2CGjBGAgbN(PkByBYi!bZ3FLa`(E{4Ks z)vH^zx>sP%?|JLhI}P1I(KBm3y&_F$;}+gkME}cSd5Cn!jl_!n-R;J5n^HnZDIy@D zvI}e_z%o`R+VR*N0%1;$1I!n|B%Dyzy19^1vcxM|B}^UqW$&FW-8iO6Q6P$rteMU zn40$?Piy@VQ~&zzb7%utHvqMQS-hCpc+j*)@{K=Z%)5A!OUK~=^A%Ge^Y8P*hf|L2 z%~TB4CW-Jn6kcS(3gtEy7JVnNO6rt$`^xFBJ7y1CnVCB28X4xo6*b%Ah#EMTuD^q@ zbe53b;BW5MGIDT{-nvU_11aquO=Uhg;4a@fTap8j{Lp0JY~RF^@Qf!kd3nzh8uBqx ze;Kf*a>=yVP?LBc7-Uq;Fs6)*pU}3uZqFu|q|>QxF7(QT2j$&cPM_O-HQ5s)){()& zLj>io4)3DFPOpp%`CXJiHJW-YI4_UA70#MH`SXM*Oj>j2}Ov@(>Ju3(y#CKW+;;D=r>>-$2~0(FDQWD=L&wKR~&RFn~aN zh!}@jG*1QB_l!3j-8PVFuQ(XI>&Uswb;uPm)~U=<=NHQ_7xeGs7Q73jARc=wa7J$k zfA4p1|K1Z4ApLJUe;GHR?xT~3^f85x(9dt?Ba`3FV{Yq69(_;@ycWRVq+sQP2*633 z9f_FnZ9KF&$H4ONgOHIXxfsI9T=2R|Xj91y9}VsJf8;IZJ(1(XFIIOY&djqJov`G@ zdXo@qA-GDtv}_$OXaXfrw3aWj0m&5F7xHbwYOhaAr*huP7rj%%|0a*|c8mVShWHq4a3Xr;Z6ZY&<#NSE-2vxv z;EWaBy{D5c3th1P92u%zVcZ02ACG^Wcua@C#e-Knw8cauAxHS2ZSu!)eC>Xi^Q}ck zvd80KI|h@&U=SIj7-Z7Fp2t{i&2Um)?t(RdQyu?6f*$|Yb#QIAU-$qmDpMCa<9Z@6 z%KnIGN7vtnR0iw;s39UMdA#it@omxp;T+z(=D~FnEG7!GR@k#+BGKLE_xd<^FWR@+ zsJdgpu$-TTm}@z$4~#8~^G;r#bAonCT)fubjrS=?$?JYoqx>`9mJ(=$*{c0$`}#2# zM2{jT0zH1hS?c;iHwmY8S0HExHf-bx+Ypiq zPvq0GvIUv^{&TaeY0svGsnw`jSZGxvgUGO~HrpD+wCf7Sl$r0Qufz(j_4|GsJBJN_{ zzXgR=Pwdh;VP9>;bnhKzlVs_s*Ovun4-})X)a312kesx<*jvmlH#u3% zof@h;bQ%t2*K1u)c3V$G*X(=l$0xMgHOeP?*)LdATF)C*bvB& z`-;copVEp#{-ndP{bc#ROC&A6X=KPue+Bho-l)%1IQto~9k-uL-niXl#xg-|^Zg~0 z?v;8n`$xzHZ&jzv&nXv84MDkVYs)GOgMUL2-w9CFub}j)6L0IL(=S0!E+tUY`0q6$ z`wEkrE(ay4c1$g7QM$$bO@K9j8jM$k8ZUklbkSEqH7tbfcZVCBKIZ(X&m{ZyiapBp-H1$k&B)39Xsm*P`yZQeBGeFG0rFHB> zIJMF=G6sOH00;r7v!l$NX9LqiO;l5tXY8n>UPhtrZ*N142P(8DZ?He!fQWi0?dkFH zwycVzR9)j!np5w+&N_b)_HD0INNQPx@v@C_uhwarR!cO*2dK5?qdgpK&+G?#671L< z@CEhPXU&X3JUop@3n?xt8_!)mj)EKk3I-=EfsiB$Gk_z5aHEkU$>9gslL7)Mp|gcb zmNka^DF7U(H)|20cI^~0PX4e?3S~_-N}a1D59OtqW`reRlBr)hN<%YLw=PRb^mW@c z`!3Q7#o>3nQPAX#FW9B z8J9n^@=L$j4t4EfYhAlv&Zm9~SF4^Zl-q}+U5sd4-62}L8@uiY+XTW_m2-o5EpOqi zB2r`85jn#!m-ZlwkY};qPcf#r03z~UsbTb4Z?D>r*;%`P`Eb50+cNZBpSqN>#wgPw zMT~dH^Nt7^xJRKCcUad%Hvnf5vr_pat+iTG*17Hh`a|J3s^@53t5eT`z#iSeUptMx zDWzMC#>{r-@pH7~Jr1(N+igz(`hK;v)U~Hn%0={JGrA7vs3!`tmrYQMy!diUVKD=c zr2wtAjz3?{dqql(h~KqKF~?>Rs*Q3hrJ1nuO6B}f1u6H(P`(a{J2Lo;U1lIHAEB)cVWrTVH(~Dr|r5H`qTBeSW#0NV&Pb zvXq7s2H*h5scjuQ*8BH@Q2GO<%_eWsree9HF%z(D&V|tT$F;r5u56063@5Zk#(+iRTvtV{ zI9s9ah6uB`B2asezb4-6h3XN+$yIct56 zT3LyhV;bAiJJ}Lc)Z#No5Ke>|2}J_596@wlV>jY4tVSPKG@K@TLbE$~36wZ( zZ9X@rB0mF))%8r?INBFcG7VssU{^ zHaJei<>qfh+>qg2UKy?8MpU$c0{3rWXU6H_K6mb9aDS23h(+x4hdcyZgXh-XlF{^- zyzri!luPz>NpiI&e|RGYY2EjSy3>Z`D$4b*ZF zv07aaH5UMWH9!B+Pre~iUMV%?4jhLNW9rogj&_d|OoZL?FxKstP5ql1U+A>OZWk1p zD@PD#%5A0H3>2yy(#LNG(_d3RF8cIsqqp)HxNKz5x6dUk@9Q&ex09>k>VB3(3L&O) z4Bqn#vSuc^x9&x^*P*U|b}##D^Pcu3`Mb62<>rfh&$E1a5>-`=zRVpMVfh7q>h$wQ z7K)WdqlPN#O6u4&6Pg!db+cqt$6Wyyd$n2_U#Z}YvR=CSvEZ!2-xhP-r3{b(OAJ`x z$W(UIFbv?x{7+QZi~G?Pn$Xn%4=vgC4N=Z)l|DMnmSy^a5a&3Sl74!xh4oiQjxNk3 zh*O8e`T4zQdo7=qYfc5VjPC{q#f&YV*#3|d&<+(W3KYiqPuG$WQ z|K0xg=K1%{_j-6I!asZOj4O8G$%_1q!7u!)b>gL2H7H122(^e%R(KYT%h%;J6`~*g z+D(%s$yHb{j)In-_%}oIF;uV=WQ?N`_B$%8JonkLH{!^-eEmQDk@Nq}e)*Sw?m9m6 z^z`F*;1vBDWnP^8U#Y9=QvrxR{TBka10JEIyaqF`HMCubKJ?Xei$DB4jZ zC?J6hr1*sL%iq>v&DooM)ZM4gmx?H;*<|lR+ITuEl`rIY{)b(NgUdwM_t-=@m zSDMk5k9V)H1?a;ddJ#C{HW9+Bc;&EYj6j$IQ8$uyy09gzQWUEbfEFe}nejjeLS?!$ z`W3j2otadsY+v~jYy%cqo|B!;$K)>QUvwKrXXLozxUDK8ry??^^Ed{H*vdJm8WJDI zI&k6v1wOn6Y7}#OU2|S{zH-;EN0jmq{SiIGTAb?uA855wJ06_QzxJ@bzr)WyyD3&N zeb(AB+G@p`%PV5Kcxq!T-sxtAAY^ZItWbqhaVs{MXFQlEa#k`zG3L;BW30;F4x@rr zColUPl`-lkvFWd`Ie=J{(rCcJ3_x)|NUBktI^~_NelbHkeW`--+qpfax}Md${;9~J z92BWBG3_}YPb!ohVpLn!7W5T7P>f^QkreLQ7#Qf(frC;{Kw2<1NxcQI;7D7!68hvPBrbe5$c zY&=VnE`;r2VqK4emc^=i7?l(%)qQjg9DKglVJs{;A_|l|H`Gd(b{k}%TLtzAZs%C( zsXCrgphyW*#BTbCEVMZh!WeRyN5!tit_o$~x;@AfcHjYc9Y5rF7xjQ)v7w+394a6m zVsE{vHobv424>iI^EBe%G-!d2jpj{l?nWi#XR*eWc@H?m>|uH*vv4q(HjqN2s6e|^ zm;@lYx*{Q|=ZK)gnjzN?s!JUj+uAKe1spe}lGTE`HlLH@y;nRB`Z`(o@=8)kDoIPF zC28p;H$j3R5=4TSNDyE43V4K9#8LmsSgozrR_oSQYYgVdLbH#&T9L&Sx#MNRO^Y27 zf8h(IL2>vq&HqSwtW;&5zihXT;_cP@rvc)RMywPxJS#cegm;Gyh3TxMZ7qc8Fz2)m z7C~!pRJ$3lzK||0WGg|=#BprSNdQHxLyPhN6JV`G0jES|9`>ZoWu%1>E3?TTR|3Vy zP=d*1z)f?t%R>|f88uJFGQm*$Alz6j`4|9zeVmZLw}|~R0EEhq?HD?|jP4F-1Qgs& zi{2ST$o|4*oR;nU{8v0yCe#DAb(zvRW3yPx`2JgKiSt&gpC=h}&8%Hj#^dvs2dP*P zQroldzc=zDf=}GdZ3(Y;7Wl?V2D_ip3PM;|-)nE zDl%}ez7Eyk1ne#nFpk@;6B$B$1$}kgSG0QPZ4rImXI;7S- z*4WTYMXJCTS_o(*u!UqGP>)n#O7B)gs;c8aG{B%883oWHV-QfCnCho#^~Bu!GB7Y< zVTd8v^OdP*OwOnQ6SjOf9yd*;dk6P3%|ZY4e0Vt=_R!(dZV$_NRMsH58#{cxU~-7W zR11`BbSu-r+Ei278FuHEV8HU1g*#tRHN^ajI0 z4`b_Lrrj&!JuNmjMQ&LanB}iki!qmkCZTh|G~oUeIT9idy<(L|6vEuLgt;g^bxoDj z+>p^kbni~`B&%GKY3(h$wk090u0xl~SNoIYZ7r5^43-oaw9IR0=zyt4o?!Co!*ziG&6Tz*0xF+LfM=8loMQXi3OZ zCdeLlQ@$a2Svws_j$DaIP{Jel)W*1#x;a`7OI}xxx2S*s*s-a$aDOr_$n#JriY{n& znX>z8!8i!Yy~!=5sC#lxa2gjl@7&HnPOZpA@E0k7*}Rmv;>fY0GEVyy791lYa6kfL zy;10i+Nc|T^s~h(H4FFqj5crTE1c6W5md=Xa!}p!?SyQiGS{F zpXx3n1(a^8kfORGZPmHnBdqg$_pvu!a5<(};b=*Sl`taU0cSZBh!pJ8PLElPgD;mx zRO1nkzfM)3Io_0QY&Or{J;ZB45tH^}Ut8r-E z5eavUDinjV8lod7?McKmDHcB%xB{mZs*L(gdSbmz=z5Bo2naGrHk4e_Pdce*peD=N zW$^*jqIu3(RVwin|XAV`askwjadLKISOQ_f}3d_gUp zwmUHOX;rIY;;l^+4MNMWJg;CHRz1TN*|KcAj!7_Me zpi)`GhjN-;Z*~XZPJN;!6iLurSI@3z$rIYr45AtGSsvS8YqF&6UwIJy1TpeeL_%B? znV(&u#2p7=gF=dyuVH4fp>upN>;2NIcUjjXyX^zUhq}?yqbsUu`|g#gzf#>H;sHwF zH0BjHjV$O*N9YCanm|C|3t@f>&LU;+ZWFXWCnOOQBoL>-eYzZ#PjKD^W@-sQzUO>R zOE)|xG^dpcP#FPwM|y%o_7ymahqsk{Ct;C|bwO3JG^nt0xR3&wWS1qi78c~(e3Wo% zw9Y<9#8_@Os#4}hReJW%5h?l>ZVvoK*q(XP;a_slt{jBWfK z9N$r*9yHraKxZEY?5aT?ifV@53URzG#6yv>2=awG1#MV@n+b>Fd>~l|QGud;z<-s(T^9hfTo=kkHRcD?nYe=SW%N3?5f8;wd zhB3+=fDw<@A@P*{sq+=ljOATPMd$||>78^m`tDt+(R!3@Azw-?^4?8qC-3Gu>t>ya z4%{+QM_>H+4yzcI_YA!m(-kQ(9Dlbwbo0-m1_@Y7Ulj@B0a$#@myyZ+SrD5ilD3x+NL7c$fSCC_9dFt?>}-fa6QiP#D=KRRNXXe*qg zAWOJ{zimb&e{%=1t0q@kiZcXXmuAjn zqH#Dk0UDDcPTzqA_M>zpP$AK&sy_2eRh}e}Vr9W-h1D-jC?c!0oY<$C@h$%48c~=} zJb8-|1YoHoeF4%9^taZ*&vjf~<21+0s|;DHtTK3!hvwO#qNg=6!PLZYPhn!=TBw^`o6EUhXdY9#@uxt*)NZP*zkC><>M_3!lz zT9=VMRS}EmYnN_#wde28o1HJB%1N|lSy?byop#lPC`DIT!@Z8o<7FA%S;=`bgUw&V zdeNERCz&F97x~*hoYz6GnCrUhkBqgSri;=a&VxQW+JBsZ&=fB|6fLlU(_y z@tcunRC)i*1@L3#iJG5+&Mgj=mkH#|mmcu@5Fyca@x6W`WqPIVk+Gw@1J(|2IKWv^ z? z#8n}7q+k+OS`k~>wiyV3 zE94T)v@!A*_zcU|^%pl)zjCUCC@Sr6?1}r(UufNE&+qJj<(1L{=vWJP5a0#RxC$GIS`tc}4`mzMMWunSeNny$Ly59Nem(ImdMaVI-9BYt(egqzl z3+l&&&tw+fMffwUMw7R5St}>u18cJH+1BP$eTu+lRHLcQ5jP_{ngHek}@Ug_mDghfI( z)*g*KM*ZI;6?qw4_WZ|v+cbBO!16FzTgNm<_V*0w#xTp0dzpMk=UG17;Np#*@N!y~ z!WY}Fe85>4)Ok~Dnvt0EA#>{HQ1gewoo_G-lsL_& zz7k}z>*i1`7+m3DYyKz%jKEV0lZ(0faJWgVZEt&9;aH?_4o)N4@8AuG(})%tk7KON z8-ZUS((O##rnX9iVd*vTRcEeW#oG$6l3Xm9}5Sv)4s=KpZ~B$Hha%hRdg^ zbi@6VQ2Hz=fdF-c!R&*rwqBiSqu+wW=nj&9g(J*JH)KoKC8(Wv81AXd^b~nn9iI)V zeGqfgAEktPE7$jqWXt;P)Vu=ZTLtd|FnKvA?{SBpAj}GMXFvjr>lB-Vl zD9g$kobec~zx`$!^6OI)cjn(Lu-Y3Hc_M65I5N32VvzCs zM52v-TwZu>o)WVEuts0aX%r}8V%+r8K=wFJme}@ttlXKk1FL;9TX%H$Q)SA2k+*{z zDUd=rtv$T+c2%+X`28>T#&dVSfcfQUEu+MNYyIc{UCB@4(Hd=T=d9}uZr#4qDt{-d zIsxdaQRHEOcys|7!0O~+t1!~L-r7qqWkcFC(|sLOnDmh)fSz4_#hk_@oWV(X+q(@3 zBuu~xg*a;lW%;+LmC0Wu+UrcseC48@buY=2>U4mXu-QQErWpHOeC=7iO?-o|OPlQt z3KRrl!`S57tXcKv-AgMzr`zWBGl_ho(|;LJ<(B|2J>ts#gDy2)f$SU}BGHVvkKpazyd{JM{`LvP3ztr3uvh; zTl4M;LFTFLixMi+W&0k%C}+0T7RMf~xLgk9HHqZ_?dy>-{S zB7i_M-A}62ZhbZ^3KC0eDE)z2$>WuDd2xD0?hMIQ7(p@N6hVYT3ifas`_{gl%0tZn zB4(G*U10q(ke;_Fp~YY&nBb`z?pW;!Ery@kU;y)V5VJq0ixai3iUeg*O?_&g!(i4J)b^{D zc)o1X!SZdDj2*MX7!SF5y=s@3-!Yh0=hkl%P97X>Q~*O=JTfn6YX}?jnhkF$m)R35 zayCAU9;tP4=s>%D9PL;O-^U`S#C~Cb)o27>H0ylLg?JVp5jU(~?{&?3XfVmYHRy64 zs8aQn5&4|IGV>8~c8Sbw9e74J5M!%~^hdLl+B+@}r}p$qRRwmBtT9PDUwoCN7{Vj7 z5rkjon~K(!NG)q+N(_5ydanC|(T@{oUZK*ylm6|wa=U_!a6PVAM=MpSf*~3J`(c6e zcTRg$jP=DD&A%}0S)1H3Zk_hsd_w5OWMivJVMV#^S^i@T9};{Anx7vNi*{0Q?_D@08VNYTwv1hx5(LmMOo+3M$ znaD%mWD3v_cWB&w?H&z_#!bD`Q0l-bC?bE+v2< z`C#CLd!d?)i55(G!Pl+7)$hKbD?sf-B#c{a{mx6TmGp^ViP`vVQjA@B<++vo^f#V3BMgm4G?J&xg=T}K?O}!@E`Dn0SShd!%!%?K@GQxDUf}GmR zqU#5a3TtKvT_3$IY_`>}023g;9zl^)=3VVe1T|>8O2$IM3!ag3CHkzr*oq=m){E== zkMJAr0k7smOTf^Z<|a2XBdxhF7=xJ<kdx{Q z9Wn(d;+_V$QAmzMtdeGW3ob?TGLF?B4-%HGi#j!#KCd++j0JyyLKBCv^dOf>yUrjU z#y|<;w(&oD&!`M@BU7ErEbSpnnaLn`HaIH6IR>uR3!G{!kbsEQ|NM-v<}PQh+?hr> zj-QxaXKV|ZPa|*zHe9~ZWqFjajGs{oeNh$$+DuxTV3h*5ZuG~JkgBm14N;&3R4wG{ z!bAgs{w{Ru*g9!9fZR-=2f`o`(WhHNjeM*0 zxpo1dUTAY|1f}x=YFKML4g#QJvAC@?nu{OBKnK#n9cXM+PsVa$rWuLPxtSpsw2_%) z>qzT|&VEyx-cbs+r*sQ>PH$viNU-Cz&rPctfo`RYqf`ws&*3(S4nL+u8!b^?JJ+Mv z=2mKqb-|T5+}PF#GOkjhDv*-X%DW{W!woIdZpjY5%_Um~aG)pr z7QhQ*y(FjYx8K)z6^n1^R z$($b34S1~ESaNTM`H8Yf{DhIv0mLsv9d|rtr?3#Hd{Dq%VEG<94j(00kW3kkr1jqu zF;z%ZP}H|3ESf)vAFNq)G;|Ndag82TW#j-4IlzJ!wz5Krs?wtO<6owHBx{y$tHds- zvKFR;e?+VBaK@nBQ+Lc=547j1m#1A9HeJjhkt!S^(d?*)r9#}Niyy z-RZ2Wf^YGwNu$6kdeU;-$v%e7)N3R z93=tsi`2_PrgP5f7gq`HzN$R+m(9wXadpAyJ4_e5aF661gS4C z>*e7op!O_WU3W@duZidF2ai3&j;3M7qOibjjFIjSUFyesI0&XWqLPSZc|XlZoy%O5 zAw3c|8t-4s_>U6wM<*{edv$rzJ$+yM1@ji{{P znd@gP+wB9U=D`|C-hs1=(vqireR-)W_LZkd4!x=>kP^=kSV!QNMVCt%LZ0knqTh~G zn&?o$GiO-ofT@+Fr$mJ>0%yI*jhSLW$lgWN%IW5i$or5NnzIN zz|G!rMs;k~8uYspB_&iyC5_EYnQBn7#ujA?!m_zYb0cKHxm4N#pJPuifP`;Su`Bcf%5$EM4nv|5lI%&8ysK%LF(*U=Y-48*9q=tJ%qNJJvt4f9C z)TA!*g;dtGs@%-{iOxK+8@HJ{b*-DX&5ydICbKc~Z#aeLB^VAfWhM0OwC05)tI&XC zYu^sXQBga@<9PlMYu+$Eh>+F-cuK0yWcPo9Mr%eMv@24L(WQ}^t8f}i zEhxU-f#o{8qtfSzhbgjgtJi*~nBjvM9EWJu)S%uD*i8;IY6Lc1Jt8f#uu4U~U=EfA zTGgZ)o>kE*8@r&r$}?8r{#0f114SM?&g@y4N%AgQRAGeXws~vhvjSfu^4T!_(=VXF z0JQunY(=@eL}I6{98z9Oj_!E}7_E)4KGVKe)rPp2KTl$f*akvAc#Mdobr}&H=t%TW z#UwC-h(eS|(|2xy#buKbR<{Kcyt=!M3c34JSpJ}ap6yAwYV7N=3+vX5PoIl_2$n2! zIggm%F!6kc z66^$hPI3g6t|D7wsI7^W{NsLw-h_pv>WFIkpwPE*oDuW_C8aIbIbA}uKj&4=?g|z( zU9O2oz5of0l1fU1_M(z3$3l84por-Scu-g)i?(nC3KNp-wqnvBh*#cJSnY7-;8i3w zhj;Q>(G|&a6oOXgEFSeG+z@m5P zQLE7pi*qvk0|B3iGNL9uYNkiHPrDPSJ+Ch2Y6$M@`TPmj`}>m)r_RUR|M2P^XY^8{ z&|WA+gdwaU6JFE~-u>pQp91@gx8?HqIh#u7IQIP8mf#q2%1DGQlP`pd)gU<0oxe2| zxZukSVmvS#3A-heqz_e_mrbMZtTP%+o^RIII}-83P|R_M5|ZUn)uJSx&_p+-0Ss3O z+gtKZTY0}RXpM?qJ5Dh_kX987L_n9YC4T>i+sj-oH+`JTM8z|#u zNFH1NfdF=+o*FK9^hIb{ml2G!@i_GGWQaK&6S0$2M8Z&0N4A|qs&lv*rCWQdhEkCJ zOOoj5F{^%$J~6ih+XQ)_zTnmV=`2w~hmT4=+)y{C!;DM;N?g4e(etS_{Hdlr>4Zg01B_HBuIW)6a_V; zJ(VQeM0)&qkOpfPc7$htue#DkpXwrJ`9N1qQb3{=dgh>BTU9bq`nnq;Ec{s&D?!6! z;vtZ9nYlq)E5X*LihNGT4sb+yW@=NU3(VeYPI0xA zueX2grx@RQof+NBRGv=H=m8ezB%l7dg0D+w@LA1GUc0S(6K;3=Y>Cgih%L^1Hj!Q4 zkCX&`o#us-9>iQv!Ku(B%&1(Y>z0vh64q^E-*Pn=Q*HqA{p^AW-&uE=OSRYgp~ErS zQR8Pp@2YjgR9ILIw&n2mvQM5%^z6F*2h3jMLSEqQG!p80XQzdP;XZ^gGoRp&ChVH7 zgS#gC>~{)_Ga9$4$)%s<)w#xOu~brhCA5ext`iO0=nrs>ZP4K=QxVD09&>RcpDAqq zzE&wiS!~sxBjIzXqYEj2{*)*W{8=je~VJ zcxoGCI#Z!A0MNA;1X~Y2?Y6{c)5lQt5=XF6viAVtx`S=VcO;1q_GL%<_^dJ))E zYdf($;I04~3~|3sNw6^+@2nQL##Dn|FOucNc6O?oh?gVlZvAQMSl>wo=65<>_jRg6mxc*f z0o62N(Dz?q7Bsar+IvyI&zfQYiZ$?G%Bd7dTO8;n)uqUZMn~)pnBNg(ISCDj=@bmt zG7nG_R5-{m1h(OyxDd2dv8gBZ^Oi}q) z7eJ#cJoFVwK1;Ddh7r>ki}Y^$ErLq1h;;AlFMhD9z*|zgHaRW&G^>PJPyaY_BTpf z_15P0(y@+`5Ty%WtaTV!PQ^8VZQTGvN!{E>Das&POFc>97m29}AYUI}I&z0m)r3Qi zFDf#DHvS4aAI6)M^Q>|Ia!E z_F0S#GmUdC$d7qu%X4f3zW}6{qZtlp(TQ*Xy3vp32i+D*;4u%_Q)pjl=Ef({pzdQ;pr{Iu?4#*t*vHbCk8@2#_^DYAYNY z`Qs$L+W#`ecIBv-_0Eqw7Q7>t_AFNS850wLS#(T~)_OlIM#^;d04lj_J z>}4OYM$vWmr#Q?%Xp5n>u}$_E>E^8@Lf!6|(+N-B5@TRckNo1l9iLpz$~aS^gr3*(eT=K#gMo{ z1Zx_?$(>ob;hk>>-yTU~I6SrQrp!=Ung&wQ2TO>m{EGzVxgikTHI3WxCn%dNn@4>Q zK&olsfh@*=k~M18P8u?srS$3pYJNu0DaNwyB8&7IU-6IvkVYJ+3j1g@pJt;G+C#d# zx}p?A8}q#yojzlk!bHxv^Ovdn7BiRY0g4~@Uy{9mxiiVvEP_jNW1tz*)tHaYp$fxz zA#iwH^QR5(fBFLOBqlh=LXd3)ql@W=NLgQ>uyp&S5IEVAOD=1}7}1W2>4?iDm)v@{ zYM9NYh95MLBN9*?+G6OWpzw3oFbLMPL&!8{i4sAEcEz=B=sTSzNfP67SoV~$!;*Yw zb%p7-INRJyV@qxNn=dfN>GeM%fLwgsQOfv|3*4vN)vP}SW!-L#qT8E?U6Z%QV66)L zGU1$;e3I#8cgd7+*e`qRD**zVYin&;7sb8GSz%z1^hG?y=e7L|v5}S~4`wMAYhdOR z{@R@V0b4{|x7@=fq#^`{c8LoR52^*Egx3$#Chg6}^fKn|iE(u;fy+zAl49uX3+1WL z3p1ms4c0uz#jCM=lbJER2Jn!xlj_M5-|T33Oe-=RdAhUiEW9vl6O2$aAJtU&dWwiWYw&znu zC*mseNipgPCq2rzqoKAwA@k@@U;NxtZ$0*v_8Xu1N;P|9p6vZ5jPp9?J7>u~jHb$} zq>biwixk0wVUMr<+cjQoC%n=o?tF|$31B$xJ*isn*|^@oridncx0Ayp$zfa%lcRAJ z^3O7Tf#+woUC77f#!qLE+q-nB=>QzVmK1iv)O|VPPbGOn}YpgCI0t+ zR>EEJgy=u9TcAm9xbiTQhBtjUm zy^{I;-DP9x#ekTh@1-!oEK~5~!n~O4oPy2{aSP*Oe$q()W=hYS-5Ek}xu#LWK-0@7|Ea)Ee27P6%OR@A7O6r^gIs&P5$Mlq%YD(5DY#<&SC z35DP^27(*dFMm~temhkEY#bQOK-`f5&`v;g0Fx`uuCx%(Uuq#40g2}N!4wX1N1exnF z^#nyCVg%B)B`2NR;>9+g63b$^4!ja>L}9ksWk@X$w{?cocDl(bx ztRQz+fb+)+<>r}fv<3^O$bw<&GozT|Tes|?AiuDavb}cGp`I}SeQ~4FYTn2f{s{9Q z>#M{TPkZK}E>+L{3E~fp5^#mSf6T8XX?vwg zMv>3fKE`xg?`psd-*iJYRb91^NuyJp=Q5}HA+Pd!noI3(tmTURpW4R)`$AVi@+L6h zVpIWqwFA@eMsH9PIE`cRW8df-;pkNBl-k0tgTI5alywKh9nlUnwN!nCNvT?OV%?J1 z(*qUOdrnr0M!(gyM^@+N?Q{H|=gWO;Hv?q^y4j|b#wLAhcU7w_L7^Zh?d4iBje#mG z&W#s&zv$S-VBHD1O;W`4m%i3fIq$2D7?i!5?`Nm9;XN%hBHaP+T!HtR~>lHB&8lhyr%Os z)9{H_?z3&y&jq+oH?l1;K&~pQDe@RB#FodsA)dq$Y~M~%U^em$cD#a`WNI;RGu zp1yb7qF`$o(XkP?xl+0TozGLbF%kG$pTJuI&^^9kyWnM9N?Pi@C)y`6ZHx@{@jhSp(Tb_s4Y~x@7C4}OeS{ip^ z%Z9lN*x3}g%q6>#s-tH1T+h&1927eB0 ze=TICJJ6P-RnFpLCCbmelub+4pO@6$;zbmc^JaM!EMLL@OUv*(0G$SmlVh-$^TT!L z7Q-S`+S}aS5tA{018PFD&`xFTMd0C+4dpgGKSN~hunlTc6c_a**PP)kien^uzhkpQ zXFOduQ1eZK``*@a^f6nqOEtH4{|iWyO>uU!0j~0^4t#+n<(c=n*+rg`*5WR$aGGk( zZxj2|N>rWs@?j@UkRP7VPT>s5K|dVOwtEql%twsI)GH;X{|tVL{;ib2_D#zYUwUYy z?Q+~p40%>PZv5aiWf>X4a{5)KWsdkp2`aWN+#G9>%?-_n)w)xZfK;s;4_o!pUgP_c zL+^WTw#F;zGqP-4%57bpnY$!dN6mgl4G*ZbQ$p?nWZ39;9Wb$ zp7UmOho_p94V#U3CZFyXTSzE8FY!>MnA<^;&gPPGPSBH?iI?+H` z$;t5o6|yW56v3jZ;`zcAv1<5sB7vT^12R_Of?pE!r~kf4w;K^})O>Nz1OHZ1#ym=e zA-v`O*jPDY(@q0d~ z*^bdZl~hb)kZXFC5>@)N+FrK}UsHOQ8gkv7bQz9U=Bt?(oMw4O?LDdeFU}uEhyPU} z5Z}-dO+leC!cpSL8PkYRI})0jrvB`{dpPesRpFGs8pWZ5(DgaBe>|LU!540)|6B3;MGr_5z|w$G7;z`b)M8Rp^%o7Muf4r}d8taT&RjG`k;m;wUQI z4jtSRJ3*K9q6k;^$thb9R5;bf1S`yM_jh%E_Fh{fCwWwJ$yBwi zk=x3o4o7PFQX+k;52#@p#y4wJ5fySN&=RR#(oyj~H=9e(@l?X_l#4B{m*j6Lq|Mf0 z-Vrec3;d6|qi=Uo0ZmJOAq++8s2;!RaW6?5I6%Gf(7&_J?T|NBkglsnA?ZLD>Vk>@ zyDGwB^=4SxA!y_-Jy^l=>f54Q@8S&$M_TO4Zk=H&8e}myib@p$;FsW0V;>?)<;fvN zH@wNKC;m#gB3$t2_rsNGSP$v+>afDuew#b-C;sfEN4H@q1@?0TZew`T(_uDP@q=(P zJeWmTJuB7)42rv&91`_Mg1fBe;|gekQ>x8|Sz3c?T9E9gc?rt}K`%E|Rx2zHOjed9 z9v`ha$%Oi5eg)eJ-qgcz!yjbCtn8OMj+A*Qiv0DaD2(I|A$w0@z2u&(WTGB)Ymm(7O02&M z1^TxkAkr}-;Xt*sVZuWJNh$(}cy559aRCb+`aCyeF+fOKz+#f?%b0K(p6N@^WIf(U2VQ`xS$ZsY=N9lFA`B&Px&TcXq(YlqLeq4kcx! ziU6~HptN)mpwL4~QW)JF5kwztarYI`TUE@NI&o=iZ zeCdtLB}$o1=~SH7b29l6KdMk>PVv-QpR1(V(U9QDtl(Ujr#qvRCvK8W&!JoHfoG`z zML@d0Ln`tqw)S5?cA66-XU>@P(um1(W92brrxK#vmoUu=plViw%5z#0sHU}cRI0M% zc~7aZnyFHn+x0K#%;aqn+Q{T*yYIT_sU#>iX7NSoe6ISZCX~q&(**%}~gjXm}Wgx?=)3YT_ zL?+k7AHH{XDk>tGWClYFj!(~n4NQvn73e1(3d51rU zZ#urX2TyIXoOVkxCDEzsZ)fft$Me#Yeyf}}8Tpc9PAX4X7HXK#Yu+zZ7$*PHECG{W z2Ni0F#o4Kt0Pg~4ktVYy=O|7ZJ}wB#HKgY-sMs;x!6!I^B$ueTT7=|UwkayHFAv=uGnsD}+uN6Z)y1gQb0 ztURSdl7Dy`vljt0Qp{WuLPQX=pUHgshK3^D=Yt`y0hv6lvYP1kYATG}*fc~TQmQLo z;&h|2+vee0W8zy)N)fepQ5QTNu9QqwyV9{Ot-^5dVDyUegJx9UaKsU%=ESyG7A>M~ zB_FX&wG}MA7=>&pq4B`DQJ3|)7Gz{P=V0;m9U^>9=YjbM&>p1Z6e6|LZ&5?VXIguj zi9KiCir8uECKP>HTsz*}SnD7~DMW3&_J!K>p!$xk9=!PkDvPBH-npz>BU8DTVN{{P7Yvhy~9OJr1$lvh^>|Vq zK%LaFY3_9yAf>*xOhRM}MDmFogWS+=Vh){_?T6Yk$=&QFS*nTCY7{ioqu4!M0`(SD zo>$z1-s{pn6Yh*t@@sy9O>&cUp|idY4me2jc4vRPEd_euG{CTvcS9L;vw!d>Xq97a z!a8A)mex8AnvYtO@)Ez0B$pbqpU5pJ`c+{8`4r|C59wNaz?R>WG@EWlk4MYceRAMV#4pU zb+%r0%-uF?3qDi2(`cG>E&8#Sv@^4*+>1AVV};mK!PG2>5dd*)x7cAr%E zLg?uujQ3lZM53vV)a`P*K~_JRNB?!>GdA-^6F`1+>-b@~1S&EImE=4CT?RIl+`Iw7 zLYPJ)-r-~@^NXWkcK`t=-c_7`Kg%9HYnE>}={}~4lXT#TmkL1lj zRm=(r)Z0C{ru7E+%u$i)bsh2LC2lFf6!fKcHLxaEk&PcY{p2_G)L(f@=U)@%=7?F|bkn{YryN$76W~oAm=R7g~ZJs#^`+ zX&iJ~s^``9p0pJJLM}CXbq>CnZG06nKFKadUYhx638=Sxx5zm0afzA*(BFsZyJate z8hmmVEo0I}`WmW>76bFy?8eJp9@2-*CH4wr^G~MV^}ZK^X%6pmluK(J@&|9vJ&WdD z+^3|KX;;NA;3jHPn2*7Gha#3341EXOyf;qPymVDDXR@J#IS%DQ!*KgqkW>G;7RB~2 z6i<#ZhfUn!35FM_qR)wW&C8`0-|Gq(_&OnzB(BRjc5U;fK2DqLWIQ~ESnP|LCM+?>~9$1AYp3<9X2M?j3+_C#yElLcn55cQ$c7x z4H9w^bWl3N*)OA03yz&^i!mp0cZ#PrQH6-mZ34}Xh*VH7!7b0lY_iIw(1u!jaC{QX zxRp>5te3hugnN?mQ>!$$i2DNp-d)F8JnH48O$OU~!u>)@ZV&P{hO2pp&-Z8|w3EEp z`tnOG#+=C6ctY+}@>_M{FrMaZM-_9i>3QNa_sePccu3-xQsDnj;#U$UDTC>skMElm zvtN;{6Js+m*@3&6*z9x>*NZo7YsTHp3}c(wIPq9kuTJd)xT}ve(d3# z(it$a3CRd>!<$km*+8!JS+byuQSW$awNI7pPwd1HRoZRD_ua|}A%ef!j#zwH-`SDN zp8OBISc9rx?i!0gm7Nb;g$c@*w!iN(St?QbnsHwmlfz+ksQGC*k~pZ*aaMdYVqWY3 zt;${M-_pNL6C|T*cuCdz5V-RT&>^#r`;#lc#UCi+OIE!aI4U_-^Q%A3az=2?wf~HQ z#_X#_B_v6*6qluaEb!;Spl_4MxABwB0K4RdmOmL^MP2dKAMxWbfmF!{wu&K2sTi7~ zs0G3fx{WiNU;-H>Wlr(E>NFEBulH}1qwhKMx|ee64coomn@pfjyMR}`PFK7q-tPpA z0k*owL6C%wtQ#}#yNk2bA7+1X?B~~@*;9wFNKU5YX>kwm9V4G2M$kXqGQ(Ms|Em-f z)eTgBB_7iZju$}60cp>80u?y);vetSpp(%JSJGpjbo=87%3W~L_P<1wrC_iD3875lidwa4|RSQhY z6J1ase{}`^pp4S-m|4QG0acsqQB(%8eD0(%V%xk)K^BAuaS0G{IY|Q$m*-RB6CWl< zqW4~=&eTfVX_h3~9({Q8Pp_GQ$&32gK=o%@z5ATMQs30!&c@imvPODG5V5+4{x!k? zV^KwwP|GmesXPF!d?Ep|{) zWdM*>T|VDS8T&ZYB|EnTZ*#W0sF=Jn?DzOk0V{9YQ%nyGL6$VAXo31Z|B0O<+MkMn zM+0v{{Q3zWS$5_s$)=dx5Ok5TT%zfwn)!b>NZ$z`MWtU%im%C+lz!e0A1 z*3V=cW=kXMG=XSgi9BftWQ@V5tkI!rvzXOL>3w6_(+Nu2DO6UjLR#~Ue91*pOcq?8bE1$BX?+j4j{z)Gm&T-YIbu>i+ zJP6j{ksl!Br;dH;1sce4|GW>c%q*!5J7|jT@W5EZy=cxWZKp8&bO&}@i3MHUBeMOn za!f#+h?CizA=Ia4dz!1-Y{KobVry4xyYh0p&4|~=ge{klf>SoZ$K4=FmY4lv5$W{yjU*^IBb;GG|Jcvv(CoX3}|`V?xV}K zXvfk7+I__i7QOG`tmT)^@<@UjVCAiikyg73lTk}?v%$caLA4dJB+^=Z-wm$S-z=B> zdd*@73jTcztBES3QT)zwZe**XZwvTFHUYXCll@xiI{CRNbz`sXLA-Q*5$3nzk7xeBFh-T@_2iBtrwuykct$P>Y4cY{HydyD+~60T zXO(Yy?}i3l#J%er-Q2sV)mDwgsuyXtH={lWw%n&y{Ko=SmU<**O3Il}Sf3Tii5u-wDtkl`3<%&PC)w8Gta#%gC1E1vm{M{QFog~M+Csd(yaJV z_Gf>bDc2C-<~cHoQmxn|K&W8{9ee4C^svohm_qL!8I$5`=*wf5G!z{cy>{zS{7&@s z*~8PXo&4R>%O`#>zk2az0jYOEZE{+$0=|4K02EAHdzXHu8Rmd7lu;pMs)Mp$gyhxJYqDVjNrpi-n>*x4C zk-(rXg%Vf-tO0O0_D4BBpK|T%QiVeFB9>;1S}->Vil)ievd$Awg6%kcuqF^x7gk$O zn^@PVl3UlHKuN8sVru`&PTpl2x>-ju<`k)3jq~TMSA9vfUNIGTj|V+F*HOBquI^0Y z8+%ECkkZ@W=-U!5(Z0%;w(illt@p)==(axkcIJ|hP3~z=I$htG6q{pCi|O37UvJuL zkgu9L{;NiH%vTpC9;XlcODEz#E8F)8K3~q9gF=l}jBT^AKL@hilKHh*_`i|U&$ae_ojH8THj^L&?f=>Z5F!O}WGA1V|8+*B_=d8BQuv}irBaG5aZ-+0Y!$Jn zA1an8LJQF4Z7Kzz`FLtx0YrR{-Mb3+3`~G7>k&gIzCZz%$-^>+0iC9@2PnajQpyQ_ zoZDCYZ8_uOVA)ddQOPrLbDnhAW@JQV0%o1SzIc@q#7$onWQ0hnI-0O zYZ|hJU;O(6^4lBS2yjW4?BPqr| z9!qsWyzY}%4=JdZY5fRt69cE46bWpf?Dq^&8D%Zg`l<-Y_Z>f27rWKxU88|q3m)ZJ zmDw9vy6|JTX()pQ!I#^+6eYthbPFrmbs_i%k&WRXiwq%BdMD${TCMeR60CFY)#N%< zW)MHceyK8LYK@R4BeMJS;uczUUq(7YFem*5%EL=_dP{N2g{prufIYYqbIbtu$2*XO z1$^6)WVmm-?~D(lqwmcz0I)??2Y}pzzI0%X@;GzSE<0lbnK5=P?5Z5HqM*WLFvgx! z>@kD%w0RwR=b8LJ46}Nymr-%>(9}lnN7*m1j}i)X`3qme>a$xg}RWJG^5q4%f5x1Xx*|x<_Z7=@s1>2-L!PfW|kZhaL`(;&bC2m9aWhBrhFL7W}R{c1w15 zy1u=P7Z&Ekx%}i#rpi9LNWF0ZQta5V(O(7gg?5=rNS31@-X->I_^iC}yh$ZT7q<1u z%yZ?TS{|ja7cOPTR$!)-591H3^2)IV6nS}w zdHeR5qAP~{aKzEIf?|=>q~6Y+)LbFaHoiEW#pSQ}@rik|DSq+mr|1U!^W^eR9*O_y z#Qm>dnspFGUbN$Un;(s1FD_2}-q}Yc5E;4V5MjhN>y9G>p9|Gpy_1P<=zh zE?7xsZ+Ks#4Wg4Et;m!uMU~PYpNo(E)h1nNOCOWMlOS)+6C`xqm#Yf|Jpg7Jm68QF zT=4MwVYAQ(8cIgP8*4l;Mb3h6d_r+BEgwlDB z9BQ41+}vi-S+PZ0N0~6#eI%nuSUB9;H=c}haxoVz30FSz79Um3n?C1fS_sX@KVfPS z(S7#K=2(3Br@iA?|EX{KV9zdm!b>rw`uSAFCo4a$ev+ha4hl$gBtSfU@qTyb-21jU z7cTlP-RGWj{)OtdT?(h(K@8&OUCKKRw*1@Mk{9n+J3+3l!1P8g4qvsJ;(l4CPzk6A zU1deaH;Fo5ya6|oC8{!Is!FyiF1wJ3o`?KgeDkEEdskwZ{>{}RZ?0r+E3`sDPW}`V zyyY+E$MB^vV>e@xt=Ha1#QU26nnK()nh4B%2v;=8$FPWQqQxixvqCpej>qllOdKe`$Akzbv%%Z%jBg#y7!tI|-xew&=QwlMV_G(Z#Q> zUCg~Ceag8VsO>3Zp+;3|%kV97pAHHCi%+9IPbr~!HD(?pB)1bRg>#|s3X!7MJ4xo^ zF8Q$X`Q+KbsseXEYmE1e55E6%8ejUsbECM(>z1KEcZ%N|goW4CQTx72_}KGS;dkD? zw#7VvwEW8(do6;`9vN>>F2z-?FQkOuaE$&b7_V;svn*Ak67pb3ekzfS3HNB1Y-3O8 z7b4+>cXHFUGaYkv_paW4X5>#Sg0DHn|J*Y4dWP=a1%c-rqwiRSpU21ET%n^4u#g>m zYj3=8_uIJ0v$;qiCHjWf__MoTH4pr08W7?%aA4!f%6_rpjg=RU>&YQ@epKk> zv`9E;JQp@=7?_ylAu=Pgjc!eC3_~+K8E%4p+AykQdU^)A^_rOArQV?NeAwJQe?dO~))u|^ zoa=n=3oSLOYk#p*D@SK`uL{cUkAMJM2VrONoYBYDR&hebcZxO|5YSx%oBy+Rmi$oblC5 zfXgIql%m$?VJT`9kg6lmXqt!z``99qu@LshC~|7+DS{>>qJk7l&`7$kYc^a99LD5t zC`V(4BgN7bkhiW}EApJpv4>CV3)Y%bDoEjSI1=2~J3HYq5QO9(8C&BE`r3*z@UnWF$uc z)jR~a2|Ao@9f2Z7eM2~_u+0KY5$CAV#E2l z7S-fF@Y{bOia>fF!&3a3OJFK~a|g>W#Hf<8I8+04a_B$ zqAEt$w6R)1&_8A2)0n`uBuapoSo)(4WYF>5ixw5LT>J@y(fo;+BHX<4T{lBRmosCB z&&WvpLr?GqJXk^tqPl=iA^{REIYluHEwHnyafLAILIze*hGAlMO_FaR`&mkEdkaoW zB*lgjaeIq*iLk(q>ZLY2nRD4Vazic^m%wtrt zHx#J6JTwwwBaN7Irsvyk8&E!*l(oDPC9gW00_%tzh3eSgNTzAU(6>v_Cerv~ zEejY_u!OV32s0_H(Z!yJ{6f*lj|2C!7rYw5BHp&)m`PPD6`wz@(V)04;?A=xI0eXO zF;QcK6c`?L05i6wiLT{72zV4Q8;UWwM!XQgA~vRwO-De1mSV$JC&!DqnBo2~+*r_z zpnMK@Gg(+_K+s`z7F16Og@F(YYsi!*+p-1pR~X)Pjaa$gGFX_AW#s@|u_{8H574R2 z^DMW;>w$!fXhdd;1bbk2hyYT8=4AvqgII8w2X<&N#NUE%THr6G0oRY7`n1VFE@4*5 z+EZ|`qL%L*mIWD5PY60d#@o0Mp8|d@hb72e4tUcLcsIezS;|X9;ZV_{3vtoVEOOa} z9ha3A1g6|9dzauT@{qiNgT~8-$h#Gk1IfBk){h5C^wsYfr>W5IyZR~CK6{FTU0f*r%fhY=n_Jwv#}eA_b&|nude=^=l`Y3|7nfR z;w$`nv;O+DeuV9Ikt2S(0VNOq>+!=rvMH)H%EF|)#P{}Wf-u$IcxJ2%|Nl$6i$U)Z zvERcEb>IzNsUFOs2EKg;iAETnZO_YLV-C_Q&2E)J&(g|Se*wty&3+ur&$ozkO1SBN zssZAB6q;h6YQ!7Bf-gc2r{zyU#CNQqi+NsgXMOzL8XOP>@yHeP&#Tq;f?xAmG1ga6 zHv^>@f2~$G_r-k0yX^*DGh8aDwL8PN+C81K)idhO${ljF32*i0lG{`4&{$zBDbJzi z*3&O@XPV^$-1HG6<4G9lO(2}#QIhc`Kv;;2$f#su=OrQ6Eg?jcyU|EuJFm=FeMukN zVtGU?7;e=nG<_t*h6!*S-w{$Q@4!tdv=hcL1&lZ_0s3YCJZtznO_6JD9Ro>x@xIO# z68S5F(9mx}iqCXKSm-=U(r14{xlU16YiX4lE+0I0x5}&nuWv-P|MQ#^1vFGOgB(!D zb4O&KB}K5)hsjWgxu{ozJL8w++*f*}6m%AK4KQ;l2KSA4jxCnF&8X*2xTc5yT;U_O zM0Nh*$OQA3ZJpj_K>bU3cQ+{gXHn#;=$c~Q3_}EgU8nfU6b?BrBK#fM+?_7+rH=4r zEAB0db2YNXFW33w~LIveV<-F7=TrQaDV(W zp~EI1KrCz`!UMg~e3 z93Y@gkg+-P(K@QXfQeIdK8z<9_*}>&f$@3v--uYNuME@NdXV36w^hRCUOVnB;fr;c z+RI#pQ7}%mt)!k~(Ej8XS815}9q`1-kAT7i>O;txMy_N%mlyP%NyrLf8*h#w$~zj+ zfw(X<*wWzK7y3FL*`28PcIaumgm+`8YX!eBvczBM7a<8S03c>1+OSq1_d)?Lv--yk z1r#vS8dnEKBA@!Asl6YYwu z<_eAC>c(~oV5Y%sg6kzd4?rSwr%r*jVHq%%>_xFyHw;?v?QMk5fL$wK(u+ z8ex&^lrBvF`*lq)@+~*;!S$JgGiAYp!2``npzi72WY!V%Z>E9q^waEJguPQ zpUGzL0p*Mb_Sm)vtZ6J?E{m8Go#o&Jl>}x1DLH7@4BO=G7GSd=urXtAiwpTJ+nldlMo@c5BB zCX&X324luXpUb-!uKWV%?EA! z98m*6%j)d&#d1!f0o#2^;uNlEkeXF@l6V960J63n5m?LmSAyOun>}>qd${(Hv3`5p z=W7@anqw9C+Kh#bpuwx;-B3o+u;?7xUb|mic#s>VaVv%%3)=SyN1HOQd5H%zYN})L z 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

    "),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.lastMousePosition={x:null,y:null},this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(i=this.element.find(".ui-menu-icon"),this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)),this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
      ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
      ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
      ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/docs/java/script-files/script.js b/docs/java/script-files/script.js new file mode 100644 index 00000000..b5b30fc8 --- /dev/null +++ b/docs/java/script-files/script.js @@ -0,0 +1,467 @@ +/* + * Copyright (c) 2013, 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; + +var oddRowColor = "odd-row-color"; +var evenRowColor = "even-row-color"; +var sortAsc = "sort-asc"; +var sortDesc = "sort-desc"; +var tableTab = "table-tab"; +var activeTableTab = "active-table-tab"; + +const linkIcon = "Link icon"; +const linkToSection = "Link to this section"; + +function loadScripts(doc, tag) { + createElem(doc, tag, 'script-files/search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +// Helper for making content containing release names comparable lexicographically +function makeComparable(s) { + return s.toLowerCase().replace(/(\d+)/g, + function(n, m) { + return ("000" + m).slice(-4); + }); +} + +// Switches between two styles depending on a condition +function toggleStyle(classList, condition, trueStyle, falseStyle) { + if (condition) { + classList.remove(falseStyle); + classList.add(trueStyle); + } else { + classList.remove(trueStyle); + classList.add(falseStyle); + } +} + +// Sorts the rows in a table lexicographically by the content of a specific column +function sortTable(header, columnIndex, columns) { + var container = header.parentElement; + var descending = header.classList.contains(sortAsc); + container.querySelectorAll("div.table-header").forEach( + function(header) { + header.classList.remove(sortAsc); + header.classList.remove(sortDesc); + } + ) + var cells = container.children; + var rows = []; + for (var i = columns; i < cells.length; i += columns) { + rows.push(Array.prototype.slice.call(cells, i, i + columns)); + } + var comparator = function(a, b) { + var ka = makeComparable(a[columnIndex].textContent); + var kb = makeComparable(b[columnIndex].textContent); + if (ka < kb) + return descending ? 1 : -1; + if (ka > kb) + return descending ? -1 : 1; + return 0; + }; + var sorted = rows.sort(comparator); + var visible = 0; + sorted.forEach(function(row) { + if (row[0].style.display !== 'none') { + var isEvenRow = visible++ % 2 === 0; + } + row.forEach(function(cell) { + toggleStyle(cell.classList, isEvenRow, evenRowColor, oddRowColor); + container.appendChild(cell); + }) + }); + toggleStyle(header.classList, descending, sortDesc, sortAsc); +} + +// Toggles the visibility of a table category in all tables in a page +function toggleGlobal(checkbox, selected, columns) { + const display = checkbox.checked ? '' : 'none'; + const selectOther = selected === "other"; + const selectAll = selected === "all"; + if (selectAll) { + document.querySelectorAll('.checkboxes input[type="checkbox"]').forEach(c => { + c.checked = checkbox.checked; + }); + } + document.querySelectorAll("div.table-tabs").forEach(t => { + const id = t.parentElement.getAttribute("id"); + const selectedClass = id + "-tab" + (selectOther ? "" : selected); + var visible = 0; + t.parentElement.querySelectorAll('div.' + id) + .forEach(function(elem) { + if (selectAll + || (!selectOther && elem.classList.contains(selectedClass)) + || (selectOther && elem.className.indexOf(selectedClass) < 0)) { + elem.style.display = display; + } + if (elem.style.display === '') { + var isEvenRow = visible++ % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + } + }); + var displaySection = visible === 0 ? 'none' : ''; + t.parentElement.style.display = displaySection; + document.querySelector("li#contents-" + id).style.display = displaySection; + }) +} + +// Shows the elements of a table belonging to a specific category +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + toggleStyle(elem.classList, isEvenRow, evenRowColor, oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.getElementById(tableId + '.tabpanel') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} +// Copy the contents of the local snippet to the clipboard +function copySnippet(button) { + copyToClipboard(button.nextElementSibling.innerText); + switchCopyLabel(button, button.firstElementChild); +} +function copyToClipboard(content) { + var textarea = document.createElement("textarea"); + textarea.style.height = 0; + document.body.appendChild(textarea); + textarea.value = content; + textarea.select(); + document.execCommand("copy"); + document.body.removeChild(textarea); +} +function switchCopyLabel(button, span) { + var copied = span.getAttribute("data-copied"); + button.classList.add("visible"); + var initialLabel = span.innerHTML; + span.innerHTML = copied; + setTimeout(function() { + button.classList.remove("visible"); + setTimeout(function() { + if (initialLabel !== copied) { + span.innerHTML = initialLabel; + } + }, 100); + }, 1900); +} +function setTopMargin() { + // Dynamically set scroll margin to accomodate for draft header + var headerHeight = Math.ceil(document.querySelector("header").offsetHeight); + document.querySelector(":root") + .style.setProperty("--nav-height", headerHeight + "px"); +} +document.addEventListener("readystatechange", (e) => { + if (document.readyState === "interactive") { + setTopMargin(); + } + if (sessionStorage.getItem("sidebar") === "hidden") { + const sidebar = document.querySelector(".main-grid nav.toc"); + if (sidebar) sidebar.classList.add("hide-sidebar"); + } +}); +document.addEventListener("DOMContentLoaded", function(e) { + setTopMargin(); + // Make sure current element is visible in breadcrumb navigation on small displays + const subnav = document.querySelector("ol.sub-nav-list"); + if (subnav && subnav.lastElementChild) { + subnav.lastElementChild.scrollIntoView({ behavior: "instant", inline: "start", block: "nearest" }); + } + // Clone TOC sidebar to header for mobile navigation + const navbar = document.querySelector("div#navbar-top"); + const sidebar = document.querySelector(".main-grid nav.toc"); + const main = document.querySelector(".main-grid main"); + const mainnav = navbar.querySelector("ul.nav-list"); + const toggleButton = document.querySelector("button#navbar-toggle-button"); + const toc = sidebar ? sidebar.cloneNode(true) : null; + if (toc) { + navbar.appendChild(toc); + } + document.querySelectorAll("input.filter-input").forEach(function(input) { + input.removeAttribute("disabled"); + input.setAttribute("autocapitalize", "off"); + input.value = ""; + input.addEventListener("input", function(e) { + const pattern = input.value ? input.value.trim() + .replace(/[\[\]{}()*+?.\\^$|]/g, '\\$&') + .replace(/\s+/g, ".*") : ""; + input.nextElementSibling.style.display = pattern ? "inline" : "none"; + const filter = new RegExp(pattern, "i"); + input.parentNode.parentNode.querySelectorAll("ol.toc-list li").forEach((li) => { + if (filter.test(li.innerText)) { + li.removeAttribute("style"); + } else { + li.style.display = "none"; + } + }); + if (expanded) { + expand(); + } + }); + }); + document.querySelectorAll("input.reset-filter").forEach((button) => { + button.removeAttribute("disabled"); + button.addEventListener("click", (e) => { + const input = button.previousElementSibling; + input.value = ""; + input.dispatchEvent(new InputEvent("input")); + input.focus(); + if (expanded) { + expand(); + } else { + prevHash = null; + handleScroll(); + } + }) + }); + var expanded = false; + var windowWidth; + function collapse() { + if (expanded) { + mainnav.removeAttribute("style"); + if (toc) { + toc.removeAttribute("style"); + } + toggleButton.classList.remove("expanded") + toggleButton.setAttribute("aria-expanded", "false"); + expanded = false; + } + } + function expand() { + expanded = true; + mainnav.style.display = "block"; + mainnav.style.removeProperty("height"); + var maxHeight = window.innerHeight - subnav.offsetTop + 4; + var expandedHeight = Math.min(maxHeight, mainnav.scrollHeight + 10); + if (toc) { + toc.style.display = "flex"; + expandedHeight = Math.min(maxHeight, + Math.max(expandedHeight, toc.querySelector("div.toc-header").offsetHeight + + toc.querySelector("ol.toc-list").scrollHeight + 10)); + toc.style.height = expandedHeight + "px"; + } + mainnav.style.height = expandedHeight + "px"; + toggleButton.classList.add("expanded"); + toggleButton.setAttribute("aria-expanded", "true"); + windowWidth = window.innerWidth; + } + toggleButton.addEventListener("click", (e) => { + if (expanded) { + collapse(); + } else { + expand(); + } + }); + if (toc) { + toc.querySelectorAll("a").forEach((link) => { + link.addEventListener("click", collapse); + }); + } + document.addEventListener('keydown', (e) => { + if (e.key === "Escape") collapse(); + }); + document.querySelector("main").addEventListener("click", collapse); + const searchInput = document.getElementById("search-input"); + if (searchInput) searchInput.addEventListener("focus", collapse); + document.querySelectorAll("h1, h2, h3, h4, h5, h6") + .forEach((hdr, idx) => { + // Create anchor links for headers with an associated id attribute + var id = hdr.getAttribute("id") || hdr.parentElement.getAttribute("id") + || (hdr.querySelector("a") && hdr.querySelector("a").getAttribute("id")); + if (id) { + var template = document.createElement('template'); + template.innerHTML =" " + linkIcon +""; + hdr.append(...template.content.childNodes); + } + }); + var sections; + var scrollTimeout; + var scrollTimeoutNeeded; + var prevHash; + function initSectionData() { + sections = [{ id: "", top: 0 }].concat(Array.from(main.querySelectorAll("section[id], h2[id], h2 a[id], div[id]")) + .filter((e) => { + return sidebar.querySelector("a[href=\"#" + encodeURI(e.getAttribute("id")) + "\"]") !== null + }).map((e) => { + return { + id: e.getAttribute("id"), + top: e.offsetTop + }; + })); + } + function setScrollTimeout() { + clearTimeout(scrollTimeout); + scrollTimeoutNeeded = false; + scrollTimeout = setTimeout(() => { + scrollTimeout = null; + handleScroll(); + }, 100); + } + function handleScroll() { + if (!sidebar || !sidebar.offsetParent || sidebar.classList.contains("hide-sidebar")) { + return; + } + if (scrollTimeout || scrollTimeoutNeeded) { + setScrollTimeout(); + return; + } + var scrollTop = document.documentElement.scrollTop; + var scrollHeight = document.documentElement.scrollHeight; + var currHash = null; + if (scrollHeight - scrollTop < window.innerHeight + 10) { + // Select last item if at bottom of the page + currHash = "#" + encodeURI(sections.at(-1).id); + } else { + for (var i = 0; i < sections.length; i++) { + var top = sections[i].top; + var bottom = sections[i + 1] ? sections[i + 1].top : scrollHeight; + if (top + ((bottom - top) / 2) > scrollTop || bottom > scrollTop + (window.innerHeight / 3)) { + currHash = "#" + encodeURI(sections[i].id); + break; + } + } + } + if (currHash !== prevHash) { + setSelected(currHash); + } + } + function setSelected(hash) { + var prev = sidebar.querySelector("a.current-selection"); + if (prev) + prev.classList.remove("current-selection"); + prevHash = hash; + if (hash) { + var curr = sidebar.querySelector("ol.toc-list a[href=\"" + hash + "\"]"); + if (curr) { + curr.classList.add("current-selection"); + curr.scrollIntoView({ behavior: "instant", block: "nearest" }); + } + } + } + if (sidebar) { + initSectionData(); + document.querySelectorAll("a[href^='#']").forEach((link) => { + link.addEventListener("click", (e) => { + scrollTimeoutNeeded = true; + setSelected(link.getAttribute("href")); + }) + }); + sidebar.querySelector("button.hide-sidebar").addEventListener("click", () => { + sidebar.classList.add("hide-sidebar"); + sessionStorage.setItem("sidebar", "hidden"); + }); + sidebar.querySelector("button.show-sidebar").addEventListener("click", () => { + sidebar.classList.remove("hide-sidebar"); + sessionStorage.removeItem("sidebar"); + initSectionData(); + handleScroll(); + }); + window.addEventListener("hashchange", (e) => { + scrollTimeoutNeeded = true; + }); + if (document.location.hash) { + scrollTimeoutNeeded = true; + setSelected(document.location.hash); + } else { + handleScroll(); + } + window.addEventListener("scroll", handleScroll); + window.addEventListener("scrollend", () => { + if (scrollTimeout) { + clearTimeout(scrollTimeout); + scrollTimeout = null; + handleScroll(); + } + }) + } + // Resize handler + function handleResize(e) { + if (expanded) { + if (windowWidth !== window.innerWidth) { + collapse(); + } else { + expand(); + } + } + if (sections) { + initSectionData(); + prevHash = null; + handleScroll(); + } + setTopMargin(); + } + window.addEventListener("orientationchange", handleResize); + window.addEventListener("resize", handleResize); +}); diff --git a/docs/java/script-files/search-page.js b/docs/java/script-files/search-page.js new file mode 100644 index 00000000..bcbd9b59 --- /dev/null +++ b/docs/java/script-files/search-page.js @@ -0,0 +1,267 @@ +/* + * Copyright (c) 2022, 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + copyToClipboard(this.previousSibling.innerText); + switchCopyLabel(this, this.lastElementChild); + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("
      ").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("" + categories[key] + + " (" + count + ")").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("
      ").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("
      ") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("
      " + col1 + "
      ").appendTo(table); + if (category !== "modules") { + $("
      " + col2 + "
      ").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("
      ").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("
      ").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + input.attr("autocapitalize", "off"); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); diff --git a/docs/java/script-files/search.js b/docs/java/script-files/search.js new file mode 100644 index 00000000..7281883a --- /dev/null +++ b/docs/java/script-files/search.js @@ -0,0 +1,436 @@ +/* + * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/ + */ +"use strict"; +const messages = { + enterTerm: "Enter a search term", + noResult: "No results found", + oneResult: "Found one result", + manyResults: "Found {0} results", + loading: "Loading search index...", + searching: "Searching...", + redirecting: "Redirecting to first result...", +} +const categories = { + modules: "Modules", + packages: "Packages", + types: "Types", + members: "Members", + searchTags: "Search Tags" +}; +const highlight = "$&"; +const NO_MATCH = {}; +const MAX_RESULTS = 300; +const UNICODE_LETTER = 0; +const UNICODE_DIGIT = 1; +const UNICODE_OTHER = 2; +function checkUnnamed(name, separator) { + return name === "" || !name ? "" : name + separator; +} +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(str, boundaries, from, to) { + var start = from; + var text = ""; + for (var i = 0; i < boundaries.length; i += 2) { + var b0 = boundaries[i]; + var b1 = boundaries[i + 1]; + if (b0 >= to || b1 <= from) { + continue; + } + text += escapeHtml(str.slice(start, Math.max(start, b0))); + text += ""; + text += escapeHtml(str.slice(Math.max(start, b0), Math.min(to, b1))); + text += ""; + start = Math.min(to, b1); + } + text += escapeHtml(str.slice(start, to)); + return text; +} +function getURLPrefix(item, category) { + var urlPrefix = ""; + var slash = "/"; + if (category === "modules") { + return item.l + slash; + } else if (category === "packages" && item.m) { + return item.m + slash; + } else if (category === "types" || category === "members") { + if (item.m) { + urlPrefix = item.m + slash; + } else { + $.each(packageSearchIndex, function(index, it) { + if (it.m && item.p === it.l) { + urlPrefix = it.m + slash; + } + }); + } + } + return urlPrefix; +} +function getURL(item, category) { + if (item.url) { + return item.url; + } + var url = getURLPrefix(item, category); + if (category === "modules") { + url += "module-summary.html"; + } else if (category === "packages") { + if (item.u) { + url = item.u; + } else { + url += item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (category === "types") { + if (item.u) { + url = item.u; + } else { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.l + ".html"; + } + } else if (category === "members") { + url += checkUnnamed(item.p, "/").replace(/\./g, '/') + item.c + ".html" + "#"; + if (item.u) { + url += item.u; + } else { + url += item.l; + } + } else if (category === "searchTags") { + url += item.u; + } + item.url = url; + return url; +} +function createMatcher(term, camelCase) { + if (camelCase && !isUpperCase(term)) { + return null; // no need for camel-case matcher for lower case query + } + var pattern = ""; + var upperCase = []; + term.trim().split(/\s+/).forEach(function(w, index, array) { + var tokens = w.split(/(?=[\p{Lu},.()<>?[\/])/u); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + // ',' and '?' are the only delimiters commonly followed by space in java signatures + pattern += "(" + escapeUnicodeRegex(s).replace(/[,?]/g, "$&\\s*?") + ")"; + upperCase.push(false); + var isWordToken = /[\p{L}\p{Nd}_]$/u.test(s); + if (isWordToken) { + if (i === tokens.length - 1 && index < array.length - 1) { + // space in query string matches all delimiters + pattern += "(.*?)"; + upperCase.push(isUpperCase(s[0])); + } else { + if (!camelCase && isUpperCase(s) && s.length === 1) { + pattern += "()"; + } else { + pattern += "([\\p{L}\\p{Nd}\\p{Sc}<>?[\\]]*?)"; + } + upperCase.push(isUpperCase(s[0])); + } + } else { + pattern += "()"; + upperCase.push(false); + } + } + }); + var re = new RegExp(pattern, "gui"); + re.upperCase = upperCase; + return re; +} +// Unicode regular expressions do not allow certain characters to be escaped +function escapeUnicodeRegex(pattern) { + return pattern.replace(/[\[\]{}()*+?.\\^$|\s]/g, '\\$&'); +} +function findMatch(matcher, input, startOfName, endOfName) { + var from = startOfName; + matcher.lastIndex = from; + var match = matcher.exec(input); + // Expand search area until we get a valid result or reach the beginning of the string + while (!match || match.index + match[0].length < startOfName || endOfName < match.index) { + if (from === 0) { + return NO_MATCH; + } + from = input.lastIndexOf(".", from - 2) + 1; + matcher.lastIndex = from; + match = matcher.exec(input); + } + var boundaries = []; + var matchEnd = match.index + match[0].length; + var score = 5; + var start = match.index; + var prevEnd = -1; + for (var i = 1; i < match.length; i += 2) { + var charType = getCharType(input[start]); + var isMatcherUpper = matcher.upperCase[i]; + // capturing groups come in pairs, match and non-match + boundaries.push(start, start + match[i].length); + // make sure groups are anchored on a left word boundary + var prevChar = input[start - 1] || ""; + var nextChar = input[start + 1] || ""; + if (start !== 0) { + if (charType === UNICODE_DIGIT && getCharType(prevChar) === UNICODE_DIGIT) { + return NO_MATCH; + } else if (charType === UNICODE_LETTER && getCharType(prevChar) === UNICODE_LETTER) { + var isUpper = isUpperCase(input[start]); + if (isUpper && (isLowerCase(prevChar) || isLowerCase(nextChar))) { + score -= 0.1; + } else if (isMatcherUpper && start === prevEnd) { + score -= isUpper ? 0.1 : 1.0; + } else { + return NO_MATCH; + } + } + } + prevEnd = start + match[i].length; + start += match[i].length + match[i + 1].length; + + // lower score for parts of the name that are missing + if (match[i + 1] && prevEnd < endOfName) { + score -= rateNoise(match[i + 1]); + } + } + // lower score if a type name contains unmatched camel-case parts + if (input[matchEnd - 1] !== "." && endOfName > matchEnd) + score -= rateNoise(input.slice(matchEnd, endOfName)); + score -= rateNoise(input.slice(0, Math.max(startOfName, match.index))); + + if (score <= 0) { + return NO_MATCH; + } + return { + input: input, + score: score, + boundaries: boundaries + }; +} +function isLetter(s) { + return /\p{L}/u.test(s); +} +function isUpperCase(s) { + return /\p{Lu}/u.test(s); +} +function isLowerCase(s) { + return /\p{Ll}/u.test(s); +} +function isDigit(s) { + return /\p{Nd}/u.test(s); +} +function getCharType(s) { + if (isLetter(s)) { + return UNICODE_LETTER; + } else if (isDigit(s)) { + return UNICODE_DIGIT; + } else { + return UNICODE_OTHER; + } +} +function rateNoise(str) { + return (str.match(/([.(])/g) || []).length / 5 + + (str.match(/(\p{Lu}+)/gu) || []).length / 10 + + str.length / 20; +} +function doSearch(request, response) { + var term = request.term.trim(); + var maxResults = request.maxResults || MAX_RESULTS; + var matcher = { + plainMatcher: createMatcher(term, false), + camelCaseMatcher: createMatcher(term, true) + } + var indexLoaded = indexFilesLoaded(); + + function getPrefix(item, category) { + switch (category) { + case "packages": + return checkUnnamed(item.m, "/"); + case "types": + return checkUnnamed(item.p, "."); + case "members": + return checkUnnamed(item.p, ".") + item.c + "."; + default: + return ""; + } + } + function useQualifiedName(category) { + switch (category) { + case "packages": + return /[\s/]/.test(term); + case "types": + case "members": + return /[\s.]/.test(term); + default: + return false; + } + } + function searchIndex(indexArray, category) { + var matches = []; + if (!indexArray) { + if (!indexLoaded) { + matches.push({ l: messages.loading, category: category }); + } + return matches; + } + $.each(indexArray, function (i, item) { + var prefix = getPrefix(item, category); + var simpleName = item.l; + var qualifiedName = prefix + simpleName; + var useQualified = useQualifiedName(category); + var input = useQualified ? qualifiedName : simpleName; + var startOfName = useQualified ? prefix.length : 0; + var endOfName = category === "members" && input.indexOf("(", startOfName) > -1 + ? input.indexOf("(", startOfName) : input.length; + var m = findMatch(matcher.plainMatcher, input, startOfName, endOfName); + if (m === NO_MATCH && matcher.camelCaseMatcher) { + m = findMatch(matcher.camelCaseMatcher, input, startOfName, endOfName); + } + if (m !== NO_MATCH) { + m.indexItem = item; + m.prefix = prefix; + m.category = category; + if (!useQualified) { + m.input = qualifiedName; + m.boundaries = m.boundaries.map(function(b) { + return b + prefix.length; + }); + } + matches.push(m); + } + return true; + }); + return matches.sort(function(e1, e2) { + return e2.score - e1.score; + }).slice(0, maxResults); + } + + var result = searchIndex(moduleSearchIndex, "modules") + .concat(searchIndex(packageSearchIndex, "packages")) + .concat(searchIndex(typeSearchIndex, "types")) + .concat(searchIndex(memberSearchIndex, "members")) + .concat(searchIndex(tagSearchIndex, "searchTags")); + + if (!indexLoaded) { + updateSearchResults = function() { + doSearch(request, response); + } + } else { + updateSearchResults = function() {}; + } + response(result); +} +// JQuery search menu implementation +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> .result-item"); + // workaround for search result scrolling + this.menu._scrollIntoView = function _scrollIntoView( item ) { + var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; + if ( this._hasScroll() ) { + borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0; + paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0; + offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; + scroll = this.activeMenu.scrollTop(); + elementHeight = this.activeMenu.height() - 26; + itemHeight = item.outerHeight(); + + if ( offset < 0 ) { + this.activeMenu.scrollTop( scroll + offset ); + } else if ( offset + itemHeight > elementHeight ) { + this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); + } + } + }; + }, + _renderMenu: function(ul, items) { + var currentCategory = ""; + var widget = this; + widget.menu.bindings = $(); + $.each(items, function(index, item) { + if (item.category && item.category !== currentCategory) { + ul.append("
    • " + categories[item.category] + "
    • "); + currentCategory = item.category; + } + var li = widget._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", categories[item.category] + " : " + item.l); + } else { + li.attr("aria-label", item.l); + } + li.attr("class", "result-item"); + }); + ul.append("
      "); + }, + _renderItem: function(ul, item) { + var li = $("
    • ").appendTo(ul); + var div = $("
      ").appendTo(li); + var label = item.l + ? item.l + : getHighlightedText(item.input, item.boundaries, 0, item.input.length); + var idx = item.indexItem; + if (item.category === "searchTags" && idx && idx.h) { + if (idx.d) { + div.html(label + " (" + idx.h + ")
      " + + idx.d + "
      "); + } else { + div.html(label + " (" + idx.h + ")"); + } + } else { + div.html(label); + } + return li; + } +}); +$(function() { + var search = $("#search-input"); + var reset = $("#reset-search"); + search.catcomplete({ + minLength: 1, + delay: 200, + source: function(request, response) { + reset.css("display", "inline"); + if (request.term.trim() === "") { + return this.close(); + } + return doSearch(request, response); + }, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push({ l: messages.noResult }); + } else { + $("#search-input").empty(); + } + }, + close: function(event, ui) { + reset.css("display", search.val() ? "inline" : "none"); + }, + change: function(event, ui) { + reset.css("display", search.val() ? "inline" : "none"); + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.indexItem) { + var url = getURL(ui.item.indexItem, ui.item.category); + window.location.href = pathtoroot + url; + $("#search-input").focus(); + } + } + }); + search.val(''); + search.prop("disabled", false); + search.attr("autocapitalize", "off"); + reset.prop("disabled", false); + reset.click(function() { + search.val('').focus(); + reset.css("display", "none"); + }); + search.focus(); +}); diff --git a/docs/java/script.js b/docs/java/script.js index b3463569..864989cf 100644 --- a/docs/java/script.js +++ b/docs/java/script.js @@ -1,30 +1,132 @@ -function show(type) -{ - count = 0; - for (var key in methods) { - var row = document.getElementById(key); - if ((methods[key] & type) != 0) { - row.style.display = ''; - row.className = (count++ % 2) ? rowColor : altColor; +/* + * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); } - else - row.style.display = 'none'; } - updateTabs(type); } -function updateTabs(type) -{ - for (var value in tabs) { - var sNode = document.getElementById(tabs[value][0]); - var spanNode = sNode.firstChild; - if (value == type) { - sNode.className = activeTableTab; - spanNode.innerHTML = tabs[value][1]; +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} + +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; } - else { - sNode.className = tableTab; - spanNode.innerHTML = "" + tabs[value][1] + ""; + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener("scroll", function(e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); } + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); } -} +}); diff --git a/docs/java/search-page.js b/docs/java/search-page.js new file mode 100644 index 00000000..540c90f5 --- /dev/null +++ b/docs/java/search-page.js @@ -0,0 +1,284 @@ +/* + * Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +"use strict"; +$(function() { + var copy = $("#page-search-copy"); + var expand = $("#page-search-expand"); + var searchLink = $("span#page-search-link"); + var redirect = $("input#search-redirect"); + function setSearchUrlTemplate() { + var href = document.location.href.split(/[#?]/)[0]; + href += "?q=" + "%s"; + if (redirect.is(":checked")) { + href += "&r=1"; + } + searchLink.html(href); + copy[0].onmouseenter(); + } + function copyLink(e) { + copyToClipboard(this.previousSibling.innerText); + switchCopyLabel(this, this.lastElementChild); + } + copy.click(copyLink); + copy[0].onmouseenter = function() {}; + redirect.click(setSearchUrlTemplate); + setSearchUrlTemplate(); + copy.prop("disabled", false); + redirect.prop("disabled", false); + expand.click(function (e) { + var searchInfo = $("div.page-search-info"); + if(this.parentElement.hasAttribute("open")) { + searchInfo.attr("style", "border-width: 0;"); + } else { + searchInfo.attr("style", "border-width: 1px;").height(searchInfo.prop("scrollHeight")); + } + }); +}); +$(window).on("load", function() { + var input = $("#page-search-input"); + var reset = $("#page-search-reset"); + var notify = $("#page-search-notify"); + var resultSection = $("div#result-section"); + var resultContainer = $("div#result-container"); + var searchTerm = ""; + var activeTab = ""; + var fixedTab = false; + var visibleTabs = []; + var feelingLucky = false; + function renderResults(result) { + if (!result.length) { + notify.html(messages.noResult); + } else if (result.length === 1) { + notify.html(messages.oneResult); + } else { + notify.html(messages.manyResults.replace("{0}", result.length)); + } + resultContainer.empty(); + var r = { + "types": [], + "members": [], + "packages": [], + "modules": [], + "searchTags": [] + }; + for (var i in result) { + var item = result[i]; + var arr = r[item.category]; + arr.push(item); + } + if (!activeTab || r[activeTab].length === 0 || !fixedTab) { + Object.keys(r).reduce(function(prev, curr) { + if (r[curr].length > 0 && r[curr][0].score > prev) { + activeTab = curr; + return r[curr][0].score; + } + return prev; + }, 0); + } + if (feelingLucky && activeTab) { + notify.html(messages.redirecting) + var firstItem = r[activeTab][0]; + window.location = getURL(firstItem.indexItem, firstItem.category); + return; + } + if (result.length > 20) { + if (searchTerm[searchTerm.length - 1] === ".") { + if (activeTab === "types" && r["members"].length > r["types"].length) { + activeTab = "members"; + } else if (activeTab === "packages" && r["types"].length > r["packages"].length) { + activeTab = "types"; + } + } + } + var categoryCount = Object.keys(r).reduce(function(prev, curr) { + return prev + (r[curr].length > 0 ? 1 : 0); + }, 0); + visibleTabs = []; + var tabContainer = $("
      ").appendTo(resultContainer); + for (var key in r) { + var id = "#result-tab-" + key.replace("searchTags", "search_tags"); + if (r[key].length) { + var count = r[key].length >= 1000 ? "999+" : r[key].length; + if (result.length > 20 && categoryCount > 1) { + var button = $("").appendTo(tabContainer); + button.click(key, function(e) { + fixedTab = true; + renderResult(e.data, $(this)); + }); + visibleTabs.push(key); + } else { + $("" + categories[key] + + " (" + count + ")").appendTo(tabContainer); + renderTable(key, r[key]).appendTo(resultContainer); + tabContainer = $("
      ").appendTo(resultContainer); + + } + } + } + if (activeTab && result.length > 20 && categoryCount > 1) { + $("button#result-tab-" + activeTab).addClass("active-table-tab"); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + } + resultSection.show(); + function renderResult(category, button) { + activeTab = category; + setSearchUrl(); + resultContainer.find("div.summary-table").remove(); + renderTable(activeTab, r[activeTab]).appendTo(resultContainer); + button.siblings().removeClass("active-table-tab"); + button.addClass("active-table-tab"); + } + } + function selectTab(category) { + $("button#result-tab-" + category).click(); + } + function renderTable(category, items) { + var table = $("
      ") + .addClass(category === "modules" + ? "one-column-search-results" + : "two-column-search-results"); + var col1, col2; + if (category === "modules") { + col1 = "Module"; + } else if (category === "packages") { + col1 = "Module"; + col2 = "Package"; + } else if (category === "types") { + col1 = "Package"; + col2 = "Class" + } else if (category === "members") { + col1 = "Class"; + col2 = "Member"; + } else if (category === "searchTags") { + col1 = "Location"; + col2 = "Name"; + } + $("
      " + col1 + "
      ").appendTo(table); + if (category !== "modules") { + $("
      " + col2 + "
      ").appendTo(table); + } + $.each(items, function(index, item) { + var rowColor = index % 2 ? "odd-row-color" : "even-row-color"; + renderItem(item, table, rowColor); + }); + return table; + } + function renderItem(item, table, rowColor) { + var label = getHighlightedText(item.input, item.boundaries, item.prefix.length, item.input.length); + var link = $("") + .attr("href", getURL(item.indexItem, item.category)) + .attr("tabindex", "0") + .addClass("search-result-link") + .html(label); + var container = getHighlightedText(item.input, item.boundaries, 0, item.prefix.length - 1); + if (item.category === "searchTags") { + container = item.indexItem.h || ""; + } + if (item.category !== "modules") { + $("
      ").html(container).addClass("col-plain").addClass(rowColor).appendTo(table); + } + $("
      ").html(link).addClass("col-last").addClass(rowColor).appendTo(table); + } + var timeout; + function schedulePageSearch() { + if (timeout) { + clearTimeout(timeout); + } + timeout = setTimeout(function () { + doPageSearch() + }, 100); + } + function doPageSearch() { + setSearchUrl(); + var term = searchTerm = input.val().trim(); + if (term === "") { + notify.html(messages.enterTerm); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + resultSection.hide(); + } else { + notify.html(messages.searching); + doSearch({ term: term, maxResults: 1200 }, renderResults); + } + } + function setSearchUrl() { + var query = input.val().trim(); + var url = document.location.pathname; + if (query) { + url += "?q=" + encodeURI(query); + if (activeTab && fixedTab) { + url += "&c=" + activeTab; + } + } + history.replaceState({query: query}, "", url); + } + input.on("input", function(e) { + feelingLucky = false; + schedulePageSearch(); + }); + $(document).keydown(function(e) { + if ((e.ctrlKey || e.metaKey) && (e.key === "ArrowLeft" || e.key === "ArrowRight")) { + if (activeTab && visibleTabs.length > 1) { + var idx = visibleTabs.indexOf(activeTab); + idx += e.key === "ArrowLeft" ? visibleTabs.length - 1 : 1; + selectTab(visibleTabs[idx % visibleTabs.length]); + return false; + } + } + }); + reset.click(function() { + notify.html(messages.enterTerm); + resultSection.hide(); + activeTab = ""; + fixedTab = false; + resultContainer.empty(); + input.val('').focus(); + setSearchUrl(); + }); + input.prop("disabled", false); + reset.prop("disabled", false); + + var urlParams = new URLSearchParams(window.location.search); + if (urlParams.has("q")) { + input.val(urlParams.get("q")) + } + if (urlParams.has("c")) { + activeTab = urlParams.get("c"); + fixedTab = true; + } + if (urlParams.get("r")) { + feelingLucky = true; + } + if (input.val()) { + doPageSearch(); + } else { + notify.html(messages.enterTerm); + } + input.select().focus(); +}); diff --git a/docs/java/search.html b/docs/java/search.html new file mode 100644 index 00000000..fefdfa37 --- /dev/null +++ b/docs/java/search.html @@ -0,0 +1,77 @@ + + + + +Search (voyager 2.1.0 API) + + + + + + + + + + + + + + +
      + +
      +
      +

      Search

      +
      + + +
      +Additional resources +
      +
      +
      +

      The help page provides an introduction to the scope and syntax of JavaDoc search.

      +

      You can use the <ctrl> or <cmd> keys in combination with the left and right arrow keys to switch between result tabs in this page.

      +

      The URL template below may be used to configure this page as a search engine in browsers that support this feature. It has been tested to work in Google Chrome and Mozilla Firefox. Note that other browsers may not support this feature or require a different URL format.

      +link +

      + +

      +
      +

      Loading search index...

      + +
      +
      +
      + +
      +
      +
      + + diff --git a/docs/java/serialized-form.html b/docs/java/serialized-form.html index 7fbb9ad9..07a10f01 100644 --- a/docs/java/serialized-form.html +++ b/docs/java/serialized-form.html @@ -1,139 +1,77 @@ - - + - - + Serialized Form (voyager 2.1.0 API) - + + + + + + + + + - - + + +
      + +
      +

      Serialized Form

      -
      -
      +
      +
      + +
      - -
      - - - - - - - -
      - - -

      Copyright © 2024. All rights reserved.

      From 1cf25c34724d5414246aa4751d7c8f51217f8a3c Mon Sep 17 00:00:00 2001 From: Michele Gregori Date: Thu, 19 Dec 2024 08:44:26 +0100 Subject: [PATCH 50/52] Fix benchmarks failing in github CI (#105) --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index ad8e9471..4d405bdf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "cpp/include/doctest"] path = cpp/include/doctest - url = git@github.com:doctest/doctest.git + url = https://github.com/doctest/doctest.git From 967ed71217886136dae5f7612fb2c2d3a81303b8 Mon Sep 17 00:00:00 2001 From: Peter Sobot Date: Wed, 29 Jan 2025 10:54:38 -0500 Subject: [PATCH 51/52] Migrate Python bindings to Nanobind. (#92) * Migrate to Nanobind. * Remove type-hint scripts. * CI fixes. * Use clang-format 16. * Re-add Tox. * Upgrade to Ruff. It's 2024, Charlie would be sad. * Support passing 1D Python lists to query(). * Update pyproject.toml * Update all.yml * Update all.yml * Will this fix the Windows build? * clang-format * Fix builds on Python 3.8 and 3.9, and drop 3.7. * Move README into the right place. * Add Python readme for local builds. * More relative path fun * D'oh. Why am I committing this at 1:27am? * The dependencies, they were not self-contained in each file * No need to reify twice * Ugh. * Speed up debugging iterations. * Embarrassing GitHub Actions debugging. * Come on, Windows * Nope. * Debugging * Copy first * D'oh * D'oh, d'oh, d'oh. * How many embarrassing commits does it take... * Gotta delete it first, of course * Update all.yml --- .github/workflows/all.yml | 26 +- python/CMakeLists.txt | 68 ++ python/MANIFEST.in | 2 +- python/README.md | 29 + python/dev-requirements.txt | 2 - python/pyproject.toml | 54 +- python/scripts/__init__.py | 0 .../scripts/generate_type_stubs_and_docs.py | 401 -------- python/scripts/postprocess_type_hints.py | 242 ----- python/setup.py | 180 ---- python/src/PythonFileLike.h | 38 +- python/src/PythonInputStream.h | 91 +- python/src/PythonOutputStream.h | 27 +- python/{ => src}/bindings.cpp | 378 ++++---- python/src/cpp | 1 + python/src/voyager/__init__.py | 1 + python/tests/test_index_creation.py | 2 +- python/tests/test_load_indices.py | 14 +- python/tox.ini | 28 +- python/voyager/__init__.pyi | 889 ------------------ python/voyager/version.py | 22 - 21 files changed, 460 insertions(+), 2035 deletions(-) create mode 100644 python/CMakeLists.txt create mode 100644 python/README.md delete mode 100644 python/scripts/__init__.py delete mode 100755 python/scripts/generate_type_stubs_and_docs.py delete mode 100644 python/scripts/postprocess_type_hints.py delete mode 100644 python/setup.py rename python/{ => src}/bindings.cpp (78%) create mode 120000 python/src/cpp create mode 100644 python/src/voyager/__init__.py delete mode 100644 python/voyager/__init__.pyi delete mode 100644 python/voyager/version.py diff --git a/.github/workflows/all.yml b/.github/workflows/all.yml index 7c11ecc3..c44d597c 100644 --- a/.github/workflows/all.yml +++ b/.github/workflows/all.yml @@ -152,6 +152,8 @@ jobs: - uses: actions/checkout@v3 with: submodules: recursive + - name: Copy README into place + run: cp ../README.md ./ - name: Install Linux dependencies if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install -y pkg-config @@ -165,7 +167,7 @@ jobs: pip install wheel pip install -r dev-requirements.txt - name: Build voyager locally - run: python setup.py develop + run: python -m pip install . - name: Run tox tests run: tox @@ -192,6 +194,8 @@ jobs: - uses: actions/checkout@v3 with: submodules: recursive + - name: Copy README into place + run: cp ../README.md ./ - name: Install Linux dependencies if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install -y pkg-config @@ -206,7 +210,7 @@ jobs: USE_ASAN: "1" CC: clang CXX: clang++ - run: python setup.py develop + run: python -m pip install . - name: Run tox tests with ASan loaded # pytest can exit before all Python objects have been destroyed, # so we tell ASan to ignore leaks. @@ -248,12 +252,11 @@ jobs: build-python-wheels: needs: [run-python-tests, run-python-tests-with-address-sanitizer] runs-on: ${{ matrix.os }} - continue-on-error: true + continue-on-error: false if: true # (github.event_name == 'release' && github.event.action == 'published') || contains(github.event.pull_request.labels.*.name, 'Also Test Wheels') strategy: matrix: include: - - { os: macos-latest, build: cp37-macosx_x86_64 } - { os: macos-latest, build: cp38-macosx_x86_64 } - { os: macos-latest, build: cp39-macosx_x86_64 } - { os: macos-latest, build: cp310-macosx_x86_64 } @@ -272,7 +275,6 @@ jobs: # - { os: macos-latest, build: pp37-macosx_x86_64 } # - { os: macos-latest, build: pp38-macosx_x86_64 } # - { os: macos-latest, build: pp39-macosx_x86_64 } - - { os: windows-latest, build: cp37-win_amd64 } - { os: windows-latest, build: cp38-win_amd64 } - { os: windows-latest, build: cp39-win_amd64 } - { os: windows-latest, build: cp310-win_amd64 } @@ -281,8 +283,6 @@ jobs: # - { os: windows-latest, build: pp37-win_amd64 } # - { os: windows-latest, build: pp38-win_amd64 } # - { os: windows-latest, build: pp39-win_amd64 } - - { os: 'ubuntu-latest', build: cp37-manylinux_x86_64 } - - { os: 'ubuntu-latest', build: cp37-manylinux_aarch64 } - { os: 'ubuntu-latest', build: cp38-manylinux_x86_64 } - { os: 'ubuntu-latest', build: cp38-manylinux_aarch64 } - { os: 'ubuntu-latest', build: cp39-manylinux_x86_64 } @@ -317,8 +317,15 @@ jobs: uses: docker/setup-qemu-action@v1 with: platforms: all + - name: Copy C++ code into place + run: rm -rfv python/src/cpp && cp -r cpp python/src + if: runner.os == 'Linux' + - name: Show directory structure for debugging + run: ls -lR . + if: runner.os == 'Linux' - name: Build wheels - run: cp -r cpp python/cpp && cd python && python -m cibuildwheel --output-dir ../wheelhouse + working-directory: python + run: python -m cibuildwheel --output-dir ../wheelhouse env: CIBW_TEST_REQUIRES: -r dev-requirements.txt CIBW_TEST_COMMAND: "pytest {project}/tests -x" @@ -330,9 +337,8 @@ jobs: # on macOS and with Python 3.10: building NumPy from source fails without these options: CIBW_ENVIRONMENT: NPY_BLAS_ORDER="" NPY_LAPACK_ORDER="" CIBW_REPAIR_WHEEL_COMMAND_LINUX: pip install auditwheel-symbols && (auditwheel repair -w {dest_dir} {wheel} || auditwheel-symbols --manylinux 2010 {wheel}) - # Use the minimum macOS deployment target that has C++17 support: CIBW_TEST_SKIP: "*aarch64" - MACOSX_DEPLOYMENT_TARGET: "10.13" + MACOSX_DEPLOYMENT_TARGET: "10.14" - uses: actions/upload-artifact@v3 with: if-no-files-found: error diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt new file mode 100644 index 00000000..a37407a0 --- /dev/null +++ b/python/CMakeLists.txt @@ -0,0 +1,68 @@ +cmake_minimum_required(VERSION 3.15...3.27) +project(voyager LANGUAGES CXX) + +# Warn if the user invokes CMake directly +if (NOT SKBUILD) + message(WARNING "\ + This CMake file is meant to be executed using 'scikit-build-core'. + Running it directly will almost certainly not produce the desired + result. If you are a user trying to install this package, use the + command below, which will install all necessary build dependencies, + compile the package in an isolated environment, and then install it. + ===================================================================== + $ pip install . + ===================================================================== + If you are a software developer, and this is your own package, then + it is usually much more efficient to install the build dependencies + in your environment once and use the following command that avoids + a costly creation of a new virtual environment at every compilation: + ===================================================================== + $ pip install nanobind scikit-build-core[pyproject] + $ pip install --no-build-isolation -ve . + ===================================================================== + You may optionally add -Ceditable.rebuild=true to auto-rebuild when + the package is imported. Otherwise, you need to rerun the above + after editing C++ files.") +endif() + +if (CMAKE_VERSION VERSION_LESS 3.18) + set(DEV_MODULE Development) +else() + set(DEV_MODULE Development.Module) +endif() + +find_package(Python 3.8 COMPONENTS Interpreter ${DEV_MODULE}) + +# Import nanobind through CMake's find_package mechanism +find_package(nanobind CONFIG REQUIRED) + + +if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") +endif() + +# Detect the installed nanobind package and import it into CMake +execute_process( + COMMAND "${Python_EXECUTABLE}" -m nanobind --cmake_dir + OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE nanobind_ROOT) +find_package(nanobind CONFIG REQUIRED) + +# Check the USE_ASAN environment variable, and if set to 1, enable AddressSanitizer +if (DEFINED ENV{USE_ASAN} AND "$ENV{USE_ASAN}" STREQUAL "1") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address") +endif() + +nanobind_add_module( + voyager_ext + # Target the stable ABI for Python 3.12+, which reduces + # the number of binary wheels that must be built. This + # does nothing on older Python versions + NB_STATIC STABLE_ABI LTO FREE_THREADED + # Sources: + src/bindings.cpp +) + +# Install directive for scikit-build-core +install(TARGETS voyager_ext LIBRARY DESTINATION voyager) diff --git a/python/MANIFEST.in b/python/MANIFEST.in index f50e8de7..9f6f9f2e 100644 --- a/python/MANIFEST.in +++ b/python/MANIFEST.in @@ -1,4 +1,4 @@ -include *.txt tox.ini *.md +include *.txt tox.ini *.md recursive-include tests *.py graft src diff --git a/python/README.md b/python/README.md new file mode 100644 index 00000000..26e05a0e --- /dev/null +++ b/python/README.md @@ -0,0 +1,29 @@ +![The word Voyager_in blue, with a multicoloured graphic illustrating an orbit to its left.](https://github.com/spotify/voyager/assets/213293/c99cd0e8-cd38-486f-bb61-15f74028ba52) + +[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/spotify/voyager/blob/master/LICENSE) +[![Documentation](https://img.shields.io/badge/Documentation-on%20github.io-brightgreen)](https://spotify.github.io/voyager) +[![Supported Platforms](https://img.shields.io/badge/platforms-macOS%20%7C%20Windows%20%7C%20Linux-green)](https://pypi.org/project/voyager) +[![Apple Silicon support for macOS and Linux (Docker)](https://img.shields.io/badge/Apple%20Silicon-macOS%20and%20Linux-brightgreen)](https://pypi.org/project/voyager) +[![Test Badge](https://github.com/spotify/voyager/actions/workflows/all.yml/badge.svg)](https://github.com/spotify/voyager/actions/workflows/all.yml) + + + + + +**_Voyager_** is a library for performing fast approximate nearest-neighbor searches on an in-memory collection of vectors. + +Voyager features bindings to both Python and Java, with feature parity and index compatibility between both languages. It uses the HNSW algorithm, based on [the open-source `hnswlib` package](https://github.com/nmslib/hnswlib), with numerous features added for convenience and speed. Voyager is used extensively in production at Spotify, and is queried hundreds of millions of times per day to power numerous user-facing features. + +Think of Voyager like [Sparkey](https://github.com/spotify/sparkey), but for vector/embedding data; or like [Annoy](https://github.com/spotify/annoy), but with [much higher recall](http://ann-benchmarks.com/). It got its name because it searches through (embedding) space(s), much like [the Voyager interstellar probes](https://en.wikipedia.org/wiki/Voyager_program) launched by NASA in 1977. + +[![Python Documentation](https://img.shields.io/badge/Python%20Documentation-on%20github.io-brightgreen)](https://spotify.github.io/voyager/python) +[![Java Documentation](https://img.shields.io/badge/Java%20Documentation-on%20github.io-brightgreen)](https://spotify.github.io/voyager/java) + + +### License +Voyager is copyright 2022-2025 Spotify AB. + +Voyager is licensed under the [Apache 2 License]([https://www.gnu.org/licenses/gpl-3.0.en.html](https://www.apache.org/licenses/LICENSE-2.0)). + + + \ No newline at end of file diff --git a/python/dev-requirements.txt b/python/dev-requirements.txt index f6f333c2..237560d9 100644 --- a/python/dev-requirements.txt +++ b/python/dev-requirements.txt @@ -1,7 +1,5 @@ -r test-requirements.txt numpy -pybind11 -pybind11-stubgen==0.16.2 ruff psutil mypy diff --git a/python/pyproject.toml b/python/pyproject.toml index e00b3fb8..ed15f41c 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -1,9 +1,51 @@ [build-system] -requires = [ - "setuptools>=42", - "wheel", - "numpy>=1.10.0", - "pybind11>=2.0", +requires = ["scikit-build-core >=0.4.3", "nanobind >=1.3.2"] +build-backend = "scikit_build_core.build" + +[project] +name = "voyager" +version = "2.0.10" +description = "Easy-to-use, fast, simple multi-platform approximate nearest-neighbor search library." +readme = "README.md" +requires-python = ">=3.8" +authors = [ + { name = "Peter Sobot", email = "psobot@spotify.com" }, +] +classifiers = [ + "Development Status :: 5 - Production/Stable", + "License :: OSI Approved :: Apache Software License", + "Operating System :: MacOS", + "Operating System :: Microsoft :: Windows", + "Operating System :: POSIX :: Linux", + "Programming Language :: C++", + "Programming Language :: Python", + "Topic :: Database :: Database Engines/Servers", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", ] +# Optional: runtime dependency specification +# dependencies = [ "cryptography >=41.0" ] + +[project.urls] +Homepage = "https://github.com/spotify/voyager" + +[tool.scikit-build] +# Protect the configuration against future changes in scikit-build-core +minimum-version = "0.4" + +# Setuptools-style build caching in a local directory +build-dir = "build/{wheel_tag}" + +# Build stable ABI wheels for CPython 3.12+ +wheel.py-api = "cp312" + +[tool.ruff] +line-length = 120 -build-backend = "setuptools.build_meta" +# Needed for full C++17 support on macOS +[tool.cibuildwheel.macos.environment] +MACOSX_DEPLOYMENT_TARGET = "10.14" diff --git a/python/scripts/__init__.py b/python/scripts/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/python/scripts/generate_type_stubs_and_docs.py b/python/scripts/generate_type_stubs_and_docs.py deleted file mode 100755 index d81d0b22..00000000 --- a/python/scripts/generate_type_stubs_and_docs.py +++ /dev/null @@ -1,401 +0,0 @@ -#! /usr/bin/env python -# -# Copyright 2022-2023 Spotify AB -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -Cribbed from Pedalboard as of 2023/06/14. -""" - -import os -import re -import sys -import argparse -import inspect -import typing -import shutil -import difflib -import importlib -import pathlib -import psutil -import subprocess -import traceback -from tempfile import TemporaryDirectory -from contextlib import contextmanager -from typing import Dict, List - -from pybind11_stubgen import ClassStubsGenerator, StubsGenerator -from pybind11_stubgen import main as pybind11_stubgen_main -import mypy.stubtest -from mypy.stubtest import test_stubs, parse_options as mypy_parse_options -import sphinx.ext.autodoc.importer -from sphinx.cmd.build import main as sphinx_build_main -from scripts.postprocess_type_hints import main as postprocess_type_hints_main - - -MAX_DIFF_LINE_LENGTH = 150 - - -SPHINX_REPLACEMENTS = { - # Remove any "self: ," lines: - ( - r'self' - r':.*?, ' - ): r"", - # Remove any "(self: )" lines too: - ( - r'self' - r':.*?\)' - ): r')', -} - - -def patch_mypy_stubtest(): - def patched_verify_metaclass(*args, **kwargs): - # Just ignore metaclass mismatches entirely: - return [] - - mypy.stubtest._verify_metaclass = patched_verify_metaclass - - -def patch_pybind11_stubgen(): - """ - Patch ``pybind11_stubgen`` to generate more ergonomic code for Enum-like classes. - This generates a subclass of :class:``Enum`` for each Pybind11-generated Enum, - which is not strictly correct, but produces much nicer documentation and allows - for a much more Pythonic API. - """ - - original_class_stubs_generator_new = ClassStubsGenerator.__new__ - - class EnumClassStubsGenerator(StubsGenerator): - def __init__(self, klass): - self.klass = klass - assert inspect.isclass(klass) - assert klass.__name__.isidentifier() - assert hasattr(klass, "__entries") - - self.doc_string = None - self.enum_names = [] - self.enum_values = [] - self.enum_docstrings = [] - - def get_involved_modules_names(self): - return set() - - def parse(self): - self.doc_string = self.klass.__doc__ or "" - self.doc_string = self.doc_string.split("Members:")[0] - for name, (value_object, docstring) in getattr(self.klass, "__entries").items(): - self.enum_names.append(name) - self.enum_values.append(value_object.value) - self.enum_docstrings.append(docstring) - - def to_lines(self): - result = [ - "class {class_name}(Enum):{doc_string}".format( - class_name=self.klass.__name__, - doc_string="\n" + self.format_docstring(self.doc_string) - if self.doc_string - else "", - ), - ] - for name, value, docstring in sorted( - list(zip(self.enum_names, self.enum_values, self.enum_docstrings)), - key=lambda x: x[1], - ): - result.append(f" {name} = {value} # fmt: skip") - result.append(f"{self.format_docstring(docstring or '')}") - if not self.enum_names: - result.append(self.indent("pass")) - return result - - def patched_class_stubs_generator_new(cls, klass, *args, **kwargs): - if hasattr(klass, "__entries"): - return EnumClassStubsGenerator(klass, *args, **kwargs) - else: - return original_class_stubs_generator_new(cls) - - ClassStubsGenerator.__new__ = patched_class_stubs_generator_new - - -def import_stub(stubs_path: str, module_name: str) -> typing.Any: - """ - Import a stub file (.pyi) as a regular Python module. - Note that two modules of the same name cannot (usually) be imported, - so additional care may need to be taken after using this method to - change ``sys.modules`` to avoid clobbering existing modules. - """ - sys.path_hooks.insert( - 0, - importlib.machinery.FileFinder.path_hook((importlib.machinery.SourceFileLoader, [".pyi"])), - ) - sys.path.insert(0, stubs_path) - - try: - return importlib.import_module(module_name) - finally: - sys.path.pop(0) - sys.path_hooks.pop(0) - - -def patch_sphinx_to_read_pyi(): - """ - Sphinx doesn't know how to read .pyi files, but we use .pyi files as our - "source of truth" for the public API that we expose to IDEs and our documentation. - This patch tells Sphinx how to read .pyi files, using them to replace their .py - counterparts. - """ - old_import_module = sphinx.ext.autodoc.importer.import_module - - def patch_import_module(modname: str, *args, **kwargs) -> typing.Any: - if modname in sys.modules: - return sys.modules[modname] - try: - return import_stub(".", modname) - except ImportError: - return old_import_module(modname, *args, **kwargs) - except Exception as e: - print(f"Failed to import stub module: {e}") - traceback.print_exc() - raise - - sphinx.ext.autodoc.importer.import_module = patch_import_module - - -@contextmanager -def isolated_imports(only: typing.Set[str] = {}): - """ - When used as a context manager, this function scopes all imports - that happen within it as local to the scope. - - Put another way: if you import something inside a - ``with isolated_imports()`` block, it won't be imported after - the block is done. - """ - before = list(sys.modules.keys()) - yield - for module_name in list(sys.modules.keys()): - if module_name not in before and module_name in only: - del sys.modules[module_name] - - -def remove_non_public_files(output_dir: str): - try: - shutil.rmtree(os.path.join(output_dir, ".doctrees")) - except Exception: - pass - try: - os.unlink(os.path.join(output_dir, ".buildinfo")) - except Exception: - pass - - -def trim_diff_line(x: str) -> str: - x = x.strip() - if len(x) > MAX_DIFF_LINE_LENGTH: - suffix = f" [plus {len(x) - MAX_DIFF_LINE_LENGTH:,} more characters]" - return x[: MAX_DIFF_LINE_LENGTH - len(suffix)] + suffix - else: - return x - - -def glob_matches(filename: str, globs: List[str]) -> bool: - for glob in globs: - if glob.startswith("*") and filename.lower().endswith(glob[1:].lower()): - return True - if glob in filename: - return True - return False - - -def postprocess_sphinx_output(directory: str, renames: Dict[str, str]): - """ - I've spent 7 hours of my time this weekend fighting with Sphinx. - Rather than find the "correct" way to fix this, I'm just going to - overwrite the HTML output with good old find-and-replace. - """ - for html_path in pathlib.Path(directory).rglob("*.html"): - html_contents = html_path.read_text() - for find, replace in renames.items(): - results = re.findall(find, html_contents) - if results: - html_contents = re.sub(find, replace, html_contents) - with open(html_path, "w") as f: - f.write(html_contents) - - -def main(): - parser = argparse.ArgumentParser( - description="Generate type stub files (.pyi) and Sphinx documentation for Voyager." - ) - parser.add_argument( - "--docs-output-dir", - default=os.path.join(os.path.dirname(__file__), "..", "..", "docs", "python"), - help="Output directory for documentation HTML files.", - ) - parser.add_argument( - "--docs-input-dir", - default=os.path.join("docs", "source"), - help="Input directory for Sphinx.", - ) - parser.add_argument( - "--skip-regenerating-type-hints", - action="store_true", - help="If set, don't bother regenerating or reprocessing type hint files.", - ) - parser.add_argument( - "--check", - action="store_true", - help=( - "If set, compare the existing files with those that would have been generated if this" - " script were re-run." - ), - ) - parser.add_argument( - "--skip-comparing", - nargs="*", - default=["*.js", "*.css"], - help=( - "If set and if --check is passed, the provided filenames (including '*' globs) will be" - " ignored when comparing expected file contents against actual file contents." - ), - ) - args = parser.parse_args() - - patch_mypy_stubtest() - patch_pybind11_stubgen() - patch_sphinx_to_read_pyi() - - if not args.skip_regenerating_type_hints: - with isolated_imports({"voyager"}): - # print("Generating type stubs from pure-Python code...") - # subprocess.check_call(["stubgen", "-o", tempdir, "voyager/voyager.py"]) - - # Generate .pyi stubs files from Voyager's native (Pybind11) source. - # Documentation will be copied from the Pybind11 docstrings, and these stubs - # files will be used as the "source of truth" for both IDE autocompletion - # and Sphinx documentation. - print("Generating type stubs from native code...") - pybind11_stubgen_main(["-o", "voyager", "voyager", "--no-setup-py"]) - - # Move type hints out of voyager/something_else/*: - native_dir = pathlib.Path("voyager") - native_subdir = [f for f in native_dir.glob("*") if "stubs" in f.name][0] - shutil.copytree(native_subdir, native_dir, dirs_exist_ok=True) - shutil.rmtree(native_subdir) - - # Post-process the type hints generaetd by pybind11_stubgen; we can't patch - # everything easily, so we do string manipulation after-the-fact and run ``black``. - print("Postprocessing generated type hints...") - postprocess_type_hints_main( - ["voyager", "voyager"] + (["--check"] if args.check else []) - ) - - # Run mypy.stubtest to ensure that the results are correct and nothing got missed: - if sys.version_info > (3, 6): - print("Running `mypy.stubtest` to validate stubs match...") - test_stubs( - mypy_parse_options( - [ - "voyager", - "--allowlist", - "stubtest.allowlist", - "--ignore-missing-stub", - "--ignore-unused-allowlist", - ] - ) - ) - # Re-run this same script in a fresh interpreter, but with skip_regenerating_type_hints - # enabled: - interpreter = psutil.Process(os.getpid()).exe() - # getpid returns the non-venv python path rather than your venv python path, so if this looks like a pyenv - # interpreter, use shutil instead to get the venv interpreter - if not interpreter or ".pyenv" in interpreter: - interpreter = shutil.which("python3") - subprocess.check_call([interpreter] + sys.argv + ["--skip-regenerating-type-hints"]) - return - - # Why is this necessary? I don't know, but without it, things fail. - print("Importing numpy to ensure a successful Voyager stub import...") - import numpy # noqa - - print("Importing .pyi files for our native modules...") - for modname in ["voyager"]: - import_stub(".", modname) - - print("Running Sphinx...") - if args.check: - missing_files = [] - mismatched_files = [] - with TemporaryDirectory() as tempdir: - sphinx_build_main(["-b", "html", args.docs_input_dir, tempdir, "-v", "-v", "-v"]) - postprocess_sphinx_output(tempdir, SPHINX_REPLACEMENTS) - remove_non_public_files(tempdir) - - for dirpath, _dirnames, filenames in os.walk(tempdir): - prefix = dirpath.replace(tempdir, "").lstrip(os.path.sep) - for filename in filenames: - if glob_matches(filename, args.skip_comparing): - print(f"Skipping comparison of file: {filename}") - continue - expected_path = os.path.join(tempdir, prefix, filename) - actual_path = os.path.join(args.docs_output_dir, prefix, filename) - if not os.path.isfile(actual_path): - missing_files.append(os.path.join(prefix, filename)) - else: - with open(expected_path, "rb") as e, open(actual_path, "rb") as a: - if e.read() != a.read(): - mismatched_files.append(os.path.join(prefix, filename)) - if missing_files or mismatched_files: - error_lines = [] - if missing_files: - error_lines.append( - f"{len(missing_files):,} file(s) were expected in {args.docs_output_dir}," - " but not found:" - ) - for missing_file in missing_files: - error_lines.append(f"\t{missing_file}") - if mismatched_files: - error_lines.append( - f"{len(mismatched_files):,} file(s) in {args.docs_output_dir} did not match" - " expected values:" - ) - for mismatched_file in mismatched_files: - expected_path = os.path.join(tempdir, mismatched_file) - actual_path = os.path.join(args.docs_output_dir, mismatched_file) - try: - with open(expected_path) as e, open(actual_path) as a: - diff = difflib.context_diff( - e.readlines(), - a.readlines(), - os.path.join("expected", mismatched_file), - os.path.join("actual", mismatched_file), - ) - error_lines.append("\n".join([trim_diff_line(x) for x in diff])) - except UnicodeDecodeError: - error_lines.append( - f"Binary file {mismatched_file} does not match expected contents." - ) - raise ValueError("\n".join(error_lines)) - print("Done! Generated type stubs and documentation are valid.") - else: - sphinx_build_main(["-b", "html", args.docs_input_dir, args.docs_output_dir]) - postprocess_sphinx_output(args.docs_output_dir, SPHINX_REPLACEMENTS) - remove_non_public_files(args.docs_output_dir) - print(f"Done! Commit the contents of `{args.docs_output_dir}` to Git.") - - -if __name__ == "__main__": - main() diff --git a/python/scripts/postprocess_type_hints.py b/python/scripts/postprocess_type_hints.py deleted file mode 100644 index c520972e..00000000 --- a/python/scripts/postprocess_type_hints.py +++ /dev/null @@ -1,242 +0,0 @@ -#! /usr/bin/env python -# -# Copyright 2022-2023 Spotify AB -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -This script is intended to postprocess type hint (.pyi) files produced by pybind11-stubgen. - -A number of changes must be made to produce valid type hint files out-of-the-box. -Think of this as a more intelligent (or less intelligent) application of `git patch`. -""" - -import os -import io -import re -import difflib -from pathlib import Path -from collections import defaultdict -import black -import argparse - -REPO_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) - -OMIT_FILES = [] - -# Any lines containing any of these substrings will be omitted from the voyager stubs: -OMIT_LINES_CONTAINING = [] - -REPLACEMENTS = [ - # object is a superclass of `str`, which would make these declarations ambiguous: - ("file_like: object", "file_like: typing.BinaryIO"), - # "r" is the default file open/reading mode: - ("mode: str = 'r'", r'mode: Literal["r"] = "r"'), - # ... but when using "w", "w" needs to be specified explicitly (no default): - ("mode: str = 'w'", r'mode: Literal["w"]'), - # ndarrays need to be corrected as well: - (r"numpy\.ndarray\[(.*?)\]", r"numpy.ndarray[typing.Any, numpy.dtype[\1]]"), - # None of our enums are properly detected by pybind11-stubgen: - ( - # For Python 3.6 compatibility: - r"import typing", - "\n".join( - ["import typing", "from typing_extensions import Literal", "from enum import Enum"] - ), - ), - # Remove type hints in docstrings, added unnecessarily by pybind11-stubgen - (r".*?:type:.*$", ""), - # MyPy chokes on classes that contain both __new__ and __init__. - # Remove all bare, arg-free inits: - (r"def __init__\(self\) -> None: ...", ""), - ( - "import typing", - """ -import typing - -original_overload = typing.overload -__OVERLOADED_DOCSTRINGS = {} - -def patch_overload(func): - original_overload(func) - if func.__doc__: - __OVERLOADED_DOCSTRINGS[func.__qualname__] = func.__doc__ - else: - func.__doc__ = __OVERLOADED_DOCSTRINGS.get(func.__qualname__) - if func.__doc__: - # Work around the fact that pybind11-stubgen generates - # duplicate docstrings sometimes, once for each overload: - while func.__doc__[len(func.__doc__) // 2:].strip() \\ - == func.__doc__[:-len(func.__doc__) // 2].strip(): - func.__doc__ = func.__doc__[len(func.__doc__) // 2:].strip() - return func - -typing.overload = patch_overload - """, - ), -] - -REMOVE_INDENTED_BLOCKS_STARTING_WITH = [] - - -# .pyi files usually don't care about dependent types being present in order in the file; -# but if we want to use Sphinx, our Python files need to be both lexically and semantically -# valid as regular Python files. So... -INDENTED_BLOCKS_TO_MOVE_TO_END = [] - -# Similar to above; move our enum types early in the file (after the end of __all__ = [...]) -INDENTED_BLOCKS_TO_MOVE_TO_START = [ - "class Space(Enum)", - "class StorageDataType(Enum)", -] - -LINES_TO_IGNORE_FOR_MATCH = {"from __future__ import annotations"} - - -def stub_files_match(a: str, b: str) -> bool: - a = "".join( - [x for x in a.split("\n") if x.strip() and x.strip() not in LINES_TO_IGNORE_FOR_MATCH] - ) - b = "".join( - [x for x in b.split("\n") if x.strip() and x.strip() not in LINES_TO_IGNORE_FOR_MATCH] - ) - return a == b - - -def main(args=None): - parser = argparse.ArgumentParser( - description="Post-process type hint files produced by pybind11-stubgen for Voyager." - ) - parser.add_argument( - "source_directory", - default=os.path.join(REPO_ROOT, "pybind11-stubgen-output"), - ) - parser.add_argument( - "target_directory", - default=os.path.join(REPO_ROOT, "voyager"), - ) - parser.add_argument( - "--check", - action="store_true", - help=( - "Return a non-zero exit code if files on disk don't match what this script would" - " generate." - ), - ) - args = parser.parse_args(args) - - output_file_to_source_files = defaultdict(list) - for source_path in Path(args.source_directory).rglob("*.pyi"): - output_file_to_source_files[str(source_path)].append(str(source_path)) - - for output_file_name, source_files in output_file_to_source_files.items(): - os.makedirs(os.path.dirname(output_file_name), exist_ok=True) - - print(f"Writing stub file {output_file_name}...") - - file_contents = io.StringIO() - start_of_file_contents = io.StringIO() - end_of_file_contents = io.StringIO() - for source_file in source_files: - module_name = output_file_name.replace("__init__.pyi", "").replace("/", ".").rstrip(".") - with open(source_file) as f: - in_excluded_indented_block = False - in_moved_to_start_indented_block = False - in_moved_to_end_indented_block = False - for line in f: - if all(x not in line for x in OMIT_LINES_CONTAINING): - if any(line.startswith(x) for x in REMOVE_INDENTED_BLOCKS_STARTING_WITH): - in_excluded_indented_block = True - continue - elif any(line.startswith(x) for x in INDENTED_BLOCKS_TO_MOVE_TO_END): - in_moved_to_end_indented_block = True - elif any(line.startswith(x) for x in INDENTED_BLOCKS_TO_MOVE_TO_START): - in_moved_to_start_indented_block = True - elif line.strip() and not line.startswith(" "): - in_excluded_indented_block = False - in_moved_to_end_indented_block = False - - if in_excluded_indented_block: - continue - - for _tuple in REPLACEMENTS: - if len(_tuple) == 2: - find, replace = _tuple - only_in_module = None - else: - find, replace, only_in_module = _tuple - if only_in_module and only_in_module != module_name: - continue - results = re.findall(find, line) - if results: - line = re.sub(find, replace, line) - - if in_moved_to_start_indented_block: - start_of_file_contents.write(line) - elif in_moved_to_end_indented_block: - end_of_file_contents.write(line) - else: - file_contents.write(line) - print(f"\tRead {f.tell():,} bytes of stubs from {source_file}.") - - # Append end-of-file contents at the end: - file_contents.write("\n") - file_contents.write(end_of_file_contents.getvalue()) - - # Find the end of the __all__ block (first line with only "]"): - file_contents_string = file_contents.getvalue() - start_of_file_marker = "\n]\n" - insert_index = file_contents_string.find(start_of_file_marker) - if insert_index < 0 and len(start_of_file_contents.getvalue()): - raise NotImplementedError("Couldn't find end of __all__ block to move code blocks to!") - insert_index += len(start_of_file_marker) - - file_contents_string = ( - file_contents_string[:insert_index] - + "\n" - + start_of_file_contents.getvalue() - + "\n" - + file_contents_string[insert_index:] - ) - - # Run black: - try: - output = black.format_file_contents( - file_contents_string, - fast=False, - mode=black.FileMode(is_pyi=True, line_length=100), - ) - except black.report.NothingChanged: - output = file_contents_string - - if args.check: - with open(output_file_name, "r") as f: - existing = f.read() - if not stub_files_match(existing, output): - error = f"File that would be generated ({output_file_name}) " - error += "does not match existing file!\n" - error += f"Existing file had {len(existing):,} bytes, " - error += f"expected {len(output):,} bytes.\nDiff was:\n" - diff = difflib.context_diff(existing.split("\n"), output.split("\n")) - error += "\n".join([x.strip() for x in diff]) - raise ValueError(error) - else: - with open(output_file_name, "w") as o: - o.write(output) - print(f"\tWrote {o.tell():,} bytes of stubs to {output_file_name}.") - - print("Done!") - - -if __name__ == "__main__": - main() diff --git a/python/setup.py b/python/setup.py deleted file mode 100644 index dd8368db..00000000 --- a/python/setup.py +++ /dev/null @@ -1,180 +0,0 @@ -# Copyright 2022-2023 Spotify AB -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import os -import platform -import sys -from pathlib import Path - -import numpy as np -import pybind11 -import setuptools -from setuptools import Extension, setup -from setuptools.command.build_ext import build_ext - -# Find the "cpp" folder depending on where this script is run from: -for search_path in ["./cpp/src/", "../cpp/src/", "../../cpp/src/"]: - path = os.path.abspath(os.path.join(os.path.dirname(__file__), search_path)) - if os.path.exists(path): - VOYAGER_HEADERS_PATH = path - break -else: - dir_contents = os.listdir(os.getcwd()) - raise OSError( - "Unable to find the 'cpp' folder to build voyager. " - f"Current working directory is: {os.getcwd()}, directory contains: " - f"{', '.join([repr(x) for x in dir_contents[:5]])} and {len(dir_contents) - 5} more files." - ) - - -ext_modules = [ - Extension( - "voyager", - ["./bindings.cpp"], - include_dirs=[pybind11.get_include(), np.get_include(), VOYAGER_HEADERS_PATH], - libraries=[], - language="c++", - extra_objects=[], - ), -] - - -# As of Python 3.6, CCompiler has a `has_flag` method. -# cf http://bugs.python.org/issue26689 -def has_flag(compiler, flagname): - """Return a boolean indicating whether a flag name is supported on - the specified compiler. - """ - import tempfile - - with tempfile.NamedTemporaryFile("w", suffix=".cpp") as f: - f.write("int main (int argc, char **argv) { return 0; }") - try: - compiler.compile([f.name], extra_postargs=[flagname]) - except setuptools.distutils.errors.CompileError: - return False - return True - - -DEBUG = int(os.environ.get("DEBUG", "0")) == 1 -USE_ASAN = int(os.environ.get("USE_ASAN", "0")) == 1 - - -class BuildExt(build_ext): - """A custom build extension for adding compiler-specific options.""" - - compiler_flags = { - "msvc": ["/EHsc", "/O2"], - "unix": ["-O0" if DEBUG else "-O3"] + (["-g"] if DEBUG else []), - } - - linker_flags = {"unix": [], "msvc": []} - - if sys.platform == "darwin": - compiler_flags["unix"] += ["-stdlib=libc++", "-mmacosx-version-min=10.13"] - linker_flags["unix"] += ["-stdlib=libc++", "-mmacosx-version-min=10.13"] - - if USE_ASAN: - compiler_flags["unix"].append("-fsanitize=address") - compiler_flags["unix"].append("-fno-omit-frame-pointer") - linker_flags["unix"].append("-fsanitize=address") - if platform.system() == "Linux": - linker_flags["unix"].append("-shared-libasan") - - def build_extensions(self): - ct = self.compiler.compiler_type - opts = self.compiler_flags.get(ct, []) - if ct == "unix": - opts.append('-DVERSION_INFO="%s"' % self.distribution.get_version()) - opts.append("-std=c++17") - # Allow reordering floating-point operations for - # better automatic vectorization, even without -ffast-math - # See: https://simonbyrne.github.io/notes/fastmath/#flushing_subnormals_to_zero - # for why -ffast-math is not included: - opts.extend( - [ - "-fassociative-math", - "-fno-signaling-nans", - "-fno-trapping-math", - "-fno-signed-zeros", - "-freciprocal-math", - "-fno-math-errno", - ] - ) - if has_flag(self.compiler, "-fvisibility=hidden"): - opts.append("-fvisibility=hidden") - elif ct == "msvc": - opts.append('/DVERSION_INFO=\\"%s\\"' % self.distribution.get_version()) - opts.append("/std:c++17") - - for ext in self.extensions: - ext.extra_compile_args.extend(opts) - ext.extra_link_args.extend(self.linker_flags.get(ct, [])) - - build_ext.build_extensions(self) - - -current_directory = Path(__file__).resolve().parent -search_directory = current_directory -search_paths = [] -for _ in range(10): - search_paths.append(str(search_directory)) - readme = search_directory / "README.md" - if readme.exists(): - break - search_directory = search_directory.parent -else: - raise ValueError(f"Unable to find README.md. Searched: {search_paths}") - -long_description = readme.read_text("utf-8") - -# read the contents of the version.py -version = {} -exec((current_directory / "voyager" / "version.py").read_text(), version) - -setup( - name="voyager", - version=version["__version__"], - description=( - "Easy-to-use, fast, simple multi-platform approximate nearest-neighbor search library." - ), - author="Peter Sobot", - url="https://github.com/spotify/voyager", - long_description=long_description, - long_description_content_type="text/markdown", - classifiers=[ - "Development Status :: 5 - Production/Stable", - "License :: OSI Approved :: Apache Software License", - "Operating System :: MacOS", - "Operating System :: Microsoft :: Windows", - "Operating System :: POSIX :: Linux", - "Programming Language :: C++", - "Programming Language :: Python", - "Topic :: Database :: Database Engines/Servers", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - ], - ext_modules=ext_modules, - install_requires=["numpy"], - cmdclass={"build_ext": BuildExt}, - zip_safe=False, - package_data={ - "voyager": ["py.typed", "*.pyi", "**/*.pyi"], - }, -) diff --git a/python/src/PythonFileLike.h b/python/src/PythonFileLike.h index 7fd2fea6..fd13a547 100644 --- a/python/src/PythonFileLike.h +++ b/python/src/PythonFileLike.h @@ -18,22 +18,22 @@ #include #include -namespace py = pybind11; +namespace nb = nanobind; namespace PythonException { // Check if there's a Python exception pending in the interpreter. inline bool isPending() { - py::gil_scoped_acquire acquire; + nb::gil_scoped_acquire acquire; return PyErr_Occurred() != nullptr; } // If an exception is pending, raise it as a C++ exception to break the current // control flow and result in an error being thrown in Python later. inline void raise() { - py::gil_scoped_acquire acquire; + nb::gil_scoped_acquire acquire; if (PyErr_Occurred()) { - py::error_already_set existingError; + nb::python_error existingError; throw existingError; } } @@ -44,47 +44,47 @@ inline void raise() { */ class PythonFileLike { public: - PythonFileLike(py::object fileLike) : fileLike(fileLike) {} + PythonFileLike(nb::object fileLike) : fileLike(fileLike) {} std::string getRepresentation() { - py::gil_scoped_acquire acquire; - return py::repr(fileLike).cast(); + nb::gil_scoped_acquire acquire; + return nb::cast(nb::repr(fileLike)); } std::optional getFilename() { // Some Python file-like objects expose a ".name" property. // If this object has that property, return its value; // otherwise return an empty optional. - py::gil_scoped_acquire acquire; + nb::gil_scoped_acquire acquire; - if (py::hasattr(fileLike, "name")) { - return py::str(fileLike.attr("name")).cast(); + if (nb::hasattr(fileLike, "name")) { + return nb::cast(nb::str(nb::handle(fileLike.attr("name")))); } else { return {}; } } bool isSeekable() { - py::gil_scoped_acquire acquire; - return fileLike.attr("seekable")().cast(); + nb::gil_scoped_acquire acquire; + return nb::cast(fileLike.attr("seekable")()); } long long getPosition() { - py::gil_scoped_acquire acquire; - return fileLike.attr("tell")().cast(); + nb::gil_scoped_acquire acquire; + return nb::cast(fileLike.attr("tell")()); } bool setPosition(long long pos) { - py::gil_scoped_acquire acquire; - if (fileLike.attr("seekable")().cast()) { + nb::gil_scoped_acquire acquire; + if (nb::cast(fileLike.attr("seekable")())) { fileLike.attr("seek")(pos); } - return fileLike.attr("tell")().cast() == pos; + return nb::cast(fileLike.attr("tell")()) == pos; } - py::object getFileLikeObject() { return fileLike; } + nb::object getFileLikeObject() { return fileLike; } protected: - py::object fileLike; + nb::object fileLike; }; diff --git a/python/src/PythonInputStream.h b/python/src/PythonInputStream.h index 2cb6a0ab..30c077c4 100644 --- a/python/src/PythonInputStream.h +++ b/python/src/PythonInputStream.h @@ -17,14 +17,14 @@ #include #include -namespace py = pybind11; - #include "PythonFileLike.h" -#include +#include "cpp/src/StreamUtils.h" + +namespace nb = nanobind; -bool isReadableFileLike(py::object fileLike) { - return py::hasattr(fileLike, "read") && py::hasattr(fileLike, "seek") && - py::hasattr(fileLike, "tell") && py::hasattr(fileLike, "seekable"); +bool isReadableFileLike(nb::object fileLike) { + return nb::hasattr(fileLike, "read") && nb::hasattr(fileLike, "seek") && + nb::hasattr(fileLike, "tell") && nb::hasattr(fileLike, "seekable"); } /** @@ -38,33 +38,33 @@ class PythonInputStream : public InputStream, PythonFileLike { // hundreds of GB at once, which would allocate 2x that amount. static constexpr long long MAX_BUFFER_SIZE = 1024 * 1024 * 100; - PythonInputStream(py::object fileLike) : PythonFileLike(fileLike) { + PythonInputStream(nb::object fileLike) : PythonFileLike(fileLike) { if (!isReadableFileLike(fileLike)) { - throw py::type_error("Expected a file-like object (with read, seek, " + throw nb::type_error("Expected a file-like object (with read, seek, " "seekable, and tell methods)."); } } bool isSeekable() { - py::gil_scoped_acquire acquire; - return fileLike.attr("seekable")().cast(); + nb::gil_scoped_acquire acquire; + return nb::cast(fileLike.attr("seekable")()); } long long getTotalLength() { - py::gil_scoped_acquire acquire; + nb::gil_scoped_acquire acquire; // TODO: Try reading a couple of Python properties that may contain the // total length: urllib3.response.HTTPResponse provides `length_remaining`, // for instance - if (!fileLike.attr("seekable")().cast()) { + if (!nb::cast(fileLike.attr("seekable")())) { return -1; } if (totalLength == -1) { - long long pos = fileLike.attr("tell")().cast(); + long long pos = nb::cast(fileLike.attr("tell")()); fileLike.attr("seek")(0, 2); - totalLength = fileLike.attr("tell")().cast(); + totalLength = nb::cast(fileLike.attr("tell")()); fileLike.attr("seek")(pos, 0); } @@ -72,15 +72,15 @@ class PythonInputStream : public InputStream, PythonFileLike { } long long read(char *buffer, long long bytesToRead) { - py::gil_scoped_acquire acquire; + nb::gil_scoped_acquire acquire; if (buffer == nullptr) { - throw py::buffer_error( + throw nb::buffer_error( "C++ code attempted to read from a Python file-like object into a " "null destination buffer."); } if (bytesToRead < 0) { - throw py::buffer_error("C++ code attempted to read a negative number " + throw nb::buffer_error("C++ code attempted to read a negative number " "of bytes from a Python file-like object."); } @@ -100,44 +100,41 @@ class PythonInputStream : public InputStream, PythonFileLike { auto readResult = fileLike.attr("read")( std::min(MAX_BUFFER_SIZE, bytesToRead - bytesRead)); - if (!py::isinstance(readResult)) { - std::string message = "Python file-like object was expected to return " - "bytes from its read(...) method, but " - "returned " + - py::str(readResult.get_type().attr("__name__")) - .cast() + - "."; - - if (py::hasattr(fileLike, "mode") && - py::str(fileLike.attr("mode")).cast() == "r") { + if (!nb::isinstance(readResult)) { + std::string message = + "Python file-like object was expected to return " + "bytes from its read(...) method, but " + "returned " + + nb::cast( + nb::str(nb::handle(readResult.type().attr("__name__")))) + + "."; + + if (nb::hasattr(fileLike, "mode") && + nb::cast(nb::str(nb::handle(fileLike.attr("mode")))) == + "r") { message += " (Try opening the stream in \"rb\" mode instead of " "\"r\" mode if possible.)"; } - throw py::type_error(message); + throw nb::type_error(message.c_str()); return 0; } - py::bytes bytesObject = readResult.cast(); - char *pythonBuffer = nullptr; - py::ssize_t pythonLength = 0; - - if (PYBIND11_BYTES_AS_STRING_AND_SIZE(bytesObject.ptr(), &pythonBuffer, - &pythonLength)) { - throw py::buffer_error( - "Internal error: failed to read bytes from bytes object!"); - } + nb::bytes bytesObject = nb::cast(readResult); + const char *pythonBuffer = bytesObject.c_str(); + nb::ssize_t pythonLength = bytesObject.size(); if (!buffer && pythonLength > 0) { - throw py::buffer_error("Internal error: bytes pointer is null, but a " + throw nb::buffer_error("Internal error: bytes pointer is null, but a " "non-zero number of bytes were returned!"); } if (bytesRead + pythonLength > bytesToRead) { - throw py::buffer_error( - "Python returned " + std::to_string(pythonLength) + - " bytes, but only " + std::to_string(bytesToRead - bytesRead) + - " bytes were requested."); + throw nb::buffer_error( + ("Python returned " + std::to_string(pythonLength) + + " bytes, but only " + std::to_string(bytesToRead - bytesRead) + + " bytes were requested.") + .c_str()); } if (buffer && pythonLength > 0) { @@ -154,7 +151,7 @@ class PythonInputStream : public InputStream, PythonFileLike { } bool isExhausted() { - py::gil_scoped_acquire acquire; + nb::gil_scoped_acquire acquire; if (lastReadWasSmallerThanExpected) { return true; @@ -164,15 +161,15 @@ class PythonInputStream : public InputStream, PythonFileLike { } long long getPosition() { - py::gil_scoped_acquire acquire; + nb::gil_scoped_acquire acquire; - return fileLike.attr("tell")().cast() - peekValue.size(); + return nb::cast(fileLike.attr("tell")()) - peekValue.size(); } bool setPosition(long long pos) { - py::gil_scoped_acquire acquire; + nb::gil_scoped_acquire acquire; - if (fileLike.attr("seekable")().cast()) { + if (nb::cast(fileLike.attr("seekable")())) { fileLike.attr("seek")(pos); } diff --git a/python/src/PythonOutputStream.h b/python/src/PythonOutputStream.h index 58ca658b..40cea8ab 100644 --- a/python/src/PythonOutputStream.h +++ b/python/src/PythonOutputStream.h @@ -17,14 +17,14 @@ #include #include -namespace py = pybind11; - #include "PythonFileLike.h" -#include +#include "cpp/src/StreamUtils.h" + +namespace nb = nanobind; -bool isWriteableFileLike(py::object fileLike) { - return py::hasattr(fileLike, "write") && py::hasattr(fileLike, "seek") && - py::hasattr(fileLike, "tell") && py::hasattr(fileLike, "seekable"); +bool isWriteableFileLike(nb::object fileLike) { + return nb::hasattr(fileLike, "write") && nb::hasattr(fileLike, "seek") && + nb::hasattr(fileLike, "tell") && nb::hasattr(fileLike, "seekable"); } /** @@ -35,29 +35,28 @@ class PythonOutputStream : public OutputStream, public PythonFileLike { public: static constexpr unsigned long long MAX_BUFFER_SIZE = 1024 * 1024 * 100; - PythonOutputStream(py::object fileLike) : PythonFileLike(fileLike) { + PythonOutputStream(nb::object fileLike) : PythonFileLike(fileLike) { if (!isWriteableFileLike(fileLike)) { - throw py::type_error("Expected a file-like object (with write, seek, " + throw nb::type_error("Expected a file-like object (with write, seek, " "seekable, and tell methods)."); } } virtual void flush() override { - py::gil_scoped_acquire acquire; - if (py::hasattr(fileLike, "flush")) { + nb::gil_scoped_acquire acquire; + if (nb::hasattr(fileLike, "flush")) { fileLike.attr("flush")(); } } virtual bool write(const char *ptr, unsigned long long numBytes) override { - py::gil_scoped_acquire acquire; + nb::gil_scoped_acquire acquire; for (unsigned long long i = 0; i < numBytes; i += MAX_BUFFER_SIZE) { unsigned long long chunkSize = std::min(numBytes - i, MAX_BUFFER_SIZE); - int bytesWritten = - fileLike.attr("write")(py::bytes((const char *)ptr, chunkSize)) - .cast(); + int bytesWritten = nb::cast( + fileLike.attr("write")(nb::bytes((const char *)ptr, chunkSize))); if (bytesWritten < 0) return false; diff --git a/python/bindings.cpp b/python/src/bindings.cpp similarity index 78% rename from python/bindings.cpp rename to python/src/bindings.cpp index bd5158d4..d2f5ebcf 100644 --- a/python/bindings.cpp +++ b/python/src/bindings.cpp @@ -15,45 +15,53 @@ #include #include #include +#include #include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include -#include "src/PythonInputStream.h" -#include "src/PythonOutputStream.h" -#include +#include "PythonInputStream.h" +#include "PythonOutputStream.h" +#include "cpp/src/TypedIndex.h" -namespace py = pybind11; -using namespace pybind11::literals; // needed to bring in _a literal +namespace nb = nanobind; +using namespace nanobind::literals; // needed to bring in _a literal /** * Convert a PyArray (i.e.: numpy.ndarray) to a C++ NDArray. * This function copies the data from the PyArray into a new NDArray. */ template -NDArray pyArrayToNDArray(py::array_t input) { - py::buffer_info inputInfo = input.request(); - - if (inputInfo.ndim != Dims) { +NDArray pyArrayToNDArray(nb::ndarray &input) { + if (input.ndim() != Dims) { throw std::domain_error("Input array was expected to have rank " + std::to_string(Dims) + ", but had rank " + - std::to_string(inputInfo.ndim) + "."); + std::to_string(input.ndim()) + "."); } std::array shape; for (int i = 0; i < Dims; i++) { - shape[i] = inputInfo.shape[i]; + shape[i] = input.shape(i); } NDArray output = NDArray(shape); - T *inputPtr = static_cast(inputInfo.ptr); + const T *inputPtr = static_cast(input.data()); { - py::gil_scoped_release release; + nb::gil_scoped_release release; std::copy(inputPtr, inputPtr + output.data.size(), output.data.begin()); } @@ -66,47 +74,33 @@ NDArray pyArrayToNDArray(py::array_t input) { * refactored. */ template -py::array_t ndArrayToPyArray(NDArray input) { - py::array_t output(input.shape); - T *outputPtr = static_cast(const_cast(output.data())); - - size_t numOutputElements = 1; - for (size_t i = 0; i < input.shape.size(); i++) { - numOutputElements *= input.shape[i]; - } - if (input.data.size() != numOutputElements) { - throw std::runtime_error("Internal error: NDArray input size (" + - std::to_string(input.data.size()) + - " elements) does not match output shape: (" + - std::to_string(numOutputElements) + " elements)."); - } - - { - py::gil_scoped_release release; - std::copy(input.data.begin(), input.data.end(), outputPtr); +nb::ndarray ndArrayToPyArray(NDArray input) { + T *outputPtr = new T[input.data.size()]; + std::copy(input.data.begin(), input.data.end(), outputPtr); + nb::capsule owner(outputPtr, [](void *p) noexcept { delete[] (float *)p; }); + size_t shape[Dims]; + for (int i = 0; i < Dims; i++) { + shape[i] = input.shape[i]; } - - return output; + return nb::ndarray(outputPtr, Dims, shape, owner); }; /** * Convert a PyArray (i.e.: numpy.ndarray) to a C++ std::vector. * This function copies the data from the PyArray into a new vector. */ -template std::vector pyArrayToVector(py::array_t input) { - py::buffer_info inputInfo = input.request(); - - if (inputInfo.ndim != 1) { +template std::vector pyArrayToVector(nb::ndarray &input) { + if (input.ndim() != 1) { throw std::domain_error( "Input array was expected to have one dimension, but had " + - std::to_string(inputInfo.ndim) + " dimensions."); + std::to_string(input.ndim()) + " dimensions."); } - std::vector output(inputInfo.shape[0]); + std::vector output(input.shape(0)); - T *inputPtr = static_cast(inputInfo.ptr); + const T *inputPtr = static_cast(input.data()); { - py::gil_scoped_release release; + nb::gil_scoped_release release; std::copy(inputPtr, inputPtr + output.size(), output.begin()); } @@ -117,16 +111,12 @@ template std::vector pyArrayToVector(py::array_t input) { * Convert a C++ std::vector into a PyArray (i.e.: numpy.ndarray). * This function copies the data, but may not have to. */ -template py::array_t vectorToPyArray(std::vector input) { - py::array_t output({(long)input.size()}); - T *outputPtr = static_cast(const_cast(output.data())); - - { - py::gil_scoped_release release; - std::copy(input.begin(), input.end(), outputPtr); - } - - return output; +template +nb::ndarray vectorToPyArray(std::vector input) { + T *data = new T[input.size()]; + std::copy(input.begin(), input.end(), data); + nb::capsule owner(data, [](void *p) noexcept { delete[] (float *)p; }); + return nb::ndarray(data, {input.size()}, owner); }; /** @@ -142,8 +132,8 @@ class LabelSetView { std::unordered_map const ↦ }; -inline void init_LabelSetView(py::module &m) { - py::class_( +inline void init_LabelSetView(nb::module_ &m) { + nb::class_( m, "LabelSetView", "A read-only set-like object containing 64-bit integers. Use this object " "like a regular Python :py:class:`set` object, by either iterating " @@ -165,55 +155,66 @@ inline void init_LabelSetView(py::module &m) { // every time next(iter(...)) is called. std::vector ids; { - py::gil_scoped_release release; + nb::gil_scoped_release release; ids.reserve(self.map.size()); for (auto const &kv : self.map) { ids.push_back(kv.first); } } - return py::cast(ids).attr("__iter__")(); + return nb::cast(ids).attr("__iter__")(); }) .def( "__contains__", [](LabelSetView &self, hnswlib::labeltype element) { return self.map.find(element) != self.map.end(); }, - py::arg("id")) + nb::arg("id")) .def( "__contains__", - [](LabelSetView &, const py::object &) { return false; }, - py::arg("id")); + [](LabelSetView &, const nb::object &) { return false; }, + nb::arg("id")); } template > -inline void register_index_class(py::module &m, std::string className, +inline void register_index_class(nb::module_ &m, std::string className, std::string docstring) { - auto klass = - py::class_, Index, - std::shared_ptr>>( - m, className.c_str(), docstring.c_str()); - - klass.def(py::init(), - py::arg("space"), py::arg("num_dimensions"), py::arg("M") = 16, - py::arg("ef_construction") = 200, py::arg("random_seed") = 1, - py::arg("max_elements") = 1, "Create a new, empty index."); - - klass.def("__repr__", [className](const Index &index) { - return ""; - }); + nb::class_, Index>( + m, className.c_str(), docstring.c_str()) + .def( + "__init__", + []( + // TypedIndex *self, + const nb::object *self, const SpaceType space, + const int num_dimensions, const size_t M, + const size_t ef_construction, const size_t random_seed, + const size_t max_elements, + const StorageDataType storageDataType) { + // new (self) TypedIndex( + // space, num_dimensions, M, ef_construction, random_seed, + // max_elements); + }, + nb::arg("space"), nb::arg("num_dimensions"), nb::arg("M") = 16, + nb::arg("ef_construction") = 200, nb::arg("random_seed") = 1, + nb::arg("max_elements") = 1, + nb::arg("storage_data_type") = StorageDataType::Float32, + "Create a new, empty index.") + .def("__repr__", [className](const Index &index) { + return ""; + }); }; -PYBIND11_MODULE(voyager, m) { - py::register_exception(m, "RecallError"); +NB_MODULE(voyager_ext, m) { + nb::exception(m, "RecallError"); + + m.attr("version") = nb::make_tuple(2, 1, 0); init_LabelSetView(m); - py::enum_( + nb::enum_( m, "Space", "The method used to calculate the distance between vectors.") .value("Euclidean", SpaceType::Euclidean, "Euclidean distance; also known as L2 distance. The square root " @@ -224,7 +225,7 @@ PYBIND11_MODULE(voyager, m) { .value("InnerProduct", SpaceType::InnerProduct, "Inner product distance.") .export_values(); - py::enum_(m, "StorageDataType", + nb::enum_(m, "StorageDataType", R"( The data type used to store vectors in memory and on-disk. @@ -248,24 +249,18 @@ memory usage and index size by a factor of 4 compared to :py:class:`Float32`. "correct ordering between results.") .export_values(); - py::class_( + nb::class_( m, "E4M3T", "An 8-bit floating point data type with reduced precision and range. " "This class wraps a C++ struct and should probably not be used directly.") - .def(py::init([](float input) { - E4M3 v(input); - return v; - }), + .def(nb::init(), "Create an E4M3 number given a floating-point value. If out of " "range, the value will be clipped.", - py::arg("value")) - .def(py::init([](int sign, int exponent, int mantissa) { - E4M3 v(sign, exponent, mantissa); - return v; - }), + nb::arg("value")) + .def(nb::init(), "Create an E4M3 number given a sign, exponent, and mantissa. If out " "of range, the values will be clipped.", - py::arg("sign"), py::arg("exponent"), py::arg("mantissa")) + nb::arg("sign"), nb::arg("exponent"), nb::arg("mantissa")) .def_static( "from_char", [](int c) { @@ -275,7 +270,7 @@ memory usage and index size by a factor of 4 compared to :py:class:`Float32`. E4M3 v(static_cast(c)); return v; }, - "Create an E4M3 number given a raw 8-bit value.", py::arg("value")) + "Create an E4M3 number given a raw 8-bit value.", nb::arg("value")) .def( "__float__", [](E4M3 &self) { return (float)self; }, "Cast the given E4M3 number to a float.") @@ -293,33 +288,33 @@ memory usage and index size by a factor of 4 compared to :py:class:`Float32`. ss << ">"; return ss.str(); }) - .def_property_readonly( + .def_prop_ro( "sign", [](E4M3 &self) { return self.sign; }, "The sign bit from this E4M3 number. Will be ``1`` if the number is " "negative, ``0`` otherwise.") - .def_property_readonly( + .def_prop_ro( "exponent", [](E4M3 &self) { return self.effectiveExponent(); }, "The effective exponent of this E4M3 number, expressed as " "an integer.") - .def_property_readonly( + .def_prop_ro( "raw_exponent", [](E4M3 &self) { return self.exponent; }, "The raw value of the exponent part of this E4M3 number, expressed " "as an integer.") - .def_property_readonly( + .def_prop_ro( "mantissa", [](E4M3 &self) { return self.effectiveMantissa(); }, "The effective mantissa (non-exponent part) of this E4M3 number, " "expressed as an integer.") - .def_property_readonly( + .def_prop_ro( "raw_mantissa", [](E4M3 &self) { return self.mantissa; }, "The raw value of the mantissa (non-exponent part) of this E4M3 " "number, expressed as a floating point value.") - .def_property_readonly( + .def_prop_ro( "size", [](E4M3 &self) { return sizeof(self); }, "The number of bytes used to represent this (C++) instance in " "memory."); - auto index = py::class_>(m, "Index", - R"( + auto index = nb::class_(m, "Index", + R"( A nearest-neighbor search index containing vector data (i.e. lists of floating-point values, each list labeled with a single integer ID). @@ -391,13 +386,20 @@ of three classes: index.def( "add_item", - [](Index &index, py::array_t vector, std::optional _id) { - auto stdArray = pyArrayToVector(vector); - - py::gil_scoped_release release; + [](Index &index, + std::variant, std::vector> vector, + std::optional _id) { + std::vector stdArray; + if (std::holds_alternative>(vector)) { + stdArray = + pyArrayToVector(std::get>(vector)); + } else { + stdArray = std::get>(vector); + } + nb::gil_scoped_release release; return index.addItem(stdArray, _id); }, - py::arg("vector"), py::arg("id") = py::none(), R"( + nb::arg("vector"), nb::arg("id") = nb::none(), R"( Add a vector to this index. Args: @@ -422,16 +424,16 @@ Add a vector to this index. index.def( "add_items", - [](Index &index, py::array_t vectors, + [](Index &index, nb::ndarray vectors, std::optional> _ids, int num_threads) { std::vector empty; auto ndArray = pyArrayToNDArray(vectors); - py::gil_scoped_release release; + nb::gil_scoped_release release; return index.addItems(ndArray, (_ids ? *_ids : empty), num_threads); }, - py::arg("vectors"), py::arg("ids") = py::none(), - py::arg("num_threads") = -1, + nb::arg("vectors"), nb::arg("ids") = nb::none(), + nb::arg("num_threads") = -1, R"( Add multiple vectors to this index simultaneously. @@ -464,14 +466,31 @@ as passing a batch of vectors helps avoid Python's Global Interpreter Lock. //////////////////////////////////////////////////////////////////////////////////////////////////// index.def( "query", - [](Index &index, py::array_t input, size_t k = 1, - int num_threads = -1, long queryEf = -1) { - int inputNDim = input.request().ndim; + [](Index &index, + std::variant, std::vector> &_input, + size_t k = 1, int num_threads = -1, long queryEf = -1) { + // Treat a single vector as a 1D array: + if (std::holds_alternative>(_input)) { + std::vector stdArray = std::get>(_input); + + auto idsAndDistances = index.query(stdArray, k, queryEf); + std::tuple, + nb::ndarray> + output = {vectorToPyArray( + std::get<0>(idsAndDistances)), + vectorToPyArray(std::get<1>(idsAndDistances))}; + return output; + } + + nb::ndarray input = std::get>(_input); + + int inputNDim = input.ndim(); switch (inputNDim) { case 1: { auto idsAndDistances = index.query(pyArrayToVector(input), k, queryEf); - std::tuple, py::array_t> + std::tuple, + nb::ndarray> output = {vectorToPyArray( std::get<0>(idsAndDistances)), vectorToPyArray(std::get<1>(idsAndDistances))}; @@ -480,7 +499,8 @@ as passing a batch of vectors helps avoid Python's Global Interpreter Lock. case 2: { auto idsAndDistances = index.query(pyArrayToNDArray(input), k, num_threads, queryEf); - std::tuple, py::array_t> + std::tuple, + nb::ndarray> output = { ndArrayToPyArray( std::get<0>(idsAndDistances)), @@ -494,8 +514,8 @@ as passing a batch of vectors helps avoid Python's Global Interpreter Lock. std::to_string(inputNDim) + " dimensions."); } }, - py::arg("vectors"), py::arg("k") = 1, py::arg("num_threads") = -1, - py::arg("query_ef") = -1, R"( + nb::arg("vectors"), nb::arg("k") = 1, nb::arg("num_threads") = -1, + nb::arg("query_ef") = -1, R"( Query this index to retrieve the ``k`` nearest neighbors of the provided vectors. Args: @@ -563,27 +583,27 @@ Query with multiple vectors simultaneously:: //////////////////////////////////////////////////////////////////////////////////////////////////// // Property Methods //////////////////////////////////////////////////////////////////////////////////////////////////// - index.def_property_readonly("space", &Index::getSpace, - "Return the :py:class:`Space` used to calculate " - "distances between vectors."); + index.def_prop_ro("space", &Index::getSpace, + "Return the :py:class:`Space` used to calculate " + "distances between vectors."); - index.def_property_readonly("num_dimensions", &Index::getNumDimensions, R"( + index.def_prop_ro("num_dimensions", &Index::getNumDimensions, R"( The number of dimensions in each vector stored by this index. )"); - index.def_property_readonly("M", &Index::getM, R"( + index.def_prop_ro("M", &Index::getM, R"( The number of connections between nodes in the tree's internal data structure. Larger values give better recall, but use more memory. This parameter cannot be changed after the index is instantiated.)"); - index.def_property_readonly("ef_construction", &Index::getEfConstruction, R"( + index.def_prop_ro("ef_construction", &Index::getEfConstruction, R"( The number of vectors that this index searches through when inserting a new vector into the index. Higher values make index construction slower, but give better recall. This parameter cannot be changed after the index is instantiated.)"); - index.def_property("max_elements", &Index::getMaxElements, - &Index::resizeIndex, R"( + index.def_prop_rw("max_elements", &Index::getMaxElements, &Index::resizeIndex, + R"( The maximum number of elements that can be stored in this index. If :py:attr:`max_elements` is much larger than @@ -600,12 +620,12 @@ Note that assigning to this property is functionally identical to calling :py:meth:`resize`. )"); - index.def_property_readonly("storage_data_type", &Index::getStorageDataType, - R"( + index.def_prop_ro("storage_data_type", &Index::getStorageDataType, + R"( The :py:class:`StorageDataType` used to store vectors in this :py:class:`Index`. )"); - index.def_property_readonly("num_elements", &Index::getNumElements, R"( + index.def_prop_ro("num_elements", &Index::getNumElements, R"( The number of elements (vectors) currently stored in this index. Note that the number of elements will not decrease if any elements are @@ -613,11 +633,11 @@ deleted from the index; those deleted elements simply become invisible.)"); index.def( "get_vector", - [](Index &index, size_t _id) { + [](Index &index, size_t _id) -> nb::ndarray { return ndArrayToPyArray(NDArray( index.getVector(_id), {(int)index.getNumDimensions()})); }, - py::arg("id"), R"( + nb::arg("id"), R"( Get the vector stored in this index at the provided integer ID. If no such vector exists, a :py:exc:`KeyError` will be thrown. @@ -638,7 +658,7 @@ If no such vector exists, a :py:exc:`KeyError` will be thrown. [](Index &index, std::vector _ids) { return ndArrayToPyArray(index.getVectors(_ids)); }, - py::arg("ids"), R"( + nb::arg("ids"), R"( Get one or more vectors stored in this index at the provided integer IDs. If one or more of the provided IDs cannot be found in the index, a :py:exc:`KeyError` will be thrown. @@ -649,7 +669,7 @@ If one or more of the provided IDs cannot be found in the index, a originally added to this index. )"); - index.def_property_readonly( + index.def_prop_ro( "ids", [](Index &index) { return std::make_unique(index.getIDsMap()); @@ -680,12 +700,23 @@ specific integer ID in this index:: R"( Get the distance between two provided vectors. The vectors must share the dimensionality of the index. )", - py::arg("a"), py::arg("b")); + nb::arg("a"), nb::arg("b")); + + index.def( + "get_distance", + [](Index &index, nb::ndarray a, nb::ndarray b) { + return index.getDistance(pyArrayToVector(a), + pyArrayToVector(b)); + }, + R"( +Get the distance between two provided vectors. The vectors must share the dimensionality of the index. +)", + nb::arg("a"), nb::arg("b")); //////////////////////////////////////////////////////////////////////////////////////////////////// // Index Modifier Methods/Attributes //////////////////////////////////////////////////////////////////////////////////////////////////// - index.def_property("ef", &Index::getEF, &Index::setEF, R"( + index.def_prop_rw("ef", &Index::getEF, &Index::setEF, R"( The default number of vectors to search through when calling :py:meth:`query`. Higher values make queries slower, but give better recall. @@ -700,7 +731,7 @@ Higher values make queries slower, but give better recall. )"); - index.def("mark_deleted", &Index::markDeleted, py::arg("id"), R"( + index.def("mark_deleted", &Index::markDeleted, nb::arg("id"), R"( Mark an ID in this index as deleted. Deleted IDs will not show up in the results of calls to :py:meth:`query`, @@ -734,14 +765,14 @@ but will still take up space in the index, and will slow down queries. index.attr("__delitem__") = index.attr("mark_deleted"); - index.def("unmark_deleted", &Index::unmarkDeleted, py::arg("id"), R"( + index.def("unmark_deleted", &Index::unmarkDeleted, nb::arg("id"), R"( Unmark an ID in this index as deleted. Once unmarked as deleted, an existing ID will show up in the results of calls to :py:meth:`query` again. )"); - index.def("resize", &Index::resizeIndex, py::arg("new_size"), R"( + index.def("resize", &Index::resizeIndex, nb::arg("new_size"), R"( Resize this index, allocating space for up to ``new_size`` elements to be stored. This changes the :py:attr:`max_elements` property and may cause this :py:class:`Index` object to use more memory. This is a fairly @@ -774,31 +805,32 @@ one or more chunks of data (of up to 100MB each) to the provided object for writ index.def( "save", [](Index &index, std::string filePath) { - py::gil_scoped_release release; + nb::gil_scoped_release release; index.saveIndex(filePath); }, - py::arg("output_path"), SAVE_DOCSTRING); + nb::arg("output_path"), SAVE_DOCSTRING); index.def( "save", - [](Index &index, py::object filelike) { + [](Index &index, nb::object filelike) { auto outputStream = std::make_shared(filelike); - py::gil_scoped_release release; + nb::gil_scoped_release release; index.saveIndex(outputStream); }, - py::arg("file_like"), SAVE_DOCSTRING); + nb::arg("file_like"), SAVE_DOCSTRING); index.def( "as_bytes", [](Index &index) { auto outputStream = std::make_shared(); { - py::gil_scoped_release release; + nb::gil_scoped_release release; index.saveIndex(outputStream); } - return py::bytes(outputStream->getValue()); + std::string bytes = outputStream->getValue(); + return nb::bytes(bytes.data(), bytes.size()); }, R"( Returns the contents of this index as a :py:class:`bytes` object. The resulting object @@ -829,7 +861,7 @@ into memory again. auto &map = self.getIDsMap(); return map.find(element) != map.end(); }, - py::arg("id"), + nb::arg("id"), R"( Check to see if a provided vector's ID is present in this index. @@ -871,11 +903,11 @@ Use the ``len`` operator to call this method:: index.def_static( "__new__", - [](const py::object *, const SpaceType space, const int num_dimensions, + [](const nb::object *, const SpaceType space, const int num_dimensions, const size_t M, const size_t ef_construction, const size_t random_seed, const size_t max_elements, const StorageDataType storageDataType) -> std::shared_ptr { - py::gil_scoped_release release; + nb::gil_scoped_release release; switch (storageDataType) { case StorageDataType::E4M3: return std::make_shared>( @@ -894,10 +926,10 @@ Use the ``len`` operator to call this method:: throw std::runtime_error("Unknown storage data type received!"); } }, - py::arg("cls"), py::arg("space"), py::arg("num_dimensions"), - py::arg("M") = 12, py::arg("ef_construction") = 200, - py::arg("random_seed") = 1, py::arg("max_elements") = 1, - py::arg("storage_data_type") = StorageDataType::Float32, + nb::arg("cls"), nb::arg("space"), nb::arg("num_dimensions"), + nb::arg("M") = 12, nb::arg("ef_construction") = 200, + nb::arg("random_seed") = 1, nb::arg("max_elements") = 1, + nb::arg("storage_data_type") = StorageDataType::Float32, R"( Create a new Voyager nearest-neighbor search index with the provided arguments. @@ -931,7 +963,7 @@ of Voyager prior to v1.3. [](const std::string filename, const SpaceType space, const int num_dimensions, const StorageDataType storageDataType) -> std::shared_ptr { - py::gil_scoped_release release; + nb::gil_scoped_release release; auto inputStream = std::make_shared(filename); std::unique_ptr metadata = @@ -977,33 +1009,34 @@ of Voyager prior to v1.3. throw std::runtime_error("Unknown storage data type received!"); } }, - py::arg("filename"), py::arg("space"), py::arg("num_dimensions"), - py::arg("storage_data_type") = StorageDataType::Float32, LOAD_DOCSTRING); + nb::arg("filename"), nb::arg("space"), nb::arg("num_dimensions"), + nb::arg("storage_data_type") = StorageDataType::Float32, LOAD_DOCSTRING); index.def_static( "load", [](const std::string filename) -> std::shared_ptr { - py::gil_scoped_release release; + nb::gil_scoped_release release; return loadTypedIndexFromStream( std::make_shared(filename)); }, - py::arg("filename"), LOAD_DOCSTRING); + nb::arg("filename"), LOAD_DOCSTRING); index.def_static( "load", - [](const py::object filelike, const SpaceType space, + [](const nb::object filelike, const SpaceType space, const int num_dimensions, const StorageDataType storageDataType) -> std::shared_ptr { if (!isReadableFileLike(filelike)) { - throw py::type_error( - "Expected either a filename or a file-like object (with " - "read, seek, seekable, and tell methods), but received: " + - filelike.attr("__repr__")().cast()); + throw nb::type_error( + ("Expected either a filename or a file-like object (with " + "read, seek, seekable, and tell methods), but received: " + + nb::cast(filelike.attr("__repr__")())) + .c_str()); } auto inputStream = std::make_shared(filelike); - py::gil_scoped_release release; + nb::gil_scoped_release release; std::unique_ptr metadata = voyager::Metadata::loadFromStream(inputStream); @@ -1047,23 +1080,24 @@ of Voyager prior to v1.3. throw std::runtime_error("Unknown storage data type received!"); } }, - py::arg("file_like"), py::arg("space"), py::arg("num_dimensions"), - py::arg("storage_data_type") = StorageDataType::Float32, LOAD_DOCSTRING); + nb::arg("file_like"), nb::arg("space"), nb::arg("num_dimensions"), + nb::arg("storage_data_type") = StorageDataType::Float32, LOAD_DOCSTRING); index.def_static( "load", - [](const py::object filelike) -> std::shared_ptr { + [](const nb::object filelike) -> std::shared_ptr { if (!isReadableFileLike(filelike)) { - throw py::type_error( - "Expected either a filename or a file-like object (with " - "read, seek, seekable, and tell methods), but received: " + - filelike.attr("__repr__")().cast()); + throw nb::type_error( + ("Expected either a filename or a file-like object (with " + "read, seek, seekable, and tell methods), but received: " + + nb::cast(filelike.attr("__repr__")())) + .c_str()); } auto inputStream = std::make_shared(filelike); - py::gil_scoped_release release; + nb::gil_scoped_release release; return loadTypedIndexFromStream(inputStream); }, - py::arg("file_like"), LOAD_DOCSTRING); + nb::arg("file_like"), LOAD_DOCSTRING); } diff --git a/python/src/cpp b/python/src/cpp new file mode 120000 index 00000000..747405d2 --- /dev/null +++ b/python/src/cpp @@ -0,0 +1 @@ +../../cpp \ No newline at end of file diff --git a/python/src/voyager/__init__.py b/python/src/voyager/__init__.py new file mode 100644 index 00000000..65f430f6 --- /dev/null +++ b/python/src/voyager/__init__.py @@ -0,0 +1 @@ +from .voyager_ext import * # noqa: F403 diff --git a/python/tests/test_index_creation.py b/python/tests/test_index_creation.py index 5ddaa0f4..a43a2084 100644 --- a/python/tests/test_index_creation.py +++ b/python/tests/test_index_creation.py @@ -101,7 +101,7 @@ def test_create_and_query( assert labels[0] == i assert distances[0] < (distance_tolerance * num_dimensions) - labels, _ = index.query(input_data[0], k=len(ids)) + labels, _ = index.query(list(input_data[0]), k=len(ids)) assert set(ids) == set(labels) output_file = tmp_path / "index.voy" diff --git a/python/tests/test_load_indices.py b/python/tests/test_load_indices.py index ad247896..9b8f5f3d 100644 --- a/python/tests/test_load_indices.py +++ b/python/tests/test_load_indices.py @@ -143,7 +143,7 @@ def test_v1_indices_must_have_no_parameters_or_must_match(load_from_stream: bool ( b"VOYA" # Header b"\x01\x00\x00\x00" # File version - b"\x0A\x00\x00\x00" # Number of dimensions (10) + b"\x0a\x00\x00\x00" # Number of dimensions (10) b"\x00" # Space type b"\x20" + struct.pack("f", 0) # Storage data type and maximum norm @@ -153,7 +153,7 @@ def test_v1_indices_must_have_no_parameters_or_must_match(load_from_stream: bool ( b"VOYA" # Header b"\x01\x00\x00\x00" # File version - b"\x0A\x00\x00\x00" # Number of dimensions (10) + b"\x0a\x00\x00\x00" # Number of dimensions (10) b"\x00" # Space type b"\x20" # Storage data type + struct.pack("f", 0) # maximum norm @@ -178,12 +178,12 @@ def test_v1_indices_must_have_no_parameters_or_must_match(load_from_stream: bool ( b"VOYA" # Header b"\x01\x00\x00\x00" # File version - b"\x0A\x00\x00\x00" # Number of dimensions (10) + b"\x0a\x00\x00\x00" # Number of dimensions (10) b"\x00" # Space type b"\x20" # Storage data type + struct.pack("f", 0) # maximum norm + b"\x00" # Use order-preserving transform - b"\x00\x00\x00\xFF\x00\x00\x00\x00" # offsetLevel0_ + b"\x00\x00\x00\xff\x00\x00\x00\x00" # offsetLevel0_ b"\x01\x00\x00\x00\x00\x00\x00\x00" # max_elements_ b"\x01\x00\x00\x00\x00\x00\x00\x00" # cur_element_count b"\x34\x00\x00\x00\x00\x00\x00\x00" # size_data_per_element_ @@ -203,7 +203,7 @@ def test_v1_indices_must_have_no_parameters_or_must_match(load_from_stream: bool ( b"VOYA" # Header b"\x01\x00\x00\x00" # File version - b"\x0A\x00\x00\x00" # Number of dimensions (10) + b"\x0a\x00\x00\x00" # Number of dimensions (10) b"\x00" # Space type b"\x20" # Storage data type + struct.pack("f", 0) # maximum norm @@ -229,7 +229,7 @@ def test_v1_indices_must_have_no_parameters_or_must_match(load_from_stream: bool ( b"VOYA" # Header b"\x01\x00\x00\x00" # File version - b"\x0A\x00\x00\x00" # Number of dimensions (10) + b"\x0a\x00\x00\x00" # Number of dimensions (10) b"\x00" # Space type b"\x20" # Storage data type + struct.pack("f", 0) # maximum norm @@ -284,7 +284,7 @@ def test_fuzz(seed: int, with_valid_header: bool, offset_level_0: int): random_data.write( b"VOYA" # Header b"\x01\x00\x00\x00" # File version - b"\x0A\x00\x00\x00" # Number of dimensions (10) + b"\x0a\x00\x00\x00" # Number of dimensions (10) b"\x00" # Space type b"\x20" # Storage data type ) diff --git a/python/tox.ini b/python/tox.ini index 4f6f0a34..0a201149 100644 --- a/python/tox.ini +++ b/python/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py,lint,check-formatting +envlist = py,check-formatting skipsdist = True usedevelop = True @@ -15,33 +15,17 @@ commands = [testenv:check-formatting] basepython = python3 -deps = - black - clang-format==14.0.6 +deps = ruff skip_install = true -commands = - black voyager tests --diff --check --line-length 120 +commands = ruff check src/voyager tests --diff [testenv:format] basepython = python3 -deps = - black - clang-format==14.0.6 +deps = ruff skip_install = true commands = - black voyager tests --line-length 120 - -[testenv:lint] -basepython = python3 -deps = flake8 -skip_install = true -commands = flake8 - -[flake8] -show-source = true -max-line-length = 120 -ignore = W503,E203 -exclude = .venv,.tox,.git,dist,doc,*.egg,build + ruff format --diff src/voyager tests + ruff check --fix src/voyager tests [pytest] addopts = diff --git a/python/voyager/__init__.pyi b/python/voyager/__init__.pyi deleted file mode 100644 index e64e01b9..00000000 --- a/python/voyager/__init__.pyi +++ /dev/null @@ -1,889 +0,0 @@ -from __future__ import annotations -import voyager - -import typing - -original_overload = typing.overload -__OVERLOADED_DOCSTRINGS = {} - -def patch_overload(func): - original_overload(func) - if func.__doc__: - __OVERLOADED_DOCSTRINGS[func.__qualname__] = func.__doc__ - else: - func.__doc__ = __OVERLOADED_DOCSTRINGS.get(func.__qualname__) - if func.__doc__: - # Work around the fact that pybind11-stubgen generates - # duplicate docstrings sometimes, once for each overload: - while func.__doc__[len(func.__doc__) // 2 :].strip() == func.__doc__[: -len(func.__doc__) // 2].strip(): - func.__doc__ = func.__doc__[len(func.__doc__) // 2 :].strip() - return func - -typing.overload = patch_overload - -from typing_extensions import Literal -from enum import Enum -import numpy - -_Shape = typing.Tuple[int, ...] - -__all__ = [ - "Cosine", - "E4M3", - "E4M3Index", - "E4M3T", - "Euclidean", - "Float32", - "Float8", - "Float8Index", - "FloatIndex", - "Index", - "InnerProduct", - "LabelSetView", - "Space", - "StorageDataType", -] - -class Space(Enum): - """ - The method used to calculate the distance between vectors. - """ - - Euclidean = 0 # fmt: skip - """ - Euclidean distance; also known as L2 distance. The square root of the sum of the squared differences between each element of each vector. - """ - InnerProduct = 1 # fmt: skip - """ - Inner product distance. - """ - Cosine = 2 # fmt: skip - """ - Cosine distance; also known as normalized inner product. - """ - -class StorageDataType(Enum): - """ - The data type used to store vectors in memory and on-disk. - - The :py:class:`StorageDataType` used for an :py:class:`Index` directly determines - its memory usage, disk space usage, and recall. Both :py:class:`Float8` and - :py:class:`E4M3` data types use 8 bits (1 byte) per dimension per vector, reducing - memory usage and index size by a factor of 4 compared to :py:class:`Float32`. - """ - - Float8 = 16 # fmt: skip - """ - 8-bit fixed-point decimal values. All values must be within [-1, 1.00787402]. - """ - Float32 = 32 # fmt: skip - """ - 32-bit floating point (default). - """ - E4M3 = 48 # fmt: skip - """ - 8-bit floating point with a range of [-448, 448], from the paper "FP8 Formats for Deep Learning" by Micikevicius et al. - - .. warning:: - Using E4M3 with the Cosine :py:class:`Space` may cause some queries to return negative distances due to the reduced floating-point precision. While confusing, these negative distances still result in a correct ordering between results. - """ - -Cosine: voyager.Space # value = -E4M3: voyager.StorageDataType # value = -Euclidean: voyager.Space # value = -Float32: voyager.StorageDataType # value = -Float8: voyager.StorageDataType # value = -InnerProduct: voyager.Space # value = - -class Index: - """ - A nearest-neighbor search index containing vector data (i.e. lists of - floating-point values, each list labeled with a single integer ID). - - Think of a Voyager :py:class:`Index` as a ``Dict[int, List[float]]`` - (a dictionary mapping integers to lists of floats), where a - :py:meth:`query` method allows finding the *k* nearest ``int`` keys - to a provided ``List[float]`` query vector. - - .. warning:: - Voyager is an **approximate** nearest neighbor index package, which means - that each call to the :py:meth:`query` method may return results that - are *approximately* correct. The metric used to gauge the accuracy - of a Voyager :py:meth:`query` is called - `recall `_. Recall - measures the percentage of correct results returned per - :py:meth:`query`. - - Various parameters documented below (like ``M``, ``ef_construction``, - and ``ef``) may affect the recall of queries. Usually, increasing recall - requires either increasing query latency, increasing memory usage, - increasing index creation time, or all of the above. - - - Voyager indices support insertion, lookup, and deletion of vectors. - - Calling the :py:class:`Index` constructor will return an object of one - of three classes: - - - :py:class:`FloatIndex`, which uses 32-bit precision for all data - - :py:class:`Float8Index`, which uses 8-bit fixed-point precision and requires all vectors to be within the bounds [-1, 1] - - :py:class:`E4M3Index`, which uses 8-bit floating-point precision and requires all vectors to be within the bounds [-448, 448] - - Args: - space: - The :py:class:`Space` to use to calculate the distance between vectors, - :py:class:`Space.Cosine` (cosine distance). - - The choice of distance to use usually depends on the kind of vector - data being inserted into the index. If your vectors are usually compared - by measuring the cosine distance between them, use :py:class:`Space.Cosine`. - - num_dimensions: - The number of dimensions present in each vector added to this index. - Each vector in the index must have the same number of dimensions. - - M: - The number of connections between nodes in the tree's internal data structure. - Larger values give better recall, but use more memory. This parameter cannot - be changed after the index is instantiated. - - ef_construction: - The number of vectors to search through when inserting a new vector into - the index. Higher values make index construction slower, but give better - recall. This parameter cannot be changed after the index is instantiated. - - random_seed: - The seed (initial value) of the random number generator used when - constructing this index. Byte-for-byte identical indices can be created - by setting this value to a known value and adding vectors to the index - one-at-a-time (to avoid nondeterministic ordering due to multi-threaded - insertion). - - max_elements: - The maximum size of the index at construction time. Indices can be resized - (and are automatically resized when :py:meth:`add_item` or - :py:meth:`add_items` is called) so this value is only useful if the exact - number of elements that will be added to this index is known in advance. - """ - - def __contains__(self, id: int) -> bool: - """ - Check to see if a provided vector's ID is present in this index. - - Returns true iff the provided integer ID has a corresponding (non-deleted) vector in this index. - Use the ``in`` operator to call this method:: - - 1234 in index # => returns True or False - """ - - def __len__(self) -> int: - """ - Returns the number of non-deleted vectors in this index. - - Use the ``len`` operator to call this method:: - - len(index) # => 1234 - - .. note:: - This value may differ from :py:attr:`num_elements` if elements have been deleted. - """ - - @classmethod - def __new__( - cls, - space: Space, - num_dimensions: int, - M: int = 12, - ef_construction: int = 200, - random_seed: int = 1, - max_elements: int = 1, - storage_data_type: StorageDataType = StorageDataType.Float32, - ) -> Index: - """ - Create a new Voyager nearest-neighbor search index with the provided arguments. - - See documentation for :py:meth:`Index.__init__` for details on required arguments. - """ - - def add_item( - self, - vector: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]], - id: typing.Optional[int] = None, - ) -> int: - """ - Add a vector to this index. - - Args: - vector: A 32-bit floating-point NumPy array, with shape ``(num_dimensions,)``. - - If using the :py:class:`Space.Cosine` :py:class:`Space`, this vector will be normalized - before insertion. If using a :py:class:`StorageDataType` other than - :py:class:`StorageDataType.Float32`, the vector will be converted to the lower-precision - data type *after* normalization. - - id: An optional ID to assign to this vector. - If not provided, this vector's ID will automatically be generated based on the - number of elements already in this index. - - Returns: - The ID that was assigned to this vector (either auto-generated or provided). - - .. warning:: - If calling :py:meth:`add_item` in a loop, consider batching your - calls by using :py:meth:`add_items` instead, which will be faster. - """ - - def add_items( - self, - vectors: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]], - ids: typing.Optional[typing.List[int]] = None, - num_threads: int = -1, - ) -> typing.List[int]: - """ - Add multiple vectors to this index simultaneously. - - This method may be faster than calling :py:meth:`add_items` multiple times, - as passing a batch of vectors helps avoid Python's Global Interpreter Lock. - - Args: - vectors: A 32-bit floating-point NumPy array, with shape ``(num_vectors, num_dimensions)``. - - If using the :py:class:`Space.Cosine` :py:class:`Space`, these vectors will be normalized - before insertion. If using a :py:class:`StorageDataType` other than - :py:class:`StorageDataType.Float32`, these vectors will be converted to the lower-precision - data type *after* normalization. - - id: An optional list of IDs to assign to these vectors. - If provided, this list must be identical in length to the first dimension of ``vectors``. - If not provided, each vector's ID will automatically be generated based on the - number of elements already in this index. - - num_threads: Up to ``num_threads`` will be started to perform insertions in parallel. - If ``vectors`` contains only one query vector, ``num_threads`` will have no effect. - By default, one thread will be spawned per CPU core. - Returns: - The IDs that were assigned to the provided vectors (either auto-generated or provided), in the - same order as the provided vectors. - """ - - def as_bytes(self) -> bytes: - """ - Returns the contents of this index as a :py:class:`bytes` object. The resulting object - will contain the same data as if this index was serialized to disk and then read back - into memory again. - - .. warning:: - This may be extremely large (many gigabytes) if the index is sufficiently large. - To save to disk without allocating this entire bytestring, use :py:meth:`save`. - - .. note:: - This method can also be called by passing this object to the ``bytes(...)`` - built-in function:: - - index: voyager.Index = ... - serialized_index = bytes(index) - """ - - def get_distance(self, a: typing.List[float], b: typing.List[float]) -> float: - """ - Get the distance between two provided vectors. The vectors must share the dimensionality of the index. - """ - - def get_vector(self, id: int) -> numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]: - """ - Get the vector stored in this index at the provided integer ID. - If no such vector exists, a :py:exc:`KeyError` will be thrown. - - .. note:: - This method can also be called by using the subscript operator - (i.e. ``my_index[1234]``). - - .. warning:: - If using the :py:class:`Cosine` :py:class:`Space`, this method - will return a normalized version of the vector that was - originally added to this index. - """ - - def get_vectors(self, ids: typing.List[int]) -> numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]]: - """ - Get one or more vectors stored in this index at the provided integer IDs. - If one or more of the provided IDs cannot be found in the index, a - :py:exc:`KeyError` will be thrown. - - .. warning:: - If using the :py:class:`Cosine` :py:class:`Space`, this method - will return normalized versions of the vector that were - originally added to this index. - """ - - @staticmethod - @typing.overload - def load( - filename: str, - space: Space, - num_dimensions: int, - storage_data_type: StorageDataType = StorageDataType.Float32, - ) -> Index: - """ - Load an index from a file on disk, or a Python file-like object. - - If provided a string as a first argument, the string is assumed to refer to a file - on the local filesystem. Loading of an index from this file will be done in native - code, without holding Python's Global Interpreter Lock (GIL), allowing for performant - loading of multiple indices simultaneously. - - If provided a file-like object as a first argument, the provided object must have - ``read``, ``seek``, ``tell``, and ``seekable`` methods, and must return - binary data (i.e.: ``open(..., \"rb\")`` or ``io.BinaryIO``, etc.). - - The additional arguments for :py:class:`Space`, ``num_dimensions``, and - :py:class:`StorageDataType` allow for loading of index files created with versions - of Voyager prior to v1.3. - - .. warning:: - Loading an index from a file-like object will not release the GIL. - However, chunks of data of up to 100MB in size will be read from the file-like - object at once, hopefully reducing the impact of the GIL. - - - Load an index from a file on disk, or a Python file-like object. - - If provided a string as a first argument, the string is assumed to refer to a file - on the local filesystem. Loading of an index from this file will be done in native - code, without holding Python's Global Interpreter Lock (GIL), allowing for performant - loading of multiple indices simultaneously. - - If provided a file-like object as a first argument, the provided object must have - ``read``, ``seek``, ``tell``, and ``seekable`` methods, and must return - binary data (i.e.: ``open(..., \"rb\")`` or ``io.BinaryIO``, etc.). - - The additional arguments for :py:class:`Space`, ``num_dimensions``, and - :py:class:`StorageDataType` allow for loading of index files created with versions - of Voyager prior to v1.3. - - .. warning:: - Loading an index from a file-like object will not release the GIL. - However, chunks of data of up to 100MB in size will be read from the file-like - object at once, hopefully reducing the impact of the GIL. - - - Load an index from a file on disk, or a Python file-like object. - - If provided a string as a first argument, the string is assumed to refer to a file - on the local filesystem. Loading of an index from this file will be done in native - code, without holding Python's Global Interpreter Lock (GIL), allowing for performant - loading of multiple indices simultaneously. - - If provided a file-like object as a first argument, the provided object must have - ``read``, ``seek``, ``tell``, and ``seekable`` methods, and must return - binary data (i.e.: ``open(..., \"rb\")`` or ``io.BinaryIO``, etc.). - - The additional arguments for :py:class:`Space`, ``num_dimensions``, and - :py:class:`StorageDataType` allow for loading of index files created with versions - of Voyager prior to v1.3. - - .. warning:: - Loading an index from a file-like object will not release the GIL. - However, chunks of data of up to 100MB in size will be read from the file-like - object at once, hopefully reducing the impact of the GIL. - - - Load an index from a file on disk, or a Python file-like object. - - If provided a string as a first argument, the string is assumed to refer to a file - on the local filesystem. Loading of an index from this file will be done in native - code, without holding Python's Global Interpreter Lock (GIL), allowing for performant - loading of multiple indices simultaneously. - - If provided a file-like object as a first argument, the provided object must have - ``read``, ``seek``, ``tell``, and ``seekable`` methods, and must return - binary data (i.e.: ``open(..., \"rb\")`` or ``io.BinaryIO``, etc.). - - The additional arguments for :py:class:`Space`, ``num_dimensions``, and - :py:class:`StorageDataType` allow for loading of index files created with versions - of Voyager prior to v1.3. - - .. warning:: - Loading an index from a file-like object will not release the GIL. - However, chunks of data of up to 100MB in size will be read from the file-like - object at once, hopefully reducing the impact of the GIL. - """ - - @staticmethod - @typing.overload - def load(filename: str) -> Index: ... - @staticmethod - @typing.overload - def load( - file_like: typing.BinaryIO, - space: Space, - num_dimensions: int, - storage_data_type: StorageDataType = StorageDataType.Float32, - ) -> Index: ... - @staticmethod - @typing.overload - def load(file_like: typing.BinaryIO) -> Index: ... - def mark_deleted(self, id: int) -> None: - """ - Mark an ID in this index as deleted. - - Deleted IDs will not show up in the results of calls to :py:meth:`query`, - but will still take up space in the index, and will slow down queries. - - .. note:: - To delete one or more vectors from a :py:class:`Index` without - incurring any query-time performance penalty, recreate the index - from scratch without the vectors you want to remove:: - - original: Index = ... - ids_to_remove: Set[int] = ... - - recreated = Index( - original.space, - original.num_dimensions, - original.M, - original.ef_construction, - max_elements=len(original), - storage_data_type=original.storage_data_type - ) - ordered_ids = list(set(original.ids) - ids_to_remove) - recreated.add_items(original.get_vectors(ordered_ids), ordered_ids) - - .. note:: - This method can also be called by using the ``del`` operator:: - - index: voyager.Index = ... - del index[1234] # deletes the ID 1234 - """ - - def query( - self, - vectors: numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]], - k: int = 1, - num_threads: int = -1, - query_ef: int = -1, - ) -> typing.Tuple[ - numpy.ndarray[typing.Any, numpy.dtype[numpy.uint64]], - numpy.ndarray[typing.Any, numpy.dtype[numpy.float32]], - ]: - """ - Query this index to retrieve the ``k`` nearest neighbors of the provided vectors. - - Args: - vectors: A 32-bit floating-point NumPy array, with shape ``(num_dimensions,)`` - *or* ``(num_queries, num_dimensions)``. - - k: The number of neighbors to return. - - num_threads: If ``vectors`` contains more than one query vector, up - to ``num_threads`` will be started to perform queries - in parallel. If ``vectors`` contains only one query vector, - ``num_threads`` will have no effect. Defaults to using one - thread per CPU core. - - query_ef: The depth of search to perform for this query. Up to ``query_ef`` - candidates will be searched through to try to find up the ``k`` - nearest neighbors per query vector. - - Returns: - A tuple of ``(neighbor_ids, distances)``. If a single query vector was provided, - both ``neighbor_ids`` and ``distances`` will be of shape ``(k,)``. - - If multiple query vectors were provided, both ``neighbor_ids`` and ``distances`` - will be of shape ``(num_queries, k)``, ordered such that the ``i``-th result - corresponds with the ``i``-th query vector. - - - Examples - -------- - - Query with a single vector:: - - neighbor_ids, distances = index.query(np.array([1, 2, 3, 4, 5]), k=10) - neighbor_ids.shape # => (10,) - distances.shape # => (10,) - - for i, (neighbor_id, distance) in enumerate(zip(neighbor_ids, distances)): - print(f"{i}-th closest neighbor is {neighbor_id}, {distance} away") - - Query with multiple vectors simultaneously:: - - query_vectors = np.array([ - [1, 2, 3, 4, 5], - [6, 7, 8, 9, 10] - ]) - all_neighbor_ids, all_distances = index.query(query_vectors, k=10) - all_neighbor_ids.shape # => (2, 10) - all_distances.shape # => (2, 10) - - for query_vector, query_neighbor_ids, query_distances in \\ - zip(query_vectors, all_neighbor_ids, all_distances): - print(f"For query vector {query_vector}:") - for i, (neighbor_ids, distances) in enumerate(query_neighbor_ids, query_distances): - print(f"\t{i}-th closest neighbor is {neighbor_id}, {distance} away") - - .. warning:: - - If using E4M3 storage with the Cosine :py:class:`Space`, some queries may return - negative distances due to the reduced floating-point precision of the storage - data type. While confusing, these negative distances still result in a correct - ordering between results. - """ - - def resize(self, new_size: int) -> None: - """ - Resize this index, allocating space for up to ``new_size`` elements to - be stored. This changes the :py:attr:`max_elements` property and may - cause this :py:class:`Index` object to use more memory. This is a fairly - expensive operation and prevents queries from taking place while the - resize is in process. - - Note that the size of an index is a **soft limit**; if a call to - :py:meth:`add_item` or :py:meth:`add_items` would cause - :py:attr:`num_elements` to exceed :py:attr:`max_elements`, the - index will automatically be resized to accommodate the new elements. - - Calling :py:meth:`resize` *once* before adding vectors to the - index will speed up index creation if the number of elements is known - in advance, as subsequent calls to :py:meth:`add_items` will not need - to resize the index on-the-fly. - """ - - @typing.overload - def save(self, output_path: str) -> None: - """ - Save this index to the provided file path or file-like object. - - If provided a file path, Voyager will release Python's Global Interpreter Lock (GIL) - and will write to the provided file. - - If provided a file-like object, Voyager will *not* release the GIL, but will pass - one or more chunks of data (of up to 100MB each) to the provided object for writing. - - - - Save this index to the provided file path or file-like object. - - If provided a file path, Voyager will release Python's Global Interpreter Lock (GIL) - and will write to the provided file. - - If provided a file-like object, Voyager will *not* release the GIL, but will pass - one or more chunks of data (of up to 100MB each) to the provided object for writing. - - """ - - @typing.overload - def save(self, file_like: typing.BinaryIO) -> None: ... - def unmark_deleted(self, id: int) -> None: - """ - Unmark an ID in this index as deleted. - - Once unmarked as deleted, an existing ID will show up in the results of - calls to :py:meth:`query` again. - """ - - @property - def M(self) -> int: - """ - The number of connections between nodes in the tree's internal data structure. - - Larger values give better recall, but use more memory. This parameter cannot be changed - after the index is instantiated. - - - """ - - @property - def ef(self) -> int: - """ - The default number of vectors to search through when calling :py:meth:`query`. - - Higher values make queries slower, but give better recall. - - .. warning:: - Changing this parameter affects all calls to :py:meth:`query` made after this - change is made. - - This parameter can be overridden on a per-query basis when calling :py:meth:`query` - by passing the ``query_ef`` parameter, allowing finer-grained control over query - speed and recall. - - - """ - - @ef.setter - def ef(self, arg1: int) -> None: - """ - The default number of vectors to search through when calling :py:meth:`query`. - - Higher values make queries slower, but give better recall. - - .. warning:: - Changing this parameter affects all calls to :py:meth:`query` made after this - change is made. - - This parameter can be overridden on a per-query basis when calling :py:meth:`query` - by passing the ``query_ef`` parameter, allowing finer-grained control over query - speed and recall. - """ - - @property - def ef_construction(self) -> int: - """ - The number of vectors that this index searches through when inserting a new vector into - the index. Higher values make index construction slower, but give better recall. This - parameter cannot be changed after the index is instantiated. - - - """ - - @property - def ids(self) -> LabelSetView: - """ - A set-like object containing the integer IDs stored as 'keys' in this index. - - Use these indices to iterate over the vectors in this index, or to check for inclusion of a - specific integer ID in this index:: - - index: voyager.Index = ... - - 1234 in index.ids # => true, this ID is present in the index - 1234 in index # => also works! - - len(index.ids) # => returns the number of non-deleted vectors - len(index) # => also returns the number of valid labels - - for _id in index.ids: - print(_id) # print all labels - - - """ - - @property - def max_elements(self) -> int: - """ - The maximum number of elements that can be stored in this index. - - If :py:attr:`max_elements` is much larger than - :py:attr:`num_elements`, this index may use more memory - than necessary. (Call :py:meth:`resize` to reduce the - memory footprint of this index.) - - This is a **soft limit**; if a call to :py:meth:`add_item` or - :py:meth:`add_items` would cause :py:attr:`num_elements` to exceed - :py:attr:`max_elements`, the index will automatically be resized - to accommodate the new elements. - - Note that assigning to this property is functionally identical to - calling :py:meth:`resize`. - - - """ - - @max_elements.setter - def max_elements(self, arg1: int) -> None: - """ - The maximum number of elements that can be stored in this index. - - If :py:attr:`max_elements` is much larger than - :py:attr:`num_elements`, this index may use more memory - than necessary. (Call :py:meth:`resize` to reduce the - memory footprint of this index.) - - This is a **soft limit**; if a call to :py:meth:`add_item` or - :py:meth:`add_items` would cause :py:attr:`num_elements` to exceed - :py:attr:`max_elements`, the index will automatically be resized - to accommodate the new elements. - - Note that assigning to this property is functionally identical to - calling :py:meth:`resize`. - """ - - @property - def num_dimensions(self) -> int: - """ - The number of dimensions in each vector stored by this index. - - - """ - - @property - def num_elements(self) -> int: - """ - The number of elements (vectors) currently stored in this index. - - Note that the number of elements will not decrease if any elements are - deleted from the index; those deleted elements simply become invisible. - - - """ - - @property - def space(self) -> Space: - """ - Return the :py:class:`Space` used to calculate distances between vectors. - - - """ - - @property - def storage_data_type(self) -> StorageDataType: - """ - The :py:class:`StorageDataType` used to store vectors in this :py:class:`Index`. - - - """ - pass - -class E4M3T: - """ - An 8-bit floating point data type with reduced precision and range. This class wraps a C++ struct and should probably not be used directly. - """ - - def __float__(self) -> float: - """ - Cast the given E4M3 number to a float. - """ - - @typing.overload - def __init__(self, value: float) -> None: - """ - Create an E4M3 number given a floating-point value. If out of range, the value will be clipped. - - Create an E4M3 number given a sign, exponent, and mantissa. If out of range, the values will be clipped. - """ - - @typing.overload - def __init__(self, sign: int, exponent: int, mantissa: int) -> None: ... - def __repr__(self) -> str: ... - @staticmethod - def from_char(value: int) -> E4M3T: - """ - Create an E4M3 number given a raw 8-bit value. - """ - - @property - def exponent(self) -> int: - """ - The effective exponent of this E4M3 number, expressed as an integer. - - - """ - - @property - def mantissa(self) -> float: - """ - The effective mantissa (non-exponent part) of this E4M3 number, expressed as an integer. - - - """ - - @property - def raw_exponent(self) -> int: - """ - The raw value of the exponent part of this E4M3 number, expressed as an integer. - - - """ - - @property - def raw_mantissa(self) -> int: - """ - The raw value of the mantissa (non-exponent part) of this E4M3 number, expressed as a floating point value. - - - """ - - @property - def sign(self) -> int: - """ - The sign bit from this E4M3 number. Will be ``1`` if the number is negative, ``0`` otherwise. - - - """ - - @property - def size(self) -> int: - """ - The number of bytes used to represent this (C++) instance in memory. - - - """ - pass - -class Float8Index(Index): - """ - An :py:class:`Index` that uses fixed-point 8-bit storage. - """ - - def __init__( - self, - space: Space, - num_dimensions: int, - M: int = 16, - ef_construction: int = 200, - random_seed: int = 1, - max_elements: int = 1, - ) -> None: - """ - Create a new, empty index. - """ - - def __repr__(self) -> str: ... - pass - -class FloatIndex(Index): - """ - An :py:class:`Index` that uses full-precision 32-bit floating-point storage. - """ - - def __init__( - self, - space: Space, - num_dimensions: int, - M: int = 16, - ef_construction: int = 200, - random_seed: int = 1, - max_elements: int = 1, - ) -> None: - """ - Create a new, empty index. - """ - - def __repr__(self) -> str: ... - pass - -class E4M3Index(Index): - """ - An :py:class:`Index` that uses floating-point 8-bit storage. - """ - - def __init__( - self, - space: Space, - num_dimensions: int, - M: int = 16, - ef_construction: int = 200, - random_seed: int = 1, - max_elements: int = 1, - ) -> None: - """ - Create a new, empty index. - """ - - def __repr__(self) -> str: ... - pass - -class LabelSetView: - """ - A read-only set-like object containing 64-bit integers. Use this object like a regular Python :py:class:`set` object, by either iterating through it, or checking for membership with the ``in`` operator. - """ - - @typing.overload - def __contains__(self, id: int) -> bool: ... - @typing.overload - def __contains__(self, id: object) -> bool: ... - def __iter__(self) -> object: ... - def __len__(self) -> int: ... - def __repr__(self) -> str: ... - pass diff --git a/python/voyager/version.py b/python/voyager/version.py deleted file mode 100644 index 75221b28..00000000 --- a/python/voyager/version.py +++ /dev/null @@ -1,22 +0,0 @@ -#! /usr/bin/env python -# -# Copyright 2022-2023 Spotify AB -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -MAJOR = 2 -MINOR = 1 -PATCH = 0 - -__version__ = "%d.%d.%d" % (MAJOR, MINOR, PATCH) From 8e724398a57d4eca63d6e0dc2cd051d172fea95a Mon Sep 17 00:00:00 2001 From: Peter Sobot Date: Fri, 31 Jan 2025 09:17:00 -0500 Subject: [PATCH 52/52] Update upload-artifact@v3 to upload-artifact@v4. --- .github/workflows/all.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/all.yml b/.github/workflows/all.yml index c44d597c..a37f34d8 100644 --- a/.github/workflows/all.yml +++ b/.github/workflows/all.yml @@ -339,7 +339,7 @@ jobs: CIBW_REPAIR_WHEEL_COMMAND_LINUX: pip install auditwheel-symbols && (auditwheel repair -w {dest_dir} {wheel} || auditwheel-symbols --manylinux 2010 {wheel}) CIBW_TEST_SKIP: "*aarch64" MACOSX_DEPLOYMENT_TARGET: "10.14" - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: if-no-files-found: error name: python-wheels @@ -378,7 +378,7 @@ jobs: run: mvn --batch-mode package env: MAVEN_GPG_PASSPHRASE: ${{ secrets.SONATYPE_PASSPHRASE }} - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: if-no-files-found: error name: java-${{ matrix.os }} @@ -421,7 +421,7 @@ jobs: objdump -T combined-jar/linux-x64/libvoyager.so | grep GLIBCXX | sed 's/.*GLIBCXX_\([.0-9]*\).*/\1/g' | cat - <(echo 3\.4\.22) | sort -Vu | tail -n 1 | grep 3\.4\.22 || (echo "Expected linux-x64 binary to require at most glibc++ 3.4.22. Ensure the dockcross container has not been updated." && false) zip -r $(ls java-* | grep jar | tail -n 1) combined-jar/* - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: if-no-files-found: error name: java-all-platforms