status-go/static/bindata.go
Icaro Motta 6fa8c11382
URL unfurling (initial implementation) (#3471)
This is the initial implementation for the new URL unfurling requirements. The
most important one is that only the message sender will pay the privacy cost for
unfurling and extracting metadata from websites. Once the message is sent, the
unfurled data will be stored at the protocol level and receivers will just
profit and happily decode the metadata to render it.

Further development of this URL unfurling capability will be mostly guided by
issues created on clients. For the moment in status-mobile:
https://github.com/status-im/status-mobile/labels/url-preview

- https://github.com/status-im/status-mobile/issues/15918
- https://github.com/status-im/status-mobile/issues/15917
- https://github.com/status-im/status-mobile/issues/15910
- https://github.com/status-im/status-mobile/issues/15909
- https://github.com/status-im/status-mobile/issues/15908
- https://github.com/status-im/status-mobile/issues/15906
- https://github.com/status-im/status-mobile/issues/15905

### Terminology

In the code, I've tried to stick to the word "unfurl URL" to really mean the
process of extracting metadata from a website, sort of lower level. I use "link
preview" to mean a higher level structure which is enriched by unfurled data.
"link preview" is also how designers refer to it.

### User flows

1. Carol needs to see link previews while typing in the chat input field. Notice
   from the diagram nothing is persisted and that status-go endpoints are
   essentially stateless.

```
#+begin_src plantuml :results verbatim
  Client->>Server: Call wakuext_getTextURLs
  Server-->>Client: Normalized URLs
  Client->>Client: Render cached unfurled URLs
  Client->>Server: Unfurl non-cached URLs.\nCall wakuext_unfurlURLs
  Server->>Website: Fetch metadata
  Website-->>Server: Metadata (thumbnail URL, title, etc)
  Server->>Website: Fetch thumbnail
  Server->>Website: Fetch favicon
  Website-->>Server: Favicon bytes
  Website-->>Server: Thumbnail bytes
  Server->>Server: Decode & process images
  Server-->>Client: Unfurled data (thumbnail data URI, etc)
#+end_src
```

```
     ,------.                                 ,------.                             ,-------.
     |Client|                                 |Server|                             |Website|
     `--+---'                                 `--+---'                             `---+---'
        |        Call wakuext_getTextURLs        |                                     |
        | --------------------------------------->                                     |
        |                                        |                                     |
        |             Normalized URLs            |                                     |
        | <- - - - - - - - - - - - - - - - - - - -                                     |
        |                                        |                                     |
        |----.                                   |                                     |
        |    | Render cached unfurled URLs       |                                     |
        |<---'                                   |                                     |
        |                                        |                                     |
        |         Unfurl non-cached URLs.        |                                     |
        |         Call wakuext_unfurlURLs        |                                     |
        | --------------------------------------->                                     |
        |                                        |                                     |
        |                                        |            Fetch metadata           |
        |                                        | ------------------------------------>
        |                                        |                                     |
        |                                        | Metadata (thumbnail URL, title, etc)|
        |                                        | <- - - - - - - - - - - - - - - - - -
        |                                        |                                     |
        |                                        |           Fetch thumbnail           |
        |                                        | ------------------------------------>
        |                                        |                                     |
        |                                        |            Fetch favicon            |
        |                                        | ------------------------------------>
        |                                        |                                     |
        |                                        |            Favicon bytes            |
        |                                        | <- - - - - - - - - - - - - - - - - -
        |                                        |                                     |
        |                                        |           Thumbnail bytes           |
        |                                        | <- - - - - - - - - - - - - - - - - -
        |                                        |                                     |
        |                                        |----.                                |
        |                                        |    | Decode & process images        |
        |                                        |<---'                                |
        |                                        |                                     |
        | Unfurled data (thumbnail data URI, etc)|                                     |
        | <- - - - - - - - - - - - - - - - - - - -                                     |
     ,--+---.                                 ,--+---.                             ,---+---.
     |Client|                                 |Server|                             |Website|
     `------'                                 `------'                             `-------'
```

2. Carol sends the text message with link previews in the RPC request
   wakuext_sendChatMessages. status-go assumes the link previews are good
   because it can't and shouldn't attempt to re-unfurl them.

```
#+begin_src plantuml :results verbatim
  Client->>Server: Call wakuext_sendChatMessages
  Server->>Server: Transform link previews to\nbe proto-marshalled
  Server->DB: Write link previews serialized as JSON
  Server-->>Client: Updated message response
#+end_src
```

```
     ,------.                       ,------.                                  ,--.
     |Client|                       |Server|                                  |DB|
     `--+---'                       `--+---'                                  `+-'
        | Call wakuext_sendChatMessages|                                       |
        | ----------------------------->                                       |
        |                              |                                       |
        |                              |----.                                  |
        |                              |    | Transform link previews to       |
        |                              |<---' be proto-marshalled              |
        |                              |                                       |
        |                              |                                       |
        |                              | Write link previews serialized as JSON|
        |                              | -------------------------------------->
        |                              |                                       |
        |   Updated message response   |                                       |
        | <- - - - - - - - - - - - - - -                                       |
     ,--+---.                       ,--+---.                                  ,+-.
     |Client|                       |Server|                                  |DB|
     `------'                       `------'                                  `--'
```

3. The message was sent over waku and persisted locally in Carol's device. She
   should now see the link previews in the chat history. There can be many link
   previews shared by other chat members, therefore it is important to serve the
   assets via the media server to avoid overloading the ReactNative bridge with
   lots of big JSON payloads containing base64 encoded data URIs (maybe this
   concern is meaningless for desktop). When a client is rendering messages with
   link previews, they will have the field linkPreviews, and the thumbnail URL
   will point to the local media server.

```
 #+begin_src plantuml :results verbatim
   Client->>Server: GET /link-preview/thumbnail (media server)
   Server->>DB: Read from user_messages.unfurled_links
   Server->Server: Unmarshal JSON
   Server-->>Client: HTTP Content-Type: image/jpeg/etc
 #+end_src
```

```
     ,------.                                    ,------.                                  ,--.
     |Client|                                    |Server|                                  |DB|
     `--+---'                                    `--+---'                                  `+-'
        | GET /link-preview/thumbnail (media server)|                                       |
        | ------------------------------------------>                                       |
        |                                           |                                       |
        |                                           | Read from user_messages.unfurled_links|
        |                                           | -------------------------------------->
        |                                           |                                       |
        |                                           |----.                                  |
        |                                           |    | Unmarshal JSON                   |
        |                                           |<---'                                  |
        |                                           |                                       |
        |     HTTP Content-Type: image/jpeg/etc     |                                       |
        | <- - - - - - - - - - - - - - - - - - - - -                                        |
     ,--+---.                                    ,--+---.                                  ,+-.
     |Client|                                    |Server|                                  |DB|
     `------'                                    `------'                                  `--'
```

### Some limitations of the current implementation

The following points will become separate issues in status-go that I'll work on
over the next couple weeks. In no order of importance:

- Improve how multiple links are fetched; retries on failure and testing how
  unfurling behaves around the timeout limits (deterministically, not by making
  real HTTP calls as I did). https://github.com/status-im/status-go/issues/3498
- Unfurl favicons and store them in the protobuf too.
- For this PR, I added unfurling support only for websites with OpenGraph
  https://ogp.me/ meta tags. Other unfurlers will be implemented on demand. The
  next one will probably be for oEmbed https://oembed.com/, the protocol
  supported by YouTube, for example.
- Resize and/or compress thumbnails (and favicons). Often times, thumbnails are
  huge for the purposes of link previews. There is already support for
  compressing JPEGs in status-go, but I prefer to work with compression in a
  separate PR because I'd like to also solve the problem for PNGs (probably
  convert them to JPEGs, plus compress them). This would be a safe choice for
  thumbnails, favicons not so much because transparency is desirable.
- Editing messages is not yet supported.
- I haven't coded any artificial limit on the number of previews or on the size
  of the thumbnail payload. This will be done in a separate issue. I have heard
  the ideal solution may be to split messages into smaller chunks of ~125 KiB
  because of libp2p, but that might be too complicated at this stage of the
  product (?).
- Link preview deletion.
- For the moment, OpenGraph metadata is extracted by requesting data for the
  English language (and fallback to whatever is available). In the future, we'll
  want to unfurl by respecting the user's local device language. Some websites,
  like GoDaddy, are already localized based on the device's IP, but many aren't.
- The website's description text should be limited by a certain number of
  characters, especially because it's outside our control. Exactly how much has
  not been decided yet, so it'll be done separately.
- URL normalization can be tricky, so I implemented only the basics to help with
  caching. For example, the url https://status.im and HTTPS://status.im are
  considered identical. Also, a URL is considered valid for unfurling if its TLD
  exists according to publicsuffix.EffectiveTLDPlusOne. This was essential,
  otherwise the default Go url.Parse approach would consider many invalid URLs
  valid, and thus the server would waste resources trying to unfurl the
  unfurleable.

### Other requirements

- If the message is edited, the link previews should reflect the edited text,
  not the original one. This has been aligned with the design team as well.
- If the website's thumbnail or the favicon can't be fetched, just ignore them.
  The only mandatory piece of metadata is the website's title and URL.
- Link previews in clients should be generated in near real-time, that is, as
  the user types, previews are updated. In mobile this performs very well, and
  it's what other clients like WhatsApp, Telegram, and Facebook do.

### Decisions

- While the user typing in the input field, the client is constantly (debounced)
  asking status-go to parse the text and extract normalized URLs and then the
  client checks if they're already in its in-memory cache. If they are, no RPC
  call is made. I chose this approach to achieve the best possible performance
  in mobile and avoid the whole RPC overhead, since the chat experience is
  already not smooth enough. The mobile client uses URLs as cache keys in a
  hashmap, i.e. if the key is present, it means the preview is readily available
  (naive, but good enough for now). This decision also gave me more flexibility
  to find the best UX at this stage of the feature.
- Due to the requirement that users should be able to see independent loading
  indicators for each link preview, when status-go can't unfurl a URL, it
  doesn't return it in the response.
- As an initial implementation, I added the BLOB column unfurled_links to the
  user_messages table. The preview data is then serialized as JSON before being
  stored in this column. I felt that creating a separate table and the related
  code for this initial PR would be inconvenient. Is that reasonable to you?
  Once things stabilize I can create a proper table if we want to avoid this
  kind of solution with serialized columns.
2023-05-18 15:43:06 -03:00

760 lines
96 KiB
Go

