diff --git a/aws-s3-async/Aws_s3_async/.dummy b/aws-s3-async/Aws_s3_async/.dummy
deleted file mode 100644
index e69de29..0000000
diff --git a/aws-s3-async/Aws_s3_async/Credentials/Helper/index.html b/aws-s3-async/Aws_s3_async/Credentials/Helper/index.html
index e0a8578..68fa71c 100644
--- a/aws-s3-async/Aws_s3_async/Credentials/Helper/index.html
+++ b/aws-s3-async/Aws_s3_async/Credentials/Helper/index.html
@@ -1,5 +1,5 @@
-
Helper (aws-s3-async.Aws_s3_async.Credentials.Helper) Up – aws-s3-async » Aws_s3_async » Credentials » HelperModule Credentials.Helper
diff --git a/aws-s3-async/Aws_s3_async/Credentials/Iam/index.html b/aws-s3-async/Aws_s3_async/Credentials/Iam/index.html
index e885b45..eea6ad5 100644
--- a/aws-s3-async/Aws_s3_async/Credentials/Iam/index.html
+++ b/aws-s3-async/Aws_s3_async/Credentials/Iam/index.html
@@ -1,2 +1,2 @@
-Iam (aws-s3-async.Aws_s3_async.Credentials.Iam) Up – aws-s3-async » Aws_s3_async » Credentials » Iam
\ No newline at end of file
+Iam (aws-s3-async.Aws_s3_async.Credentials.Iam) Up – aws-s3-async » Aws_s3_async » Credentials » Iam
diff --git a/aws-s3-async/Aws_s3_async/Credentials/Local/index.html b/aws-s3-async/Aws_s3_async/Credentials/Local/index.html
index f819455..c1c150b 100644
--- a/aws-s3-async/Aws_s3_async/Credentials/Local/index.html
+++ b/aws-s3-async/Aws_s3_async/Credentials/Local/index.html
@@ -1,5 +1,5 @@
-Local (aws-s3-async.Aws_s3_async.Credentials.Local) Up – aws-s3-async » Aws_s3_async » Credentials » Local
diff --git a/aws-s3-async/Aws_s3_async/Credentials/index.html b/aws-s3-async/Aws_s3_async/Credentials/index.html
index b7c31a5..2ab9d84 100644
--- a/aws-s3-async/Aws_s3_async/Credentials/index.html
+++ b/aws-s3-async/Aws_s3_async/Credentials/index.html
@@ -1,2 +1,2 @@
-Credentials (aws-s3-async.Aws_s3_async.Credentials) Up – aws-s3-async » Aws_s3_async » CredentialsModule Aws_s3_async.Credentials
module Local : sig ... end
\ No newline at end of file
+Credentials (aws-s3-async.Aws_s3_async.Credentials) Up – aws-s3-async » Aws_s3_async » CredentialsModule Aws_s3_async.Credentials
Async aware Credentials. For API documentation
include sig ... end
module Local : sig ... end
diff --git a/aws-s3-async/Aws_s3_async/Io/Deferred/Or_error/index.html b/aws-s3-async/Aws_s3_async/Io/Deferred/Or_error/index.html
index 4cbfd50..9d24649 100644
--- a/aws-s3-async/Aws_s3_async/Io/Deferred/Or_error/index.html
+++ b/aws-s3-async/Aws_s3_async/Io/Deferred/Or_error/index.html
@@ -1,2 +1,2 @@
-Or_error (aws-s3-async.Aws_s3_async.Io.Deferred.Or_error) Up – aws-s3-async » Aws_s3_async » Io » Deferred » Or_errortype nonrec 'a t = ( 'a , exn ) Stdlib .result t
val catch : ( unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
\ No newline at end of file
+Or_error (aws-s3-async.Aws_s3_async.Io.Deferred.Or_error) Up – aws-s3-async » Aws_s3_async » Io » Deferred » Or_errortype nonrec 'a t = ('a , exn) Stdlib .result t
val catch : (unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
diff --git a/aws-s3-async/Aws_s3_async/Io/Deferred/index.html b/aws-s3-async/Aws_s3_async/Io/Deferred/index.html
index 13515a5..b4deef5 100644
--- a/aws-s3-async/Aws_s3_async/Io/Deferred/index.html
+++ b/aws-s3-async/Aws_s3_async/Io/Deferred/index.html
@@ -1,5 +1,5 @@
-Deferred (aws-s3-async.Aws_s3_async.Io.Deferred) Up – aws-s3-async » Aws_s3_async » Io » Deferredtype 'a t = 'a Async_kernel .Deferred.t
val after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ( 'a -> 'b ) -> 'b t
val (>>=?) :
- ( 'a , 'c ) Stdlib .result t ->
- ( 'a -> ( 'b , 'c ) Stdlib .result t ) ->
- ( 'b , 'c ) Stdlib .result t
\ No newline at end of file
+Deferred (aws-s3-async.Aws_s3_async.Io.Deferred) Up – aws-s3-async » Aws_s3_async » Io » Deferredtype 'a t = 'a Async_kernel .Deferred.t
val after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ('a -> 'b ) -> 'b t
val (>>=?) :
+ ('a , 'c ) Stdlib .result t ->
+ ('a -> ('b , 'c ) Stdlib .result t ) ->
+ ('b , 'c ) Stdlib .result t
diff --git a/aws-s3-async/Aws_s3_async/Io/Pipe/index.html b/aws-s3-async/Aws_s3_async/Io/Pipe/index.html
index 6ec2808..b5f52ec 100644
--- a/aws-s3-async/Aws_s3_async/Io/Pipe/index.html
+++ b/aws-s3-async/Aws_s3_async/Io/Pipe/index.html
@@ -1,2 +1,2 @@
-Pipe (aws-s3-async.Aws_s3_async.Io.Pipe) Up – aws-s3-async » Aws_s3_async » Io » Pipetype ('a, 'b) pipe = ( 'a , 'b ) Async_kernel .Pipe.t
type 'a writer = 'a Async_kernel .Pipe.Writer.t
type 'a reader = 'a Async_kernel .Pipe.Reader.t
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ( 'a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
\ No newline at end of file
+Pipe (aws-s3-async.Aws_s3_async.Io.Pipe) Up – aws-s3-async » Aws_s3_async » Io » Pipetype ('a, 'b) pipe = ('a , 'b ) Async_kernel .Pipe.t
type 'a writer = 'a Async_kernel .Pipe.Writer.t
type 'a reader = 'a Async_kernel .Pipe.Reader.t
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ('a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
diff --git a/aws-s3-async/Aws_s3_async/Io/index.html b/aws-s3-async/Aws_s3_async/Io/index.html
index 52cac1a..6fd6990 100644
--- a/aws-s3-async/Aws_s3_async/Io/index.html
+++ b/aws-s3-async/Aws_s3_async/Io/index.html
@@ -1,8 +1,8 @@
-Io (aws-s3-async.Aws_s3_async.Io) Up – aws-s3-async » Aws_s3_async » Io
diff --git a/aws-s3-async/Aws_s3_async/S3/Delete_multi/index.html b/aws-s3-async/Aws_s3_async/S3/Delete_multi/index.html
index 77b1f21..66d4a2c 100644
--- a/aws-s3-async/Aws_s3_async/S3/Delete_multi/index.html
+++ b/aws-s3-async/Aws_s3_async/S3/Delete_multi/index.html
@@ -1,2 +1,2 @@
-Delete_multi (aws-s3-async.Aws_s3_async.S3.Delete_multi) Up – aws-s3-async » Aws_s3_async » S3 » Delete_multitype objekt = {
key : string;
version_id : string option ;
}
type error = {
key : string;
version_id : string option ;
code : string;
message : string;
}
type result = {
delete_marker : bool;
delete_marker_version_id : string option ;
deleted : objekt list ;
error : error list ;
}
\ No newline at end of file
+Delete_multi (aws-s3-async.Aws_s3_async.S3.Delete_multi) Up – aws-s3-async » Aws_s3_async » S3 » Delete_multitype objekt = {
key : string;
version_id : string option ;
}
type error = {
key : string;
version_id : string option ;
code : string;
message : string;
}
type result = {
delete_marker : bool;
delete_marker_version_id : string option ;
deleted : objekt list ;
error : error list ;
}
diff --git a/aws-s3-async/Aws_s3_async/S3/Ls/index.html b/aws-s3-async/Aws_s3_async/S3/Ls/index.html
index cd1a065..bd39c05 100644
--- a/aws-s3-async/Aws_s3_async/S3/Ls/index.html
+++ b/aws-s3-async/Aws_s3_async/S3/Ls/index.html
@@ -1,2 +1,2 @@
-Ls (aws-s3-async.Aws_s3_async.S3.Ls) Up – aws-s3-async » Aws_s3_async » S3 » Lsand cont =
| More of ?max_keys:int -> unit -> t
| Done
\ No newline at end of file
+Ls (aws-s3-async.Aws_s3_async.S3.Ls) Up – aws-s3-async » Aws_s3_async » S3 » Lsand cont =
| More of ?max_keys :int -> unit -> t
| Done
diff --git a/aws-s3-async/Aws_s3_async/S3/Multipart_upload/Stream/index.html b/aws-s3-async/Aws_s3_async/S3/Multipart_upload/Stream/index.html
index 1cc837d..f6aec00 100644
--- a/aws-s3-async/Aws_s3_async/S3/Multipart_upload/Stream/index.html
+++ b/aws-s3-async/Aws_s3_async/S3/Multipart_upload/Stream/index.html
@@ -1,11 +1,11 @@
-Stream (aws-s3-async.Aws_s3_async.S3.Multipart_upload.Stream) Up – aws-s3-async » Aws_s3_async » S3 » Multipart_upload » StreamModule Multipart_upload.Stream
val upload_part :
- ( t ->
- part_number:int ->
- ?expect:bool ->
- data:string Io.Pipe.reader ->
- length:int ->
- chunk_size:int ->
+Stream (aws-s3-async.Aws_s3_async.S3.Multipart_upload.Stream) Up – aws-s3-async » Aws_s3_async » S3 » Multipart_upload » StreamModule Multipart_upload.Stream
val upload_part :
+ (t ->
+ part_number :int ->
+ ?expect :bool ->
+ data :string Io.Pipe.reader ->
+ length :int ->
+ chunk_size :int ->
unit ->
- unit result )
- command
\ No newline at end of file
+ unit result )
+ command
diff --git a/aws-s3-async/Aws_s3_async/S3/Multipart_upload/index.html b/aws-s3-async/Aws_s3_async/S3/Multipart_upload/index.html
index 7471339..00bbe8e 100644
--- a/aws-s3-async/Aws_s3_async/S3/Multipart_upload/index.html
+++ b/aws-s3-async/Aws_s3_async/S3/Multipart_upload/index.html
@@ -1,26 +1,26 @@
-Multipart_upload (aws-s3-async.Aws_s3_async.S3.Multipart_upload) Up – aws-s3-async » Aws_s3_async » S3 » Multipart_uploadModule S3.Multipart_upload
val init :
- ( ?content_type:string ->
- ?content_encoding:(string * string) ->
- ?acl:string ->
- ?cache_control:string ->
- bucket:string ->
- key:string ->
+Multipart_upload (aws-s3-async.Aws_s3_async.S3.Multipart_upload) Up – aws-s3-async » Aws_s3_async » S3 » Multipart_uploadModule S3.Multipart_upload
val init :
+ (?content_type :string ->
+ ?content_encoding :(string * string) ->
+ ?acl :string ->
+ ?cache_control :string ->
+ bucket :string ->
+ key :string ->
unit ->
- t result )
- command
val upload_part :
- ( t ->
- part_number:int ->
- ?expect:bool ->
- data:string ->
+ t result )
+ command
val upload_part :
+ (t ->
+ part_number :int ->
+ ?expect :bool ->
+ data :string ->
unit ->
- unit result )
- command
val copy_part :
- ( t ->
- part_number:int ->
- ?range:(int * int) ->
- bucket:string ->
- key:string ->
+ unit result )
+ command
val copy_part :
+ (t ->
+ part_number :int ->
+ ?range :(int * int) ->
+ bucket :string ->
+ key :string ->
unit ->
- unit result )
- command
\ No newline at end of file
+ unit result )
+ command
diff --git a/aws-s3-async/Aws_s3_async/S3/Stream/index.html b/aws-s3-async/Aws_s3_async/S3/Stream/index.html
index 966f718..7d574a6 100644
--- a/aws-s3-async/Aws_s3_async/S3/Stream/index.html
+++ b/aws-s3-async/Aws_s3_async/S3/Stream/index.html
@@ -1,23 +1,23 @@
-Stream (aws-s3-async.Aws_s3_async.S3.Stream) Up – aws-s3-async » Aws_s3_async » S3 » Streamval put :
- ( ?content_type:string ->
- ?content_encoding:string ->
- ?acl:string ->
- ?cache_control:string ->
- ?expect:bool ->
- ?meta_headers:(string * string) list ->
- bucket:string ->
- key:string ->
- data:string Io.Pipe.reader ->
- chunk_size:int ->
- length:int ->
+Stream (aws-s3-async.Aws_s3_async.S3.Stream) Up – aws-s3-async » Aws_s3_async » S3 » Streamval put :
+ (?content_type :string ->
+ ?content_encoding :string ->
+ ?acl :string ->
+ ?cache_control :string ->
+ ?expect :bool ->
+ ?meta_headers :(string * string) list ->
+ bucket :string ->
+ key :string ->
+ data :string Io.Pipe.reader ->
+ chunk_size :int ->
+ length :int ->
unit ->
- etag result )
- command
\ No newline at end of file
+ unit result )
+ command
diff --git a/aws-s3-async/Aws_s3_async/S3/index.html b/aws-s3-async/Aws_s3_async/S3/index.html
index 9237b4c..4af1c56 100644
--- a/aws-s3-async/Aws_s3_async/S3/index.html
+++ b/aws-s3-async/Aws_s3_async/S3/index.html
@@ -1,43 +1,43 @@
-S3 (aws-s3-async.Aws_s3_async.S3) Up – aws-s3-async » Aws_s3_async » S3type storage_class =
| Standard
| Standard_ia
| Onezone_ia
| Reduced_redundancy
| Glacier
type content = {
storage_class : storage_class ;
size : int;
last_modified : float;
key : string;
etag : etag ;
}
type range = {
first : int option ;
last : int option ;
}
val put :
- ( ?content_type:string ->
- ?content_encoding:string ->
- ?acl:string ->
- ?cache_control:string ->
- ?expect:bool ->
- ?meta_headers:(string * string) list ->
- bucket:string ->
- key:string ->
- data:string ->
+S3 (aws-s3-async.Aws_s3_async.S3) Up – aws-s3-async » Aws_s3_async » S3Async aware S3 commands. For API documentation
include sig ... end
type error =
| Redirect of Aws_s3.Region.endpoint
| Throttled
| Unknown of int * string
| Failed of exn
| Forbidden
| Not_found
type storage_class =
| Standard
| Standard_ia
| Onezone_ia
| Reduced_redundancy
| Glacier
type content = {
storage_class : storage_class ;
size : int;
last_modified : float;
key : string;
etag : etag ;
}
type range = {
first : int option ;
last : int option ;
}
val put :
+ (?content_type :string ->
+ ?content_encoding :string ->
+ ?acl :string ->
+ ?cache_control :string ->
+ ?expect :bool ->
+ ?meta_headers :(string * string) list ->
+ bucket :string ->
+ key :string ->
+ data :string ->
unit ->
- etag result )
- command
val get :
+ (?range :range ->
+ bucket :string ->
+ key :string ->
unit ->
- string result )
- command
val delete : ( bucket:string -> key:string -> unit -> unit result ) command
val delete : (bucket :string -> key :string -> unit -> unit result ) command
val ls :
- ( ?start_after:string ->
- ?continuation_token:string ->
- ?prefix:string ->
- ?max_keys:int ->
- bucket:string ->
+ Delete_multi.result result )
+ command
val ls :
+ (?start_after :string ->
+ ?continuation_token :string ->
+ ?prefix :string ->
+ ?max_keys :int ->
+ bucket :string ->
unit ->
- Ls.t )
- command
\ No newline at end of file
+
'a result
diff --git a/aws-s3-async/Aws_s3_async/index.html b/aws-s3-async/Aws_s3_async/index.html
index 7a9e4ee..0703dd1 100644
--- a/aws-s3-async/Aws_s3_async/index.html
+++ b/aws-s3-async/Aws_s3_async/index.html
@@ -1,2 +1,2 @@
-Aws_s3_async (aws-s3-async.Aws_s3_async) Up – aws-s3-async » Aws_s3_async
\ No newline at end of file
+Aws_s3_async (aws-s3-async.Aws_s3_async) Up – aws-s3-async » Aws_s3_async
diff --git a/aws-s3-async/index.html b/aws-s3-async/index.html
index b08d883..750a28d 100644
--- a/aws-s3-async/index.html
+++ b/aws-s3-async/index.html
@@ -1,2 +1,2 @@
-index (aws-s3-async.index) Up – aws-s3-async Library aws-s3-asyncThe entry point of this library is the module: Aws_s3_async
.
\ No newline at end of file
+index (aws-s3-async.index) Up – aws-s3-async Library aws-s3-asyncThe entry point of this library is the module: Aws_s3_async
.
diff --git a/aws-s3-lwt/Aws_s3_lwt/.dummy b/aws-s3-lwt/Aws_s3_lwt/.dummy
deleted file mode 100644
index e69de29..0000000
diff --git a/aws-s3-lwt/Aws_s3_lwt/Credentials/Helper/index.html b/aws-s3-lwt/Aws_s3_lwt/Credentials/Helper/index.html
index 83f6c3f..41d86bf 100644
--- a/aws-s3-lwt/Aws_s3_lwt/Credentials/Helper/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/Credentials/Helper/index.html
@@ -1,5 +1,5 @@
-Helper (aws-s3-lwt.Aws_s3_lwt.Credentials.Helper) Up – aws-s3-lwt » Aws_s3_lwt » Credentials » HelperModule Credentials.Helper
diff --git a/aws-s3-lwt/Aws_s3_lwt/Credentials/Iam/index.html b/aws-s3-lwt/Aws_s3_lwt/Credentials/Iam/index.html
index 87b28df..9eba5b3 100644
--- a/aws-s3-lwt/Aws_s3_lwt/Credentials/Iam/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/Credentials/Iam/index.html
@@ -1,2 +1,2 @@
-Iam (aws-s3-lwt.Aws_s3_lwt.Credentials.Iam) Up – aws-s3-lwt » Aws_s3_lwt » Credentials » Iam
\ No newline at end of file
+Iam (aws-s3-lwt.Aws_s3_lwt.Credentials.Iam) Up – aws-s3-lwt » Aws_s3_lwt » Credentials » Iam
diff --git a/aws-s3-lwt/Aws_s3_lwt/Credentials/Local/index.html b/aws-s3-lwt/Aws_s3_lwt/Credentials/Local/index.html
index f83f7a3..24cb59a 100644
--- a/aws-s3-lwt/Aws_s3_lwt/Credentials/Local/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/Credentials/Local/index.html
@@ -1,5 +1,5 @@
-Local (aws-s3-lwt.Aws_s3_lwt.Credentials.Local) Up – aws-s3-lwt » Aws_s3_lwt » Credentials » Local
diff --git a/aws-s3-lwt/Aws_s3_lwt/Credentials/index.html b/aws-s3-lwt/Aws_s3_lwt/Credentials/index.html
index 45dd034..424537d 100644
--- a/aws-s3-lwt/Aws_s3_lwt/Credentials/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/Credentials/index.html
@@ -1,2 +1,2 @@
-Credentials (aws-s3-lwt.Aws_s3_lwt.Credentials) Up – aws-s3-lwt » Aws_s3_lwt » CredentialsModule Aws_s3_lwt.Credentials
module Local : sig ... end
\ No newline at end of file
+Credentials (aws-s3-lwt.Aws_s3_lwt.Credentials) Up – aws-s3-lwt » Aws_s3_lwt » CredentialsModule Aws_s3_lwt.Credentials
Lwt aware Credentials. For API documentation
include sig ... end
module Local : sig ... end
diff --git a/aws-s3-lwt/Aws_s3_lwt/Io/Deferred/Or_error/index.html b/aws-s3-lwt/Aws_s3_lwt/Io/Deferred/Or_error/index.html
index 15ab5e6..e5ff2dc 100644
--- a/aws-s3-lwt/Aws_s3_lwt/Io/Deferred/Or_error/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/Io/Deferred/Or_error/index.html
@@ -1,2 +1,2 @@
-Or_error (aws-s3-lwt.Aws_s3_lwt.Io.Deferred.Or_error) Up – aws-s3-lwt » Aws_s3_lwt » Io » Deferred » Or_errortype nonrec 'a t = ( 'a , exn ) Stdlib .result t
val catch : ( unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
\ No newline at end of file
+Or_error (aws-s3-lwt.Aws_s3_lwt.Io.Deferred.Or_error) Up – aws-s3-lwt » Aws_s3_lwt » Io » Deferred » Or_errortype nonrec 'a t = ('a , exn) Stdlib .result t
val catch : (unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
diff --git a/aws-s3-lwt/Aws_s3_lwt/Io/Deferred/index.html b/aws-s3-lwt/Aws_s3_lwt/Io/Deferred/index.html
index 2c404dc..d08fcdb 100644
--- a/aws-s3-lwt/Aws_s3_lwt/Io/Deferred/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/Io/Deferred/index.html
@@ -1,5 +1,5 @@
-Deferred (aws-s3-lwt.Aws_s3_lwt.Io.Deferred) Up – aws-s3-lwt » Aws_s3_lwt » Io » Deferredval after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ( 'a -> 'b ) -> 'b t
val (>>=?) :
- ( 'a , 'c ) Stdlib .result t ->
- ( 'a -> ( 'b , 'c ) Stdlib .result t ) ->
- ( 'b , 'c ) Stdlib .result t
\ No newline at end of file
+Deferred (aws-s3-lwt.Aws_s3_lwt.Io.Deferred) Up – aws-s3-lwt » Aws_s3_lwt » Io » Deferredval after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ('a -> 'b ) -> 'b t
val (>>=?) :
+ ('a , 'c ) Stdlib .result t ->
+ ('a -> ('b , 'c ) Stdlib .result t ) ->
+ ('b , 'c ) Stdlib .result t
diff --git a/aws-s3-lwt/Aws_s3_lwt/Io/Pipe/index.html b/aws-s3-lwt/Aws_s3_lwt/Io/Pipe/index.html
index 904b071..4883ae7 100644
--- a/aws-s3-lwt/Aws_s3_lwt/Io/Pipe/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/Io/Pipe/index.html
@@ -1,2 +1,2 @@
-Pipe (aws-s3-lwt.Aws_s3_lwt.Io.Pipe) Up – aws-s3-lwt » Aws_s3_lwt » Io » Pipetype 'a writer = ( 'a , {writer_phantom}3 ) pipe
type 'a reader = ( 'a , {reader_phantom}4 ) pipe
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ( 'a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
\ No newline at end of file
+Pipe (aws-s3-lwt.Aws_s3_lwt.Io.Pipe) Up – aws-s3-lwt » Aws_s3_lwt » Io » Pipetype 'a writer = ('a , {writer_phantom}3 ) pipe
type 'a reader = ('a , {reader_phantom}4 ) pipe
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ('a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
diff --git a/aws-s3-lwt/Aws_s3_lwt/Io/index.html b/aws-s3-lwt/Aws_s3_lwt/Io/index.html
index 35d5082..99b4a73 100644
--- a/aws-s3-lwt/Aws_s3_lwt/Io/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/Io/index.html
@@ -1,2 +1,2 @@
-Io (aws-s3-lwt.Aws_s3_lwt.Io) Up – aws-s3-lwt » Aws_s3_lwt » Io
\ No newline at end of file
+Io (aws-s3-lwt.Aws_s3_lwt.Io) Up – aws-s3-lwt » Aws_s3_lwt » Io
diff --git a/aws-s3-lwt/Aws_s3_lwt/S3/Delete_multi/index.html b/aws-s3-lwt/Aws_s3_lwt/S3/Delete_multi/index.html
index 8b1c187..d5ca06a 100644
--- a/aws-s3-lwt/Aws_s3_lwt/S3/Delete_multi/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/S3/Delete_multi/index.html
@@ -1,2 +1,2 @@
-Delete_multi (aws-s3-lwt.Aws_s3_lwt.S3.Delete_multi) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Delete_multitype objekt = {
key : string;
version_id : string option ;
}
type error = {
key : string;
version_id : string option ;
code : string;
message : string;
}
type result = {
delete_marker : bool;
delete_marker_version_id : string option ;
deleted : objekt list ;
error : error list ;
}
\ No newline at end of file
+Delete_multi (aws-s3-lwt.Aws_s3_lwt.S3.Delete_multi) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Delete_multitype objekt = {
key : string;
version_id : string option ;
}
type error = {
key : string;
version_id : string option ;
code : string;
message : string;
}
type result = {
delete_marker : bool;
delete_marker_version_id : string option ;
deleted : objekt list ;
error : error list ;
}
diff --git a/aws-s3-lwt/Aws_s3_lwt/S3/Ls/index.html b/aws-s3-lwt/Aws_s3_lwt/S3/Ls/index.html
index aa9dd89..a37e866 100644
--- a/aws-s3-lwt/Aws_s3_lwt/S3/Ls/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/S3/Ls/index.html
@@ -1,2 +1,2 @@
-Ls (aws-s3-lwt.Aws_s3_lwt.S3.Ls) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Lsand cont =
| More of ?max_keys:int -> unit -> t
| Done
\ No newline at end of file
+Ls (aws-s3-lwt.Aws_s3_lwt.S3.Ls) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Lsand cont =
| More of ?max_keys :int -> unit -> t
| Done
diff --git a/aws-s3-lwt/Aws_s3_lwt/S3/Multipart_upload/Stream/index.html b/aws-s3-lwt/Aws_s3_lwt/S3/Multipart_upload/Stream/index.html
index 81915b9..518eb3c 100644
--- a/aws-s3-lwt/Aws_s3_lwt/S3/Multipart_upload/Stream/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/S3/Multipart_upload/Stream/index.html
@@ -1,11 +1,11 @@
-Stream (aws-s3-lwt.Aws_s3_lwt.S3.Multipart_upload.Stream) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Multipart_upload » StreamModule Multipart_upload.Stream
val upload_part :
- ( t ->
- part_number:int ->
- ?expect:bool ->
- data:string Io.Pipe.reader ->
- length:int ->
- chunk_size:int ->
+Stream (aws-s3-lwt.Aws_s3_lwt.S3.Multipart_upload.Stream) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Multipart_upload » StreamModule Multipart_upload.Stream
val upload_part :
+ (t ->
+ part_number :int ->
+ ?expect :bool ->
+ data :string Io.Pipe.reader ->
+ length :int ->
+ chunk_size :int ->
unit ->
- unit result )
- command
\ No newline at end of file
+ unit result )
+ command
diff --git a/aws-s3-lwt/Aws_s3_lwt/S3/Multipart_upload/index.html b/aws-s3-lwt/Aws_s3_lwt/S3/Multipart_upload/index.html
index 785a2c3..d933417 100644
--- a/aws-s3-lwt/Aws_s3_lwt/S3/Multipart_upload/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/S3/Multipart_upload/index.html
@@ -1,26 +1,26 @@
-Multipart_upload (aws-s3-lwt.Aws_s3_lwt.S3.Multipart_upload) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Multipart_uploadModule S3.Multipart_upload
val init :
- ( ?content_type:string ->
- ?content_encoding:(string * string) ->
- ?acl:string ->
- ?cache_control:string ->
- bucket:string ->
- key:string ->
+Multipart_upload (aws-s3-lwt.Aws_s3_lwt.S3.Multipart_upload) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Multipart_uploadModule S3.Multipart_upload
val init :
+ (?content_type :string ->
+ ?content_encoding :(string * string) ->
+ ?acl :string ->
+ ?cache_control :string ->
+ bucket :string ->
+ key :string ->
unit ->
- t result )
- command
val upload_part :
- ( t ->
- part_number:int ->
- ?expect:bool ->
- data:string ->
+ t result )
+ command
val upload_part :
+ (t ->
+ part_number :int ->
+ ?expect :bool ->
+ data :string ->
unit ->
- unit result )
- command
val copy_part :
- ( t ->
- part_number:int ->
- ?range:(int * int) ->
- bucket:string ->
- key:string ->
+ unit result )
+ command
val copy_part :
+ (t ->
+ part_number :int ->
+ ?range :(int * int) ->
+ bucket :string ->
+ key :string ->
unit ->
- unit result )
- command
\ No newline at end of file
+ unit result )
+ command
diff --git a/aws-s3-lwt/Aws_s3_lwt/S3/Stream/index.html b/aws-s3-lwt/Aws_s3_lwt/S3/Stream/index.html
index db844b4..16162cc 100644
--- a/aws-s3-lwt/Aws_s3_lwt/S3/Stream/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/S3/Stream/index.html
@@ -1,23 +1,23 @@
-Stream (aws-s3-lwt.Aws_s3_lwt.S3.Stream) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Streamval put :
- ( ?content_type:string ->
- ?content_encoding:string ->
- ?acl:string ->
- ?cache_control:string ->
- ?expect:bool ->
- ?meta_headers:(string * string) list ->
- bucket:string ->
- key:string ->
- data:string Io.Pipe.reader ->
- chunk_size:int ->
- length:int ->
+Stream (aws-s3-lwt.Aws_s3_lwt.S3.Stream) Up – aws-s3-lwt » Aws_s3_lwt » S3 » Streamval put :
+ (?content_type :string ->
+ ?content_encoding :string ->
+ ?acl :string ->
+ ?cache_control :string ->
+ ?expect :bool ->
+ ?meta_headers :(string * string) list ->
+ bucket :string ->
+ key :string ->
+ data :string Io.Pipe.reader ->
+ chunk_size :int ->
+ length :int ->
unit ->
- etag result )
- command
\ No newline at end of file
+ unit result )
+ command
diff --git a/aws-s3-lwt/Aws_s3_lwt/S3/index.html b/aws-s3-lwt/Aws_s3_lwt/S3/index.html
index d79b5b1..4f435fa 100644
--- a/aws-s3-lwt/Aws_s3_lwt/S3/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/S3/index.html
@@ -1,43 +1,43 @@
-S3 (aws-s3-lwt.Aws_s3_lwt.S3) Up – aws-s3-lwt » Aws_s3_lwt » S3type storage_class =
| Standard
| Standard_ia
| Onezone_ia
| Reduced_redundancy
| Glacier
type content = {
storage_class : storage_class ;
size : int;
last_modified : float;
key : string;
etag : etag ;
}
type range = {
first : int option ;
last : int option ;
}
val put :
- ( ?content_type:string ->
- ?content_encoding:string ->
- ?acl:string ->
- ?cache_control:string ->
- ?expect:bool ->
- ?meta_headers:(string * string) list ->
- bucket:string ->
- key:string ->
- data:string ->
+S3 (aws-s3-lwt.Aws_s3_lwt.S3) Up – aws-s3-lwt » Aws_s3_lwt » S3Lwt aware S3 commands. For API documentation
include sig ... end
type error =
| Redirect of Aws_s3.Region.endpoint
| Throttled
| Unknown of int * string
| Failed of exn
| Forbidden
| Not_found
type storage_class =
| Standard
| Standard_ia
| Onezone_ia
| Reduced_redundancy
| Glacier
type content = {
storage_class : storage_class ;
size : int;
last_modified : float;
key : string;
etag : etag ;
}
type range = {
first : int option ;
last : int option ;
}
val put :
+ (?content_type :string ->
+ ?content_encoding :string ->
+ ?acl :string ->
+ ?cache_control :string ->
+ ?expect :bool ->
+ ?meta_headers :(string * string) list ->
+ bucket :string ->
+ key :string ->
+ data :string ->
unit ->
- etag result )
- command
val get :
+ (?range :range ->
+ bucket :string ->
+ key :string ->
unit ->
- string result )
- command
val delete : ( bucket:string -> key:string -> unit -> unit result ) command
val delete : (bucket :string -> key :string -> unit -> unit result ) command
val ls :
- ( ?start_after:string ->
- ?continuation_token:string ->
- ?prefix:string ->
- ?max_keys:int ->
- bucket:string ->
+ Delete_multi.result result )
+ command
val ls :
+ (?start_after :string ->
+ ?continuation_token :string ->
+ ?prefix :string ->
+ ?max_keys :int ->
+ bucket :string ->
unit ->
- Ls.t )
- command
\ No newline at end of file
+
'a result
diff --git a/aws-s3-lwt/Aws_s3_lwt/index.html b/aws-s3-lwt/Aws_s3_lwt/index.html
index 24243c0..b39b0be 100644
--- a/aws-s3-lwt/Aws_s3_lwt/index.html
+++ b/aws-s3-lwt/Aws_s3_lwt/index.html
@@ -1,2 +1,2 @@
-Aws_s3_lwt (aws-s3-lwt.Aws_s3_lwt) Up – aws-s3-lwt » Aws_s3_lwt
\ No newline at end of file
+Aws_s3_lwt (aws-s3-lwt.Aws_s3_lwt) Up – aws-s3-lwt » Aws_s3_lwt
diff --git a/aws-s3-lwt/index.html b/aws-s3-lwt/index.html
index db0d1a2..0cbdc51 100644
--- a/aws-s3-lwt/index.html
+++ b/aws-s3-lwt/index.html
@@ -1,2 +1,2 @@
-index (aws-s3-lwt.index) Up – aws-s3-lwt Library aws-s3-lwtThe entry point of this library is the module: Aws_s3_lwt
.
\ No newline at end of file
+index (aws-s3-lwt.index) Up – aws-s3-lwt Library aws-s3-lwtThe entry point of this library is the module: Aws_s3_lwt
.
diff --git a/aws-s3/Aws_s3/.dummy b/aws-s3/Aws_s3/.dummy
deleted file mode 100644
index e69de29..0000000
diff --git a/aws-s3/Aws_s3/Authorization/index.html b/aws-s3/Aws_s3/Authorization/index.html
index 2c0d387..73a95c8 100644
--- a/aws-s3/Aws_s3/Authorization/index.html
+++ b/aws-s3/Aws_s3/Authorization/index.html
@@ -1,2 +1,14 @@
-Authorization (aws-s3.Aws_s3.Authorization) Up – aws-s3 » Aws_s3 » AuthorizationModule Aws_s3.Authorization
/*
\ No newline at end of file
+Authorization (aws-s3.Aws_s3.Authorization) Up – aws-s3 » Aws_s3 » AuthorizationModule Aws_s3.Authorization
val make_presigned_url :
+ ?scheme :[ `Http | `Https ] ->
+ ?host :string ->
+ ?port :int ->
+ credentials :Credentials.t ->
+ date :Ptime .t ->
+ region :Region.t ->
+ path :string ->
+ bucket :string ->
+ verb :[ `Get | `Put ] ->
+ duration :int ->
+ unit ->
+ Uri .t
This makes a presigned url that can be used to upload or download a file from s3 without any credentials other than those embedded in the url. verb
should be either the string GET for download or PUT for upload.
diff --git a/aws-s3/Aws_s3/Credentials/Make/Helper/index.html b/aws-s3/Aws_s3/Credentials/Make/Helper/index.html
index c01a38d..9be79d3 100644
--- a/aws-s3/Aws_s3/Credentials/Make/Helper/index.html
+++ b/aws-s3/Aws_s3/Credentials/Make/Helper/index.html
@@ -1,2 +1,2 @@
-Helper (aws-s3.Aws_s3.Credentials.Make.Helper) Up – aws-s3 » Aws_s3 » Credentials » Make » HelperGet credentials locally or though IAM service. profile
is used to speficy a specific section thethe local file.
If profile is not supplied and no credentials can be found in the default section, then credentials are retrieved though Iam service, using an assigned machine role.
\ No newline at end of file
+Helper (aws-s3.Aws_s3.Credentials.Make.Helper) Up – aws-s3 » Aws_s3 » Credentials » Make » HelperGet credentials locally or though IAM service. profile
is used to speficy a specific section thethe local file.
If profile is not supplied and no credentials can be found in the default section, then credentials are retrieved though Iam service, using an assigned machine role.
diff --git a/aws-s3/Aws_s3/Credentials/Make/Iam/index.html b/aws-s3/Aws_s3/Credentials/Make/Iam/index.html
index c43cb7a..97b3ba1 100644
--- a/aws-s3/Aws_s3/Credentials/Make/Iam/index.html
+++ b/aws-s3/Aws_s3/Credentials/Make/Iam/index.html
@@ -1,2 +1,2 @@
-Iam (aws-s3.Aws_s3.Credentials.Make.Iam) Up – aws-s3 » Aws_s3 » Credentials » Make » IamGet machine role though IAM service
Retrieve a credentials for a given role role
\ No newline at end of file
+Iam (aws-s3.Aws_s3.Credentials.Make.Iam) Up – aws-s3 » Aws_s3 » Credentials » Make » IamGet machine role though IAM service
Retrieve a credentials for a given role role
diff --git a/aws-s3/Aws_s3/Credentials/Make/Local/index.html b/aws-s3/Aws_s3/Credentials/Make/Local/index.html
index f23f7d1..652fd58 100644
--- a/aws-s3/Aws_s3/Credentials/Make/Local/index.html
+++ b/aws-s3/Aws_s3/Credentials/Make/Local/index.html
@@ -1,2 +1,2 @@
-Local (aws-s3.Aws_s3.Credentials.Make.Local) Up – aws-s3 » Aws_s3 » Credentials » Make » LocalLoad credentials from ~/.aws/credentials (file format compatible with botocore).
\ No newline at end of file
+Local (aws-s3.Aws_s3.Credentials.Make.Local) Up – aws-s3 » Aws_s3 » Credentials » Make » LocalLoad credentials from ~/.aws/credentials (file format compatible with botocore).
diff --git a/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Deferred/Or_error/index.html b/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Deferred/Or_error/index.html
index f6c91a8..c3164bf 100644
--- a/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Deferred/Or_error/index.html
+++ b/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Deferred/Or_error/index.html
@@ -1,2 +1,2 @@
-Or_error (aws-s3.Aws_s3.Credentials.Make.1-Io.Deferred.Or_error) Up – aws-s3 » Aws_s3 » Credentials » Make » 1-Io » Deferred » Or_errortype nonrec 'a t = ( 'a , exn ) Stdlib .result t
val catch : ( unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
\ No newline at end of file
+Or_error (aws-s3.Aws_s3.Credentials.Make.Io.Deferred.Or_error) Up – aws-s3 » Aws_s3 » Credentials » Make » Io » Deferred » Or_errortype nonrec 'a t = ('a , exn) Stdlib .result t
val catch : (unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
diff --git a/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Deferred/index.html b/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Deferred/index.html
index 22b1be9..55be5c7 100644
--- a/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Deferred/index.html
+++ b/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Deferred/index.html
@@ -1,5 +1,5 @@
-Deferred (aws-s3.Aws_s3.Credentials.Make.1-Io.Deferred) Up – aws-s3 » Aws_s3 » Credentials » Make » 1-Io » Deferredval after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ( 'a -> 'b ) -> 'b t
val (>>=?) :
- ( 'a , 'c ) Stdlib .result t ->
- ( 'a -> ( 'b , 'c ) Stdlib .result t ) ->
- ( 'b , 'c ) Stdlib .result t
\ No newline at end of file
+Deferred (aws-s3.Aws_s3.Credentials.Make.Io.Deferred) Up – aws-s3 » Aws_s3 » Credentials » Make » Io » Deferredval after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ('a -> 'b ) -> 'b t
val (>>=?) :
+ ('a , 'c ) Stdlib .result t ->
+ ('a -> ('b , 'c ) Stdlib .result t ) ->
+ ('b , 'c ) Stdlib .result t
diff --git a/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Pipe/index.html b/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Pipe/index.html
index 5ff7bfc..62b279f 100644
--- a/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Pipe/index.html
+++ b/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/Pipe/index.html
@@ -1,2 +1,2 @@
-Pipe (aws-s3.Aws_s3.Credentials.Make.1-Io.Pipe) Up – aws-s3 » Aws_s3 » Credentials » Make » 1-Io » Pipetype 'a writer = ( 'a , {writer_phantom}3 ) pipe
type 'a reader = ( 'a , {reader_phantom}4 ) pipe
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ( 'a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
\ No newline at end of file
+Pipe (aws-s3.Aws_s3.Credentials.Make.Io.Pipe) Up – aws-s3 » Aws_s3 » Credentials » Make » Io » Pipetype 'a writer = ('a , {writer_phantom}3 ) pipe
type 'a reader = ('a , {reader_phantom}4 ) pipe
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ('a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
diff --git a/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/index.html b/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/index.html
index 7e19c93..e9b9b2e 100644
--- a/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/index.html
+++ b/aws-s3/Aws_s3/Credentials/Make/argument-1-Io/index.html
@@ -1,2 +1,2 @@
-Io (aws-s3.Aws_s3.Credentials.Make.1-Io) Up – aws-s3 » Aws_s3 » Credentials » Make » 1-Iomodule Pipe : sig ... end
Module mimicking Async.Pipe
\ No newline at end of file
+Io (aws-s3.Aws_s3.Credentials.Make.Io) Up – aws-s3 » Aws_s3 » Credentials » Make » Iomodule Pipe : sig ... end
Module mimicking Async.Pipe
diff --git a/aws-s3/Aws_s3/Credentials/Make/index.html b/aws-s3/Aws_s3/Credentials/Make/index.html
index e5f83c5..ddeee5c 100644
--- a/aws-s3/Aws_s3/Credentials/Make/index.html
+++ b/aws-s3/Aws_s3/Credentials/Make/index.html
@@ -1,2 +1,2 @@
-Make (aws-s3.Aws_s3.Credentials.Make) Up – aws-s3 » Aws_s3 » Credentials » Make Parameters Signaturemodule Local : sig ... end
\ No newline at end of file
+Make (aws-s3.Aws_s3.Credentials.Make) Up – aws-s3 » Aws_s3 » Credentials » Make Parameters Signaturemodule Local : sig ... end
diff --git a/aws-s3/Aws_s3/Credentials/index.html b/aws-s3/Aws_s3/Credentials/index.html
index cb10077..6efc43c 100644
--- a/aws-s3/Aws_s3/Credentials/index.html
+++ b/aws-s3/Aws_s3/Credentials/index.html
@@ -1,8 +1,8 @@
-Credentials (aws-s3.Aws_s3.Credentials) Up – aws-s3 » Aws_s3 » CredentialsModule Aws_s3.Credentials
type t = {
access_key : string;
secret_key : string;
token : string option ;
expiration : float option ;
}
Loading credentials locally or from IAM service.
val make :
- access_key:string ->
- secret_key:string ->
- ?token:string ->
- ?expiration:float ->
+Credentials (aws-s3.Aws_s3.Credentials) Up – aws-s3 » Aws_s3 » CredentialsModule Aws_s3.Credentials
type t = {
access_key : string;
secret_key : string;
token : string option ;
expiration : float option ;
}
Loading credentials locally or from IAM service.
val make :
+ access_key :string ->
+ secret_key :string ->
+ ?token :string ->
+ ?expiration :float ->
unit ->
- t
\ No newline at end of file
+ t
diff --git a/aws-s3/Aws_s3/Region/index.html b/aws-s3/Aws_s3/Region/index.html
index 353394b..af81af2 100644
--- a/aws-s3/Aws_s3/Region/index.html
+++ b/aws-s3/Aws_s3/Region/index.html
@@ -1,2 +1,2 @@
-Region (aws-s3.Aws_s3.Region) Up – aws-s3 » Aws_s3 » Regiontype t =
| Ap_northeast_1
| Ap_northeast_2
| Ap_northeast_3
| Ap_southeast_1
| Ap_southeast_2
| Ap_south_1
| Eu_central_1
| Cn_northwest_1
| Cn_north_1
| Eu_west_1
| Eu_west_2
| Eu_west_3
| Sa_east_1
| Us_east_1
| Us_east_2
| Us_west_1
| Us_west_2
| Ca_central_1
| Other of string
| Vendor of vendor
val vendor : region_name:string -> ?port:int -> host:string -> unit -> t
val minio : ?port:int -> host:string -> unit -> t
val backblaze : region_name:string -> unit -> t
type endpoint = {
inet : [ `V4 | `V6 ] ;
scheme : [ `Http | `Https ] ;
host : string;
port : int;
region : t ;
}
val endpoint : inet:[ `V4 | `V6 ] -> scheme:[ `Http | `Https ] -> t -> endpoint
val to_string : t -> string
val of_string : string -> t
val of_host : string -> t
\ No newline at end of file
+Region (aws-s3.Aws_s3.Region) Up – aws-s3 » Aws_s3 » Regiontype t =
| Ap_northeast_1
| Ap_northeast_2
| Ap_northeast_3
| Ap_southeast_1
| Ap_southeast_2
| Ap_south_1
| Eu_central_1
| Cn_northwest_1
| Cn_north_1
| Eu_west_1
| Eu_west_2
| Eu_west_3
| Sa_east_1
| Us_east_1
| Us_east_2
| Us_west_1
| Us_west_2
| Ca_central_1
| Other of string
| Vendor of vendor
val vendor : region_name :string -> ?port :int -> host :string -> unit -> t
val minio : ?port :int -> host :string -> unit -> t
val backblaze : region_name :string -> unit -> t
type endpoint = {
inet : [ `V4 | `V6 ] ;
scheme : [ `Http | `Https ] ;
host : string;
port : int;
region : t ;
}
val endpoint : inet :[ `V4 | `V6 ] -> scheme :[ `Http | `Https ] -> t -> endpoint
val to_string : t -> string
val of_string : string -> t
val of_host : string -> t
diff --git a/aws-s3/Aws_s3/S3/Make/Delete_multi/index.html b/aws-s3/Aws_s3/S3/Make/Delete_multi/index.html
index b0e0f23..799d244 100644
--- a/aws-s3/Aws_s3/S3/Make/Delete_multi/index.html
+++ b/aws-s3/Aws_s3/S3/Make/Delete_multi/index.html
@@ -1,2 +1,2 @@
-Delete_multi (aws-s3.Aws_s3.S3.Make.Delete_multi) Up – aws-s3 » Aws_s3 » S3 » Make » Delete_multitype objekt = {
key : string;
version_id : string option ;
}
type error = {
key : string;
version_id : string option ;
code : string;
message : string;
}
type result = {
delete_marker : bool;
delete_marker_version_id : string option ;
deleted : objekt list ;
error : error list ;
}
\ No newline at end of file
+Delete_multi (aws-s3.Aws_s3.S3.Make.Delete_multi) Up – aws-s3 » Aws_s3 » S3 » Make » Delete_multitype objekt = {
key : string;
version_id : string option ;
}
type error = {
key : string;
version_id : string option ;
code : string;
message : string;
}
type result = {
delete_marker : bool;
delete_marker_version_id : string option ;
deleted : objekt list ;
error : error list ;
}
diff --git a/aws-s3/Aws_s3/S3/Make/Ls/index.html b/aws-s3/Aws_s3/S3/Make/Ls/index.html
index 840aabb..52c71eb 100644
--- a/aws-s3/Aws_s3/S3/Make/Ls/index.html
+++ b/aws-s3/Aws_s3/S3/Make/Ls/index.html
@@ -1,2 +1,2 @@
-Ls (aws-s3.Aws_s3.S3.Make.Ls) Up – aws-s3 » Aws_s3 » S3 » Make » Lsand cont =
| More of ?max_keys:int -> unit -> t
| Done
\ No newline at end of file
+Ls (aws-s3.Aws_s3.S3.Make.Ls) Up – aws-s3 » Aws_s3 » S3 » Make » Lsand cont =
| More of ?max_keys :int -> unit -> t
| Done
diff --git a/aws-s3/Aws_s3/S3/Make/Multipart_upload/Stream/index.html b/aws-s3/Aws_s3/S3/Make/Multipart_upload/Stream/index.html
index ac17b8d..2f97584 100644
--- a/aws-s3/Aws_s3/S3/Make/Multipart_upload/Stream/index.html
+++ b/aws-s3/Aws_s3/S3/Make/Multipart_upload/Stream/index.html
@@ -1,11 +1,11 @@
-Stream (aws-s3.Aws_s3.S3.Make.Multipart_upload.Stream) Up – aws-s3 » Aws_s3 » S3 » Make » Multipart_upload » StreamModule Multipart_upload.Stream
Streaming functions
val upload_part :
- ( t ->
- part_number:int ->
- ?expect:bool ->
- data:string Io.Pipe.reader ->
- length:int ->
- chunk_size:int ->
+Stream (aws-s3.Aws_s3.S3.Make.Multipart_upload.Stream) Up – aws-s3 » Aws_s3 » S3 » Make » Multipart_upload » StreamModule Multipart_upload.Stream
Streaming functions
val upload_part :
+ (t ->
+ part_number :int ->
+ ?expect :bool ->
+ data :string Io.Pipe.reader ->
+ length :int ->
+ chunk_size :int ->
unit ->
- unit result )
- command
Streaming version of upload_part.
\ No newline at end of file
+ unit result )
+ command
Streaming version of upload_part.
diff --git a/aws-s3/Aws_s3/S3/Make/Multipart_upload/index.html b/aws-s3/Aws_s3/S3/Make/Multipart_upload/index.html
index cc015b0..0c81fc3 100644
--- a/aws-s3/Aws_s3/S3/Make/Multipart_upload/index.html
+++ b/aws-s3/Aws_s3/S3/Make/Multipart_upload/index.html
@@ -1,26 +1,26 @@
-Multipart_upload (aws-s3.Aws_s3.S3.Make.Multipart_upload) Up – aws-s3 » Aws_s3 » S3 » Make » Multipart_uploadModule Make.Multipart_upload
val init :
- ( ?content_type:string ->
- ?content_encoding:(string * string) ->
- ?acl:string ->
- ?cache_control:string ->
- bucket:string ->
- key:string ->
+Multipart_upload (aws-s3.Aws_s3.S3.Make.Multipart_upload) Up – aws-s3 » Aws_s3 » S3 » Make » Multipart_uploadModule Make.Multipart_upload
val init :
+ (?content_type :string ->
+ ?content_encoding :(string * string) ->
+ ?acl :string ->
+ ?cache_control :string ->
+ bucket :string ->
+ key :string ->
unit ->
- t result )
- command
Initialize multipart upload
val upload_part :
- ( t ->
- part_number:int ->
- ?expect:bool ->
- data:string ->
+ t result )
+ command
Initialize multipart upload
val upload_part :
+ (t ->
+ part_number :int ->
+ ?expect :bool ->
+ data :string ->
unit ->
- unit result )
- command
Upload a part of the file. All parts except the last part must be at least 5Mb big. All parts must have a unique part number. The final file will be assembled from all parts ordered by part number
val copy_part :
- ( t ->
- part_number:int ->
- ?range:(int * int) ->
- bucket:string ->
- key:string ->
+ unit result )
+ command
Upload a part of the file. All parts except the last part must be at least 5Mb big. All parts must have a unique part number. The final file will be assembled from all parts ordered by part number
val copy_part :
+ (t ->
+ part_number :int ->
+ ?range :(int * int) ->
+ bucket :string ->
+ key :string ->
unit ->
- unit result )
- command
Specify a part as a copy of an existing object in S3.
Complete a multipart upload. The returned string is an opaque identifier used as etag. the etag return is _NOT_ the md5
Abort a multipart upload. This also discards all uploaded parts.
\ No newline at end of file
+ unit result )
+ command
Specify a part as a copy of an existing object in S3.
Complete a multipart upload. The returned string is an opaque identifier used as etag. the etag return is _NOT_ the md5
Abort a multipart upload. This also discards all uploaded parts.
diff --git a/aws-s3/Aws_s3/S3/Make/Stream/index.html b/aws-s3/Aws_s3/S3/Make/Stream/index.html
index 2ba8322..4900453 100644
--- a/aws-s3/Aws_s3/S3/Make/Stream/index.html
+++ b/aws-s3/Aws_s3/S3/Make/Stream/index.html
@@ -1,23 +1,23 @@
-Stream (aws-s3.Aws_s3.S3.Make.Stream) Up – aws-s3 » Aws_s3 » S3 » Make » Streamval put :
- ( ?content_type:string ->
- ?content_encoding:string ->
- ?acl:string ->
- ?cache_control:string ->
- ?expect:bool ->
- ?meta_headers:(string * string) list ->
- bucket:string ->
- key:string ->
- data:string Io.Pipe.reader ->
- chunk_size:int ->
- length:int ->
+Stream (aws-s3.Aws_s3.S3.Make.Stream) Up – aws-s3 » Aws_s3 » S3 » Make » Streamval put :
+ (?content_type :string ->
+ ?content_encoding :string ->
+ ?acl :string ->
+ ?cache_control :string ->
+ ?expect :bool ->
+ ?meta_headers :(string * string) list ->
+ bucket :string ->
+ key :string ->
+ data :string Io.Pipe.reader ->
+ chunk_size :int ->
+ length :int ->
unit ->
- etag result )
- command
Streaming version of put.
Streaming version of put.
Streaming version of get. The caller must supply a data
sink to which retrieved data is streamed. The result will be determined after all data has been sent to the sink, and the data sink is closed.
Connections to s3 is closed once the result has been determined. The caller should ways examine the result of the function. If the result is Ok ()
, then it is guaranteed that all data has been retrieved successfully and written to the data sink. In case of Error _
, only parts of the data may have been written to the data sink.
The rationale for using a data sink rather than returning a pipe reader from which data can be consumed is that a reader does not allow simple relay of error states during the transfer.
For other parameters see Aws_s3.S3.Make.get
\ No newline at end of file
+ unit result )
+ command
Streaming version of get. The caller must supply a data
sink to which retrieved data is streamed. The result will be determined after all data has been sent to the sink, and the data sink is closed.
Connections to s3 is closed once the result has been determined. The caller should ways examine the result of the function. If the result is Ok ()
, then it is guaranteed that all data has been retrieved successfully and written to the data sink. In case of Error _
, only parts of the data may have been written to the data sink.
The rationale for using a data sink rather than returning a pipe reader from which data can be consumed is that a reader does not allow simple relay of error states during the transfer.
For other parameters see Aws_s3.S3.Make.get
diff --git a/aws-s3/Aws_s3/S3/Make/argument-1-Io/Deferred/Or_error/index.html b/aws-s3/Aws_s3/S3/Make/argument-1-Io/Deferred/Or_error/index.html
index bed4ce3..306e1c2 100644
--- a/aws-s3/Aws_s3/S3/Make/argument-1-Io/Deferred/Or_error/index.html
+++ b/aws-s3/Aws_s3/S3/Make/argument-1-Io/Deferred/Or_error/index.html
@@ -1,2 +1,2 @@
-Or_error (aws-s3.Aws_s3.S3.Make.1-Io.Deferred.Or_error) Up – aws-s3 » Aws_s3 » S3 » Make » 1-Io » Deferred » Or_errortype nonrec 'a t = ( 'a , exn ) Stdlib .result t
val catch : ( unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
\ No newline at end of file
+Or_error (aws-s3.Aws_s3.S3.Make.Io.Deferred.Or_error) Up – aws-s3 » Aws_s3 » S3 » Make » Io » Deferred » Or_errortype nonrec 'a t = ('a , exn) Stdlib .result t
val catch : (unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
diff --git a/aws-s3/Aws_s3/S3/Make/argument-1-Io/Deferred/index.html b/aws-s3/Aws_s3/S3/Make/argument-1-Io/Deferred/index.html
index 64c6472..c62628a 100644
--- a/aws-s3/Aws_s3/S3/Make/argument-1-Io/Deferred/index.html
+++ b/aws-s3/Aws_s3/S3/Make/argument-1-Io/Deferred/index.html
@@ -1,5 +1,5 @@
-Deferred (aws-s3.Aws_s3.S3.Make.1-Io.Deferred) Up – aws-s3 » Aws_s3 » S3 » Make » 1-Io » Deferredval after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ( 'a -> 'b ) -> 'b t
val (>>=?) :
- ( 'a , 'c ) Stdlib .result t ->
- ( 'a -> ( 'b , 'c ) Stdlib .result t ) ->
- ( 'b , 'c ) Stdlib .result t
\ No newline at end of file
+Deferred (aws-s3.Aws_s3.S3.Make.Io.Deferred) Up – aws-s3 » Aws_s3 » S3 » Make » Io » Deferredval after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ('a -> 'b ) -> 'b t
val (>>=?) :
+ ('a , 'c ) Stdlib .result t ->
+ ('a -> ('b , 'c ) Stdlib .result t ) ->
+ ('b , 'c ) Stdlib .result t
diff --git a/aws-s3/Aws_s3/S3/Make/argument-1-Io/Pipe/index.html b/aws-s3/Aws_s3/S3/Make/argument-1-Io/Pipe/index.html
index fda0260..ceb8cd7 100644
--- a/aws-s3/Aws_s3/S3/Make/argument-1-Io/Pipe/index.html
+++ b/aws-s3/Aws_s3/S3/Make/argument-1-Io/Pipe/index.html
@@ -1,2 +1,2 @@
-Pipe (aws-s3.Aws_s3.S3.Make.1-Io.Pipe) Up – aws-s3 » Aws_s3 » S3 » Make » 1-Io » Pipetype 'a writer = ( 'a , {writer_phantom}3 ) pipe
type 'a reader = ( 'a , {reader_phantom}4 ) pipe
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ( 'a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
\ No newline at end of file
+Pipe (aws-s3.Aws_s3.S3.Make.Io.Pipe) Up – aws-s3 » Aws_s3 » S3 » Make » Io » Pipetype 'a writer = ('a , {writer_phantom}3 ) pipe
type 'a reader = ('a , {reader_phantom}4 ) pipe
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ('a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
diff --git a/aws-s3/Aws_s3/S3/Make/argument-1-Io/index.html b/aws-s3/Aws_s3/S3/Make/argument-1-Io/index.html
index 8cb2d7b..c451278 100644
--- a/aws-s3/Aws_s3/S3/Make/argument-1-Io/index.html
+++ b/aws-s3/Aws_s3/S3/Make/argument-1-Io/index.html
@@ -1,2 +1,2 @@
-Io (aws-s3.Aws_s3.S3.Make.1-Io) Up – aws-s3 » Aws_s3 » S3 » Make » 1-Iomodule Pipe : sig ... end
Module mimicking Async.Pipe
\ No newline at end of file
+Io (aws-s3.Aws_s3.S3.Make.Io) Up – aws-s3 » Aws_s3 » S3 » Make » Iomodule Pipe : sig ... end
Module mimicking Async.Pipe
diff --git a/aws-s3/Aws_s3/S3/Make/index.html b/aws-s3/Aws_s3/S3/Make/index.html
index f612021..dcd7ea7 100644
--- a/aws-s3/Aws_s3/S3/Make/index.html
+++ b/aws-s3/Aws_s3/S3/Make/index.html
@@ -1,43 +1,43 @@
-Make (aws-s3.Aws_s3.S3.Make) Up – aws-s3 » Aws_s3 » S3 » MakeModule S3.Make
S3 functions All function requires a region
, scheme
and credentials
.
The default region is Us_east_1
.
The default scheme is http
. If you are connecting from outside AWS, it is strongly recommended that you use https. To use https, make sure to have the relevant opam packages installed: async_ssl
for async
and lwt_ssl
/tls
for lwt
. Please note that connections are not reused due to a limitation on the AWS endpoint.
If no credentials is provided, the requests will not be signed, The bucket / objects need to be configured accordingly.
Parameters Signaturetype error =
| Redirect of Region.endpoint
| Throttled
| Unknown of int * string
| Failed of exn
| Forbidden
| Not_found
type storage_class =
| Standard
| Standard_ia
| Onezone_ia
| Reduced_redundancy
| Glacier
type content = {
storage_class : storage_class ;
size : int;
last_modified : float;
Seconds since epoch
key : string;
etag : etag ;
Etag as a string. this us usually the MD5, unless the object was constructed by multi-upload
}
type 'a command =
- ?credentials:Credentials.t ->
- ?connect_timeout_ms:int ->
- ?confirm_requester_pays:bool ->
- endpoint:Region.endpoint ->
- 'a
The type of S3 requests. credentials
refers to AWS credentials, as created by Credentials.make
. connect_timeout_ms
specifies the request timeout, in milliseconds. If confirm_requester_pays
, caller acknowledges that it will pay AWS data transfer costs, should the target bucket be so configured. endpoint
encapsulates the AWS endpoint, as created by Region.endpoint
.
type range = {
first : int option ;
last : int option ;
}
val put :
- ( ?content_type:string ->
- ?content_encoding:string ->
- ?acl:string ->
- ?cache_control:string ->
- ?expect:bool ->
- ?meta_headers:(string * string) list ->
- bucket:string ->
- key:string ->
- data:string ->
+Make (aws-s3.Aws_s3.S3.Make) Up – aws-s3 » Aws_s3 » S3 » MakeModule S3.Make
S3 functions All function requires a region
, scheme
and credentials
.
The default region is Us_east_1
.
The default scheme is http
. If you are connecting from outside AWS, it is strongly recommended that you use https. To use https, make sure to have the relevant opam packages installed: async_ssl
for async
and lwt_ssl
/tls
for lwt
. Please note that connections are not reused due to a limitation on the AWS endpoint.
If no credentials is provided, the requests will not be signed, The bucket / objects need to be configured accordingly.
Parameters Signaturetype error =
| Redirect of Region.endpoint
| Throttled
| Unknown of int * string
| Failed of exn
| Forbidden
| Not_found
type storage_class =
| Standard
| Standard_ia
| Onezone_ia
| Reduced_redundancy
| Glacier
type content = {
storage_class : storage_class ;
size : int;
last_modified : float;
key : string;
etag : etag ;
Etag as a string. this us usually the MD5, unless the object was constructed by multi-upload
}
type 'a command =
+ ?credentials :Credentials.t ->
+ ?connect_timeout_ms :int ->
+ ?confirm_requester_pays :bool ->
+ endpoint :Region.endpoint ->
+ 'a
The type of S3 requests. credentials
refers to AWS credentials, as created by Credentials.make
. connect_timeout_ms
specifies the request timeout, in milliseconds. If confirm_requester_pays
, caller acknowledges that it will pay AWS data transfer costs, should the target bucket be so configured. endpoint
encapsulates the AWS endpoint, as created by Region.endpoint
.
type range = {
first : int option ;
last : int option ;
}
val put :
+ (?content_type :string ->
+ ?content_encoding :string ->
+ ?acl :string ->
+ ?cache_control :string ->
+ ?expect :bool ->
+ ?meta_headers :(string * string) list ->
+ bucket :string ->
+ key :string ->
+ data :string ->
unit ->
- etag result )
- command
Upload data
to bucket
/key
. Returns the etag of the object. The etag is the md5 checksum (RFC 1864)
Upload data
to bucket
/key
. Returns the etag of the object. The etag is the md5 checksum (RFC 1864)
val get :
+ (?range :range ->
+ bucket :string ->
+ key :string ->
unit ->
- string result )
- command
Download key
from s3 in bucket
If range
is specified, only a part of the file is retrieved:
If first
is None, then start from the beginning of the object. If last
is None, then get to the end of the object. Call head on the object to retrieve info on a single object
val delete : ( bucket:string -> key:string -> unit -> unit result ) command
Download key
from s3 in bucket
If range
is specified, only a part of the file is retrieved:
If first
is None, then start from the beginning of the object. If last
is None, then get to the end of the object. Call head on the object to retrieve info on a single object
val delete : (bucket :string -> key :string -> unit -> unit result ) command
Delete multiple objects from bucket
.
The result will indicate which items failed and which are deleted. If an item is not found it will be reported as successfully deleted (the operation is idempotent).
val ls :
- ( ?start_after:string ->
- ?continuation_token:string ->
- ?prefix:string ->
- ?max_keys:int ->
- bucket:string ->
+ Delete_multi.result result )
+ command
Delete multiple objects from bucket
.
The result will indicate which items failed and which are deleted. If an item is not found it will be reported as successfully deleted (the operation is idempotent).
val ls :
+ (?start_after :string ->
+ ?continuation_token :string ->
+ ?prefix :string ->
+ ?max_keys :int ->
+ bucket :string ->
unit ->
- Ls.t )
- command
List contents in bucket
Aws will return at most 1000 keys per request. If not all keys are returned, the function will return a continuation.
Keys in s3 are stored in lexicographical order, and also returned as such.
If a continuation_token
is given the result will continue from last call.
If start_after
is given then keys only keys after start_with are returned. Note that is both start_after
and a continuation_token
is given then start_after argument is ignored.
If prefix is given, then only keys starting with the given prefix will be returned.
Streaming functions. Streaming function seeks to limit the amount of used memory used when operating of large objects by operating on streams.
List contents in bucket
Aws will return at most 1000 keys per request. If not all keys are returned, the function will return a continuation.
Keys in s3 are stored in lexicographical order, and also returned as such.
If a continuation_token
is given the result will continue from last call.
If start_after
is given then keys only keys after start_with are returned. Note that is both start_after
and a continuation_token
is given then start_after argument is ignored.
If prefix is given, then only keys starting with the given prefix will be returned.
Streaming functions. Streaming function seeks to limit the amount of used memory used when operating of large objects by operating on streams.
Helper function to handle error codes. The function handle redirects and throttling.
\ No newline at end of file
+ 'a result
Helper function to handle error codes. The function handle redirects and throttling.
diff --git a/aws-s3/Aws_s3/S3/index.html b/aws-s3/Aws_s3/S3/index.html
index 29df1a8..1606dda 100644
--- a/aws-s3/Aws_s3/S3/index.html
+++ b/aws-s3/Aws_s3/S3/index.html
@@ -1,2 +1,2 @@
-S3 (aws-s3.Aws_s3.S3) Up – aws-s3 » Aws_s3 » S3S3 functions All function requires a region
, scheme
and credentials
.
\ No newline at end of file
+S3 (aws-s3.Aws_s3.S3) Up – aws-s3 » Aws_s3 » S3S3 functions All function requires a region
, scheme
and credentials
.
diff --git a/aws-s3/Aws_s3/Types/index.html b/aws-s3/Aws_s3/Types/index.html
index 3f03e9c..a12cd57 100644
--- a/aws-s3/Aws_s3/Types/index.html
+++ b/aws-s3/Aws_s3/Types/index.html
@@ -1,2 +1,2 @@
-Types (aws-s3.Aws_s3.Types) Up – aws-s3 » Aws_s3 » Typesmodule type Io = sig ... end
Module for abstracting async and lwt
\ No newline at end of file
+Types (aws-s3.Aws_s3.Types) Up – aws-s3 » Aws_s3 » Typesmodule type Io = sig ... end
Module for abstracting async and lwt
diff --git a/aws-s3/Aws_s3/Types/module-type-Io/Deferred/Or_error/index.html b/aws-s3/Aws_s3/Types/module-type-Io/Deferred/Or_error/index.html
index 24f08c6..1660fe7 100644
--- a/aws-s3/Aws_s3/Types/module-type-Io/Deferred/Or_error/index.html
+++ b/aws-s3/Aws_s3/Types/module-type-Io/Deferred/Or_error/index.html
@@ -1,2 +1,2 @@
-Or_error (aws-s3.Aws_s3.Types.Io.Deferred.Or_error) Up – aws-s3 » Aws_s3 » Types » Io » Deferred » Or_errortype nonrec 'a t = ( 'a , exn ) Stdlib .result t
val catch : ( unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
\ No newline at end of file
+Or_error (aws-s3.Aws_s3.Types.Io.Deferred.Or_error) Up – aws-s3 » Aws_s3 » Types » Io » Deferred » Or_errortype nonrec 'a t = ('a , exn) Stdlib .result t
val catch : (unit -> 'a t ) -> 'a t
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
diff --git a/aws-s3/Aws_s3/Types/module-type-Io/Deferred/index.html b/aws-s3/Aws_s3/Types/module-type-Io/Deferred/index.html
index 64b0927..eef2732 100644
--- a/aws-s3/Aws_s3/Types/module-type-Io/Deferred/index.html
+++ b/aws-s3/Aws_s3/Types/module-type-Io/Deferred/index.html
@@ -1,5 +1,5 @@
-Deferred (aws-s3.Aws_s3.Types.Io.Deferred) Up – aws-s3 » Aws_s3 » Types » Io » Deferredval after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ( 'a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ( 'a -> 'b ) -> 'b t
val (>>=?) :
- ( 'a , 'c ) Stdlib .result t ->
- ( 'a -> ( 'b , 'c ) Stdlib .result t ) ->
- ( 'b , 'c ) Stdlib .result t
\ No newline at end of file
+Deferred (aws-s3.Aws_s3.Types.Io.Deferred) Up – aws-s3 » Aws_s3 » Types » Io » Deferredval after : float -> unit t
val async : unit t -> unit
val (>>=) : 'a t -> ('a -> 'b t ) -> 'b t
val (>>|) : 'a t -> ('a -> 'b ) -> 'b t
val (>>=?) :
+ ('a , 'c ) Stdlib .result t ->
+ ('a -> ('b , 'c ) Stdlib .result t ) ->
+ ('b , 'c ) Stdlib .result t
diff --git a/aws-s3/Aws_s3/Types/module-type-Io/Pipe/index.html b/aws-s3/Aws_s3/Types/module-type-Io/Pipe/index.html
index cf77d79..02a8633 100644
--- a/aws-s3/Aws_s3/Types/module-type-Io/Pipe/index.html
+++ b/aws-s3/Aws_s3/Types/module-type-Io/Pipe/index.html
@@ -1,2 +1,2 @@
-Pipe (aws-s3.Aws_s3.Types.Io.Pipe) Up – aws-s3 » Aws_s3 » Types » Io » Pipetype 'a writer = ( 'a , {writer_phantom}3 ) pipe
type 'a reader = ( 'a , {reader_phantom}4 ) pipe
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ( 'a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
\ No newline at end of file
+Pipe (aws-s3.Aws_s3.Types.Io.Pipe) Up – aws-s3 » Aws_s3 » Types » Io » Pipetype 'a writer = ('a , {writer_phantom}3 ) pipe
type 'a reader = ('a , {reader_phantom}4 ) pipe
Create a reader given a function f that fills the reader. Once f completes, the reader is closed
Create a writer given a function f that reads off the writer. Once f completes, the writer is closed
Create a reader/writer pipe. Data written to the reader can be read by the writer. Closing one end will close both ends.
Flush a writer. The result we be determined once all elements in the pipe has been consumed
Write to a writer. If the writer is closed, the function raises an exception
val close_reader : 'a reader -> unit
Read one element from a reader. The function will block until an element becomes available or the reader is closed, in which case None
is returned
Transfer all data from the reader to the writer. The function becomes determined when the reader or writer is closed
val is_closed : ('a , 'b ) pipe -> bool
Return the state of a pipe
Wait for a pipe to be closed. The function is determined once the pipe is closed. the function can be called multiple times.
Note that not all elements may have been consumed yet.
diff --git a/aws-s3/Aws_s3/Types/module-type-Io/index.html b/aws-s3/Aws_s3/Types/module-type-Io/index.html
index 6b99758..39db2b1 100644
--- a/aws-s3/Aws_s3/Types/module-type-Io/index.html
+++ b/aws-s3/Aws_s3/Types/module-type-Io/index.html
@@ -1,2 +1,2 @@
-Io (aws-s3.Aws_s3.Types.Io) Up – aws-s3 » Aws_s3 » Types » Iomodule Pipe : sig ... end
Module mimicking Async.Pipe
\ No newline at end of file
+Io (aws-s3.Aws_s3.Types.Io) Up – aws-s3 » Aws_s3 » Types » Iomodule Pipe : sig ... end
Module mimicking Async.Pipe
diff --git a/aws-s3/Aws_s3/index.html b/aws-s3/Aws_s3/index.html
index 74d52b4..458d6d0 100644
--- a/aws-s3/Aws_s3/index.html
+++ b/aws-s3/Aws_s3/index.html
@@ -1,2 +1,2 @@
-Aws_s3 (aws-s3.Aws_s3) Up – aws-s3 » Aws_s3module Types : sig ... end
\ No newline at end of file
+Aws_s3 (aws-s3.Aws_s3) Up – aws-s3 » Aws_s3module Types : sig ... end
diff --git a/aws-s3/index.html b/aws-s3/index.html
index 72aa09e..15f38ba 100644
--- a/aws-s3/index.html
+++ b/aws-s3/index.html
@@ -1,2 +1,2 @@
-index (aws-s3.index) Up – aws-s3 Library aws-s3The entry point of this library is the module: Aws_s3
.
\ No newline at end of file
+index (aws-s3.index) Up – aws-s3 Library aws-s3The entry point of this library is the module: Aws_s3
.
diff --git a/highlight.pack.js b/highlight.pack.js
deleted file mode 100644
index 2e55d49..0000000
--- a/highlight.pack.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! highlight.js v9.15.8 | BSD3 License | git.io/hljslicense */
-!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(a){var f=[],u=Object.keys,N={},c={},n=/^(no-?highlight|plain|text)$/i,s=/\blang(?:uage)?-([\w-]+)\b/i,t=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,r={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM",REGEXP_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},b="",h={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function _(e){return e.replace(/&/g,"&").replace(//g,">")}function E(e){return e.nodeName.toLowerCase()}function v(e,n){var t=e&&e.exec(n);return t&&0===t.index}function l(e){return n.test(e)}function g(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function R(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:"start",offset:t,node:r}),t=e(r,t),E(r).match(/br|hr|img|input/)||a.push({event:"stop",offset:t,node:r}));return t}(e,0),a}function i(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(i)}}function m(o){function s(e){return e&&e.source||e}function c(e,n){return new RegExp(s(e),"m"+(o.cI?"i":"")+(n?"g":""))}!function n(t,e){if(!t.compiled){if(t.compiled=!0,t.k=t.k||t.bK,t.k){function r(t,e){o.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var n=e.split("|");a[n[0]]=[t,n[1]?Number(n[1]):1]})}var a={};"string"==typeof t.k?r("keyword",t.k):u(t.k).forEach(function(e){r(e,t.k[e])}),t.k=a}t.lR=c(t.l||/\w+/,!0),e&&(t.bK&&(t.b="\\b("+t.bK.split(" ").join("|")+")\\b"),t.b||(t.b=/\B|\b/),t.bR=c(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\B|\b/),t.e&&(t.eR=c(t.e)),t.tE=s(t.e)||"",t.eW&&e.tE&&(t.tE+=(t.e?"|":"")+e.tE)),t.i&&(t.iR=c(t.i)),null==t.r&&(t.r=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return function(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return g(n,{v:null},e)})),n.cached_variants||n.eW&&[g(n)]||[n]}("self"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e);var i=t.c.map(function(e){return e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([t.tE,t.i]).map(s).filter(Boolean);t.t=i.length?c(function(e,n){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i')+n+(t?"":b):n}function o(){E+=null!=l.sL?function(){var e="string"==typeof l.sL;if(e&&!N[l.sL])return _(g);var n=e?C(l.sL,g,!0,f[l.sL]):O(g,l.sL.length?l.sL:void 0);return 0")+'"');return g+=n,n.length||1}var s=B(e);if(!s)throw new Error('Unknown language: "'+e+'"');m(s);var a,l=t||s,f={},E="";for(a=l;a!==s;a=a.parent)a.cN&&(E=c(a.cN,"",!0)+E);var g="",R=0;try{for(var d,p,M=0;l.t.lastIndex=M,d=l.t.exec(n);)p=r(n.substring(M,d.index),d[0]),M=d.index+p;for(r(n.substr(M)),a=l;a.parent;a=a.parent)a.cN&&(E+=b);return{r:R,value:E,language:e,top:l}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:_(n)};throw e}}function O(t,e){e=e||h.languages||u(N);var r={r:0,value:_(t)},a=r;return e.filter(B).filter(M).forEach(function(e){var n=C(e,t,!1);n.language=e,n.r>a.r&&(a=n),n.r>r.r&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function d(e){return h.tabReplace||h.useBR?e.replace(t,function(e,n){return h.useBR&&"\n"===e?" ":h.tabReplace?n.replace(/\t/g,h.tabReplace):""}):e}function o(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=s.exec(i))return B(t[1])?t[1]:"no-highlight";for(n=0,r=(i=i.split(/\s+/)).length;n/g,"\n"):n=e,i=n.textContent,r=o?C(o,i,!0):O(i),(t=R(n)).length&&((a=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=r.value,r.value=function(e,n,t){var r=0,a="",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){a+=""+E(e)+">"}function s(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var l=o();if(a+=_(t.substring(r,l[0].offset)),r=l[0].offset,l===e){for(i.reverse().forEach(u);s(l.splice(0,1)[0]),(l=o())===e&&l.length&&l[0].offset===r;);i.reverse().forEach(c)}else"start"===l[0].event?i.push(l[0].node):i.pop(),s(l.splice(0,1)[0])}return a+_(t.substr(r))}(t,R(a),i)),r.value=d(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function p(){if(!p.called){p.called=!0;var e=document.querySelectorAll("pre code");f.forEach.call(e,o)}}function B(e){return e=(e||"").toLowerCase(),N[e]||N[c[e]]}function M(e){var n=B(e);return n&&!n.disableAutodetect}return a.highlight=C,a.highlightAuto=O,a.fixMarkup=d,a.highlightBlock=o,a.configure=function(e){h=g(h,e)},a.initHighlighting=p,a.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",p,!1),addEventListener("load",p,!1)},a.registerLanguage=function(n,e){var t=N[n]=e(a);i(t),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return u(N)},a.getLanguage=B,a.autoDetection=M,a.inherit=g,a.IR=a.IDENT_RE="[a-zA-Z]\\w*",a.UIR=a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NR=a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.CNR=a.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BNR=a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RSR=a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BE=a.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},a.ASM=a.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:"comment",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C("//","$"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C("/\\*","\\*/"),a.HCM=a.HASH_COMMENT_MODE=a.C("#","$"),a.NM=a.NUMBER_MODE={cN:"number",b:a.NR,r:0},a.CNM=a.C_NUMBER_MODE={cN:"number",b:a.CNR,r:0},a.BNM=a.BINARY_NUMBER_MODE={cN:"number",b:a.BNR,r:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:"number",b:a.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},a.RM=a.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[a.BE,{b:/\[/,e:/\]/,r:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:"title",b:a.IR,r:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:"title",b:a.UIR,r:0},a.METHOD_GUARD={b:"\\.\\s*"+a.UIR,r:0},a});hljs.registerLanguage("ocaml",function(e){return{aliases:["ml"],k:{keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},i:/\/\/|>>/,l:"[a-z_]\\w*!?",c:[{cN:"literal",b:"\\[(\\|\\|)?\\]|\\(\\)",r:0},e.C("\\(\\*","\\*\\)",{c:["self"]}),{cN:"symbol",b:"'[A-Za-z_](?!')[\\w']*"},{cN:"type",b:"`[A-Z][\\w']*"},{cN:"type",b:"\\b[A-Z][\\w']*",r:0},{b:"[a-z_]\\w*'[\\w']*",r:0},e.inherit(e.ASM,{cN:"string",r:0}),e.inherit(e.QSM,{i:null}),{cN:"number",b:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",r:0},{b:/[-=]>/}]}});hljs.registerLanguage("reasonml",function(r){var e="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",c="("+["||","&&","++","**","+.","*","/","*.","/.","...","|>"].map(function(r){return r.split("").map(function(r){return"\\"+r}).join("")}).join("|")+"|==|===)",n="\\s+"+c+"\\s+",t={keyword:"and as asr assert begin class constraint do done downto else end exception externalfor fun function functor if in include inherit initializerland lazy let lor lsl lsr lxor match method mod module mutable new nonrecobject of open or private rec sig struct then to try type val virtual when while with",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ",literal:"true false"},i="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",s={cN:"number",r:0,v:[{b:i},{b:"\\(\\-"+i+"\\)"}]},b={cN:"operator",r:0,b:c},o=[{cN:"identifier",r:0,b:e},b,s],l=[r.QSM,b,{cN:"module",b:"\\b"+a,rB:!0,e:".",c:[{cN:"identifier",b:a,r:0}]}],u=[{cN:"module",b:"\\b"+a,rB:!0,e:".",r:0,c:[{cN:"identifier",b:a,r:0}]}],_={cN:"function",r:0,k:t,v:[{b:"\\s(\\(\\.?.*?\\)|"+e+")\\s*=>",e:"\\s*=>",rB:!0,r:0,c:[{cN:"params",v:[{b:e},{b:"~?[a-z$_][0-9a-zA-Z$_]*(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?(s*:s*[a-z$_][0-9a-z$_]*((s*('?[a-z$_][0-9a-z$_]*s*(,'?[a-z$_][0-9a-z$_]*)*)?s*))?)?"},{b:/\(\s*\)/}]}]},{b:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",e:"\\s=>",rB:!0,r:0,c:[{cN:"params",r:0,v:[{b:e,e:"(,|\\n|\\))",r:0,c:[b,{cN:"typing",b:":",e:"(,|\\n)",rB:!0,r:0,c:u}]}]}]},{b:"\\(\\.\\s"+e+"\\)\\s*=>"}]};l.push(_);var N={cN:"constructor",b:a+"\\(",e:"\\)",i:"\\n",k:t,c:[r.QSM,b,{cN:"params",b:"\\b"+e}]},d={cN:"pattern-match",b:"\\|",rB:!0,k:t,e:"=>",r:0,c:[N,b,{r:0,cN:"constructor",b:a}]},z={cN:"module-access",k:t,rB:!0,v:[{b:"\\b("+a+"\\.)+"+e},{b:"\\b("+a+"\\.)+\\(",e:"\\)",rB:!0,c:[_,{b:"\\(",e:"\\)",skip:!0}].concat(l)},{b:"\\b("+a+"\\.)+{",e:"}"}],c:l};return u.push(z),{aliases:["re"],k:t,i:"(:\\-|:=|\\${|\\+=)",c:[r.C("/\\*","\\*/",{i:"^(\\#,\\/\\/)"}),{cN:"character",b:"'(\\\\[^']+|[^'])'",i:"\\n",r:0},r.QSM,{cN:"literal",b:"\\(\\)",r:0},{cN:"literal",b:"\\[\\|",e:"\\|\\]",r:0,c:o},{cN:"literal",b:"\\[",e:"\\]",r:0,c:o},N,{cN:"operator",b:n,i:"\\-\\->",r:0},s,r.CLCM,d,_,{cN:"module-def",b:"\\bmodule\\s+"+e+"\\s+"+a+"\\s+=\\s+{",e:"}",rB:!0,k:t,r:0,c:[{cN:"module",r:0,b:a},{b:"{",e:"}",skip:!0}].concat(l)},z]}});
\ No newline at end of file
diff --git a/index.html b/index.html
index dc5967f..44b915b 100644
--- a/index.html
+++ b/index.html
@@ -2,7 +2,7 @@
index
-
+
@@ -11,9 +11,9 @@
diff --git a/odoc.support/fonts/KaTeX_AMS-Regular.woff2 b/odoc.support/fonts/KaTeX_AMS-Regular.woff2
new file mode 100644
index 0000000..0acaaff
Binary files /dev/null and b/odoc.support/fonts/KaTeX_AMS-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Caligraphic-Bold.woff2 b/odoc.support/fonts/KaTeX_Caligraphic-Bold.woff2
new file mode 100644
index 0000000..f390922
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Caligraphic-Bold.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Caligraphic-Regular.woff2 b/odoc.support/fonts/KaTeX_Caligraphic-Regular.woff2
new file mode 100644
index 0000000..75344a1
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Caligraphic-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Fraktur-Bold.woff2 b/odoc.support/fonts/KaTeX_Fraktur-Bold.woff2
new file mode 100644
index 0000000..395f28b
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Fraktur-Bold.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Fraktur-Regular.woff2 b/odoc.support/fonts/KaTeX_Fraktur-Regular.woff2
new file mode 100644
index 0000000..735f694
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Fraktur-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Main-Bold.woff2 b/odoc.support/fonts/KaTeX_Main-Bold.woff2
new file mode 100644
index 0000000..ab2ad21
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Main-Bold.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Main-BoldItalic.woff2 b/odoc.support/fonts/KaTeX_Main-BoldItalic.woff2
new file mode 100644
index 0000000..5931794
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Main-BoldItalic.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Main-Italic.woff2 b/odoc.support/fonts/KaTeX_Main-Italic.woff2
new file mode 100644
index 0000000..b50920e
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Main-Italic.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Main-Regular.woff2 b/odoc.support/fonts/KaTeX_Main-Regular.woff2
new file mode 100644
index 0000000..eb24a7b
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Main-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Math-BoldItalic.woff2 b/odoc.support/fonts/KaTeX_Math-BoldItalic.woff2
new file mode 100644
index 0000000..2965702
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Math-BoldItalic.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Math-Italic.woff2 b/odoc.support/fonts/KaTeX_Math-Italic.woff2
new file mode 100644
index 0000000..215c143
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Math-Italic.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_SansSerif-Bold.woff2 b/odoc.support/fonts/KaTeX_SansSerif-Bold.woff2
new file mode 100644
index 0000000..cfaa3bd
Binary files /dev/null and b/odoc.support/fonts/KaTeX_SansSerif-Bold.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_SansSerif-Italic.woff2 b/odoc.support/fonts/KaTeX_SansSerif-Italic.woff2
new file mode 100644
index 0000000..349c06d
Binary files /dev/null and b/odoc.support/fonts/KaTeX_SansSerif-Italic.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_SansSerif-Regular.woff2 b/odoc.support/fonts/KaTeX_SansSerif-Regular.woff2
new file mode 100644
index 0000000..a90eea8
Binary files /dev/null and b/odoc.support/fonts/KaTeX_SansSerif-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Script-Regular.woff2 b/odoc.support/fonts/KaTeX_Script-Regular.woff2
new file mode 100644
index 0000000..b3048fc
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Script-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Size1-Regular.woff2 b/odoc.support/fonts/KaTeX_Size1-Regular.woff2
new file mode 100644
index 0000000..c5a8462
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Size1-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Size2-Regular.woff2 b/odoc.support/fonts/KaTeX_Size2-Regular.woff2
new file mode 100644
index 0000000..e1bccfe
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Size2-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Size3-Regular.woff2 b/odoc.support/fonts/KaTeX_Size3-Regular.woff2
new file mode 100644
index 0000000..249a286
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Size3-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Size4-Regular.woff2 b/odoc.support/fonts/KaTeX_Size4-Regular.woff2
new file mode 100644
index 0000000..680c130
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Size4-Regular.woff2 differ
diff --git a/odoc.support/fonts/KaTeX_Typewriter-Regular.woff2 b/odoc.support/fonts/KaTeX_Typewriter-Regular.woff2
new file mode 100644
index 0000000..771f1af
Binary files /dev/null and b/odoc.support/fonts/KaTeX_Typewriter-Regular.woff2 differ
diff --git a/odoc.support/fonts/fira-mono-v14-latin-500.woff2 b/odoc.support/fonts/fira-mono-v14-latin-500.woff2
new file mode 100644
index 0000000..9d07a63
Binary files /dev/null and b/odoc.support/fonts/fira-mono-v14-latin-500.woff2 differ
diff --git a/odoc.support/fonts/fira-mono-v14-latin-regular.woff2 b/odoc.support/fonts/fira-mono-v14-latin-regular.woff2
new file mode 100644
index 0000000..edc71a8
Binary files /dev/null and b/odoc.support/fonts/fira-mono-v14-latin-regular.woff2 differ
diff --git a/odoc.support/fonts/fira-sans-v17-latin-500.woff2 b/odoc.support/fonts/fira-sans-v17-latin-500.woff2
new file mode 100644
index 0000000..24bb8f4
Binary files /dev/null and b/odoc.support/fonts/fira-sans-v17-latin-500.woff2 differ
diff --git a/odoc.support/fonts/fira-sans-v17-latin-500italic.woff2 b/odoc.support/fonts/fira-sans-v17-latin-500italic.woff2
new file mode 100644
index 0000000..1a8b72d
Binary files /dev/null and b/odoc.support/fonts/fira-sans-v17-latin-500italic.woff2 differ
diff --git a/odoc.support/fonts/fira-sans-v17-latin-700.woff2 b/odoc.support/fonts/fira-sans-v17-latin-700.woff2
new file mode 100644
index 0000000..40b8a1c
Binary files /dev/null and b/odoc.support/fonts/fira-sans-v17-latin-700.woff2 differ
diff --git a/odoc.support/fonts/fira-sans-v17-latin-700italic.woff2 b/odoc.support/fonts/fira-sans-v17-latin-700italic.woff2
new file mode 100644
index 0000000..bdf8f5f
Binary files /dev/null and b/odoc.support/fonts/fira-sans-v17-latin-700italic.woff2 differ
diff --git a/odoc.support/fonts/fira-sans-v17-latin-italic.woff2 b/odoc.support/fonts/fira-sans-v17-latin-italic.woff2
new file mode 100644
index 0000000..b9619dd
Binary files /dev/null and b/odoc.support/fonts/fira-sans-v17-latin-italic.woff2 differ
diff --git a/odoc.support/fonts/fira-sans-v17-latin-regular.woff2 b/odoc.support/fonts/fira-sans-v17-latin-regular.woff2
new file mode 100644
index 0000000..d31eba8
Binary files /dev/null and b/odoc.support/fonts/fira-sans-v17-latin-regular.woff2 differ
diff --git a/odoc.support/fonts/noticia-text-v15-latin-700.woff2 b/odoc.support/fonts/noticia-text-v15-latin-700.woff2
new file mode 100644
index 0000000..536fbe1
Binary files /dev/null and b/odoc.support/fonts/noticia-text-v15-latin-700.woff2 differ
diff --git a/odoc.support/fonts/noticia-text-v15-latin-italic.woff2 b/odoc.support/fonts/noticia-text-v15-latin-italic.woff2
new file mode 100644
index 0000000..9b83b07
Binary files /dev/null and b/odoc.support/fonts/noticia-text-v15-latin-italic.woff2 differ
diff --git a/odoc.support/fonts/noticia-text-v15-latin-regular.woff2 b/odoc.support/fonts/noticia-text-v15-latin-regular.woff2
new file mode 100644
index 0000000..efff29f
Binary files /dev/null and b/odoc.support/fonts/noticia-text-v15-latin-regular.woff2 differ
diff --git a/odoc.support/highlight.pack.js b/odoc.support/highlight.pack.js
new file mode 100644
index 0000000..7d1bcd0
--- /dev/null
+++ b/odoc.support/highlight.pack.js
@@ -0,0 +1,634 @@
+/*!
+ Highlight.js v11.7.0 (git: 82688fad18)
+ (c) 2006-2022 undefined and other contributors
+ License: BSD-3-Clause
+ */
+var hljs=function(){"use strict";var e={exports:{}};function t(e){
+return e instanceof Map?e.clear=e.delete=e.set=()=>{
+throw Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=()=>{
+throw Error("set is read-only")
+}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach((n=>{var i=e[n]
+;"object"!=typeof i||Object.isFrozen(i)||t(i)})),e}
+e.exports=t,e.exports.default=t;class n{constructor(e){
+void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
+ignoreMatch(){this.isMatchIgnored=!0}}function i(e){
+return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")
+}function r(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
+;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}
+const s=e=>!!e.scope||e.sublanguage&&e.language;class o{constructor(e,t){
+this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
+this.buffer+=i(e)}openNode(e){if(!s(e))return;let t=""
+;t=e.sublanguage?"language-"+e.language:((e,{prefix:t})=>{if(e.includes(".")){
+const n=e.split(".")
+;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ")
+}return`${t}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(t)}
+closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){
+this.buffer+=``}}const a=(e={})=>{const t={children:[]}
+;return Object.assign(t,e),t};class c{constructor(){
+this.rootNode=a(),this.stack=[this.rootNode]}get top(){
+return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
+this.top.children.push(e)}openNode(e){const t=a({scope:e})
+;this.add(t),this.stack.push(t)}closeNode(){
+if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
+for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
+walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
+return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
+t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
+"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
+c._collapse(e)})))}}class l extends c{constructor(e){super(),this.options=e}
+addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}
+addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root
+;n.sublanguage=!0,n.language=t,this.add(n)}toHTML(){
+return new o(this,this.options).value()}finalize(){return!0}}function g(e){
+return e?"string"==typeof e?e:e.source:null}function d(e){return p("(?=",e,")")}
+function u(e){return p("(?:",e,")*")}function h(e){return p("(?:",e,")?")}
+function p(...e){return e.map((e=>g(e))).join("")}function f(...e){const t=(e=>{
+const t=e[e.length-1]
+;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}
+})(e);return"("+(t.capture?"":"?:")+e.map((e=>g(e))).join("|")+")"}
+function b(e){return RegExp(e.toString()+"|").exec("").length-1}
+const m=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./
+;function E(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n
+;let i=g(e),r="";for(;i.length>0;){const e=m.exec(i);if(!e){r+=i;break}
+r+=i.substring(0,e.index),
+i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+(Number(e[1])+t):(r+=e[0],
+"("===e[0]&&n++)}return r})).map((e=>`(${e})`)).join(t)}
+const x="[a-zA-Z]\\w*",w="[a-zA-Z_]\\w*",y="\\b\\d+(\\.\\d+)?",_="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",O="\\b(0b[01]+)",v={
+begin:"\\\\[\\s\\S]",relevance:0},N={scope:"string",begin:"'",end:"'",
+illegal:"\\n",contains:[v]},k={scope:"string",begin:'"',end:'"',illegal:"\\n",
+contains:[v]},M=(e,t,n={})=>{const i=r({scope:"comment",begin:e,end:t,
+contains:[]},n);i.contains.push({scope:"doctag",
+begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",
+end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})
+;const s=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/)
+;return i.contains.push({begin:p(/[ ]+/,"(",s,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i
+},S=M("//","$"),R=M("/\\*","\\*/"),j=M("#","$");var A=Object.freeze({
+__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:x,UNDERSCORE_IDENT_RE:w,
+NUMBER_RE:y,C_NUMBER_RE:_,BINARY_NUMBER_RE:O,
+RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
+SHEBANG:(e={})=>{const t=/^#![ ]*\//
+;return e.binary&&(e.begin=p(t,/.*\b/,e.binary,/\b.*/)),r({scope:"meta",begin:t,
+end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},
+BACKSLASH_ESCAPE:v,APOS_STRING_MODE:N,QUOTE_STRING_MODE:k,PHRASAL_WORDS_MODE:{
+begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
+},COMMENT:M,C_LINE_COMMENT_MODE:S,C_BLOCK_COMMENT_MODE:R,HASH_COMMENT_MODE:j,
+NUMBER_MODE:{scope:"number",begin:y,relevance:0},C_NUMBER_MODE:{scope:"number",
+begin:_,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:O,relevance:0},
+REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,
+end:/\/[gimuy]*/,illegal:/\n/,contains:[v,{begin:/\[/,end:/\]/,relevance:0,
+contains:[v]}]}]},TITLE_MODE:{scope:"title",begin:x,relevance:0},
+UNDERSCORE_TITLE_MODE:{scope:"title",begin:w,relevance:0},METHOD_GUARD:{
+begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
+"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
+t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function I(e,t){
+"."===e.input[e.index-1]&&t.ignoreMatch()}function T(e,t){
+void 0!==e.className&&(e.scope=e.className,delete e.className)}function L(e,t){
+t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
+e.__beforeBegin=I,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
+void 0===e.relevance&&(e.relevance=0))}function B(e,t){
+Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function D(e,t){
+if(e.match){
+if(e.begin||e.end)throw Error("begin & end are not supported with match")
+;e.begin=e.match,delete e.match}}function H(e,t){
+void 0===e.relevance&&(e.relevance=1)}const P=(e,t)=>{if(!e.beforeMatch)return
+;if(e.starts)throw Error("beforeMatch cannot be used with starts")
+;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]
+})),e.keywords=n.keywords,e.begin=p(n.beforeMatch,d(n.begin)),e.starts={
+relevance:0,contains:[Object.assign(n,{endsParent:!0})]
+},e.relevance=0,delete n.beforeMatch
+},C=["of","and","for","in","not","or","if","then","parent","list","value"]
+;function $(e,t,n="keyword"){const i=Object.create(null)
+;return"string"==typeof e?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((n=>{
+Object.assign(i,$(e[n],t,n))})),i;function r(e,n){
+t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
+;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){
+return t?Number(t):(e=>C.includes(e.toLowerCase()))(e)?0:1}const z={},K=e=>{
+console.error(e)},W=(e,...t)=>{console.log("WARN: "+e,...t)},X=(e,t)=>{
+z[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0)
+},G=Error();function Z(e,t,{key:n}){let i=0;const r=e[n],s={},o={}
+;for(let e=1;e<=t.length;e++)o[e+i]=r[e],s[e+i]=!0,i+=b(t[e-1])
+;e[n]=o,e[n]._emit=s,e[n]._multi=!0}function F(e){(e=>{
+e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,
+delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={
+_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope
+}),(e=>{if(Array.isArray(e.begin)){
+if(e.skip||e.excludeBegin||e.returnBegin)throw K("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),
+G
+;if("object"!=typeof e.beginScope||null===e.beginScope)throw K("beginScope must be object"),
+G;Z(e,e.begin,{key:"beginScope"}),e.begin=E(e.begin,{joinWith:""})}})(e),(e=>{
+if(Array.isArray(e.end)){
+if(e.skip||e.excludeEnd||e.returnEnd)throw K("skip, excludeEnd, returnEnd not compatible with endScope: {}"),
+G
+;if("object"!=typeof e.endScope||null===e.endScope)throw K("endScope must be object"),
+G;Z(e,e.end,{key:"endScope"}),e.end=E(e.end,{joinWith:""})}})(e)}function V(e){
+function t(t,n){
+return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))
+}class n{constructor(){
+this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
+addRule(e,t){
+t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
+this.matchAt+=b(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)
+;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(E(e,{joinWith:"|"
+}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex
+;const t=this.matcherRe.exec(e);if(!t)return null
+;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
+;return t.splice(0,n),Object.assign(t,i)}}class i{constructor(){
+this.rules=[],this.multiRegexes=[],
+this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
+if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n
+;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
+t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
+return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
+this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
+const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
+;let n=t.exec(e)
+;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
+const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
+return n&&(this.regexIndex+=n.position+1,
+this.regexIndex===this.count&&this.considerAll()),n}}
+if(e.compilerExtensions||(e.compilerExtensions=[]),
+e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.")
+;return e.classNameAliases=r(e.classNameAliases||{}),function n(s,o){const a=s
+;if(s.isCompiled)return a
+;[T,D,F,P].forEach((e=>e(s,o))),e.compilerExtensions.forEach((e=>e(s,o))),
+s.__beforeBegin=null,[L,B,H].forEach((e=>e(s,o))),s.isCompiled=!0;let c=null
+;return"object"==typeof s.keywords&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),
+c=s.keywords.$pattern,
+delete s.keywords.$pattern),c=c||/\w+/,s.keywords&&(s.keywords=$(s.keywords,e.case_insensitive)),
+a.keywordPatternRe=t(c,!0),
+o&&(s.begin||(s.begin=/\B|\b/),a.beginRe=t(a.begin),s.end||s.endsWithParent||(s.end=/\B|\b/),
+s.end&&(a.endRe=t(a.end)),
+a.terminatorEnd=g(a.end)||"",s.endsWithParent&&o.terminatorEnd&&(a.terminatorEnd+=(s.end?"|":"")+o.terminatorEnd)),
+s.illegal&&(a.illegalRe=t(s.illegal)),
+s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>r(e,{
+variants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?r(e,{
+starts:e.starts?r(e.starts):null
+}):Object.isFrozen(e)?r(e):e))("self"===e?s:e)))),s.contains.forEach((e=>{n(e,a)
+})),s.starts&&n(s.starts,o),a.matcher=(e=>{const t=new i
+;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
+}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
+}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function q(e){
+return!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{
+constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}
+const Y=i,Q=r,ee=Symbol("nomatch");var te=(t=>{
+const i=Object.create(null),r=Object.create(null),s=[];let o=!0
+;const a="Could not find the language '{}', did you forget to load/include a language module?",c={
+disableAutodetect:!0,name:"Plain text",contains:[]};let g={
+ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,
+languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
+cssSelector:"pre code",languages:null,__emitter:l};function b(e){
+return g.noHighlightRe.test(e)}function m(e,t,n){let i="",r=""
+;"object"==typeof t?(i=e,
+n=t.ignoreIllegals,r=t.language):(X("10.7.0","highlight(lang, code, ...args) has been deprecated."),
+X("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
+r=e,i=t),void 0===n&&(n=!0);const s={code:i,language:r};k("before:highlight",s)
+;const o=s.result?s.result:E(s.language,s.code,n)
+;return o.code=s.code,k("after:highlight",o),o}function E(e,t,r,s){
+const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(S)
+;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(S),n=""
+;for(;t;){n+=S.substring(e,t.index)
+;const r=y.case_insensitive?t[0].toLowerCase():t[0],s=(i=r,N.keywords[i]);if(s){
+const[e,i]=s
+;if(M.addText(n),n="",c[r]=(c[r]||0)+1,c[r]<=7&&(R+=i),e.startsWith("_"))n+=t[0];else{
+const n=y.classNameAliases[e]||e;M.addKeyword(t[0],n)}}else n+=t[0]
+;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(S)}var i
+;n+=S.substring(e),M.addText(n)}function d(){null!=N.subLanguage?(()=>{
+if(""===S)return;let e=null;if("string"==typeof N.subLanguage){
+if(!i[N.subLanguage])return void M.addText(S)
+;e=E(N.subLanguage,S,!0,k[N.subLanguage]),k[N.subLanguage]=e._top
+}else e=x(S,N.subLanguage.length?N.subLanguage:null)
+;N.relevance>0&&(R+=e.relevance),M.addSublanguage(e._emitter,e.language)
+})():l(),S=""}function u(e,t){let n=1;const i=t.length-1;for(;n<=i;){
+if(!e._emit[n]){n++;continue}const i=y.classNameAliases[e[n]]||e[n],r=t[n]
+;i?M.addKeyword(r,i):(S=r,l(),S=""),n++}}function h(e,t){
+return e.scope&&"string"==typeof e.scope&&M.openNode(y.classNameAliases[e.scope]||e.scope),
+e.beginScope&&(e.beginScope._wrap?(M.addKeyword(S,y.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),
+S=""):e.beginScope._multi&&(u(e.beginScope,t),S="")),N=Object.create(e,{parent:{
+value:N}}),N}function p(e,t,i){let r=((e,t)=>{const n=e&&e.exec(t)
+;return n&&0===n.index})(e.endRe,i);if(r){if(e["on:end"]){const i=new n(e)
+;e["on:end"](t,i),i.isMatchIgnored&&(r=!1)}if(r){
+for(;e.endsParent&&e.parent;)e=e.parent;return e}}
+if(e.endsWithParent)return p(e.parent,t,i)}function f(e){
+return 0===N.matcher.regexIndex?(S+=e[0],1):(I=!0,0)}function b(e){
+const n=e[0],i=t.substring(e.index),r=p(N,e,i);if(!r)return ee;const s=N
+;N.endScope&&N.endScope._wrap?(d(),
+M.addKeyword(n,N.endScope._wrap)):N.endScope&&N.endScope._multi?(d(),
+u(N.endScope,e)):s.skip?S+=n:(s.returnEnd||s.excludeEnd||(S+=n),
+d(),s.excludeEnd&&(S=n));do{
+N.scope&&M.closeNode(),N.skip||N.subLanguage||(R+=N.relevance),N=N.parent
+}while(N!==r.parent);return r.starts&&h(r.starts,e),s.returnEnd?0:n.length}
+let m={};function w(i,s){const a=s&&s[0];if(S+=i,null==a)return d(),0
+;if("begin"===m.type&&"end"===s.type&&m.index===s.index&&""===a){
+if(S+=t.slice(s.index,s.index+1),!o){const t=Error(`0 width match regex (${e})`)
+;throw t.languageName=e,t.badRule=m.rule,t}return 1}
+if(m=s,"begin"===s.type)return(e=>{
+const t=e[0],i=e.rule,r=new n(i),s=[i.__beforeBegin,i["on:begin"]]
+;for(const n of s)if(n&&(n(e,r),r.isMatchIgnored))return f(t)
+;return i.skip?S+=t:(i.excludeBegin&&(S+=t),
+d(),i.returnBegin||i.excludeBegin||(S=t)),h(i,e),i.returnBegin?0:t.length})(s)
+;if("illegal"===s.type&&!r){
+const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"")+'"')
+;throw e.mode=N,e}if("end"===s.type){const e=b(s);if(e!==ee)return e}
+if("illegal"===s.type&&""===a)return 1
+;if(A>1e5&&A>3*s.index)throw Error("potential infinite loop, way more iterations than matches")
+;return S+=a,a.length}const y=O(e)
+;if(!y)throw K(a.replace("{}",e)),Error('Unknown language: "'+e+'"')
+;const _=V(y);let v="",N=s||_;const k={},M=new g.__emitter(g);(()=>{const e=[]
+;for(let t=N;t!==y;t=t.parent)t.scope&&e.unshift(t.scope)
+;e.forEach((e=>M.openNode(e)))})();let S="",R=0,j=0,A=0,I=!1;try{
+for(N.matcher.considerAll();;){
+A++,I?I=!1:N.matcher.considerAll(),N.matcher.lastIndex=j
+;const e=N.matcher.exec(t);if(!e)break;const n=w(t.substring(j,e.index),e)
+;j=e.index+n}
+return w(t.substring(j)),M.closeAllNodes(),M.finalize(),v=M.toHTML(),{
+language:e,value:v,relevance:R,illegal:!1,_emitter:M,_top:N}}catch(n){
+if(n.message&&n.message.includes("Illegal"))return{language:e,value:Y(t),
+illegal:!0,relevance:0,_illegalBy:{message:n.message,index:j,
+context:t.slice(j-100,j+100),mode:n.mode,resultSoFar:v},_emitter:M};if(o)return{
+language:e,value:Y(t),illegal:!1,relevance:0,errorRaised:n,_emitter:M,_top:N}
+;throw n}}function x(e,t){t=t||g.languages||Object.keys(i);const n=(e=>{
+const t={value:Y(e),illegal:!1,relevance:0,_top:c,_emitter:new g.__emitter(g)}
+;return t._emitter.addText(e),t})(e),r=t.filter(O).filter(N).map((t=>E(t,e,!1)))
+;r.unshift(n);const s=r.sort(((e,t)=>{
+if(e.relevance!==t.relevance)return t.relevance-e.relevance
+;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1
+;if(O(t.language).supersetOf===e.language)return-1}return 0})),[o,a]=s,l=o
+;return l.secondBest=a,l}function w(e){let t=null;const n=(e=>{
+let t=e.className+" ";t+=e.parentNode?e.parentNode.className:""
+;const n=g.languageDetectRe.exec(t);if(n){const t=O(n[1])
+;return t||(W(a.replace("{}",n[1])),
+W("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}
+return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return
+;if(k("before:highlightElement",{el:e,language:n
+}),e.children.length>0&&(g.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),
+console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),
+console.warn("The element with unescaped HTML:"),
+console.warn(e)),g.throwUnescapedHTML))throw new J("One of your code blocks includes unescaped HTML.",e.innerHTML)
+;t=e;const i=t.textContent,s=n?m(i,{language:n,ignoreIllegals:!0}):x(i)
+;e.innerHTML=s.value,((e,t,n)=>{const i=t&&r[t]||n
+;e.classList.add("hljs"),e.classList.add("language-"+i)
+})(e,n,s.language),e.result={language:s.language,re:s.relevance,
+relevance:s.relevance},s.secondBest&&(e.secondBest={
+language:s.secondBest.language,relevance:s.secondBest.relevance
+}),k("after:highlightElement",{el:e,result:s,text:i})}let y=!1;function _(){
+"loading"!==document.readyState?document.querySelectorAll(g.cssSelector).forEach(w):y=!0
+}function O(e){return e=(e||"").toLowerCase(),i[e]||i[r[e]]}
+function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
+r[e.toLowerCase()]=t}))}function N(e){const t=O(e)
+;return t&&!t.disableAutodetect}function k(e,t){const n=e;s.forEach((e=>{
+e[n]&&e[n](t)}))}
+"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
+y&&_()}),!1),Object.assign(t,{highlight:m,highlightAuto:x,highlightAll:_,
+highlightElement:w,
+highlightBlock:e=>(X("10.7.0","highlightBlock will be removed entirely in v12.0"),
+X("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{g=Q(g,e)},
+initHighlighting:()=>{
+_(),X("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},
+initHighlightingOnLoad:()=>{
+_(),X("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")
+},registerLanguage:(e,n)=>{let r=null;try{r=n(t)}catch(t){
+if(K("Language definition for '{}' could not be registered.".replace("{}",e)),
+!o)throw t;K(t),r=c}
+r.name||(r.name=e),i[e]=r,r.rawDefinition=n.bind(null,t),r.aliases&&v(r.aliases,{
+languageName:e})},unregisterLanguage:e=>{delete i[e]
+;for(const t of Object.keys(r))r[t]===e&&delete r[t]},
+listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v,
+autoDetection:N,inherit:Q,addPlugin:e=>{(e=>{
+e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
+e["before:highlightBlock"](Object.assign({block:t.el},t))
+}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
+e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),s.push(e)}
+}),t.debugMode=()=>{o=!1},t.safeMode=()=>{o=!0
+},t.versionString="11.7.0",t.regex={concat:p,lookahead:d,either:f,optional:h,
+anyNumberOfTimes:u};for(const t in A)"object"==typeof A[t]&&e.exports(A[t])
+;return Object.assign(t,A),t})({});return te}()
+;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);/*! `reasonml` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var e=(()=>{"use strict";return e=>{
+const n="~?[a-z$_][0-9a-zA-Z$_]*",a="`?[A-Z$_][0-9a-zA-Z$_]*",s="("+["||","++","**","+.","*","/","*.","/.","..."].map((e=>e.split("").map((e=>"\\"+e)).join(""))).join("|")+"|\\|>|&&|==|===)",i="\\s+"+s+"\\s+",r={
+keyword:"and as asr assert begin class constraint do done downto else end exception external for fun function functor if in include inherit initializer land lazy let lor lsl lsr lxor match method mod module mutable new nonrec object of open or private rec sig struct then to try type val virtual when while with",
+built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 ref string unit ",
+literal:"true false"
+},l="\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",t={
+className:"number",relevance:0,variants:[{begin:l},{begin:"\\(-"+l+"\\)"}]},c={
+className:"operator",relevance:0,begin:s},o=[{className:"identifier",
+relevance:0,begin:n},c,t],g=[e.QUOTE_STRING_MODE,c,{className:"module",
+begin:"\\b"+a,returnBegin:!0,relevance:0,end:".",contains:[{
+className:"identifier",begin:a,relevance:0}]}],b=[{className:"module",
+begin:"\\b"+a,returnBegin:!0,end:".",relevance:0,contains:[{
+className:"identifier",begin:a,relevance:0}]}],m={className:"function",
+relevance:0,keywords:r,variants:[{begin:"\\s(\\(\\.?.*?\\)|"+n+")\\s*=>",
+end:"\\s*=>",returnBegin:!0,relevance:0,contains:[{className:"params",
+variants:[{begin:n},{
+begin:"~?[a-z$_][0-9a-zA-Z$_]*(\\s*:\\s*[a-z$_][0-9a-z$_]*(\\(\\s*('?[a-z$_][0-9a-z$_]*\\s*(,'?[a-z$_][0-9a-z$_]*\\s*)*)?\\))?){0,2}"
+},{begin:/\(\s*\)/}]}]},{begin:"\\s\\(\\.?[^;\\|]*\\)\\s*=>",end:"\\s=>",
+returnBegin:!0,relevance:0,contains:[{className:"params",relevance:0,variants:[{
+begin:n,end:"(,|\\n|\\))",relevance:0,contains:[c,{className:"typing",begin:":",
+end:"(,|\\n)",returnBegin:!0,relevance:0,contains:b}]}]}]},{
+begin:"\\(\\.\\s"+n+"\\)\\s*=>"}]};g.push(m);const d={className:"constructor",
+begin:a+"\\(",end:"\\)",illegal:"\\n",keywords:r,
+contains:[e.QUOTE_STRING_MODE,c,{className:"params",begin:"\\b"+n}]},u={
+className:"pattern-match",begin:"\\|",returnBegin:!0,keywords:r,end:"=>",
+relevance:0,contains:[d,c,{relevance:0,className:"constructor",begin:a}]},v={
+className:"module-access",keywords:r,returnBegin:!0,variants:[{
+begin:"\\b("+a+"\\.)+"+n},{begin:"\\b("+a+"\\.)+\\(",end:"\\)",returnBegin:!0,
+contains:[m,{begin:"\\(",end:"\\)",relevance:0,skip:!0}].concat(g)},{
+begin:"\\b("+a+"\\.)+\\{",end:/\}/}],contains:g};return b.push(v),{
+name:"ReasonML",aliases:["re"],keywords:r,illegal:"(:-|:=|\\$\\{|\\+=)",
+contains:[e.COMMENT("/\\*","\\*/",{illegal:"^(#,\\/\\/)"}),{
+className:"character",begin:"'(\\\\[^']+|[^'])'",illegal:"\\n",relevance:0
+},e.QUOTE_STRING_MODE,{className:"literal",begin:"\\(\\)",relevance:0},{
+className:"literal",begin:"\\[\\|",end:"\\|\\]",relevance:0,contains:o},{
+className:"literal",begin:"\\[",end:"\\]",relevance:0,contains:o},d,{
+className:"operator",begin:i,illegal:"--\x3e",relevance:0
+},t,e.C_LINE_COMMENT_MODE,u,m,{className:"module-def",
+begin:"\\bmodule\\s+"+n+"\\s+"+a+"\\s+=\\s+\\{",end:/\}/,returnBegin:!0,
+keywords:r,relevance:0,contains:[{className:"module",relevance:0,begin:a},{
+begin:/\{/,end:/\}/,relevance:0,skip:!0}].concat(g)},v]}}})()
+;hljs.registerLanguage("reasonml",e)})();/*! `javascript` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var e=(()=>{"use strict"
+;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],t=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],s=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],r=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],c=["arguments","this","super","console","window","document","localStorage","module","global"],i=[].concat(r,t,s)
+;return o=>{const l=o.regex,b=e,d={begin:/<[A-Za-z0-9\\._:-]+/,
+end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
+const a=e[0].length+e.index,t=e.input[a]
+;if("<"===t||","===t)return void n.ignoreMatch();let s
+;">"===t&&(((e,{after:n})=>{const a=""+e[0].slice(1)
+;return-1!==e.input.indexOf(a,n)})(e,{after:a})||n.ignoreMatch())
+;const r=e.input.substring(a)
+;((s=r.match(/^\s*=/))||(s=r.match(/^\s+extends\s+/))&&0===s.index)&&n.ignoreMatch()
+}},g={$pattern:e,keyword:n,literal:a,built_in:i,"variable.language":c
+},u="\\.([0-9](_?[0-9])*)",m="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",E={
+className:"number",variants:[{
+begin:`(\\b(${m})((${u})|\\.)?|(${u}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
+begin:`\\b(${m})\\b((${u})\\b|\\.)?|(${u})\\b`},{
+begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
+begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
+begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
+begin:"\\b0[0-7]+n?\\b"}],relevance:0},A={className:"subst",begin:"\\$\\{",
+end:"\\}",keywords:g,contains:[]},y={begin:"html`",end:"",starts:{end:"`",
+returnEnd:!1,contains:[o.BACKSLASH_ESCAPE,A],subLanguage:"xml"}},N={
+begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
+contains:[o.BACKSLASH_ESCAPE,A],subLanguage:"css"}},_={className:"string",
+begin:"`",end:"`",contains:[o.BACKSLASH_ESCAPE,A]},h={className:"comment",
+variants:[o.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
+begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",
+begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,
+excludeBegin:!0,relevance:0},{className:"variable",begin:b+"(?=\\s*(-)|$)",
+endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
+}),o.C_BLOCK_COMMENT_MODE,o.C_LINE_COMMENT_MODE]
+},f=[o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,{match:/\$\d+/},E]
+;A.contains=f.concat({begin:/\{/,end:/\}/,keywords:g,contains:["self"].concat(f)
+});const v=[].concat(h,A.contains),p=v.concat([{begin:/\(/,end:/\)/,keywords:g,
+contains:["self"].concat(v)}]),S={className:"params",begin:/\(/,end:/\)/,
+excludeBegin:!0,excludeEnd:!0,keywords:g,contains:p},w={variants:[{
+match:[/class/,/\s+/,b,/\s+/,/extends/,/\s+/,l.concat(b,"(",l.concat(/\./,b),")*")],
+scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{
+match:[/class/,/\s+/,b],scope:{1:"keyword",3:"title.class"}}]},R={relevance:0,
+match:l.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),
+className:"title.class",keywords:{_:[...t,...s]}},O={variants:[{
+match:[/function/,/\s+/,b,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],
+className:{1:"keyword",3:"title.function"},label:"func.def",contains:[S],
+illegal:/%/},k={
+match:l.concat(/\b/,(I=[...r,"super","import"],l.concat("(?!",I.join("|"),")")),b,l.lookahead(/\(/)),
+className:"title.function",relevance:0};var I;const x={
+begin:l.concat(/\./,l.lookahead(l.concat(b,/(?![0-9A-Za-z$_(])/))),end:b,
+excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},T={
+match:[/get|set/,/\s+/,b,/(?=\()/],className:{1:"keyword",3:"title.function"},
+contains:[{begin:/\(\)/},S]
+},C="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+o.UNDERSCORE_IDENT_RE+")\\s*=>",M={
+match:[/const|var|let/,/\s+/,b,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead(C)],
+keywords:"async",className:{1:"keyword",3:"title.function"},contains:[S]}
+;return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:g,exports:{
+PARAMS_CONTAINS:p,CLASS_REFERENCE:R},illegal:/#(?![$_A-z])/,
+contains:[o.SHEBANG({label:"shebang",binary:"node",relevance:5}),{
+label:"use_strict",className:"meta",relevance:10,
+begin:/^\s*['"]use (strict|asm)['"]/
+},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,y,N,_,h,{match:/\$\d+/},E,R,{
+className:"attr",begin:b+l.lookahead(":"),relevance:0},M,{
+begin:"("+o.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
+keywords:"return throw case",relevance:0,contains:[h,o.REGEXP_MODE,{
+className:"function",begin:C,returnBegin:!0,end:"\\s*=>",contains:[{
+className:"params",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{
+className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,
+excludeEnd:!0,keywords:g,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/,
+relevance:0},{variants:[{begin:"<>",end:">"},{
+match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:d.begin,
+"on:begin":d.isTrulyOpeningTag,end:d.end}],subLanguage:"xml",contains:[{
+begin:d.begin,end:d.end,skip:!0,contains:["self"]}]}]},O,{
+beginKeywords:"while if switch catch for"},{
+begin:"\\b(?!function)"+o.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
+returnBegin:!0,label:"func.def",contains:[S,o.inherit(o.TITLE_MODE,{begin:b,
+className:"title.function"})]},{match:/\.\.\./,relevance:0},x,{match:"\\$"+b,
+relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},
+contains:[S]},k,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,
+className:"variable.constant"},w,T,{match:/\$[(.]/}]}}})()
+;hljs.registerLanguage("javascript",e)})();/*! `sql` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var e=(()=>{"use strict";return e=>{
+const r=e.regex,t=e.COMMENT("--","$"),n=["true","false","unknown"],a=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],i=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],s=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],o=i,c=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!i.includes(e))),l={
+begin:r.concat(/\b/,r.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}}
+;return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{
+$pattern:/\b[\w\.]+/,keyword:((e,{exceptions:r,when:t}={})=>{const n=t
+;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e))
+})(c,{when:e=>e.length<3}),literal:n,type:a,
+built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
+},contains:[{begin:r.either(...s),relevance:0,keywords:{$pattern:/[\w\.]+/,
+keyword:c.concat(s),literal:n,type:a}},{className:"type",
+begin:r.either("double precision","large object","with timezone","without timezone")
+},l,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{
+begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{
+begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{className:"operator",
+begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})()
+;hljs.registerLanguage("sql",e)})();/*! `bash` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/,
+end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{
+className:"variable",variants:[{
+begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={
+className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},i={
+begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,
+end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,
+contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(c);const o={begin:/\$?\(\(/,
+end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]
+},r=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
+}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
+contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
+name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,
+keyword:["if","then","else","elif","fi","for","while","in","do","done","case","esac","function"],
+literal:["true","false"],
+built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]
+},contains:[r,e.SHEBANG(),l,o,e.HASH_COMMENT_MODE,i,{match:/(\/[a-z._-]+)+/},c,{
+className:"",begin:/\\"/},{className:"string",begin:/'/,end:/'/},t]}}})()
+;hljs.registerLanguage("bash",e)})();/*! `shell` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var s=(()=>{"use strict";return s=>({name:"Shell Session",
+aliases:["console","shellsession"],contains:[{className:"meta.prompt",
+begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,
+subLanguage:"bash"}}]})})();hljs.registerLanguage("shell",s)})();/*! `plaintext` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var t=(()=>{"use strict";return t=>({name:"Plain text",
+aliases:["text","txt"],disableAutodetect:!0})})()
+;hljs.registerLanguage("plaintext",t)})();/*! `graphql` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var e=(()=>{"use strict";return e=>{const a=e.regex;return{name:"GraphQL",
+aliases:["gql"],case_insensitive:!0,disableAutodetect:!1,keywords:{
+keyword:["query","mutation","subscription","type","input","schema","directive","interface","union","scalar","fragment","enum","on"],
+literal:["true","false","null"]},
+contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{
+scope:"punctuation",match:/[.]{3}/,relevance:0},{scope:"punctuation",
+begin:/[\!\(\)\:\=\[\]\{\|\}]{1}/,relevance:0},{scope:"variable",begin:/\$/,
+end:/\W/,excludeEnd:!0,relevance:0},{scope:"meta",match:/@\w+/,excludeEnd:!0},{
+scope:"symbol",begin:a.concat(/[_A-Za-z][_0-9A-Za-z]*/,a.lookahead(/\s*:/)),
+relevance:0}],illegal:[/[;<']/,/BEGIN/]}}})();hljs.registerLanguage("graphql",e)
+})();/*! `ocaml` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var e=(()=>{"use strict";return e=>({name:"OCaml",aliases:["ml"],
+keywords:{$pattern:"[a-z_]\\w*!?",
+keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",
+built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",
+literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal",
+begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{
+contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{
+className:"type",begin:"`[A-Z][\\w']*"},{className:"type",
+begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0
+},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0
+}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",
+begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",
+relevance:0},{begin:/->/}]})})();hljs.registerLanguage("ocaml",e)})();/*! `json` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var e=(()=>{"use strict";return e=>{const a=["true","false","null"],n={
+scope:"literal",beginKeywords:a.join(" ")};return{name:"JSON",keywords:{
+literal:a},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,
+relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0
+},e.QUOTE_STRING_MODE,n,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],
+illegal:"\\S"}}})();hljs.registerLanguage("json",e)})();/*! `python` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var e=(()=>{"use strict";return e=>{
+const n=e.regex,a=/[\p{XID_Start}_]\p{XID_Continue}*/u,i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],s={
+$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,
+built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
+literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
+type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
+},t={className:"meta",begin:/^(>>>|\.\.\.) /},r={className:"subst",begin:/\{/,
+end:/\}/,keywords:s,illegal:/#/},l={begin:/\{\{/,relevance:0},b={
+className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
+begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
+contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{
+begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
+contains:[e.BACKSLASH_ESCAPE,t],relevance:10},{
+begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
+contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
+end:/"""/,contains:[e.BACKSLASH_ESCAPE,t,l,r]},{begin:/([uU]|[rR])'/,end:/'/,
+relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
+begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
+end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
+contains:[e.BACKSLASH_ESCAPE,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
+contains:[e.BACKSLASH_ESCAPE,l,r]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
+},o="[0-9](_?[0-9])*",c=`(\\b(${o}))?\\.(${o})|\\b(${o})\\.`,d="\\b|"+i.join("|"),g={
+className:"number",relevance:0,variants:[{
+begin:`(\\b(${o})|(${c}))[eE][+-]?(${o})[jJ]?(?=${d})`},{begin:`(${c})[jJ]?`},{
+begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{
+begin:`\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${d})`
+},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\b(${o})[jJ](?=${d})`
+}]},p={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:s,
+contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},m={
+className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,
+end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,
+contains:["self",t,g,b,e.HASH_COMMENT_MODE]}]};return r.contains=[b,g,t],{
+name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:s,
+illegal:/(<\/|->|\?)|=>/,contains:[t,g,{begin:/\bself\b/},{beginKeywords:"if",
+relevance:0},b,p,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,a],scope:{
+1:"keyword",3:"title.function"},contains:[m]},{variants:[{
+match:[/\bclass/,/\s+/,a,/\s*/,/\(\s*/,a,/\s*\)/]},{match:[/\bclass/,/\s+/,a]}],
+scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{
+className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[g,m,b]}]}}})()
+;hljs.registerLanguage("python",e)})();/*! `xml` grammar compiled for Highlight.js 11.7.0 */
+(()=>{var e=(()=>{"use strict";return e=>{
+const a=e.regex,n=a.concat(/[\p{L}_]/u,a.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s={
+className:"symbol",begin:/&[a-z]+;|[0-9]+;|[a-f0-9]+;/},t={begin:/\s/,
+contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
+},i=e.inherit(t,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{
+className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),r={
+endsWithParent:!0,illegal:/,relevance:0,contains:[{className:"attr",
+begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{
+className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[s]},{
+begin:/'/,end:/'/,contains:[s]},{begin:/[^\s"'=<>`]+/}]}]}]};return{
+name:"HTML, XML",
+aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
+case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[t,l,c,i,{begin:/\[/,end:/\]/,contains:[{
+className:"meta",begin://,contains:[t,i,l,c]}]}]
+},e.COMMENT(//,{relevance:10}),{begin://,
+relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,
+relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",
+begin:/