2021-01-08 22:22:43 +03:00
|
|
|
|
// Code generated by vfsgen; DO NOT EDIT.
|
|
|
|
|
|
|
|
|
|
// +build !dev
|
|
|
|
|
|
|
|
|
|
package assets
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"compress/gzip"
|
|
|
|
|
"fmt"
|
|
|
|
|
"io"
|
|
|
|
|
"io/ioutil"
|
|
|
|
|
"net/http"
|
|
|
|
|
"os"
|
|
|
|
|
pathpkg "path"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// Assets statically implements the virtual filesystem provided to vfsgen.
|
|
|
|
|
var Assets = func() http.FileSystem {
|
|
|
|
|
fs := vfsgen۰FS{
|
|
|
|
|
"/": &vfsgen۰DirInfo{
|
|
|
|
|
name: "/",
|
2021-02-02 17:52:14 +03:00
|
|
|
|
modTime: time.Date(2021, 2, 2, 14, 12, 44, 397557820, time.UTC),
|
2021-02-02 11:13:29 +03:00
|
|
|
|
},
|
|
|
|
|
"/e3suU2VydmljZS5OYW1lIHwgdHJpbVN1ZmZpeCAiU2VydmljZSIgfCBsb3dlcn19X21pY3JvX2NoaS5wYi5nby50bXBs": &vfsgen۰CompressedFileInfo{
|
|
|
|
|
name: "e3suU2VydmljZS5OYW1lIHwgdHJpbVN1ZmZpeCAiU2VydmljZSIgfCBsb3dlcn19X21pY3JvX2NoaS5wYi5nby50bXBs",
|
2021-02-02 17:52:14 +03:00
|
|
|
|
modTime: time.Date(2021, 2, 2, 13, 20, 50, 293162978, time.UTC),
|
|
|
|
|
uncompressedSize: 1649,
|
2021-02-02 11:13:29 +03:00
|
|
|
|
|
2021-02-02 17:52:14 +03:00
|
|
|
|
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xa4\x54\x61\x6f\xdb\x36\x10\xfd\x6c\xfe\x8a\x1b\x87\x00\x52\xaa\x50\x2b\xb6\x4f\x5e\xfb\x61\x2b\x52\x20\xd8\xda\x15\xe9\xd0\x02\x0b\x82\x80\xa1\x4e\x12\x61\x89\xd4\xc8\x93\x27\x43\xd6\x7f\x1f\x28\xd1\x71\x5a\xb7\xc1\xb0\x1a\x30\x24\x92\xef\xdd\xdd\xbb\x7b\x62\x9e\xc3\x2b\x5b\x20\x54\x68\xd0\x49\xc2\x02\xee\x77\xd0\x39\x4b\x56\x5d\x54\x68\x2e\x5a\xad\x9c\x65\x79\x0e\xde\xf6\x4e\xe1\x1a\xc6\x51\xbc\xd6\x0d\x8a\xb7\xb2\xc5\x69\x62\x9d\x54\x1b\x59\x21\x8c\x63\x65\xdf\x6d\xaa\xdf\xa5\xa7\xcb\x06\x5b\x34\x04\x33\x0e\xf6\xe0\xbb\x46\xd3\x2f\xce\xc9\x1d\xf0\x9f\x39\xec\xa1\x91\x9e\x60\x0f\x0e\xbb\x46\x2a\x04\x2e\x38\xf0\x3b\x3e\x4d\x8c\xe9\xb6\xb3\x8e\x20\x61\x00\x5c\x59\x43\x38\x10\x0f\xef\x65\xbb\x3c\x0d\x52\x5e\x13\x75\xf3\xc2\x61\xd9\xa0\x5a\x0e\x3c\x39\x6d\x2a\xcf\x19\x5b\xf1\x4a\x53\xdd\xdf\x0b\x65\xdb\xbc\xb2\x17\xaa\xd6\x79\xf8\x6f\x7f\xe2\x6c\xd5\xea\xa2\x68\xf0\x1f\xe9\x10\xbe\x0a\xcb\x8f\xa0\x99\xa1\x9c\xbd\x93\x9d\xfe\x84\xd0\x1b\xed\x49\xaa\xcd\x85\x75\x55\x3e\x43\xf2\xed\x8f\xb9\xec\x34\x67\x29\x63\xb4\xeb\x10\x9c\xed\x09\x7f\xc3\x1d\x78\x72\xbd\xa2\x71\x62\xac\xec\x8d\x82\xeb\xb0\x1f\x9a\x97\x28\x1a\x20\x8a\x14\xaf\x96\x67\x0a\xc9\xa2\x24\x83\x7b\x6b\x9b\x14\x46\x06\xf1\xb7\x95\x4d\x8f\x19\xd8\x0d\xac\x5f\x82\xa2\x41\x7c\x08\x1b\xc9\x21\xcd\x38\xa5\x22\x72\xd3\x07\x8e\x43\xea\x9d\x39\x52\xd9\xa1\x88\x71\x14\xef\xd1\x6d\xb5\x5a\xe6\x08\x7b\x20\xa7\xdb\xf7\x7d\x59\xea\x01\x78\x3c\xe2\xd3\x14\xdf\xae\xb1\xd2\x9e\xd0\x25\x0e\xce\x55\xad\xc5\x9b\x7e\xc8\xa0\x06\x6d\x08\x5d\x29\x15\x8e\x53\x06\xd8\x79\xb8\xb9\x3d\x7f\xe8\x97\xb8\x34\x45\x67\xb5\xa1\x14\xd0\x39\xeb\x1e\x4b\x09\x12\xe2\xf4\x16\x19\x7f\x94\x49\x9d\xb2\x07\x80\x2e\x61\x2b\xde\xf6\xed\x1b\xa4\xda\x16\x49\x0a\x2f\xe0\xf9\x23\xfe\x67\xf2\xca\x96\xc4\x65\x48\x51\x26\xbc\x96\xa6\x68\xd0\x41\x2d\x3d\x18\x0b\xed\x1c\xc0\xaf\xe1\xec\x4f\x9e\x41\x7d\xec\xcc\x74\x4c\x56\x5a\x07\x77\xa1\xfe\xb9\x2a\x69\x2a\x9c\xb5\x9c\xa6\xd3\xc5\x10\x20\xd1\x6a\xe2\xca\x14\x38\x24\xd8\xcd\x1d\xcc\x82\x8b\xd3\x53\x4a\x39\xb3\x42\xf9\xfb\x3d\x34\x68\x0e\xf8\x14\x5e\xbc\x9c\x8f\x4e\xd3\x3c\xa1\x4e\x9b\xad\x6c\x74\x01\x8f\xdb\x0b\x46\xb6\xb8\x86\x33\xcf\x83\x86\x25\xf8\x49\xcc\xe9\x64\x27\xb0\x82\x9a\x48\xb9\xd1\xc5\xf0\xec\xf9\xfa\xf6\x04\xd7\x06\xd0\x56\x2c\x93\xf8\x75\x37\x1b\xd7\x7c\x31\x87\x2e\xe1\xbb\x56\x5c\xf9\x0f\xa1\xc4\x24\x0d\x82\xc3\xf2\x2f\x74\x36\x49\xff\x9f\xce\x38\xcd\x2c\xce\x11\xce\xc2\x50\x09\x4a\xdb\x9b\x82\x67\x60\xbe\xa2\xf5\xd4\x28\xf5\xe1\xc3\x69\xc5\xd5\xc1\xb4\x49\x2a\x92\xf0\x31\x24\xe1\x42\x11\xd7\xe8\x3b\x6b\x3c\x7e\x74\x9a\x42\xc6\xf3\xb8\xfb\x77\x8f\x9e\xd2\x2f\xab\xb5\x9b\x6f\x92\xb5\x86\xb3\xef\x9f\x6d\x79\xf6\x69\x51\xff\x65\x78\xd1\xb2\xb1\x2b\x8f\x6c\x1b\xe7\xf4\x54\x59\xe2\xa3\xa6\x3a\x39\xde\x71\xf3\xfa\xf3\xbb\xe4\x68\xa5\x34\x86\x7c\x1d\x3a\xb5\x24\x9c\x0f\xdf\x49\xaa\x6f\x7e\xb8\xcd\xc0\xd5\x4f\x55\x3c\xb1\xd5\x6a\x15\x5b\x61\x74\xc3\x26\xf6\x6f\x00\x00\x00\xff\xff\x49\x95\x41\x5f\x71\x06\x00\x00"),
|
2021-02-02 11:13:29 +03:00
|
|
|
|
},
|
|
|
|
|
"/e3suU2VydmljZS5OYW1lIHwgdHJpbVN1ZmZpeCAiU2VydmljZSIgfCBsb3dlcn19X21pY3JvX2dvcmlsbGEucGIuZ28udG1wbA==": &vfsgen۰CompressedFileInfo{
|
|
|
|
|
name: "e3suU2VydmljZS5OYW1lIHwgdHJpbVN1ZmZpeCAiU2VydmljZSIgfCBsb3dlcn19X21pY3JvX2dvcmlsbGEucGIuZ28udG1wbA==",
|
2021-02-02 17:52:14 +03:00
|
|
|
|
modTime: time.Date(2021, 2, 2, 13, 20, 17, 930071238, time.UTC),
|
|
|
|
|
uncompressedSize: 1334,
|
2021-02-02 11:13:29 +03:00
|
|
|
|
|
2021-02-02 17:52:14 +03:00
|
|
|
|
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xa4\x53\xd1\x4e\xdc\x3a\x10\x7d\x5e\x7f\xc5\x5c\x5f\xad\x94\x40\x70\x2e\xba\x6f\x5b\x78\x68\x2b\x50\x91\x5a\x8a\xa0\xa2\x52\x11\x42\x26\x19\x27\xd6\xc6\x76\x3a\x76\x56\x8b\x76\xf3\xef\x95\xb3\x81\x52\x85\x56\x55\x9b\x97\xd8\x9e\x33\x33\xe7\xf8\x8c\xf3\x1c\xde\xba\x12\xa1\x42\x8b\x24\x03\x96\x70\xff\x00\x2d\xb9\xe0\x8a\x83\x0a\xed\x81\xd1\x05\x39\x96\xe7\xe0\x5d\x47\x05\x2e\x60\xb3\x11\xa7\xba\x41\x71\x2e\x0d\xf6\x3d\x6b\x65\xb1\x94\x15\xc2\x66\x53\xb9\x8b\x65\xf5\x5e\xfa\x70\xd2\xa0\x41\x1b\x60\xc0\xc1\x16\x7c\xdb\xe8\xf0\x9a\x48\x3e\x00\x7f\xc5\x61\x0b\x8d\xf4\x01\xb6\x40\xd8\x36\xb2\x40\xe0\x82\x03\xbf\xe3\x7d\xcf\x98\x36\xad\xa3\x00\x09\x03\xe0\xca\x04\x1e\xff\x16\x43\x5e\x87\xd0\x0e\x1b\x42\xd5\x60\xb1\x0b\xf8\x40\xda\x56\x9e\x33\x36\xe3\x95\x0e\x75\x77\x2f\x0a\x67\xf2\xca\x91\x6e\x1a\x99\x9b\x6e\xcd\xd9\x6c\xe0\x7f\x27\x5b\x0d\xcf\x31\x9d\xd5\x3e\xc8\x62\x79\xe0\xa8\xca\x07\x48\xbe\xfa\x3f\x97\xad\xe6\x2c\x65\x4c\x75\xb6\x88\x3a\xaf\x90\x56\xba\xd8\x49\x85\x2d\x04\xd2\xe6\xaa\x53\x4a\xaf\x81\x8f\x21\xde\xf7\xe3\xea\x12\x2b\xed\x03\x52\x42\xb0\x67\xba\xb5\xb8\x74\x5d\x40\xca\xa0\x06\x6d\x03\x92\x92\x05\x6e\xfa\x0c\xb0\xf5\x70\x73\xbb\xf7\xc4\x4a\x9c\xd8\xb2\x75\xda\x86\x14\x90\xc8\x11\x6c\x18\x8c\xdf\x0a\x16\xc7\x30\xea\x15\xd7\xb2\xe9\xf0\xa3\x4a\xea\x94\x3d\x01\xb4\x82\x95\x38\xef\xcc\x07\x0c\xb5\x2b\x93\x14\x8e\xe0\xf0\x59\xfe\xe3\x47\x18\x3a\xb2\xa0\x4c\x10\x27\xb1\x85\x4a\x78\x2d\x6d\xd9\x20\x41\x2d\x3d\x58\x07\x66\x28\xe0\x17\x30\xff\xc4\x33\xa8\xd3\xa7\x12\xfd\xf7\x66\xca\x11\xdc\x45\xfe\x03\x2b\x69\x2b\x1c\xb4\x4c\xdb\xe9\x72\x1d\x21\xa3\x39\xe2\xcc\x96\xb8\x4e\xb0\x1d\x2e\x31\x8b\x5e\xa7\xd3\x14\x35\x64\x45\xfa\xdb\x2d\x34\x68\x1f\xf1\x29\x1c\x1d\x0f\xa1\x69\x9b\x5f\xa8\xd3\x76\x25\x1b\x5d\xc2\xf3\xeb\x05\x2b\x0d\x2e\x60\xee\x79\xd4\xb0\x2b\x3e\xa9\xd9\x4f\x4e\x62\x56\x54\x33\xa6\xdc\xe8\x72\xbd\x7f\xb8\xb8\x9d\xe0\x4c\x04\xad\xc4\xce\x89\x37\x0f\x11\x9b\xd8\x17\x7b\x68\x05\xff\x18\x71\xe6\xaf\x23\xc5\x24\x8d\x82\xe3\xf6\x0b\x92\x4b\xd2\x3f\xd3\x39\xba\x99\x8d\x3e\xc2\x3c\x9a\x1a\x40\xb9\xce\x96\x3c\x03\xfb\x13\xad\xd3\x41\xa9\x33\x70\xcb\xa8\xc4\x88\xb3\xc7\xa1\x4d\x52\x91\xc4\xf7\x90\xc4\x27\x28\x2e\xd1\xb7\xce\x7a\xfc\x4c\x7a\x98\xee\xbd\xf1\xf4\x6b\x87\x3e\xa4\x2f\xab\x75\xcb\xbf\x92\xb5\x80\xf9\xbf\xfb\x2b\x9e\xfd\x48\xea\x77\xcc\x23\xf1\x6e\x28\x71\x1a\xe9\x63\x2b\x2e\x64\xa8\x6f\xfe\xbb\xcd\x80\xea\x74\xb4\xca\xc7\xf3\xdd\x52\x08\x91\x0e\x26\x27\x93\xf9\xe8\xd9\x6c\x36\x1b\x99\x5a\xdd\xb0\x9e\x7d\x0b\x00\x00\xff\xff\x57\xf7\xa9\x27\x36\x05\x00\x00"),
|
2021-02-02 08:36:58 +03:00
|
|
|
|
},
|
|
|
|
|
"/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19ncnBjLnBiLmdvLnRtcGw=": &vfsgen۰CompressedFileInfo{
|
|
|
|
|
name: "e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19ncnBjLnBiLmdvLnRtcGw=",
|
2021-02-02 17:52:14 +03:00
|
|
|
|
modTime: time.Date(2021, 2, 2, 14, 41, 0, 389077251, time.UTC),
|
|
|
|
|
uncompressedSize: 8905,
|
2021-02-02 08:36:58 +03:00
|
|
|
|
|
2021-02-02 17:52:14 +03:00
|
|
|
|
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xe4\x59\x5b\x6f\x9b\x48\x14\x7e\x66\x7e\xc5\x29\x5a\x55\xb0\x22\xf8\x61\xdf\x52\xe5\xa1\x8a\x5a\xed\x4a\xdb\x74\xd5\xac\xb4\x8f\x11\xc5\xc7\x78\x54\x18\xc8\xcc\x38\x49\x45\xe6\xbf\xaf\xe6\x02\x06\x8c\xb1\x1d\xdb\x4d\xb5\x9b\x87\x58\x66\x2e\xe7\x3b\x97\xf9\xce\xc7\x78\x36\x83\xeb\x72\x8e\x90\x21\x43\x9e\x48\x9c\xc3\xd7\xef\x50\xf1\x52\x96\xe9\x45\x86\xec\xa2\xa0\x29\x2f\xc9\x6c\x06\xa2\x5c\xf1\x14\x2f\xa1\xae\xe3\x8f\x34\xc7\xf8\x26\x29\x50\x29\x52\x25\xe9\xb7\x24\x43\xa8\xeb\xac\xfc\xeb\x5b\xf6\x67\x22\xe4\x87\x1c\x0b\x64\x12\xcc\x3c\x78\x06\x51\xe5\x54\xbe\xe7\x3c\xf9\x0e\xfe\x3b\x1f\x9e\x21\x4f\x84\x84\x67\xe0\x58\xe5\x49\x8a\xe0\xc7\x3e\xf8\x77\xbe\x52\x84\xd0\xa2\x2a\xb9\x84\x80\x78\x7e\x5a\x32\x89\x4f\xd2\x27\xc4\x33\x18\xee\xd2\x9c\xea\x5d\xfd\x8c\xca\xe5\xea\x6b\x9c\x96\xc5\x6c\xc5\xa8\x90\x49\xfa\xed\xa2\xe4\xd9\xcc\xcc\x9a\x3d\xfc\x36\xb3\x13\x7d\x68\x16\x0a\xe4\x0f\xc8\xf7\x58\x68\x27\xfa\x24\x24\xe4\x21\xe1\x10\x10\x00\x80\x3b\xe8\xee\x12\x7f\xae\x24\x2d\x59\x6f\xc4\xda\x6b\x46\x42\x42\xea\xfa\x02\x7e\x31\xce\x5f\x5e\xb9\x28\x28\x65\x9f\xde\x22\x7f\xa0\x29\xea\xe0\x99\x41\xf7\xdd\x44\x13\x9e\x41\x72\x5a\xdc\xae\x16\x0b\xfa\x04\xbe\x1b\xf2\xf5\x5a\x22\xbf\x57\x3a\xc6\xbd\xf5\xcf\x90\x97\x8f\xc8\x3f\x52\x2e\xa4\x52\x6e\x04\x84\xe4\xab\x54\x42\x6d\x20\xa6\x7d\x88\xd7\xe6\xc3\x8c\x30\xbd\x83\x90\x9c\xb2\x8c\x28\xa2\x13\xfc\x49\xcf\x04\x17\x65\x21\x57\x8b\x85\x79\x7c\x83\x8f\x7d\xbb\x6b\x53\x29\xc7\x44\x22\x30\x7c\x04\xd1\x3c\xb2\x16\x16\x2b\x96\x4e\xac\x0c\x3a\xd6\xa3\x71\x90\x21\x6c\xb3\x6a\x3d\xe3\x28\x57\x9c\xc1\xdb\x7d\x62\x52\xa7\x97\x90\x46\xc6\xe5\x4b\xf3\x5f\x69\x97\xeb\x9a\x27\x2c\xc3\x75\x0e\x3e\xa1\x5c\x96\xf3\x26\x53\x1c\xef\xed\x03\x93\xa7\x3f\x58\xb5\x92\x7f\xeb\x24\xf4\xeb\x39\x6e\xea\xb9\x5d\x26\xaa\xce\xb2\xcf\x2b\xb9\xdf\x3a\xba\x80\x84\xcd\x21\x60\xa5\x04\x17\x81\x5b\xc9\x31\x29\x28\xcb\x42\x08\x0c\x46\xe4\x9d\x47\x17\x4a\xd9\x28\x07\x29\xfc\xba\x4f\x10\x74\x40\xdd\xa1\x0d\x52\xf9\x04\xee\x7c\xc5\xd7\xf6\x33\x02\x8e\xf7\x66\xa7\xd6\x71\xa5\x22\x28\x2b\x29\x20\x8e\xe3\x7e\x86\x92\x3c\xb7\xd5\x1e\x42\x30\x4c\xd3\x5d\x6b\xc6\x3d\x8e\x00\x39\x2f\x79\x68\x12\xa7\x7d\xc5\x5c\xa0\x76\x78\xe8\xe7\x19\x7c\x3a\x1b\xfc\x9f\x26\xfc\x66\x49\x53\x73\x7a\xc9\x10\x2d\x9b\x1b\xb0\xf6\x1b\x5d\x40\xc9\xc7\xca\x29\xd8\x28\x3a\xb3\x06\xf4\x21\xc5\xa4\x30\xdb\xea\x8a\x4e\xe3\x34\xb6\x73\xb4\x17\x91\xf9\x7e\x83\x8f\x5f\xf0\x7e\x85\x42\x06\x69\xac\x8f\x57\x04\xfe\x30\xac\x71\xeb\xbd\x1f\x99\x43\xdb\x71\xb3\x56\xa1\xf5\x34\x8e\xe3\xd0\x18\xa5\x0b\x63\xef\xcd\x15\x30\x9a\xbb\x03\xdf\x1e\x79\x46\x73\x03\xc7\x3c\xed\x38\x36\x76\x74\x40\x29\xf8\xb1\x7f\x5d\xfc\x97\x57\x2e\x7c\xf1\x2d\xb2\x79\xc0\xf1\x3e\x7c\x77\xa8\x63\xc8\xe6\x2e\x13\x07\x31\x5e\x13\xed\xda\x02\x50\x91\xde\xbd\x53\xc0\xcd\x9e\xa2\xd2\x28\xdf\xf6\x8b\xa8\xb6\x83\x9d\x94\xeb\x92\x3b\x22\xe1\xda\xf3\x48\x1b\xdb\x2b\xcf\xdb\x03\xd2\x8e\x98\xad\x3a\x1e\x99\x20\x19\x4e\x3f\xac\xc2\xf7\x6e\xab\xad\x37\xfd\xfe\x6a\xa3\xdb\xef\x5f\xd6\x00\x51\x16\x8c\x61\xf5\x11\x46\x37\xd5\x3a\x04\xd9\x92\xca\xd3\x7e\xa4\xd2\xa2\x0a\xe1\x0b\xa6\x0f\xef\xd9\xfc\x3a\x2f\x05\x06\x93\xbc\xe0\x15\xe3\x29\xf7\x5c\xbe\x9f\x62\xbd\xd7\x27\x91\x05\x45\x48\x3c\x97\xa2\xab\x26\x45\x9e\x99\xa6\x67\x39\x53\xc4\x53\xa4\x9d\xf6\x66\x3d\x6d\x98\x43\x4f\x11\x8f\x34\x4f\x0b\x9b\x3d\xdb\xfb\x6c\xf6\x5e\xec\x79\xe3\xb2\x71\xb0\xaf\x0e\x9e\x62\x77\xfe\x1a\xac\xc7\x98\xb1\x44\x1d\x84\x43\xea\xde\x66\xb2\x99\x7f\x8c\x51\xcd\x1b\x26\x13\x40\x99\x44\xbe\x48\x52\xac\xd5\xb4\xab\x86\x6a\x8a\xa3\xac\xb6\xf9\xdf\xdf\xaa\x5e\xe2\xac\xd6\xf5\x8e\xe6\xfe\xb2\x30\x04\xc5\xb0\x3d\xee\x1b\x87\x4e\x8d\x39\x6c\x83\x73\x77\x14\x36\xe3\xf9\x8e\x46\x5c\x6c\x23\xd9\x75\xa3\x18\x46\x72\xa4\x51\x6c\xb2\xa2\xde\x62\xcb\x89\x02\xeb\x6e\xe3\x79\x57\x0a\xac\xc5\xbe\x7b\x33\x72\x62\x7f\x37\x19\xfe\x9e\xb0\x79\x6e\x16\xb4\x1c\x38\xe4\x7d\x37\xc5\x00\x19\xd5\xd7\xf0\x6a\x02\xfb\x80\xbe\x60\x8b\x61\xb9\xa3\x18\x9c\xaf\x3b\xa5\x5d\xaf\x4b\xb8\xf7\x48\x6b\x6e\x5d\xc2\x13\x22\xe6\x08\x0d\x43\xbc\x0e\xdb\x77\x15\xd7\x71\x1a\xc7\xf3\x36\x14\xce\x78\xd9\x7a\x5e\xdb\
|
2021-02-02 08:36:58 +03:00
|
|
|
|
},
|
|
|
|
|
"/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19odHRwLnBiLmdvLnRtcGw=": &vfsgen۰CompressedFileInfo{
|
|
|
|
|
name: "e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19odHRwLnBiLmdvLnRtcGw=",
|
2021-02-12 12:39:32 +03:00
|
|
|
|
modTime: time.Date(2021, 2, 2, 15, 20, 29, 325820415, time.UTC),
|
|
|
|
|
uncompressedSize: 10506,
|
2021-02-02 08:36:58 +03:00
|
|
|
|
|
2021-02-12 12:39:32 +03:00
|
|
|
|
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xdc\x5a\xdd\x6f\xe3\xb8\x11\x7f\xb6\xfe\x8a\x39\x5d\x6e\x21\x6d\x65\xaa\xc0\xbd\xe5\x90\x87\xed\x36\xdb\x6d\xb1\xc9\x05\x49\xda\x7b\xb8\x1e\x02\xad\x3c\x96\xd5\x48\x94\x42\xd2\x4e\x02\x45\xff\x7b\xc1\x2f\x59\x92\xbf\x63\x7b\xb3\xb8\x3c\xc4\x16\x39\xc3\xf9\xe4\xcc\x8f\x94\xc3\x10\x3e\x16\x23\x84\x04\x29\xb2\x48\xe0\x08\xbe\x3e\x43\xc9\x0a\x51\xc4\xc3\x04\xe9\x30\x4f\x63\x56\x38\x61\x08\xbc\x98\xb2\x18\x4f\xa1\xaa\xc8\xa7\x34\x43\x72\x19\xe5\x58\xd7\x4e\x19\xc5\xf7\x51\x82\x50\x55\x49\x71\x75\x9f\x7c\x89\xb8\x38\xcf\x30\x47\x2a\x40\xd1\xc1\x0b\xf0\x32\x4b\xc5\x07\xc6\xa2\x67\x70\x7f\x71\xe1\x05\xb2\x88\x0b\x78\x01\x86\x65\x16\xc5\x08\x2e\x71\xc1\xbd\x73\xeb\xda\x71\xaa\x6a\x08\x27\x8a\xed\xf4\xcc\xf0\xd7\xb5\x1e\xbd\x41\x36\x4b\x63\x94\x62\xd5\xa4\x79\x56\x7a\xc0\x0b\x08\x96\xe6\x37\xd3\xf1\x38\x7d\x02\xd7\x4c\xb9\xd0\x2c\x89\x8c\xe5\x3c\x91\x7c\x59\xca\x85\x5e\x93\x45\x34\xc1\xf9\x3a\x17\x28\x26\xc5\xc8\x48\x4b\xc7\x40\x0b\x01\x5e\x5c\x50\x11\xa5\x94\x83\xf7\x3f\x5e\x50\xf0\x8a\x12\x69\x54\xa6\xbf\x96\x22\x2d\x28\x10\xdf\x07\x97\x4e\xb3\xcc\xf5\x61\xce\xb8\x40\x44\xae\x91\x97\x05\xe5\xc8\x35\x15\x68\xc9\x27\xf7\x01\x9c\xcc\xa4\x4e\x1b\x39\x86\x70\x92\xf3\x44\x3c\x97\xca\x74\x2f\x41\x71\x81\x9c\x47\x09\xde\xca\x21\xed\xb0\x93\x19\xb9\x89\x27\x98\x47\xe4\x5f\xbc\xa0\xe6\xeb\x35\x8e\x1b\xd5\xac\x13\xce\x20\x2a\x4b\xa4\xa3\x66\xc0\xae\xad\x5d\x69\xa8\x25\xc1\x36\x5f\x9d\x34\x2f\x0b\x26\xc0\x73\x06\xae\xf4\x16\x3e\x09\xb7\x71\x21\x82\x97\x21\x4d\x26\xc2\xca\xf2\xe1\xaf\x92\x09\xc0\x1d\xe7\x86\xce\xac\x13\x86\x00\x2e\x45\x11\x4e\x84\x28\x5d\xc7\x19\xa8\xc4\xbb\x8b\xb3\x54\xa6\x92\x9b\xa4\x62\x32\xfd\x4a\xe2\x22\x0f\xa7\x34\xe5\x22\x8a\xef\x87\x05\x4b\x42\x45\x15\xce\x7e\x0e\x35\xa1\x0b\x96\x91\x23\x9b\x21\xdb\x82\x51\x13\xba\x96\x2f\x2a\xd3\x2d\x98\xa2\x32\x75\xbb\x2a\xde\x49\xbd\x37\x70\x0e\x35\xe9\x50\x92\x86\xb3\x9f\x5d\xc7\x77\x9c\x59\xc4\xc0\x73\x00\x00\xee\xa0\xad\x39\xd1\xc9\xd0\x99\xd1\xec\x76\xc6\x77\x1c\x95\x11\x55\xd5\xd9\x1b\x2f\x90\x15\x8f\xc8\x3e\xa5\x8c\x8b\xba\x36\x33\xc0\x05\x9b\xc6\x02\x2a\xb5\x5e\xdc\x5d\xef\xa3\xfa\x50\x33\x54\xae\xc0\x05\x4b\x69\xe2\xd4\x8e\x0c\xca\x85\xa4\x04\x13\x06\x2e\xa6\xe3\xb1\x1a\xbe\xc4\xc7\xae\xdc\xb9\xa8\x98\x61\x24\x10\x28\x3e\x02\xb7\x43\x5a\xc2\x78\x4a\xe3\x35\x9c\x5e\x4b\x7a\xb0\x5c\x49\x1f\x56\x49\xd5\x96\x31\x14\x53\x46\xe1\xdd\x36\x3e\xa9\xe2\x53\x88\x03\x65\xf2\xa9\xfa\x5f\x3b\xaa\x5c\xac\xab\x0b\x27\x0c\x1f\xf4\x80\xaa\x41\xff\xa4\xe5\x54\xa8\x3d\xd8\xad\x72\xc4\x56\xb9\x86\x8d\x97\x2d\xb6\x5f\xa7\x62\x1b\x3e\xb9\x85\x22\x3a\x02\x4f\x96\x22\xe3\x80\x1b\xc1\x30\xca\x53\x9a\xf8\xe0\x29\x15\x91\xb5\x86\xea\x5a\xfb\xd8\x8b\xe1\xfd\x36\x2e\x90\xee\x34\x85\xdc\x8b\xc5\x13\x98\x0d\x4c\x3e\xea\xcf\x00\x18\x3e\xa8\x95\x1a\xb3\xeb\x3a\x80\xa2\x14\x1c\x08\x21\xdd\xf8\x44\x59\xa6\x13\xd3\x07\xaf\x1f\xa4\xbb\x46\x8c\x19\x0e\x00\x19\x2b\x98\xaf\xc2\x56\x55\x80\x19\x47\x69\x6e\xdf\xca\xc3\x5b\x74\x2c\xe5\xbf\x17\xd7\x2b\x16\x9b\x6d\x92\xa5\xa3\x6b\x53\x6e\xe5\x66\x79\x75\xa3\x6b\x31\x6f\x68\x5d\x92\x52\x56\xfe\xa8\x94\x89\x9f\x47\xf7\xe8\xe5\x51\xf9\xbb\xde\xe3\x7f\xa4\x54\x20\x1b\x47\x31\x56\x75\x20\x1d\x99\x21\x5d\xb7\x60\x5d\xfb\x8d\xe8\x1d\x5b\xe8\x5c\x8f\xdf\xdd\xaa\x3a\xb9\xaf\x6b\xf7\x0f\x38\x93\x75\x62\xb8\x6b\x3b\xb5\x5d\xb2\x9a\xfb\xa1\xe7\xd3\xce\x63\xfb\x89\xaa\xf0\x9d\xda\x06\xec\xc9\xc7\x40\xcd\x00\x2c\xf4\x12\x53\x78\x3c\xb7\xaa\xe4\xe3\x7f\x90\x7d\x05\x52\xd7\xae\x1f\xc0\x4a\x96\xab\x48\x4c\x2c\x83\xfc\x6e\x18\x0c\xfd\xf2\x78\x4b\xda\xbf\x15\xa3\x67\x20\x3e\xb8\xff\x38\xbf\x9d\x87\x78\x99\x04\x49\x69\x25\x68\xae\xbe\x84\x96\xbd\x7b\xa6\xd8\x2e\x49\xb6\x4c\xd7\x73\x99\xf9\x17\x51\xe9\xe9\xc8\xaf\xd7\xb2\x35\xe0\x3b\x8d\xe4\x82\x2d\x2b\xb3\xde\x42\x31\x36\x9c\x5c\x0d\xa8\x3d\x27\xc3\x1c\x93\x98\x68\x1a\xb9\xc5\x03\xf5\x7c\x89\x8f\xd7\xf8\x30\x45\x2e\xbc\x98\xc8\xae\x13\x80\xdb\xaf\x38\xa4\x29\x0d\x6e\xa0\x7a\x59\xab\x06\x54\xb5\x1f\xe8\x44\x22\x84\xe8\xfd\x90\x8e\x95\xc0\x1f\xce\x80\xa6\x99\x69\x84\x4d\x2b\xa4\x69\xa6\xf4\x51\xa3\xb5\xd3\x09\xc9\x92\x6a\x0b\xdf\xf6\xaf\xad\xff\xe9\x99\xf1\x1f\xb9\x91\
|
2021-02-02 08:36:58 +03:00
|
|
|
|
},
|
|
|
|
|
"/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyby5wYi5nby50bXBs": &vfsgen۰CompressedFileInfo{
|
|
|
|
|
name: "e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyby5wYi5nby50bXBs",
|
2021-02-02 17:52:14 +03:00
|
|
|
|
modTime: time.Date(2021, 2, 2, 14, 50, 50, 937560688, time.UTC),
|
|
|
|
|
uncompressedSize: 4594,
|
2021-02-02 08:36:58 +03:00
|
|
|
|
|
2021-02-02 17:52:14 +03:00
|
|
|
|
compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff\xd4\x57\x5d\x6b\xe4\x36\x14\x7d\x8e\x7f\xc5\x45\x84\x62\x2f\x13\xcf\x96\xbe\x4d\x99\x87\x6c\xd8\xd2\x42\xb3\xbb\x34\xa5\x2f\xcb\x12\x14\xeb\x8e\xa3\xc6\x96\x5c\x59\x4e\x13\x1c\xfd\xf7\x22\x5b\xfe\x52\x3c\xce\x4c\x08\x0b\x9d\x97\x58\xd2\x3d\x57\xd7\xf7\x1c\x1d\x2b\xeb\x35\x5c\x48\x86\x90\xa2\x40\x45\x35\x32\xb8\x79\x84\x42\x49\x2d\x93\xb3\x14\xc5\x59\xce\x13\x25\x83\xf5\x1a\x4a\x59\xa9\x04\x37\x50\xd7\xf1\x2f\x3c\xc3\xf8\x13\xcd\xd1\x98\xa0\xa0\xc9\x1d\x4d\x11\xea\x3a\x95\x5f\xee\xd2\xdf\x69\xa9\x3f\x66\x98\xa3\xd0\xd0\xc4\xc1\x13\x94\x45\xc6\xf5\xb9\x52\xf4\x11\xc8\xcf\x04\x9e\x20\xa3\xa5\x86\x27\x50\x58\x64\x34\x41\x20\x31\x01\x72\x4d\x8c\x09\x02\x9e\x17\x52\x69\x08\x83\x13\x92\x48\xa1\xf1\x41\x93\x20\x38\x69\x6a\xb8\xa6\x05\x07\x92\x72\x7d\x5b\xdd\xc4\x89\xcc\xd7\x95\xe0\xa5\xa6\xc9\xdd\x99\x54\xe9\xba\x09\x59\xdf\xff\xb4\xa6\x05\x27\x00\x00\x1d\x2a\xc9\xb8\xad\xe5\x65\x60\x1b\x48\x20\x88\x82\xa0\xae\xcf\xe0\xf4\x0a\xd5\x3d\x4f\xd0\xbe\x27\x6c\xb6\x10\xbb\x71\xf3\xe2\xf0\x04\x5a\xf1\xfc\xaa\xda\xed\xf8\x03\x10\xb7\x44\xc0\x98\x16\x8b\x85\xa8\x72\x8b\x7a\xdf\x4d\x29\x2a\x52\x1c\x92\x5c\xa2\xbe\x95\xcc\xad\xf1\x1d\x08\xa9\x21\xb4\xaf\x4c\xb9\x28\x21\xfc\xbb\x94\x02\xc2\x5b\xad\x8b\xcf\x85\xe6\x52\x40\x1c\x45\x40\x44\x95\x65\x24\x82\x11\x0a\xdb\xa0\xbf\x50\xdd\x40\x1c\x01\xf1\x2b\xd8\x02\x65\xac\x1b\xfc\x38\xad\xc5\x02\xbf\x50\x7d\x5b\x9e\x33\xc6\xed\x26\x34\xfb\xc0\x05\xe3\x22\x2d\x21\x3e\x28\x0f\x0a\x76\xd0\xa3\x95\xcf\x27\xfc\xb7\xae\xc7\x3d\x35\xe6\xa3\x60\x85\xe4\x42\x97\x56\x6f\xf7\x9c\x61\x09\x96\x63\xec\xa7\x73\xd4\x8c\x6a\x0a\x3b\xa9\xc0\x07\x43\xd9\x8e\x82\x5d\x25\x92\xc5\xec\x61\x04\x5f\xbf\xbd\xeb\x35\x14\x77\x0b\x50\x07\x56\x28\xc3\x76\x9b\x2d\xe4\xf4\x0e\xc3\xd9\xe8\x15\xbc\x5f\x41\x5d\x77\x3d\x30\x26\x6a\xd0\x03\x11\x6e\xa1\x21\xdc\xae\xdc\x53\xd5\xe7\x86\x99\x84\x3d\xdc\x35\xa9\x1b\xee\x13\xca\x78\xb7\xe3\xc4\xd2\x21\x4f\x47\x21\x9b\xad\x87\x00\x6f\x0b\x1c\x87\xbb\x2a\x9c\xbe\xc6\x5d\x83\x2d\xfc\xf0\xfc\xdd\xda\xce\xda\x9f\xe5\x62\x03\xc4\x27\x27\xae\x6b\x67\x20\x64\xd5\xc7\x5a\x31\x6e\xe0\xeb\xb7\x52\x2b\x2e\xd2\xda\x82\x46\x25\xd8\x55\x63\x88\x19\xe2\xdb\xa2\xf6\x23\xba\xd6\x8d\x31\x1f\x24\x7b\x6c\xeb\x19\x05\xda\xc9\x49\x25\xae\x09\x52\x41\x18\x5f\x34\xbe\x70\xa5\x15\xd2\x9c\x8b\x34\x82\xb0\xe1\x06\xd5\x30\xe5\x7a\x62\x7f\xed\xe4\x06\xb4\xaa\x70\x9a\x0f\x05\x1b\xc5\xfd\x4a\x05\xcb\x50\x6d\x80\xa8\x22\x71\x3b\x1b\x4f\x8f\x5b\xa0\x45\x81\x82\x85\xfd\xd4\xaa\x5f\x8d\x3c\xbd\x9c\x72\xc1\xf0\x61\x05\xa7\xe8\xcc\x77\xb3\x9d\x10\x38\x9c\xf1\xef\xcc\xa0\xab\xe7\x50\xfa\xba\xf0\x65\xee\xba\xa8\xff\x35\x71\x43\xde\xc3\x47\x0a\x75\xa5\xc4\xb0\x55\xd0\x9a\xab\x4f\x8e\x1b\x00\x17\x1a\xd5\x8e\x26\x18\xe8\xc7\x02\x5f\x0e\x6b\x2c\x71\xd9\x84\x1a\x23\x51\xf8\x8f\x73\x04\xfb\x61\xfc\x4d\x14\x95\xfe\xd3\x6e\x30\xfd\xd6\xc7\xfd\xb7\x7e\x84\x2c\x8b\x11\xf2\x73\xa5\x0f\x86\x76\xb4\xfa\x1c\xce\x30\x3d\xc6\x50\xc1\x66\x41\xd6\x43\xe7\x81\x16\xea\xa4\x1d\xba\x4b\x48\x7c\xd1\xfe\x5d\xc1\xbb\xba\x1e\xde\xde\x98\x15\xc4\x71\x3c\xbe\x68\xc4\x17\x34\xcb\xda\x33\x17\x41\xe8\x37\xfc\xba\xcf\xec\xa6\x57\x80\x4a\x49\x15\xb9\x7a\x31\x2b\xf1\xe5\x1a\xde\x76\x4b\x31\xf0\x7a\xd8\xf6\xc7\xb5\xa0\x89\xee\x48\xb7\xd1\xfb\x77\x6f\x9e\x8d\xbd\x7d\x2d\x5d\x96\x8e\x15\x5f\x0f\x3b\x52\x79\x0d\xee\x38\xd1\xcd\x1e\xb2\x67\x04\x78\xc7\x0d\xc0\x75\x36\x8c\xc0\xeb\x75\xb3\x7a\x85\x82\x5d\x96\x69\xd8\xa3\x6a\x13\xb5\x4d\x6c\x96\xff\xc0\xe4\x7e\x61\x79\x72\x0a\x9e\x3b\x62\x73\x0a\xf6\xb8\xa2\xcd\x7c\x2e\xd8\x45\x26\x4b\x0c\x17\x99\xf4\x5d\xaa\x83\x3c\x2b\xc3\xaf\xc0\xc5\xdb\x57\x0c\x3d\x59\xf9\xe8\xa9\x23\xda\x5c\x5e\xd9\xa3\xaa\x0f\xaf\xb6\xbf\xa6\x9a\xf1\xd3\x7a\x0d\x97\x56\xd0\xcd\x1d\x13\x15\x94\xba\xda\xed\x66\x8d\xd6\x7d\x0d\xba\xc0\xdb\x76\x38\x2f\x84\x2e\x76\x4c\xff\xc9\x4b\xff\x1a\x7c\x57\xb5\x1f\x6f\xb2\x93\x2b\xe9\x1e\x76\x8f\xb1\x92\x85\xc3\xd3\x64\x7d\xa6\x8a\x83\x1c\xeb\xe8\xac\x83\x1e\x5e\xe7\x88\x9e\xf8\xba\xfc\x73\x5a\x33\x41\xf0\xf6\x1a\x68\xaf\x2a\xaf\x55\x42\x07\x7e\x5b\xf3\x6b\x62\x3d\xef\x5b\x72\xbe\x45\xdf\x5b\x74\xbd\x57\x7b\x9e\xdd\xb2\x77\xbc\x3d\x1c\x4e\xdd\
|
2021-01-19 12:43:37 +03:00
|
|
|
|
},
|
2021-01-08 22:22:43 +03:00
|
|
|
|
}
|
|
|
|
|
fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
|
2021-02-02 11:13:29 +03:00
|
|
|
|
fs["/e3suU2VydmljZS5OYW1lIHwgdHJpbVN1ZmZpeCAiU2VydmljZSIgfCBsb3dlcn19X21pY3JvX2NoaS5wYi5nby50bXBs"].(os.FileInfo),
|
|
|
|
|
fs["/e3suU2VydmljZS5OYW1lIHwgdHJpbVN1ZmZpeCAiU2VydmljZSIgfCBsb3dlcn19X21pY3JvX2dvcmlsbGEucGIuZ28udG1wbA=="].(os.FileInfo),
|
2021-02-02 08:36:58 +03:00
|
|
|
|
fs["/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19ncnBjLnBiLmdvLnRtcGw="].(os.FileInfo),
|
|
|
|
|
fs["/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyb19odHRwLnBiLmdvLnRtcGw="].(os.FileInfo),
|
|
|
|
|
fs["/e3t0cmltU3VmZml4ICIucHJvdG8iIC5GaWxlLk5hbWV9fV9taWNyby5wYi5nby50bXBs"].(os.FileInfo),
|
2021-01-08 22:22:43 +03:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return fs
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
type vfsgen۰FS map[string]interface{}
|
|
|
|
|
|
|
|
|
|
func (fs vfsgen۰FS) Open(path string) (http.File, error) {
|
|
|
|
|
path = pathpkg.Clean("/" + path)
|
|
|
|
|
f, ok := fs[path]
|
|
|
|
|
if !ok {
|
|
|
|
|
return nil, &os.PathError{Op: "open", Path: path, Err: os.ErrNotExist}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch f := f.(type) {
|
|
|
|
|
case *vfsgen۰CompressedFileInfo:
|
|
|
|
|
gr, err := gzip.NewReader(bytes.NewReader(f.compressedContent))
|
|
|
|
|
if err != nil {
|
|
|
|
|
// This should never happen because we generate the gzip bytes such that they are always valid.
|
|
|
|
|
panic("unexpected error reading own gzip compressed bytes: " + err.Error())
|
|
|
|
|
}
|
|
|
|
|
return &vfsgen۰CompressedFile{
|
|
|
|
|
vfsgen۰CompressedFileInfo: f,
|
|
|
|
|
gr: gr,
|
|
|
|
|
}, nil
|
|
|
|
|
case *vfsgen۰DirInfo:
|
|
|
|
|
return &vfsgen۰Dir{
|
|
|
|
|
vfsgen۰DirInfo: f,
|
|
|
|
|
}, nil
|
|
|
|
|
default:
|
|
|
|
|
// This should never happen because we generate only the above types.
|
|
|
|
|
panic(fmt.Sprintf("unexpected type %T", f))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// vfsgen۰CompressedFileInfo is a static definition of a gzip compressed file.
|
|
|
|
|
type vfsgen۰CompressedFileInfo struct {
|
|
|
|
|
name string
|
|
|
|
|
modTime time.Time
|
|
|
|
|
compressedContent []byte
|
|
|
|
|
uncompressedSize int64
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f *vfsgen۰CompressedFileInfo) Readdir(count int) ([]os.FileInfo, error) {
|
|
|
|
|
return nil, fmt.Errorf("cannot Readdir from file %s", f.name)
|
|
|
|
|
}
|
|
|
|
|
func (f *vfsgen۰CompressedFileInfo) Stat() (os.FileInfo, error) { return f, nil }
|
|
|
|
|
|
|
|
|
|
func (f *vfsgen۰CompressedFileInfo) GzipBytes() []byte {
|
|
|
|
|
return f.compressedContent
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f *vfsgen۰CompressedFileInfo) Name() string { return f.name }
|
|
|
|
|
func (f *vfsgen۰CompressedFileInfo) Size() int64 { return f.uncompressedSize }
|
|
|
|
|
func (f *vfsgen۰CompressedFileInfo) Mode() os.FileMode { return 0444 }
|
|
|
|
|
func (f *vfsgen۰CompressedFileInfo) ModTime() time.Time { return f.modTime }
|
|
|
|
|
func (f *vfsgen۰CompressedFileInfo) IsDir() bool { return false }
|
|
|
|
|
func (f *vfsgen۰CompressedFileInfo) Sys() interface{} { return nil }
|
|
|
|
|
|
|
|
|
|
// vfsgen۰CompressedFile is an opened compressedFile instance.
|
|
|
|
|
type vfsgen۰CompressedFile struct {
|
|
|
|
|
*vfsgen۰CompressedFileInfo
|
|
|
|
|
gr *gzip.Reader
|
|
|
|
|
grPos int64 // Actual gr uncompressed position.
|
|
|
|
|
seekPos int64 // Seek uncompressed position.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f *vfsgen۰CompressedFile) Read(p []byte) (n int, err error) {
|
|
|
|
|
if f.grPos > f.seekPos {
|
|
|
|
|
// Rewind to beginning.
|
|
|
|
|
err = f.gr.Reset(bytes.NewReader(f.compressedContent))
|
|
|
|
|
if err != nil {
|
|
|
|
|
return 0, err
|
|
|
|
|
}
|
|
|
|
|
f.grPos = 0
|
|
|
|
|
}
|
|
|
|
|
if f.grPos < f.seekPos {
|
|
|
|
|
// Fast-forward.
|
|
|
|
|
_, err = io.CopyN(ioutil.Discard, f.gr, f.seekPos-f.grPos)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return 0, err
|
|
|
|
|
}
|
|
|
|
|
f.grPos = f.seekPos
|
|
|
|
|
}
|
|
|
|
|
n, err = f.gr.Read(p)
|
|
|
|
|
f.grPos += int64(n)
|
|
|
|
|
f.seekPos = f.grPos
|
|
|
|
|
return n, err
|
|
|
|
|
}
|
|
|
|
|
func (f *vfsgen۰CompressedFile) Seek(offset int64, whence int) (int64, error) {
|
|
|
|
|
switch whence {
|
|
|
|
|
case io.SeekStart:
|
|
|
|
|
f.seekPos = 0 + offset
|
|
|
|
|
case io.SeekCurrent:
|
|
|
|
|
f.seekPos += offset
|
|
|
|
|
case io.SeekEnd:
|
|
|
|
|
f.seekPos = f.uncompressedSize + offset
|
|
|
|
|
default:
|
|
|
|
|
panic(fmt.Errorf("invalid whence value: %v", whence))
|
|
|
|
|
}
|
|
|
|
|
return f.seekPos, nil
|
|
|
|
|
}
|
|
|
|
|
func (f *vfsgen۰CompressedFile) Close() error {
|
|
|
|
|
return f.gr.Close()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// vfsgen۰DirInfo is a static definition of a directory.
|
|
|
|
|
type vfsgen۰DirInfo struct {
|
|
|
|
|
name string
|
|
|
|
|
modTime time.Time
|
|
|
|
|
entries []os.FileInfo
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (d *vfsgen۰DirInfo) Read([]byte) (int, error) {
|
|
|
|
|
return 0, fmt.Errorf("cannot Read from directory %s", d.name)
|
|
|
|
|
}
|
|
|
|
|
func (d *vfsgen۰DirInfo) Close() error { return nil }
|
|
|
|
|
func (d *vfsgen۰DirInfo) Stat() (os.FileInfo, error) { return d, nil }
|
|
|
|
|
|
|
|
|
|
func (d *vfsgen۰DirInfo) Name() string { return d.name }
|
|
|
|
|
func (d *vfsgen۰DirInfo) Size() int64 { return 0 }
|
|
|
|
|
func (d *vfsgen۰DirInfo) Mode() os.FileMode { return 0755 | os.ModeDir }
|
|
|
|
|
func (d *vfsgen۰DirInfo) ModTime() time.Time { return d.modTime }
|
|
|
|
|
func (d *vfsgen۰DirInfo) IsDir() bool { return true }
|
|
|
|
|
func (d *vfsgen۰DirInfo) Sys() interface{} { return nil }
|
|
|
|
|
|
|
|
|
|
// vfsgen۰Dir is an opened dir instance.
|
|
|
|
|
type vfsgen۰Dir struct {
|
|
|
|
|
*vfsgen۰DirInfo
|
|
|
|
|
pos int // Position within entries for Seek and Readdir.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (d *vfsgen۰Dir) Seek(offset int64, whence int) (int64, error) {
|
|
|
|
|
if offset == 0 && whence == io.SeekStart {
|
|
|
|
|
d.pos = 0
|
|
|
|
|
return 0, nil
|
|
|
|
|
}
|
|
|
|
|
return 0, fmt.Errorf("unsupported Seek in directory %s", d.name)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (d *vfsgen۰Dir) Readdir(count int) ([]os.FileInfo, error) {
|
|
|
|
|
if d.pos >= len(d.entries) && count > 0 {
|
|
|
|
|
return nil, io.EOF
|
|
|
|
|
}
|
|
|
|
|
if count <= 0 || count > len(d.entries)-d.pos {
|
|
|
|
|
count = len(d.entries) - d.pos
|
|
|
|
|
}
|
|
|
|
|
e := d.entries[d.pos : d.pos+count]
|
|
|
|
|
d.pos += count
|
|
|
|
|
return e, nil
|
|
|
|
|
}
|