// Code generated by go-bindata. DO NOT EDIT.
// sources:
// emojis.txt (28.134kB)
// ../config/README.md (3.031kB)
// ../config/cli/anon-metric-node-client.json (857B)
// ../config/cli/anon-metric-node-server.json (696B)
// ../config/cli/fleet-eth.prod.json (4.47kB)
// ../config/cli/fleet-eth.staging.json (2.145kB)
// ../config/cli/fleet-eth.test.json (2.174kB)
// ../config/cli/fleet-status.prod.json (1.92kB)
// ../config/cli/fleet-status.test.json (937B)
// ../config/cli/fleet-wakuv2.prod.json (747B)
// ../config/cli/fleet-wakuv2.test.json (748B)
// ../config/cli/les-enabled.json (58B)
// ../config/cli/mailserver-enabled.json (176B)
// ../config/status-chain-genesis.json (612B)
// keys/bootnode.key (65B)
// keys/firebaseauthkey (153B)
// keys/test-account1-status-chain.pk (489B)
// keys/test-account1.pk (491B)
// keys/test-account2-status-chain.pk (489B)
// keys/test-account2.pk (491B)
// keys/test-account3-before-eip55.pk (489B)
package static
import (
"bytes"
"compress/gzip"
"crypto/sha256"
"fmt"
"io"
"io/ioutil"
"os"
"path/filepath"
"strings"
"time"
)
func bindataRead(data []byte, name string) ([]byte, error) {
gz, err := gzip.NewReader(bytes.NewBuffer(data))
if err != nil {
return nil, fmt.Errorf("read %q: %v", name, err)
}
var buf bytes.Buffer
_, err = io.Copy(&buf, gz)
clErr := gz.Close()
if err != nil {
return nil, fmt.Errorf("read %q: %v", name, err)
}
if clErr != nil {
return nil, err
}
return buf.Bytes(), nil
}
type asset struct {
bytes []byte
info os.FileInfo
digest [sha256.Size]byte
}
type bindataFileInfo struct {
name string
size int64
mode os.FileMode
modTime time.Time
}
func (fi bindataFileInfo) Name() string {
return fi.name
}
func (fi bindataFileInfo) Size() int64 {
return fi.size
}
func (fi bindataFileInfo) Mode() os.FileMode {
return fi.mode
}
func (fi bindataFileInfo) ModTime() time.Time {
return fi.modTime
}
func (fi bindataFileInfo) IsDir() bool {
return false
}
func (fi bindataFileInfo) Sys() interface{} {
return nil
}
var _emojisTxt = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x7d\xdb\x56\xe3\x3a\xb3\xee\xbd\x5f\x63\xdf\xed\xab\x7d\xde\x6b\xbd\x5d\x9a\x86\x40\x83\x0f\x89\xed\x1c\x6c\x03\xf9\xe7\xc4\xb1\xe3\xd0\x74\x03\xa1\x1b\x98\x89\x9d\x31\xfe\x47\xf1\x7c\x80\x9f\x47\x58\xe3\x2b\xab\x88\x55\x05\x6b\x8c\x75\x41\xd9\x92\x5d\xa7\xaf\x4a\xb2\x24\xcb\xe1\x6d\x31\x1f\x38\x6f\x8b\xf9\x57\x90\x63\x90\x2f\x20\x43\x90\x13\xe7\x6d\x91\xdf\xe0\xec\xc8\x79\x5b\x24\x44\xe8\xbe\x6f\x20\xe7\x20\xa7\xce\xdb\x62\x79\x8f\x33\x0f\x37\x57\x38\x9b\x83\xcc\x9c\x76\xfe\xd7\xbf\x5e\x02\x9c\xa7\x20\x09\xee\x7c\xc4\xd9\x05\x48\x06\x72\x09\x9e\x35\xce\xae\x70\x36\x06\x99\x81\xdc\x81\xdc\x82\xc4\x20\x23\x90\x15\xee\xc3\xd9\x1c\xf7\xcd\x7f\x83\x90\xf8\x10\x76\x91\xe9\xdf\x71\xdf\x12\x67\x2e\x08\x78\xe7\x10\x9f\xe7\x38\x7b\x02\x79\x46\x11\x1c\xf9\x04\xe4\x4f\x90\x1f\x20\x25\xec\xfb\x05\x02\xc9\x4b\xba\x19\xc5\xfc\x27\xc8\x3f\x50\xb7\x01\x79\xc1\x05\x1f\x75\x91\xf3\xb6\x28\xc9\x20\x88\x9a\x2f\x60\xc6\x17\xa7\x9d\xbf\x1a\xb7\x21\x76\x0e\xee\x39\xb9\x4d\xdc\x7f\xe1\xac\x00\x81\xbe\x39\xf9\x44\xf0\x91\xd5\xb0\x66\x0e\xdf\xe7\x0f\x20\x53\x10\xc2\xff\x1a\x04\xfa\xe6\x84\x30\x90\x59\xd2\x2d\xe4\xd8\x1f\x20\xb0\x30\x07\x00\xf3\x33\xe7\x6d\x31\xde\x3b\x6f\x8b\x70\xe0\xb4\xf3\x7f\x74\xd6\x84\x60\xcc\x71\xe7\xf8\x15\x04\x86\x8c\xb7\x20\x35\x48\x83\xab\xa4\x8f\x2c\x24\x27\x71\xdf\x1c\xb7\xcc\x77\x20\xb8\x2f\xa1\x5c\x81\xec\x39\x38\x12\xa8\x4a\x90\x0d\x09\xb2\x21\x44\x64\x43\x40\x1f\x22\x07\x42\x04\x35\x84\xd0\x10\x41\x0d\x61\x7f\x08\x4f\x42\xe0\x15\x2e\x9c\xf6\xea\xc6\x18\x17\x3b\xed\x55\xde\x9d\x97\xb0\x31\x44\x7a\x84\xc8\x9b\x10\x79\x13\x52\xa2\x00\xf4\x29\x1c\xce\x91\x6b\x21\x90\x0d\x81\x58\x08\xec\x42\x60\x12\x02\xd9\x10\xa0\x4e\x36\x46\x32\xe0\x0b\x01\xcb\xf8\xcb\xbf\x5e\x82\x76\xe0\xbd\x2d\x66\xab\xee\xda\xfb\xf1\xa7\xb9\x17\xc8\x87\x50\x30\xbe\x20\xf2\xb6\x08\xb6\x7c\xb2\xe3\x93\x9a\x4f\x1a\x3e\x01\x1c\x79\x4a\xc4\x70\xd0\xc9\x8e\x4f\x6a\x3e\x69\xf8\x04\x1c\xd3\x51\xa7\x75\x3a\x32\x4c\x74\xb2\xe3\x93\x9a\x4f\x1a\x3e\xd9\x3b\xed\xe5\x05\xfe\xe8\xfe\xee\xb8\x33\xc7\xda\x1c\x1b\x73\x24\x05\x53\x22\x2c\x7d\xca\xd2\xa7\x2c\x7d\xca\xd2\xa7\x86\x63\xec\x12\x61\xb7\x5d\x76\xdb\x65\xb7\x5d\x76\xdb\x65\xb7\x5d\x22\xec\x36\x73\xe4\xcc\x91\x33\x47\xfe\xce\x11\x10\x61\x8e\x80\x39\x02\xe6\x08\x98\x23\x30\x3e\xbb\xc0\xa9\xbd\x74\x8d\xdb\xae\x71\xdb\x35\x6e\xbb\xc6\xed\x77\x05\xd7\x44\x58\xc1\x35\x2b\xb8\x66\x05\xd7\xac\xe0\x9a\x39\x16\x44\x98\x63\xc1\x1c\x0b\xe6\x58\x30\xc7\x82\x39\xe6\x44\x98\x63\xce\x1c\x73\xe6\x98\x33\xc7\x9c\x39\x12\x22\xcc\x91\x30\x47\xc2\x1c\x09\x73\x24\x1c\x0c\x6a\xc6\x67\x1c\x8c\x33\x0e\xc6\x19\x07\xe3\x8c\x83\x71\xc6\x1c\xdf\x88\x30\xc7\x37\xe6\xf8\xc6\x1c\xdf\x98\xe3\x1b\x73\x0c\x89\x30\xc7\x90\x39\x86\xcc\x31\x64\x8e\x21\x73\x9c\x12\x61\x8e\x53\xe6\x38\x65\x8e\x53\xe6\x38\xed\xc2\x37\xbf\xa2\xf0\xcd\xaf\xba\xf0\xd1\x71\x67\x8e\xb5\x39\x36\xe6\x48\x0a\x3c\x22\xac\xc0\x63\x05\x1e\x2b\xf0\x58\x81\xc7\x1c\x3e\x11\xe6\xf0\x99\xc3\x67\x0e\x9f\x39\x7c\x93\x51\xe7\xf8\x33\xe9\x74\x6e\xd2\xe9\xdc\xa4\xd3\xb9\x49\xa7\x73\x96\x7e\x4e\x84\xa5\x9f\xb3\xf4\x73\x96\x7e\xce\xd2\x99\x23\xcf\x88\x70\xa8\x33\x0e\x75\xc6\xa1\xce\x38\xd4\x19\x73\x50\xf7\x76\xc9\x1c\x97\xcc\x71\xc9\x1c\x97\xcc\x71\xc9\x56\x05\x44\xd8\x2a\x6e\x45\x63\x6e\x45\x63\x6e\x45\xe3\xc0\x70\x24\x2e\x11\xc3\x91\x70\x4b\x4d\xb8\xa5\x26\xdc\x52\x13\x6e\x48\xe3\x11\x11\xd6\xc1\xbd\xd3\x98\x7b\xa7\x31\xf7\x4e\xe3\x11\xfb\xf1\x48\x84\xfd\x78\x64\x3f\x1e\xd9\x8f\x47\xf6\xe3\x91\x39\xf0\x88\x48\x02\x22\x6c\x1a\x3b\x93\xb0\x33\x09\x3b\x93\x70\x97\xe0\x75\x5d\x82\x67\x62\xe8\x99\x18\x7a\x26\x86\x9e\x89\x21\x67\x48\x78\x42\xc4\x28\xa0\x93\x1d\x9f\xd4\x7c\xd2\xf0\x09\xd9\xb5\x21\xc2\x9e\x6c\xd8\x93\x0d\x7b\xb2\x61\x4f\x36\xac\x63\x4d\x84\x75\xac\x59\xc7\x9a\x75\xac\x59\xc7\xda\x70\x14\x28\x15\x74\xf6\x8b\x88\xe1\xa5\x93\x1d\x9f\xd4\x7c\xd2\xf0\x09\x71\xfc\x26\xc2\x1c\xbf\x99\xe3\x37\x73\xfc\x66\x8e\xdf\x1c\xcd\x23\x22\x1c\xcd\x23\x8e\xe6\x11\x47\xf3\x88\xa3\x79\xc4\x3a\x48\xf4\x96\x75\x6c\x59\xc7\x96\x75\x6c\x59\xc7\x96\x75\x7c\x25\xc2\x3a\xbe\xb2\x8e\xaf\xac\xe3\x2b\xeb\xf8\x6a\x38\x4a\x8c\x5a\x6e\x31\xa8\xb8\xc5\xb0\xb3\xc0\xe8\xac\xc0\xd0\x6b\x3c\xe0\x47\x36\x8e\x88\xdf\x18\x23\xbc\xf1\x6f\x22\xac\x81\xfd\x1e\xb3\xdf\x63\xf6\x7b\xcc\x7e\x97\x21\x11\xc3\x41\x27\x3b\x3e\xa9\xf9\xa4\xe1\x13\xf2\xa2\x20\xc2\x3a\x0a\xd6\x51\xb0\x8e\x82\x75\x14\xcc\x51\x12\x61\x8e\x92\x39\x4a\xe6\x28\x99\xa3\x64\xab\xc6\x44\xd8\xaa\x31\x5b\x35\x66\xab\xc6\x6c\xd5\x98\x75\x3c\x10\x61\x1d\x0f\xac\xe3\x81\x75\x3c\xb0\x8e\x07\xe6\x58\x11\x61\x8e\x15\x73\xac\x98\x63\xc5\x1c\x2b\xb6\x2a\x26\xc2\x56\xc5\x6c\x55\xcc\x56\xc5\x6c\x55\xfc\xae\x83\x46\x54\xc5\xfd\xbb\x2a\x51\xde\x89\x72\x2d\xca\x8d\x28\xef\xfb\xe5\xee\xfc\x41\xc8\x7e\x10\xb2\x1f\x84\xec\x07\x21\xfb\x41\xc8\x7e\xe8\xc9\xde\x08\xd9\x1b\x21\x7b\x23\x64\x6f\x84\xec\x8d\x90\xbd\xe9\xc9\x7e\x14\xb2\x1f\x85\xec\x47\x21\xfb\x51\xc8\x7e\x14\xb2\xa9\x5c\x11\xe1\x98\x56\x1c\xd3\x8a\x63\x5a\x71\x4c\x2b\x8e\x50\xd5\x43\xb4\x12\x11\xaa\x44\x84\x2a\x11\xa1\x4a\x44\xa8\xb2\x23\x54\x8e\xfb\xe7\xb6\xec\x2e\x95\x45\xb9\x11\xe5\x7e\xb4\xab\x5e\x74\x2a\x11\xed\x4a\x44\xbb\x12\xd1\xae\x44\xb4\x2b\x3b\xda\x6c\xe7\x83\xb0\xf3\xbd\xbc\x13\xe5\x5a\x94\x1b\x51\xee\x67\x52\xd5\x8b\x7c\x25\x32\xa9\x12\x99\x53\x89\xcc\xa9\xec\xcc\x61\x3b\x37\xc2\xce\x8d\xb0\x6b\x23\xec\xda\x08\xbb\x36\x3d\xbb\x1e\x85\x5d\x8f\xc2\xae\x47\x61\xd7\xa3\xb0\xeb\xb1\x67\xd7\xa3\xb0\xeb\x51\xe0\xf7\x28\xec\x7c\x14\x76\x3e\x0a\x3b\x49\xd7\x43\x3b\xf0\xda\x64\x60\x7a\xfa\x07\x23\xdd\xae\xa9\x55\x4d\xa3\x6a\xf6\x76\x0d\x95\x8e\x94\xd4\x7e\xcd\x4e\xd5\xd4\xaa\xa6\x51\x35\xfb\x7e\x4d\x49\x6b\x00\x11\xf7\x98\x11\x77\x94\x11\x77\x94\x11\x37\x43\x7a\xa8\x3d\x71\xc3\x7d\xe2\x86\xfb\xc4\x0d\xf7\x89\x1b\xee\x13\x73\xfc\x22\xc2\x1c\x3c\x16\x18\xf3\x58\x60\xcc\x63\x81\xc4\x23\xc2\xc3\x27\x1e\x31\x27\x3c\x62\x4e\x78\xc4\x9c\x78\xef\x1c\x7d\x1f\x3a\x56\x55\xb3\x53\x35\xb5\xaa\x69\x54\xcd\xde\xae\xe9\xc7\xa4\xa7\x67\xa0\xf4\x0c\x94\x9e\x81\xd2\x33\x50\x7a\xb8\xc6\x27\xc2\x08\xf0\x0c\x20\xe1\x19\x40\xc2\x33\x80\xc4\x67\x04\x7c\xcb\x4e\x5f\x21\xe0\x2b\x04\x7c\x85\x80\xaf\x10\xf0\x15\x02\xbe\x6d\xa7\x42\xc0\x57\x08\xf8\x0a\x01\x5f\x21\xe0\x2b\x04\x4e\x88\x30\x02\x3c\xc2\x4d\x78\x84\x9b\xf0\x08\x37\xe1\x11\x6e\x72\x62\xd9\x79\xa2\x10\x38\x51\x08\x9c\x28\x04\x4e\x14\x02\x27\x0a\x81\x13\xdb\x4e\x85\xc0\x89\x42\xe0\x44\x21\x70\xa2\x10\x38\x51\x08\x0c\x89\x30\x02\x3c\x95\x4d\x78\x2a\x9b\xf0\x54\x36\xe1\xa9\x6c\x32\xb4\xec\x1c\x2a\x04\x86\x0a\x81\xa1\x42\x60\xa8\x10\x18\x2a\x04\x86\xb6\x9d\x0a\x81\xa1\x42\x60\xa8\x10\x18\x2a\x04\x86\x12\x81\xf0\x0b\x11\x9e\x81\x7c\xe1\x19\xc8\x17\x9e\x81\x7c\xe1\x19\xc8\x17\x9e\xb3\x7c\xe9\xdb\xd9\xb1\xaa\x9a\x9d\xaa\xa9\x55\x4d\xa3\x6a\xf6\x76\x8d\x6d\xa7\x44\xa0\xa7\x67\xa0\xf4\x0c\x94\x9e\x81\xd2\xc3\x98\x5c\x10\xe1\x1c\xe0\x65\xbb\x84\x97\xed\x12\x5e\xb6\x4b\x78\x8d\x2c\xb9\xb0\x22\x75\xa1\x72\xe0\x42\xe5\xc0\x85\xca\x81\x0b\x95\x03\x17\x2a\x07\x2e\x6c\x3b\x55\x0e\x5c\xa8\x1c\xb8\x50\x39\x70\xa1\x72\xe0\x42\x22\x50\x76\x84\x9f\x47\x3c\x83\x2e\x79\x06\x5d\xf2\x72\x40\x19\x58\x8f\xb1\x40\x3a\xde\xb1\xaa\x9a\x46\xd5\xd8\x8f\xc3\xc0\x36\x46\xba\x49\x35\x3b\x55\x53\xab\x9a\x46\xd5\xd8\x81\x3e\x25\xc2\x81\xe6\x55\xa8\x84\x57\xa1\x12\x5e\x85\x4a\x4e\x39\xd0\xa7\x56\x38\x4e\x55\xa0\x4f\x55\xa0\x4f\x55\xa0\x4f\x55\xa0\x4f\x55\xa0\x4f\x6d\x3b\x55\xa0\x4f\x55\xa0\x4f\x55\xa0\x4f\x55\xa0\x4f\x25\x02\x79\x41\x84\x17\x28\x78\x92\x9a\xf3\x24\x35\xe7\x49\x6a\xce\x93\xd4\xbc\xe8\xdb\xd9\xb1\xaa\x9a\x9d\xaa\xa9\x55\x4d\xa3\x6a\xf6\x76\x8d\x6d\xa7\x44\xa0\xa7\x67\xa0\xf4\x0c\x94\x9e\x81\xd2\xc3\x35\xf4\x26\xe7\x99\x11\x78\x66\x04\x9e\x19\x81\x67\x46\xe0\x99\x11\x78\xb6\xec\x7c\x56\x08\x3c\x2b\x04\x9e\x15\x02\xcf\x0a\x81\x67\x85\xc0\xb3\x6d\xa7\x42\xe0\x59\x21\xf0\xac\x10\x78\x56\x08\x3c\xab\xc6\x8e\x61\x79\x9b\x4e\xb8\xc4\x7a\xac\x9a\x9d\xaa\xa9\x55\x4d\xa3\x6a\xf6\xfd\x1a\x9a\xd0\xf6\x4a\x52\xcf\xfb\xa4\xd6\xae\xa9\x55\x4d\xa3\x6a\x6c\x3d\x95\x5d\x52\x7a\x2a\xa5\xa7\x52\x7a\x2a\xa5\xa7\x92\x7a\xcc\x74\xc6\x8f\xec\xe9\xcc\xa1\x5c\x8b\xf2\xfe\x50\x36\x93\x7b\x73\x6e\xf3\xf6\x26\xf7\x87\x72\x2d\xca\x7d\x59\x55\xff\x5c\xc8\xaa\x84\xac\x4a\xc8\xaa\x6c\x59\xc6\xa7\xe0\xd6\xf6\xe9\x50\xde\x89\x72\x2d\xca\x8d\x28\xef\x0f\x65\xe3\xb3\x39\xb7\x65\xf7\x7c\x3e\x94\x6b\x51\x6e\x44\xb9\x2f\xbb\xea\x9f\x0b\xd9\x95\x90\x5d\x09\xd9\x95\x90\x5d\xd9\xb2\x4d\xfb\x98\xaa\xf6\x31\x55\xed\x63\xaa\xda\xc7\x54\xb5\x86\xa9\xd5\x1a\xa6\xaa\x35\x4c\x55\x6b\x98\xaa\xd6\x30\x55\xb9\x3f\xb5\x72\x7f\xaa\x72\x7f\xaa\x72\x7f\xaa\x72\x7f\xaa\x72\x7f\xaa\x72\x7f\x6a\xe5\xbe\xdb\xd8\x79\x72\x28\xd7\xa2\xbc\x3f\x94\x4d\x1e\xb8\x8d\x9d\x07\x87\x72\x2d\xca\x7d\xde\xaa\x7f\x2e\x78\x0f\x71\x3e\x94\x6b\x51\xde\xf7\xed\xa2\x73\x4f\x2c\x93\x78\x62\x99\xc4\x13\xcb\x24\x9e\x58\x26\xf1\x7a\x8b\x75\x9e\x58\x08\xf4\xc4\xc2\x9f\x27\x16\xfe\x3c\xb1\xf0\xe7\xf5\x96\x5c\x3c\xb1\x14\x74\x28\xef\x44\xb9\x16\xe5\x46\x94\xf7\x7d\xbb\xe9\x3c\x2e\x6d\x9f\x0f\xe5\x5a\x94\x1b\x51\xde\x1f\xca\xc6\x67\x73\x6e\xcb\xea\xf9\x7c\x28\x37\xa2\xdc\x97\x55\xf5\xcf\x85\xac\x83\xcf\x87\x72\x2d\xca\x8d\x28\xef\xfb\x76\x77\x6d\xf9\x4e\xf4\x69\x77\xa2\x0f\xbb\x13\x7d\xd8\x9d\xe8\xc3\xee\x7a\x7d\xd8\x9d\xe8\xc3\xee\x44\x9f\x75\x27\xfa\xac\x3b\xd1\x67\xdd\xf5\xfa\xac\x3b\xd1\x67\xdd\x89\x3e\xeb\x4e\xf4\x59\x77\xa2\xcf\xba\x13\x7d\xd6\xdd\xc1\xe7\x70\x67\xfb\x7c\x28\xef\x44\xb9\x16\xe5\x46\x94\xf7\x87\xb2\xc1\x20\xdc\xd9\x18\x1c\xca\x3b\x51\xae\x45\xb9\x11\xe5\xbe\xec\xaa\x7f\x2e\x64\x57\x42\x76\x25\x64\x57\x42\x76\x65\xcb\xe6\xdc\xff\x2e\x72\xff\xbb\x8d\xc9\xa1\x5c\x8b\x72\x23\xca\xfb\x43\x99\xdb\xc2\x77\xd1\x16\xbe\xdb\x98\x1c\xca\xb5\x28\x37\xa2\xdc\x97\x5d\xf5\xcf\x85\xec\x4a\xc8\xae\x84\xec\x4a\xc8\xae\x6c\xd9\x9c\x27\x5b\x91\x27\x5b\x91\x27\x5b\x91\x17\x5b\x91\x17\xdb\x5e\x5e\x6c\x45\x5e\x6c\x45\x5e\x6c\x45\x5e\x6c\x45\x5e\x6c\x45\x5e\x6c\x7b\x79\xb1\x15\x79\xb1\x15\x79\xb1\x15\x79\xb1\x15\x79\xb1\x15\x79\xb1\xed\x8d\xe3\x72\x31\x8e\xcb\x6d\x0c\x0e\xe5\x5a\x94\x1b\x51\xde\x1f\xca\x3c\xce\xcb\xc5\x38\x2f\x17\xe3\xbc\x5c\x8c\xf3\x72\x1b\x93\x43\xb9\x2f\xbb\xea\x9f\x0b\xd9\x95\x90\x5d\x09\xd9\x95\x90\x5d\xd9\xb2\x19\x93\x95\xc0\x64\x25\x30\x58\x09\x0c\x56\x02\x83\x55\x0f\x83\x95\xc0\x60\x25\x30\x58\x09\x0c\x56\x02\x83\x95\xc0\x60\xd5\xc3\x60\x25\x30\x58\x09\x0c\x56\x02\x83\x95\xc0\x60\x25\x30\x58\xbd\x8f\xfb\x2e\xcf\xe4\xb8\xcf\xaa\xa9\x55\x4d\xa3\x6a\xf6\xfd\x9a\x6e\xdc\x77\x28\x49\xa9\x87\x51\x9e\x55\xd3\xa8\x1a\x5b\x6a\x65\x97\x94\xd4\xf7\x71\x9f\x55\x53\xab\x9a\x46\xd5\xec\x6d\x7f\x08\x9f\x74\x60\xe7\xc5\xa1\x5c\x8b\x72\x23\xca\xfb\x43\xd9\xe4\x85\x39\xb7\x65\xf5\xf2\xe0\x50\x6e\x44\xb9\x2f\xab\xea\x9f\x0b\x59\x95\x90\x55\x09\x59\x95\x2d\x8b\x7d\x0c\x85\x8f\xa1\xf0\x31\x14\x3e\x86\xc2\xc7\xb0\xe7\x63\x28\x7c\x0c\x85\x8f\xa1\xf0\x31\x14\x3e\x86\x3d\x1f\x43\xe1\x63\x68\xe7\xfa\xa1\x5c\x8b\x72\x23\xca\x7d\xd9\x3f\x88\xf0\x5b\xa2\x1f\xfc\x96\xe8\x07\xbf\x25\xfa\xc1\xaf\x93\x7e\xf4\x97\x28\x3a\x0e\x55\x53\xab\x9a\x46\xd5\xec\xed\x9a\xfe\x82\x44\x4f\x6a\xbf\x66\xa7\x6a\x6a\x55\xd3\xa8\x1a\x6b\xa9\x63\xf2\x8b\x8f\xc6\xd3\x09\xbf\x0f\x9b\xf0\xfb\xb0\x09\xbf\x0f\xa3\x7b\xfb\x46\x76\x4c\xaa\xa6\x56\x35\x8d\xaa\xd9\xdb\x35\x2c\x78\xa0\x04\xf7\x6b\x76\xaa\xa6\x56\x35\x8d\xaa\xb1\xd7\xf2\x8f\x88\xf0\x5a\x3e\x6f\xd2\x09\x79\x6f\x4e\x78\xd4\x37\xac\xbb\x51\xd5\x34\xaa\xc6\x5e\x95\x3f\xb2\x35\xaa\x55\xf9\x23\xb5\x2a\x7f\xa4\x56\xe5\x8f\xa4\xe5\xcb\x67\x22\xc6\xf2\x25\xaf\xc6\x2d\x79\x11\x6e\xfc\x4c\x84\x13\x96\xaf\x8f\x79\xb5\x6e\x7c\xb8\xd1\x4a\x34\xb5\x36\x37\x56\x6b\x73\x63\xb5\x36\x37\x56\x6b\x73\x63\x6b\x6d\x6e\xac\xd6\xe6\xc6\x6a\x25\x6e\xac\x56\xe2\xc6\x6a\x25\x2e\x7f\x22\xc2\x6b\x91\xfc\x52\x37\xe7\x97\xba\xf9\xfb\x4b\xdd\x17\x22\xec\xfd\x0b\xbf\x06\x7e\x61\x18\x5e\x18\x86\x17\xe6\xa0\xd9\x20\xef\x44\x1b\xf3\x06\xb4\x31\x6f\x40\x1b\x6f\xde\x6f\xb4\xfc\xdc\xa8\x06\xbe\x51\x08\x6e\x14\x82\x1b\x85\xe0\x46\x21\xb8\xb1\xb0\xd8\x28\x04\x37\x0a\xc1\x8d\x42\x70\xa3\x5e\xd8\xd3\x5e\x00\xde\x3a\x38\xe6\x1d\x83\x63\xde\x31\x38\xe6\x1d\x83\xe5\x84\x08\xbf\xe1\x98\xf0\x1b\x8e\x09\xbf\xe1\x98\xf0\x6a\x2f\x6d\xde\xe7\xfe\x22\xe7\x4d\x75\x39\x77\x1c\x39\x77\x1c\xf9\xaf\x77\x0e\x6b\x15\x57\xf5\x1a\xf9\x2f\xb5\x3e\xac\xfa\x91\x5c\xf5\x23\xb9\xea\x47\x8c\x9e\x81\xd2\x33\x50\x7a\x06\x4a\xcf\x40\xe9\x19\x28\x3d\x8c\x29\xed\xab\xb9\x67\x4c\xef\x39\xd9\xee\x19\xdc\x7b\x06\xf7\x9e\x73\xe8\xde\x8a\xf4\xbd\xca\xa1\x7b\x95\x43\xf7\x2a\x87\xee\x55\x0e\xdd\xab\x1c\xba\xb7\xed\x54\x39\x74\xaf\x1e\x1b\xf7\x2a\xab\xee\x55\x56\xdd\xab\x76\x79\x4f\x84\x73\x80\x11\xc8\x19\x81\x9c\x11\xc8\x19\x81\xfc\x81\x08\x73\xf0\x36\xbb\x9c\xb7\xd9\xe5\xbc\xcd\x2e\x7f\xb0\x37\x58\x79\x62\xe6\xeb\x89\x99\xaf\x27\x66\xbe\x9e\x98\xf9\x7a\x62\xe6\xeb\xf5\x66\xec\x9e\x98\xb1\x7b\x62\xc6\xee\x89\x19\xba\x27\x66\xe8\x5e\x6f\x16\xed\x89\x95\x05\x4f\xac\x2c\x78\x62\x65\xc1\x13\x2b\x0b\x9e\x58\x59\xe8\x74\x75\x84\x33\x6d\xc7\x99\xb6\xe3\x4c\xdb\x71\xa6\xed\x0c\x6a\xfe\x09\x11\xc3\xe1\xf3\x3e\x05\x9f\xf7\x29\xf8\xef\x3b\x71\x7f\x13\xe1\x80\xf0\x46\xcf\x9c\x37\x7a\xe6\xef\x1b\x3d\xcd\xcc\xe7\x58\xcc\x7c\x8e\xc5\xcc\xe7\x58\xcc\x7c\x8e\xc5\xcc\x07\xe5\xe2\x85\x88\x51\x5a\x70\x37\x5d\x70\x37\x5d\x70\x37\x5d\x70\x37\x5d\xbc\xf4\xf3\xae\x63\x55\x35\x3b\x55\x53\xab\x9a\x46\xd5\x58\x19\x5d\xbc\x12\x61\xcb\x5e\xd9\xb2\x57\xb6\xec\x95\x2d\x7b\x65\xcb\x5e\x6d\x7e\x65\xc7\xab\xb2\xe3\x55\xd9\xf1\xaa\xde\x3d\x25\x44\xb8\x1b\xe6\xcf\x18\x4a\xfe\x8c\xa1\xe4\xcf\x18\xca\xa4\xdf\xf0\x3b\x0e\x55\xd3\xa8\x1a\xfb\xb5\x72\x62\xab\x56\xaf\x95\x13\xf5\x12\x39\x51\x2f\x91\x13\xe5\x42\x4a\x84\x5d\xe0\x0f\x74\x4a\xfe\x40\xa7\x4c\x2d\x1b\x52\xf5\x42\x3c\x55\x96\xa7\xca\xf2\xd4\xd6\xa8\x2c\x4f\xd5\x0b\xf1\x54\x59\x9e\x2a\xcb\x33\x22\x6c\x39\x7f\x58\x50\xf2\x87\x05\x25\x7f\x58\x50\x66\x96\x31\x99\x02\x3f\x53\x4e\x65\xca\xa9\x4c\x39\x95\xd9\xc6\x28\xa7\x32\x15\x8e\x4c\x39\x95\x29\xa7\x2e\x89\xb0\x53\xfc\xed\x43\xc9\xdf\x3e\x94\xfc\xed\x43\x79\x69\x19\x73\x29\x1f\x49\x1d\xab\xaa\x69\x54\x8d\xed\xd4\xa5\x6d\x8c\x72\xea\x52\x45\xea\x52\xb9\x79\xa9\xdc\xbc\x54\x6e\x5e\x11\x61\x37\xaf\x78\x8f\xf5\x15\xfb\x7b\xc5\xfe\xf2\x17\x31\xe5\x95\x65\xe7\x95\x0a\xe2\x95\x42\xe0\x4a\x21\x70\xa5\x10\xb8\x52\x08\x5c\xd9\x76\x2a\x04\xae\x14\x02\x57\xca\xdf\x2b\xe5\xef\x35\x11\x4b\xd1\xb5\x75\xc3\x82\x88\x75\xc3\xc2\x9a\x63\x0c\x89\xf0\x5c\x88\x77\x76\x85\xbc\xb3\x2b\xe4\x9d\x5d\x21\xef\xec\x0a\xad\x9d\x5d\xa1\xda\xd9\x15\xaa\x9d\x5d\xa1\xda\xd9\x15\xaa\x9d\x5d\xa1\xda\xd9\x15\x0e\x6d\x3b\xd5\x0c\x4a\xed\xec\x0a\xd5\xce\xae\x50\xed\xec\x0a\xf5\xce\xae\x53\x22\x8c\x00\x6f\x77\x09\x79\xbb\x4b\xc8\xdb\x5d\x42\xde\xee\x12\x5a\xdb\x5d\x42\xb5\xdd\x25\x54\xdb\x5d\x42\xb5\xdd\x25\x54\xdb\x5d\x42\xb5\xdd\x25\x3c\xb5\xed\x54\x08\xa8\xed\x2e\xa1\xda\xee\x12\xaa\xed\x2e\xa1\xda\xee\x92\xfe\x26\x62\x1c\x4f\x79\x14\x90\xf2\xc3\x3f\xfd\xdd\xb7\xaa\xbb\x51\xd5\xd4\xaa\x66\x6f\xd7\xd8\x1a\xa5\x2f\x3d\xa9\x03\x25\xb5\x5f\xd3\xa8\x1a\xbb\x45\x78\x44\xb8\x07\xe0\xfd\xba\x25\x6f\xd3\x2d\x79\x9b\x6e\x69\x6d\xd3\x2d\xd5\xa6\xdc\x52\x6d\xca\x2d\xd5\x16\xdc\xd2\xb3\x55\xab\x46\xad\xb6\xe0\x96\x6a\xc3\x6d\xa9\x36\xdc\x96\x3e\x11\xb6\x9c\xf7\xd9\x96\xbc\xcf\xb6\xe4\x7d\xb6\xa5\xb5\xcf\xb6\x54\xfb\x6c\x4b\xb5\xcf\xb6\x54\xfb\x6c\x4b\xb5\xab\xb6\xf4\x6d\x63\x94\x53\x6a\x57\x6d\xa9\x76\xd5\x96\x6a\x57\x6d\xa9\x76\xd5\xf2\xbe\xf7\x9f\xf6\x90\xf2\x50\xde\x89\x72\x2d\xca\xfb\x43\x99\xbf\x0a\xf9\x69\x0f\xe5\x0f\xe5\x9d\x28\xd7\xa2\xdc\x97\x55\xf5\xcf\x85\xac\x4a\xc8\xaa\x84\xac\xca\x96\xc5\x3e\x8a\x69\x40\x21\xa6\x01\x85\x98\x06\x14\x62\x1a\x50\xf4\xa6\x2b\x85\x98\x9e\x14\xe2\x85\x62\x21\xa6\x2b\x85\x98\xae\x14\xbd\x17\x8a\x85\x98\x46\x15\x62\x1a\x55\x88\x69\x53\xd1\x9b\xea\x14\xb5\x88\x5b\x2d\x7c\xac\x85\x4f\xb5\xf0\xa9\xee\xf9\x54\x8b\xb8\xd5\xc2\xc7\x5a\xf8\x58\x0b\x9f\xea\x9e\x4f\xb5\xf0\xa9\x16\x3e\xd5\xf6\xd4\xf0\x50\xee\xc9\x0a\xbe\x12\x31\xbd\x48\xc0\xdf\xda\x05\xfc\x89\x5d\xc0\x9f\xd8\x05\x5f\xfb\x4d\xa7\xbb\x51\xd5\xd4\xaa\xa6\x51\x35\x7b\xbb\xa6\xdf\x50\x3a\x3b\x54\xcd\x4e\xd5\xd4\xaa\xc6\x7e\xd0\x7d\x25\xc2\xcf\x37\xfe\x6e\x30\x64\x5f\x26\x7f\x11\x31\xd7\xe9\xa4\xe1\x13\xba\xfe\xd4\xc9\x99\xf0\x52\xdc\x84\x57\xe0\x26\xef\x2b\x70\xd4\x08\x7e\xf6\x7d\x31\x25\x6e\xf4\x53\x22\xdc\xb7\xf1\xd7\xf2\x25\x7f\x2d\x5f\xf2\xd7\xf2\xe5\xd4\xea\x93\xa6\xaa\x6f\x9b\xaa\xbe\x6d\xaa\xfa\xb6\xa9\x1a\x97\x4d\x55\x6f\x37\xb5\xcd\x53\xbd\xdd\x54\xf5\x76\x53\xd5\xdb\x4d\x55\x6f\x37\x55\xbd\xdd\x8c\x08\x3f\x97\x66\xec\xf8\x8c\xfd\x9d\x59\x56\xcd\x94\xbf\x33\xe5\xdd\x4c\xf9\x32\xb3\x35\x2a\x5f\x66\xca\xf2\x99\x5a\xd4\x41\x12\x04\xa7\x44\x38\xfd\x79\x24\x14\x98\xaf\xce\xb3\x67\x93\x62\x47\x20\xae\x29\xf0\xd7\xcf\x01\x7f\xf4\x1c\xf0\xb7\xce\x74\x8b\x95\xdf\xae\x6a\x27\xae\x6a\x15\xae\x6a\x15\xae\x78\x43\xd0\x13\xd3\xaf\xa9\x55\x8d\xe5\x61\x70\x4c\x84\xad\x3d\xe6\xb6\x7d\xcc\x6d\xfb\x98\xcd\x3e\xb6\xb4\x1f\x2b\x9b\x8f\x95\xcd\xc7\xca\xe6\x63\x5b\xb5\x32\xf8\x58\x19\x7c\xac\x86\x67\x37\x44\x78\x78\x76\xc3\xc3\xb3\x1b\x63\x30\x9d\xd0\x38\xed\xc6\x1a\x71\xdd\xa8\x71\xda\x8d\x1a\xa7\xdd\x48\x17\x3a\x61\x76\x8d\x6d\x8c\x1a\xb9\xdd\xa8\x91\xdb\x8d\x1a\xb9\xdd\xa8\x91\xdb\x8d\x8a\xcb\x39\x11\x8e\x0b\xff\x04\x40\xc0\x3f\x01\x10\xf0\x4f\x00\x04\xe7\x16\xc2\xe7\xb2\xa9\x74\xac\xaa\xa6\x51\x35\x76\xa4\xce\x6d\x63\x54\x9f\x7b\xae\x22\x75\x2e\x9d\xea\x49\xa5\x9a\x36\x7b\x35\x07\x0a\x5e\x77\x6c\xcc\x71\x6f\x2e\x1f\x8c\x30\xf7\xc9\x8a\x5a\x56\xec\xad\x0a\xab\x51\x74\x37\x6c\x65\xc5\x4e\x56\xd4\xb2\xa2\x91\x15\x76\x6c\x2e\xf8\xc8\xad\x85\xbf\xfa\x08\xf8\xab\x8f\x80\xbf\xfa\xa0\x7b\x2d\x64\xd5\x67\x1e\x81\xfa\xcc\x23\x50\x1f\x75\x1c\xc4\x0c\x94\x98\x81\x12\x33\x50\x62\x38\xcf\x9e\x88\x70\xe3\xe1\x97\x47\x29\x3f\xb1\xd2\x27\x2b\xd7\x9f\x64\x32\x75\x1c\xaa\xa6\x51\x35\x76\x9b\x79\xb2\x6d\x50\x6d\xe6\x49\xb5\x90\x27\xd5\x42\x9e\x94\x2f\xbf\x88\x98\x16\x92\xf2\xbb\x96\x94\x5f\xb1\xa4\xd6\x2b\x96\x54\xbd\x62\x49\xd5\x0b\x95\x54\xbd\x3e\x49\x7f\xd9\x1a\x55\xdb\x56\xaf\x46\x52\xf5\x6a\x24\x7f\x21\xc2\xab\xca\xbc\xae\x9b\xf3\x72\x6e\xfe\xd2\xd7\x98\xbf\xa8\x57\x41\x2f\xea\xc5\xcf\x8b\x7a\xcd\xf3\x62\x6b\x54\xaf\x79\xd4\x02\x70\xae\x16\x80\x73\xb5\x00\x9c\xd3\xeb\x08\xfb\x2d\x94\xfd\xae\x88\x1c\xa9\xf9\xc5\x45\xcd\xae\xd5\xbc\x60\x5e\xb3\x8f\xb6\xfd\xb5\xf2\xb1\x56\x3e\xd6\xea\xe5\x56\xad\xbc\xb6\x3d\xaa\x95\xd7\xb5\xf2\xba\x56\x5e\xd7\xca\x6b\xb2\xbc\x61\xa7\x1a\x76\xaa\x61\xa7\x1a\x76\xca\x36\xaf\x51\x4e\x35\xea\x1d\x5e\xa3\xdc\x6c\x94\x9b\x8d\x72\xd3\x36\xb8\x51\x6e\x36\xea\x1d\x5e\xa3\x1c\x6f\x94\xe3\x8d\x72\xfc\x95\x08\x3b\xce\xcb\xfc\x39\x2f\xf3\xe7\xbc\xcc\x9f\xbf\x2a\x57\x5f\x6d\x41\xca\x44\xf5\x2a\x20\x57\xaf\x02\x72\xf5\x2a\x20\xd7\xaf\x02\xe6\x44\x78\xdc\xc8\x3f\x86\x54\xf2\x8f\x21\x95\xfc\x63\x48\x25\xff\x18\x52\x39\xb7\xc6\x84\x73\x35\x92\x9c\xab\x91\xf3\x5c\x8d\x2d\xe7\x6a\xe4\x3c\x57\xa3\xcd\xb9\x6d\xa7\x1a\x6d\xce\xd5\xc8\x79\xae\xc6\x9f\x73\x35\x72\x9e\x4b\x04\xb2\x01\x11\xe3\x38\x9d\x34\x7c\x02\x7f\x33\x97\x88\x41\x28\xe3\xdf\xde\xc9\x78\x18\x9a\xb9\xf6\x3b\xac\xfc\x8a\x0e\xbd\x1f\x09\xb1\xab\xdf\x7a\x3f\x1b\xa2\x2f\xd5\x9f\x5f\x6a\x3e\xbf\xb4\xb7\xe7\xc6\x1f\xea\xd2\x97\x76\x9f\x5f\x6a\x3e\xbf\xb4\xb7\xd7\x16\x3e\xd4\xa5\x2f\x35\x9f\x5f\xda\xdb\x13\xf9\x0f\x2d\xd4\x97\xf6\xf6\x74\xff\x43\x2e\x7d\xa9\xf9\xfc\x12\xcd\x2f\x69\x57\xf7\xdd\x5b\xef\x17\x3a\x2c\xb0\xed\xdf\xec\xd0\x97\xc4\xda\x40\xff\xd2\x96\x25\xef\x3e\xbf\x67\x6f\x2f\x25\x28\xf6\x8f\x2f\xed\x58\x72\xfd\xf9\x3d\xcd\xe7\x97\xf6\xf6\x7a\xc5\x87\x9e\xee\xff\x2b\x97\xea\xcf\x2f\x35\x6c\x2a\x29\xa5\xcf\x7e\x6e\x3f\x07\x7b\xf5\x39\xd8\xab\xbe\xe1\x3b\x75\x69\xfb\xf9\xa5\x4f\x30\x7e\xd7\x75\xfb\x39\x90\xab\xcf\xd1\xb2\x4c\xd5\x97\xf6\x1f\x43\xb2\xfa\x1c\xc8\xf7\x9f\xf7\xb9\x65\x76\xb1\xc9\xbd\x7f\x63\xfd\xf9\xa5\xbd\xbd\xd2\xa5\x40\xfa\xfe\xd6\xfb\x61\x21\x7d\x4f\xf3\xf9\xa5\xbd\xbd\x66\xa6\x24\x7f\x7c\x69\xc7\x4a\xeb\xcf\xef\xd9\xdb\x2b\x8c\x8a\x7d\xf5\x39\x90\x1f\x5f\x6a\x58\x29\xbd\x5d\x09\x78\x31\xaf\xfb\xd5\x4a\xba\x2d\xbc\x30\x77\xff\x27\xd7\xe8\xd7\x7b\xd6\x87\x55\x45\xb3\x20\xd8\xfd\xe2\x94\x5d\x55\x7e\x50\xf5\xe9\xcd\xc5\xe7\x62\xb4\xb4\x95\xbe\x79\xf5\xe9\x5d\x1f\xe8\x5c\x7d\xaa\x73\xa5\x75\x56\xda\xcf\x4a\xfb\x59\x7d\xea\x67\xf5\xa9\x9f\x1f\xf2\xf4\x3d\xe8\x5b\xf6\x81\xb1\xfd\x5b\x3f\xf0\xf2\x03\x27\xfa\x6a\x3f\xb0\xa4\x7f\xeb\x07\x2e\xf4\x04\xce\xcc\xcf\x9e\x8e\x69\x07\xff\xd2\x79\x5b\xdc\xd2\xaf\xb3\xdd\x38\x6f\x8b\x11\x66\x50\xa3\xd0\x79\x5b\x14\x1e\x08\xee\x1f\xfd\x06\x99\xa0\xf8\x83\xce\x48\x54\xf1\x17\xce\x91\x52\x23\x9c\x15\xe7\x20\x57\x28\x3e\x80\x9c\x11\x41\x1e\x7e\xcf\x70\xe5\x0b\xca\x3f\x41\x4e\x40\x86\x20\x98\x79\x8e\x7c\x5c\xa5\x5d\x2f\x11\x08\xc6\x2a\x05\x7a\x8a\x11\xe9\x82\x61\xa3\xaf\x20\xb8\x65\xf4\x0c\x32\x05\x99\x81\xa0\x09\x8e\xe0\xca\x08\x63\x95\xd1\x08\x04\xf9\x3d\x42\xc7\x5c\x24\x20\x70\x65\x84\x21\x62\x01\xf7\x0a\xdc\x5c\xc0\xa0\x11\x1e\x94\x23\xb2\x0a\xc3\xa7\x11\x06\xba\xa3\x7b\x90\x53\x90\x7d\x07\x51\x41\x82\x62\x10\xaa\xde\x12\xa1\xd6\x75\xdc\xdd\x31\x42\x83\x1b\xd1\x26\x18\x20\x59\x00\xf3\x02\x75\x05\x29\xfd\x03\x57\x69\x43\x0c\x39\x01\x49\x23\xf8\x39\x22\xb0\x11\x80\x11\xd8\x46\x60\x1b\x01\xec\xc9\xb9\xd1\x0c\x98\x0a\xc0\x54\xfc\x09\xf2\x0d\x04\xf7\xaf\xe9\xb7\xf7\x80\x7b\x91\x82\x5c\x82\x13\xf3\xc9\x11\x22\x30\xa2\x9b\x81\xe9\x08\xf1\x1b\x3d\x82\x10\x2f\xc5\x8f\xa0\xdb\x80\x5c\x80\x00\xe7\x82\x80\x58\x80\xfc\x03\x04\x16\x17\x14\x3d\xe0\x37\x82\x8e\x11\x05\x85\x38\x08\x3a\x52\x89\x50\xaf\x49\xfc\x35\xae\x22\x1e\x6b\x48\x9e\x98\xb5\xcf\xc9\x8b\x71\x04\x21\x2c\x20\x7f\x0d\x78\xd7\xc8\x8e\x02\x9a\x42\x84\xcb\x85\xe5\x21\x42\x1d\x98\x3d\xd6\x2e\x22\xb1\x44\x4c\x5c\xe4\x95\x0b\xc8\x5d\xe0\xeb\x22\xf8\x2e\xd8\xd7\x48\x1c\x17\xba\x5d\x68\x74\xa9\x88\xc4\xa5\xef\x33\xdd\xbd\xd3\xce\xe7\x9d\x30\x0f\x72\x3c\x44\xd9\x83\x19\x1e\x82\xe0\x21\x92\x1e\x3c\xf4\x00\x8c\x07\xd8\x3c\x38\xe7\xc1\x4d\x0f\xb0\x2d\x81\x89\x07\x14\x3d\x92\x02\x4b\x3d\xa4\x98\x87\x74\xf2\x10\xc0\x5b\xd4\x2d\x01\x82\x87\x48\xdd\xe2\xc2\x12\xa1\x5c\xd2\x7d\x08\xdc\x12\xd1\x5e\x02\x77\x17\x89\xea\xfe\xee\x6c\xba\xc5\x0d\x4b\xba\x1f\xf8\x2f\x11\xfa\x92\xb6\x81\x41\x90\x87\xb3\x25\x10\x76\x01\x97\x07\x70\x97\xa4\x0b\xb1\xbb\x85\xea\x25\xd2\x6b\x89\xb6\xb4\xa4\xdd\x0d\xf0\xa7\x24\x47\x71\x8b\x87\x48\x2c\x91\x1f\x4b\xdc\xec\xc1\x08\x0f\xf0\x7b\x64\x09\x3c\x5b\xa2\x8d\xb8\x00\xdd\x85\x94\x5b\xb2\x93\x76\x54\x91\xd9\x08\x39\x7d\xf5\xb9\x44\x0a\x7b\xc0\xf9\x16\xbc\x4b\xe4\xec\x12\xe2\x3d\x1a\xbb\x02\xc2\x12\xb0\x2e\xd1\x4a\x3c\x44\xc6\x23\x0e\x88\xf2\x48\x0a\xd2\xc5\x83\x33\x1e\x21\x85\xb0\x7b\xc8\x50\x0f\xa2\x3c\xa4\xb3\x47\x98\xc1\x16\x0f\x99\xb7\x84\xa5\x4b\xfa\xb9\x6b\x4a\x44\xb8\x55\x50\x82\x01\x83\x02\xd0\x15\xb0\xde\x03\x6a\x1e\x1a\x8c\x07\x34\x3c\xf8\xeb\xe1\x82\x4f\x71\xa6\x9f\x78\x43\xd8\x97\x74\x0b\xd9\x07\xb0\x3d\x0a\x2c\x69\x83\xe7\xb4\x7b\x70\x99\x39\x2d\xfd\x84\xf6\x2d\xc1\x87\x3c\xf2\xd0\xc6\x3c\x24\x93\x87\xa4\xf3\x90\xa4\x1e\xf2\xd2\x43\x4a\x7a\xb4\xb5\x9c\x1c\x47\x3e\x2d\xe9\xc3\x27\x24\x50\x89\x62\x89\xa4\x2a\x91\x54\x4b\xf2\xb4\x36\x99\x88\x24\x5d\x22\xb8\x31\xcc\x0c\x28\xb7\x91\x6b\x2e\xd2\xcc\xa5\xcc\x87\x8b\x33\xf3\xab\xe5\x33\x1a\xe8\xc3\xdc\x20\xee\xd6\x1c\xef\x4d\xfb\x80\xa6\x19\xad\x00\x9b\x1f\x14\x08\xcc\xc7\xd5\xc1\xa5\x39\x5e\x99\xe3\xb5\x39\x2e\xcc\x31\x33\xc7\x99\x99\x49\x52\x5b\x02\x7c\x6b\x38\x9d\xc1\xfd\xc0\x34\x9c\x20\x35\x47\x84\x22\x40\x28\x02\x78\x13\x20\x6e\x01\x1c\x0e\x10\xb7\x00\x51\x08\x20\x21\x40\x00\x02\xf2\x0c\x60\x07\x00\x9b\xbe\x28\x0d\x80\x73\x80\x78\x84\x48\xf9\x19\x10\x9f\xd5\x4e\x9b\xe1\xde\x09\xcd\x4c\x81\xfd\xc4\x73\xda\xac\x32\x3d\xc7\x85\xd3\x66\x8f\x4e\x9b\x11\x46\x88\xa2\x4b\x6f\x1b\x13\x03\x00\x40\x74\xd1\x56\x5c\xa4\xab\x8b\xf4\x77\xbf\x39\x6d\x62\x7e\x4f\xdb\x87\xc9\x3e\x4c\xf6\xe9\xe7\xb9\x91\xa6\x3e\xb4\xa5\x08\x59\x0a\x51\x29\x44\xa4\x10\x91\x42\x44\x0a\x11\x29\xee\x4b\x11\xbc\x14\xc1\x4b\x91\xb0\x29\x32\x2f\x05\xe0\x29\x2c\x4d\x11\xaf\x14\xf1\x4a\x11\xaa\x14\xd9\x48\x9f\xc1\xa4\x68\x69\x29\x9a\x51\x0a\x67\x52\x20\x99\xa2\xa1\xa4\x68\x0f\x29\xda\x43\x46\x2b\x92\x68\x14\x29\x1a\x45\x8a\x46\x11\xf8\x06\x64\xcf\x4c\xe4\xe9\x87\x58\x69\x1f\x25\x4d\xd0\xe1\x7f\x8a\xe6\x97\x21\x79\x32\x24\x60\x46\x8b\xb4\x74\xb3\x79\x8a\x67\xe6\x87\xcb\xb3\x3f\xbb\x34\xa1\x05\x4f\x84\x24\x45\x84\x52\x44\x28\x23\x43\x4b\xa7\x4d\x23\xa7\x25\x25\x19\x6d\x68\x41\x1c\xb3\x4d\xc7\x66\x5e\x5d\x66\x4b\xb3\x66\xf9\xa7\xf3\xfe\xf1\x16\xc7\x25\x43\x64\x33\x44\x76\x4d\xdf\x87\x90\x79\x08\x4f\x8a\x46\x9b\x02\xf6\x14\xb0\x73\xa6\xd2\x57\x51\x19\xda\x4e\x66\x1c\x2d\x37\x4e\xeb\x66\x4e\x1b\xe0\x98\x3a\x6d\x70\xef\xb4\xc1\x03\x19\x10\x3c\x9a\xe0\x1b\xe6\x09\x50\x9a\xd0\x13\x11\x58\x4f\x80\xd7\x04\x7e\x4c\x10\x98\x09\x50\x9f\x20\x3a\x13\x40\x3f\x81\x01\x13\xe0\x3f\x81\x15\x13\xca\x28\x98\x32\x41\x24\x26\x48\x83\x09\xc2\x31\x41\xfa\x4e\x10\x93\x09\x7c\x9f\x20\x30\x13\xc0\x34\x41\x60\x26\xc0\xca\x85\x0e\x17\xe2\x5d\x48\x76\x21\xd4\xa5\x9e\x13\xa2\x5c\x48\x71\x21\xc0\x05\xaf\x0b\x36\x17\x96\xba\xd4\x63\xff\x41\xae\xcc\xcd\xba\x8c\x0b\x4b\x5d\x18\xb9\x1e\x39\xed\x1d\x3d\xee\x60\xa8\x0b\x1b\x5d\xd7\x69\xe7\x5f\x3a\xec\x4f\x9c\x36\x33\x58\xbb\x26\x9a\xae\x89\x83\x5b\x98\x63\x69\x8e\x26\xc9\x5d\x13\x13\x77\x6d\x8e\xb7\xe6\xf8\xdd\x1c\xe9\x01\x8a\x94\x76\x8f\x9c\x76\xde\xbd\x0a\x99\xc7\x4e\x9b\x75\x70\xa7\x7f\x38\x66\x08\xd3\xce\xbf\x76\x56\x1c\x3b\xed\xdc\x0c\x6a\x62\xfa\x49\x7b\x80\xef\xa2\x2d\xf8\x68\x33\xb4\x33\xd9\x47\x73\xf1\xe9\x81\xb3\x72\xda\x4b\xa4\x99\x4f\xed\x0b\xed\xc6\xa7\x7b\xd1\x5a\x7c\x34\x14\x1f\x0d\xc5\xa7\x16\x09\xd7\x7d\x5a\x4e\x82\x4c\x1f\xb6\xf9\x48\x1c\xdf\xf4\x44\xbe\xe9\xa1\x7c\x64\x98\xcf\xdd\x19\x74\x05\x68\xa4\x4b\xfa\x37\x0f\xd0\xb3\xfc\xe6\xb4\x69\xed\xb4\x29\x7a\xc7\x25\x14\x04\x10\x16\x40\x41\x80\x1b\x02\x32\x84\xae\x92\x40\x3c\xc6\x02\x92\x06\xf5\x01\x3d\x75\x61\x5c\x80\xe0\x06\xc8\xcd\x25\x75\xd5\xb0\x7a\x89\x38\x6c\x9c\x36\x33\x23\x17\x1f\xd9\x92\xd3\x76\x71\xda\x1c\x4e\x6b\x69\xf4\x7d\x11\x3a\x03\x1f\x1d\xdb\x1a\xda\xd7\xe4\x0a\x3a\xd3\x18\x4f\x96\x35\x3d\xcb\x89\x0d\xc5\x89\xf9\x7f\x0c\x3e\xfa\x40\x9f\x7e\x83\x12\x7d\x65\x09\xdd\x6b\x78\xb7\x1e\x3a\x6d\x42\xff\x26\xa1\x4d\x96\xdd\xa1\xe8\x0e\x37\xdd\xc1\x80\xf3\x15\x64\x40\x51\x40\x77\xe0\xa3\x77\x9d\xee\x8c\x70\xfa\xf0\x14\x2d\x7b\x8d\xb4\x2f\xd1\xbc\xd7\x48\xfb\x31\x35\x0f\x33\xf2\x58\xd2\xa7\x50\x34\x56\xa5\xff\xbf\x80\xdc\x1e\x23\xb7\xc7\xb4\xe9\x00\xee\x96\xf4\x30\x43\xf8\x4b\x9a\x3d\x20\xdf\xc7\xc8\xf7\x25\xfa\xaf\x0a\x4e\x56\xf0\xa1\xa2\xef\x82\xd0\x06\xc6\x68\x03\x63\xb4\x81\x31\xda\xc0\x18\x49\x9f\x99\x0e\xcd\x07\xde\x15\xfd\xf6\x24\x9a\xc1\x98\x1e\xee\x14\x1c\x9a\x21\xa3\x1d\x8c\x61\x6f\x45\x9f\x8a\x90\xbd\x08\xd3\x18\x6c\x3e\x50\xea\x7e\x5c\x06\x17\xd6\x53\xa7\xcd\xc6\x9d\xd8\x88\x66\xc1\x40\x22\xa4\x7f\xc5\x80\x3c\x88\x91\x23\x31\x52\x20\x46\x0a\xc4\x88\x6a\x04\xc6\x08\x6e\x45\x08\x56\x0c\x7f\x63\xf8\xeb\x03\x03\x1f\x70\xf9\x40\xca\x37\x4f\x16\xdf\x3c\xf4\x7c\xf3\xa0\xa4\x4f\x9a\x7d\xa4\x6c\x44\x9f\x09\x20\xf6\x6b\x20\xe2\x23\x78\x3e\xfa\x63\x1f\x40\xfa\xb8\xba\xa6\x21\x12\x52\x61\x0d\xbc\x22\x40\x15\x3d\x3a\xed\xdc\xf4\x7d\x11\x10\x88\x80\x40\x04\xbf\x63\x64\x5c\x4c\xff\xac\x82\xfe\x3f\x82\x69\xef\x53\x6a\xdf\x2d\x37\xf3\xe9\x83\x39\x9a\xde\x31\xa4\xfd\x28\xb4\xd7\x12\x18\x44\xf4\xdd\x29\xb2\xcc\x47\xc8\x7c\xf3\xc0\x8f\xcc\x98\xc3\x47\x5f\x1d\xc1\xc2\x08\xa6\x47\xb0\x3a\x82\xd5\x11\xfc\x8f\x81\x5d\x0c\xec\x26\xfc\x1f\x28\x10\x8b\x98\x9e\xe9\x94\xc8\xc0\x2b\x22\x02\xdf\x22\x24\x49\x04\xf7\x23\x72\x10\xc1\x8f\x10\xfc\x08\x41\x8a\x10\xb3\x08\x1d\x45\x84\x34\x88\x10\x9d\x08\x61\x9d\xb1\x51\x88\x6c\x4c\x63\x0c\x33\x43\x08\x69\x3e\x40\xff\x60\x03\x29\x12\x22\x1e\x21\xe2\x11\xc2\xda\x90\x66\x06\xf4\xe3\x23\xe4\xef\xab\xd3\x5e\x7e\x33\xa2\x28\x24\x48\xf9\x08\x49\x12\x21\x4c\x11\x00\x88\x60\x7b\x84\x4e\x24\xc2\x03\x3f\x22\xff\xd1\x4e\x22\xf8\x33\xeb\x1e\x75\x97\x41\x77\x08\x0d\xb4\xe6\xcd\xed\xd4\x4c\xbc\xa6\x66\xbb\xc6\xd4\xe4\x70\x44\xff\x46\x04\x80\x45\x08\x6e\x84\x47\xdf\xcc\xac\xf0\x47\x68\xbf\x11\xfa\xa9\x99\x91\x36\x8b\xcc\x15\xa4\x63\x84\x74\x8c\x90\x8e\x11\xa5\x23\x42\x1e\x21\xe4\x11\xa0\x8f\xe8\x1f\x8a\x9c\x9a\xfb\x89\x8c\x9c\xf6\xd2\x88\x9e\x7d\x35\x47\xd3\x25\xcf\x4c\xee\xc7\xc0\x39\x06\xe2\x31\x15\xd1\xf3\xc5\x80\x76\x66\x46\x7d\x31\x0d\xe8\xf0\xa0\xef\xfc\x4c\x8d\x65\x99\xf9\x4f\x2c\xb3\xee\x21\x95\xc6\xe6\x76\xa0\xb5\xa6\xf1\x15\x8d\x2f\xfe\xe8\xaa\xd7\x08\x2c\xfd\x0c\xca\x1a\x4d\x3b\xae\x9c\x36\x35\xad\x64\x76\xd9\x09\x30\xdd\x34\x6d\xe3\x8b\x67\x4e\x9b\x19\xd7\xd7\xb4\xc5\x9c\x46\xe0\xe8\x29\xd6\x97\x4e\x9b\xf2\x88\x13\x51\x29\xe9\xc7\x91\x10\x1a\xfa\x29\x89\x98\xe2\x43\xff\x75\x05\x48\x55\x14\x76\xc0\x55\xc1\x9e\x8a\x06\x19\x60\xcb\x68\x86\x49\x4f\x53\x34\xa2\xce\xbb\xb7\x45\x66\xc2\xb7\xa6\x31\x0e\x9a\xc7\x9a\x06\x22\xd4\x59\x53\x6b\xa4\x49\x33\x7d\x64\x8d\x2c\x2b\x91\x5b\x25\x44\x97\x10\x5d\x52\xd3\xa5\x9e\x0f\x21\x5e\x53\xcf\x47\xaf\x30\xe0\x56\x46\x83\xbb\xef\x4e\x9b\x9a\x51\xc9\xba\x70\xda\xd4\xb4\xc9\x19\x54\xac\x01\x51\x00\x92\x22\xc5\xd2\x7b\xa7\x4d\xe8\x4d\x33\x34\xa4\x64\x3c\x0d\xfc\x68\xd8\x46\x6f\x65\x90\x3f\x19\xf0\xce\xd0\x44\xf0\xec\x4f\x4d\x64\xd2\x17\xa7\xcd\x68\x10\x09\x84\x52\xa4\x7e\x0a\x70\x52\x98\x92\xa2\x3f\x49\xa9\x19\xa3\x9d\xc4\xd7\x4e\x3b\xef\x46\x7c\xf3\xee\x31\xf1\x7d\x48\x87\x21\x41\xdd\x5e\x77\x51\x1e\xce\xbb\x6b\xa7\x5d\x29\xe9\x4a\x27\x5d\x69\xda\x1d\x26\xdd\xa1\x9b\x65\x0c\xab\xee\x40\xc3\x8a\x36\x7f\xea\x0e\x66\x6a\x1e\xc3\xec\x98\xe6\x30\x68\xb5\x31\xe5\x08\xa5\x07\x9a\x7c\x4c\x3d\xff\xc8\x69\x53\xd3\x7d\x4e\xbe\x75\x0d\xcd\x8c\x8a\x5e\xba\xc3\xcf\xae\xd2\xfc\x5f\x8e\xee\x49\x37\xef\xd4\xcd\x7f\x18\x46\xea\xd0\x7f\x3a\x6d\x72\xe6\xb4\x09\x86\xf6\xe7\x4e\x9b\x5c\x38\x6d\xe2\x3a\x6d\xe2\x39\x6d\xe2\x3b\x6d\x82\x47\xe3\xc8\x69\x93\xb1\xd3\x26\xa1\xd3\x26\x48\x79\x62\x44\xa7\x18\x23\xf4\xf1\x91\xd3\x4e\x7f\x77\xc3\xcb\xca\x69\x83\xbb\xee\xb4\xb3\x60\xd6\x6d\xe5\x08\xd6\x4e\x1b\x18\xbd\xf1\xce\x69\x69\xfa\x12\xd7\x4e\x1b\x7c\x77\xda\xa0\xb3\x39\xe8\x36\xa9\x04\x7f\x75\x07\x93\x79\x3e\x3a\x9b\x18\x3d\x40\x8c\x1e\x20\x42\xcf\x15\x21\x68\xd1\x93\xc3\x1b\x45\xcc\x1e\x94\xb4\xec\x9c\xee\x10\xbf\x9e\x38\xed\xf5\xd4\x69\xaf\x67\x4e\x9b\x34\x54\x35\xa0\xe7\x78\xfb\xa5\x43\xec\x2a\x72\xda\xab\xd8\x69\xaf\x26\x4e\x7b\x35\x73\xfe\x1e\x98\xec\x0b\x91\x03\xe1\xa3\x63\x7e\x4a\xae\x4d\xb6\x9d\x74\x33\xef\x8b\xe9\x91\x43\xf1\xb8\x77\xda\xbb\x89\xd3\x5e\x9e\x38\xed\x7c\xdc\xe9\xee\xe2\x7b\xe5\x3a\xed\x95\xef\xb4\xd7\xf7\x4e\x7b\xbd\x77\xfe\x1e\xd4\xdd\x55\xd3\x35\x76\xf1\xbe\xa2\x74\xf9\x27\xa5\xc2\x3f\x09\x9b\xf6\x98\x72\xed\xbf\xfd\xeb\x25\x68\xbf\xde\x38\xff\xdd\x1c\xff\x87\x39\xfe\x4f\x73\xfc\x5f\xe6\xf8\xbf\xcd\xf1\xff\x98\xe3\xff\x35\xc7\xff\x67\x8e\xff\xdf\x1c\xff\xcd\x1c\xff\xdd\x1c\xdf\x16\x31\xda\x76\x4c\x0f\x48\x7a\x18\xe1\x09\x1e\xd3\x05\x34\xe3\x13\x03\xc4\x10\x71\x3e\x31\xed\x70\x88\x96\x3f\x44\x4b\x1d\x46\x4e\x7b\x6c\x86\x5b\xc3\xd8\x69\x23\xd3\x97\x0e\xf1\xf8\x1a\xe2\xd1\x73\xd2\x98\x1a\x74\x26\x27\x66\x91\x6f\x88\xc7\xd9\x10\x19\x3d\x44\x46\x9f\x21\x75\xce\x0c\xeb\x99\x79\x56\x9d\x21\xba\x67\x68\x88\xdf\xd0\xe3\x9e\xa1\x79\x9f\xd1\xdd\xe8\xe3\xbe\xc1\x84\x33\xf4\x5c\x67\xe8\x63\xce\x36\xce\xdf\xe7\xd4\x0e\xff\x3e\x37\x9d\xe6\x19\xba\x82\x33\x6a\xb9\xb8\x63\x01\x0f\x17\xf0\x70\x41\x1e\xe2\xc2\x02\x6e\x2e\x72\xa7\x4d\x6f\x9d\x96\xba\xbc\x05\x7a\xa3\x05\x3a\x97\x05\x3a\xf5\x05\x1e\x76\x0b\x64\xdd\x82\xae\xde\x3a\xed\xf7\xcc\x69\xbf\x5f\x3a\xed\xac\xcb\x9f\x59\x97\x10\xb3\xc6\x69\x31\xc7\x9e\x76\xcd\x6a\x6a\xe6\x06\x31\x7c\x88\xd1\x85\xc4\x30\x35\x86\x0f\x31\xec\x8a\xe9\xbb\x0e\x02\x1d\x50\xc4\x48\xe2\x18\x7e\x05\x34\xbb\xa3\x81\x18\x1e\x5b\x01\x4c\x0f\xcc\xbf\xb6\xa2\x23\xad\x04\xd3\x34\x83\x8b\x26\xd7\x71\x33\x4a\xdd\xff\xff\xfa\x8f\x00\x00\x00\xff\xff\x29\x98\x6c\x19\xe6\x6d\x00\x00")
func emojisTxtBytes() ([]byte, error) {
return bindataRead(
_emojisTxt,
"emojis.txt",
)
}
func emojisTxt() (*asset, error) {
bytes, err := emojisTxtBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "emojis.txt", size: 28134, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf5, 0x28, 0xc, 0x22, 0x34, 0xa1, 0xeb, 0x8, 0x8d, 0xef, 0x38, 0x1b, 0xd8, 0xc2, 0x1a, 0x6d, 0xa2, 0x62, 0xad, 0x43, 0xfc, 0x1c, 0x38, 0xda, 0x8c, 0x3f, 0x34, 0xa, 0x8c, 0x6f, 0x5d, 0xd8}}
return a, nil
}
var _ConfigReadmeMd = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x94\x56\xdf\x6f\xdb\x38\x12\x7e\xd7\x5f\x31\x50\x1f\xae\x01\x52\xc9\x8d\xe3\x36\xab\x97\xcb\xcf\xee\xe6\x2e\x4d\x02\xc7\x7b\x7d\x08\x02\x8b\x16\x47\x32\x37\x14\x47\x4b\x52\x76\xbd\x87\xfe\xef\x87\xa1\xe4\x1f\x71\x72\x05\x16\x01\x62\x9b\x1c\xce\x7c\xf3\x7d\xc3\x19\xbe\x83\x6b\xe3\x2d\xc9\xb6\xf0\x8a\x4c\x14\x4d\xe6\xca\x81\xa4\xa2\xad\xd1\x78\x90\xe8\x0a\xab\x66\xe8\xc0\xcf\x11\xc4\x42\x28\x2d\x66\x1a\x81\x1a\xb6\x76\xa0\x4c\xd8\xf8\xd7\xc3\xdd\x2d\x14\x64\x4a\x55\x41\x49\x16\x72\xe7\x85\x6f\xdd\x87\x8a\xf2\x84\x5d\x22\x38\x6f\xdb\xc2\xb7\x16\x81\xca\x57\x47\x38\x22\x96\xca\xa0\x5c\x3b\x7c\xcc\x1b\x61\x45\xed\xd2\xce\x22\xa9\x28\x7f\x7a\x9f\xee\xaf\x1d\x40\xa9\x34\x1e\xc2\x72\xae\x8a\x39\x08\xed\x88\x3d\x7a\xa1\x0c\x3b\xf4\x42\x69\x94\x50\x50\xcd\xa9\x38\x20\x03\x35\x0a\xa3\x4c\xc5\x18\x50\x14\xf3\x3e\x8d\x04\x18\x61\x7e\x4b\x12\x2f\x82\xeb\xbc\x87\xdb\xa3\xea\x92\xaf\xd0\xa0\x15\xba\xc7\xdc\x5a\xc1\x47\xe1\x19\x57\x0e\x84\x0f\x16\xd3\xa9\x25\xf2\xd3\xe9\x8b\x14\x19\x61\x12\x45\xd7\xdd\x52\xc7\x67\x4f\x1e\x95\x20\xcc\x6a\xc3\xa5\xb0\x08\x9e\x08\x16\xa2\x6a\x11\x4a\x44\x0d\xa5\x45\x5e\x83\x47\x6a\xd0\x80\x30\xa0\x9c\x6b\xf1\xe9\xfd\xdc\xfb\xc6\x65\x69\x5a\x29\x3f\x6f\x67\x49\x41\x75\xda\x33\xae\x36\xdf\x2a\x4a\x83\xb5\x4b\x0d\x2e\x0f\x92\x28\xba\xfa\x2e\xea\x46\xe3\x46\x27\xa5\xd1\x41\x21\x0c\xcc\x10\x16\x0a\x97\xbb\xec\x77\x36\x69\xa1\x15\xf3\xbe\xfd\x75\x00\x25\x69\x89\x36\x89\xa2\x77\x70\x5d\x37\x64\xbd\x30\x1e\x1e\x30\x54\x8f\xeb\xb4\xde\x93\xd6\x21\xeb\xe6\x83\x7b\x4f\xe0\x70\x11\x78\x74\xfd\x99\x8e\xfd\x9a\x9c\x07\xb5\x71\x48\xcc\x3a\x13\xa2\x95\xe3\x93\x33\xd4\xb4\xe4\xa0\xef\x5e\xe8\xd4\xc5\x63\xd6\xdf\x28\xab\x5e\xa2\x24\x8a\xce\x0c\x60\x9f\x3c\x95\xfb\xa1\x1c\x7a\xaf\x4c\xe5\x60\x49\xad\x66\x8c\x85\x6e\x25\x66\x51\x9e\xe7\x7f\x38\x32\xd1\x7f\x23\x00\x80\xf8\x16\xfd\x92\xec\xf3\xf5\x65\x9c\xc1\xc7\xc3\x6e\xed\x52\x78\x71\xa9\x6c\x9c\x41\x9c\xfa\xba\xd9\x32\xff\x41\x0a\x2f\xe2\xde\x8a\xf1\xfe\x1b\x57\x6c\xf5\xf1\x68\xf8\xe7\x12\xf7\xfe\xaf\xed\xc6\x68\x24\xfe\xb5\xa0\xd6\xc5\x19\x94\x42\x3b\xdc\x38\xb8\x54\xae\xa0\x05\xda\xd5\xde\xce\x0d\xb3\x63\xce\xa4\x0c\x18\x06\x49\xf8\xcb\x86\x83\xe1\x60\xc7\x6b\xc5\x46\x76\x42\x8d\x2a\xd8\xf3\x63\xbc\x9c\x2b\xd7\xa0\xad\x85\xd2\xf1\x53\xf4\x83\x33\x0d\x05\xba\xa2\xf6\x1f\x12\x96\x4c\x8a\x27\x40\x13\x6e\x7a\x20\x74\x7c\x7f\x01\xcc\x57\x6f\x62\x10\xe5\x2b\x82\x7e\x9b\x4c\xee\xaf\xc2\x19\x19\x67\xe0\x6d\xbb\x06\xc9\x1b\xbf\x91\xf3\x3b\x10\xe3\x9d\xad\x7b\xb2\xbc\x75\x32\x3a\x1e\xf5\xab\x67\xf7\xd7\x5f\x49\xb6\x1a\x19\x6e\x8c\x7e\x7e\x68\xd0\x1f\x2e\x71\x36\x3c\x14\xb2\x56\x26\xde\x60\x36\x40\x56\xa2\x65\xb8\x42\xfe\xd1\x3a\x0f\x9a\xaa\x8a\x6f\xf8\x46\xd5\x9f\x20\xbe\xa1\xea\x8b\xd2\x18\xe4\x5b\x08\x9b\x6a\xaa\xb6\x12\x26\x9a\xaa\x35\xcc\x1b\xaa\x6e\x70\x81\x9a\x2d\xaf\x6f\xbf\xdc\xed\xac\x7f\x15\xdf\x1f\xd4\x5f\xec\xe3\x68\x30\x78\xb1\x7c\x2e\x8a\xe7\xb6\xe1\x14\x46\xdb\xf5\x0b\xaa\x1b\x8b\xce\x8d\xc9\xf3\x8d\xe8\x89\xea\xf3\xf9\x8f\xd0\x4a\x42\xbe\x8e\x96\x6f\x93\x10\x16\x33\xc8\xaf\xc6\xe3\xbb\x71\x7e\x08\xf9\xb7\xb3\xf1\x2d\x7f\x32\x16\xfe\xbc\xbc\x3a\xff\xfd\x57\xfe\x32\x19\x9f\x5d\x5c\xe5\xdd\x35\xf9\x26\x9e\xdb\x75\x3b\x5b\xcb\xdb\x89\xbb\xa2\xd6\x82\x21\x19\x5a\x8b\x45\x2d\x56\xc0\xc6\xef\x6b\x92\xaa\x54\x28\xe1\x5b\x57\x20\x07\xd0\x58\xf2\x54\x90\x86\x1a\x9d\x13\x15\x76\x74\x6a\xbd\x29\x92\xfe\xb6\x80\x9f\x2b\xf7\x8a\xdf\x2d\x82\x38\x83\x6e\x2d\xac\xbf\x55\x25\x3b\x1b\x5f\x85\xd2\x0f\x68\x17\x68\x5f\x5b\xfc\xfc\xc6\xa5\x4b\xf1\xdc\xc6\x3b\xe6\x5b\x57\xf7\xc2\xb9\x25\x59\x0e\x1a\xf7\x87\xa8\x2c\xb5\x32\xf8\x41\x99\x19\x7d\x7f\xfb\x14\x87\x1b\xa3\x47\xc3\x8d\x24\xce\x60\x38\x08\x56\x3f\x7a\xc1\xc2\xd8\x78\x1d\x23\xe7\xae\xd7\x3a\x94\x61\x16\xba\x55\x5d\xa3\xb7\xaa\x00\x34\x85\x5d\x85\x66\xcf\x6d\x68\xae\x9c\x27\xbb\x02\x8b\x7f\xb6\xe8\xbc\x4b\xf6\xdd\xbd\x08\x9e\x6f\x66\x91\x69\xeb\x19\x5a\xf6\x20\xc5\xca\x85\x10\xdd\xfc\xf3\x04\xcf\x88\xcd\x46\xab\x24\x8a\xce\x57\x7c\x4c\xb4\xda\x83\xf2\xb0\x54\x5a\x33\x2e\xc8\x35\xd7\x97\x9c\xe5\x80\xf5\x0c\xa5\x44\x09\x4c\xdf\x4c\x38\x4c\x60\x42\xc1\xa6\x21\xe7\x2b\x8b\x3c\xe2\x9d\x47\x21\x43\xf9\xf0\x35\xe2\x38\x91\x90\x32\x68\xce\x3f\x42\x39\x75\x2d\x37\x8b\xf6\x6b\xe0\xb2\xf7\xfb\xaa\x0e\xe2\xfb\x5f\xff\x56\x6d\xfc\x3e\xbe\x66\xed\xd6\xb0\xb2\x34\x6d\x1d\xda\xac\xe9\x39\x3f\x9d\x93\xf3\x19\xf7\xa8\x7f\xf6\xf3\x34\xee\xcf\xfe\x78\x21\x59\x34\x9d\xde\xde\x4d\xae\xb2\xe9\x34\x8c\x9d\x35\x3b\x6b\x37\x9d\x6c\xb3\x15\x3c\x84\x1a\x81\xb3\xa6\x01\x61\x24\x3c\x72\x8e\xdc\x30\x5d\x90\xc6\x6d\x47\x70\xa9\x11\xbd\x4b\xba\x9a\x4a\x54\x9d\x1e\xb0\xfa\xf9\x5b\x35\x96\xf7\x03\xec\x42\xb7\xdc\x91\x77\x66\x98\x72\xeb\x79\x59\x0b\x13\xee\xd9\x72\x2e\x3c\x34\x88\xd6\x85\xf8\x33\x22\xef\xbc\x15\x4d\xb8\xb7\xae\xe3\x7c\xe7\x95\x15\x54\x12\xa6\x08\xd3\xdd\x60\xe1\xd9\x03\x1a\x56\xdd\x79\x61\xb9\xba\x76\x85\x89\x5f\x40\xd8\x28\xf0\x26\xfb\xf1\x17\xce\xb0\xef\xc4\x49\x63\x49\xae\xdb\xdf\x39\x91\xe7\xe1\x16\xa6\xca\x5a\x56\x64\x80\x59\x9a\x0e\x8f\x47\x68\x7d\xf7\xff\xf4\x68\x98\x1c\x8f\x92\x4f\x9f\x93\x93\x5f\xb2\xe1\xe0\x78\x70\xdc\x89\xf3\xd4\x3b\x9a\x58\x46\x23\xb7\xa5\xff\xa6\xc7\xdd\x99\x79\xfa\xcb\x49\xf2\xf9\x53\x32\x3a\x4e\x86\x47\xd9\x70\x30\xda\xf7\xc8\xf2\xa9\xe2\xff\x82\xdb\x9d\xc0\xa7\x1f\x8f\x92\xe1\x71\x32\xfa\x94\x7c\x3e\x09\xa3\x73\xd4\xbb\x8a\xb6\x55\x93\x6f\x52\xcd\x61\x8e\xba\x09\x4f\x8d\x37\xe9\x2f\x95\x91\x9d\x6e\xe1\x5d\xb3\x0a\x8f\x98\x9a\x2c\xee\xbc\x38\x3c\xc1\x5c\x2c\xb8\x69\x0a\x03\xf9\x0e\xd4\x1c\xf8\xed\xfc\x9a\x8d\x7c\xf3\xc4\xb5\x08\x61\xcc\xb9\x70\x48\x68\xbd\x02\x11\xee\x6f\x57\x2a\x64\x3a\xb9\x93\xe8\x7f\x01\x00\x00\xff\xff\x7a\x5a\x8b\xa4\xd7\x0b\x00\x00")
func ConfigReadmeMdBytes() ([]byte, error) {
return bindataRead(
_ConfigReadmeMd,
"../config/README.md",
)
}
func ConfigReadmeMd() (*asset, error) {
bytes, err := ConfigReadmeMdBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/README.md", size: 3031, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x15, 0x44, 0x2b, 0x13, 0x14, 0x34, 0xa, 0x66, 0x62, 0x1b, 0xc6, 0x4a, 0x2c, 0x7d, 0x4d, 0x89, 0xfb, 0xc9, 0x69, 0xe4, 0x18, 0x5f, 0x3, 0x98, 0x6d, 0x3c, 0x9e, 0xa8, 0xcd, 0x53, 0x5d, 0x75}}
return a, nil
}
var _ConfigCliAnonMetricNodeClientJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x52\xcd\x6e\xdb\x3c\x10\xbc\xfb\x29\x04\x9e\x9d\x44\xfc\x15\xe9\x5b\x12\xe7\xfb\x12\xd4\x0e\x8c\x38\x45\x0f\x45\x0f\x2b\x71\x25\x0b\x96\x45\x81\xa2\xec\x34\x45\xde\xbd\xa0\x9c\x38\x6e\x0b\xde\x66\x87\x33\x8b\x99\xfd\x35\x49\x12\xf2\x88\xe1\xe0\xfc\xf6\x61\x4e\x66\x09\x9d\x46\x64\x0e\x01\xe6\xb5\x27\xb3\x84\x5c\x85\x5d\x77\xd5\x07\x08\x43\x7f\x51\xb9\x0b\x0b\x01\xc8\xc8\x79\x74\x16\xbf\xe0\xcf\xc8\x49\x79\x4e\x19\xd7\x05\x4f\xad\x34\x4c\x22\x07\x9a\xe5\xa2\xa0\x42\x09\x28\x94\x56\x39\xb7\x60\xb4\x64\x59\x99\xd2\x5c\x17\x0a\xd2\x8c\xd3\x42\x48\x5a\x50\x43\x2d\x4f\x8f\x82\x4f\xd8\x5a\x7c\xdd\xbb\xa1\x27\xb3\x24\xf8\x01\xdf\x6d\xe6\x75\x5f\xb8\x3d\xfa\x68\x55\x42\xd3\x1f\xf1\x45\xdd\x07\x6c\xaf\xad\x1d\xb7\x4c\x2f\xc7\x37\xe3\x29\x4f\xf9\x87\x5c\x15\x29\xfe\xd9\x75\x75\x11\x25\xbf\x93\xc3\xa6\xee\x3b\xf4\x3b\xa8\x1b\xf2\x63\x3a\x89\xac\xfb\xe7\xe7\xd5\x5d\x0b\x79\x83\xf6\xdc\x35\xc2\xf7\xae\x0f\x51\x9b\xb2\x6c\x54\xa7\xe4\x34\x5a\x39\x1f\x47\x5a\x0a\x39\x62\xd7\xab\x87\xa5\xb3\x43\x83\xd1\x87\x60\xd8\x4c\x5b\x0c\xd3\x03\xe6\x7c\x0a\x76\x57\xb7\x53\xe8\xba\x1d\x06\x1f\x17\x39\xfa\x7e\x83\xed\x70\xeb\xda\xb2\xae\xc8\x2c\x89\x2d\x24\x09\xf9\x77\x8f\x13\xb8\x84\xba\x59\xa3\xdf\xa3\xff\x73\x7a\x5e\xd4\x1e\xfc\x59\x59\xf6\xea\x00\xdb\x81\xbc\xf3\x3e\xff\xaf\xa0\xef\x0f\xce\x47\x17\xf2\x5e\xab\x2b\xcb\xa6\x6e\xf1\xa2\x6e\x73\xf7\x42\x26\x49\xf2\x76\xdc\x71\xe1\xaa\xff\xea\x06\x4f\xe2\x8d\xab\x3e\x2f\xe1\xb2\x71\xd5\x31\x90\x85\xab\x16\xb8\xc7\x26\xf2\xe6\x77\x37\x5f\xff\x3f\xc1\x4b\x78\x59\xd7\xaf\x51\x80\xa5\xe9\x19\x78\x03\xc5\x76\xe8\x62\x56\xf2\x03\xbd\x75\xbb\xce\x63\xdf\x3f\xb9\x00\xe1\x2c\x83\x38\x5e\x6f\x36\xf8\x12\xfe\x4e\xeb\xba\x75\xed\xf2\x98\xe9\x1a\x5b\x3b\x5e\x2f\x49\x05\x35\x52\x89\xcc\x48\x9e\x73\x54\x19\x43\x2b\x94\xb6\x90\x71\x06\x92\x97\x50\xaa\x3c\x85\x5c\xe4\x90\xb1\x4c\x03\x63\x39\x5a\x2a\xa9\x11\x86\x49\x63\xc0\x14\x5a\x32\xa1\x8c\x52\x99\x14\x9a\x73\xc1\x34\x2b\xa9\x2e\xb4\x92\x28\x04\x62\x3c\xf0\x82\x97\x54\x1b\x25\x25\x0a\xb0\xd4\x18\x95\x4a\xe0\x42\x0a\x93\x51\x9e\x67\x5a\x8d\xf9\x4d\xde\x7e\x07\x00\x00\xff\xff\xf7\x46\x3e\x7d\x59\x03\x00\x00")
func ConfigCliAnonMetricNodeClientJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliAnonMetricNodeClientJson,
"../config/cli/anon-metric-node-client.json",
)
}
func ConfigCliAnonMetricNodeClientJson() (*asset, error) {
bytes, err := ConfigCliAnonMetricNodeClientJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-client.json", size: 857, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x90, 0xdf, 0xcd, 0xc8, 0x92, 0x1d, 0x63, 0x5e, 0xe1, 0xf9, 0x7f, 0xed, 0xf2, 0x68, 0x6b, 0x20, 0xff, 0x1d, 0x3b, 0xc9, 0x7b, 0xb9, 0x6a, 0xba, 0xd3, 0xbd, 0xf7, 0x48, 0x7b, 0x5a, 0x52, 0x79}}
return a, nil
}
var _ConfigCliAnonMetricNodeServerJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x6c\x51\xcf\x6f\x9b\x30\x18\xbd\xe7\xaf\xb0\x7c\xa6\xad\x81\x98\xa4\xdc\xd2\xd2\xad\xd1\x92\x2a\x4a\x52\xed\x30\xed\x60\xe3\x0f\x62\x05\xf8\x90\x6d\x48\xd7\xa9\xff\xfb\x64\x58\xb3\xa8\x9d\x7c\x7b\xdf\xd3\xfb\xe1\xf7\x7b\x42\x08\x7d\x02\x77\x42\x73\x5c\x66\x34\x25\x61\xe0\x91\x4c\x38\x91\x69\x43\x53\x42\x6f\x5c\xdd\xde\x58\x27\x5c\x67\xaf\x4a\xbc\x52\xc2\x09\x3a\x70\x9e\x50\xc1\x37\xf8\xe5\x39\x92\xe7\x09\x97\x79\xa1\x24\x8b\xa2\x24\x64\x3c\x92\xb3\x30\x97\xbc\x48\x14\xe4\xec\x96\x2b\x06\x21\x53\x45\x32\xbd\x95\x53\x11\xc9\x99\x9a\xcf\x43\xe0\x1c\x62\x96\xe4\x12\x64\x3e\x0a\x6e\xa1\x51\xf0\xda\x63\x67\x69\x4a\x9c\xe9\xe0\xaf\x4d\xa6\x6d\x8e\x3d\x18\x6f\x55\x88\xca\x8e\xf8\x4a\x5b\x07\xcd\x42\xa9\x21\x25\xbb\x1e\x5e\x1a\xb3\x98\xc5\xef\x72\xa5\xa7\x98\x3d\xb6\x3a\xf7\x92\x3f\xe8\xe9\xa0\x6d\x0b\xa6\x16\xba\xa2\x3f\x83\x89\x67\x3d\xee\xf7\x9b\x87\x46\xc8\x0a\xd4\xa5\xab\x87\x1f\xd1\x3a\xaf\x1d\x46\xb3\x41\x3d\xa4\xe7\xd3\x06\x8d\x3f\xcd\xf9\x94\x0f\xd8\x62\xb3\x5c\xa3\xea\x2a\xf0\x3e\x14\xdc\x21\x68\xc0\x05\x27\x90\x71\x20\x54\xad\x9b\x40\xb4\x6d\x0d\xce\xf8\x20\xa3\xef\x77\x71\xec\xee\xb1\x29\x74\x49\x53\xe2\x57\x20\x84\x7e\xce\xf1\x61\x8a\x5e\x98\x8b\x39\xd4\xcd\x49\x1c\x3b\x3a\x21\xe4\x6d\xd4\x5c\x61\xf9\x45\x57\x70\xa6\x56\x58\xfe\x5b\xee\xba\xc2\x72\x2c\xb0\xc2\x72\x05\x3d\x54\x9e\x97\x3d\xdc\x3d\x7f\x3d\xc3\x6b\xf1\xb2\xd3\xaf\x5e\x20\x62\xec\x02\xbc\x13\xf9\xb1\x6b\x7d\x37\xfe\x8e\xde\x63\xdd\x1a\xb0\x76\x8b\x4e\xb8\x8b\xcc\xfe\xbc\x3b\x1c\xe0\xc5\x7d\x6c\xb7\x68\xb0\x59\x8f\x7f\xb0\x03\xd3\x83\xf9\x6f\xdd\x4f\xac\x0d\x5a\x57\x1a\xb0\xcf\xdb\xa5\x0f\x3c\xd4\x9d\xbc\xfd\x09\x00\x00\xff\xff\x34\xe5\xb6\x04\xb8\x02\x00\x00")
func ConfigCliAnonMetricNodeServerJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliAnonMetricNodeServerJson,
"../config/cli/anon-metric-node-server.json",
)
}
func ConfigCliAnonMetricNodeServerJson() (*asset, error) {
bytes, err := ConfigCliAnonMetricNodeServerJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-server.json", size: 696, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf0, 0x2f, 0x97, 0xab, 0x77, 0x61, 0x93, 0x9d, 0x1f, 0x33, 0x18, 0x72, 0xad, 0xce, 0xa3, 0x35, 0xa9, 0x44, 0xbf, 0x29, 0xa8, 0xea, 0x21, 0xb7, 0x22, 0x7f, 0x7d, 0x3a, 0x6b, 0x55, 0x3c, 0x66}}
return a, nil
}
var _ConfigCliFleetEthProdJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x97\x4d\x8b\x5d\xc7\xd5\x85\xe7\xfa\x15\x4d\x8f\x5f\xae\xf7\x67\x55\x6d\x8d\xc4\xeb\x24\xb3\x98\x10\x67\x16\x32\xd8\x9f\xb1\x40\xa8\x83\xd4\x32\x24\xc1\xff\x3d\x1c\x59\xc1\x2d\xa2\x1e\xf7\xa8\xa1\xfa\x70\xef\xba\x7b\xad\xf5\xd4\xd9\xff\x7e\x75\x77\x77\xff\xe7\x7e\x5f\xfd\xaf\x9f\x1f\x3e\x7d\xbc\x7f\x7d\x37\xfe\xee\x63\xff\xdf\x75\xfc\xc3\xc3\xef\xde\x7e\xcc\x87\x9f\xfb\xc3\x3f\xbf\x3a\xff\xfe\xdd\xa7\x8f\x8f\xfd\xe1\xfb\x87\xf7\xf3\xf6\xef\xf7\xaf\xef\xae\xcf\xb8\xbb\xbb\xff\xfd\x7b\x8f\x77\x5d\xf7\xaf\xef\x1e\x3f\x7c\xfa\xfc\xe4\xdd\xdd\xfd\x1f\xde\x75\x3f\xde\xbf\xbe\xbb\xef\xc7\x9f\x6e\xff\xf8\xf0\x50\xf7\x5f\xfe\xf1\xff\x0f\x0f\x8f\x3f\x3c\x54\x5f\x5f\xf9\xd7\xcf\x47\x77\x77\xf7\xfd\xfe\xa1\xfa\xf5\x77\xdf\xad\x5e\xaa\x32\xc1\xc0\x12\x84\xc8\x76\x26\x0b\x06\xe0\x50\x46\xac\x28\xe4\x85\xd6\xe8\xbb\xf7\x0a\x5f\xab\xf1\x80\xb9\x3b\xa4\x0e\x7a\x2a\xa7\x79\x6f\xcb\xa1\x29\xf1\x1d\x9e\x81\x50\x48\x80\x70\xcc\x82\x37\xe4\xd6\xe9\x42\x0b\x33\x2c\x4b\xc8\x2a\xa0\x63\xe8\xe1\xf5\x46\xf6\x6d\xeb\xcd\xec\x86\xcb\x5e\x8b\xf0\x17\xd5\x4f\x24\x0a\xaf\xcc\x35\x6b\x8b\xd1\x99\x4a\x73\x9b\x6d\x06\x43\x26\x02\x40\xb1\x8e\x16\x26\xef\x01\xd2\xc4\x68\x21\xc5\xa3\xa1\x81\x03\x06\x30\xed\x83\x99\x49\xbe\x90\x81\xd6\x19\x33\xb8\x1e\xf3\x5d\xa4\x34\xbc\x19\x28\x0f\xb3\x3a\x25\xfa\xa2\xcd\xab\x8d\x98\x96\x61\x26\xfb\x1b\xdc\xe7\x86\x74\x6e\xc8\x9f\xff\x7e\x5b\x25\xd3\xcc\xaa\x73\xf6\x82\x00\x93\xed\x5c\xdd\x2a\xd9\x33\x52\xa7\xf6\x40\x48\x02\x71\xae\xf2\x62\xd1\x75\x16\xea\xa4\xf7\xb1\xa6\x95\x49\x5b\x79\xe8\x0c\x92\x1c\x75\x41\x5c\x69\x7b\x47\x1b\x6f\xdf\xb4\x96\x22\x2e\xb5\x45\x4b\xdd\x61\xf3\x0a\xe5\x92\x15\xb4\x45\x16\xd9\xf2\x37\x2c\xb7\x0d\xd7\x2c\x09\x9e\x91\x48\x5c\xb0\x05\x02\xd1\xd0\x58\xcf\x22\xad\x6d\x25\xe9\xb9\x4b\xc1\x59\x6a\x5b\x5b\x2e\x6b\x5c\x87\x31\x35\x37\xe8\xe6\xad\xdb\x71\xb4\x76\x9d\x23\x8a\x10\xa9\xa6\xb5\xbb\xa5\x9c\x13\x15\x8e\xd7\x9c\x1d\x91\xd6\x46\x0b\xea\x80\xf4\x00\xcf\x49\x6c\xde\x43\x13\x34\xb9\xec\xf2\x5a\xe9\x86\xb0\x6e\x08\xfb\xdb\x1a\x95\x4d\xdd\x63\x1f\xe6\xc1\xce\x58\x1b\x43\x2d\x06\x94\x30\x87\x80\x48\xa6\x0f\x2e\x9a\xe4\xa2\xb5\xb5\x5a\x2e\x21\xba\x78\xf9\xd6\x4e\xa6\x42\xbe\x4c\x4e\x3c\x52\x73\x0a\xab\xc6\x0f\xb0\x09\x1b\xac\x73\xa8\x7c\x91\x4b\x8d\x50\xc9\x64\xce\x2a\xdc\x07\x0e\xea\xf2\xb3\x7f\x33\x5b\xe0\x86\xe7\x99\x49\xaa\x80\xa6\x82\xd5\xac\xc3\x69\x8b\x7a\xa7\xc9\x86\x20\xc5\x88\xb5\xad\x6a\xd9\x3e\x73\xa8\x34\x64\xd9\xe0\xac\x5c\x52\x88\xa5\x30\x51\x5a\x65\xb3\x0f\x60\x2e\x2f\xc5\xe1\x20\x70\x9d\x95\x7b\xa6\x49\x4e\xa6\x79\x10\xf1\x9c\xc8\xf0\x2b\xbf\x12\x81\x09\x3d\x64\x3a\x05\x6f\x58\x6f\x44\x7c\x23\xd4\x1b\xea\xfa\x2c\xf2\xb3\xc6\xbf\x7d\xe9\xfc\x5f\x3e\x5c\xe0\xa8\x3f\xfa\xdb\x77\x3f\xf6\x87\x9f\xfb\xc3\xb7\xcb\x0f\xcb\x1b\xc4\x37\xb6\x56\x9c\x75\x7c\x13\xe5\xde\x4e\x98\x87\x44\xbc\xf9\x0c\x46\xad\x6b\xe2\x67\x67\xae\x9c\x3e\xc7\x19\x16\x8f\x63\x92\xe8\x32\x22\xa6\x59\x32\xa2\x51\x2a\x70\xa6\x4b\x91\xb9\x3d\x4e\xd7\x3e\x20\xc6\x4c\x01\x32\x96\x88\xd0\x9e\x7b\x36\x26\x86\x90\x7d\x29\x3f\xc9\xbe\x11\xca\xb7\x47\x9d\x42\xc3\xeb\x38\xf1\xb8\x9d\xab\x52\x6b\x8a\x64\x13\xc1\x56\x83\x45\x4c\x4c\x62\x3d\x4b\x77\xd1\x2a\xd6\xed\x7b\x6f\x11\xf6\x4e\x90\x0a\x0c\x32\x67\x27\xea\xe1\xde\xa9\x72\x1a\x8f\x18\x57\xf9\x28\x3a\x63\x80\x77\x2d\xd8\x76\xfd\xd0\x68\xf5\x3e\x7c\x26\xc7\x87\x5d\xec\x49\x20\xe8\xa6\xcf\x88\xec\xa6\x50\x0e\xf0\x6c\x5b\x46\xb8\xb6\x0b\x82\xa2\x44\x3a\x03\xc9\x32\xad\x18\x68\xf4\x75\x1a\x6b\xc6\x36\xae\x2b\x87\xd0\x13\x68\x3a\x20\x2e\x61\x7d\x36\x4f\x58\x6c\xf1\x3c\x52\x7d\x00\x11\x56\xca\xd2\x38\x4d\xb1\x52\x06\xca\x38\xce\x16\x2b\xd4\x7d\x62\xd2\x07\xb8\xdf\x20\xc8\x0d\x6d\xdf\xe8\x42\x94\x3c\xa3\x92\xf2\x54\x73\x46\xd0\x45\x27\x86\x8c\xd0\xe0\x06\xe0\xc8\x4d\x14\x48\x6b\xd4\x7b\x0e\x35\x81\x92\xfb\x55\x62\x4a\x37\x69\xc8\xed\x45\x68\xad\xcc\xe1\xe7\x5c\x60\x38\xda\x51\x07\xa8\x9a\x60\x2d\x63\x52\x65\xd6\x40\x00\x86\xbd\x44\x3d\x14\x37\xf4\x39\x8b\xa0\xc8\x0f\x5e\x76\x93\xc8\x8d\x08\x6f\xcf\xd9\xbd\xdd\x97\x9c\x2b\x71\xaa\xa6\x10\xd4\x5c\x1c\x43\x04\x29\xb6\x1a\xd2\x5b\xbc\xa6\xea\x72\x13\x7b\xc1\xa2\x5e\x81\x7b\x7b\xa7\x71\xe4\xca\xca\x41\xba\x2e\x2f\x81\xc2\xa5\x97\xb0\x8e\xa9\xd2\xa5\x9b\xac\x5c\x04\x78\x9d\xda\x29\xe5\xbb\xa2\xa4\x00\x24\xd0\x13\x28\xe6\x7c\x65\x37\xad\x67\x58\x0f\x84\x98\x51\x07\x93\x74\x60\x07\xb0\x03\xda\x2a\x5d\xbd\xb2\x65\xc1\x55\x57\xae\xd8\x9b\x67\xae\xde\x3a\x91\xb2\xca\x1e\x9f\x5a\x09\xab\xbd\x97\x17\x2b\x73\x53\x38\x5b\xa9\xe9\x92\x9c\xa8\x08\x6d\xca\xde\x89\xbc\x5d\x3b\xe2\x68\x9b\x55\x4e\x6e\xdf\x3a\x66\xa3\xfa\xe6\xaa\x3e\xaf\x9b\x9e\x9b\xd1\x33\x89\x3c\x3a\x58\x42\x60\x43\x63\x56\x7e\x00\x7d\xf0\x54\x9c\x8d\xab\xf5\x88\xd3\xf1\x82\xa8\x94\x3d\x51\x59\x67\x68\xf9\x6c\xa9\x28\xdb\x93\xb4\x0d\x45\xd6\x01\x55\xee\xdc\x59\x06\x46\x3e\xbd\x0e\x57\xb5\x63\xc3\xd8\xa4\x6e\xec\xc8\x90\xc0\x3a\xba\xf3\x9a\xc3\x39\x47\xb9\xfe\xeb\x35\x92\xdd\xce\x33\x1a\x8f\x2f\x09\x4e\x16\x73\x6a\xe8\x11\x67\x6a\x17\x5b\x60\x7d\x55\x91\x79\x49\x34\x22\x02\x29\x27\x81\x57\xe2\x76\xce\x8e\x48\x36\xff\x1c\xc7\xe2\x46\x0e\xd4\x6b\xc8\xdd\x5a\xe7\xd2\xe5\x27\x9c\xb2\x80\x16\xa0\xf4\xda\x21\xe8\xe2\xb1\x0b\x2f\xf2\xae\x9d\x4e\x5b\x68\x7f\xe5\xb5\x3d\x13\x48\x11\x5c\xd0\x44\x7d\x42\x28\x8a\xc9\x61\x25\x2a\x13\x2e\x1d\xb7\x06\x5b\xdd\xd1\x55\x7b\x7c\xd5\x6a\x9d\x13\xd1\x03\x22\x10\x29\x2e\x6a\x38\xcd\x4b\x31\x7a\x1d\x34\xf6\xdd\x09\x64\x40\x98\x15\x62\x17\x51\xb1\xf6\xd8\x60\x5d\x17\x6f\x98\x11\xad\x5e\xc3\xe6\xdb\xb5\xe4\x57\xd4\xeb\xe7\xd2\x90\xe8\xff\xa2\xfe\x4f\x9f\x3e\xfe\xf4\xc3\xc3\xe3\xdb\x79\x9b\xfe\xf8\xf6\xe1\xfd\xc7\x6f\x00\x1f\xe4\xa5\x51\xff\xdb\x60\x41\x5e\x1a\xe9\x4f\xb5\xbc\x34\xb9\x9f\x6a\x79\x69\x3e\x3f\xd5\xf2\xd2\x1c\x7e\xaa\xe5\xa5\x71\xfb\x55\x5e\x5e\x98\xab\x4f\xb5\xbc\x34\x3f\x9f\x6a\x79\x69\x4c\x7e\xcd\xc4\x1f\x1f\xfd\xf1\x6d\x3e\xbb\xf4\x26\x6c\x77\xa8\x6e\xe7\xd8\xa0\x2b\xb5\x44\xfd\x68\xa4\x0b\x0d\xd4\x29\x0e\x94\x0b\x0e\x61\xba\xf7\x42\x18\x3e\xab\xc1\x65\x8b\x38\xf4\x0e\x3a\xa2\xde\x4c\xa7\x27\xc5\x5d\x82\x0e\x6c\xf5\x39\x7c\xae\x75\x45\x83\xed\x68\xcc\xd5\x8f\x4e\x00\x83\xe0\xd8\x6b\x99\x47\xe2\xf0\xaf\x4c\x5f\x37\xa3\x1b\xaa\x3e\xf3\x8e\x71\x54\xf7\x95\x84\x40\x69\x90\xd2\x00\xf1\xd9\xdd\x7d\x58\x4b\x2e\x2c\x96\x40\xe6\x20\x5e\x39\x8c\x32\x65\x01\x01\x1d\xde\x39\x1c\x11\x73\x18\x82\x3b\xce\x6c\x30\x92\x68\x48\x32\xb0\x6d\x80\x04\xeb\x50\x5a\x72\x6f\xc3\x25\xab\xa9\x54\x90\xfb\x5a\x49\x54\xf4\x6a\xca\xd3\x97\x35\x92\xe7\x56\xf3\x06\x3f\x75\x71\x8f\x05\x38\x8d\xaf\x58\xc1\xde\x6d\x88\x47\x71\x2b\x4c\x9a\x6a\x05\x4e\x62\x83\xcd\xb9\x82\xa4\x6b\x93\x9a\xac\x73\xa4\x4a\xfb\x5a\x8b\x48\x4f\x7b\xda\xc2\x31\xd8\xc7\xd9\x38\xe5\xb2\x23\xf6\xa9\x82\xbe\x00\x28\xcd\x3b\x7b\x6f\x0e\x96\x8d\x45\x4d\x96\x6f\x90\xe5\x46\x60\x37\xe4\x6b\xa7\xc4\x27\xb7\xe3\xab\xbb\xbb\x5f\x5e\xfd\xf2\xea\x3f\x01\x00\x00\xff\xff\x28\x1e\x55\xdf\x76\x11\x00\x00")
func ConfigCliFleetEthProdJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliFleetEthProdJson,
"../config/cli/fleet-eth.prod.json",
)
}
func ConfigCliFleetEthProdJson() (*asset, error) {
bytes, err := ConfigCliFleetEthProdJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-eth.prod.json", size: 4470, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0x7b, 0x71, 0xe3, 0x8a, 0xb0, 0x7f, 0xc3, 0xe, 0xd2, 0x67, 0x38, 0x50, 0xf4, 0x27, 0xaa, 0xec, 0x47, 0xa1, 0x1, 0xf7, 0x5d, 0xe9, 0x8f, 0x3c, 0x35, 0x9f, 0xdb, 0x9b, 0x30, 0x88, 0x26}}
return a, nil
}
var _ConfigCliFleetEthStagingJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x95\x4f\x8b\x1d\xd9\xcd\x87\xf7\xfe\x14\x97\xbb\x7e\xa9\x91\xce\xd1\x91\x74\x7a\x65\xde\x49\xb2\x8b\x09\x99\xec\x42\x16\xfa\xeb\x69\x68\xfa\x42\xf7\xb5\x21\x09\xf3\xdd\x43\x79\x0c\xf1\x90\x9e\xb5\x77\x85\xaa\x38\xe7\x41\x7a\x7e\xaa\x7f\xbf\xbb\x5c\xae\x7f\xad\xe7\xac\x7f\x7d\xbe\x7d\x7a\xbd\x3e\x5c\xda\x9e\x5e\xeb\xff\xce\xf2\x87\xdb\x1f\x1e\x5f\xe3\xf6\xb9\x5e\xfe\xf9\x9b\xfa\x8f\x4f\x9f\x5e\xef\xf5\xf2\xe3\xed\xb9\x1f\x3f\x5e\x1f\x2e\xe7\x19\x97\xcb\xf5\x8f\xcf\xe6\x4f\x95\xd7\x87\xcb\xfd\xe5\xd3\x97\x2f\x2f\x97\xeb\x9f\x9e\xaa\xee\xd7\x87\xcb\xb5\xee\x3f\x1f\xaf\x77\xfb\xf8\xf8\xfc\xf1\xfa\xf5\xdd\xff\xdf\x6e\xf7\x0f\xb7\xac\xf3\xd6\xbf\x7f\x29\x5d\x2e\xd7\x7a\xbe\x65\x3d\xfc\xf0\x03\x4f\x70\x98\x34\xc2\xa8\xf6\x5a\xa3\x17\x08\x92\x73\x68\x0d\x4d\xde\x6b\x79\x40\x27\x52\xc9\x5e\xd0\x7b\x7a\x4c\x1f\xae\x11\x1a\xd8\xd3\x39\x11\x66\x36\x73\x2f\x34\x9c\x29\x32\x7d\xa5\x43\xe3\x04\x66\x6c\x5f\x21\xae\x6d\x03\x83\x54\x37\x04\x53\xc8\x76\x42\x5b\x6c\xb4\xe1\x3d\xc9\xb1\xf1\x18\x63\x1f\x44\x0f\x44\xf3\x2b\xf5\x37\x88\x2d\xbb\x7d\x6e\xdc\x2d\x23\x6c\x31\x58\x02\x4d\xca\x88\xa9\x62\xde\x45\x58\xc0\xcc\x03\xb0\x3c\x2d\x4d\x2b\x0b\x88\x07\x2d\x3a\x91\xca\x61\x45\x1a\xae\x1e\x2a\x39\x82\x3c\x75\xa5\x29\x36\x94\x8f\x95\x60\xa4\xec\xee\xa1\xd9\x34\xc4\xb7\xa0\xc5\xc2\x35\xa7\x27\x40\xd7\x7b\x14\x3a\x70\xea\x81\x20\xc7\x98\xfb\x6d\x4a\x04\x13\x0d\x94\x3d\xb6\x09\xe0\xae\x26\xb3\x31\x68\xa7\x4c\x18\x2d\x6c\xa5\x06\xdc\x04\x3e\x32\x54\x5d\x7c\x62\x79\x37\x19\x8f\xd9\xee\x44\x7e\x3e\x8a\x85\xdb\xd8\x1c\x18\x95\x53\x64\xe5\xc6\xf6\x42\x25\x9e\x81\x0b\xb6\x18\xdb\xe4\x4e\x1f\xa1\x40\xdd\xb3\x63\xf9\x5c\xef\xe7\x3a\xc6\xd4\x63\x9f\x8c\xbf\x76\xf2\x0b\xe2\x3f\xbe\x5a\xf0\xb7\x97\xd3\xa6\xfc\xb3\x3d\x3e\xfd\x54\x2f\x9f\xeb\xe5\x4d\x1d\x5c\x48\xd7\x46\xe1\xd8\xb2\x30\x27\x92\x55\x75\xc7\xe0\x8a\xdd\xca\x6c\x84\x43\xd6\x28\xc9\xac\xd8\xe8\xb8\x01\xd5\x50\x4b\x22\x4c\x93\xa7\x44\xd7\x88\xca\xf0\x2d\xa3\xb5\x9c\x29\x15\xb9\x3d\x97\x53\xe9\x0e\x29\x0d\xe9\x94\x6c\x35\x9c\x63\xb7\xd1\x4c\x57\x70\xf0\xae\x53\x87\x35\x8e\x0d\x07\x2e\x7e\xbb\xd1\x7c\x7a\xe0\x66\xd2\x28\x63\x24\x22\x9a\xc6\x0e\xd6\x98\xdb\x26\xd2\x84\xda\xb9\x58\x78\xaf\x66\x04\xed\x89\x11\xce\x91\xda\x60\xd9\x4d\x7b\x63\x49\x67\x98\xb6\x89\x40\xc9\xf2\x50\x5b\xe7\x39\x92\x83\x78\x43\x78\x28\x14\x80\xa2\xac\x26\x08\x5c\x92\xdc\x2c\xaa\x49\xfa\x7e\x00\x1f\xa8\xfb\x18\x04\x07\xfe\x0e\x64\x51\x07\x42\x60\xf3\x0a\xb5\x4a\x9d\x16\x83\x3d\xd0\xdb\x07\x1a\xad\x08\x34\x5d\x0b\x6c\x29\x88\x84\xe6\xc8\x1a\x06\x05\x91\xa8\x45\xd0\x49\xd0\x52\xdc\x92\x30\x32\x38\x12\x78\xeb\x70\x40\x8a\x52\x4d\x2e\x62\x95\xb1\xfa\xec\x36\x4e\xad\xbd\xf4\xe4\x03\x80\x61\xd2\xbf\xda\xb0\x0f\xdc\xf3\x20\xfc\x5f\x1b\xfe\xf2\xe9\xf5\xe7\x0f\xb7\xfb\x63\x3f\x86\xdd\x1f\x6f\xcf\xaf\x6f\x38\x01\xf4\xbd\x6d\xf8\x6f\x5f\x81\xbe\xf7\xd8\xbf\x65\xf9\xde\xd3\xfd\xed\x2c\x7f\xba\xdb\xfd\x31\x7e\x77\xc3\x83\x6a\xf4\xb2\x3d\x63\x09\xb7\xd5\x1a\xcd\x0d\xb2\x50\x94\xf8\xdc\xcd\xbd\xd5\x2d\x5a\x46\xaf\x5d\xaa\xd5\x8e\x9c\xed\xb6\x7c\x42\x2b\x18\xa5\x8b\xb6\xd6\x0c\x9f\xa9\xd2\xa3\x79\x0d\x14\xe2\x73\xc5\xa9\xb0\x12\xaf\xea\xa1\x9b\x83\xad\x07\x75\x8a\x18\x8d\x55\x7b\x39\x67\x7e\x8d\xf4\x18\x7c\xe0\x94\xb7\xe3\xb2\x91\x02\xce\xeb\x86\xb8\xf9\x84\xc0\xec\x9c\x98\x96\xc2\x6b\x18\x71\xa7\xed\x29\xb0\x68\x58\x15\x3a\xf0\xa0\xad\x8e\x93\x56\x15\x6c\x9c\x8c\xe4\xea\xbb\x66\x29\xf1\x18\xa5\x64\x32\x60\xc6\xd2\xa5\x56\x98\x5b\x71\x37\x4f\xab\x28\x9c\x55\xcc\x5a\xd4\xcc\xac\xc0\x73\xeb\x7e\x8f\x2c\xc7\x3e\xe3\x72\x20\xe9\xdb\x8c\x39\x55\x94\x08\x79\x8d\x06\x84\x39\x58\x75\xf7\xd0\xc9\x50\xbc\x7b\x24\xec\x04\x5e\x74\xfe\x24\xa9\x2d\x0d\x0a\xc5\xa7\x50\xd4\x9a\xb8\xb3\x98\x86\x6c\x73\x9b\x41\x64\xcb\x5b\x41\x72\x6f\x96\xe0\x14\x58\x3e\x9d\x82\x1d\x66\x9b\x80\xf0\x1c\x04\x35\xaa\xd8\x1a\xd0\xd6\xdc\x75\x46\x1a\xf7\x38\xe0\x50\xfe\x26\xd0\xef\x2e\x97\x5f\xde\xfd\xf2\xee\x3f\x01\x00\x00\xff\xff\xff\x1f\xf2\xb6\x61\x08\x00\x00")
func ConfigCliFleetEthStagingJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliFleetEthStagingJson,
"../config/cli/fleet-eth.staging.json",
)
}
func ConfigCliFleetEthStagingJson() (*asset, error) {
bytes, err := ConfigCliFleetEthStagingJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-eth.staging.json", size: 2145, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa2, 0xe9, 0x85, 0x4b, 0x66, 0xa4, 0x1d, 0x4e, 0xaf, 0x21, 0xd7, 0xc2, 0x59, 0xf7, 0xd, 0xc2, 0x61, 0x4e, 0x4a, 0x9e, 0x38, 0x90, 0x6a, 0x2a, 0x16, 0xa6, 0x5c, 0x6d, 0x0, 0x5, 0x6, 0xb3}}
return a, nil
}
var _ConfigCliFleetEthTestJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x94\xcb\x6e\x64\xc7\x0d\x86\xf7\x7a\x8a\x46\xaf\x83\x76\x15\xc9\xe2\x45\xab\x81\x2f\xc9\xc6\x19\x04\x71\xb2\x0a\xb2\x28\xde\x6c\x01\x82\x1a\x90\x5a\x02\x92\xc0\xef\x1e\xb4\x3c\x41\x64\x5b\xb3\x9e\x2d\x4f\xe1\xf0\x03\xff\x8f\xfc\xcf\xcd\xe1\x70\xfc\xfe\xfc\xe3\xf7\xf5\x52\xf7\xc7\xdb\xc3\xf1\xdb\xef\xbe\xfe\xfb\x9f\x8e\x7f\xb8\x96\xff\x5a\x0f\x59\xff\x7e\x39\x3f\x3f\x1d\x6f\x0f\xbd\xef\x9f\xea\xb5\xfc\xf1\xfc\xed\xdd\x53\x9c\x5f\xea\xf1\x5f\xbf\xaa\x7f\x73\xff\xfc\x74\xa9\xc7\x6f\xce\x0f\x7d\xf7\xe3\xf1\xf6\x70\xfd\xf5\xe1\x70\xfc\xee\x61\xfb\x7d\xe5\xf1\xf6\x70\x79\x7c\x7e\x7d\x79\x38\x1c\xff\x78\x5f\x75\xb9\xb6\xab\xcb\x4f\xa7\x4b\x3d\x5d\x8e\x9f\x3e\x7c\x7d\x3e\x5f\x3e\x9e\xb3\xae\x2d\xff\xf1\x5a\x3a\x1c\x8e\xf5\x70\xce\xba\xfd\xea\xab\xdc\xbb\xa0\x04\x14\x46\x29\x97\x11\xf4\x86\xad\x7b\x4b\x72\x99\x2d\x4a\x1a\x84\x5b\x16\x92\x62\xaa\x27\xa2\xd6\x64\x2f\x85\x68\x63\x40\x83\x5c\x31\x6a\xee\x5a\x12\x98\x62\x18\x98\x98\x99\xa9\x9d\x4b\x11\x0d\x18\x8a\x00\x29\xc3\x98\xdb\x16\x46\x0a\xfa\xc2\xd5\xab\xf7\x07\x92\xd3\x82\xd3\x54\x3d\x4d\xb2\x5b\x22\xfc\x84\xfd\x86\xd1\x6a\x98\xea\x92\x55\x2e\x32\x25\x60\x65\x6d\x81\xce\x39\x43\x1c\x45\x58\x32\x86\xc5\xdc\xc2\xca\x2d\x01\x15\x4b\x24\x71\x68\x02\x5d\x1f\x44\x39\xcb\xca\x22\x9c\x42\x42\x7b\x6e\x95\x51\x24\xaa\x20\x08\xc6\xd2\xd4\x5b\x74\xf9\x00\xdf\xb6\x92\xd9\x1c\x67\x12\x53\x56\x8c\x0f\x30\xf8\x34\xd5\x4e\x40\x78\x9a\x4c\xef\x53\xc6\xac\x35\xa6\xaa\x4a\x28\x63\x32\x5d\xbb\x39\x9b\x37\x4f\x59\x3c\x87\x8a\xc2\x22\x1c\x45\x34\xa6\x20\xf6\xf2\x2d\x12\x32\xd2\x27\x01\x72\x36\xea\xec\x6a\x1f\xe5\x35\x77\x10\x80\x91\x5b\x01\x4f\xf7\x02\xc4\xf4\x74\xc5\x42\x88\xa5\x1c\xcc\xbb\x80\x43\xb3\x64\x84\x53\x7c\xc0\xf5\xcb\x18\x59\x4f\x13\xe5\x15\xf2\x95\xf1\x9f\x9f\x3c\xf8\xdb\xe3\x55\xa6\xfc\xf3\xbe\xbb\xff\xa1\x1e\x5f\xea\xf1\x5d\x21\x78\x5a\xba\xaf\xcc\x3d\xa1\x74\x79\x8f\xf2\x95\x4e\xa3\x1d\xb3\x18\x16\x0f\x1b\x84\x40\x20\x28\x31\xca\x64\xb5\x64\x27\x2f\x4b\x5d\x19\x9c\xb6\x95\xda\x88\xe7\x16\xd0\x58\xdb\x59\x63\x08\x74\x25\x6a\x6c\xde\x0b\x6d\x4a\x6c\x20\xd7\x32\x8c\x00\xf1\xac\xc6\x3d\x4b\x6c\xc7\x5b\x21\x8c\xdf\x1f\x75\x91\xf2\xea\xe2\x80\x7d\x4d\x7d\x31\x6e\x26\x12\xb3\x91\x5a\x16\xc5\x02\x4c\xb4\x0b\x6b\x28\x5c\xd3\x47\xad\x98\x7d\x4d\x63\x54\x35\x23\x8c\x18\xb2\x57\xf2\x08\x74\x06\xeb\x95\x44\x46\x6d\x98\xec\xca\x5b\x68\xed\xe1\xcd\xb4\x1d\x6c\xb9\x37\x2f\xb1\x31\x65\x67\x70\xa5\xfe\x46\x88\xf9\x3e\xa5\x0c\xa9\x25\xb4\x70\x47\x62\x91\x6a\x10\xb9\xe5\xa8\x29\x26\x0b\x65\x16\xb4\xf6\x55\x4c\x58\xb5\x6b\xf9\x8e\x6d\x6e\xa1\x35\x38\x94\x23\x4b\x42\x8c\x36\x07\x14\x32\x0c\xf4\xb6\x5e\x1c\xbb\xd4\x47\xad\xd1\xe8\x88\x41\x01\xce\x46\x5b\x7c\x57\xed\x29\x8b\x88\x29\x8a\x0a\x5f\x85\x30\x38\x01\xd8\x69\x0a\xfc\x5e\x88\xbf\x3c\x3f\xfd\xf4\xf1\x7c\xb9\xeb\xbb\xd8\x97\xbb\xf3\xc3\xd3\x3b\x5a\x0c\xfa\xd2\x42\xfc\x7f\xb0\x83\xbe\x74\xf0\x6f\x59\xbe\x74\xbc\xbf\xce\xf2\x87\xcb\xbe\xdc\xc5\x67\xcf\xfc\x4e\xd4\x36\x1a\x38\xb6\x12\x47\xc8\x18\xcb\x65\xcf\x46\x67\x1f\xd3\x9b\xaa\x97\x25\x52\x69\x62\x72\x53\x4e\xc8\x06\xcc\x49\xbe\x95\x17\xcb\x80\x4d\xb8\x12\x29\x9a\xb2\xd1\x69\x42\x8c\x98\x06\x98\xbd\x76\x46\x94\x12\x4f\x84\xb9\x47\x6a\xb7\x1b\xe1\x72\xe0\x5a\x02\x01\xff\x3b\xf3\xb0\xae\x4a\x7e\xe6\x80\xce\x9c\x86\x8c\xab\xc6\x5c\x36\xb5\x5d\x97\xfb\x6e\x11\xba\xde\xd3\x09\xcd\x2b\x65\x04\x9b\xc8\x1a\x3c\x55\xaa\x07\x11\x8c\x14\xaa\x18\x1c\x56\xda\x23\xc3\x97\xd4\x1e\x04\xad\x2b\x5b\x85\x10\x73\xfb\x94\x3d\x81\x47\xa5\x66\xd6\xf4\x6c\x4b\xce\x95\x90\x45\x2e\xde\x5a\x66\xf8\x9b\xad\xc6\xf7\x29\x7b\x19\x6e\x10\xc1\xe9\x31\x5a\xcb\x87\x6a\x41\xa2\x01\x40\x40\x2e\xcb\x76\xf3\x1e\x8e\xb6\x46\xca\x56\xd0\x5c\xb3\x74\xbb\xd5\xd0\xee\xf6\x34\x9b\xbc\x15\x3a\xcd\x30\xe6\x1e\x3a\x62\x49\x80\xa7\x8c\x4a\x0e\xe4\x26\xb5\x6d\x6c\x59\x6c\xb2\xbb\x0d\x87\x6a\x7a\xd5\xdc\xf6\xcb\x56\xd3\x09\xe7\x69\x0e\x7d\xb3\xd4\x37\x87\xc3\xcf\x37\x3f\xdf\xfc\x37\x00\x00\xff\xff\x36\x83\xc6\x94\x7e\x08\x00\x00")
func ConfigCliFleetEthTestJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliFleetEthTestJson,
"../config/cli/fleet-eth.test.json",
)
}
func ConfigCliFleetEthTestJson() (*asset, error) {
bytes, err := ConfigCliFleetEthTestJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-eth.test.json", size: 2174, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x55, 0x19, 0xca, 0x8d, 0xaa, 0x69, 0x9b, 0xa2, 0xa1, 0xdd, 0xef, 0xf2, 0x63, 0x5e, 0xcd, 0xe2, 0x8f, 0xc7, 0x37, 0x7e, 0x41, 0xa1, 0xc1, 0x3f, 0x65, 0x80, 0xa, 0xa4, 0x27, 0x74, 0x8d, 0xc6}}
return a, nil
}
var _ConfigCliFleetStatusProdJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x55\x5d\x6f\xda\x30\x14\x7d\xe7\x57\x58\x79\x5e\xa0\x24\x40\x28\x6f\x4d\xa0\x45\xd0\x44\x34\x1f\x2d\x30\xed\xc1\xc4\xc6\x98\x24\x76\x66\x3b\x5f\x9d\xfa\xdf\xa7\x74\x68\xeb\xd4\x76\x52\xd7\x57\xde\xac\x73\xaf\xee\x39\xbe\x47\x47\xf7\x47\x07\x00\xcd\xc7\x0c\xe1\xc7\x92\x17\x52\x9b\x80\x3d\x4c\x25\xfe\xd2\xc2\x1e\x9f\x52\x19\xf3\x12\x8b\x46\x9b\x00\x25\x8a\x5f\xb0\x93\x16\x52\x61\xe1\x70\xb6\xa7\x44\x9b\x80\x76\x04\x00\xda\x8c\xc1\x5d\x8a\xd1\x8b\x4e\x00\xb4\xeb\x14\x63\xa5\x4d\x80\x26\x15\x54\x85\xec\xe6\x82\x23\xed\x54\xb3\x39\x57\x1e\x47\xb8\x25\xfd\xfa\xed\x04\x86\xa2\x1d\x8e\x5c\x48\xd3\x00\x8b\x12\x8b\xbf\xaa\xab\x42\x1e\x3c\xae\xe8\x9e\xc6\x50\x51\xce\xe4\x1b\x3d\x81\x82\x8a\xc6\xaf\x06\xff\xf9\xe3\xab\xd2\x03\x4c\x8a\xdf\xe0\x33\x04\x80\xd6\x43\x4c\x0e\x7a\x8c\x23\xac\x5f\xf4\xbb\x30\xd6\x63\xa6\x1f\x38\x23\x09\x67\x44\x8f\xbb\x2f\xfe\x73\x7a\xd3\xac\xcb\xb0\xea\xa9\x38\xef\x99\x17\xe6\x85\xd9\xcb\x8d\xbc\xd7\x1f\x45\xb4\x30\xe6\x57\x49\x39\xdb\x92\x83\xb9\xbc\xad\x0e\xb7\xd5\x9a\x5c\x0e\xf1\x90\x1f\xdd\xf1\xba\x49\x16\x83\x65\x4d\x8d\xd0\x3a\x24\x86\x21\xd8\x95\x95\x2f\x9c\xd3\x82\x5e\x89\x40\x5c\x87\x99\x34\x3f\xca\x9d\x8d\xe6\xdb\xad\xb0\x60\xc8\xc3\x72\x66\xaf\x72\xda\xc8\x41\x54\xc3\xa3\x13\x46\x97\xd6\xe3\x71\x58\x5a\xbe\xe7\x1b\x64\xc7\x68\xd3\x9f\xbe\xc7\x4d\x62\xbd\x90\x7a\x8c\x99\x12\x30\xed\xeb\xf0\xc3\x0b\xa8\xec\x7c\x1c\x8e\x6e\x2c\x2b\xb9\x5b\x07\x9e\xcb\x6a\x02\xdd\xa4\xe9\x2f\x70\xe3\xde\x0e\x9b\xef\x3c\x9c\xfb\xee\x18\xed\xb0\x63\x7b\xbb\xb7\x45\x18\x9f\x76\x21\xbb\x6e\xc6\xb6\x58\x1c\x9c\x59\xe6\x6c\x44\xb4\xb7\x51\xe0\x25\x62\x55\x8d\xee\xe7\xb3\x5a\x95\x03\xe1\xe7\xfd\x69\x60\x33\x67\x45\xea\xf1\x7b\x22\xfe\xd7\x85\xa0\xc4\x96\xf2\x87\x9b\x6d\x41\x72\x99\xb8\xa5\x81\xb2\xc5\x95\x74\xa3\x65\xb6\x7f\xd8\xcc\x96\xfe\xda\x8b\x6a\x1f\x86\x0e\x93\xeb\xfb\xf7\xb8\x3f\xeb\x42\x36\xbd\x2b\x48\x35\x9d\xbb\xe6\x06\x47\xf9\x78\x44\x6f\x8e\x22\x2a\x77\xa8\x32\x17\x2b\x9f\xd0\xc4\xb1\x36\xfc\xc6\x96\xa1\xd1\x64\x2e\xd1\x9e\x35\xbc\x0c\x49\xa0\xb8\xc0\xe7\xa4\x9c\x93\x72\x4e\xca\x5b\x49\xe9\x00\xf0\xf4\x7c\x21\xdb\xac\xdc\x1b\xff\x3e\x90\x6d\x73\xe7\xa9\xf3\x33\x00\x00\xff\xff\xea\xd6\xca\xc3\x80\x07\x00\x00")
func ConfigCliFleetStatusProdJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliFleetStatusProdJson,
"../config/cli/fleet-status.prod.json",
)
}
func ConfigCliFleetStatusProdJson() (*asset, error) {
bytes, err := ConfigCliFleetStatusProdJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-status.prod.json", size: 1920, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5, 0xf, 0x4a, 0x61, 0xd2, 0xfd, 0x7d, 0x59, 0xcf, 0x49, 0x81, 0x6, 0x71, 0xdb, 0x63, 0xe8, 0xeb, 0xdf, 0x9e, 0x65, 0x22, 0xae, 0x9b, 0xb0, 0x16, 0x17, 0xe0, 0x52, 0xe6, 0xb, 0xcf, 0x88}}
return a, nil
}
var _ConfigCliFleetStatusTestJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x93\xd1\x6e\xda\x30\x18\x85\xef\x79\x0a\xcb\xd7\x93\xd3\xd8\x21\x01\xee\x80\x14\x50\x0b\x08\x1a\xda\x82\xa6\x5d\x38\x89\x43\x9d\x64\xd8\x8b\x7f\x07\xb6\xa9\xef\x3e\x25\x63\x5b\xb7\x8e\x69\x0f\xd0\xdb\x73\x8e\xbe\x5f\xe7\x48\xff\xd7\x0e\x42\xf8\x4e\x1c\x52\xf1\xa5\x56\xd6\xe0\x01\xca\x78\x69\xc4\xbb\x46\x5e\xaa\x50\x9a\x44\xd5\xa2\xfa\x8c\x07\x08\x2a\xfb\x5d\x1e\x97\xd6\x80\xa8\xc6\xea\x90\xc9\x3d\x1e\xa0\x06\x81\x10\xbe\x3e\xf0\xb8\x14\xe9\x8b\x24\x42\x78\x52\x0a\x01\x78\x80\xb0\x01\x0e\xd6\x10\x10\x06\xf0\xd9\x1b\x29\x05\x4b\x95\x8a\xe6\xe8\xfb\x0f\x67\x71\x53\x35\xf0\x74\xc1\x65\x19\x89\xaa\x16\xd5\x6f\xee\xca\x9a\xa7\xa5\x02\x99\xc9\x84\x83\x54\x07\xf3\x97\x4c\x04\x1c\x64\xf2\x0a\xfc\xab\xe3\x2b\xeb\x91\x17\xf6\xa7\xd8\x4a\x08\x61\x47\x6a\xcf\xf1\x02\x42\x3d\x4a\x28\x63\x84\xf9\x0e\x24\xda\x61\x57\xec\x8a\x39\x9a\x6a\xc7\xf5\xef\xa5\xa5\xb3\xe1\x47\x3a\xca\xb7\xa7\xb1\x76\xcd\x6e\x72\xb3\xbe\xd5\xf3\x79\xbc\x8a\x8f\x69\x37\xb7\xa7\xd8\xec\x54\x66\xd9\xc6\x44\x8c\xdb\x7a\xd3\xdf\xc9\x73\xf7\x1f\x7c\xdf\x23\x94\x76\x49\xcf\x25\x94\x05\x17\xf8\x85\x2d\x44\x2c\xb6\xf9\x66\xdd\x5f\x87\x23\xb1\x0c\x1f\xed\x34\x8b\x79\xb4\x0f\xfa\xc7\xa2\x78\xba\xf5\xea\x95\x4a\xe6\xfb\x3b\x7f\x3d\x09\xb3\x3f\xf8\xcc\x23\x2e\xa5\x84\x76\x29\x71\xdd\xde\xa5\x02\xd3\x70\xcb\xe4\x70\xa2\x4e\x7d\xb6\xb2\xfa\x61\xc7\x67\xbc\xd7\x2b\xee\xe7\xd3\x4f\x0b\x7d\x13\x0c\xaf\x67\xd3\x63\xce\xf2\x78\x01\x10\xf8\xb8\xe5\xbf\x5c\x2e\x02\x55\x89\xb7\xf9\xfe\x73\xbe\x76\xbd\x0e\x42\xcf\xed\x2b\x35\xfb\x3d\xd0\x7f\x7f\x52\x13\xee\x3c\x77\xbe\x05\x00\x00\xff\xff\x7d\x14\xb1\x90\xa9\x03\x00\x00")
func ConfigCliFleetStatusTestJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliFleetStatusTestJson,
"../config/cli/fleet-status.test.json",
)
}
func ConfigCliFleetStatusTestJson() (*asset, error) {
bytes, err := ConfigCliFleetStatusTestJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-status.test.json", size: 937, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5c, 0x3b, 0xc5, 0xd2, 0xe9, 0xd3, 0x52, 0xd4, 0x5a, 0xf3, 0xed, 0x37, 0xed, 0xde, 0xda, 0xc1, 0x57, 0x37, 0x17, 0x8c, 0x40, 0xee, 0x12, 0x82, 0x14, 0x2c, 0x8b, 0xc7, 0x4b, 0x2, 0xf8, 0x82}}
return a, nil
}
var _ConfigCliFleetWakuv2ProdJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x92\x4d\x8f\xda\x30\x10\x86\xef\xfc\x0a\xcb\xe7\xca\x89\x9d\x10\x1c\x6e\x49\x60\x17\x09\x88\x80\x40\xd2\xdd\xaa\x07\x43\x0c\x35\x5f\x0e\x8e\x1d\xd8\x54\xfb\xdf\xab\x50\xda\x6e\xf7\xeb\xfa\xce\xab\xe7\xd1\x8c\xe6\x67\x0b\x00\x38\xe3\xc7\x9c\xd7\x95\x34\x25\xec\x82\x35\xdb\x97\xfc\x4b\x13\xc7\xb2\x27\xca\x95\xac\xb8\x7a\x82\x5d\xa0\x95\xf9\x1d\x47\x7b\x53\x6a\xae\x22\x79\x5c\x8b\x0d\xec\x82\x06\x01\x00\xec\x1f\xd9\x72\xcf\xf3\x17\x4d\x00\xe0\xdd\x9e\x73\x0d\xbb\x00\x9e\xd9\xce\x54\x04\x15\x4a\xe6\xf0\x36\x0b\xa5\xd4\xb1\xcc\x79\x23\xfd\xf6\xfd\x16\xce\x55\x03\xcf\xc7\x4c\xec\x13\xae\x2a\xae\xfe\x9b\x4e\x4c\xf9\x23\x96\x5a\xac\xc5\x8a\x69\x21\x8f\xe5\x3b\x9d\x44\x33\x2d\x56\x6f\xc0\xff\x76\x7c\x33\xca\xd8\xce\xfc\x0d\xaf\x11\x00\xd0\x12\x85\x6b\x51\x44\xb0\x8d\x08\x21\x88\x38\xd8\xd2\xab\xc2\x72\x6c\xc7\x76\xac\x82\x14\x16\xf6\x16\xc2\x90\x41\x70\x70\x2b\xea\x65\xce\xf2\x30\xc7\xa1\x18\x78\x32\x99\xd4\xab\x32\x51\xc4\x15\xbd\x69\x91\xc4\xed\x29\xf3\x7d\x12\x46\xdb\xed\x79\xa3\x7a\xb7\xdd\xff\xf0\x31\xa5\x08\x7b\x1e\xc2\x4e\x1b\x61\xb7\xfd\x91\x61\xd4\x96\xbb\x4c\x16\x5f\x3b\xf1\xe9\x31\x0b\x17\xc3\xf4\x94\x51\xb1\xb8\x44\xfd\x43\xde\xbe\x1f\x0f\x46\xe9\xe4\x1c\x6d\xea\x87\x7a\x5a\x39\xfc\x95\xc1\x71\x11\x26\x18\x61\xdb\x46\xd8\xa6\x1f\x09\xd2\xdd\xf0\xa8\xcb\x7e\xc4\x1e\xd6\x7c\x3d\xc3\x29\x79\x8a\x66\x1d\x3f\xe2\x9b\x51\x30\x37\xf3\x49\xdf\x0b\xfd\xf9\x65\x73\x09\x85\x10\x01\xbc\xf2\x5f\xde\x2e\xd1\x52\xf1\xf7\x0f\x88\x1d\x17\x11\xdb\x47\x18\x3b\x88\x7a\x57\xbd\x6f\xdb\xf6\x2b\x7b\x2a\xbc\xa9\xbb\xed\x8c\x83\x61\x2a\x96\x27\x93\x51\x16\x90\xce\x22\x56\x81\x3b\xa5\xd9\xae\xf6\xfb\x5c\xdf\xa7\xc2\xd0\xc7\x3b\x7c\xb3\xb7\x00\x78\xbe\x3e\x63\xe3\x4f\xc9\xe7\xbf\xd8\x94\x5b\xcf\xad\x5f\x01\x00\x00\xff\xff\x85\xf7\xd2\x66\xeb\x02\x00\x00")
func ConfigCliFleetWakuv2ProdJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliFleetWakuv2ProdJson,
"../config/cli/fleet-wakuv2.prod.json",
)
}
func ConfigCliFleetWakuv2ProdJson() (*asset, error) {
bytes, err := ConfigCliFleetWakuv2ProdJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.prod.json", size: 747, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc3, 0x81, 0x84, 0xfd, 0x7d, 0x7e, 0x27, 0xc8, 0x5e, 0xb6, 0x38, 0xe1, 0x6, 0xa, 0xbc, 0x86, 0x87, 0x54, 0xa2, 0x2f, 0xe1, 0xa1, 0xc8, 0x6, 0x80, 0xfa, 0xed, 0xfe, 0x13, 0x6c, 0x81, 0xd9}}
return a, nil
}
var _ConfigCliFleetWakuv2TestJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x7c\x92\x4d\x6f\xe2\x3c\x1c\xc4\xef\x7c\x0a\xcb\xe7\x47\x4e\xec\x18\x92\x70\xa3\x3c\x50\x44\x21\xe2\x2d\x49\x61\xb5\x87\x04\x0c\x98\xbc\x38\x38\x76\x9a\xb2\xea\x77\x5f\x85\x65\xbb\xed\xb6\xdd\xeb\xcc\x68\x7e\x9a\xbf\xfe\x3f\x5a\x00\xc0\x05\xcb\x77\xec\x52\x09\x5d\xc2\x2e\xd8\x47\x69\xc9\xfe\x6b\x64\x4f\xfc\xcf\xcb\xad\xa8\x98\x7c\x86\x5d\xa0\xa4\xfe\x25\xf7\x53\x5d\x2a\x26\xfb\x22\xdf\xf3\x03\xec\x82\xa6\x02\x00\x38\xc8\xa3\x38\x65\xbb\x37\x49\x00\xe0\x30\x65\x4c\xc1\x2e\x80\x4f\x51\xa2\x2b\x82\x14\x2b\x15\xbc\x79\x77\x42\x28\x4f\xec\x58\x03\xfd\xf6\xfd\x26\xae\x64\x53\xbe\x9b\x46\x3c\x5d\x32\x59\x31\xf9\xce\x9d\xe9\xf2\xe8\x09\xc5\xf7\x7c\x1b\x29\x2e\xf2\xf2\x93\xcc\x52\x45\x8a\x6f\x3f\x14\xff\xd9\xf8\xc1\x0a\xa3\x44\xbf\x8a\x57\x09\x00\x68\xf0\x82\x1a\xd4\x46\x84\x12\x44\xb0\x89\x6c\xcb\x50\xdb\xc2\xb0\x4c\xcb\xb4\x8c\x82\x14\x06\xee\xf8\x5c\x93\x51\x2f\xa9\x42\xfe\x3c\x2c\x0f\x8b\xa3\x1e\x0f\x62\x77\xbc\x3f\xad\xeb\x41\x22\x46\x93\x43\xee\xcf\x33\x89\xbd\x76\xf6\x10\xe6\xeb\x53\xbd\x5e\x04\xd9\x6d\xfb\xef\x7e\x6c\x51\x44\x4c\x17\x61\xcb\x6d\x20\x5f\x10\xb2\xd9\x84\xd9\xd3\x4b\xe6\xac\xca\xb5\xaf\xe3\x43\xbf\x17\xe2\x68\x2c\xd8\x70\xb9\xad\xe5\xe4\xe4\x14\xc5\x68\xc8\xab\x99\x70\xed\xd8\xdf\xfc\x4d\x30\x29\xc2\x6d\x8a\x88\xe5\x22\x4c\x9c\xaf\x08\xe3\x98\x30\xe2\x9c\x27\x8f\xf5\xaa\x9d\x6c\xea\xc0\xf7\xc5\x58\xd9\x64\x30\xbd\x78\xf7\x8f\x77\xd4\x5e\xd4\x75\xfb\xf8\x64\x9d\xe9\xfa\xb4\x84\x57\xc0\xdb\xe3\x2d\x95\x90\xec\xf3\x0b\xbe\x2e\xc4\x16\x72\x3a\x57\xbc\x6b\x9a\xe6\x7b\x7a\x10\xf0\xce\x9c\x9e\xec\x69\xef\x21\xe0\xf1\x59\x87\x4e\xd4\x23\xb6\xef\xc9\x1e\x9d\x3b\x61\x72\x71\x07\x4c\xdd\x07\x5c\x3b\x9b\x21\xbe\xd1\x5b\x00\xbc\x5c\xbf\xb1\xe1\x07\xe4\xdf\xcf\xd8\x84\x5b\x2f\xad\x9f\x01\x00\x00\xff\xff\xd2\x21\xbe\x93\xec\x02\x00\x00")
func ConfigCliFleetWakuv2TestJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliFleetWakuv2TestJson,
"../config/cli/fleet-wakuv2.test.json",
)
}
func ConfigCliFleetWakuv2TestJson() (*asset, error) {
bytes, err := ConfigCliFleetWakuv2TestJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.test.json", size: 748, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x77, 0x6d, 0x28, 0xb7, 0xc2, 0xf3, 0x22, 0xe3, 0x6d, 0xc1, 0xeb, 0x4b, 0x42, 0xe2, 0x6, 0xb0, 0x60, 0x30, 0xdb, 0xe3, 0x26, 0xff, 0x9, 0xf5, 0xea, 0xe6, 0x56, 0xce, 0xa8, 0x98, 0x61, 0x70}}
return a, nil
}
var _ConfigCliLesEnabledJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xaa\xe6\x52\x50\x50\x50\x50\xf2\xc9\x4c\xcf\x28\x71\x2d\xc9\x70\xce\xcf\x4b\xcb\x4c\x57\xb2\x52\x80\x88\x83\xe5\x5c\xf3\x12\x93\x72\x52\x53\x94\xac\x14\x4a\x8a\x4a\x53\xc1\xe2\xb5\x5c\xb5\x5c\x80\x00\x00\x00\xff\xff\xa6\x74\x24\x05\x3a\x00\x00\x00")
func ConfigCliLesEnabledJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliLesEnabledJson,
"../config/cli/les-enabled.json",
)
}
func ConfigCliLesEnabledJson() (*asset, error) {
bytes, err := ConfigCliLesEnabledJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/les-enabled.json", size: 58, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xee, 0x27, 0xa7, 0x74, 0xa0, 0x46, 0xa1, 0x41, 0xed, 0x4d, 0x16, 0x5b, 0xf3, 0xf0, 0x7c, 0xc8, 0x2f, 0x6f, 0x47, 0xa4, 0xbb, 0x5f, 0x43, 0x33, 0xd, 0x9, 0x9d, 0xea, 0x9e, 0x15, 0xee}}
return a, nil
}
var _ConfigCliMailserverEnabledJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xaa\xe6\x52\x50\x50\x50\x50\x0a\xcf\xc8\x2c\x2e\x48\x2d\x72\xce\xcf\x4b\xcb\x4c\x57\xb2\x52\x80\x08\x83\xa5\x5c\xf3\x12\x93\x72\x52\x53\x94\xac\x14\x4a\x8a\x4a\x53\x75\xd0\x25\xfc\x42\x02\x82\x2b\xf3\x92\x71\x49\xfb\x26\x66\xe6\x04\xa7\x16\x95\xa5\x16\x61\xaa\x40\xc8\x05\x24\x16\x17\x97\xe7\x17\x81\x2c\x51\x2a\x2e\x49\x2c\x29\x2d\xd6\xcd\x4f\x4b\xcb\xc9\xcc\x4b\xd5\xcd\xcc\x4b\xca\xaf\x50\x02\x6b\xaa\xe5\xaa\xe5\x02\x04\x00\x00\xff\xff\x7c\x73\xee\xbb\xb0\x00\x00\x00")
func ConfigCliMailserverEnabledJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigCliMailserverEnabledJson,
"../config/cli/mailserver-enabled.json",
)
}
func ConfigCliMailserverEnabledJson() (*asset, error) {
bytes, err := ConfigCliMailserverEnabledJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/mailserver-enabled.json", size: 176, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0xec, 0x81, 0x8b, 0x99, 0xb6, 0xdb, 0xc0, 0x8b, 0x46, 0x97, 0x96, 0xc7, 0x58, 0x30, 0x33, 0xef, 0x54, 0x25, 0x87, 0x7b, 0xb9, 0x94, 0x6b, 0x18, 0xa4, 0x5b, 0x58, 0x67, 0x7c, 0x44, 0xa6}}
return a, nil
}
var _ConfigStatusChainGenesisJson = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x90\x41\x6f\x13\x31\x10\x85\xef\xf9\x15\x96\xcf\x1c\xc6\xf6\x78\x66\xbd\x37\x4a\x59\x81\xc4\x8d\x5f\x30\xb6\xc7\xcd\xaa\x9b\x6c\x94\x6c\xa4\x16\xd4\xff\x8e\x92\x2c\xa1\x42\x9c\xf0\xcd\x7e\x33\xef\x7b\x7e\x3f\x37\xc6\x58\x99\xa6\xb9\xd8\xde\x5c\x2e\xc6\x18\x9b\x07\x47\x58\x24\xa0\x0b\x9e\x04\x42\x8e\xc8\x05\xe2\x43\xc0\x90\xfd\x67\xef\x74\xf8\xa8\x1e\x73\xfa\xb3\x62\x6c\x96\x49\xf6\x45\x6d\x6f\x2c\xbc\x38\x18\xe0\xd3\x00\x84\x8f\x8f\x31\x79\xb8\x1c\x7b\x1d\x7c\xfb\xb0\x22\x3c\x44\x89\x15\x94\x7d\x6b\x14\x81\x53\x2b\x92\x33\x0a\x05\x0d\xa1\xfa\x4e\x84\xaa\x36\x5f\xfe\x03\xb1\x59\x31\xb6\xcc\xfb\x36\x3e\xdd\x1d\x6c\xd9\xca\xb8\xff\x5a\x6d\x6f\x98\xf9\x16\xc4\x6e\xe7\x9d\x9e\x16\x95\xfa\x30\xcd\xe5\xd9\xf6\x06\x56\xa1\xca\x3c\xcc\xc7\xe7\xef\xe7\xc3\x61\x3e\x2e\xb6\x37\xcb\xf1\xac\xab\x96\x5f\x7f\xc8\x7e\x19\xcf\xbb\xbf\x97\x74\x3c\xb8\x08\x5f\xe4\xb4\xbd\x85\x8c\xa0\xa4\x35\xa3\x26\xa8\x89\x1c\x49\xe9\x72\x63\xe7\x92\x6a\xe0\x82\x80\x5d\x41\x27\x15\x52\xf0\x1d\x31\xa9\xcb\x21\xd5\x42\x9d\x80\x96\x96\x43\xb5\xef\x7d\xe3\x3f\x69\xdd\xfd\xf5\xfe\xef\x3a\xb6\x36\x96\xf3\xb4\xbc\xfe\xae\xea\xda\xce\x55\xd3\x97\xe5\x28\x8f\xb2\xc8\x1a\x30\x30\x92\x63\xe4\xc8\x01\x03\x75\xe4\x28\x91\x7a\x88\xc0\x9e\x12\xd3\x45\xa3\xe8\x21\x22\x45\xbe\xcc\x26\x52\x62\x0f\xa8\x14\x19\x99\xa9\xb1\xa7\x7c\xb3\x7e\x92\xd3\xb7\x71\x37\x2e\xef\xa1\x60\x37\x6f\x9b\x5f\x01\x00\x00\xff\xff\x91\xc6\xb3\x58\x64\x02\x00\x00")
func ConfigStatusChainGenesisJsonBytes() ([]byte, error) {
return bindataRead(
_ConfigStatusChainGenesisJson,
"../config/status-chain-genesis.json",
)
}
func ConfigStatusChainGenesisJson() (*asset, error) {
bytes, err := ConfigStatusChainGenesisJsonBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "../config/status-chain-genesis.json", size: 612, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb, 0xf0, 0xc, 0x1, 0x95, 0x65, 0x6, 0x55, 0x48, 0x8f, 0x83, 0xa0, 0xb4, 0x81, 0xda, 0xad, 0x30, 0x6d, 0xb2, 0x78, 0x1b, 0x26, 0x4, 0x13, 0x12, 0x9, 0x6, 0xae, 0x3a, 0x2c, 0x1, 0x71}}
return a, nil
}
var _keysBootnodeKey = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x04\xc0\x4b\x01\x80\x40\x08\x04\xd0\xbb\x69\x58\x96\x6f\x1c\x66\x94\xfe\x11\x7c\xbe\x65\xab\x03\x07\x43\x1b\x87\x5b\x17\x8e\x9e\x23\x02\x11\x1a\x57\x51\x9d\x32\xf7\x24\x99\x1b\x08\xd8\xcb\xcf\x2d\xf4\xba\x3e\x7f\x00\x00\x00\xff\xff\x4a\x3d\x56\xc6\x41\x00\x00\x00")
func keysBootnodeKeyBytes() ([]byte, error) {
return bindataRead(
_keysBootnodeKey,
"keys/bootnode.key",
)
}
func keysBootnodeKey() (*asset, error) {
bytes, err := keysBootnodeKeyBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "keys/bootnode.key", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x31, 0xcf, 0x27, 0xd4, 0x96, 0x2e, 0x32, 0xcd, 0x58, 0x96, 0x2a, 0xe5, 0x8c, 0xa0, 0xf1, 0x73, 0x1f, 0xd6, 0xd6, 0x8b, 0xb, 0x73, 0xd3, 0x2c, 0x84, 0x1a, 0x56, 0xa4, 0x74, 0xb6, 0x95, 0x20}}
return a, nil
}
var _keysFirebaseauthkey = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x04\xc0\xcb\x52\x85\x20\x18\x00\xe0\x7d\xef\xc2\xcc\x71\x4a\xc4\x76\x3f\x29\x43\x5c\x34\x2d\x4d\x59\x6a\xa5\x8d\x24\xde\x42\x7b\xfb\x3e\x00\x00\x9e\x87\xfa\xfe\xf3\xf9\x11\x5e\x20\x0e\x3a\xf6\x7b\xb8\xf2\x03\xc7\xd9\x4a\x10\xec\x46\x74\xa7\x26\x9a\xfd\x71\xec\xeb\xea\x98\x84\xb2\x9b\x6c\x92\x5b\xaa\x0d\x0e\x7c\x71\x71\xb8\xb1\xb1\xf2\x62\xcc\x61\xfb\x59\x91\xa2\x6f\x69\x6f\x29\x09\xdf\x07\x99\xb5\x09\x2a\x5f\x5b\x69\xa2\xa5\x91\x33\xa9\xa5\x67\x2d\x5d\xdd\xe1\xf0\xac\x82\xb0\xcf\xec\xd7\x72\x3d\x9c\x4f\x54\x4c\x3c\x2d\xad\x8b\xac\x32\x57\x8c\x06\xfc\x5d\x24\xd3\x7e\xf7\x1f\x00\x00\xff\xff\xd6\xa2\x00\x4a\x99\x00\x00\x00")
func keysFirebaseauthkeyBytes() ([]byte, error) {
return bindataRead(
_keysFirebaseauthkey,
"keys/firebaseauthkey",
)
}
func keysFirebaseauthkey() (*asset, error) {
bytes, err := keysFirebaseauthkeyBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "keys/firebaseauthkey", size: 153, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe, 0x69, 0x23, 0x64, 0x7d, 0xf9, 0x14, 0x37, 0x6f, 0x2b, 0x1, 0xf0, 0xb0, 0xa4, 0xb2, 0xd0, 0x18, 0xcd, 0xf9, 0xeb, 0x57, 0xa3, 0xfd, 0x79, 0x25, 0xa7, 0x9c, 0x3, 0xce, 0x26, 0xec, 0xe1}}
return a, nil
}
var _keysTestAccount1StatusChainPk = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x44\xd0\xdd\x8a\xe4\x40\x08\x05\xe0\x77\xf1\x3a\x01\xb5\x4c\x55\x99\xb7\x51\xcb\x62\x9b\xf9\x6b\x92\x66\xd8\x65\xe8\x77\x5f\x32\xcb\x32\x97\x82\x7e\x1c\xcf\x17\x7c\xe6\x71\xde\x3e\xde\x61\x2f\x0b\xdc\x06\xec\xd0\x29\xb2\x25\xe9\xca\xd4\x71\x15\xe4\xbe\xba\x2a\xae\x68\x52\x94\x7c\x56\x33\x84\x05\x6c\x8c\x23\xcf\x13\x76\xf0\x49\x55\xc2\x8a\x50\xe1\x6a\x58\x7c\x93\x16\xb8\x79\x91\xe2\x9c\x4c\x39\x2d\x59\x5c\x61\x81\x38\xfe\xdc\x1f\x1f\xb0\x7f\x41\xdc\xee\xbf\xf2\x78\xe4\xef\x07\xec\xb0\x35\x17\xb1\x6e\xd4\x67\x6f\x8a\xea\xce\xd1\x4c\x95\x98\x5c\x54\x8b\xa9\xb7\x31\x2c\x89\x46\xe9\x53\x23\x31\x91\x42\x9a\x8c\x51\x6d\x9b\xf5\x92\xbf\xbd\xbb\x1d\xf6\x76\x5e\xfe\xed\x13\x76\x30\xc3\xad\x17\xec\x93\x38\x2a\x73\xca\xa8\x38\x34\xb0\x59\x6a\x2f\x2d\xe1\xf9\xff\xf0\x5a\xce\x73\x25\xee\x6b\x3c\x0e\x58\xe0\x65\x4c\xd8\xe1\xfc\x0e\xfc\x6f\xfc\xb1\xc7\xcb\x6b\x5e\x85\xf1\x02\xa7\xbd\x5e\x0f\xb8\x57\xc1\x62\x9e\x8d\xb3\xb6\x9a\xcc\x64\x82\xc6\x81\x6d\x93\xd9\xe8\x4a\xae\x54\x44\xab\x78\x20\x99\x85\x52\x99\x21\x65\x23\x1a\x19\x05\x16\x78\x87\xbd\x93\xf2\x02\x07\xec\x7d\x81\x3b\xec\xf4\x5c\xe0\xcd\x02\x76\x68\x9d\xb1\x0d\xa4\x40\x2f\x51\x49\xad\x4f\x51\x47\xd6\xda\xbd\x56\xaf\xc5\xc2\x37\x66\xec\x41\x45\xc8\xb4\x8c\xd0\x4a\x6d\xe0\x4c\x95\x9e\x09\xcf\xe7\xdf\x00\x00\x00\xff\xff\xd2\xdb\x1b\x65\xe9\x01\x00\x00")
func keysTestAccount1StatusChainPkBytes() ([]byte, error) {
return bindataRead(
_keysTestAccount1StatusChainPk,
"keys/test-account1-status-chain.pk",
)
}
func keysTestAccount1StatusChainPk() (*asset, error) {
bytes, err := keysTestAccount1StatusChainPkBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account1-status-chain.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8f, 0xba, 0x35, 0x1, 0x2b, 0x9d, 0xad, 0xf0, 0x2d, 0x3c, 0x4d, 0x6, 0xb5, 0x22, 0x2, 0x47, 0xd4, 0x1c, 0xf4, 0x31, 0x2f, 0xb, 0x5b, 0x27, 0x5d, 0x43, 0x97, 0x58, 0x2d, 0xf0, 0xe1, 0xbe}}
return a, nil
}
var _keysTestAccount1Pk = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x44\x8f\x4b\x8e\x24\x3b\x08\x45\xf7\xc2\x38\x42\xb2\x31\xd8\xd8\xf3\x57\xfb\xc0\x80\xf5\x52\xf5\x4b\x45\xa4\x4a\xdd\x2a\xd5\xde\x5b\x91\x83\xee\x19\x20\x74\xee\x3d\xdf\xa0\xee\x47\x9c\x27\x0c\x78\x29\xfc\x5f\x2a\xc8\xae\x2e\x2d\xb0\xd6\x6c\x14\x2f\x9d\xb3\xb3\x34\x6c\x51\x9d\xa5\x38\x1b\x6c\x60\xc7\xef\xfb\xe3\x13\xc6\x37\xd8\xed\xfe\x7f\x1c\x30\x40\xe3\xdc\x33\xca\x6e\x8f\xe3\x7a\x78\x9e\x1f\xf1\xeb\x01\x03\x48\x02\x7d\x89\xb7\xb4\x64\xae\x42\xea\x1a\x9c\x66\x9a\x29\x4a\x96\xa4\xa5\x63\xd0\x9c\xb9\x89\x66\xa5\x82\xe4\x66\x92\x08\x5b\x4c\x6a\x95\xd6\x5f\xde\x5d\x0f\x7d\x3f\xaf\xd8\xdb\xd7\xc5\x2d\xc4\xa6\xb4\xb0\xd8\xcc\x19\xbb\xf6\x9e\x5b\x0e\xe9\x5a\x3b\xb2\x24\xf8\xd9\xe0\xd5\x17\x0c\x38\x9f\x85\xe1\xb9\xfe\x83\xf8\xeb\x5b\x7c\xc0\x28\xb8\xc1\x07\x0c\xac\x98\x89\x36\xb8\xc3\xc8\x1b\x1c\x30\x64\x83\x53\xdf\x2e\x81\xdc\x99\xb1\xc9\x9c\x46\xab\x68\x22\xb1\xa4\xe2\xad\x79\x70\xca\x54\x8b\xa1\x08\xf6\x59\x9e\xb3\x06\xad\x1e\xc8\x68\x58\xda\xc2\xa9\xd6\xae\x22\xef\x6a\x30\xa0\xa3\x97\x60\xd2\xde\x22\xbc\x74\xcf\x8b\x6a\xc3\xb6\x12\x13\x55\x26\x4c\xcb\x78\x95\x6c\x6d\x51\xb4\x14\x42\x55\xa7\x75\x76\x5b\x2e\x53\xf0\x49\xba\x39\x0c\x98\x35\x11\x59\x95\xbd\x74\xa3\x9d\xaa\xfb\x2e\x39\xe3\x8e\x16\x8c\xd9\x19\x6d\x31\x6c\xf0\x15\xc7\x79\xfb\xbc\x24\x7f\xfe\x04\x00\x00\xff\xff\x0d\x85\xaf\xaf\xeb\x01\x00\x00")
func keysTestAccount1PkBytes() ([]byte, error) {
return bindataRead(
_keysTestAccount1Pk,
"keys/test-account1.pk",
)
}
func keysTestAccount1Pk() (*asset, error) {
bytes, err := keysTestAccount1PkBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account1.pk", size: 491, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9, 0x43, 0xc2, 0xf4, 0x8c, 0xc6, 0x64, 0x25, 0x8c, 0x7, 0x8c, 0xa8, 0x89, 0x2b, 0x7b, 0x9b, 0x4f, 0x81, 0xcb, 0xce, 0x3d, 0xef, 0x82, 0x9c, 0x27, 0x27, 0xa9, 0xc5, 0x46, 0x70, 0x30, 0x38}}
return a, nil
}
var _keysTestAccount2StatusChainPk = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x44\xd0\xdb\x8a\x1c\x41\x08\x80\xe1\x77\xf1\xba\x1b\x2c\xb5\x8e\x6f\x63\xa9\x45\x86\x3d\x0d\xdd\xc3\x92\xb0\xcc\xbb\x87\xde\x10\xf6\xd2\x8b\xff\x43\xfd\x82\xcf\x38\xce\xdb\xc7\x3b\x0c\xde\xe0\xe6\x30\x60\x9a\x69\xa3\x4c\xfb\x4a\x9a\x76\x59\xa1\xbb\xd6\x25\x3b\x17\x12\x49\x94\x8c\xd0\x60\x03\x75\x3f\xe2\x3c\x61\x00\x61\xd6\xec\x18\x95\xd6\x2a\x19\x6b\x5f\xa6\x73\x8a\x16\x0e\x66\xa7\xa6\x5a\x3c\x16\x5d\x91\x1d\x7f\xee\x8f\x0f\x18\x5f\x60\xb7\xfb\xaf\x38\x1e\xf1\xfb\x01\x03\xa4\xf6\x5c\x3d\x2c\xa8\xba\x4a\x11\x66\x77\xf4\x9c\x27\x77\x5f\x69\x61\xd7\xe0\x1e\x5c\x98\xe6\x42\xed\xc6\xce\x4b\x71\x52\x42\xd1\xa6\x34\x2f\xf9\xdb\xbb\xeb\xa1\x6f\xe7\xe5\xdf\x3e\x61\x80\x75\xae\x91\x7b\x23\x69\xa4\x8e\x3d\x73\x2f\x09\xb5\xf6\x98\xdd\x4a\x15\x78\xfe\x0f\x61\x80\xc6\xb9\x27\x6a\xbb\x3d\x0e\xd8\xe0\xc5\x17\x0c\x38\xbf\x17\xfe\x37\xfe\xd8\xfe\xf2\x1a\xd7\xc3\x68\x83\x53\x5f\xaf\x03\xd8\xb4\x18\xb7\x94\x5b\xc9\x92\x75\x22\x1b\x49\x14\x94\x42\x86\xc9\xc9\x5b\x53\xa9\xc2\x5c\xb4\x7a\x12\xd4\xa6\x4b\x94\x32\x16\x66\xce\x15\x61\x83\x77\x18\x2d\x75\xda\xe0\x80\xd1\x36\xb8\xc3\x48\xcf\x0d\xde\xd4\x60\x00\x56\x47\x67\x6a\xd6\xb1\x36\x2b\xd1\x66\x89\x55\x72\xe5\x54\xa8\xab\x72\x4c\x6a\xd1\x91\x49\x1a\x2f\xa1\x99\x45\xcd\x94\x85\x5c\x22\xb1\x34\x78\x3e\xff\x06\x00\x00\xff\xff\x4e\x39\x80\x7d\xe9\x01\x00\x00")
func keysTestAccount2StatusChainPkBytes() ([]byte, error) {
return bindataRead(
_keysTestAccount2StatusChainPk,
"keys/test-account2-status-chain.pk",
)
}
func keysTestAccount2StatusChainPk() (*asset, error) {
bytes, err := keysTestAccount2StatusChainPkBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account2-status-chain.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9, 0xf8, 0x5c, 0xe9, 0x92, 0x96, 0x2d, 0x88, 0x2b, 0x8e, 0x42, 0x3f, 0xa4, 0x93, 0x6c, 0xad, 0xe9, 0xc0, 0x1b, 0x8a, 0x8, 0x8c, 0x5e, 0x7a, 0x84, 0xa2, 0xf, 0x9f, 0x77, 0x58, 0x2c, 0x2c}}
return a, nil
}
var _keysTestAccount2Pk = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x44\x8f\x4d\x8a\x1c\x3d\x0c\x40\xef\xa2\x75\x15\xd8\xb2\x6c\x4b\xde\x7d\x7c\xe4\x20\xb2\x24\x93\x66\xfe\x9a\xaa\x66\x48\x18\xe6\xee\xa1\x7a\x91\x2c\x25\xc4\xd3\x7b\x5f\xa0\xee\x47\x9c\x27\x0c\xf8\x2f\x69\x16\xc4\x8c\x8d\x5d\x8a\x58\x51\xe9\x38\x57\xa5\x96\xfd\xff\x9c\x56\x17\x4e\x3f\x38\x13\x6c\x60\xc7\xef\xfb\xe3\x03\xc6\x17\xd8\xed\xfe\x33\x0e\x18\xa0\x71\xee\x19\x79\xb7\xc7\x71\x1d\x3c\xd7\x8f\xf8\xf5\x80\x01\xac\x2b\xc9\x5c\x9a\x50\x69\xf5\xa8\x2b\x17\x2d\xcc\x33\x8a\x64\xb7\x95\xc4\x6a\x36\xa6\x65\x2c\xc8\x84\x19\x31\x45\xea\xd6\x72\x4b\x84\x75\xf1\x5f\xde\x5d\x0f\x7d\x3b\xaf\xb7\xb7\x4f\x18\xd0\x75\x56\xd1\xa0\x2e\xb9\xf6\x1e\x1d\x3d\x9a\xd7\xe9\xac\x14\x48\xa1\xf0\xbd\xc1\x8b\x2f\x18\x70\x3e\x85\xe1\x39\xfe\x83\xf8\xcb\x6b\xbc\xc3\x28\xb8\xc1\x3b\x0c\x6c\x98\x89\x36\xb8\xc3\xc8\x1b\x1c\x30\x78\x83\x53\x5f\xaf\x00\xec\xd1\x6c\x72\xe4\x10\x4f\xd6\xdb\x9a\x73\x39\x91\x99\x22\xd5\xd2\x92\x2f\xa1\x24\xd3\x4c\xd4\x68\x51\x10\xdb\xa5\x35\xeb\x72\x9e\x49\xfa\x25\xf2\xa6\x76\x29\x2f\xf7\x59\x44\x3a\x7a\xcf\xb8\x26\x8a\x52\x59\x39\x72\xd4\x92\x4a\xe4\xc2\x1e\x26\x66\xa8\x2b\x66\xc2\xda\x82\xb5\xa7\x8a\xae\x54\xa4\x5b\xbb\x48\x37\x87\x01\x93\x51\xba\x4a\xde\x25\x05\xed\x24\x5e\x77\x6d\x4b\x76\xb6\x92\x2a\xf5\xc9\xd1\x14\x36\xf8\x8c\xe3\xbc\x7d\x5c\x91\xdf\x7f\x02\x00\x00\xff\xff\x80\x42\xa2\x5c\xeb\x01\x00\x00")
func keysTestAccount2PkBytes() ([]byte, error) {
return bindataRead(
_keysTestAccount2Pk,
"keys/test-account2.pk",
)
}
func keysTestAccount2Pk() (*asset, error) {
bytes, err := keysTestAccount2PkBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account2.pk", size: 491, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9f, 0x72, 0xd5, 0x95, 0x5c, 0x5a, 0x99, 0x9d, 0x2f, 0x21, 0x83, 0xd7, 0x10, 0x17, 0x4a, 0x3d, 0x65, 0xc9, 0x26, 0x1a, 0x2c, 0x9d, 0x65, 0x63, 0xd2, 0xa0, 0xfc, 0x7c, 0x0, 0x87, 0x38, 0x9f}}
return a, nil
}
var _keysTestAccount3BeforeEip55Pk = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x44\x90\xdb\x8a\x1c\x31\x0c\x44\xff\x45\xcf\xdd\x20\x4b\xbe\xc8\xfe\x1b\x59\x96\xc8\xb0\xb7\xa1\x7b\x58\x12\x96\xf9\xf7\xd0\x59\xc2\x3e\xd6\x43\x1d\x4e\xd5\x17\x7c\xfa\x71\xde\x3e\xde\x61\xf0\x06\xb7\x05\x03\xd0\x96\xb9\x85\xed\x46\x61\x7b\x26\x4d\xbb\xf8\x2a\x7b\x26\x33\xec\xd4\x16\x2f\x81\x0d\x74\xad\xc3\xcf\x13\x06\xb0\x2e\xce\x5e\xbb\xac\x2c\x58\x35\x16\xca\xe4\xd2\x67\x27\x8c\x62\x75\x56\x9a\x55\xdc\x33\x6c\x60\xc7\x9f\xfb\xe3\x03\xc6\x17\xd8\xed\xfe\xcb\x8f\x87\xff\x7e\xc0\x00\xa2\xd2\xbb\x98\x77\x56\x2d\x93\x5a\x6a\xa5\x60\xc9\x9c\xd2\x52\x31\x6b\x53\xa8\x24\x6a\x2b\x23\x5a\xa7\x16\xca\xc2\x0d\x3d\x27\xa6\x4e\x66\x97\xce\x37\xef\xae\x87\xbe\x9d\x17\xff\xf6\x09\x03\xa4\x27\x6a\xd9\x49\x5b\xa3\xb6\x34\xd9\xd2\xb4\xc8\x6c\x12\xfb\x94\x89\xf0\xfc\x5f\x84\x01\xea\xe7\x9e\x48\x76\x7b\x1c\xb0\xc1\xcb\x0a\x18\x70\xfe\x13\xfe\x8e\x3f\xec\xf5\xf2\xea\xd7\x61\xb4\xc1\xa9\xaf\xd7\x80\x45\x93\x50\xb5\xd5\x2c\x11\xd8\xc9\x98\x51\x1a\x51\xc6\xf0\x5c\x83\xc2\xd8\x53\x66\xa6\xc9\x42\x9a\x05\x25\x6a\xc1\xc9\x56\xa5\x4b\x2d\x13\x36\x78\x87\x21\xa9\xd3\x06\x07\x0c\xd9\xe0\x0e\x23\x3d\x37\x78\x53\xbb\xd4\x10\x33\x63\x13\x89\xd5\x66\xa0\x93\xbb\xd7\x48\x5c\x4a\xcb\xa5\x27\x8e\xe2\x14\x25\x65\xaa\x1a\x9d\x58\x8a\x22\xba\x9b\xa6\x28\xd6\x98\x12\x3c\x9f\x7f\x03\x00\x00\xff\xff\x4c\x6d\xd5\xbe\xe9\x01\x00\x00")
func keysTestAccount3BeforeEip55PkBytes() ([]byte, error) {
return bindataRead(
_keysTestAccount3BeforeEip55Pk,
"keys/test-account3-before-eip55.pk",
)
}
func keysTestAccount3BeforeEip55Pk() (*asset, error) {
bytes, err := keysTestAccount3BeforeEip55PkBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account3-before-eip55.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1662753054, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x81, 0x40, 0x56, 0xc1, 0x5e, 0x10, 0x6e, 0x28, 0x15, 0x3, 0x4e, 0xc4, 0xc4, 0x71, 0x4d, 0x16, 0x99, 0xcc, 0x1b, 0x63, 0xee, 0x10, 0x20, 0xe4, 0x59, 0x52, 0x3f, 0xc0, 0xad, 0x15, 0x13, 0x72}}
return a, nil
}
// Asset loads and returns the asset for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func Asset(name string) ([]byte, error) {
canonicalName := strings.Replace(name, "\\", "/", -1)
if f, ok := _bindata[canonicalName]; ok {
a, err := f()
if err != nil {
return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err)
}
return a.bytes, nil
}
return nil, fmt.Errorf("Asset %s not found", name)
}
// AssetString returns the asset contents as a string (instead of a []byte).
func AssetString(name string) (string, error) {
data, err := Asset(name)
return string(data), err
}
// MustAsset is like Asset but panics when Asset would return an error.
// It simplifies safe initialization of global variables.
func MustAsset(name string) []byte {
a, err := Asset(name)
if err != nil {
panic("asset: Asset(" + name + "): " + err.Error())
}
return a
}
// MustAssetString is like AssetString but panics when Asset would return an
// error. It simplifies safe initialization of global variables.
func MustAssetString(name string) string {
return string(MustAsset(name))
}
// AssetInfo loads and returns the asset info for the given name.
// It returns an error if the asset could not be found or
// could not be loaded.
func AssetInfo(name string) (os.FileInfo, error) {
canonicalName := strings.Replace(name, "\\", "/", -1)
if f, ok := _bindata[canonicalName]; ok {
a, err := f()
if err != nil {
return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err)
}
return a.info, nil
}
return nil, fmt.Errorf("AssetInfo %s not found", name)
}
// AssetDigest returns the digest of the file with the given name. It returns an
// error if the asset could not be found or the digest could not be loaded.
func AssetDigest(name string) ([sha256.Size]byte, error) {
canonicalName := strings.Replace(name, "\\", "/", -1)
if f, ok := _bindata[canonicalName]; ok {
a, err := f()
if err != nil {
return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s can't read by error: %v", name, err)
}
return a.digest, nil
}
return [sha256.Size]byte{}, fmt.Errorf("AssetDigest %s not found", name)
}
// Digests returns a map of all known files and their checksums.
func Digests() (map[string][sha256.Size]byte, error) {
mp := make(map[string][sha256.Size]byte, len(_bindata))
for name := range _bindata {
a, err := _bindata[name]()
if err != nil {
return nil, err
}
mp[name] = a.digest
}
return mp, nil
}
// AssetNames returns the names of the assets.
func AssetNames() []string {
names := make([]string, 0, len(_bindata))
for name := range _bindata {
names = append(names, name)
}
return names
}
// _bindata is a table, holding each asset generator, mapped to its name.
var _bindata = map[string]func() (*asset, error){
"emojis.txt": emojisTxt,
"../config/README.md": ConfigReadmeMd,
"../config/cli/anon-metric-node-client.json": ConfigCliAnonMetricNodeClientJson,
"../config/cli/anon-metric-node-server.json": ConfigCliAnonMetricNodeServerJson,
"../config/cli/fleet-eth.prod.json": ConfigCliFleetEthProdJson,
"../config/cli/fleet-eth.staging.json": ConfigCliFleetEthStagingJson,
"../config/cli/fleet-eth.test.json": ConfigCliFleetEthTestJson,
"../config/cli/fleet-status.prod.json": ConfigCliFleetStatusProdJson,
"../config/cli/fleet-status.test.json": ConfigCliFleetStatusTestJson,
"../config/cli/fleet-wakuv2.prod.json": ConfigCliFleetWakuv2ProdJson,
"../config/cli/fleet-wakuv2.test.json": ConfigCliFleetWakuv2TestJson,
"../config/cli/les-enabled.json": ConfigCliLesEnabledJson,
"../config/cli/mailserver-enabled.json": ConfigCliMailserverEnabledJson,
"../config/status-chain-genesis.json": ConfigStatusChainGenesisJson,
"keys/bootnode.key": keysBootnodeKey,
"keys/firebaseauthkey": keysFirebaseauthkey,
"keys/test-account1-status-chain.pk": keysTestAccount1StatusChainPk,
"keys/test-account1.pk": keysTestAccount1Pk,
"keys/test-account2-status-chain.pk": keysTestAccount2StatusChainPk,
"keys/test-account2.pk": keysTestAccount2Pk,
"keys/test-account3-before-eip55.pk": keysTestAccount3BeforeEip55Pk,
}
// AssetDir returns the file names below a certain
// directory embedded in the file by go-bindata.
// For example if you run go-bindata on data/... and data contains the
// following hierarchy:
// data/
// foo.txt
// img/
// a.png
// b.png
// then AssetDir("data") would return []string{"foo.txt", "img"},
// AssetDir("data/img") would return []string{"a.png", "b.png"},
// AssetDir("foo.txt") and AssetDir("notexist") would return an error, and
// AssetDir("") will return []string{"data"}.
func AssetDir(name string) ([]string, error) {
node := _bintree
if len(name) != 0 {
canonicalName := strings.Replace(name, "\\", "/", -1)
pathList := strings.Split(canonicalName, "/")
for _, p := range pathList {
node = node.Children[p]
if node == nil {
return nil, fmt.Errorf("Asset %s not found", name)
}
}
}
if node.Func != nil {
return nil, fmt.Errorf("Asset %s not found", name)
}
rv := make([]string, 0, len(node.Children))
for childName := range node.Children {
rv = append(rv, childName)
}
return rv, nil
}
type bintree struct {
Func func() (*asset, error)
Children map[string]*bintree
}
var _bintree = &bintree{nil, map[string]*bintree{
"..": &bintree{nil, map[string]*bintree{
"config": &bintree{nil, map[string]*bintree{
"README.md": &bintree{ConfigReadmeMd, map[string]*bintree{}},
"cli": &bintree{nil, map[string]*bintree{
"anon-metric-node-client.json": &bintree{ConfigCliAnonMetricNodeClientJson, map[string]*bintree{}},
"anon-metric-node-server.json": &bintree{ConfigCliAnonMetricNodeServerJson, map[string]*bintree{}},
"fleet-eth.prod.json": &bintree{ConfigCliFleetEthProdJson, map[string]*bintree{}},
"fleet-eth.staging.json": &bintree{ConfigCliFleetEthStagingJson, map[string]*bintree{}},
"fleet-eth.test.json": &bintree{ConfigCliFleetEthTestJson, map[string]*bintree{}},
"fleet-status.prod.json": &bintree{ConfigCliFleetStatusProdJson, map[string]*bintree{}},
"fleet-status.test.json": &bintree{ConfigCliFleetStatusTestJson, map[string]*bintree{}},
"fleet-wakuv2.prod.json": &bintree{ConfigCliFleetWakuv2ProdJson, map[string]*bintree{}},
"fleet-wakuv2.test.json": &bintree{ConfigCliFleetWakuv2TestJson, map[string]*bintree{}},
"les-enabled.json": &bintree{ConfigCliLesEnabledJson, map[string]*bintree{}},
"mailserver-enabled.json": &bintree{ConfigCliMailserverEnabledJson, map[string]*bintree{}},
}},
"status-chain-genesis.json": &bintree{ConfigStatusChainGenesisJson, map[string]*bintree{}},
}},
}},
"emojis.txt": &bintree{emojisTxt, map[string]*bintree{}},
"keys": &bintree{nil, map[string]*bintree{
"bootnode.key": &bintree{keysBootnodeKey, map[string]*bintree{}},
"firebaseauthkey": &bintree{keysFirebaseauthkey, map[string]*bintree{}},
"test-account1-status-chain.pk": &bintree{keysTestAccount1StatusChainPk, map[string]*bintree{}},
"test-account1.pk": &bintree{keysTestAccount1Pk, map[string]*bintree{}},
"test-account2-status-chain.pk": &bintree{keysTestAccount2StatusChainPk, map[string]*bintree{}},
"test-account2.pk": &bintree{keysTestAccount2Pk, map[string]*bintree{}},
"test-account3-before-eip55.pk": &bintree{keysTestAccount3BeforeEip55Pk, map[string]*bintree{}},
}},
}}
// RestoreAsset restores an asset under the given directory.
func RestoreAsset(dir, name string) error {
data, err := Asset(name)
if err != nil {
return err
}
info, err := AssetInfo(name)
if err != nil {
return err
}
err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755))
if err != nil {
return err
}
err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode())
if err != nil {
return err
}
return os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime())
}
// RestoreAssets restores an asset under the given directory recursively.
func RestoreAssets(dir, name string) error {
children, err := AssetDir(name)
// File
if err != nil {
return RestoreAsset(dir, name)
}
// Dir
for _, child := range children {
err = RestoreAssets(dir, filepath.Join(name, child))
if err != nil {
return err
}
}
return nil
}
func _filePath(dir, name string) string {
canonicalName := strings.Replace(name, "\\", "/", -1)
return filepath.Join(append([]string{dir}, strings.Split(canonicalName, "/")...)...)
}