diff --git a/assets/assets.go b/assets/assets.go index 2c4744c2..5ed75ea6 100644 --- a/assets/assets.go +++ b/assets/assets.go @@ -10,7 +10,7 @@ import ( ) // BaseURL is the url of the assets -const BaseURL = "/_filemanagerinternal" +const BaseURL = "_filemanagerinternal" // Serve provides the needed assets for the front-end func Serve(w http.ResponseWriter, r *http.Request, c *config.Config) (int, error) { diff --git a/config/config.go b/config/config.go index f9f543bf..70bc9f9d 100644 --- a/config/config.go +++ b/config/config.go @@ -67,6 +67,7 @@ func Parse(c *caddy.Controller) ([]Config, error) { for c.Next() { var cfg = Config{UserConfig: &UserConfig{}} cfg.PathScope = "." + cfg.BaseURL = "" cfg.FrontMatter = "yaml" cfg.HugoEnabled = false cfg.Users = map[string]*UserConfig{} @@ -99,7 +100,6 @@ func Parse(c *caddy.Controller) ([]Config, error) { } cCfg.PathScope = c.Val() cCfg.PathScope = strings.TrimSuffix(cCfg.PathScope, "/") - cCfg.Root = http.Dir(cCfg.PathScope) case "styles": if !c.NextArg() { return configs, c.ArgErr() @@ -200,6 +200,8 @@ func Parse(c *caddy.Controller) ([]Config, error) { }) // NEW USER BLOCK? default: + cCfg.Root = http.Dir(cCfg.PathScope) + val := c.Val() // Checks if it's a new user if !strings.HasSuffix(val, ":") { @@ -230,6 +232,8 @@ func Parse(c *caddy.Controller) ([]Config, error) { cfg.BaseURL = strings.TrimSuffix(cfg.BaseURL, "/") cfg.BaseURL = "/" + cfg.BaseURL + cfg.Root = http.Dir(cfg.PathScope) + caddyConf := httpserver.GetConfig(c) cfg.AbsoluteURL = strings.TrimSuffix(caddyConf.Addr.Path, "/") + "/" + cfg.BaseURL cfg.AbsoluteURL = strings.Replace(cfg.AbsoluteURL, "//", "/", -1) @@ -238,6 +242,7 @@ func Parse(c *caddy.Controller) ([]Config, error) { if err := appendConfig(cfg); err != nil { return configs, err } + } return configs, nil diff --git a/debug b/debug new file mode 100644 index 00000000..defb0346 --- /dev/null +++ b/debug @@ -0,0 +1,611 @@ +! +__.PKGDEF 0 0 0 644 77089 ` +go object windows amd64 go1.6.2 X:none +build id "675679839eef59698b21a98ead4927dfbf2b0b79" + +$$ +package filemanager + import io "io" + import ioutil "io/ioutil" + import os "os" + import filepath "path/filepath" + import log "log" + import multipart "mime/multipart" + import strings "strings" + import http "net/http" + import exec "os/exec" + import assets "github.com/hacdias/caddy-filemanager/assets" + import config "github.com/hacdias/caddy-filemanager/config" + import caddy "github.com/mholt/caddy" + import httpserver "github.com/mholt/caddy/caddyhttp/httpserver" + import directory "github.com/hacdias/caddy-filemanager/directory" + import page "github.com/hacdias/caddy-filemanager/page" + import errors "github.com/hacdias/caddy-filemanager/errors" + type @"io".Writer interface { Write(@"io".p []byte) (@"io".n int, @"io".err error) } + type @"net/http".keyValues struct { @"net/http".key string; @"net/http".values []string } + type @"net/http".headerSorter struct { @"net/http".kvs []@"net/http".keyValues } + func (@"net/http".s·2 *@"net/http".headerSorter "esc:0x1") Len () (? int) { return len(@"net/http".s·2.@"net/http".kvs) } + func (@"net/http".s·2 *@"net/http".headerSorter "esc:0x1") Less (@"net/http".i·3 int, @"net/http".j·4 int) (? bool) { return @"net/http".s·2.@"net/http".kvs[@"net/http".i·3].@"net/http".key < @"net/http".s·2.@"net/http".kvs[@"net/http".j·4].@"net/http".key } + func (@"net/http".s·1 *@"net/http".headerSorter "esc:0x9") Swap (@"net/http".i·2 int, @"net/http".j·3 int) { @"net/http".s·1.@"net/http".kvs[@"net/http".i·2], @"net/http".s·1.@"net/http".kvs[@"net/http".j·3] = @"net/http".s·1.@"net/http".kvs[@"net/http".j·3], @"net/http".s·1.@"net/http".kvs[@"net/http".i·2] } + type @"net/http".Header map[string][]string + func (@"net/http".h·1 @"net/http".Header "esc:0x9") Add (@"net/http".key·2 string, @"net/http".value·3 string) + func (@"net/http".h·1 @"net/http".Header "esc:0x1") Del (@"net/http".key·2 string "esc:0x1") + func (@"net/http".h·2 @"net/http".Header "esc:0x1") Get (@"net/http".key·3 string "esc:0x1") (? string) + func (@"net/http".h·1 @"net/http".Header "esc:0x1") Set (@"net/http".key·2 string, @"net/http".value·3 string) + func (@"net/http".h·2 @"net/http".Header "esc:0x9") Write (@"net/http".w·3 @"io".Writer) (? error) + func (@"net/http".h·2 @"net/http".Header "esc:0x9") WriteSubset (@"net/http".w·3 @"io".Writer, @"net/http".exclude·4 map[string]bool "esc:0x1") (? error) + func (@"net/http".h·2 @"net/http".Header "esc:0x9") @"net/http".clone () (? @"net/http".Header) + func (@"net/http".h·2 @"net/http".Header "esc:0x1") @"net/http".get (@"net/http".key·3 string "esc:0x1") (? string) { var @"net/http".v·4 []string; ; @"net/http".v·4 = @"net/http".h·2[@"net/http".key·3]; if len(@"net/http".v·4) > int(0x0) { return @"net/http".v·4[int(0x0)] }; return string("") } + func (@"net/http".h·3 @"net/http".Header "esc:0x9") @"net/http".sortedKeyValues (@"net/http".exclude·4 map[string]bool "esc:0x1") (@"net/http".kvs·1 []@"net/http".keyValues, @"net/http".hs·2 *@"net/http".headerSorter) + type @"net/http".ResponseWriter interface { Header() (? @"net/http".Header); Write(? []byte) (? int, ? error); WriteHeader(? int) } + import url "net/url" // indirect + type @"net/url".Userinfo struct { @"net/url".username string; @"net/url".password string; @"net/url".passwordSet bool } + func (@"net/url".u·3 *@"net/url".Userinfo "esc:0x22") Password () (? string, ? bool) { if @"net/url".u·3.@"net/url".passwordSet { return @"net/url".u·3.@"net/url".password, bool(true) }; return string(""), bool(false) } + func (@"net/url".u·2 *@"net/url".Userinfo "esc:0x22") String () (? string) + func (@"net/url".u·2 *@"net/url".Userinfo "esc:0x22") Username () (? string) { return @"net/url".u·2.@"net/url".username } + type @"net/url".Values map[string][]string + func (@"net/url".v·1 @"net/url".Values "esc:0x9") Add (@"net/url".key·2 string, @"net/url".value·3 string) { @"net/url".v·1[@"net/url".key·2] = append(@"net/url".v·1[@"net/url".key·2], @"net/url".value·3) } + func (@"net/url".v·1 @"net/url".Values "esc:0x1") Del (@"net/url".key·2 string "esc:0x1") { delete(@"net/url".v·1, @"net/url".key·2) } + func (@"net/url".v·2 @"net/url".Values "esc:0x1") Encode () (? string) + func (@"net/url".v·2 @"net/url".Values "esc:0x1") Get (@"net/url".key·3 string "esc:0x1") (? string) { if @"net/url".v·2 == nil { return string("") }; var @"net/url".vs·4 []string; ; var @"net/url".ok·5 bool; ; @"net/url".vs·4, @"net/url".ok·5 = @"net/url".v·2[@"net/url".key·3]; if !@"net/url".ok·5 || len(@"net/url".vs·4) == int(0x0) { return string("") }; return @"net/url".vs·4[int(0x0)] } + func (@"net/url".v·1 @"net/url".Values "esc:0x1") Set (@"net/url".key·2 string, @"net/url".value·3 string) { @"net/url".v·1[@"net/url".key·2] = ([]string{ int(0x0):@"net/url".value·3 }) } + type @"net/url".URL struct { Scheme string; Opaque string; User *@"net/url".Userinfo; Host string; Path string; RawPath string; RawQuery string; Fragment string } + func (@"net/url".u·2 *@"net/url".URL "esc:0x22") EscapedPath () (? string) + func (@"net/url".u·2 *@"net/url".URL "esc:0x1") IsAbs () (? bool) { return @"net/url".u·2.Scheme != string("") } + func (@"net/url".u·3 *@"net/url".URL "esc:0x9") Parse (@"net/url".ref·4 string) (? *@"net/url".URL, ? error) + func (@"net/url".u·2 *@"net/url".URL "esc:0x9") Query () (? @"net/url".Values) + func (@"net/url".u·2 *@"net/url".URL "esc:0x22") RequestURI () (? string) + func (@"net/url".u·2 *@"net/url".URL "esc:0xa") ResolveReference (@"net/url".ref·3 *@"net/url".URL "esc:0xa") (? *@"net/url".URL) + func (@"net/url".u·2 *@"net/url".URL "esc:0x9") String () (? string) + type @"io".ReadCloser interface { Close() (? error); Read(@"io".p []byte) (@"io".n int, @"io".err error) } + import textproto "net/textproto" // indirect + type @"net/textproto".MIMEHeader map[string][]string + func (@"net/textproto".h·1 @"net/textproto".MIMEHeader "esc:0x9") Add (@"net/textproto".key·2 string, @"net/textproto".value·3 string) + func (@"net/textproto".h·1 @"net/textproto".MIMEHeader "esc:0x1") Del (@"net/textproto".key·2 string "esc:0x1") + func (@"net/textproto".h·2 @"net/textproto".MIMEHeader "esc:0x1") Get (@"net/textproto".key·3 string "esc:0x1") (? string) + func (@"net/textproto".h·1 @"net/textproto".MIMEHeader "esc:0x1") Set (@"net/textproto".key·2 string, @"net/textproto".value·3 string) + type @"mime/multipart".File interface { Close() (? error); Read(@"io".p []byte) (@"io".n int, @"io".err error); ReadAt(@"io".p []byte, @"io".off int64) (@"io".n int, @"io".err error); Seek(@"io".offset int64, @"io".whence int) (? int64, ? error) } + type @"mime/multipart".FileHeader struct { Filename string; Header @"net/textproto".MIMEHeader; @"mime/multipart".content []byte; @"mime/multipart".tmpfile string } + func (@"mime/multipart".fh·3 *@"mime/multipart".FileHeader) Open () (? @"mime/multipart".File, ? error) + type @"mime/multipart".Form struct { Value map[string][]string; File map[string][]*@"mime/multipart".FileHeader } + func (@"mime/multipart".f·2 *@"mime/multipart".Form "esc:0x9") RemoveAll () (? error) + import tls "crypto/tls" // indirect + import x509 "crypto/x509" // indirect + type @"crypto/x509".SignatureAlgorithm int + func (@"crypto/x509".algo·2 @"crypto/x509".SignatureAlgorithm) String () (? string) + type @"crypto/x509".PublicKeyAlgorithm int + import big "math/big" // indirect + type @"math/big".Word uintptr + type @"math/big".divisor struct { @"math/big".bbb @"math/big".nat; @"math/big".nbits int; @"math/big".ndigits int } + import rand "math/rand" // indirect + type @"math/rand".Source interface { Int63() (? int64); Seed(@"math/rand".seed int64) } + type @"math/rand".Rand struct { @"math/rand".src @"math/rand".Source } + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") ExpFloat64 () (? float64) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Float32 () (? float32) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Float64 () (? float64) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Int () (? int) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Int31 () (? int32) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Int31n (@"math/rand".n·3 int32) (? int32) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Int63 () (? int64) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Int63n (@"math/rand".n·3 int64) (? int64) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Intn (@"math/rand".n·3 int) (? int) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") NormFloat64 () (? float64) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Perm (@"math/rand".n·3 int) (? []int) + func (@"math/rand".r·3 *@"math/rand".Rand "esc:0x9") Read (@"math/rand".p·4 []byte "esc:0x1") (@"math/rand".n·1 int, @"math/rand".err·2 error) + func (@"math/rand".r·1 *@"math/rand".Rand "esc:0x9") Seed (@"math/rand".seed·2 int64) + func (@"math/rand".r·2 *@"math/rand".Rand "esc:0x9") Uint32 () (? uint32) + type @"io".ByteScanner interface { ReadByte() (@"io".c byte, @"io".err error); UnreadByte() (? error) } + type @"math/big".nat []@"math/big".Word + func (@"math/big".z·2 @"math/big".nat) @"math/big".add (@"math/big".x·3 @"math/big".nat, @"math/big".y·4 @"math/big".nat) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".and (@"math/big".x·3 @"math/big".nat "esc:0x1", @"math/big".y·4 @"math/big".nat "esc:0x1") (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".andNot (@"math/big".x·3 @"math/big".nat "esc:0x9", @"math/big".y·4 @"math/big".nat "esc:0x1") (? @"math/big".nat) + func (@"math/big".x·2 @"math/big".nat "esc:0x1") @"math/big".bit (@"math/big".i·3 uint) (? uint) { var @"math/big".j·4 uint; ; @"math/big".j·4 = @"math/big".i·3 / uint(0x40); if @"math/big".j·4 >= uint(len(@"math/big".x·2)) { return uint(0x0) }; return uint(@"math/big".x·2[@"math/big".j·4] >> (@"math/big".i·3 % uint(0x40)) & @"math/big".Word(0x1)) } + func (@"math/big".x·2 @"math/big".nat "esc:0x1") @"math/big".bitLen () (? int) + func (@"math/big".z·2 @"math/big".nat "esc:0x1") @"math/big".bytes (@"math/big".buf·3 []byte "esc:0x1") (@"math/big".i·1 int) + func (@"math/big".z·1 @"math/big".nat "esc:0x1") @"math/big".clear () + func (@"math/big".x·2 @"math/big".nat "esc:0x1") @"math/big".cmp (@"math/big".y·3 @"math/big".nat "esc:0x1") (@"math/big".r·1 int) + func (@"math/big".q·1 @"math/big".nat) @"math/big".convertWords (@"math/big".s·2 []byte "esc:0x1", @"math/big".b·3 @"math/big".Word, @"math/big".ndigits·4 int, @"math/big".bb·5 @"math/big".Word, @"math/big".table·6 []@"math/big".divisor "esc:0x9") + func (@"math/big".z·3 @"math/big".nat) @"math/big".div (@"math/big".z2·4 @"math/big".nat, @"math/big".u·5 @"math/big".nat, @"math/big".v·6 @"math/big".nat) (@"math/big".q·1 @"math/big".nat, @"math/big".r·2 @"math/big".nat) + func (@"math/big".z·3 @"math/big".nat "esc:0x12") @"math/big".divLarge (@"math/big".u·4 @"math/big".nat, @"math/big".uIn·5 @"math/big".nat, @"math/big".v·6 @"math/big".nat) (@"math/big".q·1 @"math/big".nat, @"math/big".r·2 @"math/big".nat) + func (@"math/big".z·3 @"math/big".nat) @"math/big".divW (@"math/big".x·4 @"math/big".nat, @"math/big".y·5 @"math/big".Word) (@"math/big".q·1 @"math/big".nat, @"math/big".r·2 @"math/big".Word) + func (@"math/big".z·2 @"math/big".nat) @"math/big".expNN (@"math/big".x·3 @"math/big".nat, @"math/big".y·4 @"math/big".nat "esc:0x1", @"math/big".m·5 @"math/big".nat) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat) @"math/big".expNNMontgomery (@"math/big".x·3 @"math/big".nat, @"math/big".y·4 @"math/big".nat "esc:0x1", @"math/big".m·5 @"math/big".nat) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat) @"math/big".expNNWindowed (@"math/big".x·3 @"math/big".nat, @"math/big".y·4 @"math/big".nat "esc:0x1", @"math/big".m·5 @"math/big".nat) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat) @"math/big".expWW (@"math/big".x·3 @"math/big".Word, @"math/big".y·4 @"math/big".Word) (? @"math/big".nat) + func (@"math/big".x·2 @"math/big".nat "esc:0x9") @"math/big".itoa (@"math/big".neg·3 bool, @"math/big".base·4 int) (? []byte) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".make (@"math/big".n·3 int) (? @"math/big".nat) + func (@"math/big".x·2 @"math/big".nat) @"math/big".modW (@"math/big".d·3 @"math/big".Word) (@"math/big".r·1 @"math/big".Word) + func (@"math/big".z·2 @"math/big".nat) @"math/big".montgomery (@"math/big".x·3 @"math/big".nat, @"math/big".y·4 @"math/big".nat "esc:0x1", @"math/big".m·5 @"math/big".nat, @"math/big".k·6 @"math/big".Word, @"math/big".n·7 int) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat) @"math/big".mul (@"math/big".x·3 @"math/big".nat, @"math/big".y·4 @"math/big".nat) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat) @"math/big".mulAddWW (@"math/big".x·3 @"math/big".nat, @"math/big".y·4 @"math/big".Word, @"math/big".r·5 @"math/big".Word) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat) @"math/big".mulRange (@"math/big".a·3 uint64, @"math/big".b·4 uint64) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".norm () (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".or (@"math/big".x·3 @"math/big".nat "esc:0x9", @"math/big".y·4 @"math/big".nat "esc:0x9") (? @"math/big".nat) + func (@"math/big".n·2 @"math/big".nat) @"math/big".probablyPrime (@"math/big".reps·3 int) (? bool) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".random (@"math/big".rand·3 *@"math/rand".Rand "esc:0x9", @"math/big".limit·4 @"math/big".nat "esc:0x1", @"math/big".n·5 int) (? @"math/big".nat) + func (@"math/big".z·5 @"math/big".nat) @"math/big".scan (@"math/big".r·6 @"io".ByteScanner, @"math/big".base·7 int, @"math/big".fracOk·8 bool) (@"math/big".res·1 @"math/big".nat, @"math/big".b·2 int, @"math/big".count·3 int, @"math/big".err·4 error) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".set (@"math/big".x·3 @"math/big".nat "esc:0x9") (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".setBit (@"math/big".x·3 @"math/big".nat "esc:0x9", @"math/big".i·4 uint, @"math/big".b·5 uint) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".setBytes (@"math/big".buf·3 []byte "esc:0x1") (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".setUint64 (@"math/big".x·3 uint64) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".setWord (@"math/big".x·3 @"math/big".Word) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat) @"math/big".shl (@"math/big".x·3 @"math/big".nat, @"math/big".s·4 uint) (? @"math/big".nat) + func (@"math/big".z·2 @"math/big".nat) @"math/big".shr (@"math/big".x·3 @"math/big".nat, @"math/big".s·4 uint) (? @"math/big".nat) + func (@"math/big".x·2 @"math/big".nat "esc:0x1") @"math/big".sticky (@"math/big".i·3 uint) (? uint) + func (@"math/big".z·2 @"math/big".nat) @"math/big".sub (@"math/big".x·3 @"math/big".nat, @"math/big".y·4 @"math/big".nat) (? @"math/big".nat) + func (@"math/big".x·2 @"math/big".nat "esc:0x1") @"math/big".trailingZeroBits () (? uint) + func (@"math/big".x·2 @"math/big".nat "esc:0x9") @"math/big".utoa (@"math/big".base·3 int) (? []byte) + func (@"math/big".z·2 @"math/big".nat "esc:0x12") @"math/big".xor (@"math/big".x·3 @"math/big".nat "esc:0x9", @"math/big".y·4 @"math/big".nat "esc:0x9") (? @"math/big".nat) + import fmt "fmt" // indirect + type @"fmt".State interface { Flag(@"fmt".c int) (? bool); Precision() (@"fmt".prec int, @"fmt".ok bool); Width() (@"fmt".wid int, @"fmt".ok bool); Write(@"fmt".b []byte) (@"fmt".ret int, @"fmt".err error) } + type @"fmt".ScanState interface { Read(@"fmt".buf []byte) (@"fmt".n int, @"fmt".err error); ReadRune() (@"fmt".r rune, @"fmt".size int, @"fmt".err error); SkipSpace(); Token(@"fmt".skipSpace bool, @"fmt".f func(? rune) (? bool)) (@"fmt".token []byte, @"fmt".err error); UnreadRune() (? error); Width() (@"fmt".wid int, @"fmt".ok bool) } + type @"math/big".Int struct { @"math/big".neg bool; @"math/big".abs @"math/big".nat } + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Abs (@"math/big".x·3 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Add (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") And (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") AndNot (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".x·2 *@"math/big".Int "esc:0x9") Append (@"math/big".buf·3 []byte "esc:0x1a", @"math/big".base·4 int) (? []byte) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Binomial (@"math/big".n·3 int64, @"math/big".k·4 int64) (? *@"math/big".Int) + func (@"math/big".x·2 *@"math/big".Int "esc:0x9") Bit (@"math/big".i·3 int) (? uint) + func (@"math/big".x·2 *@"math/big".Int "esc:0x1") BitLen () (? int) + func (@"math/big".x·2 *@"math/big".Int "esc:0x22") Bits () (? []@"math/big".Word) { return @"math/big".x·2.@"math/big".abs } + func (@"math/big".x·2 *@"math/big".Int "esc:0x1") Bytes () (? []byte) + func (@"math/big".x·2 *@"math/big".Int "esc:0x1") Cmp (@"math/big".y·3 *@"math/big".Int "esc:0x1") (@"math/big".r·1 int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Div (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·3 *@"math/big".Int "esc:0x1a") DivMod (@"math/big".x·4 *@"math/big".Int "esc:0x9", @"math/big".y·5 *@"math/big".Int "esc:0x9", @"math/big".m·6 *@"math/big".Int "esc:0x8a") (? *@"math/big".Int, ? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Exp (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x1", @"math/big".m·5 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".x·1 *@"math/big".Int "esc:0x9") Format (@"math/big".s·2 @"fmt".State, @"math/big".ch·3 rune) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") GCD (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9", @"math/big".a·5 *@"math/big".Int "esc:0x9", @"math/big".b·6 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x9") GobDecode (@"math/big".buf·3 []byte "esc:0x1") (? error) + func (@"math/big".x·3 *@"math/big".Int "esc:0x1") GobEncode () (? []byte, ? error) + func (@"math/big".x·2 *@"math/big".Int "esc:0x1") Int64 () (? int64) { var @"math/big".v·3 int64; ; @"math/big".v·3 = int64(@"math/big".low64(@"math/big".x·2.@"math/big".abs)); if @"math/big".x·2.@"math/big".neg { @"math/big".v·3 = -@"math/big".v·3 }; return @"math/big".v·3 } + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Lsh (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".n·4 uint) (? *@"math/big".Int) + func (@"math/big".x·3 *@"math/big".Int "esc:0x9") MarshalJSON () (? []byte, ? error) + func (@"math/big".x·3 *@"math/big".Int "esc:0x9") MarshalText () (@"math/big".text·1 []byte, @"math/big".err·2 error) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Mod (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") ModInverse (@"math/big".g·3 *@"math/big".Int "esc:0x9", @"math/big".n·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") ModSqrt (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".p·4 *@"math/big".Int) (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Mul (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") MulRange (@"math/big".a·3 int64, @"math/big".b·4 int64) (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Neg (@"math/big".x·3 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Not (@"math/big".x·3 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Or (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".x·2 *@"math/big".Int "esc:0x9") ProbablyPrime (@"math/big".n·3 int) (? bool) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Quo (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·3 *@"math/big".Int "esc:0x1a") QuoRem (@"math/big".x·4 *@"math/big".Int "esc:0x9", @"math/big".y·5 *@"math/big".Int "esc:0x9", @"math/big".r·6 *@"math/big".Int "esc:0x8a") (? *@"math/big".Int, ? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Rand (@"math/big".rnd·3 *@"math/rand".Rand "esc:0x9", @"math/big".n·4 *@"math/big".Int "esc:0x1") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Rem (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Rsh (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".n·4 uint) (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x9") Scan (@"math/big".s·3 @"fmt".ScanState, @"math/big".ch·4 rune) (? error) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Set (@"math/big".x·3 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") SetBit (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".i·4 int, @"math/big".b·5 uint) (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x12") SetBits (@"math/big".abs·3 []@"math/big".Word) (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") SetBytes (@"math/big".buf·3 []byte "esc:0x1") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") SetInt64 (@"math/big".x·3 int64) (? *@"math/big".Int) + func (@"math/big".z·3 *@"math/big".Int "esc:0x1a") SetString (@"math/big".s·4 string, @"math/big".base·5 int) (? *@"math/big".Int, ? bool) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") SetUint64 (@"math/big".x·3 uint64) (? *@"math/big".Int) + func (@"math/big".x·2 *@"math/big".Int "esc:0x1") Sign () (? int) { if len(@"math/big".x·2.@"math/big".abs) == int(0x0) { return int(0x0) }; if @"math/big".x·2.@"math/big".neg { return int(-0x1) }; return int(0x1) } + func (@"math/big".x·2 *@"math/big".Int "esc:0x9") String () (? string) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Sub (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".x·2 *@"math/big".Int "esc:0x9") Text (@"math/big".base·3 int) (? string) + func (@"math/big".x·2 *@"math/big".Int "esc:0x1") Uint64 () (? uint64) { return @"math/big".low64(@"math/big".x·2.@"math/big".abs) } + func (@"math/big".z·2 *@"math/big".Int "esc:0x9") UnmarshalJSON (@"math/big".text·3 []byte) (? error) + func (@"math/big".z·2 *@"math/big".Int "esc:0x9") UnmarshalText (@"math/big".text·3 []byte) (? error) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") Xor (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".y·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") @"math/big".binaryGCD (@"math/big".a·3 *@"math/big".Int "esc:0x9", @"math/big".b·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") @"math/big".modSqrt3Mod4Prime (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".p·4 *@"math/big".Int "esc:0x9") (? *@"math/big".Int) + func (@"math/big".z·2 *@"math/big".Int "esc:0x1a") @"math/big".modSqrtTonelliShanks (@"math/big".x·3 *@"math/big".Int "esc:0x9", @"math/big".p·4 *@"math/big".Int) (? *@"math/big".Int) + func (@"math/big".z·4 *@"math/big".Int "esc:0x1a") @"math/big".scan (@"math/big".r·5 @"io".ByteScanner, @"math/big".base·6 int) (? *@"math/big".Int, ? int, ? error) + import pkix "crypto/x509/pkix" // indirect + import asn1 "encoding/asn1" // indirect + type @"encoding/asn1".ObjectIdentifier []int + func (@"encoding/asn1".oi·2 @"encoding/asn1".ObjectIdentifier "esc:0x1") Equal (@"encoding/asn1".other·3 @"encoding/asn1".ObjectIdentifier "esc:0x1") (? bool) + func (@"encoding/asn1".oi·2 @"encoding/asn1".ObjectIdentifier "esc:0x1") String () (? string) + type @"crypto/x509/pkix".AttributeTypeAndValue struct { Type @"encoding/asn1".ObjectIdentifier; Value interface {} } + type @"crypto/x509/pkix".RelativeDistinguishedNameSET []@"crypto/x509/pkix".AttributeTypeAndValue + type @"crypto/x509/pkix".RDNSequence []@"crypto/x509/pkix".RelativeDistinguishedNameSET + type @"crypto/x509/pkix".Name struct { Country []string; Organization []string; OrganizationalUnit []string; Locality []string; Province []string; StreetAddress []string; PostalCode []string; SerialNumber string; CommonName string; Names []@"crypto/x509/pkix".AttributeTypeAndValue; ExtraNames []@"crypto/x509/pkix".AttributeTypeAndValue } + func (@"crypto/x509/pkix".n·1 *@"crypto/x509/pkix".Name "esc:0x9") FillFromRDNSequence (@"crypto/x509/pkix".rdns·2 *@"crypto/x509/pkix".RDNSequence "esc:0x9") + func (@"crypto/x509/pkix".n·2 @"crypto/x509/pkix".Name) ToRDNSequence () (@"crypto/x509/pkix".ret·1 @"crypto/x509/pkix".RDNSequence) + func (@"crypto/x509/pkix".n·2 @"crypto/x509/pkix".Name "esc:0x1") @"crypto/x509/pkix".appendRDNs (@"crypto/x509/pkix".in·3 @"crypto/x509/pkix".RDNSequence "esc:0x1a", @"crypto/x509/pkix".values·4 []string "esc:0x9", @"crypto/x509/pkix".oid·5 @"encoding/asn1".ObjectIdentifier) (? @"crypto/x509/pkix".RDNSequence) + import time "time" // indirect + type @"time".zone struct { @"time".name string; @"time".offset int; @"time".isDST bool } + type @"time".zoneTrans struct { @"time".when int64; @"time".index uint8; @"time".isstd bool; @"time".isutc bool } + type @"time".Location struct { @"time".name string; @"time".zone []@"time".zone; @"time".tx []@"time".zoneTrans; @"time".cacheStart int64; @"time".cacheEnd int64; @"time".cacheZone *@"time".zone } + func (@"time".l·2 *@"time".Location "esc:0x22") String () (? string) + func (@"time".l·2 *@"time".Location "esc:0x1") @"time".firstZoneUsed () (? bool) + func (@"time".l·2 *@"time".Location "esc:0x12") @"time".get () (? *@"time".Location) + func (@"time".l·6 *@"time".Location "esc:0x32") @"time".lookup (@"time".sec·7 int64) (@"time".name·1 string, @"time".offset·2 int, @"time".isDST·3 bool, @"time".start·4 int64, @"time".end·5 int64) + func (@"time".l·2 *@"time".Location "esc:0x1") @"time".lookupFirstZone () (? int) + func (@"time".l·4 *@"time".Location "esc:0x1") @"time".lookupName (@"time".name·5 string "esc:0x1", @"time".unix·6 int64) (@"time".offset·1 int, @"time".isDST·2 bool, @"time".ok·3 bool) + type @"time".Duration int64 + func (@"time".d·2 @"time".Duration) Hours () (? float64) { var @"time".hour·3 @"time".Duration; ; @"time".hour·3 = @"time".d·2 / @"time".Duration(0x34630b8a000); var @"time".nsec·4 @"time".Duration; ; @"time".nsec·4 = @"time".d·2 % @"time".Duration(0x34630b8a000); return float64(@"time".hour·3) + float64(@"time".nsec·4) * float64(8190022623310637111963488201822504381538623676021880892417778544696899264837610290203272971060556344039023584360473938041055625214280336402169897364226048p-553) } + func (@"time".d·2 @"time".Duration) Minutes () (? float64) { var @"time".min·3 @"time".Duration; ; @"time".min·3 = @"time".d·2 / @"time".Duration(0xdf8475800); var @"time".nsec·4 @"time".Duration; ; @"time".nsec·4 = @"time".d·2 % @"time".Duration(0xdf8475800); return float64(@"time".min·3) + float64(@"time".nsec·4) * float64(7678146209353722106395056769533233877065564876941352542109479049699919628723768656821910653339403201031675627614471533358284117434246264392176261853609984p-547) } + func (@"time".d·2 @"time".Duration) Nanoseconds () (? int64) { return int64(@"time".d·2) } + func (@"time".d·2 @"time".Duration) Seconds () (? float64) { var @"time".sec·3 @"time".Duration; ; @"time".sec·3 = @"time".d·2 / @"time".Duration(0x3b9aca00); var @"time".nsec·4 @"time".Duration; ; @"time".nsec·4 = @"time".d·2 % @"time".Duration(0x3b9aca00); return float64(@"time".sec·3) + float64(@"time".nsec·4) * float64(7198262071269114660816079141112770740375861891461678802759824945047098083990024106014198994535558872472104883612039846078596891298747423852523262413111296p-541) } + func (@"time".d·2 @"time".Duration) String () (? string) + type @"time".Month int + func (@"time".m·2 @"time".Month) String () (? string) { return @"time".months[@"time".m·2 - @"time".Month(0x1)] } + type @"time".Weekday int + func (@"time".d·2 @"time".Weekday) String () (? string) { return @"time".days[@"time".d·2] } + type @"time".Time struct { @"time".sec int64; @"time".nsec int32; @"time".loc *@"time".Location } + func (@"time".t·2 @"time".Time "esc:0x12") Add (@"time".d·3 @"time".Duration) (? @"time".Time) { @"time".t·2.@"time".sec += int64(@"time".d·3 / @"time".Duration(0x3b9aca00)); var @"time".nsec·4 int32; ; @"time".nsec·4 = int32(@"time".t·2.@"time".nsec) + int32(@"time".d·3 % @"time".Duration(0x3b9aca00)); if @"time".nsec·4 >= int32(0x3b9aca00) { @"time".t·2.@"time".sec++; @"time".nsec·4 -= int32(0x3b9aca00) } else { if @"time".nsec·4 < int32(0x0) { @"time".t·2.@"time".sec--; @"time".nsec·4 += int32(0x3b9aca00) } }; @"time".t·2.@"time".nsec = @"time".nsec·4; return @"time".t·2 } + func (@"time".t·2 @"time".Time "esc:0x12") AddDate (@"time".years·3 int, @"time".months·4 int, @"time".days·5 int) (? @"time".Time) + func (@"time".t·2 @"time".Time "esc:0x1") After (@"time".u·3 @"time".Time "esc:0x1") (? bool) { return @"time".t·2.@"time".sec > @"time".u·3.@"time".sec || @"time".t·2.@"time".sec == @"time".u·3.@"time".sec && @"time".t·2.@"time".nsec > @"time".u·3.@"time".nsec } + func (@"time".t·2 @"time".Time "esc:0x9") AppendFormat (@"time".b·3 []byte "esc:0x1a", @"time".layout·4 string "esc:0x9") (? []byte) + func (@"time".t·2 @"time".Time "esc:0x1") Before (@"time".u·3 @"time".Time "esc:0x1") (? bool) { return @"time".t·2.@"time".sec < @"time".u·3.@"time".sec || @"time".t·2.@"time".sec == @"time".u·3.@"time".sec && @"time".t·2.@"time".nsec < @"time".u·3.@"time".nsec } + func (@"time".t·4 @"time".Time "esc:0x1") Clock () (@"time".hour·1 int, @"time".min·2 int, @"time".sec·3 int) + func (@"time".t·4 @"time".Time "esc:0x1") Date () (@"time".year·1 int, @"time".month·2 @"time".Month, @"time".day·3 int) + func (@"time".t·2 @"time".Time "esc:0x1") Day () (? int) + func (@"time".t·2 @"time".Time "esc:0x1") Equal (@"time".u·3 @"time".Time "esc:0x1") (? bool) { return @"time".t·2.@"time".sec == @"time".u·3.@"time".sec && @"time".t·2.@"time".nsec == @"time".u·3.@"time".nsec } + func (@"time".t·2 @"time".Time "esc:0x9") Format (@"time".layout·3 string "esc:0x9") (? string) + func (@"time".t·2 *@"time".Time "esc:0x1") GobDecode (@"time".data·3 []byte "esc:0x1") (? error) + func (@"time".t·3 @"time".Time "esc:0x1") GobEncode () (? []byte, ? error) + func (@"time".t·2 @"time".Time "esc:0x1") Hour () (? int) + func (@"time".t·3 @"time".Time "esc:0x1") ISOWeek () (@"time".year·1 int, @"time".week·2 int) + func (@"time".t·2 @"time".Time "esc:0x12") In (@"time".loc·3 *@"time".Location "esc:0x12") (? @"time".Time) + func (@"time".t·2 @"time".Time "esc:0x1") IsZero () (? bool) { return @"time".t·2.@"time".sec == int64(0x0) && @"time".t·2.@"time".nsec == int32(0x0) } + func (@"time".t·2 @"time".Time "esc:0x12") Local () (? @"time".Time) { @"time".t·2.@"time".loc = @"time".Local; return @"time".t·2 } + func (@"time".t·2 @"time".Time "esc:0x12") Location () (? *@"time".Location) { var @"time".l·3 *@"time".Location; ; @"time".l·3 = @"time".t·2.@"time".loc; if @"time".l·3 == nil { @"time".l·3 = @"time".UTC }; return @"time".l·3 } + func (@"time".t·3 @"time".Time "esc:0x1") MarshalBinary () (? []byte, ? error) + func (@"time".t·3 @"time".Time "esc:0x9") MarshalJSON () (? []byte, ? error) + func (@"time".t·3 @"time".Time "esc:0x9") MarshalText () (? []byte, ? error) + func (@"time".t·2 @"time".Time "esc:0x1") Minute () (? int) + func (@"time".t·2 @"time".Time "esc:0x1") Month () (? @"time".Month) + func (@"time".t·2 @"time".Time "esc:0x1") Nanosecond () (? int) { return int(@"time".t·2.@"time".nsec) } + func (@"time".t·2 @"time".Time "esc:0x12") Round (@"time".d·3 @"time".Duration) (? @"time".Time) + func (@"time".t·2 @"time".Time "esc:0x1") Second () (? int) + func (@"time".t·2 @"time".Time "esc:0x9") String () (? string) + func (@"time".t·2 @"time".Time "esc:0x1") Sub (@"time".u·3 @"time".Time "esc:0x1") (? @"time".Duration) + func (@"time".t·2 @"time".Time "esc:0x12") Truncate (@"time".d·3 @"time".Duration) (? @"time".Time) + func (@"time".t·2 @"time".Time "esc:0x12") UTC () (? @"time".Time) { @"time".t·2.@"time".loc = @"time".UTC; return @"time".t·2 } + func (@"time".t·2 @"time".Time "esc:0x1") Unix () (? int64) { return @"time".t·2.@"time".sec + int64(-0xe7791f700) } + func (@"time".t·2 @"time".Time "esc:0x1") UnixNano () (? int64) { return (@"time".t·2.@"time".sec + int64(-0xe7791f700)) * int64(0x3b9aca00) + int64(@"time".t·2.@"time".nsec) } + func (@"time".t·2 *@"time".Time "esc:0x1") UnmarshalBinary (@"time".data·3 []byte "esc:0x1") (? error) + func (@"time".t·2 *@"time".Time "esc:0x1") UnmarshalJSON (@"time".data·3 []byte "esc:0x1") (@"time".err·1 error) + func (@"time".t·2 *@"time".Time "esc:0x1") UnmarshalText (@"time".data·3 []byte "esc:0x1") (@"time".err·1 error) + func (@"time".t·2 @"time".Time "esc:0x1") Weekday () (? @"time".Weekday) + func (@"time".t·2 @"time".Time "esc:0x1") Year () (? int) + func (@"time".t·2 @"time".Time "esc:0x1") YearDay () (? int) + func (@"time".t·3 @"time".Time "esc:0x32") Zone () (@"time".name·1 string, @"time".offset·2 int) + func (@"time".t·2 @"time".Time "esc:0x1") @"time".abs () (? uint64) + func (@"time".t·5 @"time".Time "esc:0x1") @"time".date (@"time".full·6 bool) (@"time".year·1 int, @"time".month·2 @"time".Month, @"time".day·3 int, @"time".yday·4 int) + func (@"time".t·4 @"time".Time "esc:0x32") @"time".locabs () (@"time".name·1 string, @"time".offset·2 int, @"time".abs·3 uint64) + type @"crypto/x509".KeyUsage int + type @"crypto/x509/pkix".Extension struct { Id @"encoding/asn1".ObjectIdentifier; Critical bool "asn1:\"optional\""; Value []byte } + type @"crypto/x509".ExtKeyUsage int + import net "net" // indirect + type @"net".IPMask []byte + func (@"net".m·3 @"net".IPMask "esc:0x1") Size () (@"net".ones·1 int, @"net".bits·2 int) + func (@"net".m·2 @"net".IPMask "esc:0x1") String () (? string) + type @"net".IP []byte + func (@"net".ip·2 @"net".IP "esc:0x1") DefaultMask () (? @"net".IPMask) + func (@"net".ip·2 @"net".IP "esc:0x1") Equal (@"net".x·3 @"net".IP "esc:0x1") (? bool) + func (@"net".ip·2 @"net".IP "esc:0x1") IsGlobalUnicast () (? bool) + func (@"net".ip·2 @"net".IP "esc:0x1") IsInterfaceLocalMulticast () (? bool) { return len(@"net".ip·2) == int(0x10) && @"net".ip·2[int(0x0)] == byte(0xff) && @"net".ip·2[int(0x1)] & byte(0xf) == byte(0x1) } + func (@"net".ip·2 @"net".IP "esc:0x1") IsLinkLocalMulticast () (? bool) + func (@"net".ip·2 @"net".IP "esc:0x1") IsLinkLocalUnicast () (? bool) + func (@"net".ip·2 @"net".IP "esc:0x1") IsLoopback () (? bool) + func (@"net".ip·2 @"net".IP "esc:0x1") IsMulticast () (? bool) + func (@"net".ip·2 @"net".IP "esc:0x1") IsUnspecified () (? bool) + func (@"net".ip·3 @"net".IP "esc:0x1") MarshalText () (? []byte, ? error) + func (@"net".ip·2 @"net".IP "esc:0x1") Mask (@"net".mask·3 @"net".IPMask "esc:0x1") (? @"net".IP) + func (@"net".ip·2 @"net".IP "esc:0x1") String () (? string) + func (@"net".ip·2 @"net".IP "esc:0x12") To16 () (? @"net".IP) { if len(@"net".ip·2) == int(0x4) { return @"net".IPv4(@"net".ip·2[int(0x0)], @"net".ip·2[int(0x1)], @"net".ip·2[int(0x2)], @"net".ip·2[int(0x3)]) }; if len(@"net".ip·2) == int(0x10) { return @"net".ip·2 }; return nil } + func (@"net".ip·2 @"net".IP "esc:0x12") To4 () (? @"net".IP) + func (@"net".ip·2 *@"net".IP "esc:0x1") UnmarshalText (@"net".text·3 []byte "esc:0x1") (? error) + type @"encoding/asn1".RawContent []byte + type @"encoding/asn1".RawValue struct { Class int; Tag int; IsCompound bool; Bytes []byte; FullBytes []byte } + type @"crypto/x509/pkix".AlgorithmIdentifier struct { Algorithm @"encoding/asn1".ObjectIdentifier; Parameters @"encoding/asn1".RawValue "asn1:\"optional\"" } + type @"crypto/x509/pkix".RevokedCertificate struct { SerialNumber *@"math/big".Int; RevocationTime @"time".Time; Extensions []@"crypto/x509/pkix".Extension "asn1:\"optional\"" } + type @"crypto/x509/pkix".TBSCertificateList struct { Raw @"encoding/asn1".RawContent; Version int "asn1:\"optional,default:1\""; Signature @"crypto/x509/pkix".AlgorithmIdentifier; Issuer @"crypto/x509/pkix".RDNSequence; ThisUpdate @"time".Time; NextUpdate @"time".Time "asn1:\"optional\""; RevokedCertificates []@"crypto/x509/pkix".RevokedCertificate "asn1:\"optional\""; Extensions []@"crypto/x509/pkix".Extension "asn1:\"tag:0,optional,explicit\"" } + type @"encoding/asn1".BitString struct { Bytes []byte; BitLength int } + func (@"encoding/asn1".b·2 @"encoding/asn1".BitString "esc:0x1") At (@"encoding/asn1".i·3 int) (? int) { if @"encoding/asn1".i·3 < int(0x0) || @"encoding/asn1".i·3 >= @"encoding/asn1".b·2.BitLength { return int(0x0) }; var @"encoding/asn1".x·4 int; ; @"encoding/asn1".x·4 = @"encoding/asn1".i·3 / int(0x8); var @"encoding/asn1".y·5 uint; ; @"encoding/asn1".y·5 = uint(0x7) - uint(@"encoding/asn1".i·3 % int(0x8)); return int(@"encoding/asn1".b·2.Bytes[@"encoding/asn1".x·4] >> @"encoding/asn1".y·5) & int(0x1) } + func (@"encoding/asn1".b·2 @"encoding/asn1".BitString "esc:0x12") RightAlign () (? []byte) + type @"crypto/x509/pkix".CertificateList struct { TBSCertList @"crypto/x509/pkix".TBSCertificateList; SignatureAlgorithm @"crypto/x509/pkix".AlgorithmIdentifier; SignatureValue @"encoding/asn1".BitString } + func (@"crypto/x509/pkix".certList·2 *@"crypto/x509/pkix".CertificateList "esc:0x1") HasExpired (@"crypto/x509/pkix".now·3 @"time".Time "esc:0x1") (? bool) { return @"crypto/x509/pkix".now·3.After(@"crypto/x509/pkix".certList·2.TBSCertList.NextUpdate) } + type @"io".Reader interface { Read(@"io".p []byte) (@"io".n int, @"io".err error) } + type @"crypto/x509".CertPool struct { @"crypto/x509".bySubjectKeyId map[string][]int; @"crypto/x509".byName map[string][]int; @"crypto/x509".certs []*@"crypto/x509".Certificate } + func (@"crypto/x509".s·1 *@"crypto/x509".CertPool "esc:0x9") AddCert (@"crypto/x509".cert·2 *@"crypto/x509".Certificate) + func (@"crypto/x509".s·2 *@"crypto/x509".CertPool "esc:0x9") AppendCertsFromPEM (@"crypto/x509".pemCerts·3 []byte) (@"crypto/x509".ok·1 bool) + func (@"crypto/x509".s·2 *@"crypto/x509".CertPool "esc:0x9") Subjects () (@"crypto/x509".res·1 [][]byte) + func (@"crypto/x509".s·4 *@"crypto/x509".CertPool "esc:0x18a") @"crypto/x509".findVerifiedParents (@"crypto/x509".cert·5 *@"crypto/x509".Certificate "esc:0x9") (@"crypto/x509".parents·1 []int, @"crypto/x509".errCert·2 *@"crypto/x509".Certificate, @"crypto/x509".err·3 error) + type @"crypto/x509".VerifyOptions struct { DNSName string; Intermediates *@"crypto/x509".CertPool; Roots *@"crypto/x509".CertPool; CurrentTime @"time".Time; KeyUsages []@"crypto/x509".ExtKeyUsage } + type @"crypto/x509".Certificate struct { Raw []byte; RawTBSCertificate []byte; RawSubjectPublicKeyInfo []byte; RawSubject []byte; RawIssuer []byte; Signature []byte; SignatureAlgorithm @"crypto/x509".SignatureAlgorithm; PublicKeyAlgorithm @"crypto/x509".PublicKeyAlgorithm; PublicKey interface {}; Version int; SerialNumber *@"math/big".Int; Issuer @"crypto/x509/pkix".Name; Subject @"crypto/x509/pkix".Name; NotBefore @"time".Time; NotAfter @"time".Time; KeyUsage @"crypto/x509".KeyUsage; Extensions []@"crypto/x509/pkix".Extension; ExtraExtensions []@"crypto/x509/pkix".Extension; UnhandledCriticalExtensions []@"encoding/asn1".ObjectIdentifier; ExtKeyUsage []@"crypto/x509".ExtKeyUsage; UnknownExtKeyUsage []@"encoding/asn1".ObjectIdentifier; BasicConstraintsValid bool; IsCA bool; MaxPathLen int; MaxPathLenZero bool; SubjectKeyId []byte; AuthorityKeyId []byte; OCSPServer []string; IssuingCertificateURL []string; DNSNames []string; EmailAddresses []string; IPAddresses []@"net".IP; PermittedDNSDomainsCritical bool; PermittedDNSDomains []string; CRLDistributionPoints []string; PolicyIdentifiers []@"encoding/asn1".ObjectIdentifier } + func (@"crypto/x509".c·2 *@"crypto/x509".Certificate "esc:0x9") CheckCRLSignature (@"crypto/x509".crl·3 *@"crypto/x509/pkix".CertificateList "esc:0x9") (@"crypto/x509".err·1 error) + func (@"crypto/x509".c·2 *@"crypto/x509".Certificate "esc:0x9") CheckSignature (@"crypto/x509".algo·3 @"crypto/x509".SignatureAlgorithm, @"crypto/x509".signed·4 []byte, @"crypto/x509".signature·5 []byte) (@"crypto/x509".err·1 error) + func (@"crypto/x509".c·2 *@"crypto/x509".Certificate "esc:0x9") CheckSignatureFrom (@"crypto/x509".parent·3 *@"crypto/x509".Certificate "esc:0x9") (@"crypto/x509".err·1 error) + func (@"crypto/x509".c·3 *@"crypto/x509".Certificate "esc:0x9") CreateCRL (@"crypto/x509".rand·4 @"io".Reader, @"crypto/x509".priv·5 interface {}, @"crypto/x509".revokedCerts·6 []@"crypto/x509/pkix".RevokedCertificate, @"crypto/x509".now·7 @"time".Time, @"crypto/x509".expiry·8 @"time".Time) (@"crypto/x509".crlBytes·1 []byte, @"crypto/x509".err·2 error) + func (@"crypto/x509".c·2 *@"crypto/x509".Certificate "esc:0x1") Equal (@"crypto/x509".other·3 *@"crypto/x509".Certificate "esc:0x1") (? bool) + func (@"crypto/x509".c·3 *@"crypto/x509".Certificate) Verify (@"crypto/x509".opts·4 @"crypto/x509".VerifyOptions) (@"crypto/x509".chains·1 [][]*@"crypto/x509".Certificate, @"crypto/x509".err·2 error) + func (@"crypto/x509".c·2 *@"crypto/x509".Certificate "esc:0x1a") VerifyHostname (@"crypto/x509".h·3 string) (? error) + func (@"crypto/x509".c·3 *@"crypto/x509".Certificate) @"crypto/x509".buildChains (@"crypto/x509".cache·4 map[int][][]*@"crypto/x509".Certificate "esc:0x1", @"crypto/x509".currentChain·5 []*@"crypto/x509".Certificate "esc:0x9", @"crypto/x509".opts·6 *@"crypto/x509".VerifyOptions "esc:0x20a") (@"crypto/x509".chains·1 [][]*@"crypto/x509".Certificate, @"crypto/x509".err·2 error) + func (@"crypto/x509".c·2 *@"crypto/x509".Certificate "esc:0x12") @"crypto/x509".isValid (@"crypto/x509".certType·3 int, @"crypto/x509".currentChain·4 []*@"crypto/x509".Certificate "esc:0x1", @"crypto/x509".opts·5 *@"crypto/x509".VerifyOptions "esc:0x1") (? error) + func (@"crypto/x509".c·3 *@"crypto/x509".Certificate "esc:0x82") @"crypto/x509".systemVerify (@"crypto/x509".opts·4 *@"crypto/x509".VerifyOptions "esc:0x102") (@"crypto/x509".chains·1 [][]*@"crypto/x509".Certificate, @"crypto/x509".err·2 error) + type @"crypto/tls".ConnectionState struct { Version uint16; HandshakeComplete bool; DidResume bool; CipherSuite uint16; NegotiatedProtocol string; NegotiatedProtocolIsMutual bool; ServerName string; PeerCertificates []*@"crypto/x509".Certificate; VerifiedChains [][]*@"crypto/x509".Certificate; SignedCertificateTimestamps [][]byte; OCSPResponse []byte; TLSUnique []byte } + type @"net/http".Cookie struct { Name string; Value string; Path string; Domain string; Expires @"time".Time; RawExpires string; MaxAge int; Secure bool; HttpOnly bool; Raw string; Unparsed []string } + func (@"net/http".c·2 *@"net/http".Cookie "esc:0x9") String () (? string) + import bufio "bufio" // indirect + type @"bufio".Reader struct { @"bufio".buf []byte; @"bufio".rd @"io".Reader; @"bufio".r int; @"bufio".w int; @"bufio".err error; @"bufio".lastByte int; @"bufio".lastRuneSize int } + func (@"bufio".b·2 *@"bufio".Reader "esc:0x1") Buffered () (? int) { return @"bufio".b·2.@"bufio".w - @"bufio".b·2.@"bufio".r } + func (@"bufio".b·3 *@"bufio".Reader "esc:0x10a") Discard (@"bufio".n·4 int) (@"bufio".discarded·1 int, @"bufio".err·2 error) + func (@"bufio".b·3 *@"bufio".Reader "esc:0x12a") Peek (@"bufio".n·4 int) (? []byte, ? error) + func (@"bufio".b·3 *@"bufio".Reader "esc:0x10a") Read (@"bufio".p·4 []byte) (@"bufio".n·1 int, @"bufio".err·2 error) + func (@"bufio".b·3 *@"bufio".Reader "esc:0x10a") ReadByte () (@"bufio".c·1 byte, @"bufio".err·2 error) + func (@"bufio".b·3 *@"bufio".Reader "esc:0x10a") ReadBytes (@"bufio".delim·4 byte) (@"bufio".line·1 []byte, @"bufio".err·2 error) + func (@"bufio".b·4 *@"bufio".Reader "esc:0x82a") ReadLine () (@"bufio".line·1 []byte, @"bufio".isPrefix·2 bool, @"bufio".err·3 error) + func (@"bufio".b·4 *@"bufio".Reader "esc:0x80a") ReadRune () (@"bufio".r·1 rune, @"bufio".size·2 int, @"bufio".err·3 error) + func (@"bufio".b·3 *@"bufio".Reader "esc:0x12a") ReadSlice (@"bufio".delim·4 byte) (@"bufio".line·1 []byte, @"bufio".err·2 error) + func (@"bufio".b·3 *@"bufio".Reader "esc:0x10a") ReadString (@"bufio".delim·4 byte) (@"bufio".line·1 string, @"bufio".err·2 error) + func (@"bufio".b·1 *@"bufio".Reader "esc:0x9") Reset (@"bufio".r·2 @"io".Reader) { @"bufio".b·1.@"bufio".reset(@"bufio".b·1.@"bufio".buf, @"bufio".r·2) } + func (@"bufio".b·2 *@"bufio".Reader "esc:0x1") UnreadByte () (? error) { if @"bufio".b·2.@"bufio".lastByte < int(0x0) || @"bufio".b·2.@"bufio".r == int(0x0) && @"bufio".b·2.@"bufio".w > int(0x0) { return @"bufio".ErrInvalidUnreadByte }; if @"bufio".b·2.@"bufio".r > int(0x0) { @"bufio".b·2.@"bufio".r-- } else { @"bufio".b·2.@"bufio".w = int(0x1) }; @"bufio".b·2.@"bufio".buf[@"bufio".b·2.@"bufio".r] = byte(@"bufio".b·2.@"bufio".lastByte); @"bufio".b·2.@"bufio".lastByte = int(-0x1); @"bufio".b·2.@"bufio".lastRuneSize = int(-0x1); return nil } + func (@"bufio".b·2 *@"bufio".Reader "esc:0x1") UnreadRune () (? error) { if @"bufio".b·2.@"bufio".lastRuneSize < int(0x0) || @"bufio".b·2.@"bufio".r < @"bufio".b·2.@"bufio".lastRuneSize { return @"bufio".ErrInvalidUnreadRune }; @"bufio".b·2.@"bufio".r -= @"bufio".b·2.@"bufio".lastRuneSize; @"bufio".b·2.@"bufio".lastByte = int(-0x1); @"bufio".b·2.@"bufio".lastRuneSize = int(-0x1); return nil } + func (@"bufio".b·3 *@"bufio".Reader "esc:0x10a") WriteTo (@"bufio".w·4 @"io".Writer) (@"bufio".n·1 int64, @"bufio".err·2 error) + func (@"bufio".b·1 *@"bufio".Reader "esc:0x9") @"bufio".fill () + func (@"bufio".b·2 *@"bufio".Reader "esc:0x22") @"bufio".readErr () (? error) { var @"bufio".err·3 error; ; @"bufio".err·3 = @"bufio".b·2.@"bufio".err; @"bufio".b·2.@"bufio".err = nil; return @"bufio".err·3 } + func (@"bufio".b·1 *@"bufio".Reader "esc:0x1") @"bufio".reset (@"bufio".buf·2 []byte, @"bufio".r·3 @"io".Reader) { *@"bufio".b·1 = (@"bufio".Reader{ @"bufio".buf:@"bufio".buf·2, @"bufio".rd:@"bufio".r·3, @"bufio".lastByte:int(-0x1), @"bufio".lastRuneSize:int(-0x1) }) } + func (@"bufio".b·3 *@"bufio".Reader "esc:0x9") @"bufio".writeBuf (@"bufio".w·4 @"io".Writer) (? int64, ? error) + import bytes "bytes" // indirect + type @"bytes".readOp int + type @"bytes".Buffer struct { @"bytes".buf []byte; @"bytes".off int; @"bytes".runeBytes [4]byte; @"bytes".bootstrap [64]byte; @"bytes".lastRead @"bytes".readOp } + func (@"bytes".b·2 *@"bytes".Buffer "esc:0x22") Bytes () (? []byte) { return @"bytes".b·2.@"bytes".buf[@"bytes".b·2.@"bytes".off:] } + func (@"bytes".b·2 *@"bytes".Buffer "esc:0x1") Cap () (? int) { return cap(@"bytes".b·2.@"bytes".buf) } + func (@"bytes".b·1 *@"bytes".Buffer) Grow (@"bytes".n·2 int) + func (@"bytes".b·2 *@"bytes".Buffer "esc:0x1") Len () (? int) { return len(@"bytes".b·2.@"bytes".buf) - @"bytes".b·2.@"bytes".off } + func (@"bytes".b·2 *@"bytes".Buffer "esc:0x22") Next (@"bytes".n·3 int) (? []byte) { @"bytes".b·2.@"bytes".lastRead = @"bytes".readOp(0x0); var @"bytes".m·4 int; ; @"bytes".m·4 = @"bytes".b·2.Len(); if @"bytes".n·3 > @"bytes".m·4 { @"bytes".n·3 = @"bytes".m·4 }; var @"bytes".data·5 []byte; ; @"bytes".data·5 = @"bytes".b·2.@"bytes".buf[@"bytes".b·2.@"bytes".off:@"bytes".b·2.@"bytes".off + @"bytes".n·3]; @"bytes".b·2.@"bytes".off += @"bytes".n·3; if @"bytes".n·3 > int(0x0) { @"bytes".b·2.@"bytes".lastRead = @"bytes".readOp(0x2) }; return @"bytes".data·5 } + func (@"bytes".b·3 *@"bytes".Buffer "esc:0x9") Read (@"bytes".p·4 []byte "esc:0x1") (@"bytes".n·1 int, @"bytes".err·2 error) + func (@"bytes".b·3 *@"bytes".Buffer "esc:0x1") ReadByte () (@"bytes".c·1 byte, @"bytes".err·2 error) + func (@"bytes".b·3 *@"bytes".Buffer "esc:0x9") ReadBytes (@"bytes".delim·4 byte) (@"bytes".line·1 []byte, @"bytes".err·2 error) + func (@"bytes".b·3 *@"bytes".Buffer "esc:0x9") ReadFrom (@"bytes".r·4 @"io".Reader) (@"bytes".n·1 int64, @"bytes".err·2 error) + func (@"bytes".b·4 *@"bytes".Buffer "esc:0x1") ReadRune () (@"bytes".r·1 rune, @"bytes".size·2 int, @"bytes".err·3 error) + func (@"bytes".b·3 *@"bytes".Buffer "esc:0x1") ReadString (@"bytes".delim·4 byte) (@"bytes".line·1 string, @"bytes".err·2 error) + func (@"bytes".b·1 *@"bytes".Buffer "esc:0x1") Reset () + func (@"bytes".b·2 *@"bytes".Buffer "esc:0x1") String () (? string) { if @"bytes".b·2 == nil { return string("") }; return string(@"bytes".b·2.@"bytes".buf[@"bytes".b·2.@"bytes".off:]) } + func (@"bytes".b·1 *@"bytes".Buffer "esc:0x1") Truncate (@"bytes".n·2 int) + func (@"bytes".b·2 *@"bytes".Buffer "esc:0x1") UnreadByte () (? error) { if @"bytes".b·2.@"bytes".lastRead != @"bytes".readOp(0x1) && @"bytes".b·2.@"bytes".lastRead != @"bytes".readOp(0x2) { return @"errors".New(string("bytes.Buffer: UnreadByte: previous operation was not a read")) }; @"bytes".b·2.@"bytes".lastRead = @"bytes".readOp(0x0); if @"bytes".b·2.@"bytes".off > int(0x0) { @"bytes".b·2.@"bytes".off-- }; return nil } + func (@"bytes".b·2 *@"bytes".Buffer "esc:0x1") UnreadRune () (? error) + func (@"bytes".b·3 *@"bytes".Buffer) Write (@"bytes".p·4 []byte "esc:0x9") (@"bytes".n·1 int, @"bytes".err·2 error) + func (@"bytes".b·2 *@"bytes".Buffer) WriteByte (@"bytes".c·3 byte) (? error) + func (@"bytes".b·3 *@"bytes".Buffer) WriteRune (@"bytes".r·4 rune) (@"bytes".n·1 int, @"bytes".err·2 error) + func (@"bytes".b·3 *@"bytes".Buffer) WriteString (@"bytes".s·4 string "esc:0x9") (@"bytes".n·1 int, @"bytes".err·2 error) + func (@"bytes".b·3 *@"bytes".Buffer "esc:0x9") WriteTo (@"bytes".w·4 @"io".Writer) (@"bytes".n·1 int64, @"bytes".err·2 error) + func (@"bytes".b·2 *@"bytes".Buffer) @"bytes".grow (@"bytes".n·3 int) (? int) + func (@"bytes".b·3 *@"bytes".Buffer "esc:0x22") @"bytes".readSlice (@"bytes".delim·4 byte) (@"bytes".line·1 []byte, @"bytes".err·2 error) + type @"mime/multipart".Part struct { Header @"net/textproto".MIMEHeader; @"mime/multipart".buffer *@"bytes".Buffer; @"mime/multipart".mr *@"mime/multipart".Reader; @"mime/multipart".bytesRead int; @"mime/multipart".disposition string; @"mime/multipart".dispositionParams map[string]string; @"mime/multipart".r @"io".Reader } + func (@"mime/multipart".p·2 *@"mime/multipart".Part) Close () (? error) + func (@"mime/multipart".p·2 *@"mime/multipart".Part "esc:0x1") FileName () (? string) + func (@"mime/multipart".p·2 *@"mime/multipart".Part "esc:0x1") FormName () (? string) + func (@"mime/multipart".p·3 *@"mime/multipart".Part "esc:0x9") Read (@"mime/multipart".d·4 []byte) (@"mime/multipart".n·1 int, @"mime/multipart".err·2 error) + func (@"mime/multipart".p·1 *@"mime/multipart".Part "esc:0x1") @"mime/multipart".parseContentDisposition () + func (@"mime/multipart".bp·2 *@"mime/multipart".Part "esc:0x4a") @"mime/multipart".populateHeaders () (? error) + type @"mime/multipart".Reader struct { @"mime/multipart".bufReader *@"bufio".Reader; @"mime/multipart".currentPart *@"mime/multipart".Part; @"mime/multipart".partsRead int; @"mime/multipart".nl []byte; @"mime/multipart".nlDashBoundary []byte; @"mime/multipart".dashBoundaryDash []byte; @"mime/multipart".dashBoundary []byte } + func (@"mime/multipart".r·3 *@"mime/multipart".Reader) NextPart () (? *@"mime/multipart".Part, ? error) + func (@"mime/multipart".r·3 *@"mime/multipart".Reader) ReadForm (@"mime/multipart".maxMemory·4 int64) (@"mime/multipart".f·1 *@"mime/multipart".Form, @"mime/multipart".err·2 error) + func (@"mime/multipart".mr·2 *@"mime/multipart".Reader "esc:0x1") @"mime/multipart".isBoundaryDelimiterLine (@"mime/multipart".line·3 []byte "esc:0x1") (@"mime/multipart".ret·1 bool) + func (@"mime/multipart".mr·2 *@"mime/multipart".Reader "esc:0x1") @"mime/multipart".isFinalBoundary (@"mime/multipart".line·3 []byte "esc:0x1") (? bool) + func (@"mime/multipart".mr·2 *@"mime/multipart".Reader "esc:0x1") @"mime/multipart".peekBufferIsEmptyPart (@"mime/multipart".peek·3 []byte "esc:0x1") (? bool) + func (@"mime/multipart".mr·3 *@"mime/multipart".Reader "esc:0x1") @"mime/multipart".peekBufferSeparatorIndex (@"mime/multipart".peek·4 []byte "esc:0x1") (@"mime/multipart".idx·1 int, @"mime/multipart".isEnd·2 bool) + type @"net/http".Request struct { Method string; URL *@"net/url".URL; Proto string; ProtoMajor int; ProtoMinor int; Header @"net/http".Header; Body @"io".ReadCloser; ContentLength int64; TransferEncoding []string; Close bool; Host string; Form @"net/url".Values; PostForm @"net/url".Values; MultipartForm *@"mime/multipart".Form; Trailer @"net/http".Header; RemoteAddr string; RequestURI string; TLS *@"crypto/tls".ConnectionState; Cancel <-chan struct {} } + func (@"net/http".r·1 *@"net/http".Request "esc:0x1") AddCookie (@"net/http".c·2 *@"net/http".Cookie "esc:0x9") + func (@"net/http".r·4 *@"net/http".Request "esc:0x1") BasicAuth () (@"net/http".username·1 string, @"net/http".password·2 string, @"net/http".ok·3 bool) + func (@"net/http".r·3 *@"net/http".Request "esc:0x1") Cookie (@"net/http".name·4 string "esc:0x1") (? *@"net/http".Cookie, ? error) + func (@"net/http".r·2 *@"net/http".Request "esc:0x1") Cookies () (? []*@"net/http".Cookie) + func (@"net/http".r·4 *@"net/http".Request) FormFile (@"net/http".key·5 string "esc:0x1") (? @"mime/multipart".File, ? *@"mime/multipart".FileHeader, ? error) + func (@"net/http".r·2 *@"net/http".Request) FormValue (@"net/http".key·3 string "esc:0x1") (? string) + func (@"net/http".r·3 *@"net/http".Request) MultipartReader () (? *@"mime/multipart".Reader, ? error) + func (@"net/http".r·2 *@"net/http".Request "esc:0x9") ParseForm () (? error) + func (@"net/http".r·2 *@"net/http".Request) ParseMultipartForm (@"net/http".maxMemory·3 int64) (? error) + func (@"net/http".r·2 *@"net/http".Request) PostFormValue (@"net/http".key·3 string "esc:0x1") (? string) + func (@"net/http".r·2 *@"net/http".Request "esc:0x1") ProtoAtLeast (@"net/http".major·3 int, @"net/http".minor·4 int) (? bool) { return @"net/http".r·2.ProtoMajor > @"net/http".major·3 || @"net/http".r·2.ProtoMajor == @"net/http".major·3 && @"net/http".r·2.ProtoMinor >= @"net/http".minor·4 } + func (@"net/http".r·2 *@"net/http".Request "esc:0x1") Referer () (? string) + func (@"net/http".r·1 *@"net/http".Request "esc:0x1") SetBasicAuth (@"net/http".username·2 string "esc:0x1", @"net/http".password·3 string "esc:0x1") + func (@"net/http".r·2 *@"net/http".Request "esc:0x1") UserAgent () (? string) + func (@"net/http".r·2 *@"net/http".Request "esc:0x9") Write (@"net/http".w·3 @"io".Writer) (? error) + func (@"net/http".r·2 *@"net/http".Request "esc:0x9") WriteProxy (@"net/http".w·3 @"io".Writer) (? error) + func (@"net/http".r·1 *@"net/http".Request "esc:0x9") @"net/http".closeBody () + func (@"net/http".r·2 *@"net/http".Request "esc:0x1") @"net/http".expectsContinue () (? bool) + func (@"net/http".r·2 *@"net/http".Request "esc:0x1") @"net/http".isReplayable () (? bool) + func (@"net/http".r·3 *@"net/http".Request) @"net/http".multipartReader () (? *@"mime/multipart".Reader, ? error) + func (@"net/http".r·2 *@"net/http".Request "esc:0x1") @"net/http".wantsClose () (? bool) + func (@"net/http".r·2 *@"net/http".Request "esc:0x1") @"net/http".wantsHttp10KeepAlive () (? bool) + func (@"net/http".req·2 *@"net/http".Request "esc:0x9") @"net/http".write (@"net/http".w·3 @"io".Writer, @"net/http".usingProxy·4 bool, @"net/http".extraHeaders·5 @"net/http".Header "esc:0x9", @"net/http".waitForContinue·6 func() (? bool) "esc:0x1") (? error) + type @"github.com/mholt/caddy/caddyhttp/httpserver".Handler interface { ServeHTTP(? @"net/http".ResponseWriter, ? *@"net/http".Request) (? int, ? error) } + type @"os".FileMode uint32 + func (@"os".m·2 @"os".FileMode) IsDir () (? bool) { return @"os".m·2 & @"os".FileMode(0x80000000) != @"os".FileMode(0x0) } + func (@"os".m·2 @"os".FileMode) IsRegular () (? bool) { return @"os".m·2 & @"os".FileMode(0x8f000000) == @"os".FileMode(0x0) } + func (@"os".m·2 @"os".FileMode) Perm () (? @"os".FileMode) { return @"os".m·2 & @"os".FileMode(0x1ff) } + func (@"os".m·2 @"os".FileMode) String () (? string) + type @"os".FileInfo interface { IsDir() (? bool); ModTime() (? @"time".Time); Mode() (? @"os".FileMode); Name() (? string); Size() (? int64); Sys() (? interface {}) } + type @"net/http".File interface { Close() (? error); Read(@"io".p []byte) (@"io".n int, @"io".err error); Readdir(@"net/http".count int) (? []@"os".FileInfo, ? error); Seek(@"io".offset int64, @"io".whence int) (? int64, ? error); Stat() (? @"os".FileInfo, ? error) } + type @"net/http".FileSystem interface { Open(@"net/http".name string) (? @"net/http".File, ? error) } + import regexp "regexp" // indirect + import syntax "regexp/syntax" // indirect + type @"regexp/syntax".InstOp uint8 + func (@"regexp/syntax".i·2 @"regexp/syntax".InstOp) String () (? string) { if uint(@"regexp/syntax".i·2) >= uint(len(@"regexp/syntax".instOpNames)) { return string("") }; return @"regexp/syntax".instOpNames[@"regexp/syntax".i·2] } + type @"regexp/syntax".Inst struct { Op @"regexp/syntax".InstOp; Out uint32; Arg uint32; Rune []rune } + func (@"regexp/syntax".i·2 *@"regexp/syntax".Inst "esc:0x1") MatchEmptyWidth (@"regexp/syntax".before·3 rune, @"regexp/syntax".after·4 rune) (? bool) + func (@"regexp/syntax".i·2 *@"regexp/syntax".Inst "esc:0x1") MatchRune (@"regexp/syntax".r·3 rune) (? bool) + func (@"regexp/syntax".i·2 *@"regexp/syntax".Inst "esc:0x1") MatchRunePos (@"regexp/syntax".r·3 rune) (? int) + func (@"regexp/syntax".i·2 *@"regexp/syntax".Inst "esc:0x1") String () (? string) + func (@"regexp/syntax".i·2 *@"regexp/syntax".Inst "esc:0x1") @"regexp/syntax".op () (? @"regexp/syntax".InstOp) + type @"regexp/syntax".EmptyOp uint8 + type @"regexp/syntax".Prog struct { Inst []@"regexp/syntax".Inst; Start int; NumCap int } + func (@"regexp/syntax".p·3 *@"regexp/syntax".Prog "esc:0x1") Prefix () (@"regexp/syntax".prefix·1 string, @"regexp/syntax".complete·2 bool) + func (@"regexp/syntax".p·2 *@"regexp/syntax".Prog "esc:0x1") StartCond () (? @"regexp/syntax".EmptyOp) + func (@"regexp/syntax".p·2 *@"regexp/syntax".Prog "esc:0x1") String () (? string) + func (@"regexp/syntax".p·3 *@"regexp/syntax".Prog "esc:0x22") @"regexp/syntax".skipNop (@"regexp/syntax".pc·4 uint32) (? *@"regexp/syntax".Inst, ? uint32) + type @"regexp".onePassInst struct { ? @"regexp/syntax".Inst; Next []uint32 } + type @"regexp".onePassProg struct { Inst []@"regexp".onePassInst; Start int; NumCap int } + import sync "sync" // indirect + type @"sync".Mutex struct { @"sync".state int32; @"sync".sema uint32 } + func (@"sync".m·1 *@"sync".Mutex) Lock () + func (@"sync".m·1 *@"sync".Mutex) Unlock () + type @"regexp".input interface { @"regexp".canCheckPrefix() (? bool); @"regexp".context(@"regexp".pos int) (? @"regexp/syntax".EmptyOp); @"regexp".hasPrefix(@"regexp".re *@"regexp".Regexp) (? bool); @"regexp".index(@"regexp".re *@"regexp".Regexp, @"regexp".pos int) (? int); @"regexp".step(@"regexp".pos int) (@"regexp".r rune, @"regexp".width int) } + type @"regexp".job struct { @"regexp".pc uint32; @"regexp".arg int; @"regexp".pos int } + type @"regexp".bitState struct { @"regexp".prog *@"regexp/syntax".Prog; @"regexp".end int; @"regexp".cap []int; @"regexp".input @"regexp".input; @"regexp".jobs []@"regexp".job; @"regexp".visited []uint32 } + func (@"regexp".b·1 *@"regexp".bitState "esc:0x9") @"regexp".push (@"regexp".pc·2 uint32, @"regexp".pos·3 int, @"regexp".arg·4 int) + func (@"regexp".b·1 *@"regexp".bitState "esc:0x1") @"regexp".reset (@"regexp".end·2 int, @"regexp".ncap·3 int) + func (@"regexp".b·2 *@"regexp".bitState "esc:0x1") @"regexp".shouldVisit (@"regexp".pc·3 uint32, @"regexp".pos·4 int) (? bool) { var @"regexp".n·5 uint; ; @"regexp".n·5 = uint(int(@"regexp".pc·3) * (@"regexp".b·2.@"regexp".end + int(0x1)) + @"regexp".pos·4); if @"regexp".b·2.@"regexp".visited[@"regexp".n·5 / uint(0x20)] & (uint32(0x1) << (@"regexp".n·5 & uint(0x1f))) != uint32(0x0) { return bool(false) }; @"regexp".b·2.@"regexp".visited[@"regexp".n·5 / uint(0x20)] |= uint32(0x1) << (@"regexp".n·5 & uint(0x1f)); return bool(true) } + type @"regexp".thread struct { @"regexp".inst *@"regexp/syntax".Inst; @"regexp".cap []int } + type @"regexp".entry struct { @"regexp".pc uint32; @"regexp".t *@"regexp".thread } + type @"regexp".queue struct { @"regexp".sparse []uint32; @"regexp".dense []@"regexp".entry } + type @"regexp".inputBytes struct { @"regexp".str []byte } + func (@"regexp".i·2 *@"regexp".inputBytes "esc:0x1") @"regexp".canCheckPrefix () (? bool) { return bool(true) } + func (@"regexp".i·2 *@"regexp".inputBytes "esc:0x1") @"regexp".context (@"regexp".pos·3 int) (? @"regexp/syntax".EmptyOp) + func (@"regexp".i·2 *@"regexp".inputBytes "esc:0x1") @"regexp".hasPrefix (@"regexp".re·3 *@"regexp".Regexp "esc:0x1") (? bool) + func (@"regexp".i·2 *@"regexp".inputBytes "esc:0x1") @"regexp".index (@"regexp".re·3 *@"regexp".Regexp "esc:0x1", @"regexp".pos·4 int) (? int) + func (@"regexp".i·3 *@"regexp".inputBytes "esc:0x1") @"regexp".step (@"regexp".pos·4 int) (? rune, ? int) + type @"regexp".inputString struct { @"regexp".str string } + func (@"regexp".i·2 *@"regexp".inputString "esc:0x1") @"regexp".canCheckPrefix () (? bool) { return bool(true) } + func (@"regexp".i·2 *@"regexp".inputString "esc:0x1") @"regexp".context (@"regexp".pos·3 int) (? @"regexp/syntax".EmptyOp) + func (@"regexp".i·2 *@"regexp".inputString "esc:0x1") @"regexp".hasPrefix (@"regexp".re·3 *@"regexp".Regexp "esc:0x1") (? bool) { return @"strings".HasPrefix(@"regexp".i·2.@"regexp".str, @"regexp".re·3.@"regexp".prefix) } + func (@"regexp".i·2 *@"regexp".inputString "esc:0x9") @"regexp".index (@"regexp".re·3 *@"regexp".Regexp "esc:0x9", @"regexp".pos·4 int) (? int) + func (@"regexp".i·3 *@"regexp".inputString "esc:0x1") @"regexp".step (@"regexp".pos·4 int) (? rune, ? int) + type @"io".RuneReader interface { ReadRune() (@"io".r rune, @"io".size int, @"io".err error) } + type @"regexp".inputReader struct { @"regexp".r @"io".RuneReader; @"regexp".atEOT bool; @"regexp".pos int } + func (@"regexp".i·2 *@"regexp".inputReader "esc:0x1") @"regexp".canCheckPrefix () (? bool) { return bool(false) } + func (@"regexp".i·2 *@"regexp".inputReader "esc:0x1") @"regexp".context (@"regexp".pos·3 int) (? @"regexp/syntax".EmptyOp) { return @"regexp/syntax".EmptyOp(0x0) } + func (@"regexp".i·2 *@"regexp".inputReader "esc:0x1") @"regexp".hasPrefix (@"regexp".re·3 *@"regexp".Regexp "esc:0x1") (? bool) { return bool(false) } + func (@"regexp".i·2 *@"regexp".inputReader "esc:0x1") @"regexp".index (@"regexp".re·3 *@"regexp".Regexp "esc:0x1", @"regexp".pos·4 int) (? int) { return int(-0x1) } + func (@"regexp".i·3 *@"regexp".inputReader "esc:0x9") @"regexp".step (@"regexp".pos·4 int) (? rune, ? int) + type @"regexp".machine struct { @"regexp".re *@"regexp".Regexp; @"regexp".p *@"regexp/syntax".Prog; @"regexp".op *@"regexp".onePassProg; @"regexp".maxBitStateLen int; @"regexp".b *@"regexp".bitState; @"regexp".q0 @"regexp".queue; @"regexp".q1 @"regexp".queue; @"regexp".pool []*@"regexp".thread; @"regexp".matched bool; @"regexp".matchcap []int; @"regexp".inputBytes @"regexp".inputBytes; @"regexp".inputString @"regexp".inputString; @"regexp".inputReader @"regexp".inputReader } + func (@"regexp".m·2 *@"regexp".machine "esc:0x3a") @"regexp".add (@"regexp".q·3 *@"regexp".queue "esc:0x1", @"regexp".pc·4 uint32, @"regexp".pos·5 int, @"regexp".cap·6 []int "esc:0x9", @"regexp".cond·7 @"regexp/syntax".EmptyOp, @"regexp".t·8 *@"regexp".thread) (? *@"regexp".thread) + func (@"regexp".m·2 *@"regexp".machine "esc:0x32") @"regexp".alloc (@"regexp".i·3 *@"regexp/syntax".Inst) (? *@"regexp".thread) { var @"regexp".t·4 *@"regexp".thread; ; var @"regexp".n·5 int; ; @"regexp".n·5 = len(@"regexp".m·2.@"regexp".pool); if @"regexp".n·5 > int(0x0) { @"regexp".t·4 = @"regexp".m·2.@"regexp".pool[@"regexp".n·5 - int(0x1)]; @"regexp".m·2.@"regexp".pool = @"regexp".m·2.@"regexp".pool[:@"regexp".n·5 - int(0x1)] } else { @"regexp".t·4 = new(@"regexp".thread); @"regexp".t·4.@"regexp".cap = make([]int, len(@"regexp".m·2.@"regexp".matchcap), cap(@"regexp".m·2.@"regexp".matchcap)) }; @"regexp".t·4.@"regexp".inst = @"regexp".i·3; return @"regexp".t·4 } + func (@"regexp".m·2 *@"regexp".machine "esc:0x9") @"regexp".backtrack (@"regexp".i·3 @"regexp".input, @"regexp".pos·4 int, @"regexp".end·5 int, @"regexp".ncap·6 int) (? bool) + func (@"regexp".m·1 *@"regexp".machine "esc:0x9") @"regexp".clear (@"regexp".q·2 *@"regexp".queue "esc:0x9") + func (@"regexp".m·1 *@"regexp".machine "esc:0x9") @"regexp".free (@"regexp".t·2 *@"regexp".thread) { @"regexp".m·1.@"regexp".inputBytes.@"regexp".str = nil; @"regexp".m·1.@"regexp".inputString.@"regexp".str = string(""); @"regexp".m·1.@"regexp".inputReader.@"regexp".r = nil; @"regexp".m·1.@"regexp".pool = append(@"regexp".m·1.@"regexp".pool, @"regexp".t·2) } + func (@"regexp".m·1 *@"regexp".machine "esc:0x1") @"regexp".init (@"regexp".ncap·2 int) + func (@"regexp".m·2 *@"regexp".machine "esc:0x9") @"regexp".match (@"regexp".i·3 @"regexp".input, @"regexp".pos·4 int) (? bool) + func (@"regexp".m·2 *@"regexp".machine "esc:0x12") @"regexp".newInputBytes (@"regexp".b·3 []byte) (? @"regexp".input) { @"regexp".m·2.@"regexp".inputBytes.@"regexp".str = @"regexp".b·3; return &@"regexp".m·2.@"regexp".inputBytes } + func (@"regexp".m·2 *@"regexp".machine "esc:0x12") @"regexp".newInputReader (@"regexp".r·3 @"io".RuneReader) (? @"regexp".input) { @"regexp".m·2.@"regexp".inputReader.@"regexp".r = @"regexp".r·3; @"regexp".m·2.@"regexp".inputReader.@"regexp".atEOT = bool(false); @"regexp".m·2.@"regexp".inputReader.@"regexp".pos = int(0x0); return &@"regexp".m·2.@"regexp".inputReader } + func (@"regexp".m·2 *@"regexp".machine "esc:0x12") @"regexp".newInputString (@"regexp".s·3 string) (? @"regexp".input) { @"regexp".m·2.@"regexp".inputString.@"regexp".str = @"regexp".s·3; return &@"regexp".m·2.@"regexp".inputString } + func (@"regexp".m·2 *@"regexp".machine "esc:0x9") @"regexp".onepass (@"regexp".i·3 @"regexp".input, @"regexp".pos·4 int) (? bool) + func (@"regexp".m·1 *@"regexp".machine "esc:0x9") @"regexp".step (@"regexp".runq·2 *@"regexp".queue "esc:0x9", @"regexp".nextq·3 *@"regexp".queue "esc:0x1", @"regexp".pos·4 int, @"regexp".nextPos·5 int, @"regexp".c·6 rune, @"regexp".nextCond·7 @"regexp/syntax".EmptyOp) + func (@"regexp".m·2 *@"regexp".machine "esc:0x1") @"regexp".tryBacktrack (@"regexp".b·3 *@"regexp".bitState "esc:0x9", @"regexp".i·4 @"regexp".input, @"regexp".pc·5 uint32, @"regexp".pos·6 int) (? bool) + type @"regexp".Regexp struct { @"regexp".expr string; @"regexp".prog *@"regexp/syntax".Prog; @"regexp".onepass *@"regexp".onePassProg; @"regexp".prefix string; @"regexp".prefixBytes []byte; @"regexp".prefixComplete bool; @"regexp".prefixRune rune; @"regexp".prefixEnd uint32; @"regexp".cond @"regexp/syntax".EmptyOp; @"regexp".numSubexp int; @"regexp".subexpNames []string; @"regexp".longest bool; @"regexp".mu @"sync".Mutex; @"regexp".machine []*@"regexp".machine } + func (@"regexp".re·2 *@"regexp".Regexp "esc:0xa") Copy () (? *@"regexp".Regexp) { var @"regexp".r·3 @"regexp".Regexp; ; @"regexp".r·3 = *@"regexp".re·2; @"regexp".r·3.@"regexp".mu = (@"sync".Mutex{ }); @"regexp".r·3.@"regexp".machine = nil; return &@"regexp".r·3 } + func (@"regexp".re·2 *@"regexp".Regexp "esc:0x1") Expand (@"regexp".dst·3 []byte "esc:0x1a", @"regexp".template·4 []byte "esc:0x1", @"regexp".src·5 []byte "esc:0x9", @"regexp".match·6 []int "esc:0x1") (? []byte) + func (@"regexp".re·2 *@"regexp".Regexp "esc:0x1") ExpandString (@"regexp".dst·3 []byte "esc:0x1a", @"regexp".template·4 string, @"regexp".src·5 string "esc:0x9", @"regexp".match·6 []int "esc:0x1") (? []byte) + func (@"regexp".re·2 *@"regexp".Regexp) Find (@"regexp".b·3 []byte) (? []byte) + func (@"regexp".re·2 *@"regexp".Regexp) FindAll (@"regexp".b·3 []byte, @"regexp".n·4 int) (? [][]byte) + func (@"regexp".re·2 *@"regexp".Regexp) FindAllIndex (@"regexp".b·3 []byte, @"regexp".n·4 int) (? [][]int) + func (@"regexp".re·2 *@"regexp".Regexp) FindAllString (@"regexp".s·3 string, @"regexp".n·4 int) (? []string) + func (@"regexp".re·2 *@"regexp".Regexp) FindAllStringIndex (@"regexp".s·3 string, @"regexp".n·4 int) (? [][]int) + func (@"regexp".re·2 *@"regexp".Regexp) FindAllStringSubmatch (@"regexp".s·3 string, @"regexp".n·4 int) (? [][]string) + func (@"regexp".re·2 *@"regexp".Regexp) FindAllStringSubmatchIndex (@"regexp".s·3 string, @"regexp".n·4 int) (? [][]int) + func (@"regexp".re·2 *@"regexp".Regexp) FindAllSubmatch (@"regexp".b·3 []byte, @"regexp".n·4 int) (? [][][]byte) + func (@"regexp".re·2 *@"regexp".Regexp) FindAllSubmatchIndex (@"regexp".b·3 []byte, @"regexp".n·4 int) (? [][]int) + func (@"regexp".re·2 *@"regexp".Regexp) FindIndex (@"regexp".b·3 []byte) (@"regexp".loc·1 []int) + func (@"regexp".re·2 *@"regexp".Regexp) FindReaderIndex (@"regexp".r·3 @"io".RuneReader) (@"regexp".loc·1 []int) + func (@"regexp".re·2 *@"regexp".Regexp) FindReaderSubmatchIndex (@"regexp".r·3 @"io".RuneReader) (? []int) + func (@"regexp".re·2 *@"regexp".Regexp) FindString (@"regexp".s·3 string) (? string) + func (@"regexp".re·2 *@"regexp".Regexp) FindStringIndex (@"regexp".s·3 string) (@"regexp".loc·1 []int) + func (@"regexp".re·2 *@"regexp".Regexp) FindStringSubmatch (@"regexp".s·3 string) (? []string) + func (@"regexp".re·2 *@"regexp".Regexp) FindStringSubmatchIndex (@"regexp".s·3 string) (? []int) + func (@"regexp".re·2 *@"regexp".Regexp) FindSubmatch (@"regexp".b·3 []byte) (? [][]byte) + func (@"regexp".re·2 *@"regexp".Regexp) FindSubmatchIndex (@"regexp".b·3 []byte) (? []int) + func (@"regexp".re·3 *@"regexp".Regexp "esc:0x22") LiteralPrefix () (@"regexp".prefix·1 string, @"regexp".complete·2 bool) { return @"regexp".re·3.@"regexp".prefix, @"regexp".re·3.@"regexp".prefixComplete } + func (@"regexp".re·1 *@"regexp".Regexp "esc:0x1") Longest () { @"regexp".re·1.@"regexp".longest = bool(true) } + func (@"regexp".re·2 *@"regexp".Regexp) Match (@"regexp".b·3 []byte) (? bool) + func (@"regexp".re·2 *@"regexp".Regexp) MatchReader (@"regexp".r·3 @"io".RuneReader) (? bool) + func (@"regexp".re·2 *@"regexp".Regexp) MatchString (@"regexp".s·3 string) (? bool) + func (@"regexp".re·2 *@"regexp".Regexp "esc:0x1") NumSubexp () (? int) { return @"regexp".re·2.@"regexp".numSubexp } + func (@"regexp".re·2 *@"regexp".Regexp) ReplaceAll (@"regexp".src·3 []byte, @"regexp".repl·4 []byte "esc:0x2a") (? []byte) + func (@"regexp".re·2 *@"regexp".Regexp) ReplaceAllFunc (@"regexp".src·3 []byte, @"regexp".repl·4 func(? []byte) (? []byte) "esc:0x2a") (? []byte) + func (@"regexp".re·2 *@"regexp".Regexp) ReplaceAllLiteral (@"regexp".src·3 []byte, @"regexp".repl·4 []byte "esc:0x2a") (? []byte) + func (@"regexp".re·2 *@"regexp".Regexp) ReplaceAllLiteralString (@"regexp".src·3 string, @"regexp".repl·4 string "esc:0x9") (? string) + func (@"regexp".re·2 *@"regexp".Regexp) ReplaceAllString (@"regexp".src·3 string, @"regexp".repl·4 string) (? string) + func (@"regexp".re·2 *@"regexp".Regexp) ReplaceAllStringFunc (@"regexp".src·3 string, @"regexp".repl·4 func(? string) (? string) "esc:0x9") (? string) + func (@"regexp".re·2 *@"regexp".Regexp) Split (@"regexp".s·3 string, @"regexp".n·4 int) (? []string) + func (@"regexp".re·2 *@"regexp".Regexp "esc:0x22") String () (? string) { return @"regexp".re·2.@"regexp".expr } + func (@"regexp".re·2 *@"regexp".Regexp "esc:0x22") SubexpNames () (? []string) { return @"regexp".re·2.@"regexp".subexpNames } + func (@"regexp".re·1 *@"regexp".Regexp) @"regexp".allMatches (@"regexp".s·2 string, @"regexp".b·3 []byte, @"regexp".n·4 int, @"regexp".deliver·5 func(? []int) "esc:0x1") + func (@"regexp".re·2 *@"regexp".Regexp) @"regexp".doExecute (@"regexp".r·3 @"io".RuneReader, @"regexp".b·4 []byte, @"regexp".s·5 string, @"regexp".pos·6 int, @"regexp".ncap·7 int) (? []int) + func (@"regexp".re·2 *@"regexp".Regexp "esc:0x1") @"regexp".expand (@"regexp".dst·3 []byte "esc:0x1a", @"regexp".template·4 string, @"regexp".bsrc·5 []byte "esc:0x9", @"regexp".src·6 string "esc:0x9", @"regexp".match·7 []int "esc:0x1") (? []byte) + func (@"regexp".re·2 *@"regexp".Regexp) @"regexp".get () (? *@"regexp".machine) + func (@"regexp".re·2 *@"regexp".Regexp "esc:0x1") @"regexp".pad (@"regexp".a·3 []int "esc:0x1a") (? []int) + func (@"regexp".re·1 *@"regexp".Regexp) @"regexp".put (@"regexp".z·2 *@"regexp".machine) + func (@"regexp".re·2 *@"regexp".Regexp) @"regexp".replaceAll (@"regexp".bsrc·3 []byte, @"regexp".src·4 string, @"regexp".nmatch·5 int, @"regexp".repl·6 func(@"regexp".dst []byte, @"regexp".m []int) (? []byte) "esc:0x2a") (? []byte) + type @"github.com/hacdias/caddy-filemanager/config".Rule struct { Regex bool; Allow bool; Path string; Rexexp *@"regexp".Regexp } + type @"github.com/hacdias/caddy-filemanager/config".UserConfig struct { PathScope string; Root @"net/http".FileSystem; StyleSheet string; FrontMatter string; AllowNew bool; AllowEdit bool; AllowCommands bool; Commands []string; Rules []*@"github.com/hacdias/caddy-filemanager/config".Rule } + type @"github.com/hacdias/caddy-filemanager/config".Config struct { ? *@"github.com/hacdias/caddy-filemanager/config".UserConfig; BaseURL string; AbsoluteURL string; AddrPath string; Token string; HugoEnabled bool; Users map[string]*@"github.com/hacdias/caddy-filemanager/config".UserConfig; CurrentUser *@"github.com/hacdias/caddy-filemanager/config".UserConfig } + func (@"github.com/hacdias/caddy-filemanager/config".c·2 @"github.com/hacdias/caddy-filemanager/config".Config "esc:0x1") CheckToken (@"github.com/hacdias/caddy-filemanager/config".r·3 *@"net/http".Request "esc:0x1") (? bool) + func (@"github.com/hacdias/caddy-filemanager/config".c·1 *@"github.com/hacdias/caddy-filemanager/config".Config "esc:0x1") GenerateToken () + type @"".FileManager struct { Next @"github.com/mholt/caddy/caddyhttp/httpserver".Handler; Configs []@"github.com/hacdias/caddy-filemanager/config".Config } + func (@"".f·3 @"".FileManager) ServeHTTP (@"".w·4 @"net/http".ResponseWriter, @"".r·5 *@"net/http".Request) (? int, ? error) + func @"".init () + func @"math/big".low64 (@"math/big".z·2 @"math/big".nat "esc:0x1") (? uint64) { if len(@"math/big".z·2) == int(0x0) { return uint64(0x0) }; var @"math/big".v·3 uint64; ; @"math/big".v·3 = uint64(@"math/big".z·2[int(0x0)]); if false && len(@"math/big".z·2) > int(0x1) { @"math/big".v·3 |= uint64(@"math/big".z·2[int(0x1)]) << uint(0x20) }; return @"math/big".v·3 } + var @"time".months [12]string + var @"time".days [7]string + var @"time".Local *@"time".Location + var @"time".UTC *@"time".Location + func @"net".IPv4 (@"net".a·2 byte, @"net".b·3 byte, @"net".c·4 byte, @"net".d·5 byte) (? @"net".IP) { var @"net".p·6 @"net".IP; ; @"net".p·6 = make(@"net".IP, 0x10); copy(@"net".p·6, @"net".v4InV6Prefix); @"net".p·6[int(0xc)] = @"net".a·2; @"net".p·6[int(0xd)] = @"net".b·3; @"net".p·6[int(0xe)] = @"net".c·4; @"net".p·6[int(0xf)] = @"net".d·5; return @"net".p·6 } + var @"bufio".ErrInvalidUnreadByte error + var @"bufio".ErrInvalidUnreadRune error + import errors "errors" // indirect + func @"errors".New (@"errors".text·2 string) (? error) { return (&@"errors".errorString{ @"errors".s:@"errors".text·2 }) } + var @"regexp/syntax".instOpNames []string + func @"strings".HasPrefix (@"strings".s·2 string "esc:0x1", @"strings".prefix·3 string "esc:0x1") (? bool) { return len(@"strings".s·2) >= len(@"strings".prefix·3) && @"strings".s·2[int(0x0):len(@"strings".prefix·3)] == @"strings".prefix·3 } + var @"net".v4InV6Prefix []byte + type @"errors".errorString struct { @"errors".s string } + func (@"errors".e·2 *@"errors".errorString "esc:0x22") Error () (? string) { return @"errors".e·2.@"errors".s } + +$$ +_go_.o 0 0 0 644 77116 ` +go object windows amd64 go1.6.2 X:none + +! +go13ldio.aio/ioutil.a +log.a mime/multipart.anet/http.aos.aos/exec.apath/filepath.astrings.aZgithub.com/hacdias/caddy-filemanager/assets.aZgithub.com/hacdias/caddy-filemanager/config.a`github.com/hacdias/caddy-filemanager/directory.aZgithub.com/hacdias/caddy-filemanager/errors.aVgithub.com/hacdias/caddy-filemanager/page.aZgithub.com/mholt/caddy/caddyhttp/httpserver.a0github.com/mholt/caddy.aþ0"".FileManager.ServeHTTP i ieH‹ %(H‹‰H�„$ðüÿÿH;A†H�ì�HÇ„$Ø1ÛH‰œ$àH‰œ$èHÇ„$8HÇ„$0HÇ„$ˆ1ÛH‰œ$€H‰œ$ˆÆD$pHÇ„$ H‹œ$ÐH‰$èH‹\$H‰œ$`H‹\$H‰œ$hŠ\$(ˆ\$q€|$quH‹œ$8Hƒû„ZH‹+H‰¬$ H‹œ$`H‰œ$ H‹œ$hH‰œ$(H�H‰$H‹œ$8Hƒû„ H‹kPH‰l$H‹œ$ H‰\$H‹œ$(H‰\$èŠ\$(ˆ\$t€|$t„�H‹œ$`H‰œ$H‹œ$hH‰œ$H�H‰$H‹œ$8Hƒû„ŒH‹kPH‰l$H‹œ$H‰\$H‹œ$H‰\$èH‹\$ Hƒû„NH‹+H‰¬$XH‹œ$XH‰œ$ HÇ„$˜H‹œ$°H‰œ$�H‹œ$˜H‹¬$�H9ë�H‹œ$˜H‰\$xH‹´$ÐHƒþ„ØH‹^Hƒû„ÃH�k8H‰çH‰îH‹H‰H‹NH‰OH‹œ$¨H‰œ$xH‹œ$°H‰œ$€H‹œ$¸H‰œ$ˆH‹´$xH‹\$xH‹¬$€H9ëƒVHkÛ`HÞH�^H�|$H‰ÞH‹H‰H‹NH‰OèŠ\$ ˆ\$w€|$w„&H‹œ$¨H‰œ$`H‹œ$°H‰œ$hH‹œ$¸H‰œ$pH‹œ$`H‹l$xL‹„$hL9ŃÑHkí`HëH‰œ$8H�œ$H‰$H‹´$8Hƒþ„�H�^H�|$H‰ÞH‹H‰H‹NH‰OH�H‰\$HÇD$ èH�\$(H�|$H‰ÞH‹H‰H‹NH‰OH‹´$ÐHƒþ„5H‹^Hƒû„ H�k8H‰çH‰îH‹H‰H‹NH‰OèŠ\$ ˆ\$pH‹œ$ÐHƒû„âH‹+H‰¬$ðH‹kH‰¬$øH‹œ$øHƒû…,H‹¬$ðH‰,$H‹¬$øH‰l$H�-H‰l$HÇD$èŠ\$ €û„ìH‹œ$ÐHƒû„ÓH‹+H‰¬$ÐH‹kH‰¬$ØH‹œ$ØHƒû…EH‹¬$ÐH‰,$H‹¬$ØH‰l$H�-H‰l$HÇD$èŠ\$ €û„H‹œ$ÐHƒû„ìH‹+H‰¬$ÀH‹kH‰¬$ÈH‹œ$ÈHƒû|TH‹œ$ÈHƒû…& H‹¬$ÀH‰,$H‹¬$ÈH‰l$H�-H‰l$HÇD$èH‹\$ Hƒû�äH‹œ$ÈHƒû…&H‹¬$ÀH‰,$H‹¬$ÈH‰l$H�-H‰l$HÇD$èŠ\$ €û„æ€|$p„—H‹œ$ÀH‰$H‹œ$ÈH‰\$H‹œ$ÐH‰\$H‹œ$8H‰\$èH‹\$ H‰œ$ðH‹\$(H‰œ$ðH‹\$0H‰œ$øH‹œ$ðH‰œ$ØH‹œ$ðH‰œ$àH‹œ$øH‰œ$èH�Ä�ÃH‹œ$8H‰$èH‹¬$0Hƒý„Š]€û…�H‹œ$ÐHƒû„ôH‹kH‰,$èH‹\$H‰œ$(H�H‰œ$àHÇ„$èH�H‰$H‹œ$(H‰\$H‹œ$àH‰\$H‹œ$èH‰\$èH‹\$ H‰œ$HŠ\$(ˆ\$rH‹œ$HHƒû„ZH‹+H‰¬$0H‹kH‰¬$8H‹kH‰¬$@€|$r„$H‹œ$0Hƒ¼$8†H‹+H‰¬$°H‹kH‰¬$¸H‹œ$¸Hƒû…äH‹¬$°H‰,$H‹¬$¸H‰l$H�-H‰l$HÇD$èŠ\$ €û„¤H‹œ$0H‰$H‹œ$ÀH‰\$H‹œ$ÈH‰\$H‹œ$ÐH‰\$H‹œ$8H‰\$ èH‹\$(H‰œ$èH‹\$0H‰œ$ÐH‹\$8H‰œ$ØH‹œ$èH‰œ$ØH‹œ$ÐH‰œ$àH‹œ$ØH‰œ$èH�Ä�ÃH�H‰œ$ÀHÇ„$ÈH�H‰$H‹œ$(H‰\$H‹œ$ÀH‰\$H‹œ$ÈH‰\$èH‹\$ H‰œ$@Š\$(ˆ\$sH‹œ$@Hƒû„�H‹+H‰¬$HH‹kH‰¬$PH‹kH‰¬$X€|$s„òH‹œ$HHƒ¼$P†5H‹+H‰¬$ H‹kH‰¬$¨H‹œ$¨Hƒû…²H‹¬$ H‰,$H‹¬$¨H‰l$H�-H‰l$HÇD$èŠ\$ €û„rH‹œ$ÈH‰$H‹œ$ÀHƒû„MH‹[ ÿÓH‹\$H‰œ$PHÇ$H�H‰\$HÇD$H‹´$0Hƒþ„H�^H�|$H‰ÞH‹H‰H‹NH‰OèH�\$(H�|$H‰ÞH‹H‰H‹NH‰OH‹œ$PH‰$H�H‰\$HÇD$èH‹œ$0H‰$H‹œ$ÀH‰\$H‹œ$ÈH‰\$H‹œ$ÐH‰\$H‹œ$8H‰\$ èH‹\$(H‰œ$àH‹\$0H‰œ$°H‹\$8H‰œ$¸H‹œ$àH‰œ$ØH‹œ$°H‰œ$àH‹œ$¸H‰œ$èH�Ä�Ééõþÿÿ‰é¬þÿÿH‹œ$0H‰$H‹œ$ÀH‰\$H‹œ$ÈH‰\$H‹œ$ÐH‰\$H‹œ$8H‰\$ èH‹\$(H‰œ$€H‹\$0H‰œ$pH‹\$8H‰œ$xH‹œ$pHƒû„¤H‹œ$ÀH‰$H‹œ$ÈH‰\$H‹œ$€H‰\$H‹œ$pH‰\$H‹œ$xH‰\$ èH‹\$(H‰œ$ØH‹\$0H‰œ$ H‹\$8H‰œ$¨H‹œ$ØH‰œ$ØH‹œ$ H‰œ$àH‹œ$¨H‰œ$èH�Ä�ÃH‹œ$€H‰œ$ØH‹œ$pH‰œ$àH‹œ$xH‰œ$èH�Ä�Ãè ‰éxüÿÿè ‰éŸúÿÿ‰éúÿÿ‰EéßùÿÿH‹œ$ÈHƒû…tH‹¬$ÀH‰,$H‹¬$ÈH‰l$H�-H‰l$HÇD$èŠ\$ €û„4H‹¬$0Hƒý„Š]€ût&HÇ„$Ø–1ÛH‰œ$àH‰œ$èH�Ä�ÃH‹¬$ Hƒý„ÒŠ]A€ûu&HÇ„$Ø‘1ÛH‰œ$àH‰œ$èH�Ä�ÃH‹œ$0H‰$H‹œ$ÀH‰\$H‹œ$ÈH‰\$H‹œ$ÐH‰\$H‹œ$8H‰\$ èH‹\$(H‰œ$ÐH‹\$0H‰œ$�H‹\$8H‰œ$˜H‹œ$ÐH‰œ$ØH‹œ$�H‰œ$àH‹œ$˜H‰œ$èH�Ä�ÉEé&ÿÿÿ‰EéÞþÿÿHÇ„$Øõ1ÛH‰œ$àH‰œ$èH�Ä�ÃH‹œ$ÈHƒû…BH‹¬$ÀH‰,$H‹¬$ÈH‰l$H�-H‰l$HÇD$èŠ\$ €û„H‹œ$ÐHƒû„éH‹k8H‰,$H�H‰\$HÇD$èH‹\$H‰œ$€H‹\$ H‰œ$ˆH‹œ$ˆHƒû…H‹¬$€H‰,$H‹¬$ˆH‰l$H�-H‰l$HÇD$èŠ\$ €û„ßH‹¬$ Hƒý„ÅŠ]@€ûu&HÇ„$Ø‘1ÛH‰œ$àH‰œ$èH�Ä�ÃH‹œ$ÀH‰$H‹œ$ÈH‰\$H‹œ$ÐH‰\$H‹œ$8H‰\$èH‹\$ H‰œ$ÈH‹\$(H‰œ$pH‹\$0H‰œ$xH‹œ$ÈH‰œ$ØH‹œ$pH‰œ$àH‹œ$xH‰œ$èH�Ä�ÉEé3ÿÿÿH‹œ$ÐHƒû„cH‹k8H‰,$H�H‰\$HÇD$èH‹\$H‰œ$`H‹\$ H‰œ$hH‹œ$hHƒûutype.*mime/multipart.FileHeader"".autotmp_0063ÿ@type.**mime/multipart.FileHeader"".autotmp_0062ïtype.int"".autotmp_0061ßtype.int"".autotmp_0060ÏBtype.[]*mime/multipart.FileHeader"".autotmp_0059¿"type.interface {}"".autotmp_0058Ÿ(type.[1]interface {}"".autotmp_0056ï*type.*[1]interface {}"".autotmp_0055Ÿ&type.[]interface {}"".autotmp_0054ßtype.*os.File"".autotmp_0053ñtype.bool"".autotmp_0052ïBtype.[]*mime/multipart.FileHeader"".autotmp_0051¿btype.map.iter[string][]*mime/multipart.FileHeader"".autotmp_0050ÏXtype.map[string][]*mime/multipart.FileHeader "".dst¿type.*os.File"".filenameŸtype.string "".src¿0type.mime/multipart.File"".headerÏ>type.*mime/multipart.FileHeader"".headersÿBtype.[]*mime/multipart.FileHeader "".errÿtype.error "".~r4Ptype.error "".~r3@type.int"".c0ptype.*github.com/hacdias/caddy-filemanager/config.Config"".r ,type.*net/http.Request"".w8type.net/http.ResponseWriterr)�ü��À��¨��9��”��¯�� ��„�°ŽØG4ß: +÷“P:Äi8 T-::Û:+15$>,7# `\žm1v½s³iÍ@– `Y +O61 +pTgclocals·361e8d7f71115ff960294653b8eed659Tgclocals·2b7f85086a355a5efca6b88a9dc7fbf2„D:/Code/Go/src/github.com/hacdias/caddy-filemanager/filemanager.goþ"".newDirectoryààeH‹ %(H‹‰H�D$¨H;A†{H�ìØHÇ„$1ÛH‰œ$H‰œ$H‹œ$ðHƒû„=H‹k8H‰,$H�H‰\$HÇD$èH‹\$H‰œ$€H‹\$ H‰œ$ˆH‹œ$ˆHƒûu&HÇ„$�1ÛH‰œ$H‰œ$H�ÄØÃH‹´$ðHƒþ„´H‹^Hƒû„ŸH�k8H‰çH‰îH‹H‰H‹NH‰OH‹´$øHƒþ„nH�^H�|$H‰ÞH‹H‰H‹NH‰OH‹´$øHƒþ„;H‹Hƒû„'H‰ÝH�|$ H‰îH‹H‰H‹NH‰OHÇD$0èH‹\$8H‰œ$°H‹\$@H‰œ$¸HÇ$H‹œ$°H‰\$H‹œ$¸H‰\$H‹œ$€H‰\$H‹œ$ˆH‰\$ èH‹\$(H‰\$pH‹\$0H‰\$xH‹\$pH‰$H‹\$xH‰\$èH‹\$H‰\$pH‹\$H‰\$xH‹\$pH‰$H‹\$xH‰\$èH‹\$H‰œ$�H‹\$H‰œ$˜1ÛH‰œ$ H‰œ$¨H‹œ$˜Hƒû…hH‹\$pH‰$H‹\$xH‰\$ÇD$íèH‹\$H‰œ$ H‹\$ H‰œ$¨H‹œ$ Hƒû„öH‹œ$ H‰$H‹œ$¨H‰\$èŠ\$ˆ\$O€|$Ot4HÇ„$“H‹œ$ H‰œ$H‹œ$¨H‰œ$H�ÄØÃH‹œ$ H‰$H‹œ$¨H‰\$èŠ\$ˆ\$N€|$Nt4HÇ„$™H‹œ$ H‰œ$H‹œ$¨H‰œ$H�ÄØÃHÇ„$ôH‹œ$ H‰œ$H‹œ$¨H‰œ$H�ÄØÃHÇ„$É1ÛH‰œ$H‰œ$H�ÄØÃH�\$PH‰$1ÛH‰\$H‰\$èH‹\$H‰œ$ÀH‹\$ H‰œ$ÈH‹\$(H‰œ$ÐH‹\$pH‰$H‹\$xH‰\$H‹œ$ÀH‰\$H‹œ$ÈH‰\$H‹œ$ÐH‰\$ ÇD$(íèH‹\$0H‰œ$ H‹\$8H‰œ$¨é+þÿÿ‰éÒüÿÿ‰é¾üÿÿ‰é‹üÿÿ‰éZüÿÿ‰éEüÿÿ‰é¼ûÿÿèé\ûÿÿÌÌÌÌÌÌÌÌÌÌÌÌÂ(go.string."Filename"è &net/http.Header.GetØ strings.ReplaceŽ *runtime.concatstring2æ &path/filepath.Clean¾ "path/filepath.Extú  os.MkdirAllŽ  os.IsPermissionÐ  os.IsExist¾ 2runtime.stringtoslicebyteš &io/ioutil.WriteFile¶ 0runtime.morestack_noctxtp°"".autotmp_0072�type.[32]uint8"".autotmp_0071“type.bool"".autotmp_0070‘type.bool"".autotmp_0069/type.[]uint8"".autotmp_0068Otype.string "".errotype.error"".extension�type.string"".pathÏtype.string"".filename¯type.string "".~r4Ptype.error "".~r3@type.int"".c0ptype.*github.com/hacdias/caddy-filemanager/config.Config"".r ,type.*net/http.Request"".w8type.net/http.ResponseWriterT&°Ÿ¯°Ç¯°`¯°3¯°%¯°Ñ¯° `°DN&™,2: +-4-44&¢# *sø[X^J˜ndTgclocals·ce748d03d2ab07320d9e23dbede7f86dTgclocals·492b17d31d98902cbe1ccf139babf057„D:/Code/Go/src/github.com/hacdias/caddy-filemanager/filemanager.goþ"".vcsCommandà à eH‹ %(H‹‰H�„$àþÿÿH;A†úH�ì HÇ„$È1ÛH‰œ$ÐH‰œ$ØH‹œ$¸Hƒû„¼H‹k8H‰,$H�H‰\$HÇD$èH‹\$H‰œ$H‹\$ H‰œ$H‹œ$H‰$H‹œ$H‰\$H�H‰\$HÇD$èH‹\$ H‰œ$0H‹\$(H‰œ$8H‹\$0H‰œ$@H‹œ$0Hƒ¼$8†H‹+H‰¬$ØH‹kH‰¬$àH‹œ$àHƒû…³H‹¬$ØH‰,$H‹¬$àH‰l$H�-H‰l$HÇD$èŠ\$ €û„sH‹´$0Hƒ¼$8†UH‰çH‹H‰H‹NH‰OèH‹\$ H‰œ$˜H‹\$(H‰œ$ H‹œ$˜Hƒût&HÇ„$Èõ1ÛH‰œ$ÐH‰œ$ØH�Ä ÃH‹´$¸Hƒþ„ØH‹^Hƒû„ÃH�k8H‰çH‰îH‹H‰H‹NH‰OH‹´$ÀHƒþ„’H�^H�|$H‰ÞH‹H‰H‹NH‰OH‹´$ÀHƒþ„_H‹Hƒû„KH‰ÝH�|$ H‰îH‹H‰H‹NH‰OHÇD$0èH‹\$8H‰\$xH‹\$@H‰œ$€H‹\$xH‰$H‹œ$€H‰\$èH‹\$H‰\$xH‹\$H‰œ$€H‹œ$8H‰\$PH‹\$PH‹¬$@H9뇱Hƒû‚§HƒëHƒíL‹„$0HƒýtIƒÀH‰œ$PH‰¬$XL‰„$HH‹´$0Hƒ¼$8†WH‰çH‹H‰H‹NH‰OH‹œ$HH‰\$H‹œ$PH‰\$H‹œ$XH‰\$ èH‹\$(H‰\$`H‹\$`Hƒû„úH‹¬$€H‰kHH‹l$x€=…ÅH‰k@H‹\$`H‰$èH‹\$H‰œ$H‹\$H‰œ$ H‹\$H‰œ$(H‹\$ H‰œ$ˆH‹\$(H‰œ$�H‹œ$ˆHƒût4HÇ„$ÈôH‹œ$ˆH‰œ$ÐH‹œ$�H‰œ$ØH�Ä ÃHÇ$H‹œ$H‰\$H‹œ$ H‰\$H‹œ$(H‰\$èH‹\$ H‰œ$øH‹\$(H‰œ$1ÛH‰œ$¨ˆœ$°H�œ$¨H‰\$pH‹\$pHƒû„®1íH‰+@ˆk1ÛH‰œ$`H‰œ$hH‰œ$pH‰œ$xˆœ$€H‰œ$ˆH‰œ$�H‰œ$˜H�œ$`H‰\$hH‹\$hHƒû„A1íH‰+H‰kH‰kH‰k@ˆk H‰k(H‰k0H‰k8H�H‰$H�œ$øH‰\$HÇD$èH�\$H‹|$hHƒÿ„ßH�o0H‰ïH‰ÞH‹H‰H‹NH‰OH‹\$pHƒû„±H‹l$hH‰+H‹\$pH‰\$XH‹t$XHƒþ„‰H‰çH‹H‰H‹NH‰OH‹œ$¨H‰\$H‹œ$°H‰\$èH‹\$ H‰\$HH‹\$(H‰œ$èH‹\$0H‰œ$ðH‹\$HH‰œ$ÈH‹œ$èH‰œ$ÐH‹œ$ðH‰œ$ØH�Ä Éépÿÿÿ‰éHÿÿÿ‰éÿÿÿ‰é¸þÿÿ‰éKþÿÿL�C@L‰$H‰l$èé(ýÿÿ‰éÿüÿÿè è ‰é®ûÿÿ‰éšûÿÿ‰égûÿÿ‰é6ûÿÿ‰é!ûÿÿè H‹œ$0Hƒ¼$8†H‹+H‰¬$ÈH‹kH‰¬$ÐH‹œ$ÐHƒûu@H‹¬$ÈH‰,$H‹¬$ÐH‰l$H�-H‰l$HÇD$èŠ\$ €û…úÿÿH‹œ$0Hƒ¼$8†‹H‹+H‰¬$¸H‹kH‰¬$ÀH‹œ$ÀHƒûu@H‹¬$¸H‰,$H‹¬$ÀH‰l$H�-H‰l$HÇD$èŠ\$ €û…•ùÿÿHÇ„$È“1ÛH‰œ$ÐH‰œ$ØH�Ä Ãè è è ‰é=øÿÿèéÚ÷ÿÿÌÌÌÌÌÌÌÌÌÌ:È&go.string."command"î &net/http.Header.Getâgo.string." "ˆ strings.Split–go.string."git"¼ runtime.eqstring° os/exec.LookPath  + strings.Replace„  &path/filepath.Clean˜ os/exec.Commandø(runtime.writeBarrierª :os/exec.(*Cmd).CombinedOutput˜ 2runtime.slicebytetostringÂtype.string€ runtime.convT2E˜ tgithub.com/hacdias/caddy-filemanager/page.Page.PrintAsJSON´ .runtime.writebarrierptrÖ $runtime.panicindexä $runtime.panicslice¸ $runtime.panicindexôgo.string."hg"š runtime.eqstringìgo.string."svn"’ runtime.eqstring‚  $runtime.panicindex�  $runtime.panicindexž  $runtime.panicindexº  0runtime.morestack_noctxtpÀ2"".autotmp_0085ftype.github.com/hacdias/caddy-filemanager/page.Info"".autotmp_0084ïhtype.*github.com/hacdias/caddy-filemanager/page.Info"".autotmp_0083ïftype.github.com/hacdias/caddy-filemanager/page.Page"".autotmp_0082ßhtype.*github.com/hacdias/caddy-filemanager/page.Page"".autotmp_0081Ïtype.string"".autotmp_0080¯type.string"".autotmp_0079�type.string"".autotmp_0078ïtype.error"".autotmp_0077¯type.int"".autotmp_0076Ïtype.string"".autotmp_0075¯type.[]string"".autotmp_0074Ÿtype.int"".autotmp_0073¯type.string"".page�htype.*github.com/hacdias/caddy-filemanager/page.Page "".err¯type.error"".output�type.[]uint8 "".cmdÿ"type.*os/exec.Cmd"".pathÏtype.string "".err�type.error"".commandßtype.[]string "".~r4Ptype.error "".~r3@type.int"".c0ptype.*github.com/hacdias/caddy-filemanager/config.Config"".r ,type.*net/http.Request"".w8type.net/http.ResponseWriterJ)ÀÀ¿Àñ¿ÀŒ¿À–¿À¿°zòG¨€ +U&Á2½1O4õŸ # ø&<vç®I«ŒŽ¢´0Tgclocals·7ef1b64786b68554f04938873c024f24Tgclocals·5173164aeb2b87579aca68b061a3b432„D:/Code/Go/src/github.com/hacdias/caddy-filemanager/filemanager.goþ"".init.1ÀÀeH‹ %(H‹‰H;avrHƒì@1ÛH‰\$(H‰\$0H‰\$8H�H‰\$(HÇD$0H�H‰\$8H�H‰$HÇD$ H‹\$(H‰\$H‹\$0H‰\$H‹\$8H‰\$ èHƒÄ@ÃèénÿÿÿÌÌÌÌÌÌÌÌÌÌÌÌÌÌ \ go.string."http"†"".setup·fž.go.string."filemanager"þ Jgithub.com/mholt/caddy.RegisterPlugin’ 0runtime.morestack_noctxt€"".autotmp_0086/Dtype.github.com/mholt/caddy.Plugin€m  7  +~"Tgclocals·33cdeccccebe80329f1fdbee7f5874cbTgclocals·790e5cc5051fc0affc980ade09e929ecxD:/Code/Go/src/github.com/hacdias/caddy-filemanager/setup.goþ"".setupÀÀeH‹ %(H‹‰H;a†;Hƒìh1ÛH‰\$xH‰œ$€H‹\$pH‰$èH‹\$H‰\$PH‹\$H‰\$XH‹\$H‰\$`H‹\$ H‰\$@H‹\$(H‰\$HH‹\$@HƒûtH‹\$@H‰\$xH‹\$HH‰œ$€HƒÄhÃH‹\$pH‰$èH‹\$H‰\$8H�H‰$èH‹\$H‰\$0H‹\$0Hƒût}H�-H‰+H‹\$0HƒûtdH‹l$XH‰kH‹l$`H‰kH‹l$P€=u0H‰kH‹\$8H‰$H‹\$0H‰\$è1ÛH‰\$xH‰œ$€HƒÄhÃL�CL‰$H‰l$èëÀ‰똉é|ÿÿÿèé¡þÿÿÌn bgithub.com/hacdias/caddy-filemanager/config.Parse¼ jgithub.com/mholt/caddy/caddyhttp/httpserver.GetConfigÞ®type.struct { F uintptr; configs []github.com/hacdias/caddy-filemanager/config.Config }ð "runtime.newobject¨"".setup.func1þ(runtime.writeBarrier¼ Žgithub.com/mholt/caddy/caddyhttp/httpserver.(*SiteConfig).AddMiddlewareˆ .runtime.writebarrierptr¬ 0runtime.morestack_noctxt0Ð "".autotmp_0088o°type.*struct { F uintptr; configs []github.com/hacdias/caddy-filemanager/config.Config }"".autotmp_0087_xtype.*github.com/mholt/caddy/caddyhttp/httpserver.SiteConfig "".errOtype.error"".configs/rtype.[]github.com/hacdias/caddy-filemanager/config.Config "".~r1type.error"".cNtype.*github.com/mholt/caddy.Controller,ÐuÏСÏÐÏ à.$-@ v 6gf&Tgclocals·197df35d123b8543b316c6de2f24053aTgclocals·6a1806827ace393657a513dcb4ac974exD:/Code/Go/src/github.com/hacdias/caddy-filemanager/setup.goþ"".setup.func1ààeH‹ %(H‹‰H;a†ËHƒìhH�ZH‰\$81ÛH‰œ$€H‰œ$ˆ1ÛH‰\$@H‰\$HH‰\$PH‰\$XH‰\$`H‹t$8H�\$PH‰ßH‹H‰H‹NH‰OH‹NH‰OH‹\$pH‰\$@H‹\$xH‰\$HH�H‰$H�H‰\$H�H‰\$H�\$@H‰\$HÇD$ èH‹\$(H‰œ$€H‹\$0H‰œ$ˆHƒÄhÃèéÿÿÿÌ œ&type."".FileManager²ptype.github.com/mholt/caddy/caddyhttp/httpserver.HandlerÊ”go.itab."".FileManager.github.com/mholt/caddy/caddyhttp/httpserver.Handler„ runtime.convT2IÌ "runtime.morestack@Ð"".autotmp_0089O&type."".FileManager"".&configs_ttype.*[]github.com/hacdias/caddy-filemanager/config.Config "".~r1 ptype.github.com/mholt/caddy/caddyhttp/httpserver.Handler"".nextptype.github.com/mholt/caddy/caddyhttp/httpserver.HandlerÐÆÏ ð09¬  Á/Tgclocals·aefd16b155593f6f07980a05b297ad1fTgclocals·5ff4d0de68904761433fad2e82a8b13cxD:/Code/Go/src/github.com/hacdias/caddy-filemanager/setup.goþ"".initààeH‹ %(H‹‰H;a†‚Š€ûtŠ€ûuÃè ÆèèèèèèèèèèèèèèèèèÆÃèéZÿÿÿÌÌÌÌÌÌÌÌÌÌ08"".initdone·N"".initdone·d "runtime.throwinitt"".initdone·€ io.initŠ io/ioutil.init” log.initž &mime/multipart.init¨ net/http.init² os.init¼ os/exec.initÆ $path/filepath.initÐ strings.initÚ `github.com/hacdias/caddy-filemanager/assets.initä `github.com/hacdias/caddy-filemanager/config.initî fgithub.com/hacdias/caddy-filemanager/directory.initø `github.com/hacdias/caddy-filemanager/errors.init‚ \github.com/hacdias/caddy-filemanager/page.initŒ `github.com/mholt/caddy/caddyhttp/httpserver.init– 6github.com/mholt/caddy.init  "".init.1¬"".initdone·º 0runtime.morestack_noctxt°°:° +1Tgclocals·33cdeccccebe80329f1fdbee7f5874cbTgclocals·33cdeccccebe80329f1fdbee7f5874cbxD:/Code/Go/src/github.com/hacdias/caddy-filemanager/setup.goþ(type..hash.[8]string€€eH‹ %(H‹‰H;a†œHƒì0HÇD$HHÇD$(HÇD$ H‹\$(H‹l$ H9ë}[H‹\$(H‰\$H‹\$8HƒûtUH‹l$HÁåHëH‰$H‹\$@H‰\$èH‹\$H‰\$@H‹\$(HƒÃH‰\$(H‹\$(H‹l$ H9ë|¥H‹\$@H‰\$HHƒÄ0Éë§èé@ÿÿÿð runtime.strhashî 0runtime.morestack_noctxt0` "".autotmp_0091type.int"".autotmp_0090type.int"".i/type.int "".~r2 type.uintptr"".htype.uintptr"".ptype.*[8]string`“_`_ +ÀÀ +wITgclocals·0b86ef39f3fed835f14ba5f4d7c62fa2Tgclocals·33cdeccccebe80329f1fdbee7f5874cb„D:/Code/Go/src/github.com/hacdias/caddy-filemanager/filemanager.goþ$type..eq.[8]string€€eH‹ %(H‹‰H;a†Hƒì`ÆD$xHÇD$8HÇD$0H‹\$8H‹l$0H9ë�ÇH‹\$8H‰\$(H‹\$hHƒû„ÉH‹l$(HÁåHëH‹+H‰l$PH‹kH‰l$XH‹\$pHƒû„–H‹l$(HÁåHëH‹+H‰l$@H‹kH‰l$HH‹\$XH‹l$HH9ëu`H‹l$PH‰,$H‹l$XH‰l$H‹l$@H‰l$H‹l$HH‰l$èŠ\$ €ût+H‹\$8HƒÃH‰\$8H‹\$8H‹l$0H9ëŒ9ÿÿÿÆD$xHƒÄ`ÃÆD$xHƒÄ`Éécÿÿÿ‰é0ÿÿÿèéÅþÿÿÌÌÌÌÌ runtime.eqstringä 0runtime.morestack_noctxt0À"".autotmp_0095?type.string"".autotmp_0094type.string"".autotmp_0093_type.int"".autotmp_0092Otype.int"".iotype.int "".~r2 type.bool"".qtype.*[8]string"".ptype.*[8]string,Àú¿À ¿À¿ÀÀ à`Tgclocals·3bb21ca8fe1d99a3e492463bd711418aTgclocals·a8eabfc4a4514ed6b3b0c61e9680e440„D:/Code/Go/src/github.com/hacdias/caddy-filemanager/filemanager.goþ6"".(*FileManager).ServeHTTP  eH‹ %(H‹‰H;a†HƒìpH‹Y H…Ût H�|$xH9;uH‰#HÇ„$˜1ÛH‰œ$ H‰œ$¨H‹\$x1íH9ëuEH�H‰$HÇD$ H�H‰\$HÇD$ H�H‰\$ HÇD$( è H‹t$xHƒþ„€H‰çèH¥H‹œ$€H‰\$(H‹œ$ˆH‰\$0H‹œ$�H‰\$8èH‹\$@H‰\$XH‹\$HH‰\$`H‹\$PH‰\$hH‹\$XH‰œ$˜H‹\$`H‰œ$ H‹\$hH‰œ$¨HƒÄpÉéyÿÿÿèé½þÿÿÌÌÌÌÌÌÌÌÌÌÌÌÌÂ.go.string."filemanager"ê.go.string."FileManager"”*go.string."ServeHTTP"º "runtime.panicwrapì È runtime.duffcopyÈ 0"".FileManager.ServeHTTPô 0runtime.morestack_noctxtpà"".autotmp_0097type.error"".autotmp_0096/type.int "".~r3Ptype.error "".~r2@type.int"".r0,type.*net/http.Request"".w8type.net/http.ResponseWriter""..this(type.*"".FileManager à“ßàßÐМ´Tgclocals·a5947a078ff8f32dc378f6b0b238531dTgclocals·23e8278e2b69a3a75fa59b23c49ed6adþ4type..hash.[1]interface {}€€eH‹ %(H‹‰H;a†œHƒì0HÇD$HHÇD$(HÇD$ H‹\$(H‹l$ H9ë}[H‹\$(H‰\$H‹\$8HƒûtUH‹l$HÁåHëH‰$H‹\$@H‰\$èH‹\$H‰\$@H‹\$(HƒÃH‰\$(H‹\$(H‹l$ H9ë|¥H‹\$@H‰\$HHƒÄ0Éë§èé@ÿÿÿð (runtime.nilinterhashî 0runtime.morestack_noctxt0` "".autotmp_0099type.int"".autotmp_0098type.int"".i/type.int "".~r2 type.uintptr"".htype.uintptr"".p*type.*[1]interface {}`“_`_ +ÀÀ +wITgclocals·0b86ef39f3fed835f14ba5f4d7c62fa2Tgclocals·33cdeccccebe80329f1fdbee7f5874cb„D:/Code/Go/src/github.com/hacdias/caddy-filemanager/filemanager.goþ0type..eq.[1]interface {}€€eH‹ %(H‹‰H;a†Hƒì`ÆD$xHÇD$8HÇD$0H‹\$8H‹l$0H9ë�ÇH‹\$8H‰\$(H‹\$pHƒû„ÉH‹l$(HÁåHëH‹+H‰l$PH‹kH‰l$XH‹\$hHƒû„–H‹l$(HÁåHëH‹+H‰l$@H‹kH‰l$HH‹\$@H‹l$PH9ëu`H‹l$@H‰,$H‹l$HH‰l$H‹l$PH‰l$H‹l$XH‰l$èŠ\$ €ût+H‹\$8HƒÃH‰\$8H‹\$8H‹l$0H9ëŒ9ÿÿÿÆD$xHƒÄ`ÃÆD$xHƒÄ`Éécÿÿÿ‰é0ÿÿÿèéÅþÿÿÌÌÌÌÌ runtime.efaceeqä 0runtime.morestack_noctxt0À"".autotmp_0103?"type.interface {}"".autotmp_0102"type.interface {}"".autotmp_0101_type.int"".autotmp_0100Otype.int"".iotype.int "".~r2 type.bool"".q*type.*[1]interface {}"".p*type.*[1]interface {},Àú¿À ¿À¿ÀÀ à`Tgclocals·3bb21ca8fe1d99a3e492463bd711418aTgclocals·a8eabfc4a4514ed6b3b0c61e9680e440„D:/Code/Go/src/github.com/hacdias/caddy-filemanager/filemanager.goþJgo.string.hdr."/_filemanagerinternal" Bgo.string."/_filemanagerinternal"þBgo.string."/_filemanagerinternal"0,/_filemanagerinternalþ(go.string.hdr."POST"  go.string."POST"þ go.string."POST" +POSTþ&go.string.hdr."GET" go.string."GET"þgo.string."GET"GETþ"go.string.hdr."/" go.string."/"þgo.string."/"/þ&go.string.hdr."PUT" go.string."PUT"þgo.string."PUT"PUTþ*go.string.hdr."PATCH" "go.string."PATCH"þ"go.string."PATCH" PATCHþ,go.string.hdr."DELETE" $go.string."DELETE"þ$go.string."DELETE"DELETEþ&go.string.hdr."raw" go.string."raw"þgo.string."raw"rawþ(go.string.hdr."true"  go.string."true"þ go.string."true" +trueþ0go.string.hdr."download" (go.string."download"þ(go.string."download" downloadþJgo.string.hdr."attachment; filename=" Bgo.string."attachment; filename="þBgo.string."attachment; filename="0,attachment; filename=þFgo.string.hdr."Content-Disposition" >go.string."Content-Disposition"þ>go.string."Content-Disposition"0(Content-Dispositionþ,go.string.hdr."Upload" $go.string."Upload"þ$go.string."Upload"Uploadþ,go.string.hdr."Search" $go.string."Search"þ$go.string."Search"Searchþ.go.string.hdr."Command" &go.string."Command"þ&go.string."Command"CommandþTgclocals·43e717ff05a16e21da0c5203ba52ee65°° N  0  LþTgclocals·f9b2943b167f617018b61d90820f023cpp ççççççççççççþ>4go.itab.*os.File.io.WriterþTgclocals·2b7f85086a355a5efca6b88a9dc7fbf2ðð-``þ!þ!þ þ`þ¢þªþ"þ þþTgclocals·361e8d7f71115ff960294653b8eed659€€ooooooooooþ0go.string.hdr."Filename" (go.string."Filename"þ(go.string."Filename" FilenameþTgclocals·492b17d31d98902cbe1ccf139babf05700 ÀþTgclocals·ce748d03d2ab07320d9e23dbede7f86d00þ.go.string.hdr."command" &go.string."command"þ&go.string."command"commandþ"go.string.hdr." " go.string." "þgo.string." " þ&go.string.hdr."git" go.string."git"þgo.string."git"gitþ$go.string.hdr."hg" go.string."hg"þgo.string."hg"hgþ&go.string.hdr."svn" go.string."svn"þgo.string."svn"svnþTgclocals·5173164aeb2b87579aca68b061a3b432pp) ÊÊþTgclocals·7ef1b64786b68554f04938873c024f24@@þ(go.string.hdr."http"  go.string."http"þ go.string."http" +httpþ6go.string.hdr."filemanager" .go.string."filemanager"þ.go.string."filemanager" filemanagerþTgclocals·790e5cc5051fc0affc980ade09e929ecþTgclocals·33cdeccccebe80329f1fdbee7f5874cbþTgclocals·6a1806827ace393657a513dcb4ac974e00þTgclocals·197df35d123b8543b316c6de2f24053a00þ>”go.itab."".FileManager.github.com/mholt/caddy/caddyhttp/httpserver.HandlerþTgclocals·5ff4d0de68904761433fad2e82a8b13c þTgclocals·aefd16b155593f6f07980a05b297ad1f þTgclocals·33cdeccccebe80329f1fdbee7f5874cbþTgclocals·33cdeccccebe80329f1fdbee7f5874cbþ>"".initdone·type.uint8þ6"".FileManager.ServeHTTP·f0"".FileManager.ServeHTTPþ"".upload·f"".uploadþ$"".newDirectory·f"".newDirectoryþ "".vcsCommand·f"".vcsCommandþ"".init.1·f"".init.1þ"".setup·f"".setupþ""".setup.func1·f"".setup.func1þ"".init·f"".initþ"runtime.gcbits.01þ.go.string.hdr."[]uint8" &go.string."[]uint8"þ&go.string."[]uint8"[]uint8þtype.[]uint8��ß~.8 +0  runtime.algarray@"runtime.gcbits.01P.go.string.hdr."[]uint8"p*go.weak.type.*[]uint8€type.uint8þ6go.typelink.[]uint8 []uint8type.[]uint8þruntime.gcbits.þ0go.string.hdr."[8]uint8" (go.string."[8]uint8"þ(go.string."[8]uint8" [8]uint8þtype.[8]uint8°°>ù0´‘ 0  runtime.algarray@runtime.gcbits.P0go.string.hdr."[8]uint8"p,go.weak.type.*[8]uint8€type.uint8�type.[]uint8þ:go.typelink.[8]uint8 [8]uint8type.[8]uint8þ0go.string.hdr."[]string" (go.string."[]string"þ(go.string."[]string" []stringþtype.[]string��Ó¨ó + +0  runtime.algarray@"runtime.gcbits.01P0go.string.hdr."[]string"p,go.weak.type.*[]string€type.stringþ:go.typelink.[]string []stringtype.[]stringþTgclocals·33cdeccccebe80329f1fdbee7f5874cbþTgclocals·0b86ef39f3fed835f14ba5f4d7c62fa2þTgclocals·a8eabfc4a4514ed6b3b0c61e9680e440þTgclocals·3bb21ca8fe1d99a3e492463bd711418aþ0type..hashfunc.[8]string(type..hash.[8]stringþ,type..eqfunc.[8]string$type..eq.[8]stringþ&type..alg.[8]string 0type..hashfunc.[8]string,type..eqfunc.[8]stringþ&runtime.gcbits.5555UUþ2go.string.hdr."[8]string" *go.string."[8]string"þ*go.string."[8]string" [8]stringþtype.[8]string°°€xUSŒ> 0&type..alg.[8]string@&runtime.gcbits.5555P2go.string.hdr."[8]string"p.go.weak.type.*[8]string€type.string�type.[]stringþ>go.typelink.[8]string [8]stringtype.[8]stringþHgo.string.hdr."[]*config.UserConfig" @go.string."[]*config.UserConfig"þ@go.string."[]*config.UserConfig"0*[]*config.UserConfigþ|type.[]*github.com/hacdias/caddy-filemanager/config.UserConfig��¿ I] +0  runtime.algarray@"runtime.gcbits.01PHgo.string.hdr."[]*config.UserConfig"pŽgo.weak.type.*[]*github.com/hacdias/caddy-filemanager/config.UserConfig€xtype.*github.com/hacdias/caddy-filemanager/config.UserConfigþ´go.typelink.[]*config.UserConfig []*github.com/hacdias/caddy-filemanager/config.UserConfig|type.[]*github.com/hacdias/caddy-filemanager/config.UserConfigþ type..hashfunc64 @,runtime.memhash_varlenþtype..eqfunc64 @.runtime.memequal_varlenþtype..alg64  type..hashfunc64type..eqfunc64þ"runtime.gcbits.ffÿþJgo.string.hdr."[8]*config.UserConfig" Bgo.string."[8]*config.UserConfig"þBgo.string."[8]*config.UserConfig"0,[8]*config.UserConfigþ~type.[8]*github.com/hacdias/caddy-filemanager/config.UserConfig°°@@tÙ;@ 0type..alg64@"runtime.gcbits.ffPJgo.string.hdr."[8]*config.UserConfig"p�go.weak.type.*[8]*github.com/hacdias/caddy-filemanager/config.UserConfig€xtype.*github.com/hacdias/caddy-filemanager/config.UserConfig�|type.[]*github.com/hacdias/caddy-filemanager/config.UserConfigþ¸go.typelink.[8]*config.UserConfig [8]*github.com/hacdias/caddy-filemanager/config.UserConfig~type.[8]*github.com/hacdias/caddy-filemanager/config.UserConfigþjgo.string.hdr."*map.bucket[string]*config.UserConfig" %bgo.string."*map.bucket[string]*config.UserConfig"þbgo.string."*map.bucket[string]*config.UserConfig"PL*map.bucket[string]*config.UserConfigþžtype.*map.bucket[string]*github.com/hacdias/caddy-filemanager/config.UserConfig��ø�^6 +0  runtime.algarray@"runtime.gcbits.01Pjgo.string.hdr."*map.bucket[string]*config.UserConfig"p°go.weak.type.**map.bucket[string]*github.com/hacdias/caddy-filemanager/config.UserConfig€œtype.map.bucket[string]*github.com/hacdias/caddy-filemanager/config.UserConfigþ.runtime.gcbits.aaaafe03ªªþþhgo.string.hdr."map.bucket[string]*config.UserConfig" $`go.string."map.bucket[string]*config.UserConfig"þ`go.string."map.bucket[string]*config.UserConfig"PJmap.bucket[string]*config.UserConfigþ.go.string.hdr."topbits" &go.string."topbits"þ&go.string."topbits"topbitsþ(go.string.hdr."keys"  go.string."keys"þ go.string."keys" +keysþ,go.string.hdr."values" $go.string."values"þ$go.string."values"valuesþ0go.string.hdr."overflow" (go.string."overflow"þ(go.string."overflow" overflowþœtype.map.bucket[string]*github.com/hacdias/caddy-filemanager/config.UserConfigððÐÐUÆØ"ˆÈ0à runtime.algarray@.runtime.gcbits.aaaafe03Phgo.string.hdr."map.bucket[string]*config.UserConfig"p®go.weak.type.*map.bucket[string]*github.com/hacdias/caddy-filemanager/config.UserConfig€°œtype.map.bucket[string]*github.com/hacdias/caddy-filemanager/config.UserConfig°.go.string.hdr."topbits"Ðtype.[8]uint8€(go.string.hdr."keys" type.[8]stringÐ,go.string.hdr."values"ð~type.[8]*github.com/hacdias/caddy-filemanager/config.UserConfig 0go.string.hdr."overflow"Àžtype.*map.bucket[string]*github.com/hacdias/caddy-filemanager/config.UserConfigþ"runtime.gcbits.2c,þbgo.string.hdr."map.hdr[string]*config.UserConfig" !Zgo.string."map.hdr[string]*config.UserConfig"þZgo.string."map.hdr[string]*config.UserConfig"PDmap.hdr[string]*config.UserConfigþ*go.string.hdr."count" "go.string."count"þ"go.string."count" countþ*go.string.hdr."flags" "go.string."flags"þ"go.string."flags" flagsþ"go.string.hdr."B" go.string."B"þgo.string."B"Bþ*go.string.hdr."hash0" "go.string."hash0"þ"go.string."hash0" hash0þ.go.string.hdr."buckets" &go.string."buckets"þ&go.string."buckets"bucketsþ4go.string.hdr."oldbuckets" +,go.string."oldbuckets"þ,go.string."oldbuckets" oldbucketsþ2go.string.hdr."nevacuate" *go.string."nevacuate"þ*go.string."nevacuate" nevacuateþ–type.map.hdr[string]*github.com/hacdias/caddy-filemanager/config.UserConfig°°00Kî  (*0à runtime.algarray@"runtime.gcbits.2cPbgo.string.hdr."map.hdr[string]*config.UserConfig"p¨go.weak.type.*map.hdr[string]*github.com/hacdias/caddy-filemanager/config.UserConfig€°–type.map.hdr[string]*github.com/hacdias/caddy-filemanager/config.UserConfig°*go.string.hdr."count"Ðtype.int€*go.string.hdr."flags" type.uint8Ð"go.string.hdr."B"ðtype.uint8 *go.string.hdr."hash0"Àtype.uint32ð.go.string.hdr."buckets"�žtype.*map.bucket[string]*github.com/hacdias/caddy-filemanager/config.UserConfigÀ4go.string.hdr."oldbuckets"àžtype.*map.bucket[string]*github.com/hacdias/caddy-filemanager/config.UserConfig�2go.string.hdr."nevacuate"°type.uintptrà0go.string.hdr."overflow"€&type.unsafe.PointerþZgo.string.hdr."map[string]*config.UserConfig" Rgo.string."map[string]*config.UserConfig"þRgo.string."map[string]*config.UserConfig"@go.string.hdr."[]config.Config" 6go.string."[]config.Config"þ6go.string."[]config.Config" []config.Configþrtype.[]github.com/hacdias/caddy-filemanager/config.Config��jÜ�¹ +0  runtime.algarray@"runtime.gcbits.01P>go.string.hdr."[]config.Config"p„go.weak.type.*[]github.com/hacdias/caddy-filemanager/config.Config€ntype.github.com/hacdias/caddy-filemanager/config.Configþ go.typelink.[]config.Config []github.com/hacdias/caddy-filemanager/config.Configrtype.[]github.com/hacdias/caddy-filemanager/config.ConfigþPgo.string.hdr."*filemanager.FileManager" Hgo.string."*filemanager.FileManager"þHgo.string."*filemanager.FileManager"@2*filemanager.FileManagerþ6go.string.hdr."FileManager" .go.string."FileManager"þ.go.string."FileManager" FileManagerþ2go.string.hdr."ServeHTTP" *go.string."ServeHTTP"þ*go.string."ServeHTTP" ServeHTTPþTgclocals·23e8278e2b69a3a75fa59b23c49ed6adþTgclocals·a5947a078ff8f32dc378f6b0b238531dþ¾go.string.hdr."func(*filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)" O¶go.string."func(*filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)"þ¶go.string."func(*filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)"  func(*filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)þ¦type.func(*"".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)ÀÀï30€ runtime.algarray@"runtime.gcbits.01P¾go.string.hdr."func(*filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)"p¸go.weak.type.*func(*"".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)�ð¦type.func(*"".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)À ¦type.func(*"".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)ð(type.*"".FileManager€8type.net/http.ResponseWriter�,type.*net/http.Request type.int°type.errorþÔgo.typelink.func(*filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error) func(*"".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)¦type.func(*"".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)þŠgo.string.hdr."func(http.ResponseWriter, *http.Request) (int, error)" 5‚go.string."func(http.ResponseWriter, *http.Request) (int, error)"þ‚go.string."func(http.ResponseWriter, *http.Request) (int, error)"plfunc(http.ResponseWriter, *http.Request) (int, error)þ„type.func(net/http.ResponseWriter, *net/http.Request) (int, error)°°¬êR×30€ runtime.algarray@"runtime.gcbits.01PŠgo.string.hdr."func(http.ResponseWriter, *http.Request) (int, error)"p–go.weak.type.*func(net/http.ResponseWriter, *net/http.Request) (int, error)�ð„type.func(net/http.ResponseWriter, *net/http.Request) (int, error)À�„type.func(net/http.ResponseWriter, *net/http.Request) (int, error)ð8type.net/http.ResponseWriter€,type.*net/http.Request�type.int type.errorþþgo.typelink.func(http.ResponseWriter, *http.Request) (int, error) func(net/http.ResponseWriter, *net/http.Request) (int, error)„type.func(net/http.ResponseWriter, *net/http.Request) (int, error)þ(type.*"".FileManagerÀÀöÝÜ60  runtime.algarray@"runtime.gcbits.01PPgo.string.hdr."*filemanager.FileManager"p:go.weak.type.**"".FileManager€&type."".FileManager`�(type.*"".FileManager°à(type.*"".FileManagerà2go.string.hdr."ServeHTTP"€„type.func(net/http.ResponseWriter, *net/http.Request) (int, error)�¦type.func(*"".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error) 6"".(*FileManager).ServeHTTP°6"".(*FileManager).ServeHTTPþ"runtime.gcbits.07þNgo.string.hdr."filemanager.FileManager" Fgo.string."filemanager.FileManager"þFgo.string."filemanager.FileManager"00filemanager.FileManagerþ(go.string.hdr."Next"  go.string."Next"þ go.string."Next" +Nextþ.go.string.hdr."Configs" &go.string."Configs"þ&go.string."Configs"Configsþ¼go.string.hdr."func(filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)" N´go.string."func(filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)"þ´go.string."func(filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)" žfunc(filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)þ¤type.func("".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)ÀÀhâÔ/30€ runtime.algarray@"runtime.gcbits.01P¼go.string.hdr."func(filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error)"p¶go.weak.type.*func("".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)�ð¤type.func("".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)À ¤type.func("".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)ð&type."".FileManager€8type.net/http.ResponseWriter�,type.*net/http.Request type.int°type.errorþÐgo.typelink.func(filemanager.FileManager, http.ResponseWriter, *http.Request) (int, error) func("".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)¤type.func("".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)þhgo.string.hdr."github.com/hacdias/caddy-filemanager" $`go.string."github.com/hacdias/caddy-filemanager"þ`go.string."github.com/hacdias/caddy-filemanager"PJgithub.com/hacdias/caddy-filemanagerþ"go.importpath."". $`go.string."github.com/hacdias/caddy-filemanager"þ&type."".FileManager€€(ß]W\$0à runtime.algarray@"runtime.gcbits.07PNgo.string.hdr."filemanager.FileManager"p(type.*"".FileManager€°&type."".FileManager°(go.string.hdr."Next"Ðptype.github.com/mholt/caddy/caddyhttp/httpserver.Handler€.go.string.hdr."Configs" rtype.[]github.com/hacdias/caddy-filemanager/config.Config`Ð&type."".FileManagerÐ6go.string.hdr."FileManager"à"go.importpath."".ð &type."".FileManager 2go.string.hdr."ServeHTTP"À„type.func(net/http.ResponseWriter, *net/http.Request) (int, error)Фtype.func("".FileManager, net/http.ResponseWriter, *net/http.Request) (int, error)à6"".(*FileManager).ServeHTTPð0"".FileManager.ServeHTTPþ type..hashfunc32 ,runtime.memhash_varlenþtype..eqfunc32 .runtime.memequal_varlenþtype..alg32  type..hashfunc32type..eqfunc32þ2go.string.hdr."[32]uint8" *go.string."[32]uint8"þ*go.string."[32]uint8" [32]uint8þtype.[32]uint8°° œYÿ¨‘ 0type..alg32@runtime.gcbits.P2go.string.hdr."[32]uint8"p.go.weak.type.*[32]uint8€type.uint8�type.[]uint8þ>go.typelink.[32]uint8 [32]uint8type.[32]uint8þ2go.string.hdr."*[]string" *go.string."*[]string"þ*go.string."*[]string" *[]stringþtype.*[]string��’"v„6 +0  runtime.algarray@"runtime.gcbits.01P2go.string.hdr."*[]string"p.go.weak.type.**[]string€type.[]stringþNgo.string.hdr."[]*multipart.FileHeader" Fgo.string."[]*multipart.FileHeader"þFgo.string."[]*multipart.FileHeader"00[]*multipart.FileHeaderþBtype.[]*mime/multipart.FileHeader��./Eò +0  runtime.algarray@"runtime.gcbits.01PNgo.string.hdr."[]*multipart.FileHeader"pTgo.weak.type.*[]*mime/multipart.FileHeader€>type.*mime/multipart.FileHeaderþ€go.typelink.[]*multipart.FileHeader []*mime/multipart.FileHeaderBtype.[]*mime/multipart.FileHeaderþRgo.string.hdr."[][]*multipart.FileHeader" Jgo.string."[][]*multipart.FileHeader"þJgo.string."[][]*multipart.FileHeader"@4[][]*multipart.FileHeaderþFtype.[][]*mime/multipart.FileHeader��à"@  +0  runtime.algarray@"runtime.gcbits.01PRgo.string.hdr."[][]*multipart.FileHeader"pXgo.weak.type.*[][]*mime/multipart.FileHeader€Btype.[]*mime/multipart.FileHeaderþˆgo.typelink.[][]*multipart.FileHeader [][]*mime/multipart.FileHeaderFtype.[][]*mime/multipart.FileHeaderþ*runtime.gcbits.499224I’$þTgo.string.hdr."[8][]*multipart.FileHeader" Lgo.string."[8][]*multipart.FileHeader"þLgo.string."[8][]*multipart.FileHeader"@6[8][]*multipart.FileHeaderþHtype.[8][]*mime/multipart.FileHeader°°À°/?Ð 0à runtime.algarray@*runtime.gcbits.499224PTgo.string.hdr."[8][]*multipart.FileHeader"pZgo.weak.type.*[8][]*mime/multipart.FileHeader€Btype.[]*mime/multipart.FileHeader�Ftype.[][]*mime/multipart.FileHeaderþŒgo.typelink.[8][]*multipart.FileHeader [8][]*mime/multipart.FileHeaderHtype.[8][]*mime/multipart.FileHeaderþtgo.string.hdr."*map.bucket[string][]*multipart.FileHeader" *lgo.string."*map.bucket[string][]*multipart.FileHeader"þlgo.string."*map.bucket[string][]*multipart.FileHeader"`V*map.bucket[string][]*multipart.FileHeaderþhtype.*map.bucket[string][]*mime/multipart.FileHeader��›àëÓ6 +0  runtime.algarray@"runtime.gcbits.01Ptgo.string.hdr."*map.bucket[string][]*multipart.FileHeader"pzgo.weak.type.**map.bucket[string][]*mime/multipart.FileHeader€ftype.map.bucket[string][]*mime/multipart.FileHeaderþ6runtime.gcbits.aaaa92244902 ªª’$Iþrgo.string.hdr."map.bucket[string][]*multipart.FileHeader" )jgo.string."map.bucket[string][]*multipart.FileHeader"þjgo.string."map.bucket[string][]*multipart.FileHeader"`Tmap.bucket[string][]*multipart.FileHeaderþftype.map.bucket[string][]*mime/multipart.FileHeaderððPPÞÓ?¶ˆH0à runtime.algarray@6runtime.gcbits.aaaa92244902Prgo.string.hdr."map.bucket[string][]*multipart.FileHeader"pxgo.weak.type.*map.bucket[string][]*mime/multipart.FileHeader€°ftype.map.bucket[string][]*mime/multipart.FileHeader°.go.string.hdr."topbits"Ðtype.[8]uint8€(go.string.hdr."keys" type.[8]stringÐ,go.string.hdr."values"ðHtype.[8][]*mime/multipart.FileHeader 0go.string.hdr."overflow"Àhtype.*map.bucket[string][]*mime/multipart.FileHeaderþlgo.string.hdr."map.hdr[string][]*multipart.FileHeader" &dgo.string."map.hdr[string][]*multipart.FileHeader"þdgo.string."map.hdr[string][]*multipart.FileHeader"PNmap.hdr[string][]*multipart.FileHeaderþ`type.map.hdr[string][]*mime/multipart.FileHeader°°00 bbk  (*0à runtime.algarray@"runtime.gcbits.2cPlgo.string.hdr."map.hdr[string][]*multipart.FileHeader"prgo.weak.type.*map.hdr[string][]*mime/multipart.FileHeader€°`type.map.hdr[string][]*mime/multipart.FileHeader°*go.string.hdr."count"Ðtype.int€*go.string.hdr."flags" type.uint8Ð"go.string.hdr."B"ðtype.uint8 *go.string.hdr."hash0"Àtype.uint32ð.go.string.hdr."buckets"�htype.*map.bucket[string][]*mime/multipart.FileHeaderÀ4go.string.hdr."oldbuckets"àhtype.*map.bucket[string][]*mime/multipart.FileHeader�2go.string.hdr."nevacuate"°type.uintptrà0go.string.hdr."overflow"€&type.unsafe.Pointerþdgo.string.hdr."map[string][]*multipart.FileHeader" "\go.string."map[string][]*multipart.FileHeader"þ\go.string."map[string][]*multipart.FileHeader"PFmap[string][]*multipart.FileHeaderþXtype.map[string][]*mime/multipart.FileHeaderÐФ‡þ»5P0€ runtime.algarray@"runtime.gcbits.01Pdgo.string.hdr."map[string][]*multipart.FileHeader"pjgo.weak.type.*map[string][]*mime/multipart.FileHeader€type.string�Btype.[]*mime/multipart.FileHeader ftype.map.bucket[string][]*mime/multipart.FileHeader°`type.map.hdr[string][]*mime/multipart.FileHeaderþ¬go.typelink.map[string][]*multipart.FileHeader map[string][]*mime/multipart.FileHeaderXtype.map[string][]*mime/multipart.FileHeaderþPgo.string.hdr."*[]*multipart.FileHeader" Hgo.string."*[]*multipart.FileHeader"þHgo.string."*[]*multipart.FileHeader"@2*[]*multipart.FileHeaderþDtype.*[]*mime/multipart.FileHeader��ŠEÖ–6 +0  runtime.algarray@"runtime.gcbits.01PPgo.string.hdr."*[]*multipart.FileHeader"pVgo.weak.type.**[]*mime/multipart.FileHeader€Btype.[]*mime/multipart.FileHeaderþngo.string.hdr."*map.hdr[string][]*multipart.FileHeader" 'fgo.string."*map.hdr[string][]*multipart.FileHeader"þfgo.string."*map.hdr[string][]*multipart.FileHeader"PP*map.hdr[string][]*multipart.FileHeaderþbtype.*map.hdr[string][]*mime/multipart.FileHeader��®g0L6 +0  runtime.algarray@"runtime.gcbits.01Pngo.string.hdr."*map.hdr[string][]*multipart.FileHeader"ptgo.weak.type.**map.hdr[string][]*mime/multipart.FileHeader€`type.map.hdr[string][]*mime/multipart.FileHeaderþngo.string.hdr."map.iter[string][]*multipart.FileHeader" 'fgo.string."map.iter[string][]*multipart.FileHeader"þfgo.string."map.iter[string][]*multipart.FileHeader"PPmap.iter[string][]*multipart.FileHeaderþ&go.string.hdr."key" go.string."key"þgo.string."key"keyþ&go.string.hdr."val" go.string."val"þgo.string."val"valþ"go.string.hdr."t" go.string."t"þgo.string."t"tþ"go.string.hdr."h" go.string."h"þgo.string."h"hþ(go.string.hdr."bptr"  go.string."bptr"þ go.string."bptr" +bptrþ2go.string.hdr."overflow0" *go.string."overflow0"þ*go.string."overflow0" overflow0þ2go.string.hdr."overflow1" *go.string."overflow1"þ*go.string."overflow1" overflow1þ6go.string.hdr."startBucket" .go.string."startBucket"þ.go.string."startBucket" startBucketþ*go.string.hdr."stuff" "go.string."stuff"þ"go.string."stuff" stuffþ,go.string.hdr."bucket" $go.string."bucket"þ$go.string."bucket"bucketþ6go.string.hdr."checkBucket" .go.string."checkBucket"þ.go.string."checkBucket" checkBucketþbtype.map.iter[string][]*mime/multipart.FileHeaderðð`@3XŽv  (08@HPX:0à runtime.algarray@"runtime.gcbits.ffPngo.string.hdr."map.iter[string][]*multipart.FileHeader"ptgo.weak.type.*map.iter[string][]*mime/multipart.FileHeader€°btype.map.iter[string][]*mime/multipart.FileHeader°&go.string.hdr."key"Ðtype.*string€&go.string.hdr."val" Dtype.*[]*mime/multipart.FileHeaderÐ"go.string.hdr."t"ðtype.*uint8 "go.string.hdr."h"Àbtype.*map.hdr[string][]*mime/multipart.FileHeaderð.go.string.hdr."buckets"�htype.*map.bucket[string][]*mime/multipart.FileHeaderÀ(go.string.hdr."bptr"àhtype.*map.bucket[string][]*mime/multipart.FileHeader�2go.string.hdr."overflow0"°&type.unsafe.Pointerà2go.string.hdr."overflow1"€&type.unsafe.Pointer°6go.string.hdr."startBucket"Ðtype.uintptr€*go.string.hdr."stuff" type.uintptrÐ,go.string.hdr."bucket"ðtype.uintptr 6go.string.hdr."checkBucket"Àtype.uintptrþ"runtime.gcbits.03þ8go.string.hdr."interface {}" 0go.string."interface {}"þ0go.string."interface {}" interface {}þ"type.interface {}°°çW  +0€ runtime.algarray@"runtime.gcbits.03P8go.string.hdr."interface {}"p4go.weak.type.*interface {}€°"type.interface {}þgo.string.hdr."[1]interface {}" 6go.string."[1]interface {}"þ6go.string."[1]interface {}" [1]interface {}þ(type.[1]interface {}°°P‘[ú 02type..alg.[1]interface {}@"runtime.gcbits.03P>go.string.hdr."[1]interface {}"p:go.weak.type.*[1]interface {}€"type.interface {}�&type.[]interface {}þVgo.typelink.[1]interface {} [1]interface {}(type.[1]interface {}þ@go.string.hdr."*[1]interface {}" 8go.string."*[1]interface {}"þ8go.string."*[1]interface {}"0"*[1]interface {}þ*type.*[1]interface {}��¿¨56 +0  runtime.algarray@"runtime.gcbits.01P@go.string.hdr."*[1]interface {}"ptype.*mime/multipart.FileHeaderþ"runtime.gcbits.02þzgo.string.hdr."struct { F uintptr; configs []config.Config }" -rgo.string."struct { F uintptr; configs []config.Config }"þrgo.string."struct { F uintptr; configs []config.Config }"`\struct { F uintptr; configs []config.Config }þ$go.string.hdr.".F" go.string.".F"þgo.string.".F".Fþ.go.string.hdr."configs" &go.string."configs"þ&go.string."configs"configsþ®type.struct { F uintptr; configs []github.com/hacdias/caddy-filemanager/config.Config }ÐÐ ·ÝBX0à runtime.algarray@"runtime.gcbits.02Pzgo.string.hdr."struct { F uintptr; configs []config.Config }"pÀgo.weak.type.*struct { F uintptr; configs []github.com/hacdias/caddy-filemanager/config.Config }€°®type.struct { F uintptr; configs []github.com/hacdias/caddy-filemanager/config.Config }°$go.string.hdr.".F"À"go.importpath."".Ðtype.uintptr€.go.string.hdr."configs"�"go.importpath."". rtype.[]github.com/hacdias/caddy-filemanager/config.Configþ|go.string.hdr."*struct { F uintptr; configs []config.Config }" .tgo.string."*struct { F uintptr; configs []config.Config }"þtgo.string."*struct { F uintptr; configs []config.Config }"`^*struct { F uintptr; configs []config.Config }þ°type.*struct { F uintptr; configs []github.com/hacdias/caddy-filemanager/config.Config }��PÓ6 +0  runtime.algarray@"runtime.gcbits.01P|go.string.hdr."*struct { F uintptr; configs []config.Config }"pÂgo.weak.type.**struct { F uintptr; configs []github.com/hacdias/caddy-filemanager/config.Config }€®type.struct { F uintptr; configs []github.com/hacdias/caddy-filemanager/config.Config }þ@go.string.hdr."*[]config.Config" 8go.string."*[]config.Config"þ8go.string."*[]config.Config"0"*[]config.Configþttype.*[]github.com/hacdias/caddy-filemanager/config.Config��íó·6 +0  runtime.algarray@"runtime.gcbits.01P@go.string.hdr."*[]config.Config"p†go.weak.type.**[]github.com/hacdias/caddy-filemanager/config.Config€rtype.[]github.com/hacdias/caddy-filemanager/config.Configþ4go.string.hdr."*[8]string" +,go.string."*[8]string"þ,go.string."*[8]string" *[8]stringþtype.*[8]string��­”o6 +0  runtime.algarray@"runtime.gcbits.01P4go.string.hdr."*[8]string"p0go.weak.type.**[8]string€type.[8]stringþ$go.string.hdr."io" go.string."io"þgo.string."io"ioþ"go.importpath.io. go.string."io"þ2go.string.hdr."io/ioutil" *go.string."io/ioutil"þ*go.string."io/ioutil" io/ioutilþ0go.importpath.io/ioutil. *go.string."io/ioutil"þ$go.string.hdr."os" go.string."os"þgo.string."os"osþ"go.importpath.os. go.string."os"þ:go.string.hdr."path/filepath" 2go.string."path/filepath"þ2go.string."path/filepath" path/filepathþ8go.importpath.path/filepath. 2go.string."path/filepath"þ&go.string.hdr."log" go.string."log"þgo.string."log"logþ$go.importpath.log. go.string."log"þ