From 797d43f7df82472cc0bcd9597bd5977aa9f48860 Mon Sep 17 00:00:00 2001 From: Kevin Schoon Date: Thu, 1 Feb 2018 09:44:56 -0500 Subject: [PATCH] update dependencies --- Gopkg.lock | 8 +- vendor/github.com/0xAX/notificator/.gitignore | 25 + vendor/github.com/0xAX/notificator/LICENSE | 27 + vendor/github.com/0xAX/notificator/README.md | 49 + .../0xAX/notificator/example/main.go | 24 + .../0xAX/notificator/icon/golang.png | Bin 0 -> 37980 bytes .../0xAX/notificator/notification.go | 166 + vendor/github.com/gizak/termui/_docs/about.md | 0 .../gizak/termui/_docs/components.md | 32 + .../github.com/gizak/termui/_docs/events.md | 14 + .../gizak/termui/_docs/img/dashboard.gif | Bin 0 -> 155984 bytes .../gizak/termui/_docs/img/demo1.png | Bin 0 -> 127647 bytes vendor/github.com/gizak/termui/_docs/index.md | 15 + .../github.com/gizak/termui/_docs/layouts.md | 26 + .../gizak/termui/_docs/quickstart.md | 80 + .../github.com/gizak/termui/_docs/recipes.md | 1 + .../github.com/gizak/termui/_docs/themes.md | 0 .../github.com/gizak/termui/_docs/versions.md | 0 .../gizak/termui/_example/barchart.go | 36 + .../gizak/termui/_example/barchart.png | Bin 0 -> 17812 bytes .../gizak/termui/_example/dashboard.gif | Bin 0 -> 155984 bytes .../gizak/termui/_example/dashboard.go | 142 + .../github.com/gizak/termui/_example/gauge.go | 84 + .../gizak/termui/_example/gauge.png | Bin 0 -> 52710 bytes .../github.com/gizak/termui/_example/grid.gif | Bin 0 -> 800288 bytes .../github.com/gizak/termui/_example/grid.go | 122 + .../gizak/termui/_example/linechart.go | 71 + .../gizak/termui/_example/linechart.png | Bin 0 -> 86642 bytes .../github.com/gizak/termui/_example/list.go | 44 + .../github.com/gizak/termui/_example/list.png | Bin 0 -> 28586 bytes .../gizak/termui/_example/mbarchart.go | 54 + .../gizak/termui/_example/mbarchart.png | Bin 0 -> 72447 bytes .../github.com/gizak/termui/_example/par.go | 52 + .../github.com/gizak/termui/_example/par.png | Bin 0 -> 46080 bytes .../gizak/termui/_example/sparklines.go | 69 + .../gizak/termui/_example/sparklines.png | Bin 0 -> 49102 bytes .../github.com/gizak/termui/_example/table.go | 56 + .../gizak/termui/_example/table.png | Bin 0 -> 46987 bytes .../github.com/gizak/termui/_example/tabs.go | 83 + .../github.com/gizak/termui/_example/theme.go | 143 + .../gizak/termui/_example/themedefault.png | Bin 0 -> 105508 bytes .../gizak/termui/_example/themehelloworld.png | Bin 0 -> 90111 bytes .../github.com/gizak/termui/_example/ttop.go | 369 +++ .../gizak/termui/_example/wrappar.go | 35 + .../github.com/gizak/termui/debug/debuger.go | 117 + .../github.com/gizak/termui/extra/tabpane.go | 265 ++ .../github.com/gizak/termui/test/runtest.go | 66 + .../jawher/mow.cli/testdata/help-output.txt | 45 + .../mow.cli/testdata/long-help-output.txt | 10 + .../maruel/panicparse/cmd/pp/main.go | 31 + .../panicparse/internal/goversion1.6.go | 11 + .../maruel/panicparse/internal/goversion1.go | 12 + .../maruel/panicparse/internal/main.go | 139 + .../maruel/panicparse/internal/main_test.go | 122 + .../maruel/panicparse/internal/panic/main.go | 152 + .../go-colorable/_example/escape-seq/main.go | 16 + .../go-colorable/_example/logrus/main.go | 16 + .../mattn/go-colorable/_example/title/main.go | 14 + .../go-sqlite3/_example/custom_func/main.go | 133 + .../mattn/go-sqlite3/_example/hook/hook.go | 78 + .../mattn/go-sqlite3/_example/limit/limit.go | 113 + .../go-sqlite3/_example/mod_regexp/Makefile | 22 + .../_example/mod_regexp/extension.go | 43 + .../_example/mod_regexp/sqlite3_mod_regexp.c | 31 + .../go-sqlite3/_example/mod_vtable/Makefile | 24 + .../_example/mod_vtable/extension.go | 37 + .../go-sqlite3/_example/mod_vtable/picojson.h | 1040 +++++++ .../_example/mod_vtable/sqlite3_mod_vtable.cc | 238 ++ .../go-sqlite3/_example/simple/simple.go | 106 + .../mattn/go-sqlite3/_example/trace/main.go | 264 ++ .../mattn/go-sqlite3/_example/vtable/main.go | 38 + .../go-sqlite3/_example/vtable/vtable.go | 111 + .../mattn/go-sqlite3/tool/upgrade.go | 111 + .../nsf/termbox-go/_demos/editbox.go | 300 ++ .../nsf/termbox-go/_demos/interrupt.go | 69 + .../nsf/termbox-go/_demos/keyboard.go | 722 +++++ .../nsf/termbox-go/_demos/output.go | 228 ++ .../github.com/nsf/termbox-go/_demos/paint.go | 105 + .../nsf/termbox-go/_demos/random_output.go | 46 + .../nsf/termbox-go/_demos/raw_input.go | 109 + vendor/golang.org/x/sys/plan9/asm.s | 8 + vendor/golang.org/x/sys/plan9/asm_plan9_386.s | 30 + .../golang.org/x/sys/plan9/asm_plan9_amd64.s | 30 + vendor/golang.org/x/sys/plan9/const_plan9.go | 70 + vendor/golang.org/x/sys/plan9/dir_plan9.go | 212 ++ vendor/golang.org/x/sys/plan9/env_plan9.go | 31 + vendor/golang.org/x/sys/plan9/errors_plan9.go | 50 + vendor/golang.org/x/sys/plan9/mkall.sh | 138 + vendor/golang.org/x/sys/plan9/mkerrors.sh | 246 ++ vendor/golang.org/x/sys/plan9/mksyscall.pl | 319 ++ .../golang.org/x/sys/plan9/mksysnum_plan9.sh | 23 + .../golang.org/x/sys/plan9/pwd_go15_plan9.go | 21 + vendor/golang.org/x/sys/plan9/pwd_plan9.go | 23 + vendor/golang.org/x/sys/plan9/race.go | 30 + vendor/golang.org/x/sys/plan9/race0.go | 25 + vendor/golang.org/x/sys/plan9/str.go | 22 + vendor/golang.org/x/sys/plan9/syscall.go | 74 + .../golang.org/x/sys/plan9/syscall_plan9.go | 349 +++ vendor/golang.org/x/sys/plan9/syscall_test.go | 33 + .../x/sys/plan9/zsyscall_plan9_386.go | 292 ++ .../x/sys/plan9/zsyscall_plan9_amd64.go | 292 ++ .../golang.org/x/sys/plan9/zsysnum_plan9.go | 49 + vendor/golang.org/x/sys/unix/linux/Dockerfile | 51 + vendor/golang.org/x/sys/unix/linux/mkall.go | 482 +++ .../golang.org/x/sys/unix/linux/mksysnum.pl | 85 + vendor/golang.org/x/sys/unix/linux/types.go | 645 ++++ .../x/sys/windows/asm_windows_386.s | 13 + .../x/sys/windows/asm_windows_amd64.s | 13 + .../golang.org/x/sys/windows/dll_windows.go | 378 +++ .../golang.org/x/sys/windows/env_windows.go | 29 + vendor/golang.org/x/sys/windows/eventlog.go | 20 + .../golang.org/x/sys/windows/exec_windows.go | 97 + .../x/sys/windows/memory_windows.go | 26 + vendor/golang.org/x/sys/windows/mksyscall.go | 7 + vendor/golang.org/x/sys/windows/race.go | 30 + vendor/golang.org/x/sys/windows/race0.go | 25 + .../x/sys/windows/registry/export_test.go | 11 + .../golang.org/x/sys/windows/registry/key.go | 200 ++ .../x/sys/windows/registry/mksyscall.go | 7 + .../x/sys/windows/registry/registry_test.go | 756 +++++ .../x/sys/windows/registry/syscall.go | 32 + .../x/sys/windows/registry/value.go | 384 +++ .../sys/windows/registry/zsyscall_windows.go | 120 + .../x/sys/windows/security_windows.go | 476 +++ vendor/golang.org/x/sys/windows/service.go | 164 + vendor/golang.org/x/sys/windows/str.go | 22 + .../golang.org/x/sys/windows/svc/debug/log.go | 56 + .../x/sys/windows/svc/debug/service.go | 45 + vendor/golang.org/x/sys/windows/svc/event.go | 48 + .../x/sys/windows/svc/eventlog/install.go | 80 + .../x/sys/windows/svc/eventlog/log.go | 70 + .../x/sys/windows/svc/eventlog/log_test.go | 51 + .../x/sys/windows/svc/example/beep.go | 22 + .../x/sys/windows/svc/example/install.go | 92 + .../x/sys/windows/svc/example/main.go | 76 + .../x/sys/windows/svc/example/manage.go | 62 + .../x/sys/windows/svc/example/service.go | 82 + vendor/golang.org/x/sys/windows/svc/go12.c | 24 + vendor/golang.org/x/sys/windows/svc/go12.go | 11 + vendor/golang.org/x/sys/windows/svc/go13.go | 31 + .../x/sys/windows/svc/mgr/config.go | 139 + .../golang.org/x/sys/windows/svc/mgr/mgr.go | 162 + .../x/sys/windows/svc/mgr/mgr_test.go | 169 ++ .../x/sys/windows/svc/mgr/service.go | 72 + .../golang.org/x/sys/windows/svc/security.go | 62 + .../golang.org/x/sys/windows/svc/service.go | 363 +++ .../golang.org/x/sys/windows/svc/svc_test.go | 118 + vendor/golang.org/x/sys/windows/svc/sys_386.s | 68 + .../golang.org/x/sys/windows/svc/sys_amd64.s | 42 + vendor/golang.org/x/sys/windows/syscall.go | 71 + .../golang.org/x/sys/windows/syscall_test.go | 53 + .../x/sys/windows/syscall_windows.go | 1153 +++++++ .../x/sys/windows/syscall_windows_test.go | 107 + .../golang.org/x/sys/windows/types_windows.go | 1333 ++++++++ .../x/sys/windows/types_windows_386.go | 22 + .../x/sys/windows/types_windows_amd64.go | 22 + .../x/sys/windows/zsyscall_windows.go | 2687 +++++++++++++++++ 157 files changed, 20643 insertions(+), 1 deletion(-) create mode 100644 vendor/github.com/0xAX/notificator/.gitignore create mode 100644 vendor/github.com/0xAX/notificator/LICENSE create mode 100644 vendor/github.com/0xAX/notificator/README.md create mode 100644 vendor/github.com/0xAX/notificator/example/main.go create mode 100644 vendor/github.com/0xAX/notificator/icon/golang.png create mode 100644 vendor/github.com/0xAX/notificator/notification.go create mode 100644 vendor/github.com/gizak/termui/_docs/about.md create mode 100644 vendor/github.com/gizak/termui/_docs/components.md create mode 100644 vendor/github.com/gizak/termui/_docs/events.md create mode 100644 vendor/github.com/gizak/termui/_docs/img/dashboard.gif create mode 100644 vendor/github.com/gizak/termui/_docs/img/demo1.png create mode 100644 vendor/github.com/gizak/termui/_docs/index.md create mode 100644 vendor/github.com/gizak/termui/_docs/layouts.md create mode 100644 vendor/github.com/gizak/termui/_docs/quickstart.md create mode 100644 vendor/github.com/gizak/termui/_docs/recipes.md create mode 100644 vendor/github.com/gizak/termui/_docs/themes.md create mode 100644 vendor/github.com/gizak/termui/_docs/versions.md create mode 100644 vendor/github.com/gizak/termui/_example/barchart.go create mode 100644 vendor/github.com/gizak/termui/_example/barchart.png create mode 100644 vendor/github.com/gizak/termui/_example/dashboard.gif create mode 100644 vendor/github.com/gizak/termui/_example/dashboard.go create mode 100644 vendor/github.com/gizak/termui/_example/gauge.go create mode 100644 vendor/github.com/gizak/termui/_example/gauge.png create mode 100644 vendor/github.com/gizak/termui/_example/grid.gif create mode 100644 vendor/github.com/gizak/termui/_example/grid.go create mode 100644 vendor/github.com/gizak/termui/_example/linechart.go create mode 100644 vendor/github.com/gizak/termui/_example/linechart.png create mode 100644 vendor/github.com/gizak/termui/_example/list.go create mode 100644 vendor/github.com/gizak/termui/_example/list.png create mode 100644 vendor/github.com/gizak/termui/_example/mbarchart.go create mode 100644 vendor/github.com/gizak/termui/_example/mbarchart.png create mode 100644 vendor/github.com/gizak/termui/_example/par.go create mode 100644 vendor/github.com/gizak/termui/_example/par.png create mode 100644 vendor/github.com/gizak/termui/_example/sparklines.go create mode 100644 vendor/github.com/gizak/termui/_example/sparklines.png create mode 100644 vendor/github.com/gizak/termui/_example/table.go create mode 100644 vendor/github.com/gizak/termui/_example/table.png create mode 100644 vendor/github.com/gizak/termui/_example/tabs.go create mode 100644 vendor/github.com/gizak/termui/_example/theme.go create mode 100644 vendor/github.com/gizak/termui/_example/themedefault.png create mode 100644 vendor/github.com/gizak/termui/_example/themehelloworld.png create mode 100644 vendor/github.com/gizak/termui/_example/ttop.go create mode 100644 vendor/github.com/gizak/termui/_example/wrappar.go create mode 100644 vendor/github.com/gizak/termui/debug/debuger.go create mode 100644 vendor/github.com/gizak/termui/extra/tabpane.go create mode 100644 vendor/github.com/gizak/termui/test/runtest.go create mode 100644 vendor/github.com/jawher/mow.cli/testdata/help-output.txt create mode 100644 vendor/github.com/jawher/mow.cli/testdata/long-help-output.txt create mode 100644 vendor/github.com/maruel/panicparse/cmd/pp/main.go create mode 100644 vendor/github.com/maruel/panicparse/internal/goversion1.6.go create mode 100644 vendor/github.com/maruel/panicparse/internal/goversion1.go create mode 100644 vendor/github.com/maruel/panicparse/internal/main.go create mode 100644 vendor/github.com/maruel/panicparse/internal/main_test.go create mode 100644 vendor/github.com/maruel/panicparse/internal/panic/main.go create mode 100644 vendor/github.com/mattn/go-colorable/_example/escape-seq/main.go create mode 100644 vendor/github.com/mattn/go-colorable/_example/logrus/main.go create mode 100644 vendor/github.com/mattn/go-colorable/_example/title/main.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/custom_func/main.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/hook/hook.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/limit/limit.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/Makefile create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/extension.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/sqlite3_mod_regexp.c create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/Makefile create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/extension.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/picojson.h create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/sqlite3_mod_vtable.cc create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/simple/simple.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/trace/main.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/vtable/main.go create mode 100644 vendor/github.com/mattn/go-sqlite3/_example/vtable/vtable.go create mode 100644 vendor/github.com/mattn/go-sqlite3/tool/upgrade.go create mode 100644 vendor/github.com/nsf/termbox-go/_demos/editbox.go create mode 100644 vendor/github.com/nsf/termbox-go/_demos/interrupt.go create mode 100644 vendor/github.com/nsf/termbox-go/_demos/keyboard.go create mode 100644 vendor/github.com/nsf/termbox-go/_demos/output.go create mode 100644 vendor/github.com/nsf/termbox-go/_demos/paint.go create mode 100644 vendor/github.com/nsf/termbox-go/_demos/random_output.go create mode 100644 vendor/github.com/nsf/termbox-go/_demos/raw_input.go create mode 100644 vendor/golang.org/x/sys/plan9/asm.s create mode 100644 vendor/golang.org/x/sys/plan9/asm_plan9_386.s create mode 100644 vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s create mode 100644 vendor/golang.org/x/sys/plan9/const_plan9.go create mode 100644 vendor/golang.org/x/sys/plan9/dir_plan9.go create mode 100644 vendor/golang.org/x/sys/plan9/env_plan9.go create mode 100644 vendor/golang.org/x/sys/plan9/errors_plan9.go create mode 100755 vendor/golang.org/x/sys/plan9/mkall.sh create mode 100755 vendor/golang.org/x/sys/plan9/mkerrors.sh create mode 100755 vendor/golang.org/x/sys/plan9/mksyscall.pl create mode 100755 vendor/golang.org/x/sys/plan9/mksysnum_plan9.sh create mode 100644 vendor/golang.org/x/sys/plan9/pwd_go15_plan9.go create mode 100644 vendor/golang.org/x/sys/plan9/pwd_plan9.go create mode 100644 vendor/golang.org/x/sys/plan9/race.go create mode 100644 vendor/golang.org/x/sys/plan9/race0.go create mode 100644 vendor/golang.org/x/sys/plan9/str.go create mode 100644 vendor/golang.org/x/sys/plan9/syscall.go create mode 100644 vendor/golang.org/x/sys/plan9/syscall_plan9.go create mode 100644 vendor/golang.org/x/sys/plan9/syscall_test.go create mode 100644 vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go create mode 100644 vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go create mode 100644 vendor/golang.org/x/sys/plan9/zsysnum_plan9.go create mode 100644 vendor/golang.org/x/sys/unix/linux/Dockerfile create mode 100644 vendor/golang.org/x/sys/unix/linux/mkall.go create mode 100755 vendor/golang.org/x/sys/unix/linux/mksysnum.pl create mode 100644 vendor/golang.org/x/sys/unix/linux/types.go create mode 100644 vendor/golang.org/x/sys/windows/asm_windows_386.s create mode 100644 vendor/golang.org/x/sys/windows/asm_windows_amd64.s create mode 100644 vendor/golang.org/x/sys/windows/dll_windows.go create mode 100644 vendor/golang.org/x/sys/windows/env_windows.go create mode 100644 vendor/golang.org/x/sys/windows/eventlog.go create mode 100644 vendor/golang.org/x/sys/windows/exec_windows.go create mode 100644 vendor/golang.org/x/sys/windows/memory_windows.go create mode 100644 vendor/golang.org/x/sys/windows/mksyscall.go create mode 100644 vendor/golang.org/x/sys/windows/race.go create mode 100644 vendor/golang.org/x/sys/windows/race0.go create mode 100644 vendor/golang.org/x/sys/windows/registry/export_test.go create mode 100644 vendor/golang.org/x/sys/windows/registry/key.go create mode 100644 vendor/golang.org/x/sys/windows/registry/mksyscall.go create mode 100644 vendor/golang.org/x/sys/windows/registry/registry_test.go create mode 100644 vendor/golang.org/x/sys/windows/registry/syscall.go create mode 100644 vendor/golang.org/x/sys/windows/registry/value.go create mode 100644 vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go create mode 100644 vendor/golang.org/x/sys/windows/security_windows.go create mode 100644 vendor/golang.org/x/sys/windows/service.go create mode 100644 vendor/golang.org/x/sys/windows/str.go create mode 100644 vendor/golang.org/x/sys/windows/svc/debug/log.go create mode 100644 vendor/golang.org/x/sys/windows/svc/debug/service.go create mode 100644 vendor/golang.org/x/sys/windows/svc/event.go create mode 100644 vendor/golang.org/x/sys/windows/svc/eventlog/install.go create mode 100644 vendor/golang.org/x/sys/windows/svc/eventlog/log.go create mode 100644 vendor/golang.org/x/sys/windows/svc/eventlog/log_test.go create mode 100644 vendor/golang.org/x/sys/windows/svc/example/beep.go create mode 100644 vendor/golang.org/x/sys/windows/svc/example/install.go create mode 100644 vendor/golang.org/x/sys/windows/svc/example/main.go create mode 100644 vendor/golang.org/x/sys/windows/svc/example/manage.go create mode 100644 vendor/golang.org/x/sys/windows/svc/example/service.go create mode 100644 vendor/golang.org/x/sys/windows/svc/go12.c create mode 100644 vendor/golang.org/x/sys/windows/svc/go12.go create mode 100644 vendor/golang.org/x/sys/windows/svc/go13.go create mode 100644 vendor/golang.org/x/sys/windows/svc/mgr/config.go create mode 100644 vendor/golang.org/x/sys/windows/svc/mgr/mgr.go create mode 100644 vendor/golang.org/x/sys/windows/svc/mgr/mgr_test.go create mode 100644 vendor/golang.org/x/sys/windows/svc/mgr/service.go create mode 100644 vendor/golang.org/x/sys/windows/svc/security.go create mode 100644 vendor/golang.org/x/sys/windows/svc/service.go create mode 100644 vendor/golang.org/x/sys/windows/svc/svc_test.go create mode 100644 vendor/golang.org/x/sys/windows/svc/sys_386.s create mode 100644 vendor/golang.org/x/sys/windows/svc/sys_amd64.s create mode 100644 vendor/golang.org/x/sys/windows/syscall.go create mode 100644 vendor/golang.org/x/sys/windows/syscall_test.go create mode 100644 vendor/golang.org/x/sys/windows/syscall_windows.go create mode 100644 vendor/golang.org/x/sys/windows/syscall_windows_test.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_386.go create mode 100644 vendor/golang.org/x/sys/windows/types_windows_amd64.go create mode 100644 vendor/golang.org/x/sys/windows/zsyscall_windows.go diff --git a/Gopkg.lock b/Gopkg.lock index 66b3b15..94a213a 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -1,6 +1,12 @@ # This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. +[[projects]] + branch = "master" + name = "github.com/0xAX/notificator" + packages = ["."] + revision = "88d57ee9043ba88d6a62e437fa15dda1ca0d2b59" + [[projects]] name = "github.com/fatih/color" packages = ["."] @@ -70,6 +76,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "59a956a9d4768c1668abfcf5af67434d0f8251797d381c64b9dcf013a3dfcb34" + inputs-digest = "5913a16a0927350ebbd5117158473bb0252181f6aa8777cb5a095a18dee8bd40" solver-name = "gps-cdcl" solver-version = 1 diff --git a/vendor/github.com/0xAX/notificator/.gitignore b/vendor/github.com/0xAX/notificator/.gitignore new file mode 100644 index 0000000..79d89ab --- /dev/null +++ b/vendor/github.com/0xAX/notificator/.gitignore @@ -0,0 +1,25 @@ +# Compiled Object files, Static and Dynamic libs (Shared Objects) +*.o +*.a +*.so + +# Folders +_obj +_test + +# Architecture specific extensions/prefixes +*.[568vq] +[568vq].out + +*.cgo1.go +*.cgo2.c +_cgo_defun.c +_cgo_gotypes.go +_cgo_export.* + +_testmain.go + +*.exe +*.test + +.idea diff --git a/vendor/github.com/0xAX/notificator/LICENSE b/vendor/github.com/0xAX/notificator/LICENSE new file mode 100644 index 0000000..015ead8 --- /dev/null +++ b/vendor/github.com/0xAX/notificator/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2014, 0xAX +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the {organization} nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/0xAX/notificator/README.md b/vendor/github.com/0xAX/notificator/README.md new file mode 100644 index 0000000..9e71f7a --- /dev/null +++ b/vendor/github.com/0xAX/notificator/README.md @@ -0,0 +1,49 @@ +notificator +=========================== + +Desktop notification with Golang for: + + * Windows with `growlnotify`; + * Mac OS X with `terminal-notifier` (if installed) or `osascript` (native, 10.9 Mavericks or Up.); + * Linux with `notify-send` for Gnome and `kdialog` for Kde. + +Usage +------ + +```go +package main + +import ( + "github.com/0xAX/notificator" +) + +var notify *notificator.Notificator + +func main() { + + notify = notificator.New(notificator.Options{ + DefaultIcon: "icon/default.png", + AppName: "My test App", + }) + + notify.Push("title", "text", "/home/user/icon.png", notificator.UR_CRITICAL) +} +``` + +TODO +----- + + * Add more options for different notificators. + +Сontribution +------------ + + * Fork; + * Make changes; + * Send pull request; + * Thank you. + +author +---------- + +[@0xAX](https://twitter.com/0xAX) diff --git a/vendor/github.com/0xAX/notificator/example/main.go b/vendor/github.com/0xAX/notificator/example/main.go new file mode 100644 index 0000000..09fdb38 --- /dev/null +++ b/vendor/github.com/0xAX/notificator/example/main.go @@ -0,0 +1,24 @@ +package main + +import ( + "../../notificator" + "log" +) + +var notify *notificator.Notificator + +func main() { + notify = notificator.New(notificator.Options{ + DefaultIcon: "icon/default.png", + AppName: "My test App", + }) + + notify.Push("title", "text", "/home/user/icon.png", notificator.UR_NORMAL) + + // Check errors + err := notify.Push("error", "ops =(", "/home/user/icon.png", notificator.UR_CRITICAL) + + if err != nil { + log.Fatal(err) + } +} diff --git a/vendor/github.com/0xAX/notificator/icon/golang.png b/vendor/github.com/0xAX/notificator/icon/golang.png new file mode 100644 index 0000000000000000000000000000000000000000..217cc74cff7dfb720d43eb523367dfb916e82563 GIT binary patch literal 37980 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/0xAX/notificator/notification.go b/vendor/github.com/0xAX/notificator/notification.go new file mode 100644 index 0000000..918605a --- /dev/null +++ b/vendor/github.com/0xAX/notificator/notification.go @@ -0,0 +1,166 @@ +package notificator + +import ( + "fmt" + "os/exec" + "runtime" + "strconv" + "strings" +) + +type Options struct { + DefaultIcon string + AppName string +} + +const ( + UR_NORMAL = "normal" + UR_CRITICAL = "critical" +) + +type notifier interface { + push(title string, text string, iconPath string) *exec.Cmd + pushCritical(title string, text string, iconPath string) *exec.Cmd +} + +type Notificator struct { + notifier notifier + defaultIcon string +} + +func (n Notificator) Push(title string, text string, iconPath string, urgency string) error { + icon := n.defaultIcon + + if iconPath != "" { + icon = iconPath + } + + if urgency == UR_CRITICAL { + return n.notifier.pushCritical(title, text, icon).Run() + } + + return n.notifier.push(title, text, icon).Run() + +} + +type osxNotificator struct { + AppName string +} + +func (o osxNotificator) push(title string, text string, iconPath string) *exec.Cmd { + + // Checks if terminal-notifier exists, and is accessible. + + term_notif := CheckTermNotif() + os_version_check := CheckMacOSVersion() + + // if terminal-notifier exists, use it. + // else, fall back to osascript. (Mavericks and later.) + + if term_notif == true { + return exec.Command("terminal-notifier", "-title", o.AppName, "-message", text, "-subtitle", title, "-appIcon", iconPath) + } else if os_version_check == true { + title = strings.Replace(title, `"`, `\"`, -1) + text = strings.Replace(text, `"`, `\"`, -1) + + notification := fmt.Sprintf("display notification \"%s\" with title \"%s\" subtitle \"%s\"", text, o.AppName, title) + return exec.Command("osascript", "-e", notification) + } + + // finally falls back to growlnotify. + + return exec.Command("growlnotify", "-n", o.AppName, "--image", iconPath, "-m", title) +} + +// Causes the notification to stick around until clicked. +func (o osxNotificator) pushCritical(title string, text string, iconPath string) *exec.Cmd { + + // same function as above... + + term_notif := CheckTermNotif() + os_version_check := CheckMacOSVersion() + + if term_notif == true { + // timeout set to 30 seconds, to show the importance of the notification + return exec.Command("terminal-notifier", "-title", o.AppName, "-message", text, "-subtitle", title, "-timeout", "30") + } else if os_version_check == true { + notification := fmt.Sprintf("display notification \"%s\" with title \"%s\" subtitle \"%s\"", text, o.AppName, title) + return exec.Command("osascript", "-e", notification) + } + + return exec.Command("growlnotify", "-n", o.AppName, "--image", iconPath, "-m", title) + +} + +type linuxNotificator struct{} + +func (l linuxNotificator) push(title string, text string, iconPath string) *exec.Cmd { + return exec.Command("notify-send", "-i", iconPath, title, text) +} + +// Causes the notification to stick around until clicked. +func (l linuxNotificator) pushCritical(title string, text string, iconPath string) *exec.Cmd { + return exec.Command("notify-send", "-i", iconPath, title, text, "-u", "critical") +} + +type windowsNotificator struct{} + +func (w windowsNotificator) push(title string, text string, iconPath string) *exec.Cmd { + return exec.Command("growlnotify", "/i:", iconPath, "/t:", title, text) +} + +// Causes the notification to stick around until clicked. +func (w windowsNotificator) pushCritical(title string, text string, iconPath string) *exec.Cmd { + return exec.Command("notify-send", "-i", iconPath, title, text, "/s", "true", "/p", "2") +} + +func New(o Options) *Notificator { + + var Notifier notifier + + switch runtime.GOOS { + + case "darwin": + Notifier = osxNotificator{AppName: o.AppName} + case "linux": + Notifier = linuxNotificator{} + case "windows": + Notifier = windowsNotificator{} + + } + + return &Notificator{notifier: Notifier, defaultIcon: o.DefaultIcon} +} + +// Helper function for macOS + +func CheckTermNotif() bool { + // Checks if terminal-notifier exists, and is accessible. + if err := exec.Command("which", "terminal-notifier").Run(); err != nil { + return false + } + // no error, so return true. (terminal-notifier exists) + return true +} + +func CheckMacOSVersion() bool { + // Checks if the version of macOS is 10.9 or Higher (osascript support for notifications.) + + cmd := exec.Command("sw_vers", "-productVersion") + check, _ := cmd.Output() + + version := strings.Split(strings.TrimSpace(string(check)), ".") + + // semantic versioning of macOS + + major, _ := strconv.Atoi(version[0]) + minor, _ := strconv.Atoi(version[1]) + + if major < 10 { + return false + } else if major == 10 && minor < 9 { + return false + } else { + return true + } +} diff --git a/vendor/github.com/gizak/termui/_docs/about.md b/vendor/github.com/gizak/termui/_docs/about.md new file mode 100644 index 0000000..e69de29 diff --git a/vendor/github.com/gizak/termui/_docs/components.md b/vendor/github.com/gizak/termui/_docs/components.md new file mode 100644 index 0000000..4e0239f --- /dev/null +++ b/vendor/github.com/gizak/termui/_docs/components.md @@ -0,0 +1,32 @@ +Overview +--- + +Bufferer +--- + +Block +--- + +BarChart +--- + +Canvas +--- + +Gauge +--- + +LineChart +--- + +MBarChart +--- + +Par +--- + +Sparkline +--- + +Sparklines +--- diff --git a/vendor/github.com/gizak/termui/_docs/events.md b/vendor/github.com/gizak/termui/_docs/events.md new file mode 100644 index 0000000..45aa04c --- /dev/null +++ b/vendor/github.com/gizak/termui/_docs/events.md @@ -0,0 +1,14 @@ +Event System +--- + +Keyboard Events +--- + +Mouse Events +--- + +Window Events +--- + +Custom Events +--- diff --git a/vendor/github.com/gizak/termui/_docs/img/dashboard.gif b/vendor/github.com/gizak/termui/_docs/img/dashboard.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bab47020a56b836eca1d5afbb0a7ec1045f9a32 GIT binary patch literal 155984 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 z/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 z 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/gizak/termui/_docs/index.md b/vendor/github.com/gizak/termui/_docs/index.md new file mode 100644 index 0000000..2769067 --- /dev/null +++ b/vendor/github.com/gizak/termui/_docs/index.md @@ -0,0 +1,15 @@ +[termui]() is a cross-platform, easy-to-compile, and fully-customizable terminal dashboard. It aims to provide a terminal front end for your applications with less struggle: + +> ![dashboard](img/dashboard.gif) +> +> _cast under osx 10.10; Terminal.app; Menlo Regular 12pt._ + +This guide describes the essential parts used to build a interface, which includes: + +- Installation & Usage +- Layout System +- Event System +- Theming +- Components + +[Quickstart](quickstart.md) is the way to go for starters and [Recipes](recipes.md) contains some practical resolutions you might need. diff --git a/vendor/github.com/gizak/termui/_docs/layouts.md b/vendor/github.com/gizak/termui/_docs/layouts.md new file mode 100644 index 0000000..b260736 --- /dev/null +++ b/vendor/github.com/gizak/termui/_docs/layouts.md @@ -0,0 +1,26 @@ +Overview +--- + +termui offers two layout system: [Absolute]() and [Grid](). The two concept actually spawned from Web: + +- The __Absolute layout__ is a plain coordination system, like [CSS position property](https://developer.mozilla.org/en/docs/Web/CSS/position) `position: absolute`. You will need manually assign `.X`, `.Y`, `.Width` and `.Height` to a component. +- The __Grid system__ actually is a simplified version of [the 12 columns CSS grid system](http://www.w3schools.com/bootstrap/bootstrap_grid_system.asp) on terminal. You do not need to bother setting positions and width properties, these values will be synced up according to their containers. + +!!! note + `Align` property can help you set your component position based on terminal window. Find more at [Magic Variables](#magic-variables) + +__Cons and pros:__ + +- Use of Absolute layout gives you maximum control over how to arrange your components, while you have +to put a little more effort to set things up. Fortunately there are some "magic variables" may help you out. +- Grid layout can save you some time, it adjusts components location and size based on it's container. But note that you do need to set `.Height` property to each components because termui can not decide it for you. + + +Absolute Layout +--- + +Grid Layout +--- + +Magic Variables +--- diff --git a/vendor/github.com/gizak/termui/_docs/quickstart.md b/vendor/github.com/gizak/termui/_docs/quickstart.md new file mode 100644 index 0000000..207019f --- /dev/null +++ b/vendor/github.com/gizak/termui/_docs/quickstart.md @@ -0,0 +1,80 @@ +Installation +--- + +Since [termui](https://github.com/gizak/termui) is a Go lib, we will need a working Go environment to begin with. If you have not set it up, there is a great intro you can follow up: [How to write Go code](https://golang.org/doc/code.html). + +Once you have the environment set up, you can proceed to install termui by the following command: + +`go get github.com/gizak/termui` + +The current version of termui is v2. If you are working with the old version of termui or the new version does not seem right to you, you can always go back to v1 version by: + +`go get gopkg.in/gizak/termui.v1` + +!!! note + v2 has many features implemented which you can not find in v1, such as new event system and asynchronous rendering. To find more about versions difference in section [Versions](versions.md). + + +Usage +--- + +Let's throw an simple example to get our feet wet: + +```go +package main + +import ui "github.com/gizak/termui" // use ui as an alias + +func main() { + err := ui.Init() + if err != nil { + panic(err) + } + defer ui.Close() + + p := ui.NewPar(":PRESS q TO QUIT DEMO") + p.Height = 3 + p.Width = 50 + p.TextFgColor = ui.ColorWhite + p.BorderLabel = "Text Box" + p.BorderFg = ui.ColorCyan + + ui.Render(p) // feel free to call Render, it's async and non-block + + ui.Handle("/sys/kbd/q",func(e ui.Event){ + ui.StopLoop() + }) + + ui.Loop() +} +``` +There are only around 20 lines for the main function. Break this down into 4 parts: + +1. __Init termui__: + `ui.Init()` initializes the termui. From this point, termui will take over your terminal display. + `ui.Close()` closes resources and cleans up your terminal content. Make sure it is called before exit or you will end up with a messed up looking terminal. + +2. __Build your component__: + `ui.NewPar(:PRESS q TO QUIT DEMO)` returns a structure representing a paragraph component. You can assign position, size, text colour, border and many other properties to a component. + +3. __Draw your component on display__: + `ui.Render(p)` renders p onto terminal display. + +4. __Handle events__: + `ui.Handle("/sys/kbd/q", func(e Event))` registers an event handler for event: key q is pressed. + `ui.StopLoop()` exits the event listening loop invoked by `ui.Loop()`. + `ui.Loop()` makes the program stops at here and start listening & handling events. Call + `ui.StopLoop()` to leave the circle. + +The example code gives us: + +> ![example screenshot](img/demo1.png) + +Now you can press q to quit the program. + +After knowing of some basics, next we can discover more about: + +1. how to set component location in [Layouts](layouts.md) +2. how to capture and handle events in [Events](events.md) +3. the different [components](components.md) +4. check out some real world examples in [recipes](recipes.md) diff --git a/vendor/github.com/gizak/termui/_docs/recipes.md b/vendor/github.com/gizak/termui/_docs/recipes.md new file mode 100644 index 0000000..3a16965 --- /dev/null +++ b/vendor/github.com/gizak/termui/_docs/recipes.md @@ -0,0 +1 @@ +_Sorry, it is still Work in Progress..._ diff --git a/vendor/github.com/gizak/termui/_docs/themes.md b/vendor/github.com/gizak/termui/_docs/themes.md new file mode 100644 index 0000000..e69de29 diff --git a/vendor/github.com/gizak/termui/_docs/versions.md b/vendor/github.com/gizak/termui/_docs/versions.md new file mode 100644 index 0000000..e69de29 diff --git a/vendor/github.com/gizak/termui/_example/barchart.go b/vendor/github.com/gizak/termui/_example/barchart.go new file mode 100644 index 0000000..aa20274 --- /dev/null +++ b/vendor/github.com/gizak/termui/_example/barchart.go @@ -0,0 +1,36 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import "github.com/gizak/termui" + +func main() { + if err := termui.Init(); err != nil { + panic(err) + } + defer termui.Close() + + bc := termui.NewBarChart() + data := []int{3, 2, 5, 3, 9, 5, 3, 2, 5, 8, 3, 2, 4, 5, 3, 2, 5, 7, 5, 3, 2, 6, 7, 4, 6, 3, 6, 7, 8, 3, 6, 4, 5, 3, 2, 4, 6, 4, 8, 5, 9, 4, 3, 6, 5, 3, 6} + bclabels := []string{"S0", "S1", "S2", "S3", "S4", "S5"} + bc.BorderLabel = "Bar Chart" + bc.Data = data + bc.Width = 26 + bc.Height = 10 + bc.DataLabels = bclabels + bc.TextColor = termui.ColorGreen + bc.BarColor = termui.ColorRed + bc.NumColor = termui.ColorYellow + + termui.Render(bc) + + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + termui.Loop() + +} diff --git a/vendor/github.com/gizak/termui/_example/barchart.png b/vendor/github.com/gizak/termui/_example/barchart.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5f1cad3758ded4a17b3d0dbae19d421ebf89b5 GIT binary patch literal 17812 zcmeIZWmr_-*DyRY3^Fv*g3{gHDGd_R4T5xc3PXvslr*T6AV_x&At2q|E!_HkSB-{(g#z0 z0085ejg*v{f|L}6nyZtgjlBf`ARm#egQBUSK$NYc4nbwb0WyB!m-J0u5*}-pl?R35 zN>O~98I?hvW}{+YYNRqVK&Oa`{9yLxY5BCwQvwSk7E{U192)44+my3qx2?ge!v(+X zrmMkbZX{?ks}e=8Gy$M@Z5xgHz9sbpHR9D6xx^DSAkr()DT`+;jGKxIEb(mbkxhyp zNOf427G-|#cGnh36`s-g1P}ogNK5P-3Wf^+>V*s_29Tj6zzbhDS7ft0EHevA8VDes zrMpPIgtGgWx;MC|$d8596l@=x3X5Cwhg@PK(?hkz^S1MBs3GV--7oTiF#-RB>g zD6^B2c}dNDn7X=uE&o)wHyGGBNoCRA75KD8^|TV3UGC$r^sB&6>w!wz1=jXhMl;`R zI-v3{L*YdcoG$=6sAI zZ4w_=6{X^~3uSr~e7>^!G|zB+*rYh@{q+Hj?BZQ&&ejV)OKN%-`he@s*POWv9QBRORC4dok<*^$ zUg{$AkBh78TkXrM7*C`+>984^jtQB@jq6E1RezZINWo8~--p>F2|0cu21S)Frwy5< zcyT;;yLYpi;ogN^4#mj>v2l=3M*DOr$ik1GA)mJA;J8Q*)#s$VO+r8Y{Lo*oeZzyo zm@q05A@{@^&4utsY||>6H^ko;W*H;AreYrO>bgQNqE(vQ3@{pJ%{3H)sb|$e2W}3` zMSm|!WJ$l(LEgV=Akv}nl75wQ^~skEXOymB`UHkt?J95N4)RoPNrs*Gqj$1ZO7A&u zyX~E&dgrjNI*cd-dtX?s?82Vcg{66~9dhssf4k5AVx2i(r~e?3lX`J=9lg8xYI9#! zk0vhg*^$e4@?7sg9crxokihCLZL^+o?R^$cRJ*QS0G@Ejq`AWkBPW>&swxfh8~a*$ z)H)2}aDGd3J@Z+s>ud6=D%occ+GWxW*X^xH{?IG?b`eT;Ue=V~sE@sdmJ~S-oDnt- zHWnyQ_#@l>yJiddhk3~QDZh~?9zaD#E$v3RXAEg&Lj$lQwe0Tev~sDB0xQC*l~1Lg zTwOx}szF5-p4m#E?*PqH6M4%~*kDNTU-Xp)?|D10GY z+1$}*)=cR!TeN5mXPlCh^UoAB&cGQNsgysJW3UTGdu9(Nv_I{R-Vy-y{|wRE@fc)$Ez zfeoR}IsWMjG6Aw=pI(3D{OIxtHD$GTAW@IGO0Gb1tN2yf0EbMxnY2s3w8j{t5@UXn zRMJ_}ZBkujWo2WfN~MN{Po>gZC5yOTqxADc&y!pNwg&Hywyc0~eco$d~tTD3O zc|Ie!HVxIh)wXkjb5e6Cf{mGBhM%9yIaU}p7?v8QEHL{#^Fi`ay-qv5KBYbF*(mF~ zV(w)iX7Xk($0uY=V$Rg8&*%6iuT!m#p);UvSXys#lCb7Rn~?A&p$u2freVx6-%U}} zJ^F{-RYBG7{vE%a?cXhZ(iYU45}WRuW}6{>2YpCPicGak6-;hgeOf9-?%W*jDXBlk z|I+Oj=&Sz)=aF;^-Uc6rYT;oi@1!3adweYpXVR&WzbN0uoK&@a#cNW7QFCGIVT(QC z;-PU-wCgs(JTd(JN>wv^hbvyR!g_5q!i!f8QzJ$`=9;95caG-?Zw=2qFLJs8@376K z9cQ&j^;iv`P1e-zc!6D$%~>_SP0naQyXG5TF7CAa0m3b4?0Xexth`l`b?fVx(Rb$Q6-_R+F8L=OcwZxO72f~yOvKWdm>A+2tX?=Ter9Xw)XhEbI3*at z@yiA`P<=DcU`x|Y^-Sc9B;5b1U-Z*eNm5C0 z30etB$&zk{epP9IY1#aU{hdAG{KR~7EpOH4oc7F8ZSH*7Txq#o?XB67DSNf}+vV-g zM;|xJ2UkDkR+@*d+xA4Mfa%!_f2zc&kY^oaxn;!(J#LyECahL2Z(if)GA=Os6`a@a zHdY#XHF!30E+#B^HhMJe)mJSrFOvK1_&AGP`ih+KoV>acS-I}(A5+@#=-6witGar5 zL`Oc*vs~C)xTy1szq@YW>PyZKlVX#YWoTR0qyJ+8;H88!>;`HOlpeGX+l2*Dgntf` zWNn{V`L3-LPf>sM|i{`==MyE9jaB}uy0xK7{09^IDkIUA<* zO_heWo9+Q2$ztkI7VeX@7c8#!y(2SrP1N^`acnb%uX zu;rKIAH=9da+%C&xY^E}2?d!M_h?Kaa@w8JN_qVb_f>+@KC6vn9b~o$`biM8EM$ai z4D=QaYrU7t;)}1?p&!i^scSxM#&$E?exC7NAVs{+A^Uf;)>-!E?dBsFdCqY5aux9fyWQSs|X zO$`Pe2A1ZU4vU|$$#BJ`zDq5>@3lW}^t%`v4ej*|)$e?G{Vq0hN(0#LecmefrC-)u z+A&W(oj#dfG(2hzSbp*o^P1F`@4aKmV%LIZ_3ym=6Xjl#X+gRQnLpr-&|~suH+8(Jdb-J>s`nFR}?gCMKW8F zlDp20xX#7P#X_=c5nI3K7jR?jrtQtdO!^$Z6!CmfR-c0VlADH$vu?4r)>xu(^(QVlrqo@)YQ^P|@ zuw(`ymz7r>UYUO-R)MqnEU++)*yFqvB;MBsSjcnm z#A~REMDz-%&hmP0001HFpA)E{PIHWCBeHBXb=`H9UkRBzIk3HX>ttrZ=I!8&fCd0W zyoC_A4i@fjD7+o)9o>YyMXCNm2qEtO46{>F`~`8h6Q$BsR-=$|a;8ttDBFb z`x|doM>pz!i2NHJX$v=VR~u({8z)DKKXl)iIeEB?Qc?Y3^zX+%a$0!X{0ApTw|}XH zP>}u43_B+q2m8O%MxcuP85L5q@wTwnm9}xPaCAfP5aSWx5cv!L|C#v@j{gZ$?>{iP zIsOagf13FhrU?5V1^$yl|5)qqD8gJ~Xd>+YZhA4a&4uMx2yZ;Mkyh12TtRC()+GZfDupw4 zY={H^gaZYDS#TLR8*s{HR`P-YUbk_VwMT|)UYh4_X7#wkbI$qW5w3NeB7pC)k6 zZ*DX43K}$Jg?#glc=KsO!~Vbp&EP`lS6G!R@7Z;fX1g{V012JzT=1Kw)60sW`Axn0c74RMx{}wupT}bCIFMagP;c;S1Ud79DJv3czrWN^1 z7YGS$f$TjfpN5<0QRhc}%-nyGuqVgXmrTxHsg6Nd`pz}O{{C$i@sZ^_nmNCXZNKGo zquT4A*z*0gT+eP^7iK<4ooeS6hj zqwa`C>eR+~??jtd{qn7=VcuP=ZP9#%nXIn)>C`rR?<7BgtSRN&vxgUz7pgic7K-N> ziqmb6DocLClorZb>R!vXHaF`+Mf-=zOZiQ>rj+0PO0{mIw7N1L zOeoXVC;y&M*LFX&UnzhFH>O_Er(SWSUcvgWblqOqF4|)KG=Buk5=dsAt2{UN!dO)yCQ+z-562%4wm2*U@Qc{kGDws@N<7JuTKJEPvxGs2QAu zY{+`$?-V}4pR_=?k}g-_vlYQLlic@M+ZE>G!q+{rcYt54NAM$=WouQ|s3)u^*CY_uC7RMc|8A4WkoO z8RF_K9A~hP?uTs*M$b%m>|JgAZyaYUtbTShRz4*2gy#>t=n65D8vl_@jX0p;)w!zB4XN->hxmmZZ!60`J3stg+d;HX zKfHn^BCT_YiSU=Yr^TB#%t|T8(!N~@Y~1K*4+}Tk6Q82G;G)o}S}4#w+tF^gI(g#e z;ql`v-VK!9HxsDz!~eJXdx`zP}z*%MSZ!|4wPa}U!Sea-cU^%Lpryz_-aK(BWXTE7QoxJ{z*`v0UM z3De(TDm>>O6Xsd`n{(51+#9KO2j_b>&r+oZ^qkhy@X7@R?0=L87;U2Mbr*W2N>vw$ z!VOKpV;4&gkJZq`mV4Km@vYF^V7bJ*rHUAJBSFTN@S*;Eb96$s({Q>Jp7H!RkN99c zFoG2TBnXkFTUpI9N{LORRu^ z%O976y6?vM=Qf72w%)ECvo^p_l(+&FBd6}?H)FBOxW-hHdRG^3Z!i^pN2g6;u$`(e#H-@iinFsDy zsiktGN|G#|&RYbT83!x9c4K63qZNmDbh;j=%!dE^{!@yg5PB83U3mKYO4&pr*`Ypy zSv+Ym@T$}YG{m_+z904qo!(o1IXfvbtMS5mWvo0p4OK+F%2qi&szUqmmu(SRIZCF| z-K?$gshwp(8FpG)>%gFj>$+W8-zM$ARj+(X%hk&e1cAq8r##*lh7Te;i6BBj z6eM-p`HuWkS>{;3#9ML5##86CyK@ul-awD2k|JYo(n04V*lzN<5nC1^dXsOyd!DDg^w{E1Ik(W0x$mQ+5=aNn zZx4gau%=LeroOz=M8tVI>^#0lB&P|+L;~6c{qV7G@?WW{c`~!`X5qYH@@-thOE`C$ z4kT(q#J1K)q(+&oqR=AV?s}pi{;u%k_f-b-7mZv0f(NNB4tE&yCv@E70T~m=`qW>_ z1zW)?ip#4}uADu{Zt)Vd5HQ8ZWB_O=GT+)HS`C&)^k!1Af5~I)#)W%cYxkvfRo$%} z;>`BZf7~!~9j4bwv)XDd7p$8Tdt9(Ji1I%sKT1u1$0Q?qOZGz)7?oE`dfJPXkdoql;42g4d1;x2kLLQeLzN)-UHk+wM|Vy*FFx zKR9$;=m!tf+5<5er->kSh9p+>5YEo$*&pM*@U|2pl0MOIc$oxB{TRyNppgki0aM_x z0>RH&RhM&R=vU@t)03nh>oKzT66;!h9c+ia+L^X`4vu_UwRR2En|j>hemziLAEf-~ zPY*FDyzG85D7Z51cq_Un7-V50M#SD|g;{xTGSxr#Vry(aTF%w}L|PgElmm0oz3D&|2$q}@uUFAt zw%7_FQ|;Z!KpMMPA7K7UEstvfIr}b4>X{~(IQT+8;!9|BYI+laZS0E_hG%%_p#CHP z$k;f>i*02yEMxQ~BJ1=j1AyC>8qrEP&YYgfoQOnJK?8-F&(;P<$-C2w@=wLA+7zipbLLk^as+!yfr=0xVXS6>O8HUyjEFnR>(|9vi z5$qpuO|fT|m#j74LwUd9;vouR2_P8988~9rj0%c%Ib(PM!eL+oLF(&o(wul80_2pR zq!2=vBm80jI#3`1?<-I<#bXm=*XhCU8TOJw) zr2~RX6sC>r!TbM9^nZ{|H}Q{ya;-MLOmPWbFR=M+)vJ4UAkqi&QwbRIo3j9FF|QV< z*LlcW_{Zq%S;?ZLGAjG?ti#!nJoN2|e)uCIrN~3G9f!7m6vn(}VlIRV;(wLSEXVnP z$Q!YMui=#Ng^O~=NLor$nflQ8P(<1)k(qKZ1n+-pJJ^TJ@VT5yQh-1Z0ni7s_lT6s zCsRQKE`g+s;EYf~p*6jYF;URP)4Hq|z zh)$kRug>LZxxqti6}9Pn*DsVH2x9p_D13=QK))IMp9whSRE965B%%PIDXKj_Hjrok zvZp85K11M|0tbj#IY4P_DGF2UjIX-5Ani~kYlt<%0QzqiyJcXG*YiWMPzOAEaxfJI z6iN-@9OztO-~dI^hkM#TiOf*`t4CG+)&(kF0!_G!7p+D3>37-1POjwnVDRMbAw zOaY?%l67 z)4DqcD>+zgL?SlmDPn7QDsj#M23`KoGO8OI95%{*s%Dp#>F<~#;BYKuZJw8aKFOoBoH5mK32nN!j*mtAeR{!?e~_tH?P z2M97Fyv7=fM@L={Yg$Rg9QAxmr5F7l9hU8Gl z44S1=0)?rQz9c0MLY2&(o%wIgJ&~nATt@-Y7lTRqTFfM`)Q*LeqQJp zRz?5}w~_}#bP?7mrLIfB0UEULE8~Lqm6;j9pmtP>m6ejUYC2G?MqS5rB(#&81_Ula zP?(B0Q1}2XHNB)m1zi>p;Ddrz5R1TB+eIG_*z-TqypPxbz~f_&1<5`DK*jv$A?bk; z`bW*pWHHfB4vbC_VzOtJ-U1lJI5?cZP}aoak_dgZ+0dj2wj$lVAG2d~F(fRxqo)K) zc#$y~J>8K-ic_U(bQ!pMc+4MZXQ{L^P0etClFrYOCAp}%I|n$9vX|VN3Y(7H9|M?b9Szxp_C9CzUOWp68GtQBQyw8d{srE|sYNp?C{ zClSPv^x#ZJG|EWf_d{Z=DiM2claS@xIVlV!Mi{oZ7nF~kYOcvabg|8Z4o;DaW*eNi z=JpR{_&<;}Apa}XKvjM=>baT&^K${PZst`;`bwUFdgEi>`uI=E(;u8v~f}86A$22X#Lz-X$ye%KCiY9-RAZO;UF7a28uxDW1p6FM?VBG?f7q5|d+XZpg6G3D5^e=MQ1}I>El%|An-S2*2 z`i43bPn?7Q@lgCX-2KfH;1nnII2Q2JZyh;JNoD8QE_fc){ZXN(5S<%R{=cgIuh)qF z6_EPC0DCWVBmTCeOVRS!!^K1_v2WrZ-RbUZ;t$1F&SVXj_~y2YsmAULsedva?fwW^ z%)zimhOcg8jcmzC`_+{e-d+`kpzmVSWT6J?=iOq%o1doOtnA;dBzaZc@+4gfA?X7> zNzmf6SDFv&4fp6517Rt4p&Q%25NA&jq0Pm8G0gmyApm%0kBmv}oLLE;i#l05nb7bpZeKA%9llVDj#qdQo1&;xgbgD zYQIm4WMjz6V~L6oDMNEuXeA+g1v*R#h;%2xjNbnsi!C7BdS^@m+V{e4ED;Cy(YpAw zVu14LG=2SxU+1EftjiQ5lE!2eR(&45z=|6LN|hyxL@oSv6zP9e{GZ{)X|!YWCWD>E z>-_4YAP@JWY1Sb z5<>KJERJ}9JF50ji4BtN1}jyytg1Z{=)Su^z^8ayg}- zyj>9947?Qr4TkE@25eU89HM?^fDG3AB{-trVhcRJ0w&7@NUE>eHAdj-i42s#u$R zABZk1u#{#n8=gI>j++5M7mZGPq*=I62OsX@VWiFz^7s<|%9blrgPjmJ*_U38MSQ{C zY<~?@3iFtC(YNT!DvqYr(p-eY?qm3^(!s)=Qpu_tVwy#r)@V6D#9lWoub-i_lz5(cQ z1*jJWQ5|#Q@C ze(F#uuhY9V+-#GH+7bFAj6d>XmX+ltC~Gu8_&KsS$Xb`*&opdBkjeJo$i%u~2Q0yx zFN@wp?)Nz?jSOWG-EZH*?{Kf6(=OQFT%gQ#NI2u8kEqxIr=$3L!2ImTKzn0o=>gfG z$P{mfLUa1#kF`?a8toeIhbtlx@tWoP@IlodpT1vZZS|* zqMWHduC+M|d5#J#e^O7ZoOd>yZBoRgk2k&UuQU@QGXI3d7BZY<$zZwJvx& zdn+2-!qaW)Jcab602f+0MauN;?RVaa?vP>DmS#ZIPv)K!PJiYZRXGB;=|Pr` zx)V_LPK=y;ls_Hz9C52RflN2O6Tfe;+?!(J4T{?xM#335PcIr-&<*`kBu^`z!m?5< zUea|L=cA8^m`BM!&dwlO(KO!kk-za&S((Bq^^9e@pt|=nN2RDytPRsi3cqhViMzsR z^$sg(BdtfN;hhRmcXX>r@esItF2;CbGarfXAxR&nnRM**W6BnAwliSTf!~;*Rqywq zn{3DHIN_ms`_4*h66vJK{GVQ7(GT=|vmsisRh-&4$xd|?5A}1lUzo|dY}n-Y-tiaj z*H(8>{ZIO69_VyNBk@)kWGPQ|;9TQA$xWRA zg1yywA{aLi!LL<|eUjx{GQV-{PGHIPvRqwT+j3{_>#{n< zzDHeBwHd7OI8|E;ISfC=B~No*(F2mTP1g;OmFGP%Q^dPeW`GBq z{V?%J>v)e?V+rkG;E+TtOoNPIWdn!&#pdm(*k*u9Q3Du;ZuE6NM!?qBN9*d{wccbF zNyyf5{#4hcSjBJ}UcKs3-dm|$fh3$9G+h@B{~YI3CmEk`aVME);a~6eg5a7{Q8E97 zmL(WIE^;){i!K__S;rAw)*5|gXR=|o_-&28S$S;|{%ij+{V4WBkyX@!JhQv$xMu9=UuMlz$t|*ckC%N!W-^lKE0l31dq*!S#)_gl zT+*76qbDk+8-I=(C)Co>*7E2oevo*_BE=thBI!RTSV=AgJ+SW;=c9(98ei{~_GF(d zb*kpc;?D4)BqC))R*l%?GZ zYx$Th224%7B*$?w^!lOXNfmNpv=Ax`&aLg>yI}`lmTJk zR{PpXGEl;MG`Q-Zdw}-u@8ZHa+HiJZK1$f^$>!AXj4voN{3Z_Zf`Pd}>MgFxATvaN%8v{6nLp_1`6d*)3{8Pcmuh@1x&9OC( zbnqa}Y4m;hukN2WKqhz`N8@ePJQ(GXVD@!-S;!+#m-PUSDJJL3!T;V>QR9o61_3z$ zPei%^r$53oUxya|_a=(y3mqH{0RfYMJ(F0%)CO216H8IHqk%soBbmZPkb0Z8-l+|c zNI;{0@wK93K!F?|gMbj{C$8Y^U;w&169t0)is};z*u#0oyuK84kt=);1|S9?`B(x# znN}}FA6$I!R{E4QTMt_r?QAyvc(eb4DPMWjr9s7HoKtH_6lXrd8xw}H4 z#OpBfq1PEbYxtm&%M?vJGH`wHrvNY1K_fA(;ZX_k7q{n}yRTR)8so)oN`0AhM1DAx zZ@%-rXs;^LA@?d-YgU`=7xz zUUwk5uQl?2lQOFQpzQ@u&oP#|P(E4CY-|kio8OsyVWX#DR4=a$agP6R**m?#0zh8n&2DP86ujS^npTsU#Cc4OE4WMD9!vHkR12eRZMk>9 z5nswZBTpL39OhN07RMU$y*PT8f^`U|@U`D1uY>P88o!DX*HPLeApAKMMIJzQupa(< zL8|QacRBD3L2FFP$a^`<*9ro!?#r&!rbop{{NtKPcnNs?#_fystS`fr@CknmChxSWgK9Q)tesrqPHG1IBI_2zQSCnEEyG0ChQ-{ zmcVq%$9PbY}MM>%k+gcyPI}`iSp_sszsy;5Bm=#WJjSy;XAN^b11!Y zFu#ly1wYVuL4Ge#m;4>B(a~Ay`3?3&r>k4-K>n)H0iG}V8F^bKVQEdMU#iOE*&87X z(uAzxudNJByHXREzo_4`gl$9FM?qHcyYCvZ^skb~`sB8_bjWZ`>)_h_Bd2ZXqeXJV z41V>4nRmN_*Ls}?R!0Fbb65nTKg>;b2y>)7NXZNplyy>~I_i@AqTMpOzn$g3DQ@x= zdSnr$fC<9c*9qytOn>uW@=SBv!< z{dKstv`+E^g`@&+8t;D{c=-Qd^c^y5+b*QvIp((9!dqOYw!OJTE8aaUn5vgAHI~;o zNR`Sb!(A~vwz#u!#=d4cq)a)@{CyoLuF_-jyjQnbjUN5I(*;Psje088c6$^46UL$kPR$wl;nGZLVo2_&`L=iJQS?(>qjinRPsrY)=;bNCFrS}R zJ@#iuVdOb^)WhjE5(HQ#m7Esp(6bOHzS7yM4+Y~CHK#nIu!DY^O)I0jf`fLt~`>r)6{4;&s=P!qs7S(rE3w;T)886MPn!asX&cof$=OfSJ4E+1%eAJ+4k;6|KPq(n$*dyg+SsqVu+`oUJ+j5x{{E_s@WXy6fdeNk6ZoR zsuRxkO;p)ej9sE(V3?DPh4Zl%V0sPZsrm7@G}rLz?{ztiqr1V_&Z3ZM*kFn}p>joM zvtGYvxOaJ(`|Kj$h60EptmFKZV?hH951znx=il9mL&+5jN@kDB z9iJ#AEP8~tb*s>a(sZ5pqD4?%>IF4E86}g6p~9q6f3DwCmP0Pq=P|B!E98)J;236r z#Ubcz{uE{_l0=kr=j(HBXW;kWXWz$b;*8BQy-1* z-!Xr?#><3@#6v1O3(pI6kY~akli)1t1$2$OLqf*>n=!0!fB80EnG7l`SHsiMNJt~q z6fB-;@g&LM!Dp_c&JU;K#%GhdEl!1_e3C?4;fjY7rDhS!1@r-4E?8API#m^sY|SOQ ze&vnXQ~tT}1qQjEt251YMU0^WLboQ6@+{2j9v@s&($`UTMQ=pwc&4Yu2DHW*=z6AX zXF{4u__W!ssmWJb-aC!F`d%}qsYvAg^DO>^V0e^}Wxg3vx2#qrtC0EXLlY99WyJJ|#u}_C9>3bTkdmKP2r}*+X2Q zJn&KFiHU!F=1VAU+o1G%J=DYFY&5Zb`@A6|-DW+jX7s)0W10T%6|ZJ)d`zIHYj(-m zHIb>Xc(chl_41l9T}AABhk0N^XHxFO$@hTtmWFgHhwY-x{v(S!&Tlr!fat3$dh-_2zk94&u*jVs+ESuAX(${(O9GIh-LIFfjP3*w8Z;(@ihF8CA zDD{LVtowyAJLxNacPiQK{k=t0_*GiL`g)Up z%S_SRJLielj`Mmz6StaX3>}U$r9(v<`E)wq{^0&ZHCf>DQk1?QjrZT#niqEWMh^ zorracTX{hC@IRx-f|q)sPOmC`uTVwSjVp^}n{P<6JXNFfxEie>T{_?5kxZwiBRPlD zeae8d%|c(bCC+yx6f9drl_ii4=;&fvX5R>QXo%kwrl!df-ago$=;_d26^(~_&>KsD zftSHVkvicE;8dr~io+$_-Rn(3p@-aabvY~|8_UP^OlNb98)?4u5MG=rpnT>rZsZHNPT<#m8_}D zN)(d+W)vrDYaUj>N3rXzb(>(Y+uMjPdXjk+&-&ynD)<$oJQ%;dAQM^OM)P?TMZga1 z*d*L$=Vj`)htfCyB_5_Y@nF?)DaEB~@s}YzH{aTXUykc&k5)5%*Uxpo{DP=cDkU!k zf%QE-XRp?;nrgE{@iX>f%`27+hGoq%>4?%Ae)6vhb*q!e;G*!aI^CRigpP;3HR)VrwQfVt>ROilL0B?)mJ_p*rMQ7ZnjwTEkais8;1sZRmc z?oHuJ{t>I^?gB-GRc`i&$6Aj1@+lAZ1K(x}4sGj>WqiZGodph!omjmp%k~IopOm}2 zLIv`Xq@0j6bn5two9UnY)Mttsvgi?KzV@mw4Oa;~dpn02oIpG9LJ~UY;LuD%hQ>^gnV>yEv{g7=0I=>yZh9axNCY)O z4g9AcQ^P=XUq4M}g_nWA%UE_bJVZAKLcG}$&;EZ(30DPv|v-?y zr^fGZ&(191_USn)k{hxwo@Ej#* z|2CA~B>tg&)Eevu<14%oMPIOR`<8 zCom`jV(9C_Z^#qSzWh@(guwt$B0B-#dI1r?O#=#;@d z=2>}zz$5ci0Tw?2vH^3&Lp7m0|+Hy%#v@`-$v11B? z8JG)gETlv3rHZV$+Il=}17PUhuem?hQW?KJ#idJEH&Px~x}}8KVn4I z)Y-5&0Drst=0Ol{P? literal 0 HcmV?d00001 diff --git a/vendor/github.com/gizak/termui/_example/dashboard.gif b/vendor/github.com/gizak/termui/_example/dashboard.gif new file mode 100644 index 0000000000000000000000000000000000000000..4bab47020a56b836eca1d5afbb0a7ec1045f9a32 GIT binary patch literal 155984 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 z/Xb1GLBJ@gHJ{zsG*M0#q^2fh-a&L$GBA%^``V(@nUX^Vh2PG_tJ`ebf8KK_n!c$YcrkJh$W?gjLI^E!H*M_wo%QxV$AcAp=~e%3vt z^6;`5&r=@$V%tm9iiG(Osf_$DY~%MxPPNs#LI+mviap+L$^#oF2CdpAPToM3-9pQP zPG{w=zjwd<>nV{XZ4{>uV!>T~sXtzi&|uIbKLE8&?3nOk4opIcKTwkB_{`?ml5fYl zBSF-7clUksF*^EN%OQY*Pouupvx38$ZhL?8VsBZujrPv#yrJ=2GkWh%gw5%@DD|=I zSqtx^a~c%nOt#cBK8%Oa5q|v_{1Fp;M)rKnYMj41zGZ^sFEo*iVz(X$kUI$Fk-K=N zl;^hiN?dA4(G>UZu`qnof$pqZ?w*a}jkpsfRXF{|5o<_-%q%K(hIM95j<rIgO|5ul#Mipe#V5}!1D+S zumV(Wb)i>7CVz7;y=NcG*7#RX%hjWqqYe;u>u z*S?<%wgZ=6_nvr|cx#K~!M{tJ{}|pm;R}xKFSBpeoPC*5TM!tra@1B`5wn9(N7!53 z`d)3*wCWt%#0%NiJX&RM+!JW9Q4luVxfw$Y7NLH!TV?AK{WDcn6G+ith#P&Wu_~nH zqUU(OWT0MAaW?t(dt)B8p$`m90~hYu)blr&wO8;!bu(Y2#58o@zf!}>yMO+>^fxNx z%Mr%1P{uJ?G314mA-36cK>nphY}=yw5r=c+c} z1ktGxu@ z@k{z`-{swu?3lK0rHI;Fev6Q|2rW$Ot{B&mPa`dN5`fmen z#~-Lg`^iR*!shp>= zb~kv~e1zEk4`uh?b^7aC60|h^|CO?npiy?7v_`!Pzr{6~`!_W0Tt&V7&(IJ%_H)Lx zM!kZj@qah!m5eP#t(}d{%-!$V|34e`jSBpMIMSE0Ub^;{5)bvb*D(^8ZKK<#_$S zDZ8})q3n{=vzuw9`tp|ll3E2UGaMlw3@))+f0G5;h1VJ8% zPw+!jCU(J}rdDefb)*Fd`3J_R1SHo*25~gb&do3UZ`N+!hhZU7aC#B^sHN;1K@aRdd)pS8YtZTQZp;4AF6BR)09`apH5VnHewofl$1L7`t z!TvI7yVD3_+x9o_?-?NDF8XK8#}~C$e;UtE=DS?j-t01gJz!c>e$PZ(knFd=5i>~q z0%fJIncR^ydg*aXcBI|Si$vrP>ANBUvsY*1i_{L}>^lGOtJS@~dmC>DUuHlcQFY$C zRFzpN`g;vCzSD+&Mwe5dr7-wLOc~E6ch*yFYF>Y0$FAB{=19ads5|ekm!%1DoTK8x zA_|**OhHhBXpXmX)F#C(+cg2N7!e&1iTojaOU)5p{X-I{e`zW$+ zII@hKP_z#HX!d92uAv|0`*}%vR`G@x)>fPH2Mcm3+~#+ z3hT$jIX^J@;xJ;LyV>9|ECwLj_E`(5%t6z_pw!x?kQH0V{t((FFdsc^Vh$RJF~^-# zl`&2+1*s7K&`-Q$VtY0LAP&-}R+j|6O_yYSkRa=)?)Yl4ZrC2bF-g?BR&8pqCkmP~ zqOo>g{TZjztb_Kx&tVr&UWD=_2r{#~KCA!n!Lw-Z$KoA^zw&c9kNzLa!E^OLSM)th z$A-i2#r~wY(|Mn)R*vl{Ehi=Fovf!DD72?WW`a*PVzjTRZx#nVUMMsVYB;4l&h!3d zp7Ox!*H*}r{a;^pZbpi&XE#T-UdQz`UD@wAde!;0i|%9C!Rwz6+J}9@EL~s6BrkS- z8~n=LeK5}QI{awHE;Ic5u*=2nL+bm_E8Rb4UCgK_i^gW%CsQ8(I)5$33P+xPY<_U@ z$B)FZRT7 z$D(PIva{+m44WK>emC?+2glNKl6kGkREEdhzKX5hGCeIdrQZ z&3BkYCEngh8i9&y9wutpi?Tj39OT(4^(-rLo!%Owrm#LNp#AC{ZkPc`9Hy;<|^(WiD%APg~X zJDc-WhF+M{gO5Sv#<1MK+7#<~D|a@(Img?Zo`&dgE&LavM>ZKo7V@UB zTl*E323NA@Y`?r86I)bf4HVUhOzF`BMSXJ7n%B_N7TTcVSo6>7k4`SjGgmx5l>;FU zq=5%lK~R7OsTGo;90X#%pC`a^B^r!U*QNJ-?#gaRy2hb`E&ZmitBf=Uhp#9TA%X)) z9!i`9T}1mKU_ zlM_cg#!Y7FMHg9~-&8DBGzFty7D)!{SzZEJc7=XNiV$gAVvKcw=4wNUpX@AUhiQUd zw2>`dkDZTVt?PQ`Zk1`hyVdxI*^VDCN$K^TE=9Hthj(w^u<1b}7=RTTmp7@e%fYi_ z_mLh9n;Y=Fck#D1j*SaiCg{x`dU^3btlfOQ*OvP5g7?Uy_HB-RrEgcGzZL%M+A?hn zof}{IQ8Uqfklq;nS@z@jb}!^p$y;H@;R?=mka=nv@0E!JROK}iGZo&<3y12{N`MmsK zg3|Aeie_^0J0pu1_>%L0>+v?92OozNkIf6fwI=H+8U`G^F9dGWxIElFh1~i4@btcv zb++45aJ}T}Qm8|U+FmjILNy7aqodgl1 zI|+o!{o`;M`3(d94`S8c^fekx54r855wpQPoDJk1$!|9A8m9#6-BdhmsWS2Omk2hX zIuiKag&umG%`i~5mku{y^!hPariDP$U7P^9m@}#Zj*|}^Kc3D{G7oaJ5WICUMS}7? zVD;;GkG8+R1aFlBJXQDg4RgYzH@#P{SCYK}Z7c%HGT2!!0@(Evg@Gi{z#Tju-h*9M z#P>>IiC`Z4Qgb%$fqrhvp?nu*wUGxutacD{Z@v&gWw&baf+yTGi3c83_3&>JA$A=b)8o`Ix$TJ!rjRSsh6&8W}c-1q1gF!8NwI|i|cg~VEN z#LGSscY*tjZ~-In{pI{xrY5b+*Q?0hJSt&3`>$H0=!vjQtS$@)Rs(e@Byo&{p{xzn zns1o#&O$J-#;D7X7w9w?rR2EMpnE9NG*SFdjZi6xC!TmKhY2^zdpKJ9X*xZ`_TO*L zV(tNG3(e7C9u4zt{3XRl2?E56_hNb?q&%aju8S8|=1|cetug`B!;8QBU0zy4RT5jE z^mM@h;6;Rzv*;cGvP98{wZI7dtdP3qknLHpEfHp;7;S|KDC4H@YjL z(pyQK_Zt2wB>E{3`XY#_NiD7-FLd$;AR&d2$3>GQADGi|H`9Tw5P*#o{Y@gQk1k*` z7aU9nSRlfqhFxRO!YMe`>@|2`&x3MvWmyZUhl&0SRsITPafR#trq;MMHG0cn+F%%zm&Yo}GPm z$c2fWOn0!x8R2?4DmcVdG>PEnX+wg|qQQ2kgvK6Y7QiQl05n_3Is631)q(MOCeT4l zyeKftbMB`ENVb`odLh=N-7uolH3HwJ)Y8fRnF&M-LDEckjm_X6Kc4apKh}7l)(`N1a|^2eF4F(+$-va`ynDjw>Py&nV!+m zad)187$pc4T=|$3S4POnP|gyy$p+J^@Od7cvmR@x^rU_lfp$W^QV!ZihRaBk$u;|{ zdUn4mOpeHPljPAVfglGbVWMFQ1(kmVSEkj9xK`^Oj*?h#H83{n>Gsv|- zS%}ULAOo_%LnRz+gvX>lxsX-O2Z8auM9V856qcF;vU9!~N4}Snc+ZVyeer`BHec}Q z$zoRoog)`dRNvWW1$}A05U|ahsF9QrlFd1qL*06mDUHZ#huHxTC98rMQs{0aIE@D) zgUz%d1zM3nZjy|asE5S-pa43^l4Ke`9wvt`vJ8Udk4BhD#bAF1`XokN!Uo+44#+Qn z-JRj>Um(1zmfc2|yvr%(xT^DhRES5jr1xI&MW2%Ht&$H&jcE2k0SSw?bD;??c(K6b3s%0XhWwDs- zps^Bbx3WM@#5Grw0oTXcp{vc~Ga z%z0kF8o$Yxa4)H@6jATimf%$dLoGCzwU<)Iw0vw}cgW55HMM+&6_~|leLI-@n27$D z<}0%Fe+!#C#^Bnil{#TBpc|hs8*Ko^>c+Qi2^#l0twNjiYTK`cH4cQ;DEGV=?(FKeH5t?|<4%4#ufg$b zQC~K+Zb=ldF^}d{kDlOT{>&3tE8bPv(M9EZ@yX-Wmm4s3@~geyu$|iWJCs+)cCXdZ zAf>x6-`bHPLP<|MUx(D>SNf)nod7KS#oO3S0m-0U3&N91_*Q4zVQsAss+K*xmq)Hv z$)Xu&-FI2UVf0NsX2MJerpewxFYtbvb?EA&EQfY$N_XE7 z==q53a}ek*!+J>Y(`Sdm&dAYsdN4uEXt~5uWNA9mYM-kfldA(^QQ~!{LlW zaAWnTr9s++17BBWn(rA)2(&YQ044w&VUH`?nG)4UKN254K)4$(Flk`vkUZW&6RO=W zfM@~2AUz<48?&raH6|O^F6GnPjn$>8i76tO%*UVCjn#QZDs;f6g1z!55)?v4Kk_pl zw~p3wafIXO!qFlt>SG>a09E8*IJuY5k=q|2uz3NKQvfHu)TFx@ zaO631xH|@5rfwULsCiA-3%qSId0S<#-ZU|u5fvco%IL~kh6+pvLE)s z(#c~W@jtl(6sc^!q+p*Jv02iaQe5g4b&~R*x7GG<_q4%X<>RsIQ`+fj$xI6#Pp^sf z0ATEbhcY;$dqLZ)dONTIywk+v%G5c>(rK06G#>iVprEQX)LJR*rXldkqvEwz%F8+L z>XJgP<@ P_RLTwr0VmZg^9b?8vZWbyIjFWXEayb1W!++~EMD1JUfvb>aN-irqqpc}OrJ9LwAH*S%me4#8dREB z%|HjagliZkMA&&%6?{kv98d7pL7XxHPp;ON?FqeBg@7IDs6XWZDLgcoi5#IX-T~F` zp5LG@FPyosqT}@z4ZM?mr7EtlvLZ08)G#bP^-{!hS?$6)p}^bQdKJ_V_Rf8AmfmOJ zgy@l2aQxSj07%)@X)HTmn>%Q04E#&|-c~YZW!zUwR&+-ZKR>o#^x8Uz; z_u&?+DlQnN{>@H&8$6%^6@UF#9WO)uI|;xgFZq>SLJn_yW%~A2+c~0a;yFyBlXqh9 z$&#E-NSQ^*Yxk8X?Wz5}vANsR-Wi{}oF>&Hx?858pHRC)SJ!q0R@xt{8snyx7`Le9 zKqwN`x+7J^`lSURJ|S$;TjE=6@X1>)Fv3ZwrFvR^Re&4+Ct}9lCS4l`HZU%XA)zRR z%VD@~i>|?N^VCtI9L2|eL$Nu--=p}oQ zU20ULFDAN_4cgSbzWw^U(VZXHmyR1ZdLU=%wMh`1@K3*+glpOao3x{46!mB5#h+`c zZfAk_?GpPX;Y>_8K;SPk@}Rv;^hYD{r|;J*g%TWcyFxjQ%#SV#eKcTTB6+Mu!m5HE z4lgm;J{zU~%xc=s-2cbuW+qbx%g?et%M>%QLT6+o5mkf%^wsDT%;;Y{LB<}8{%K(9 zW?`ol?|78yTAP@{Cy(+w76l@cnK;Nu#wLaU)RzUt0PHgmKM~AT@@ozg z%BqQwCR5f5nKzzDIGzPAprE=G$VKyi^{*k`dce_F$nihOw~PPqs10@we-N!vU)44; zzjbm#b6g_PA&92Dhvpz>fTC&u3gpIw7!ukGZe9%<9=@NFR716C;uEp5ILuW;r5bf! zCEn0&vUAt04P_*Uaxfei_ik6`J!hu52PFOx0}^Df>`JZ?J~O;-TqoLQ2?oCa?* z%2zm`LWpJjz<{l46$ODA$jz3)qAW^v0lZ(@9+kD{`Th75ZkFfT`NNKe1M+;=U8B`M z9i)x|jC6)ggISOIZ#bJR__Ybii}<*!6JxIgva4nvT|)jdbg4 zrh1?m#)}B&iE6RD>v0z-+|ln_9N3@odzlWhJTd&huN^8lXhtxEMv0^5lz+awX&`tT zIAK&vNy1pG3oAJeYK5gM!x&QKh%l?0Qh`bIHG*$2_gDl7t0LBTDX_Y=E7?(>OF|#d z#d-Ix2&bYa$O6RYiSC25xSE$qo)I<2r$^dU-3~H&e?A$wU}99kGN%;u)^GflMuoqr zP~ZLho3=r>O)%JlGvbb+?aMjWM1A{(BB>ibb2pF&Ga%t@i*vEXK}+!?VIKyz6NT}Q z%Z49^{|c$%_jUfxSehWTHpB|$;E{fsi1#s-{j0Ht6;(`28oASvezc&@;+Zwb$$}OI zxcp15STU5RklnSAG{rT%Ciw_Zue_$D?*_!%mO08m69zdauO=Y45GsU0CE?0ZL{KgY z<6NM3KrYT*85?lE4i_NyfarJ#nAY`Ivij}wkJlQyGH`kIMKJuT0mFKCwEmft>*qkP z36Y$ZSJ`;N=>>29xv6NGoc0Xg2cO0nfWZT|FjrZHTlqO?(IIL1-g|E(6_2uT9Y-KfpOkQ#zV08~Ya;k520k9hZ{ zHArZ34uuPUH+|qky2p4@JcnSXQ7 ztLtbQG8oM=`5VybUM@Q|`Ecvb8YjTE>%%R46~M&`U%mm>Wv(zeP^$>)zw-*}%T7rU z1cmP)Xd7nmRt^w3^p?tPIPewqxrl%5U>MVWnF6Zd8T>6ZqyAK0&zE1HbG(ieFYBax zso)Dr^bd$l)~Qzw-~n7|ZcTk!1<6VqSU~s(9 zj(3pv^SA{Hr*=`2u_p#URX|M~gmQc`NeNy%eq}AeC;+5_XoSNfHI8$4v4E53+ycj4 zJTRaHAW!bxo&_Vn{t;mbIJm^U*_xw_Xtgk?=s-m;*XC^TA+@!xHMbHri#~W|2z%JHNVMb??A5u% zrYuY+oNp?St9LU?{qU|P@MWD>y~iDf#rd(>7iF9tt{$E5JFa6}yY}iIL@_K;=!4n@ zv{ua1v8*W?>Ra<<%lJb! zoImaM553^NV3=ZjUK@qMpQMaK#%@x*vf|S| z$$5l~+wVWmd(F71m>M$Sq|jV2owlh`8#3wX-CXpM@w58)DeoQYe!d!FfyS41*7Jyd zr2%a0!=zG#o^vcz^dKI&8#0qp1>yy+!}UDG-sm~wMV))#s^KEjMQ{M5neM7O0!%-q zg86IEpetbuGXx10kS7YRY zC-_;-OM8gQJobYN`UNj7y~j_~1)?a!06;43-4FPw zw{p(9A1Z+csZuBlb{Q=^)bs>VeSk@jgopJp0cUxlXYW~GX|S{3KfeS30aM4Mib4aLkB6azE1s z(}T;yBJ2E#{UV~2!+?wJV=Z_=2Zb=^)p+GJ5mpo_dd@1%Q%j9F zAL!gaIQ|MgEE~G)QFYX{iv65Ar_&qs;C%hKVuCVi=`9t7P+y%U;Y7xPWyW$XQBg{$ z84W%&{EPq{bf3aw^I4&aC+FbT1XQCybi?ql{j*(Ro*#M`t23LSxP$m)Vc}Ex%)wf( zo_CyTF29$ax&3_2Lj4bGxAug33mG2%?Y~&Nf4?R#F7Na&{QVDWH_Gy_M&eEd*T{u4 zRB!aFJc+;05UgnY2LQA=fcQC#XBxp{F9W`4$v`qU?Su>RLugRI)Vce-fnLho@a1N+ z`?%nX7NNy3qyq|mJ5NHq3L&E&`hfylPe5n}A()e5HL4;}>WqT~x;hH|T@a0BgNOM! z^X7Vi5+ml{A)q~R8I%~qrXbNa1T~a3{uxHlDj#8+6mO~?n?~@^luEeQ7U6Q9Gl#+% zQ$|NKmPMh$@4_9IEn`y6X+#kG%0bY1EF`uv=4LP=AUH7+;ddFEI0^yDBqcthzyygg zak+quE5ylMsgcXW!2oc;g3^-^R))#XE0daLgJ8rM)p^8yQsU#bij5XXy6-a*lR<&05|T45A@_)0S7@JY zq_hHc_ya^}L7NwVO-#!VSca#oQeZ$&_;_o&%sfaH2j_h2b=Mqvo*Zsf6|>Nift2)k z3lDx?nP{#KPYb5PFZjeSZ^4|*=`)-m=P9rR#aPO0_{-qfHbfS)lx2qKxkR+o?o$Zu zPFs_R$4N!`B9I^~Xl52PogcLA3I*PUohPKF5m*B zB@N~E7?WMmhV$LZd7&EGWAoURo&V@#2gny5iFr)Jl>t z#Pg>_2V6QCK;JPe1uTLcTuKD_BC%&6abl7@NrsUGAr+E=Cf1qP67EVVbH&G;PlDe^ z!M#okRTYEN&~RlZUbu>M|A5y4gdD$~up}&kW zGO7!l@f8=_lkbwBGF9g@Nct5T0a~_Cn}5V3x#4-Ja)46$U@YS9W#CZU*4WHewGnijzQWOMJND592)0pE0#g5XZ&U`a*LxFd6XlceHv z{vru_4|-Z;SF{I#wi6IR!7Rwo-JPb3Gl0}0Lgx2#R1xWa1*;EK@c&8)PEZ1jps~dv zu?(;PAYf@Xs}eBFu^p?k&#(YM3jj=e2v++g1ONq8`v^|pvKzv#N)ZAio3u+CwWi>- zjDP}700IijvP~cbny~;R&;(6@0w`dx4PXL7YqFXl045u^nX|TS%MpOfwTR%gim(7B zZ~_er04KlzPS6A;3%7^sX;2UXitq#?Ah`$&0+LGt|B3<({;;+sFt<$*1$S$(<+`~} zAO&Fy0Ha&F0Pwj@5W0u304Goaj(fEzYqfw2yNaNj+Ko zwTQ3)D6qST0J)uOy_M?-P!PRW%ej+#2$5^IqD#6?U;@*Nx+FjX@_GnP&;U-Lu&ztG zQQ)qhD+M3`0_;n>QP8#}K)nDUzbHVzRXe)ytFBJKu!P$PPat=RAOIkM0zO-{YhQS|+`F2Kv673w9E=Dc5CseX1^zp<0X)F|Pf)<|o52!mumm8qT@(Tl+_4l4 z1)71t8cf8vOR^vg0wsJ1Ib6bdhQhmx0s?Tw_shEuoDT&n03Qqh{Cfx?AO*0Zw0q0| zAkYL=+s9H+0CbGG4Y0*cQ?MS4vI8 z5X;LoYr*X+0!EAoTRgVpOuUVN%-9^smZtu-eN3_BOv)Wh$54B@mR7=bYt1MNvyX(V z2aV7P?OJ(2UVH#aE+EPPoXM|z!TC(lv5d7h+qUq$yW;!=;#|&v?8km)qi?CPi2q2KuBc0Af9o2&@)RZ6q#+(Qx@X}VD*N!m9Z+x>{{njw82qz%H(%@T` zw!yt1$%+iie_Yo|Z321B${wt*Vg5YX0uTjXJFtx4&5-QR_bdRZEC80fwtj1|It|R4 zvB9#P%$TjMlGU*gd)SOkA_LsEaDB?D+_9Ow+F#q+jDXai3<7yv*--G=l3lP_ojH~} z&xo+xHchgkjohx?1aceO|7^&;P}~1}+mC?4Bijoboy4&61W@qB0I=K_>&LWP!!``d z7TpUAFtZaIwSNuY@cqXEJh4&W+_uf%GrQA@0KfhX$mZ! z0ft`z1?X+YtAbuqd5&Sqs%43;=to6fkbWAoE}i2 z&SsR(UWFXvv3>}%?j^8JHkrlfx`XP}XJ%Ry6X4@ULLltWA?z~I z1BWo|#U2yM{$Hdn>7btJUUmV*a|jmz9Y1jG)(!yJ9uwN$?Pdb*)&A|(wd+%p1Jh1s zI)LF_2JAxM>}~}91o4jShoAsyMDNXR@AdxdEOt-qj_92(VhZ2`9Iy-oZ}5mf@ECCL z1<&dQ-|*nm@8Bd~0^ef2F6!8F?(>526K3ie4_(lHPam&lpAPaN@9)Rt27x{uA}|gr zKoCPxU>$$*5tj0eo+dT21tpRjHIfB0Z}BxhU?TriLC**W&a>ec5$e_4dS zJ5s+_R4-;v5A}Rb^f-U&MxXT@zxBNC_0na57{~}RkRWNlIQ-)Wc%Vy-VDev|sYGvq zigXBQpZ0Zd7Z4x^c`yfW&j@euhW!#R=e0ATAX zmHP^R`@8R8BA8?J^Y1PVCAK9nRiYj2`{G7n;;>9(scP43_?Gahgw|0DQ0k?jQP1pJ3!J1mn)_ z{0|5}0E2{uhKGoWi5EgbK!N~_jgXQ;kcya@nwy-MdJdYOhHYG$H+ca7GkFPm8+=EY zIRl-womg3^w!6H&qotW{N&o_@X-NQjv5GphzR%Fn(!B|dLOp}kjo1L%*VDTRK#tti z_D$B-j0wQC3-n7@FZDjr059{>t{ z5=%|Q*q4Zll2Z@XRG>lvO>gL`o=v;9ZJ0(q<$l)sb*9+69%x{v0`+ajl#eT4{?6QF zazfAj>FHWafR-%l8f4MiTx|62;KPgO^nJS0?}rLF1NUJ4_?PD2%b!obP<&6+UGB+W zzkl7`{skx?ZRG)|5qblPhhTyXHn>rN=Nagrd~X;q;e{BIC1GV74g_3=^UVU{h$Kz} z;Y+1KhQ$`*6`%zX5AK!#2N#qGO#&FyNXP*+VmPCYgDB8rcPDBX89?F*5W{c><|j@g zBH0*DIwE-!C4*LGLnVcn@{;S?fn%#pwwKmm|)0${YPNU#*wJXVo(+`-4mhrAqfDn8#~;mq!(CV&+z zrsg7yh@fT2Lms&7hX)W$Ep^mIWx^wnDh)Z|kA>jKHMn3CQa1i%Mdm;g&xKSSHNqZ1 zeKmfzA!+oIi8x)z41ORm!yK^4kcR_*7nZdmS$4CfgHNi{xS-xPUS&Fv^JS{ugz$~P z4Ra`?dEuVnhDZVYVm`U_Ksx*?GwBBz`U&Q52zwoek--RZ2GHAW(tCBkQ^V0y)xyQSHur0J0xW9O4K4 z4W)nk1K@Gm^Oy!C3uPx0%pmvxms41X56C#h^}J-W7XEq%g1;z)2mwGsdtBry&ii0x z;1wBLIR;mXz|1oEu$j*wW-}B(Oddvq2%5R@iAKU!TZ9Mz0?ZIJq8Y?tvM38(siruo z+E*f4LpnkffCj$7gd7k+CMdcwMt0goZwhh7G%8|^g%AP#VxRoUm96YWg{4mk1M91OVb=czGl5Eoyt}@Crh?vCtra6P*Sn-#Tw;5*@&^QX=3<#Zq|) zOcCM&JqVRbNFo-Ga!RBGBqae;TFrh=G(46B(Kg-rL|}qrrhM@si2g}aQrdJHJUxyI zE}EcR_Oz5gm4+L12p&BWhpEWn=uvBy)M#+BI|1$1G?X_RoKAIORfUFEAu~yK#8fg@ z{i-9=Y9CPE)UCc`t6Bjm*I!DN7h^^0UFS-#us$QNyF%C;{5Tjn?7W8x~o;!VYkV{(mXi8$_C&haI5 zx|*nOI>({k#nsoYuUv%!{${*HP=LL2cyHertlnS3^*90e?Mo6+2iGaW4Tp^y>gv#e z>NSz58JQgrR!oU>w78!81n?$ee1R3uQvfxFaXypbNq4Z$!-)W~)kdtk3JV~1@6jnQ z1h66vYXTqo$OPXmz&ANiufqNSK(bQAsgiLR%Aw@rvY06+<4uV9pk8LEBh2|ti6(=c z#<;SS86vp$MR{f@#-?XEkxgIJ!GA=#31JDtKZpc{A}&>E15=_v2a0Nd9)UDU7g%OZ z7?6REjzpwKlIfH}NB|FUFQILsgN{|E(E3Aka{c4MPMkFwCDe*$)&c+t-24a065G_Z$&2{fo4L<(Kw=1M7R(?9JU@wVa&SuxcA. All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import ui "github.com/gizak/termui" +import "math" + +func main() { + if err := ui.Init(); err != nil { + panic(err) + } + defer ui.Close() + + p := ui.NewPar(":PRESS q TO QUIT DEMO") + p.Height = 3 + p.Width = 50 + p.TextFgColor = ui.ColorWhite + p.BorderLabel = "Text Box" + p.BorderFg = ui.ColorCyan + p.Handle("/timer/1s", func(e ui.Event) { + cnt := e.Data.(ui.EvtTimer) + if cnt.Count%2 == 0 { + p.TextFgColor = ui.ColorRed + } else { + p.TextFgColor = ui.ColorWhite + } + }) + + strs := []string{"[0] gizak/termui", "[1] editbox.go", "[2] iterrupt.go", "[3] keyboard.go", "[4] output.go", "[5] random_out.go", "[6] dashboard.go", "[7] nsf/termbox-go"} + list := ui.NewList() + list.Items = strs + list.ItemFgColor = ui.ColorYellow + list.BorderLabel = "List" + list.Height = 7 + list.Width = 25 + list.Y = 4 + + g := ui.NewGauge() + g.Percent = 50 + g.Width = 50 + g.Height = 3 + g.Y = 11 + g.BorderLabel = "Gauge" + g.BarColor = ui.ColorRed + g.BorderFg = ui.ColorWhite + g.BorderLabelFg = ui.ColorCyan + + spark := ui.Sparkline{} + spark.Height = 1 + spark.Title = "srv 0:" + spdata := []int{4, 2, 1, 6, 3, 9, 1, 4, 2, 15, 14, 9, 8, 6, 10, 13, 15, 12, 10, 5, 3, 6, 1, 7, 10, 10, 14, 13, 6, 4, 2, 1, 6, 3, 9, 1, 4, 2, 15, 14, 9, 8, 6, 10, 13, 15, 12, 10, 5, 3, 6, 1, 7, 10, 10, 14, 13, 6, 4, 2, 1, 6, 3, 9, 1, 4, 2, 15, 14, 9, 8, 6, 10, 13, 15, 12, 10, 5, 3, 6, 1, 7, 10, 10, 14, 13, 6, 4, 2, 1, 6, 3, 9, 1, 4, 2, 15, 14, 9, 8, 6, 10, 13, 15, 12, 10, 5, 3, 6, 1, 7, 10, 10, 14, 13, 6} + spark.Data = spdata + spark.LineColor = ui.ColorCyan + spark.TitleColor = ui.ColorWhite + + spark1 := ui.Sparkline{} + spark1.Height = 1 + spark1.Title = "srv 1:" + spark1.Data = spdata + spark1.TitleColor = ui.ColorWhite + spark1.LineColor = ui.ColorRed + + sp := ui.NewSparklines(spark, spark1) + sp.Width = 25 + sp.Height = 7 + sp.BorderLabel = "Sparkline" + sp.Y = 4 + sp.X = 25 + + sinps := (func() []float64 { + n := 220 + ps := make([]float64, n) + for i := range ps { + ps[i] = 1 + math.Sin(float64(i)/5) + } + return ps + })() + + lc := ui.NewLineChart() + lc.BorderLabel = "dot-mode Line Chart" + lc.Data = sinps + lc.Width = 50 + lc.Height = 11 + lc.X = 0 + lc.Y = 14 + lc.AxesColor = ui.ColorWhite + lc.LineColor = ui.ColorRed | ui.AttrBold + lc.Mode = "dot" + + bc := ui.NewBarChart() + bcdata := []int{3, 2, 5, 3, 9, 5, 3, 2, 5, 8, 3, 2, 4, 5, 3, 2, 5, 7, 5, 3, 2, 6, 7, 4, 6, 3, 6, 7, 8, 3, 6, 4, 5, 3, 2, 4, 6, 4, 8, 5, 9, 4, 3, 6, 5, 3, 6} + bclabels := []string{"S0", "S1", "S2", "S3", "S4", "S5"} + bc.BorderLabel = "Bar Chart" + bc.Width = 26 + bc.Height = 10 + bc.X = 51 + bc.Y = 0 + bc.DataLabels = bclabels + bc.BarColor = ui.ColorGreen + bc.NumColor = ui.ColorBlack + + lc1 := ui.NewLineChart() + lc1.BorderLabel = "braille-mode Line Chart" + lc1.Data = sinps + lc1.Width = 26 + lc1.Height = 11 + lc1.X = 51 + lc1.Y = 14 + lc1.AxesColor = ui.ColorWhite + lc1.LineColor = ui.ColorYellow | ui.AttrBold + + p1 := ui.NewPar("Hey!\nI am a borderless block!") + p1.Border = false + p1.Width = 26 + p1.Height = 2 + p1.TextFgColor = ui.ColorMagenta + p1.X = 52 + p1.Y = 11 + + draw := func(t int) { + g.Percent = t % 101 + list.Items = strs[t%9:] + sp.Lines[0].Data = spdata[:30+t%50] + sp.Lines[1].Data = spdata[:35+t%50] + lc.Data = sinps[t/2%220:] + lc1.Data = sinps[2*t%220:] + bc.Data = bcdata[t/2%10:] + ui.Render(p, list, g, sp, lc, bc, lc1, p1) + } + ui.Handle("/sys/kbd/q", func(ui.Event) { + ui.StopLoop() + }) + ui.Handle("/timer/1s", func(e ui.Event) { + t := e.Data.(ui.EvtTimer) + draw(int(t.Count)) + }) + ui.Loop() +} diff --git a/vendor/github.com/gizak/termui/_example/gauge.go b/vendor/github.com/gizak/termui/_example/gauge.go new file mode 100644 index 0000000..d05b77e --- /dev/null +++ b/vendor/github.com/gizak/termui/_example/gauge.go @@ -0,0 +1,84 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import "github.com/gizak/termui" + +func main() { + err := termui.Init() + if err != nil { + panic(err) + } + defer termui.Close() + + //termui.UseTheme("helloworld") + + g0 := termui.NewGauge() + g0.Percent = 40 + g0.Width = 50 + g0.Height = 3 + g0.BorderLabel = "Slim Gauge" + g0.BarColor = termui.ColorRed + g0.BorderFg = termui.ColorWhite + g0.BorderLabelFg = termui.ColorCyan + + gg := termui.NewBlock() + gg.Width = 50 + gg.Height = 5 + gg.Y = 12 + gg.BorderLabel = "TEST" + gg.Align() + + g2 := termui.NewGauge() + g2.Percent = 60 + g2.Width = 50 + g2.Height = 3 + g2.PercentColor = termui.ColorBlue + g2.Y = 3 + g2.BorderLabel = "Slim Gauge" + g2.BarColor = termui.ColorYellow + g2.BorderFg = termui.ColorWhite + + g1 := termui.NewGauge() + g1.Percent = 30 + g1.Width = 50 + g1.Height = 5 + g1.Y = 6 + g1.BorderLabel = "Big Gauge" + g1.PercentColor = termui.ColorYellow + g1.BarColor = termui.ColorGreen + g1.BorderFg = termui.ColorWhite + g1.BorderLabelFg = termui.ColorMagenta + + g3 := termui.NewGauge() + g3.Percent = 50 + g3.Width = 50 + g3.Height = 3 + g3.Y = 11 + g3.BorderLabel = "Gauge with custom label" + g3.Label = "{{percent}}% (100MBs free)" + g3.LabelAlign = termui.AlignRight + + g4 := termui.NewGauge() + g4.Percent = 50 + g4.Width = 50 + g4.Height = 3 + g4.Y = 14 + g4.BorderLabel = "Gauge" + g4.Label = "Gauge with custom highlighted label" + g4.PercentColor = termui.ColorYellow + g4.BarColor = termui.ColorGreen + g4.PercentColorHighlighted = termui.ColorBlack + + termui.Render(g0, g1, g2, g3, g4) + + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + + termui.Loop() +} diff --git a/vendor/github.com/gizak/termui/_example/gauge.png b/vendor/github.com/gizak/termui/_example/gauge.png new file mode 100644 index 0000000000000000000000000000000000000000..40092435b5c56add054ef30ce220b95e62bd175b GIT binary patch literal 52710 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%0A@2o!L)2Zcm!I%vVhxnyoEh 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/gizak/termui/_example/grid.gif b/vendor/github.com/gizak/termui/_example/grid.gif new file mode 100644 index 0000000000000000000000000000000000000000..7490043dead4c2077cdeb58fc27a3c339980335d GIT binary patch literal 800288 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

9DAr9V> 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 `ZPqwllgl;9&WzxFtk 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 z z^>+dH6QWX~WgGLh=kpuj3*TGhzS~AXRqzk#6Deo}F<~B`gw1VEvZg zR#mB7vFrlP2stgBzbX^Eyj)A^hwR|LGk#rk&C+w-Lw=q|3Xo|3iJbn~Y+*6R%5L!| zGQ#`;0WhiYDB|9zZ}(@ex95P-eL2{|33S#j?c-Yr0GlN>InIvqyiE_HiJM9)c> zg%lJ_ok{t?<$cWDQa7Y5!itY^m%5LG>iUmREJ9L?;upD#8b$vd$(co+j3km#DdBTX zzqPS=qXZ*s3RvX*$H`$Mn-y&;8BUlZ(pni3%TyI$s~az+6MsEn65#S>V(TDF%kph3 zjiz^6&SR?&D@uAWeX0cK2Ypxav659!-IemZHRQ$$IjR7M$sZ|fQ~7riY&O5(4Ggf= zDAJED$=O8;RLqn3o?x1gM4e6t${Z&KrOzMZZ|~PVdewl?Nt z9x}^%?)~|S%kpmK^GpUm?m}NOQvPZj1WFP?PXreDV8kJ(dqz7K0HDj66nliiOvnkp zG!Z13vgxn_0@GiTTt^0=TaSjB>8w!{2C|EuA`evyM46U1=^ryYNHb)gQvlj09`e8Oo z%R3)hr@PGDedm!`Z?%|7_afU;l*z*YP-=ys8C>~~l;Ip%0AA1^4>i!}X5${Cnr8{zK#cAKn1my(2R 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 %2}mtKVqSlx$Ao@~ zWT*u~uYN6l^oi*YrKtLIK=2pLJ488Nl-~0DF6fZy7)bp`ZL+H7(Ru9Gk8f}C04=UY zz8GAjGk4B4azNk~^QXa}|FnOxI0U{qzW1OsdPN0rLK1|D45x#1biQp4)E^()qm5fa zQKX)c>rDNdKNa=9`K!P_4F~7Vc_mQbh`X^d6tAI`Gar^ouE{6;if}go61Tb$g9FjH zH!Q3uL(q(<{8J-$xE7X1l1qsp%i!^F`d&;iD@1z_)&)Tz{bOR{B@kh$@veYubllAt z7Z6ZV3S7Jynd(}6=~k)*eOZ}&bm|QNAA2)CDq1|VAjYDE(Z3){0tj!Dk97lKW9y3b zr>p*HEXmi(i_*%kipgCntynD4iH;_ejsoK@z@><~^M=jxn>z>7{QzT2YScgYsJ>Y7 zH_d6myZ2s5vu4@)3IaUgx=qgWXU6AGAxU>cG+;G^eK;S#=C9Ho$q27i7TC?q z(CV$q?3fxHyL1Rz0_=MiMC{!q{|0OL5t?lnm z=~k%PWci0pe|p6K^FAvMvT=wNO1-IxxE*Yin}JKg3CJh;kAc49VsCKF&8D_AMOj|x zWu36>q9z5dbe5e!73!+c z?=+AM>94tkXu89NJVle**v{iorPDm|911Yc!qR{M=fa;lRy>K@Ylh6lPQaS<-y(eb+;*WZl0@2 z>l?|q0kn8$dRobkQ#j?6O`r!CLtg9V-=)&{zT>4vdk;&YOFi0)=akOA#O-G%%Sw7m zYYMS)NiubBNLe^8(-^2{c}h9`yMGTlt<|5_FsLs%uhXY{864J->LacCItc; zobozi9R~$Q0+H(&io&9H_ond zodn!XnkDR_r4T3n~kY9O9b%d6r>poXl1Z&^_DLgcH( z{3z+hD7f&VwcUk3XAeJj$pVX?lThRot+M?I@Dge2o?#LoVB4cmwp}(5#D-OvG}Jk$ z&(EZvp9yaYMDK)VCd`*>nj*|DL{HoQXgyR5PJ-o?;_R2)j^QsSX5q3_51O2F>C>BZ z4(YyyxF9Orh^-g1{z(wPebJ482C)cHHvaO|1JZY%hqeMRvI=U zYMq!Nc!mbRfnZxfsBDu$33uBME{nkc=mkmySn>YsRM^{^1xL;f1|7vkjpmfo?G2rfbhgrABSu>gED|uYjw1e>C}*ergS_+E5c{a z9Hm2p28YSodfkzgWnpv#MDi$&kr@!Um=(Z zy`YvpOl=yY%d-{$8WyCWrjstk?JNT`0Z40_z92kJWv%}0m!KQroV-gOM=LCC_Kf+L{ zTI(OtpNS1(-)8XZ!NU_Q;?q)cnmKce-ygGJ3dL4Tvq6Z<51FMX2%<*ca|OPu>7&yi za64C^AW`fNXJLU#--#d>-zqa5x%CuGC;85My|ue5;ksq=$%{Y`i>j9xijq<*CkkAm zPUP??5M4g<0jiF&q+~5g!R_U7;3FRgMjv2V=b zstyOpWbXmlGf|mJ{?m0iig^pV#P?d+o=;5E1eOLg3@j z;w?1*#sMmnxjnp`a_v*avp+|w8G`^Km?_a=vP6x$_F;;}*LwcHC&rH(s|!}XHjB`F z!*}1WHdy@I?)>+yF5lLZo|S*QFzg z*^z}@{oqZU!ayv~Dc_zvd8fmKZ%=9}TmCi*BW)}z-nCZ+(*u7qr_k^vw6>JO0`p4d ze;6g;Kc72~H#3*R_D!}%{~TYv1x`-{l#C%W0>Y=pzlJ7a35cv()EO4RG{8W`)4LIA z4j=6rvdMk+_;P@0ivZU`L1R~$&RdWNh5tm7;43)D2TKM#&NHf(B9=r?fICQHg-{?pOH2vT2IAq6xC(=OhA^!%4b|~Kv?5S2 z0=IAiMp%)!Cb%9k3v0|U!2=rD$HbgzmQjSqdm!+$gaRs5j{@rt=l{<=OARe3J1JyD zxgaQ zaTpbFPDHH-mMC(6`@--KTO(9fQF&PHYeRhkDtKild+pr-ZBmtvpw?HpaLjd)+-h3c_42<6!|8i zm~tQT(TDeWA^!@N_pU>+-kI#CFVn{@a19jjoTf88lWkiCbS0a5^!54W$<*nuu|hH_ z#cDN)#FgRT3W~h#(0>Zp)m*VPVUEVRebxK^T7PY--3;#Ni~A@HGk(a5O)qw@C#gN` z!!Ex0XQwaWooCf<8+|;$=XO>lr6)hNaA#^qZP8yH9QZjsP#2fLJuc zSBNs+mjT*wcbi*59L@M^@>2IY!=eK7*tEP~V^tYBGmZ@JNx56l23(vf^?`<$V(Vp3 z3|k_Qy0<+Gz{Q$9dsh-$h}F=O*{f-YvGbXzw)5og%CVJ${*$o#^` zJq5|aJM>_#h5fSeHE=RiZra2eUM+E`ARFPfVPa&PuJ7$Q?~6rs9Zq7P$V1y2TCZB1 zJ$c3kGznV>V6qScDT;M?*macj+yC+N#B;)K*0Qh?A+4-ILyEjw*z6`r3=-?8Nw#yk zZ}U}6xR|y50oiGSEvT7K81xF(F74i6>>ym<`da12&65^bJeek|>KL{vZNe6&-L+>u zB~`q2RJ^{kUZj=h^rU;5pAUGIc|=E0;9#oFhfrVUBd-fprW>E`C=IxWersEcMM6-3 zmc4syf1}Q@SNvJc5|EloW_X5ieuib}m+#qm-4~zjUVsuNU1kZ6^{CTjyvW-wZ%VIR z)w_iAT~qT)BN+Ww1%7(Eo3|&^?DcP`{2($co+`w^g_KC^6*NY8JYe#K0h1_S28lYv zgTaI)0-c6p$4tYfW#Dpipw{I;xip22jbhfGp;9WqOaK;jSs~OA#(nF+GGDJifbkf}2#D7}h{#2*-6$=tFu#IiqBVhNA}WjXeT zNBD0HJ{vrrjeq#1nat)8H7-g+AqpZg9+sWeEi;IQkyD;qjzaa}kNJgmAKc)V8hxcP zrrG%Ls{~X$BkX`bw09DQ!xa#lA#aw#Rfo)U#SSAz+$#hCKZVI+4 z`hTVvd#0w8!{rlVY76KuQD8yjrY|iN)ju=w8j(Vb;E&U~-X7Bv|BC8XGaC!A^5mXR zvzjS7Q#nMa=B22)($(4dK`;=>R6QF45q-Mfbrqu8T{USV*B93CbPpR z2?UyrU0>NXnHh=}k9IM0T-A|~pSfsj7QW2NPoleqRk2l=)6+ptD$fbax;fMmmc{fI zy^tv4!t@5J;9*!2WAwjI7*6BBxw@`NUSIvRZmPB6W4B@21+lI9AMSy9-iB=r-LWzgy4<%M-azEs5*7i-*q#{b<^H_ z!(3}KWE2vgxMjn%WzDpel(&&sv+W$bWh=Om5xiNHxtTw@Q~iFs#C0o*X)~vCBhP#* zr)wi-bR*~OdZziNPu@iY6q;>#a3FMqxF>?6~9Q(pf4`!W?p1-nsUH>n5U(#E|m_5~b@{lb+0DO5(C-C8Z2}&Jo?Y_!bJxv8Wy{Xz zeP$}pU7!2^nPdDUCJ0@>5gOxV;2DaB`YFL(aio7GKqlRem(IW@-8N!p2WI(@tKA23 zc89H;hjwF5b}u?6#1A{u4_liKEXEGZyB%c?4@OPSkF3Uy>_d*!4Gv914!!f8T=EaY z&JP^M4$aOFqP361x)0s8k8fEV*>)dVx*d0N1x0Efc?$)F+&PNvK9;dNwADUw|8P{W za-?o|p^blA8OkeBaNlz$p?ei*0y zMwN1yoqv>k=eS4v$U6VXLe2?B2IoYv2{4NX?TNu~T)-I{9QPi5U~UBh?fk)=er0`Q z3%on9_!Ge{u;zMQm*ZW(#K4|~x4_lXRdWuCk}2xyg|ihH8vLmH@sZ&AP;>(46kTKL z>axq(7Y9mBtn-usl413gUaqq#$z@BKqq}MvWc}I&HGbu(otc2U>!k_S!!$aUGtQ$s zvs)$417+RL(p*X`ml|@NGouzYbC+wQUR;NtZL_Dr#=mG@jbIU&VBd3Ntn;H7uz#|p z=-wl;q>(73bwu#qeTyMZ|bTl_kX_6lEnOHH5V<%gHFIX=`ii$?)na3OH!+nqfs9 zG{p@yR5UGwwXKBB4TWq?1RSpkLI))bwT{KM{mCfBXZN2|-2{SY_aIi8lyJ}@^W@%<+V{L8i?_?a|V&v&+ z6M5Y#2ydF;Zeir&Z{iy1eci{*J;>ZM+R8KD*UQVtJJCHfJ|-q6)!(r^)}yjqu!4QOy#Ms~{LYtz z8X5=YSx02?*k9*)f(6C)DD#Tub}-jvXDS<;Ll5*EIbu{&dw&PvxdmuhV6tvKKKUt4PJW z@Rv3cf%n#T$^%)fnOam2oo0#koT`zKbG;nq`C)r@YfOv$>ECX#vMYwam6fjZ&TM2bo4*}`Ur#!( z<_0Cx?`{btZR_~qZ@sXacZ#f+Dy~aEtA<0;UiLU_d$ANczKW9I`|c_t{c14lrt0vI zSK;j9stsOSYYO%GtRXGn?6-pF+`Deo{l<;gpQRB!vb(gzHe@rjh8qZ4o8KD(e+@Nw zYqAOd^o-=ZuXs?tR{Tb!# zwQS_c#mAu(om}k~oX1}7BmcH4=CV?fV5tWccp2Xp$F)UOm7g78sq|RmI~nR|H$JImm?4%X}0pYh*7u>S_i!O5ozSB$*#(=Qi)9o)JR$y&y z{STH8L9N>g4B^56&~y)v_LrOD)xoMQ)RJMpPPE&R?OG1BI+Z^g=Jf5+^2uhWQVk!8nX zL&e^cfTnUI{y#a7znWD@&iwK)$8T2uuzr6Z?CtE|CwQ+$>{;+{g%3)u=ij|!9=GQV ziXH!KkJviv7Hg!Y9RJLYUU-kc5wFj^@BGn>4`}*1`mS%QS?joY&Q$5w-A?WA_@eP<@z+5{K?BKU z(qo^y);(?Zl^m2ik z+Pwj$#V%Se;kJTiGlfpQHdVa(ZlP|<_?Ka`TPrrj$GcB-myvS>N}tmWT`#q-`(z?r zg^Pi`~*J&(1?$0XwVgzgW?Tk;GR93VUcq?UMfBi-j2Ka3>({i5_+ zW=JX@#h)lHh!r{uchRqGnJ?j0FYJ!+pK@i9r*UXT8T9E=O2O|BDIvk~k#<4c@Hy_z z6Zh%#pi|=K_4C1=1g5owTZ^yDNr0Y(`o|ki(>q~&4ki{BVd?jNvx`gdG_l9c3!wyF z$l5t93B)OoYF!%Flee{VVjt(BJsTlEQ@dx>WDA|yuT!LbdMxP`E4!ZVb6pf!ln`Xi zdf#9Mg%4A-cdf-i&mKADtLZ#UEJ`d{FMDdguyibN#lKYH`G4!1QxI16xZU!n&%Mf& zuAhItCd=>npqKY?rB_>(C;bHqa4okaF@&_3;6{J-`&g9vCpGIy-@aD|wZg*e9#c?X z)q>C~VbbC8yAk4Q$TI5{wVbfcYtIf9M*3rRE=6rMK9~6-^)QEr>E|Uu`TWu)c z5X|ir8!M3h)`Ds(%Btj6!*5(I%}En~&wTk&eY0sx%-;@1hsDWd=5CM@C76i^4S}r# zgYwjiHzJpadyB*&MLe-iyi%e0Z*jG@WeVy^Z8~o&W<-~u7kN*{b!C~#v>mC(KX#hJ zYa1nO^RN+m$pJuMX(*{o97vb~ASmcDaP1|i9O~syaVqq?mJaBH+Ott+7CpPPU0~eU z_MF0Lf4^F((KnjMEKNJ)R>bLbWpDrKdnW9q3$Ygs@A?gBJr6Oii(CT?-d=H_q~nqK zT?E6+W79`U_vObhj259p7>+W>GLHwCYuR8NlU|H4Kb}hirZsdpW)1CWmIU46%RCrX z-?J><169O;khMj&^CfGE&}2PaEljmlhjSO33?U^k$rF=MD!hPbM#;b*Gx-8A7JgyA zZaH0*h@J&tpiUgql+|boR`Y;xz(?-0IHCvtPM@0k*n)-v0C_L}JYbgW;&9A)+SKAHotWM$5d`0C$4CUKW&=i+cMP*>Pty&tbrTq#mmfSf3Y`<8PMU^|n%o zC=84;hQ?%m3wklSrsOg~E9nxYqM`R+YSh@|X0KiGLSXdIe`2gZdplYDiE2^V+>vGw zaMAf*P}=GR!xA)20w{$%wNSAO6B8!*vj~ALy^@NRMrvtdUj5}KyoJ|nJ=GV-2$qG^$&9-zH8RKL7 zEkhgU9@oa5jBbS~Sb8WFqY#oA?M!?fG!Rt#vGnw`n_ zZ#MSG8WbJmRqo|fViMboL$2mFuU}*5(t3f`I1eCQoGS(U;y6rjz6lWf24muDj+`bd zh$jG70d8Ekg!I`5Dz!+cwtBg5Ch^z>sbjrO(a@(GbRbq@L%GWMej>*@c=j8VU4bnG;yxl1rW9c4^m9}b0Z5Zf#4+y!QhI;eDk|oiAQ=xjqV25W>PV|*@|M> zAELuAzbbC}WZmUWYLCcC=X9?T3)nySrz4Y;Y|Jc6EA~cN@7Vrh=9N~g%3@E3r4#M= zN_4*{74m%HmPSERYk~hZV()C7TPAQ`blTxI422@`2(i`R6icu_9->Kv`JK_FkPAdr z3w(au+!NJMMbX_LLy}5iMp(qm00>269@9Gd@L+!moieeEuHuFi;ve7*4D63^Jfq7f zg;6Nw*<;-?0V78vjHA zTrt;Tvf9tr-M{IVt2x@Lde(>bcpMKV30zLhI4lCZ%`d%maM3O2^eE5H@KhPWn6xI< z#FQVt$q~wOWV&Bw*OurzbxT&XEIx)WWH{aWe!>-X&NgiL0X1dh#D%3PqfC*l!U!TO z&&FyTi*}D?m4qnO#!Bnl&HJWP4DsLNNhb0oi%B+pt7yJx8!tQ0=~@TAo)qsE8qIOd z>ZhcSy9vMb4!n`;}+RK@Y8YC7>ln{Tn(n@<;| zS2>nHPR}Ya;nb3B*gv+J+P*3Zv%7Pd_z~_f>?GQ198$EKRJU99SErFTO8uRFhgW8v z?sWC}eVSErqC~MhZz;2V!zne=vo+$RvzRVY#`_jtE&Tuo=+@F1prMM~#P8(>f9KqF z`A`P6bbsjYMGn-K+TEIN$x_<7_cxC7xY1TgRG9J$rHm*4QHMaK)S91EJGXY3@Szle z9w&4Urc%`HwTotdo3jZM3qy|rKJ2wr-XrPub#f2N8FKox>&dpAjxvixAX!1?&Q5FF z+vJ{kK9t(Cds2bP0yaGw^JV`kaO?5+)N&?j--157FR#(lEz(=)*yQtjz_3a``fFF03A1?z9aabPEZH;A zB8G%pLfyhZ1WtQijkM2xtq{{-N_6gL+jJSr#zl1W*gq4Sa4Z1V_j}9qR|JZ$jY$4J zsQwc+IgrHiKu{}*hjKs$WX zz?J~;6HF62Xz~W_QIwZgk(ZZGOh7rO{}0&G;(x%F`uckRNB6M3YVPlHCB*3}P4tNNv^I7PuyOXGi5`}o5&k|t;o;$~ z?rwF0BK3kas-^t@QZ40k0-dvBd^?=+_3D=Vm4brVg4_*!e77;^9HE#@5sPXb*ZWF#i0-%bSm1y*@ZRIzCxuc=PTZ7!{t-_GM#h z``-35>hC`zDU6)b_$P!qQaU3aJx4pfu7>8d6G;}v>tMvvQ6Yiae? zsp3|=uiyFS=Cy{{Qz6-4wJ&cwfdL#Hqqq!G zSs#$WjEAtxxb2x;Yyunq$IEpv^mK7Cw>DKd^~aM9dOC&18NMHD$&z}!EGb4;kCqc6 z!=JC4R+Sn_iSQ!c@90<--?3J(+zhgnDwYE1iA|cuq@V3xxs3M$diDKBZ@d z{RaXzu2osV(-NK(z|+FDuV6^gwPf)vrA=G*rOY4eJ|1%4N_;2MEe$q6_EvspWgK+( zGf@$`QiByKMe=wZ4zHvZ&{a-jxB=ZI!}D2pNwDl2QH6`lStWUTVASheuzW3ul!`yv zPT};z@?tJI0bBuTGsdE}R<^Zv?%dgLI58mW0dJD@=ZK^N?#wn(3}5cfD>{8JHjU2O zXW<#06;8a^ut}`>xn$>pqJ!4np5Cjh>R$y@kfd))bRf&amTO6T0;whWshtiIwzt4o zuJB2z3`s|>a?cs_r^cd%ibGh3w+n3!T3Orc}e=2Y!BrK=we=`cYfEqsUH7s zz))1rI;qtE32oDH$ujyoIv9rEzB{w~g#q4u(S zIftIzrpG}Mt7~mpx|HC|#<@HT&rc2mF~ZlhAtbo8oPLMz$=30}%>C|xd`f6evGkRPF1YsW*# z^{Fha2E`q!ChSE5Yc}iN1q`%4E)~T*zI-)+*=|{6@m+#Z9_7QFDVCiCei?lRd z2`9adGYw_qLQ4m8 z8<^glOkbv@kb{@&WJ9H9JYE5LHp}~Px=&zwCzFuw1=wY;DV@=633_gXIf2sf=*~4F zFdn*R&zDur9s9&HIN&-R@qnA#(7=cek@xgYajv+UhxH*@qKL8X>Ldr`ZVmy2xqI1C zNT;sq`;xIO4{GIrgIFWz&+7+U>rEv~-QiM|sK_mnkt8nPP^2yx2?eJ(kIn)s#w~n?&Qj5Z|Q4N8VA&=BAgZwyr}LgPjB7*x=5$I ztvz{2CgQ_xkt5Q>{un|mkL#_N;A_J0yv;Ivqi^@x(vChL%gF<&npsmnQ}Qxb#vWdP z=BrR`IqCLF3~ySMaoU%8H9u z@cb^iDBQqZ)sO-%t3CZc>jRB383Lpc`X|`inzeIePORYuD{ zDxR}CGrq?5#}qmWcJuBW^=hu_v}9E3tv2V~)6&){wJSZj zzAp5C-=ILj$qS}{9Thfrq4zNIqEYuIXh z;fC7|D8#$UJ_??`wsO-VqOdICSTkC9E_>jH-_|l*W}H_gx(6=D>`FC`cbbh~`Iw?s z00?VRpZ+linAacrT#(q9(J$@Gurfb|USOjW4e1pZ4oY@<7QNB6a+cBUT*P#~X})=W zcE9(1j<2h)$Ha=8O7K&&Hzs{Qo`_}V^%T?u`NuzdP$%x!e+l&FMiu9(osS~%c;LNb zIKRPB{&!#AM}F4)AW&lI_aZmS+W_Am8#`nCEgD@PlQpE4Uk~V~vWE~pSXMpxk4~Yw zVx%p4tA3w{w;vS+0H`f9~QJT=nO9 zE^o?8^h)@h@jpCTEWcLlJUx*qlM{^p#o7>`2RM{{n}HZbt)vM>G;ycAwew{hH5x_w zIge_X4G!GCYcW{#I9A^A-Wq&fPhZ~ostnT}HbYsmp0U&hV(Eb&7T>l3`TqbEO|T%HAT$(^ zq}7b+(8yN~|8^Q_z4099pg6?6d$;+uM@H_nX&qpsu-xQ9-HnpZbpO=k_mC&~aRM(^ z>~pduQQ#fTTqmMi8$cj(A5l}F^GQsqwF&n?mPg(MD!l^=2VETpf9<&Nw<+TTY;XKr zCKLF(kTh=kq&xaq(09GCW~=D@vJ6yi6u4uLAQ%NG2+gqcs7JNLY!! zo}X?nUH};4fe?IR2G&>`0Kor3Qocf%&~Vo2==>-~+UOO1Ziz+%V1#8#G8rs$<|?n6 z0-#eatENEFDZsxdqJ$rtFUyD7c-1Xt13x0Xoai{1z+Ili%7e6=Pq5C6H zRxPf~v^XO-%pHK`Zl^g*M%cy>ug9e2lhP)*vve+JanEPw@xV$lnZF+SA+hOMhfHkAE@(3_6PzxIh}wr2Y~81sE(zY6FM<$J~|A0bCwK< zQBy?gGVU4xpXM=t;Gx1>KGR&nk>Qz{+sxUmc}_#QP~HRu3Q#JEm@m(*+z#Jq&8v%H zelD3#Er?gR{mWz_bAjjF?hDF1+cNI*!N%{FwOdbGf5) z;T2i1iXsK9&&@5;!cY-ht>6fo?N0|W1mLvAX4MS87=!ZzK&~XX88tB&bu$WkQ!bjB zj*zogkRz3a7?x!H=@@+Kt&?mNs&a++3Y)iblDk=6gg+x`au+NZ7yq-9sdlAIQ=$w{ zfGD6Lic}&K^}J{aNKD4VYWngmhA#sopxi+%a5bmeLG8690*Qihv$OJ_74CuJ3xP^h zPrzS^qOx?IYxbeQg3cjO9Oj=8>|5rVSr&L)X_c9GQ?1HiIO)c`nE!BPCS`bk7)Z4?VjhSkCA5Y2UQ1(GAl=-lQ7@~a#@fdc z1BXi@ipV9k*jpoh*Ii@js{D~(cyGM{K#`V}Z#hHnsl)`v7QM!jj@pWP-jwzKjGS*R z8;q@`%O)8Nht6an55?(4E$@Dd1b+A>=RPb=&P9gP<+9LD7 zafFyd(Yja6A+gahJJPVS$z>!wJ+_>GtEv*;aCMi>8yV_*C389|yraTNcelxPq=``3 zWKwzEqY_y=7~QZMSA(u}n2-216r$}EH60VSd=}Fr-xB&OJbSTe?NiJO+OmGOv0xSO zqsBE6?p6V%46)5`XK(-YV^HC4T%v$ijPnk5TCXg&w#PMkSVCIf5-U;}Io}|a)afM_ zkTO!Y9gIPtl)I(h?t+FGf_J5sS4rfZc0K8q#b5PN6}6N2;)@v#cV>aFoZ_+FEtMk!W_wA^bN^(adp>XAAsBgPlXt=kjGTv-H7{i|?@_>AYr+>B5 z4;n|5tg3$>SI%$TRYGkn!`-W^ZOge_Gm)N}($13R+xl9aZ1gN@5?=Qts@L`OK2rzd zlV3<=Eu^1^{w5#2D89#JuxB0FZbH|+zsP71SnFvTDa}9N@?fw^^}OmjUzh1_m|Tb7 zs#+iSQgya7;~n*Ipv?bTVAB*9;zbxPU#g`;4%wFVFNzOT^GDpNVwBDCGz;|ol2uoa zzW<8SC9A^SwiBX}<2Owj-2KtVAd?WM)_)T=QuiR76`3s~Q&&unvcbmZhlN{J69WRiw*bjWqkgi^~L5` zegNZrdiM;|v13B&Z@%G|m1B_kv9p|}z2D=;zedv-Xe%5NkQ1#2fSByZzd1AiLUwK) z^*A-(-;$vi1%&M8Oz26BPir8G9AdKoNX%+%vSr0Z;vr+3Gv zaR7hN)H)4j?C3k7QKre*pe-AcOa?Ce$jez3g-=7Iwt>8B4a|Q~*eZNVAmfkUH~zaK ztQ%E7O#wXLb<(;FnRsDIE{(Hi4s)8uR4gj6ee8exUKC`FWb7+6e$UPqJgk`Sj>}cL>1A_c}WG%o4fb z96qJ=#w{pdBFJHp%W>fPz|^8yWTy))cQAXNO^FR4GsBhO&b2@sIbRk97hfGJK!G2& z-{5>UGCp+APpxVD%^dfiWiQjLsH5dG*@nUU{p?)HMb@y$RY(d75>^`vpn()GxbRN$ z+%q;=HRj>)96oQoqk2-@G;-M_)#AsrPQ|t(vdyWISZUtCgEt#8a9xuvSzDw-nXBrnw z^!dv8ZF%Wb`PDZXVwsa=QV7*YNP}|51SjU;Q`e*4Bk~DO(eZ1yWHu=A zi&vVbZZK_mo~=JsZ>vCo)X3-2B|*r!ifWUxp(WC$5$FGpv-fanD&W?4cX~n%Rl1?~ zCP)VZA{~qF|t88%)3fo+!yO9~umb#VKRJ9cHtZ3zw zdx^?qV5i%wU>ucMT~VzG)-wLcZg`idGUnDn6=Tu;k&}w{>pAvvU7a$va)pK}Xop+d zgXU+z+KS_QZqDjTNn$lEl~Br%VBx146{-Za!Tt6n#v1^29SyC`-M+IbIm`P9+ZDcv zPszIWIG!(0%rKpQd(D=XV{o5=W!^mNm$6}vC&ZVS2~>O#JLDPymd zt!)CiZPbNr+4pSZ(xnx!Z6+5DX;F|Yxehc9V8SVldN$2_g?z;JddU&f5WG$JSkw4)#AM7bZ}Dh+HkYuEE8JhcR$n01am)BYo<~QD6hqPi zfzxEwP^w)arGI}px>@~Ow#_&4m#?_5y91o%zw41@uh?p9JX6KX8ZuvwdhlgGT)21t zV0rk!0hYn@?-04t{I`1n`;~PhWUuh!xBBBv!H!vzLKOeqhM#6XR30|AavYvp_R{Ej z?`n({s#Wf&b~bmSlpd`sK0UgXV*hJm`AX_@)3G(*U0Z18Vg3}#XyxeW_4$FV0BMb06TJS4L-YBBlKWVr)IoaDfzqSU&#y!{+dm4V$`zI?ckKP^4z8>MXCPWlNlL`8o6eZ2Uy@7uPS1!D#- zO`!py(GVeOgp`*-TtS2A8|Xa8B2s>@q&MuG`hBLCjZ)R4IfK`3o^s@^pITl)p$;bd z>AQkfC@tfmmkCoAbi+emd0qLLNW~$f{9wyX zg;*3?%~$wpIa29fHqIbw1giFEKf-__tG+=FO}i5qNq_1#XayMSx(x@lQ?0 z9d?S1i?KM$-*EuB(j!R~z?sD_*3I{CL`C%Eqrsc^s1O6R+~LOlVwPX|9jbmil&^^OObO*M}0qpi6jYUrUlr>8XFc;e0P?)A!@VgTv1Z9K5oh z(-04jzogwUQ@3>l0NEkgK`vu~bRr#+pw%ZLZnCY1WW=FNQ060M2DW4I&}`qxFYCN< zPTwPD9WT`f(Ixa(#tGsiDI5^~Jb%+qsRHLm21+7~y>tCTGec!bNcW$8rTWh9XI>{eW13aqFhF?K9MoH8#w<7}iV4D|RN^){*^=kmoSuH0QRnkvMP zzr4izRN~S#ZTEAqWuZtH!AEw1@p3iOO`GfwHg}hhf%?Map+$>F>dlk1q9mO#r$?rJ zpym4wUse;et3FO)y1S0wa0QF&MCf~u!GANa*+#iql&I5%R%i`|s{vSYt`-BABo|NkA%)=-`1#%ukt`M7xv3X-5T(i|N>wm4cA27L%V>R!OyWK8E6IB||=JDlPsoeo7PQrnAEkHVG)+6|#dx6fX zUfk^X1VhVXZlMdBb;b%>k00YKMk}+6Z`vHDUUY-fC-x2n3VwGPm2;4oInvP8o=T$8 z$D*N`aTG?<>f?Bf=0C0*U$ESObplJ)k6Sw?-pq*Awch1z9$CH6)`{$T$53^LYwOm;F_+Ar^3 z_kfy#@C`6)mhvg>GOW9moW}aCyhM@ecZI*CoBr%EaBy4wl;Ufy9`Q4frZHo&Tg(4J z(f6p89?rA!(P?-MzMX~lVO|#Sn$-&=)F&k;g7>Xng-?*nL;qe=g5G%@Zl}>1#YLVd}DOE>Bz3>MZV!%Ct23ng}xdK&L<;j>CB}%d&o8w zgY?wOid!GVT6ux8dsW~6NM5;pEOTBn;`8miGk))vHDMCYizMCB$`I7}@w;btq%Q`@ z0lIfS7<*??uRKt@T|V*TzNVmpjV(=?h|1j8cJJN0cMfNSSNDrT@INBq7}2%_Vlq85 z7aDq1N$+>!^XS(%W{BS>ZrzvL@@3&zRRt-%^)H$1p0|2(H6xtPeDdNI6C7L>Nr~VQ zmU+W%mGqo?myK(@pz5wm+}*Q{3z16#hfYU|!=mhSChgjXe}SIVh|kX$utQfFzA|Kr z*jrwd08Ht8iy(-tRgf~qC;LqoL{7D6?7qg2-0?1=eCr%YHSkAPzl77}&7O$|A3;Tn zYMV0eEGOJpeT%odHZ*G5C+sQT!O*{(YKYu-flhMIL~S-tqdb|`)Y)Rg`Z?drCb7%>+ASD zV(zEFlkHXmgD9R*dF#K<0$2O+E6&8HWb2<#3@$6)QB-{Nb1?Ma7e)gSp5par53T>S zOeC$rsrs=oa80>4=AkUJY`QEw%tH}Llc7UG5trL8O&wi&j=j13 zLif!KwG3ON-daS#v`-Ub6zd81U^&vuG1B;ilU?X$ryTC_)o6+$0?>_`UK)C^OZHg8}gxC*oDv_Mx7_IUT;&`LbssxeT9zY4_lt79*_YD-F zL2Kr!NpUDTG^j=?;Tvy!b~dVbOS(KdP8pLBPY_|>ukMN`s2LY)t0Mk)mC5Nn$@+asws>oIbaFab z#UYG({E?4yrj!sV>{^U1__pnA zh9cy-nI){}o-0I%E-K?H>7r}fYW$|9_Q zCq+oa6BIBXVDuPm&y2MfkFjs83}Yq%1Oh@^=3=}Y>KrBKO+X+I3iL~066~l3J8+}E zFU+kl6=0=O&P^Z|W*j%FDy%Bm$h2IE#k0WUG%5Uvk0Y9{T0;CrFxr z8(@?MASeWaaTWt8QU2WRSGU~Jfm5=ulomSlXj6r zRd!3CwDWT^Wz@4XKdkE$#6!b76~ohz5K zKd8|0Ry~@DN3|UK7HlJ1Em<@EARp^L(W`)8GmTBkL2S+X`pDGh5PjY8l1C&8>*ffG zqaUh3LJa;XC*k4mX8AqvDFbEY`9$9<4S+oQIasBro{IGjrrtERl(~jw#H!-WZ^176 z7`vDGm$mB_-I#*b^_T_4qqJ{0;G{P0y^tBHlp96=3x~|NW|E5V?pV-Yud;QQ^Tub5 z5*ieUM_f6V`~W$rgk)WDs17b6kPK%o%1ly5_!659@=DP%Pz^?uG7g%X4R3F6La)L; zR-oXyNH=j5zVm!dohgHF))R*s?joBTFKQTae!h0mzUt!HVGY+pD{(e)hkJ-X|MrdBRz&ngOpsHqj5q)dQsSbAS=~wH9MuI;aYsVEp-J?nt%og za9m{wAwKU@5m?`@dOF{p-P3XmD!*0U0C!~>_`*?|ScPGM%*Aw&ut39P>7+>8=nf+K zRK7_l^mSWXx+iH>#E!k;HWK@b-#WEQ2+}2nWc2 zg!+=RhKNX=K&~-7ly+e^X11p13%Kv{jXsrM-O&d1W`wy%a7)-}L$|4rOtfCM6APoq_$Zh!8Bo z>tHzekIb)YgDNz@w?D{gF5%ie+WJM>hBMTQF=R6hv;X5B$@6c!TS57Zfllt ztD}u-SV8F6O~$djhB0@q&cXw5peACLEgDp-8*8NeX7Gt;Cj?&(S=<|6*&APynD{dG zWK(ToEooxMXkzEgaiunHpXOac+xXEK<;h*AcPm|x@AoGT#@;QSwXEmA`?5H(B=K%F z^xZ+%#9D2f^7#p=$GfBdvJs)iCw_Ik+g6*zv%cHQpQKKnq#qyuw)jr4ZsO}0S-6{g zc7JNknv7f;KRk0hRh!<d-jh1}RZZj$T_q|BLG;V)dkCv=lHznEqUd?8Lu5Jpk^bRRGMP)-)m;C7QchbP) z15fuypC$6${i$U>i2)ZNWR)rSa^cOGhl0!b)it8Fx$Et*aAf2R`s8)HS5+&n9+b z(~alSBs!9CuLEz5#@=h{j|L-!IxV*cxyyxL}ki4=J zwz9{)^0i=vQn&Kg*zbsT^=HBIY1pcn`6_&3_3yafkFZs`2|q@Y)otUo3zQYs!Zn%+ zKW3R#Wc}J%_Zo}F8h^?f-^AMYu=TITV9XR(bCxQAE3O(JLmd2+o?oStZKI=)X>GG^xXPXT?F(b3oF~yHKKiCXN*;I>^{EQeBwqV?#O$w6Q ziZt2ENhji85Tn%xpIG-qOAUB@-Ad!(nLI0wdpOQVwG}S4jicGl`?@_mX%#IVy)mQ9 zpL_S|1X{Ofr)FZO?(5ETy4^;p-6oUWmk)MZQ+C@Q?p79VqS&t9cG!78y1QJo+y7v1 zFlBGJes54?FF=F$ZegsKk)=ugT}DHsc$s=K5kMY{74(4K9F}IIsVLsS+*cI5XMZ6j zfs@F^g#%;IUngHs_I{XrYo$O<8lcrFQ2m~7`UlXTbO+C0vC?3HB@G#tBG5P`%5PP$ zWFm2vX5gO5Wz#aS&`Vmh-PZ&XgOH#>0SRnLfU&2dXwcu|NnrB>S~D~QLpV$*^?TI8 zq2O~A0(U5RmkX5oL+KylTEG+CRcOjS^m-BeKIxnCm2YmvAk(5F91ifF1hJ7(Y{1V% zA_!M>kl__O?VCT9w_Qc^-4g%fgW!*3fPwG)Lwib&?;)Ww$9dTA^F9DsJ2f8*VE!51 z2AiGyKF%cpcP}2lwmS-czIUC3a3ez98W1KVs7cR>n+)PQ;mNtDDdPE_o-~Xd4>IsP zV5VroZedUjT(ClV0~W&1$HmwRhi$G6-Ip;#f_T8};8#ehk+}?29n*CL@ZB5(rXj(G z4v#I1zMB_8<1wc|1E~GtbpU@VKFo$bTu?AZ2i+G%EOJVhdaA_``-=@ zzyCP;mLO)4Kx2*>P`I@V^;ojRQbFIBM-j^KtGYqO74qb?!Si%(K_>8=+LFGbc(!nxso2#ZP zaL)`1f}yAaRgaEvBt=s6ZwL-rmG#Ro97~^)6kl|J?Gs+6IM4z(iE=& zGrat}K^4wCVU-FfGHNINN{<%BNmyWrvRTo$Z%SBiXaU z`7GzR*$v5G&#y3m(9h1-NKnXlkSdgZL{x! zFSfo>!L*@@fZ721E|jRvjdvaTn?3%B2UUw8GeNaaWkGSTk(lV?ussko4f-c}Mvv9J zQYL~5%BRJQyYN>IjKsLSHS+H>Zu%I*-M6JUe4OtS>Fg%qyAG6Wf6EPu!)NKpD(^bm8M z1fKvO38QQXhusHfBji6;zR7j}y6Tkc@q&GmPWdxlJK1+W(3wtQWV<}q8_Xe`r|_M< zGFP5rDN+;$pLfYk?wG5jBeb}FDs|IQ5iO^9_vHwe$NbUX%nh}5b1m?F7^|n?!}TlK zdqg%X#dourzre3;qhmsSzQE}wKRO7C)&GZX12lg+X zt_q$JJMZ!>t|wm%Uq_81HIq*e88?8l{V}j!|0zvhw)4ZcJubXm*O@CyV@hLY6VEDDVvdY`RUV_8Y zzrl3USp46k59XfgKR3j~TKLHYPVZv?gY1(bR;tn`@Cq#_X{4vCzQi@=ma zL7ccDknfh{!#$k9Yb$6BbGWu3&uWatED?&vr3*%2y%LqM#yT$TPNiRyq&u=W(lM+L zUHj4ED%>2(%+jo%*PwEvJyJ+qxd?L+U>VT|rumW3aR!rqWoU^&zG2rUI0d}+DTJ{R zs6L^pz@4Yh4ybThseW1zrJAHe-}RTJ z->7KjaARva3f{9FN|fg3le%_GuAtibE!Spyv5Jugt#yzVPYXUSWZaHguc*RmCvY&w zHG=B$LbOnV1Bd9@kbH>dwRCURgc}z6EIGso0X|Er>uvX0l-<~+OB;xBR#p1NNfid> zBc@NzyJydXS(Jukr!5QkGhdF0s!yOK{7oYPWe4qyQafUi&^<`65tQ*}I}Mnv2k1|@ z0HMQx5H0c?;PIVXq*ds9R~EaPH}-O3IAXCv1mNJI0}{iVxt9K{@a(R(-ZYpo8z?rj zT(DB^5E|XuI(mLsS%YtShL(^qYp6J@zIQ)d)do<+z1Y;H)dyYEOHuF^d9xv6zn+(ESCcEe?{Y4G&%Mwl z9k=S?{>NZ{-M3R&{dwr7;mYrh+oE)F#E1N(6*yYcEU^egzcCN+0v4jEo^U!IGAjnX z_WEbRKJ{KuKFSo=%HCCVcW%=1#8kKsL)RGRsA^lb)$6P}6iLrv7o#xdXD4n_Kgm`O zE6ZN1*O1wb<8_~_9cO;S@$tYEQ>0hfg(NI z>ydIw!vwR-Fg zalT2Kg$RI=6cck9#86n@EO#I0rYlfHQ}^Ocj=FKfMFGC?xSk{89SnjeaBVu(iMxFN z_jQX$!E|n9A9>pydusdH?v`q^f-E;S38{#aszN@-OH)%>CasD3G*#s8pPqq`FNTuG{ij9L9z5AJ8dlpzaEJEIrg33#oFJkQ#Y*hSBSl?0{w~4+ko&? zgl7;Ls$9f(EPz-GaC@8;pmsoT)^U_o;IH#{8f%dGToIU5fxK7=gpdjT4xzLp#48;~ zHS)v2gNKLaL62jRN`Md4#nQ^&j?i)^|D_$+f*u|iZJ}g|6hWi#P%i?4up0WZ)i0y< zp6!Opy&&PFxW@wv#}Q|W)3L6tmrIP7Wra|Dh+j0g})=E%vpzThw!|AWh?(CY; zQJim*i#0`2^a|`5?52<7urAXg_vAz~4A`YTj-#HlMbDN8UlFA@6t%ALdt&k13{;V5 zHuuCJJoWmC{XUB!=lfLA?I*9FJaKE!tZI7V@;mcx`y&>(xGKBDLqBmR%V;%09idp{ z%6pT<^Fa-7HG>5+Pi0+!f#ZSzK{6{Glbx!3i?hdwIsMjTPnJ)ACio}Rgv_T$f)?dK zE17V)`qE#85Z0o!3|P*tIHZ3cl2VrT;>%q$#zGVCHi6EQUB{!#&wo*;R!iD0(Yz$! zKlQP<`m_}FkB@G+XjWxq-E0S7L=3|u`snZ~VGG>`H8My8uic`BHAr45X8z)fj*=_< z8xFhinPx5C@Z+3mnX>M^G`Bx|mrc%(j|m7{mZ!d@Ayp{aAoEB$z(0&!A_f4lQf7QwrMC2X{XX2cI&hE&WA178I-)opnp; z36C$x01ZZv8Ma=~pn1W9M9gG5v!DPi6sLtC#LZxVIZd$6JO)6QzMV9#W`8CZ4Abi{ zJ8_;cphYEnNgjTm@o;Xdg5bPhvBsF_cHk z=Cqy$wBf&K&UYC8pNm^3D-r?7ZG>+;rXq1QBn9h^_pSKYkpKI{p2as^f~tVhhU|J< z+AYs>|8ePiQSfw?()2k49DMz2??nW;s^x}>_-fYc3`T(>hI!tLv)V>GM~14rCI=-K z8-f+$2-P3-UH$>*1=#YOABa0%{~7qs_>kt|(2`G3f3ou1T-JM5mGTG9@37}BLzv9D zz=aGO+H~;-DmDVmvy`AZObEU|;Khn0+8-`~@~$uZZ&MN7#qN1J!rcyp5M#GXVuQmH zh0rnw@UbmqW4YgT1$$pS7=?2Zog)04mvI&%_UiJ9IXuSn(^LN@BeKNHT<(7Aak;vnS~ z{nZzyI{z%ONMW!~Vin4CaaC%I87!^&Y{{EJHskz07=r;_yLg~2(rYZU#>mLPwC2ia zw~JJ2lu}z`>JnoXz%rAXXtWv1#4gt%nN(cTYR?3awrSFSBtAzk)WK`wWMmw{C+s6~Xj*#MHpfZl=`G6FT)pfsv?+(HudQ=gYhmfBa0B<7U zSto!(yw*7Y217bV#Ji*}K$rDAvc4FkB?O0=WnSAwBw%>HRW&E{C_;-BWaYtg422i5 z%w`G{x)nH zZ78j`%JPWB5<+g(#qmjgM`So5B&OcnSbM;g?H3^gP~#!CWT+z!YK4QoT7&tn!p-gA z1h=C3EQIqhLF2%|@hp)(7EUjOn1oY+q!CYwPIdy}VIt8}TgES+`gNf2E9Mh7R8Qdj ztbXl=>p&NzoMjLo4hDAxQaZdc%HecJ4p!s=w*!acV?tXFQkL5OE@EgjpzVSS=RKO? z3=y;@;OIe9k%Vpn8U`}YIO$uT#Q}&~iCb?tga0U|i&&*MWYDS4mE6ohB5;f^(ikwf zikCYKglAClC9WZFSV=CE$*6G<6R+^1B4;Ri`bcrUL`nSq_z8pLCU5OUJBxE3;L=of zU$c}Y4yM|LoY$%`?|&=Jh=V-i`zL_ZBO(52xw;d|VD|51BK%Vw;Tt+3ab%bm<^>-o zLboc+zX)-}Is)tPd`Q`3Xg;pefrjdlte-eFaMDgKI=2@Q`!JapEgwY zX^)QL#jLG8sSE8>=fNGVQGwe!B@6{pB#+ey;9@90}c4nQ3$B0;INv z63L$O_|(3FzSp$C^>L)bj{B#5$f48a^J3%OrN~55G3OwBM;v&+_sm{1q^@P0W(EtAvx3H}MM||)KWmAGW1dr?6{3*WtgZ?cuVDyU z@FKJbR$J#iJ>5a6;rm`zP|I#S_tU?c=Sx6C->W7g*9=y#&20n72=Giqw&}<`cS)J0 zSFPSbbPQf4%KdZH>f2xo`~z14cK=d1^8p2X zRmM%BH4feoBTPzgV&x(!JrG_!2YXL@V^XjTj28u+K1(7gP<%99wF8zNB& zpdW_mUl5q7F|V0}_GNT8 zzhO37VOFdPhJlGj7p3-pllJ*BfcAVf&!Gutq49hMJP>a2 zJt`LcP)V*E*>aOmKNgutJbjh8ZM>FCK{?HI{$ZaZZ2w{WKMFBi)HoE^S88pp|>^#{l$)xqYv! zl}leSy6a_6r?>N*EEuttb_DzV@rv$;U^4<5kvrf@Kz(=@=5Uf-aw_6Hzj5~NwNptM zSiI;IIx$@kK>G^Wf1qc25?MZWx^C(@km{=l_yeYh8?h+XHpR#Qn^58#ZTYXE{ zp#Le`{{C-^yeRJ6B2Pt54|uVY1E?C_aSusch-Xr4-RvAhj1A5xS}(>Xsfi4A>CGa! zX$uT(Ji?L->bkq<|KxV`{HJSc(s6pKdf&(>zjpCVLjC#`kB6yGpTB;$GI!}$@+~O0 zl1VaEU*t^)AG6vQnMKGPLJc1@w~n2#-W29CmWGR&pR)DtA`bcCWF z-x6mo>-wA{H#iY>)3!M@xGCl)wX%j|0OKTO*`4^-tGMu zt_G(s71@b zRtQp;%2NmoM%zo!Bs?3eALw~?XJF4#uBr4wqk6K+OSe1!z*+-0V#b9qJ{oLL@-;dW z6<-qpLgci`V_m9|)qHy}afQt{zmKf0J1UA%3=)iaA2DGHNNpSpY3kB_;_dvwEON=6Bx^i3Q|1Gw0`t&d~$$DX3t*X z@}-%9aVri_a)tmpzmOiR6JFc`P#|{t;m@^F9l_uGy!nFS6O()Z_CSd9k@x#^Wllv= z#j-y@h`Om_8>GOfFZ^Vnl&?k|<(Of5dx}GV7FoOy4ID(r(<(EBTS9euCS&MyFeEIu z&K`bIeBg5NRdy7J1(FPw#~?UW0%Zs3WyskOE&*?pJ~(jCnctfMx&}90{8Ai47x8Bm zT$-Lf3-H|E>)E7FeAOGnprQs4dGg>49|T;f(jXkbVO9x)t2RlOGyhm01yvz(L@|_7 zZWh%ttln^v9nuXIhCTUiQm6?%uI(`3{LR1js*(cp4d^WzPV6xH zIE{+vaGOID`cz#6Gsqg1SzXL=MMoFP5Ll^c>usBPGIUQSdo!9F4I#Ye7lo`k(qH{- z7XdW?#ul;)K0S+bfag?0KuD8yU?7zBa>h-Cci}q2>z3fbuzz~AK#&;|NE9%>VE5R} z@+#vI*?sZMN017c))+A2u|pK3mRW5Mdg5{?K)^!%`#ZwYVUI$58oDaQ{BH8CIE#Bf zM=8&H&Moro%4T3fOtdy`FFM%kZQ3SK-nH7#W5nDIcVO5$ZV!<7>=i5!y!u{e$)@yI z5VzGL1vC+J-TQR^PJZu8c4dD%-EYb(QXoKnZ|%*#*ZaeuTh3Sc_~J5F<2%>>odNMj z?*}LA1Xv*{yZo(9vaeVdTOWM*y>9;K)I|PFYItYq!nJ~sCtaQe21n8=tyS#eN4Hrv zCJ~Q-*=y2CM^F5>-0#}UqCStAw$r!~B3s+?e^@`^;dRvlP+JzG-tS-j?z(RuxH`{| zg)@Ut1-?*<6_@?8MW~5&Cs(+(gBscOB zFfYRk?h#F3-ylaKX?X8wPR@?L$A({E4o5uFf{1SF<>zH%6`#iebSYpE^8IjTS*T-? z-qDB!ohCo5=?xu0h6rW0LokTE;R#kmVfNM#Xpt`F`i7Cbkfgw>bn2FvE0NzxZ zT+uZ*#=VEf%9j9i<(9&diGryR+AvL{2N1m98wjUGio6T`u~${*?*GT;Mkhl67AtRY;hCHIe959C(J-MR|eHnXlQWP~f*EfYJCf2Ppo}Z#j zQa^T!&GP%HM*U)!AJfAhB5ER#L~Z!V;QQnYl5bP~`0B0^71gUQ41)P&R)9c^)JK{gNJ9%rD8DE=ff&PA>)R(e ztjRES5J`JS{)Nt;p@_#`=_kQQy+6MkWTXI}*e>?=|Kp%?aZR#+Xx&VrDwjyOsJMb@ z%4SfGNl&u3b`aTC95#|dtYa$MU|HJwSL`l9Hoz60-!?{UzpyWHU!S!ax# zo4P%Mtwac|87Q#m3ztv>ujZZUGUm9&>;;=z6PP-v`jX3!iORLyuloDy+O51eE*Z?d(C+8UJitTGf>C&BVbzZ2CUBtvnzL ziuwZMGQ~8t`qgAX;H?n2Zn#PVL|G=B$t9dMFdQBmexWj)MK7GUGW>f~ID<$yZ(BH@ zMFjInxY$s*RCYMOQY4Sabur{Qn(jJJTZF(#1fxqNOI##hTR59ul&VOih)ATmUX;#I z1bIPeslUB6WPz1L~xVc``@CH^;!O~R0b*hyywa2kIAZ$G|%u)ud zRPg}f;*I@L&u?v~hE0WZym-I#{shBOPQBL3v$TgAQHH9gR&fg=Q6mUN~&R4+) zOoH(deTosWskr2TK-eK1APhN_(OSBtiW&f#EcU-)S_i=`#9h=b5eO?{t>!v`ay0torHF+mGer)5TEf z6s4dvKIO-{>}j&>8FZ)&=3%R`LHi-JtBAk<55eT=Hjp?Pyyz6~!FK*K2u1+G^)WC+ zLkx-FCV&CemqU?g_lpfNNV11}rjIwujiCXwE@Lqd|Cz^n?(UA);;Igu?dwAkiBh=0lCcwojI=QzmXs|RDTf6 zBP;Lwru&g_N}Y1g`p^w7`J!Rv_`oZ9W<)A$Y(YPhw@Bv0W%N94R&KaAD59A$;3ktfkmwz0^FR%yQn+ zJ{!;AQ2LA^%&fZ1-k{vkN||A%Y>z15SW(Q0vbiMpKlTrDD^iLo9~)FXp{P)e3HzH?Rc&qGuyesU`gEtdHKE47<3IRDM?4fAS*2_0 zC8|^VvbwZAp>~*~lr086ZUr5kEg`Wo>LgSYiiM3N)Xj+%qRF*O3Gm*xN#*Pwm6nxh zJBay&`t1=HmDRfO4oJ4!J&vDA+-21*)%Cv;o-=(E+s}n0S;f2`!M}B@|839!Td>@l zum5IMO)fA0O!X`QUwh=(z+~8%-28mG8X``m>2GBTa<5OfYUCAv0g7y3>nxeHDmJBh z#>3f|bNPidb<=gz7faQUGSONmy~>L<6|$pE>YPjzxrN%xoejSjD}g(;D!WbkHO+q; zAo~gM%Xbj_Kc9c=FE>mt_Uvf3taO zi4t#r9D>3o!l?{n)D>!ZYMQtV+MiN)q!L@>Pn(5D8$PLcD66(uaCX!gwz=1|m2uD{ z|0!`kX{=A|j7V%1>TF1&Zk3&Hk0o`!$!qD{eaVqmURfheMpVTZbiK=aIS|sOmDkn8 z(HaM|)5E(LcAKC*b^BClNTK?hbB*AJc3`HG5#M4 z4HN(Y%E5I1AIOsb5ow5@!zE=!|CcN&sjK)OvZVh1FS4Yzmf9UXsdKoby`}K~11@R$ zf5Rnt?pVkf+~l;hSN$)tOVn@vzmX*$V-n+ev*UtNBfQHK{)aE=^1pn^I?>wy;Y<3S z^Cjc|i!Yg$R+SaknEgL|$*zX{*qpk&|Kdwll$UolRsRPu`TA8=UGuZNbHrrbxo_hf zG1>ZGh{<2SepP!${uf!2<^oGZ?0MTQjw2?Cl^qt(!jYJnm7SCOe<(D{v!Sf%B`mD5 z9HbhcA*~{->P0RTn#gjYg@vW7t>wSTk^nk_+mvhyFU8%6=e}uLAIFUwU0Gc_Crhr= z%s*R-Wt&?7X17LRhk2%KiEPVdup5)Cn_o5j+RW>VdLs)6KqdY;Hkz(WM>D4cxhkNG zlyh4gYJ4V`SStetMB@N;2dJLgi`GhPndx5%^bm&0M*I3rk>JJQ>Fjt*Q*YU9WHSDW zC{86KDguTB*)=t8?0lBMyu?f{O!VCi>Tx&($)6&pg(pHP zZn8r8&=GcmJfo3ze}`RIx|!HW8-5=`j^x^j?5g0DFjH|!rMq@-6;68FNy%w^)Q@#w z7%|5MandHhiH%aJ1&Jukh>*-_f!DQ=x0V z?|n{_(n*;jt*G!%oQ^G%Yk8g?lb_12&!A*WZa()l$|JneTq}sp-jro7#wyh1`##jX zUz)jtPbeT(g?rVwcv#4nM=840m3vAO&7gtaeX-sK?{0G%$mG>kXj?z$W9TgT;JKt< z`cMp5#CEmNyz3jRiOu2`v$4(D^Dgh3BNXb*JW@`F&$xCjroJ{ZlZC0ARvwi#4ShHlALho2W-=QLoL%hv_2VH#wy z^Fs+3#OXYU*~=sJiUV&#y(d4j^ZR`!z6J19;?p#CPZX1{O;bCr*t7j@I)ui)|K!B9 z)&5hJrL6c}%@eG*{Bdl)Ie}*`iq=o`{*4VdGyf7dwAC%JSecW-aPukkeC^%Y!NYdrKhW{LpETzV6*c94I`osA?uPvMF3x;NVw5R?^2#f>i}jh@IMfM_J*W_C z&(;ArCI4fJpD`_%ge%4HpwIpFy%75S!WmeeD!g&+j;X$jqV1^59K_E4jvJ;%;Wh&vR$a zP@sU?k!M~fufE1b=W2CFFVm5yI3*g6*~H}?hdRMAd4tt5ix3kBQ5$D=v&=2E1askE zH-#d%jj&t>6V~zx>be#vyNHDR^dYR-rzsO7Jwxv67DLi4bXnZrz3HHc{gM&ol^2K9 zzVJe0^To?kc!qnv&mdIzlQ55tz;m06cLQ>Ip~Snp?H7D{haG1(KFKcq%JtDVj9bUT z^>z2N?xlSr@ZX*~CE?9KOWd#OMt_vW6TsvqC?-?K2s^bW<&OVeE&qvZLN=c<$K$xA zbPoP783Fk68QrrIvXQOXx7Kt&0|OUQMTuopVkYPnnv#uXTsp6hUVj`E@kc z;PRsZSK}wE(N8KGw#Jxx)tw>RaKgt|?J_R;ME{SLu%||B zohhiqk3U+8GDzsf-O~?+4Vz=F1FlT_k-g;)+9+p??XO}kd1BPt3lU1!1XkytL>zSF z_ilToR|01!KxbXxmN(z*!dyRphiCJ)sxXy>b?~5DAidE|Bz5VXta|sr)4G6Y%gb#| z>fCovwA`AFSa`tlllNlu&aK*1^pwTx({oQ%98dbYc}WvNE=Efjx0=hljGu!>h!!;$ zT=FsM&j+jWUnR5ImVY1Fbv`~ZcJs^hGH#-v>mSFitC!^j)k6Id)CMbe5J@_ErFb|b zYhx(r(t?iRyhj{JCjZ%-PW~wKYXQUNXBOGtbWvcTOX&wnF7Taep< z<$6i-;Cec{%f!{B4o6=Asn-cPh9?Ofe}x5r3A~rJ20YLZPvJ4sM@ws*K*<7rHger? zB=DnFx7m-LBn&jM&{;IB<1Q@swut=m;uxWSzLIJ%87TW$B`G%l{E^%>fzgbK%ITHQ zSDvkmML9G=5A>6DbryM4X^;6u(VNGm@mx2s5YcVo^~LgTQIXzZJ~$e3r$hfOw3pa# z&f&yKA9#By>}Nk4_Uqu3_VSiG@X#3eDsoPf`;_d{mXd#;4PURUqFW7MX}U`!L(%y_ z?_R<32YBeE?qNdjfutWEc^m-z&S6%#gmFlwJbYz}0I=y3`O!o=a7w_4)roPv?S1JQ z06^H#_}iT{;(E9n@hO?}d(kO3^x15`LcXkBnlu2QoWeR(%e~W|(doQgiLauc-cimO z`s}m}4^37=W+_QRZc<^~A1O#yEGNQ;YADvfdrP&|4;urgZA^m>@ctEi8rA@Lz0Y!m)#J<(D>iG#9t-ArOduA}rqK&d3qcO}G+ zh}6Y^%pu@T9uSFyhf|pI!9cFtF&D>=u^fdtAXZ|^88OMB4rC;Bq88K+L!Dg1Yja01 zuE!cD{jbqN)=wxp8&P5!Yd*oI90Fo7@GSv&7(Y@43BWrM=v_n<1O7uG=tF)?%q#8( zm!ceup<67h0rFA!yre2ZR3%^hCvG2b7I>W;{aS$Kndw~<4NuNPqIq3HGCg7SHBm4O z_Npg&A@r8`b$uVIS`-p+IgCT0BjsPPz%YOs9jUw@=X4#uYAh^+_rvq~S5Q;%#?U%J z)~2w#AP8h#N0ZEAW92>Ldx?oYB!H0WDiDAt>6sqa6fMStR6)yP)+m6fQTqaN;q{Wg?*TmU#5T7Quo^fL>RFCYUTc3%%nQLF<<$fv8WYcR~!^UP4 zRdXk3V%KjB4edV2O|4C;T}f##yk=)^2Pfv4IOh@+a>oU2+$K>_eb=xM_U~b=-+b~* zc9UKgqM*!~M7?)GpCg)eCHf3H=XR0ztzU(woC`F=3&gG$#TCTY;DJ+M;ki6$u`??< zIXJu<71+mawNaQI?v>S7ENNb3*OgOF&4sEHrzl~q8!r0Job{WD6^ zxdHc~OTH77Ai|-G?n3%1xp0z}4aracPk|MVOYhfA ztqo^AgJ*G!sELt}(BCSSFOHQqsW!IAmJqH=Mr1B zQD1$H0+_buQ-Fq@NLI6^idK-+s+?RRQ8u2F6*4Qe@9FoKsg0*5fp}Wg(NmM~d;R4u z3hpoNhXxgZr)ex&M3|RG;0*xgB@eD8*~V<eMNxsB9X+G>Qg_}m<%94*P?R5 zprN5G;dEr4e0?RO=yXyE)wpqz)+Vk{yJ1}0uL!C*I|iE4+(Dr0I#QR0%maaeOROWc zUVE(0&->Zc1_Im~s)R~viZ8XD^t%L$L{*si>ZPjrV*?e~%43o%6x7T8wNi7nSTBWw z){#CJ{I9C}H$Em;Z?1=2$HXP0VXy9&!bjp%>By6HG>^Tbc=sWize!~(p}PWCQ&3C2 zMr*EJ?Ec|UCF0s;?*reu4tMTN94h`&AU_6|?-G(VN^9NN=)WA&mepAP zPq^ovl6Ue7pv`dEPAuZaLZ5GhUua0z=6;ASv5og*Z~i<;DRFa%sBu*6N>}ROQFN_W zl1ibrmk|2B9Q%c5nW(@k>jQ&!pL?tOAI>?{^vXZ#WV=_O$;zn^3la)-ZUQ{)^Z@g= z8McDyyrDYbOLF9n%te%iVq?ph;R0HJHGRnGsBcIypcv`2R6;+^ZF12c_z1V~^^`T$C%YX(-Qr zlniG4d{haBQX*{oXkLbOASoRA%inzPvGU-!xJXHK6lz&!u$Xv*p*7J>DHVrwlu;gr zr8SHuj_+%mxuv0&!wZzBC&yOWE1u+jZt!q;~4YAc~tqqc$Ckp>vx^Gc+y?by=ad#I<~Y#dHwgWa{FjT6KPdE+6wq~}7q zt=>^6G3&hYPfzAphtm{i$@t+G_J%V$tS6)E3u_*u9!%$Zz0mw;FM9&q8${`*KQ5Gc zaW-N-k#kkxt6~`ZV{Yg{0hnfplmaB*R#Ncn*g2jgx*mg%uGspiq( z^U2wVW#ff>Z&;nUZ<=qymj;B z4vjvAnYoY$ynVf#ZvM)G{pI6yH8)($S~NHkchVAa)GqYTm{%;#n*N!DFgmU7q-`Qe|T*1y`;ZRJM1Q*ZB=XN-{AY-+Yxb)1c?t-Mn}5&h5dd_!C; zb-F?JEY0AN&A?|h-{yc%OB(*!7cOp(5g%RVaBAhir{Y(hx1>M2vqx+?K67CW`)AMGQCin*`_nR{;O;=5 z8ESer68zM$RfVnI}+y&umZ!_O>fazd5Qz15BZ1heT{`4nCKEct z_&y88ESIL!yLEn^>N|WpcbJ}WcbqyCe&-%ObT=^Zph$mEAdv}df&MN%9GD>-Ube4# zw3Tc1e4PHpCvVfoHXX^#Eb>7{ZU8S20SD@)pv<+tN4stj;ZJn_;g-0+e0~_zf2T91 z!BXctw}{h05@P#)5M1tvGMe;$IZ^?*@iYkS^<=61Mvj}`pO??L*$VzyPkgVAakBZ( zS{m<8BoF{vEI|0bu-pGjmK1Uh3&Z!iW0_>hUmL^8k|-F?JAxT@>z`WO`pqh$qbgcQ8IZU1W|Ae@Bf;YAc@MdUKl3~d{~uXW?2BCiySec8KMrw~hY^9gcQdY7h8#Xm z1N*JN#9h8}BZirFYh4!q3fd}`(PQBczT9@iN({O02#%%F;-S(=4J+w5`8}}*@uJ!h ze?hx;QA}4x%G6n-Z)mjv&qzTi<_5_tT>YJJ{No#N{feS z>QI;qYl0g1SR|_%H5OD4!^EQXoK~PLJ6MT$)-8Q1k<;(cJx;>A&=AhL22>Fhs^mQq zPRJHYB+K#mRK@cI^?Ic6Zs994^tyXLz_k59i8NN0LrG?e*6Ch~;Ea<;q8b0DWTuHE zh>1_X{MzjL`)G3p`_sqvbk5WlU; zh4BV)J6$b`Zi9_ zxNNl~X-zlQb@)yDwq;+j2yA#76mg<*>7C1o_Lq+RzrniHWIM)bP2)Mp7`&a^T{0Z_H*Em{L5=#dRjM?<@0GyMKA0C4e()K2# zv;hcQLQyU#zar83bIYSETm_}78R1_#jLN@0?9I8^_hloOKhv8uf%6*%(so*G z)D`Xz?$OS1MSm{^kE8S-Ugcu@n04XE_S3(Ej0YO9$M9L$G2`G_PQd)x-9I~z9*0X` zNxJYzVe#km1JifQe{TF+Pirmti6Ri;Z+NU|hDX}}C31!S`aE&8gU~}jui-fqsECtJ z`de8>aiUR)x>JNcFa$07ryd`KB@Od-e@%Fn^%}hDlfpHOy?twV3gSRA%#^kf(AF`7 z-iNeu%%GFhM62{$Bnw$>q@WrTpd1e+9?*p$1-Fc#1iFL~NF-xFj6i8VdOBTrq-@=c zlpt{wl!m5gGZN$y?vudYn>?HvqM{HQAnZAtqU|FkDNc;X>Zzu1Y8XMSJfWw}hcl9I zONnr(>dL4v;{k;g+bh}{p$drIwn zp0@A#3+Fd=%oujL0Pxu66)<^ZM)Z)otN~}ohg;ZyD{LWnL&?I0Df4PCxd?!+@&%o1 z|1Op*iV9N<1f~OQBw1>{%R(H@Y*W1XAv}*M#g2NlQ}W?=`F{tB)$MWBkO-6^FU*G9Y^Y!gYP? z$ku^zjfWo4W3fkDP&HD0p|lU95CrWiO|XDyQUvM6U;44yO#}A`#wA&!PVQQFze^CT zU}#_!HveBNUiap_2EfM=i2fqGJ(7@bUE7{RGZ4SKqM9t^U3{)kS<+{Bah};kFATJj zMaFv7GKja7Y|3L5r~pIr!BAWPHYIl~TEyt@Pb(@GibP zmG;3-0h0KOFLxGK2UrMCg*+a=H7y-`#8wj@wMn>=ZO1NWNP8?A0DWi1vWvb861j^l z-;S*w`Lkb}5R-lwe}5w-HdK`}NiIg2<4;p9GIW9_WwW0o*7SVnz43NH$^v+}EzaKG5+UzL&z+ zrS(`Z^42qHn-2~Mr*IyWMt~%#CrO3t#&q4>MSUWnPI7JUjIKe5pI^-1pAXw<01k6u0lyREYMbLvi3BF+e^WSW zR$`%7D}C8K=`PHpwG%uTXfPD=!Na3Z=T?7Ppr1|eV%|B9uNq2QW5e^S_wvk7-1Vmt*Sf9ulHR5ny_yr3|?w6mvWw1L=Q1?OvfP43a-K> zzjkn^VdqUT+g(><=uY-O^M0FDAtHTtUvuFKPguFV$(}Ia7S(!ne7>H87u_xQPFd^Q zP7+J#Gsp%8mvcPIEj`-@P+Ff!Xx@lzc%B*blh)7j_V2WxM}m4^&_qPQB|dwH)*d!LeT74PRD zkNvahW*pPqi{-feW~BHSBy9C$>+F|K^IeG{K`r0+a>3_*oIG>WNB#7F-0^+4p?5Fb z3Smxf+A3Z@bIXi*ok}~ZpTBU$vXz|;FDdaVOcT#-I%EXzMNO%i1ne2vpLXKFaUVC} zw)@Bq2QbJm5MD*3U}A+q0FQ|4rvoe-s0BvQ_wg8fcFc*o7^MvZ;0GsAXn010qn(B4 z950X7IH(B5FW!t%kx$S*h;Ifwb$sHP%~i$N1b;pNPfM_sPZS$sKib13UL++tJ8^w7 zh`)=2KdDJ{mrr_zcdIy^be)v6&+DtahRn@Px&bCn@cI4bPrgG+jQA7;^+}E-C21um zM}Z{u`2+#(xL6<3#f{`B9DDKv$s#QA;vvjjh%;;FU3Bz>uFnwtv z?X^$(GeP6$q>Onm^NoBuqCNd9m}#4kelU@KV3x6EX?sm zW@#4YYs#mfitY&c6)P0w^%dnV6y*9ACme+r*G(2wEfi*=ith;(l7xzzeT!SoOX^XD z!C|Tz6txFMst-{R0a&Rly@c*u`hW}@FH(zvl|Cs_lSP+K`9fz<5XP^P2byK0D7D$m zk{7;ZFZ)VfE|kpmm5%$CO%2iHJw3zx7MP1jV3Q3iHHZO&0&h9#J-|SvGH8^@Cjgom@Ifrb;YQN9)V@f0v?! zD}HL0swE`k#A;FP=Q&>{H3-8I;cdB$qX1UYUtfVUcICsm!JBEY+>Dbap)(>LoL zYSjM5*QRdOxp;Ds4eKacb*l)&ie~+LVU+-~3P- zxxtUjhOKW=Z0y(qYb+XLeN6g88waKuOKEx!6q8^$vEhCYMs0KnZlX6dwJbJFFQQC= z=2^w&7Z%Mg{hD7h!)^`DOH<8nx0)BWnpR!nyZ!FGUj&z#VYh~s&r>a5T$%;bbj;uo2PqvSD)bVyQ&*`ohtbYNb(Lb6YJnCrI?H`eWDEf=wiIbb z>`h`NIDPT%u@7esGaLX>w&wWe3;f=9f;YT#M86Fw2 z3lF0pE2mkU|MYG8b=y%O`~bp^-ue=YuqU$h4S)z7BzTErbrY1q14`5$0NLL;Q5F!sG3E(_iZ}M)>rIpSELXWW};LPY)U;{)6Juc|Z zbR1%Q>0wyp;G{q5voLUpI~b z0dSCZHYQWa{D3C5TM3+B=4F~w74#6=9TVi)m$&jol0-!=fM28R%IrNL3I=*pcYC->5Ek?vCp1*$ z55$@FC>h%!jc+}^(w>nz7(FoR7S(F|7b3kfs^18gCUhRUF#T%n$<*FUXs9xw6{J3t zz>R;ieCR?&WcULCR-0Ohw|8)VSn2y{~*C_cmR!FUWyD_f#1L* zulY}YRphwtIs{-4g2dsAREQ7;!Owu;Fw=sR0d@?+9tSyl8Pcze5MG%E00d3>iBJ>d zA{N1qhrES6>G(4|{bt&3cY1R0$Y#$oQvu+~u+`HUyepO2aR1A`ak-^T ztD&eEtn-<{_zaS9z@Gn6M<6@k95uRe6Cs6t#I4`)V+;6KI&?VrAb~NqIq-;u$+M$% z9>=vFYIU4Z0xTQHS5y0b2=gBk^9dh-O3|Qx*Jnw%XJ=enrFL7L|AJ$U@!5na?lgM9 z3OtyCbfeQzgI%V($c8Lr41VgQZu1Oa{AL64;mMRO9?~2DIWCImx;$(t_M{_CyghZ; z{O{a|DB@8GcyV`lacL^g0uTmX@)JN?#!E78I+@Vz>Gra}bfkY9BHBmM)X&ft%5(|O z-rhKVr#U}5Fz2LZ{(Dl!ze9@sCgq1+Eo`9QQ7Y`s8bjdET{2ioI|C z(anJr{g(ZsrUwp9;GfcG7P~!Z-GKAuRt%@&8UqAowtGYr4Dp7A}s_+wd@p# zrWH;vrm--J{ycD^89oqOly#f1)0zBc`G^9{L3HS~16|-?*Zn1y2nsTg($&cQc5aJ( zpLXmDey&-0dP)>=kqGH31#ozXYE-xX^pqfV+S6?r8!)WQ4h(*N>DfGP)HHnb^ySTx z#{gyS+uNz1&C`zfW8LJEuFVy$DwunVhBAT{(}V`;3|7~`fks0#)q`hQ3(trr4bJ9GGdgVqm~`&dQfns9hnN) zDuGddmQJT`6OqdV)_wVhhH5VIUNQlsl(+B#~AP5`)-dGbxKW4uQh+&y;-&aDr)BGow zk6(tkL@)d4P9q49kKCq@FN-}?>fyYw$A1GNcwC^Qq5iC(*l&7@xBblHz55g_sXQ9A zOzpg=)bTb0{P5?0D^vg895Yn{RJ4JV)K=Wp?@Yw5c`KYvADB-?=&^nG5*?lOZ{=F) zm@N5zI0(AvKU(o`eW>~n`}v`nL%APWWpNi`Lrb^z!d*@53E?T)T<`{}!bJdA}t{7=u%ZFrGpbNx@E z+J9$-4@v#taV``)4&wO^d}#SE2l!Wx`S&_g{9fz%noJOPIevct8vf^Me%s&8ichXr z$nU-$Y1XFYbtZ_=p;C0{&`G|n*8lV$eA@f(=szxyX>pHJiIPtsCty?le=P2$Dj_6l z&HdWC`i91)=He4~s~FW;NnX zKdm>2G7_P}H8i=7%Jq#F8QWhnPTtEw?|lDp@Uv$3Md8hmqyMzG!!9P6aGf;N)g%9Y zUHzg+6S`-vEE~v^K^8pa*Lg`b3jo;UKQUBCY;rIr9^mB_40pO1^4B4Lp&pVYrm-@w zxhns$nqTcKYu6{scZ_>xIXvm>JZa(@{vlCm(p$+?{*c|nrEjw=Vp>5glXV|%Je6|t z+ujYAqO&+_TU~jxDq%)U)e1f)6z6l@(o8dIo8c>uZ#t)*9WX!HC_f~m7qzh){JC}Y zB^7XCR(t`gvI);3pI3`LpT%MVb0tqGnip-ord>0=R!ohhya-NVAA0NgPRbT${7Lne zw;T~PSsC0r5~@w-lybd$Nxe!Idi<=`-0p(yxEg?o3fua0O6Ln19+tKtpHY`tB4)tc zl(75ADF)AA6wX2JBOT99sv<5+a0|VM2?ytPB18j44Ut@;>FGpv&QWc zNW*YoH|!pf+la`W6{$@D$)dH*s`^r_+m-h)YyfvAG|FjA5>Os?VyNnBc$po8(+vyK z9V1AYdN~Y__3|hWQd(LZ_stm$r=Uc#n0qrxC>6%4cFj$nGMXHfF6fbm@vy-FMMrK? zStVj_)q6Ep5UjkAl-v3rIneS4GLr&E>d?9Dc#;AHDCN;Wr}-Q>;R^Jk_L6EIvN@$7TxN>5)`;m-W>RJ-X<~f1l1YMs8f#(oyja-B zHe@q-m$kG|r=Is3=f-&`*Mo#$^Uct`)4*$oHYfu)?kM*7acd;}4~yfw(jwr|n86=* ze__AvJto2?)gK)?D1j6+GQyB!;k>EdMymQm6LHx>ivBTeBXnhzYQu;L-0pz!$tLoz z=9N)3@}v=5>la0zThmgZ+|qi3pz=7Q+TE0ki#?V((-Am}gWlgoHhG2eFoQ~rG$M6lBpI5wfL4e^Re*|-Xm zn~?iwyBjB}h?m4u`(PA$qzp5Zrw^duf>fJQ38}=u?E@ z)IV=P0N~0R`hP@Mhxq-TK%O^Z_UdBK=b_?QOmGR-W2TvMwl@U~@M+Qk9y++{c+d?F za0up%T1D-pq?2ONc57r+3tQ0VdjbneH4`M^5~R=x5OqqTxOyBcbZ)p=qY`=|4R?%P zqZ(sROx*ISVhtUH^0N$0)brY9<y!1@WpD104(W(@D7S+OCGFU>avheOU_D7Hz!ojrX=FTuOzS zfEL9gE(v-{{;MOQQ!vcLMjZFqA)?-uqw~Otr8NvI8hXJV!X^VkP%J3sFZ^xvr&4zr z6)e=><6=d$^gLceS&k4F5`%Q=CS*>WG!qVmKR=9;r zC2X@d3MasBdC6_;ew}tAk#h+a(mv2o&P!yBx?1<)uJb^=nvpHeMhHh+R)JC zL#Azda$(5Iu&ECrnI2}!on+1pJR}GYnaM($n0xEOIME@DWZ|`0?wd--vL&c~s_l#H z%3%N->0>M#h2Z5gWOr{aEm29;rzQ37e(&LL!`@=ZyZAy8L9Myi+yt|h6v@#m6Te`R zx`mFn`>1wSg=%qRoPqkU6mw(1uEI%%C~dfV;RGSO=@RHp`pPC5P2^ivP$4%?Jg*PU_A!SwqV5ZFHQnzd=7dGuCIwuSZ&igKb&cuUx*{H zXzf+`z3BJmpH80W$fU0sA41MdL;@B$8lQ zLP`+T3|IiyX|^HamB&lVVv%qaW)R)=uDIp8a7F z$RyufNjZ;6yQHB;9G}MzZn)FWjuE4T=5Q47gWKwuJa)d4Hg;-h*q(b1mmpi}{*X*a zx%-{Sau!^X(mhK{82K2VZDoSdS&Y*KVo`tWlm>(WgAKMtre_*LQjk#kVUqI>4zyn_ zvsb;vtOxj?nI!W~Bf-FamT!k=cHHS9q;?E}6(!=eR1moHXPK`vxXb_j5P6;=ww&@T zR2xc(Py5MNmG%-H2aJ8Szkbzn`|$!Bw2=k-*;&HI-l~12rQh`E@S0o;DN{-EL-SX6 zu!Wka2!=OikO0TzFbUO#RW7%!IGb0yg=%@9#WF^sy}hM z68qbxPq@4xuRCCL+HLg(oI!4ds9*uqPAH5YH?Z*Bn{=Pql(umb7fe zFf6hSu6bjKucXJ8$BEdWrbK3Nh3vApw#SNX#8$|d2!LED)v&@!=O_8#pPzO|^tcwU zxcYCg{gNQ{MCl}nScbOWf&olNcF4;U(Rq3j zo%Y5u&}$QkPFSe1j3=`}B1w0Y&h`9s+VPtS;6y!wkNhMY^ESN;kDf$AN5-SbyEf@S zG>050Q5~L%c5tFc3seb0>UgXGAAl*>p$Z27@G^;q*=6%RP``LYfXbgg`R95tfF<51 zrQCtZS~`WTx2MEowXQyQ8>>9YUl*Dr; zVloEM1WJmll+qmrR;^MxG4z&_TDn$mSP)kFa#rYv7q{H6^FeVuK5#gMBt0sK61XRJ z@dK}sk7$F&nGC0M=-dckB~i+gu&{O`6EKqmpsNW0xf%{quN|iVtJ09w?+{^iL(?;0 z$e9bm-V`ksDDVrIheJUELW#%}%oJt5mbO7sBctsp()u3hR79i<$c4>DVr`txTtEor z$WX|?1Z|Xfp%vqDZr_-v_?XEF}eGg^*py#Wuih7^cC zoILjFc3yWM;)n~ImnT$0tkua{1Jfvup+@K7fLT)FrO;})iL?jyfSV!>%%27(kvOj! z$9J004PHklf*Frv8Gv>S{SG8o+uSsc)>8))4zFbeBQD-7PoFT|^>zPOR2K5ye9RbB z$DOvuWQgqH-8*$_CS!CeTo=rAEB3j{VOmfK zuUUL5{2N!mN?5a6vAwBQu4L5_5vrgls9S}dJtIfT0&by+xvN}`+>&~%_mVfc9ACkb zu&#!uwd>t0<5YnmqiPdY?b$<6#z5Nxs$GzsQ2(9(PY%$;r|l~&1fx{W`oOZU-CM6d zN|eRKkTD)C{f-$l(+?x4C<{=8QH#3+TtuSe5`b^7z~oRA90L)-13#QHX<2|-urVFv z$xaMv!0Fxb0GJA_i?Se!pw6rsXofDQBKYZp5kSl=h(kPxzIVCD$evTv< ze6DVtm4HS1uHF{@&{T)DY>#EOZtF$hCzvlqW<-7RcXQ;u#0CoN)Ft>2zg9BV_^4m= zrx|F-M`QVXYqpPVJA%fZ$_I0mWEW{WAKRKuY2b-$V;0jCbfw_YQrkAVB@Yd8jF;|p zL3tUWE(fE6zPA#L&H)4LO8)Iz^tK`fhdno&$!eR{66fnFl!dU6Eep%}`EY56b5^V< zZF%2wE~qYEcI(fm^OmSBMRxEO>N*h_UXLdOxrw2Ol+B#fHOdLC8oySY^4hlP( z!JpSfLBmu=6H%Cpf(W3wj?EW)FOw;Dck0AvGauTl6&hfaE9>z#y~35M)CQDx-jy8- zQ+JWRX_~(5H>Pk|oJS2ThidgUptD&WzHZ}}kL-hF#``ns;h*1oztXSPBs)BKZ>bpt}1ft~n52o$cwa^Y3O0=Zu3rm9H zQ2=+s#jD>&yMobD&C{?fwMX`Qz45zU*(G#K3AXOp%LP@nr}%`=@9J6!2-SAlUo56>DsNICMxBjPbpWb17!3)BX-&qeD*Qnn`HkB}(dj zMAN`fTiNqCvB+JPzY?`u$KZEEhA4iZtbtgq$H;6F@;u!~o^ieE00@&E&Gkjz;J>ar zIJ9`vZH60unbww_cnJCdDXlICg!abFVBwu6>==nkH@cHm&O&b~8 z#Cmz6{kxn+1IwFlVt-t28x!;zQsqw=0G3Yjw!_%fg1GeL&%k2H#0csea139FdZF&#hy*a4XyW$+d? zWCap#)iWhfhwT>S4Y=fbLp0Ph($e8u)1T|<0nqfJSfR|G&~&P;;;iibrZAi@y}@r{ zJBsaf@!hy~pe4_x-WYisUn}xm@QSIXh?lRdnKX^+t9ZzAXqynmh;_vzs!ddXzXYd3 zk@vn?(%S7|g7JpuiO8ccBFfC}T^HZ_#kl%m&9&}WBq=dtCB(cc-Kg*p@=Gi?L6}zq z&AJf>{&Nnz8GH05mOJ(lhhQwWna@;2Gj@pYo3hkR<>%!uW7u>PrbnNH&4b}Mp7#Q? zA0#uLuaFQ+GcFv~VL7le5;C3*1;>U;`K0lvU4M8H8AFMCyP>#d)*F46m=4tLR`FMB zsK`hVp{q}Cl!5HePkhQpaIHVaC5n}oOxZ)j zWN~OGg<(zr`Ep}a8=b#m0>M&B>eSm473O93U|7a!l@G(gWAAp}f?zvr!AiA0S8_Wr zKfLGkLAu|OF7OmpWM9WJ9Ug0Ot>E@PkW>$@48fo1J{<8a@F%QSw=2X*dyvCdgakd6?cQ*X*Uiw;yV7`k)mk$*S#-m(kK<)%EiV z9?FZAsP46^raGK9(<Gj)c1@~~oJ+5HtG0wN}NGgsiS58lS%eihQJliM%qcPeKo`s^=F^$hZHdfH< z<5%jr&b~3QCXPKOj>#;s!;bGkPHth2Qg=}ow$L;g zI1|vc8y@CzzN1|49Ne&I_k2YUB)r&8-QMuhxM4i@TbvfkIDwVt2w#L-^PmIRXxq_)K`V%k%5blDJ{Z>jT5D5l*8(z{CxIFB@%Xhiftw zrMZq~SM4Ky{Boc=9JjTfJ9{YuhiDQo{8En)UN_|ioZ@6&87Jl(mFOQPUgdi34V2aj zelX!@hDb7MytQM_A|J^mYX2IdCXO+2h~bC@{;UlBD1i1$B#AOOo_LIG-BX3|&7{a{ zUi;?=HNEdC`5mI7p0l+K4xjb>HQ|1uFLFN#q4?206aSA$NlXNA|3{V#8=2qOs1y7j zSyDmawIk@69A`5AIx+v!Yj5fCpYHYjQ+}Jn<`@P2K8ByGe~G_FBuS}pB6VY0OS!3W z!!?S1aIoRcZyljBdB$+E2l<*)-kq-DX#zrW@@5_@rG{6}uJDQ=ryL`(QqtVkU7%I)2~fnLzQl9njCn^m&b4CTDbm zy{~PpbD0UEA=vcAJ>!^+=HfE}i(US;A%P|QpY3~`dxoR^?UgUr`MfOmVsi?--04-r z=~it2_1SRn@&STPL)BKyP{Ye`?gHE(HRX4-6GeZTl=4MK__9;bdF?xIJAG7NU$~P% zqZ5)%$-~d(Wt* z-gaMirq6^HddJW^1W@S`dJ!<#C?W>1P$l$^p@$xN$AEMY0wPVs015~qMN|Y-Py_^2 z>|o))^R9QTv)9MZdOi8VZqG^$HWYk_Lp>3rMLrQ3Y%U zq}?UI@&zUH0J5h6qdSWCUzqJ4cCt4SRjM&3r?FolrU+&=+ECf+=UuJed;lpSw-!j2 z65s#{#jCqEZ^^5<8wky@7lA_Haw`-VyMqN9#_8zMC(FWn_TLq`yLk^6;V-_Bg?n1` zt(Tr3CM6U)UUpuu2wl{bhhI&9v0mmg7? zOrrqS{^y_t=Sn)!0g+@VwV^7&oL1Cf`1VmXk&}d5C^3?io{SiUkh+vW=9Chp5{8kZ zn#IyGC${(!6$6CaO`xFz?ohF?!_HQR&cQnZnm*|%lC_@TPLj3Iw>o#3oQIx}CAmKx z{yZ`Xl9dRKeg?xTaNzU@$=`mh_kq=r;AH=lg8VP$3ONh_!f}3f3I%PPvD1G0Xy7yd z>Krf8NKyUU((UBkfzNVABL4kmeq>lg{r@tHo zu12HUz6GDY-qo#i8~&EUsVkmGSg*;kk9uE!{o`7bJ~z#LoU5IJXi>WHYT{kyOm_6g z{!fpiKXu9X>VeB;cOh)bwWQup`3rGLUmpJ}Y&&=28n`=uAt(07V!(9l&nx9Cv3qZF zPQ>l6pKAZLzt#R9VcT~6-tP2?Ykz;dZjb%7_i6eXYqb-g@fX4h+p-EkxSR~(O5}KU zzm;F`O(tkVPT+e~`A3O5^e?j{S0WB&1P)`P)Eexa6!$15%drZjIYNk^2i_E&L8E1elnl-%FLG!H-q`5SCKM%fk>I0Q3 zHPq?TBb)>oEA_k zqi`b41}^s{sr>LIr3>ie2iBeGNtt!30WSuf1y(b9ck0w%q?%dScNX1Ksn=*K9(M@J zD;e{v*NSX7F6O#hI^SCVQKre-(IvQi`ScR3(FraY7F@Arc8>ii-V|Wsuz=(~94-t1 zfJz;7AHV=YK)kT9u&Ai0k&%&^nHf|(=~_Zd`2o(0rZ>4ZFZA6hu;!caJBw_0C5}ZR z@E@l&|8*J-90CfUb3h8~w5+hO7VAq!TufVBUQSd;TS7}&R9IL+Sor9_+(JrH!g5DM z534Kuhh9iQPfG8If`Ng7GG6=Nk|7&?b#VuASqm}oATg2CI6WIFLkCGU6KOHB)ER3r z=hI@xttGsj#3FpeEv<1@rzQVOFQoHty^w#Xsz4yR9^Jn3L}!kZ--I(Nd4bo}3vp;P}&G87mT{BOxn zow_uO~_{*N-fxsm(x3ojOvp5=C^)g`Tr7vlBhV2Qkj0`C*lSC?2_df$Jvy{!KE`%m+J zR_7?UW=g9?h5l8(oP7^iXt%S z!%zBbtO#OJamts5hQGAD#KGf94um~G;9*v<$gX}w(3VQ;arLeejSctAG0H1@3CHk; z*T#`yJ~tHP=1#rku&D%xD)cPg%y-~K5oIlIGSU}RWXv+s?0$r9};u1{Q zlW650VN{2D7qFJlRb&H;sk;l!$1-CmqVkFPT|>9t}r;r zDmoFuPhQApyepz+kPe7~d6hyBXJyPpZu6$gu8+8%(0PP=!Cs*8{+(p0d3~MGYU$p1 zp-`Sim5eHMMh^HU88jkpPYAK(?R>dve&(1QWz6}OSp*J5$9YrfDQ+g`1K31Lc+*ao z?SqBlaz2W+3O1}f-HDEpbDGyNJkpY0YpaPk^W{JRf4A{^OSr}|8h{44{aDJkI=P`B z%Le|eYb%4#DBqBCPj?qCD;rWg;p;L{+i~gO)=qi>6Q!i7fzv>VS&`tBL!D5(ydXEl zSRNX;lbh(Qc9mB)&)$uvz4((`C&c61VR{{h)*}L}bW$!uE@etjS*puE*Epr{$s1zbetC+GCuGse`8Z*@IU z`+e;8hD4N9fMwgnQV&Y~k8Ho->#5yuLhXOls9oqk%7fDCf4>1L0e6qhdj|jg?$Rgh z^X;J0X{~EHx!EK5$I@*Xwy7n*dojYBzMlraq^hhK>cVHG21yYunmx}x-GH2C3K+PMB=lIp{Q-}T`!W+AsRXl1 z-YbCwxP?ZjNr))7{%nGgod&md#e>AbJu~+6vmqCg5PZ|)jOl^(=yRDiiUhMXu2)be z?*bIcd$#5L_csB?o}S0}EK;zbt%{X|LK_WQo3pyAKvGoJ6*IdC!;2$ae_KDbd|G0{S0 zKCEZoP0u`DlyKx*&Ao`tFZd`htG@00XGo*6>-cQm;_!{pI~(Q>>7(6Q>!*}dlb}JY z&P;YGV4LuU&D>|M>Q`c2-`6IS_+MN!k=sb$&BRO$H!O|TY9FQ~?4rhVkpC5ZhVSfO zgsP|Uyu_lqqDH8c`s}ka$bRdLn~f7^iflj;Mm%a;583~UC~(FuH0I~#+L?DL?HBlV z`7hatL*-9RdLYjpx;vTWO&ob_aCU zeD_wQ0imJ#LLugbb{FdysJ8zP8QHG3?W|Xls`hC#V@D{RBDq|x91~S0sNP|@l)`;u znO{8M$=<`c(VyN|^;4pmY?LEwLq`%;(nT>is_xTOh-(Lj)<*o;LFBjDZmJjORaIkH zvT!Hu3aCo7Y&ris=y~IaxEVW@h0KH;#|DAV;U6i7q;Qg~kQdC^X_9;Lqi6s8INM8{ zEp_YcFypiT{g@}<+K7m1ZDQ|2q}Gp{{i2$kJNhPSH(%{^;^i!N>m=j7BM&nIdgz z4|Om(<<*`*iQab6h<(M-QLQ@ns6kJ{a5BPLP(#=B(Bj0RjzXk}!+YE{XsVpjZHv$P zBJr2sgjTJ0G_|Ad2{-q*-gc8cp}4i>6ddyGSxYD;{`|c5!C=Vq%7w0W|KmGZj~Oq< z?!2C*O{M*nwTOMOJKpII@qfF@SQ-I3vdnXf?r)wE(Rp=Lj(PJ=z^&i&k``Z74s5wl zU5+9mr+XA$y&Spn_0FB@i7w?LVavs>a*0nIj|xtkrJU1Vdil@UmrDhIF}U}9+-1v4 zL+@5S^XH%Ia|d{1#9uu*p|PO)BmpDW!7?etnB%NYO1%L35godxBoCRa8N0c(XCojcjHG>IP61c z%kS8?93D=1L;0E%ys@Q!#4kkqmsb(ut+2)LB6*&#uLcb^r&c!FQb)g4O~2h-QjL1_ zJnBh6B7sXS8-(xBQJh3e&e5NH^DS}T{|>&~nzB9lSrguzN`XiS)ug5h8MzwOG)tN= zHy1io@G>Qg9Sm2DVz%)!o%n4>(vUv6Y5aPIPDG0%h3C)MO7Bf~?CEx{kAdM%Egt@)x& z9`Kv9(y2Jn09HpIk7zg<9=i*}g8-Ur_RjsNrtgpLLxCnCRqN26e?Z^Jh6^||A?`p19kE6nIk;C zaDCYs%_45#V$Zcur?h@@8b?A#hPK(k+6rKZgJduPL&o96m8^j)j*^<;BemIoiS8-i zvhyv@K8s*|6rc8ny?Po+Nr?)t*8T*y-(J&xl8|`CF(<7vK4mPmix6O`5s5}Xo<8T& z(9ZdK>Il3vBU8}f7ZqK;5j|p&`&HWSu}4-+5AE7U?l3CvqjX-8NuKbF=rSN*LD5jj zIrrGxyv8~sUm!~=!M~gVS?m#4cGo%b{+Lm44t*@#{Wkg;Qav^q{i|5W;k~SRpJDDQ zp8HmThJ%UVzI*vN?Ra>ehP$Qk>3H&?aJ>MX9Gc^-Wr-5%3+R`!&q z*dqSgsWh447wOsFI8~D^#B-UCla;?57Puz_ezXG}`fnY?8{-wG@X?4#`ZyZmr zx{37+`JR?c?K9&DQD1+;7;n~W2-9}6$z}wU0HLr4I1asTnMz3 z<652zt0YsJO%YAi+FmO|zNMA8)O9)8Qnb9FxN>`ETzly&TaGK-OlCR;kX{h@}9F9Jq~xe+>Re~ z*-iEYm-o0vcSry3IqBQ$soZ_)xMuofSJq@NMY+c!8fAd%z1Y&1?F*-F_rykbTZr~l z9Pc~f+fP&OJ?Sf&!t8vYRdpwXepJaJAqtfyq@1vK0de_G`U0E^Di0}uJoo`T4Tix% z5I6`YaR6YYnJEK2BW4p_Vy*pMu03+R9Y8iO7J+R_CFs=`ojJ`Y1#;VP_ zizg3a0NBIr!8gkHrtb`Fv%%g+-+j6bI4ll4Ja_k(GUR2(;LP#C@1lbU(jXoOd98f! z>F>e0jC(7`nVbegOD#;f-2oV#^+e|G($JH0gUHN*2cp9e`kKTKrxA!@i?Wn1zQhS7mjTHNzSd1P0zZqPA;L0$9&z67+C_ zV<#ok*5kq1tr4R~)w3%_jlwn3(r4&k?5H4BjJrM?6X=qu$N0?#HWisFfx5TBb*pAz z=CJpUsc%JfuP&QgCjEkLP2``*=uGp87cCvT!KRO{+USlSJ2O6!FVRDPu}?+8k)jRhHTg8yEz1@Ff9mDL;XA1h z@+m;qKxX(O*qRfXjRrFyM1wQ1-eUCnIgodzg<}`s-31N|b|&@do$alUWTVDT`k)^! z!>*29Sb)A&a0st09(42BaBdbqCKb>0Agg+|>c_k&h9VfL}?9m7aYK%fASF(f{frvO28)V3wOn|%(fX899mQ;GZm z4`6x#a4PHmT@}<;G0Y4Hcnm#RF9y-rgJ+)S0msUx-X(_(C~zwUN29xOCjMwm!zY!y z$$1^)9-Aj&lH=((=S)3xD>r=NcuU3^*AybP1Sfio(MX=`FT{xw0Ox?D#R4MrFd1cx zg>0#yAvEMw9LiY(@R>pOpGTjWh3| z9OSktI_ra9^X}NKM$ zQG0j6-aB*av2GAI^wNP{8FJsVQ@`o)ts9+mR|BcnR8msv%atO!i;0H3gg;u36Iege zI^}{ksY4vTlC#SJ@JP%J?ngt4q08SM2ZrxVc!Z2Q<|rrIf7qV34ttcdXRfF)T86 zh4plSh9Go#>?F9i*>rQWV&c{baQ(r{l<^~)7nIQKba@PI)2C!xqjKZ6mP_YmwYI9O z=0g^B0U4-JlTUYhpAWd*;(Ste^Rz)G6|`t9#E}q8?xr9C4Y{o}5_?3aG|}rr8fA_h zg7PM!*o`$u5!;>OfCgzEN@%HhdCLvoh(dBbiEHfsh*%GW!Wf(R^hLzzM}O+ZxP;k1 z&Q?hwpOX&Lrm8M9yGDCTK4)h0*F|i6HGnUfzy(Opj45#SXOp~4R21Wjx}1Q6t#ou2 zsC4}uH%`Uj6SCf=$M+OspzNN!XMOo-vdX$ z4Vy5xhv^#aZQDX`MWVRAr7`EcbpQo%%>w2eL=A5L4qJjl`4d4MHT3#Zl#D5Ny3ro# z@&3`1nRlIbwcMorh=9Z?X-VmpQF4O2+h(`QPregBMGkH1#0K4>jGcX3JHoEji3PmY zC%Qj88je9fsF-}GlRdjqJMk&>)!uKr8?W9d{MFt4UCsa=oiON{9_=Zj(#3 zN;dfURp$v-Jh(SDPe_f&3hkkhOjD5S6nf}xE@2S%Z3WC58>2~Cf5a&UtyyR5=_Tx} za=)|5mNp$Wa}K(ATte^cDE!5(v9U5G@1huIzRm1>)1;aK?>V{Y#*nxlzusyTA0K=JPLb{qraK+t;S)oC_Zh!v6kxd*#!o>oK1pn{JeM!d|%er;0+j z#M$JH^RaV7qy)IG6)ql)Ut`T0LT=R6RKc(Xcd8&uFO(u$ zj&!z`i_@Ddp_7}QRFN`fO(x!kQB6D4=~bP2IAK$!K-;HLCQCx@{l$C-6ZG3;e2LDR zT)l3uOZnzXif`d^AICkCMN*tErI8P$tZTD^QxrFH1%iav3iW)tWXqi6Ufd{hSftA4 z3D;9E)?DuFttru0^WMnTUG5|peixj(3^D);pu!=Jf|d87^i zrU`9BuQ)SzhjYZ(+wW}K+IDpFU&ss`6$yCMaTGJZ6gV!GV;l5P?rjSNkZ*q!G^uuP zAPZ0$u??O&`r5#jNAJ_4;OT>7|FDP5m~h#J%vv1E3YoKBc@*;G*3R}}S(_7fp-<0V z$of9*5HNK_N=uN3fOaB5hRqQbsu&cG!rE-g3gM{`$s|oCgp-dmZQo^KSjw#WS6906^Rf%jA&ir&h80AVRtcg!uh|>RDft=y zl3^o#9>OV+AfeJO6$gDgPUDZGUeJVAbT@Md_AztOWfK%1S&uZB-7r{nItE$S3iPKxm60%p`aBr!B>KwCPRm6 zuo0otlAp_}*oLKMM(sgUzeEGPvNVUM3@86Fb z&$lI`A?2scPzpvHz$rqOSX<};%|DEDPZIdH zr7!;MdmBKI2Zzznj=HNMgKW&5<#cm@xo0JSkhmyY{2;&ASqc!bBbGBBuiWOJmhR;X zQ~$-}>|RBW`6fP=+A^*bFEDfiWqdM_Xt>H~p4i`7>x^{6&smzavV{rk&ZUsGgQvZq zl`Qhr=V9Yao|s*QX4y-dPpVQ*U=kW%1uCYw!ZYV!gg^|BP`+R;4x)YCIw0U6ulTFQ z=v_Bs6GwwYc-g#}ihpjq!{)iXuiZcIy$_wRT06%JN9_%++gYDq_7%;>MaciiV&nRw z%%8V%99tjz^3rQ7TfpE+2sEaCfiQEQU!^+kgqQs{{M2i@c(l8Z-Tn#ud!> z#zQ0)cz$RiAA9w1(v_E6`W;V$*_>>XyoCdoPzSk&QMk3ooD+-sz3vlkRLxmjN7`nL zWWD$l;rp?^VRmZ!4fEJ0zAnehXD?qZC~c8Yztu9G$2pw;3?>_P<2aRlxigAff6?Yr z$w_6~4I@yGc!RBL^RGdf{@=ivM7gO=tKTSz(*q{@bT9D9)Ksbz)%V5yUicxmppRw5?S5`f8LJ}1xg{N3m$S8_*XL+E3UAKx4kJm^!LTCT2Rv(bV5YK;1L)iza` z8p-A{CGxJZI_r)rhiy7h3tE_J%dE5Iudvbena{C$NOJ52d0Y@m$~3KW48S{oKldFjzKTyhd;pMZWL#<9hY!qXP?U6wu0c5;vn1LO_e$GJ*JVF~m(oOVSVM5l=3_VTN#QK;9lNyf5d?yf%wQ<^8#e>$ZD?x%F#N_s zp5330!l~a4`h?EhkAL=Fp2t48Z1jd{Xwl) z)8+SbE!r+Lx!OU#!0_b}Ygt(@@nqf7D_07-T&YMhm(}?jAtu?iQM2&l&-0`5*Q~fA zOxV2Q=_vBuwZj)qfsawpAx9_Cm9P>5z(-6xJnrXX3DML6u6Q~(FaRV0s%VBmdg)}{ z(y^f?UHAdQt3e@x?w=Lx0UVc{K}seg(LziIehom7o~)vfB6130+fC3MXR~WeSw>#Q z==@7B)X9LTFrcTkIee+9Jx^06u&J?|sn>MaFTXqTJt3uU26`2wrZrMCK(_ra8gGE) zHX=3CDy`5fZ3vr|zw)o?8jFW;<00$>ILn)GWEaM=Bw64fHyD5}i`inyF7R+x99t_q zt%sT+o}ZS7L%rk{*CV3{WRTUK&`+ig3t?1eP?HNNdm7q{fEp^vcw&{smrsdl#QW5N z`V_c1nWc5$)|f#ZqX3*l@CY4NLrEC};2;rz;m&5!()Dl<)+`{;1c||!+zwfPHxF`3 zsO-^5;0Oa5Ku7w~vNIWIV;smT%ZdcV-H2Q!L{!8s(nS`Q5RUSrfvO~w@60ta7SJZ4 zV(BRR71q@tj78N%F!IXCC~PFkm2@@`EB+V+G-s}fJ_M6K=cQ0sw2pY#3|a;)u7d`4 z6hPILJnN=B(#*BcnQL|{xtfZ(x_$ZnyE*3`7P2Zl09-n2a1336o8yWu3PZr^0_#Xr zCN?01X*UEDo4~tv43Ot{`UNfGIv3 zL(jCwq5`n6RMsMap^9FB`}O6qQ{War#jpbEDjjA)1%rusha*8W6ZKpdOqxYYq~(t* zfhXOXiK7-gX(I5z?0#KTz~^@5QVbK^zBAf3-8 zGXV#W0mSQ`UU0b3ONF+%2^H=Rr`KwtoQn_BLzx(hxau>@uki3-_;!G$aI80w9R zS-$TpW^_T20sBGCSqx%t@Ty530>WqD+GLhmCpVT}TQ-9lj>t@k&spuu0|6k|r97Qf z_46T0sjNW(3#2w)zwwX;qc;J#?9&+3-ad>(sS78kyNK8sVoOOA&2GO6w-VvO3{)@? zWl5>dVB|=a6(nN-zC2_oQxaT(8{#4EyN&LcnmZFnE>i0;me(U5s^HUBFc{mlcNAJOe7EPpnyQE ziy_xF31@;cH+g~Ln?4M#{)|0M2=8vvGZFe+W9G+wT+|8>Ll!ScZ=KQw%*o<@M6Rx8 zz?+Uzi{S7V$z*3%`+GP4Tol)H0ZkX{Qt=SQZ3cxe(D4{hKX+yyr2q>zY1>yu^{z0xIzWLA>4g zMv#-HT|Yanu1TZKgu0~;p4|2>*9iFy^5U+uD}zT! zZ3!&=?KgW(NznivZuAiB@Wq%AGFq&_Hhr*1A3YEaKhpx@XYN!JVOAut-xmYNn{^?% zGSAq$+;=Wu=mj9q#1Ov%LR??)wL8Jr?!wSmtkJZ#=7f-Vq%Oplfs|)9@+S84MAaq` zV4T0}=hN?HQ;|3f{@43)XB42J2VF@O3~$W;FQJh%aRI;|CI zixCIH&!^fg-U&834einDAA}G83IcWOLd+DnvdF&-ylc>!YKvXSlYp+73(Ghkaj^c`q;+z6H|_Zf%L-M-73-<5X1u~ z4LApEKs=4s?aj=?J$U)1Ayf%;u|;c;N5l9Z)Hh?!&+EUdQgf0Sirf= z3!u&^E4e4Wtb0ZIezxE$gi+Svi0-sfne?vqB6t7PV3K~ z(~Pr$$E?6sogo-z|9eKp5eiav0t{L~XwXnd%nd&8T$guQmz1)^&ebcuZxSgj9$GFk zODmiiLhjRmi!P{L-~652;xpFbYQ91&tK4@076*u*r>X0q#r3zd<{fh9WAYiwQ+o>! z^xh+2SlGAEaB|n zzYp7B7mrvOO(qqDl9g4I41Qc?N%9(O0Q(WLsY>x z3&_RujT}rAd1hHv1akxSgkBVLKM9yNyBp4L+lz$8$lkRIKYgUayyKMFs3SDh{HTna zpN7yNtuO>fUuj&naH2aaGo8oeoVt#>c%wY(;=CYK-Q1eWZ;p#3$%O6{TwivL~5IlcU@ag;y(txxtHgnJ|N zWoB66^{75(h$48UZAodQ!}KcL->p*JT8MH`TZDs0k)4AX?^3agZU^<>ch?QuDk&28 zYj9@eVo&w?JUnYx00!bX?x@EtxYD{i*Wi0~Ik39T&U;>eNbX`k?^9+90)H8h7mKy8 z^9)NXDR z1*Mlh1dwVw-ZmJs-M|oGLteEk=@p^5hOw_=PCDq&dZBvzCH%w6jY}f6(0(RlqK0D! zxo!Vp%5D0Q*L8rr<}vw{Ad+c4@ool!^1t=*gFQ-Xq80$wQkge6)UzNfD6zhp_Lhx2 zZ*ekR)8ZErc5h~`?bD9Lw9jK_7;TqI5PI|&`}X0NwYHC{*HQ38=u)-ogJ*3GznOME zGi$c6aKS;_!pz#W%sa!(1I<^CSUB^vL0wkPo-%R{mR|ic6DK+f)jjMt)D5mjBRKUm z*LC5wn<)F4(Jdg^OC+B_;f{+!>ER211JA$zc{`-@KJFSyfX=Bm0rU)euD0kq%AD_OFCN3-Jg%Z$L)s^5fHziUW?MsNbf^tGf4 z)KK2Y@^8p37!*bd>G=wICJ#>YjToqgFtkF?SRQo>2lNKQs-A?ok3Eqgg&oa2mP|Wv z+X$QHgCg-^NGv2Q9Gp~#{sUwA{r)R!n~|B7t!;0p>l<#I2#Ismjy;rJb)8O58fLGT$N>@%J)|Iz|pb_q`dvC~J4sU)eu}4oA0a_aHx`$U%eF}Le zOcw9e-cs+Rs>OyLaFYt}_zCDvP-peHp2|OpGMIj8HyCaNc>nEw53G!FP<)J@Ia45V ztCeo|I5`N+u`KxE&WR5lw8wc;`u-s$LPTXdab7vF-vMiJV))pOhnRB_XlyJYz&BC* z;-*RUWnC!FhHQqqt^ZwSAtB$?1h2;Bu@8<~Kr>5g*!`Kqg)FfKtUH0&Rk$r+4A_K- zOLk$30A+@l6Qzz9qT-42pGkOUvv`}-M4n0zq+r?{F>D`|v?rbVaY(X|t2Q_Py<~xK ze!Q1vkt%Q$yZ+0#QF8kH@hj)2`a^53hI<5SaI9GDsI>)eTYRg@Q8eQaM7>ZdC=UcjVSbT0d!_-t9hBBHON_0GTNHMBQ=2vqmmE~Si|?wp;~ z&%prMr?GD+FjNT39F|v63bGrR0q-Ou26e4Cbz4U_72_prsBnEV=J<`2mG?}k19p7+ zS%CK&Zj-LaF)UH<9A7vNu)(*em7e`uBJ74vQ5#kaD4x<9_+x8ZUfEB>oVMOpn--etlC{dR{yc@?~3h|bjg%;Ad@ zPBl&?G!Y~b=TCwKt(QMoa~M|C0MX&{JQOHqz%X2)SuH3+Izag#P2_=wCiC@$@^d2u zDzjflQuW(v*UK8$L5&x+#csR(Df29CR1!(_ykSypevP;S-(UrAB7XO+cxcJV89;ME zGKBr%%h_b&?01cq8vxbwEnC(6K6Gy^sNkT`jtrvWW`!gMx2y}gwl!pVx6GJZ#B={I2e4iqoWpIca z6!$sZAC297OSDsoK>d`IN+k0_CAI+Vy?2sF-3Sstw+Q*I2QNP*r1GHbuz=yAWjbd> zW7Yex@sTG-l*7%KiMr%e03c-`!zqc}cx{Nxqg4(A!Y~9&L&-Uv#{B_S(h z?5+t!h>TJ=D-CY17)Kf$rLL~1Sy*{{h&g?}d#tM(^$wCE{#1cYv&=!%KB6WF38+l#S zU1W|4#AQKZ8f#;BR)(%t5VAvds&&Tt)NdU*NafI@=JIA^Q=~&y!MuKnRKGf;xF*Xx z2Ew9vn5iw?CY=8aVSyxOMoIiy= z)mQ0RhcKneX3JXFO?-yL{|Hwexv!EbI`6LgM;C6`I}e7z0T_)k_u~=dDyH$h9hV3` zL+(wjC3a5Z;Uy|!w@ai)rj~P@|LDn;HgEpFW!*JT9Hc35?!brJG$Y>v?mMH;!o;rE;?P3 zd*k1yl*S$$EU7kU`{D$3dr|FY7Nx7d*NS1gHqci+%?_mo$c z262%OTUjdJ#>6nDW@L(v%SF(VwtoL#U5RIgYi!zjLYn4 z7H-#57}y^=YAacD=x&lYdt{o7XUEF2gCHUmNjaHUl+m#KLMWmjSwjGdECVh{nMVQw z+zwabDs)UReKsMot*9%0ioVrt->@GUIn+OIIYn;R=%??(gbnULsknSw-5?c^7fO~$ zB~p%&{jb-E)k)kYnu-T?T)g}~m&1_!o$S-ZR-&>7CO>;$eccly#Kdt%kDIGh%%J3V zSNSj6_w=80cw}nDH>i)Oh_HK4S`Qa*X7I-f(t$vUtE6m*salj^U0w^b!lMb z>+6g^vlY0kG6ORV50+;oHM=~7pqGkDZ$5{6w`|PCX}6!EU`CaqkDHsN+dbUCIvkqG#hYYg*YvWlZUJ!F8omEh`ISAf|0mwp^`+(SW$9vbH{1^)16|dwTBl_U$9gSd@ z5t}p`QcXKwbYb%s;^tht#5YDxtU|@utFXJuZk^iCIhPUb%lT?(CfDF@>WP@wE!N*g zPaMQmxV6Wma{seGBQNBunDS@++-vs=G#mO&UG0F3lp9PZ`U(MnDqXq+;HZu$6PlLD``s}9&Y z!3EIJ3ot54P+GXQKYSvTH4DNt4FOmI9Tvw#`ckfPor=|WN`=7=O|}~0&9)Q$340h>Rcx$ ziY@4|qCr@1)fP}sEah4{F3xo>mn~G4dO*y@^(lo1=Vsy*<#fT*1R({Xq=w$qhRxIj z9gxQ>{lYA@&{!}L%)v3C5!C`a@&Y)o^u!239A5Y(LT(o)#8L`NlaocQ!0KF5GhgTQG@l3k+!K{_6WPdG=4pHEAc5h@f0g?$2L z#p&6Hozs)Cg`PZV*JdkD&s1dMg?}y-y6MLJPQdBaD$jDm-$7ClYxr84l*JVZhzK1h zlLGYUC_Or+pU%qCc5sJsD$%)pLeP5EoIZ2`8#-TeHMdK(uu`?~R`nsJnnNx%IFTBQ zE36+e=iEYaGQ9v`d9X+cKb`W`BJ<640B1bZ3JqW>f-;oM>e)(3p`=`}%0#JvN*1P4 zs*D>EKZUBUGip3^t`Ci=LrazK&caPeig7FO?$4emX~;z%s4f7z=u&T&TYt8r-aB31 zubJ zxz!MeX$7Nsn} zhCDUU=bHD)F6M@M>WJLcVFp~`cGR67XZOsfJSrn5X}r=s*36!i=-#@- zxSv;4S30383|UiU^`wm6f^&TvJmCMz1ke2Mm|!VkssB3@%mRY(ni`fmqSkof|05t+ z)zkj}6A-Lvb4t|NQ~$pK!L|;k{8J)#3(qcsz>b|73!T>Ho;cvKq?M@x z9zEG49v%KS6HA|VKY#gJ`tsGcz5SLSS+7?UA7sxu1&?J(9S-N|R0MDq!}|6}4X2Th z{Af&qMJ7NF1ON`+Z{MNZJWLQPrV+QS(D^KdCS&8X=G6JFR>U)C>(Rp#G|QZ$iQVuC z>TCN-O^?34)SU}Z{qP+jv#x@vM0|LZLF_51$Kt#RJgvs>ZD0Z_7+l5qz@rowl>=1L za>H!l02W$yXh5N~Z1hiG8SS$+Iv z>Xe;CizQ?zNP&|%#Hu%w0K4X6Ap-KCR+1&A3{@ioJpUU9m?M>#OSam$cdmYU(jjI8(5s|d)hVg}#i45x*fTO{?#TVM6C#z4&@ zKP9I+<619Ub&Tn_Hn?8*tdlZxYm1*nm`~iJ`8Y3N&C2e{v&>Q}1>+TIbiIk7B5e=3 z)CpI|x>hkek-{l6fX-ad*^ZcTL0PIE<&)b1F}%4)1ukpW-aQGsoT4CUV@fQa)ZpkT zDG>iaU107Id-#TT13}w7558GZGD7?ElB$;*&Vt9d1$9pr$N-!wyEP-<3aV$^rNSj{y)Z3TdiSuT|Dm?GI*N60 zee%K~H8A{M&rfNgSB5$gDC@3)*M-j~AHAsxsfo3#&QSiPY5K@8Lb3UJ*RTDmoKJCk z9lKwDeK3>@W_7x8m+RVx(I3jlk2IFuc!P2N(|Xd`pGECH-P7J2`LbBK{YUGu@XdD{ z4{oV(E*Dqvu-MR-6%eN6uAD`j7UbN;gr93ICr3}S5B$_pe10+Ihk|X`L!(O{_W#*+ zE&G~QDt|VWI&@3;cl{J7zzQ=hW*WODoOUQ9F7i*P4`{%Kf+y{^JN>-O#CK%Tz&eQW z^v4QGN4yx<^6h!0`HA}C6+9tCP0~F0r?}>efWcBP76bIrP&X=CnGQ?2?!AIusD)Ch91 zZysl+cIQ?Wl3uTm&fL4e#Tl;>!F1}L6=C$KuEs^|q#jG{f_b-k+NX^x-YFIfwxJ|a zg1;r}Ynz8qAzW!6fdGQGky1==)MZm!zMWf^xT^)`cZm5$ z#ZhBDM(zMN$5wtP&tHCw2*#5kC)rFzHd1*VGKM)SUlz3h=zXVbS=2464T_P5JIBRE z&ri4Kz4R@6+JYR&nfQGoz7N~>{tco?H|#8Ihc(~DA|q$$J{xelHT4{q2}J9|7L%7Q z2>b!a2rUk@;>nzr8ye1}>(&=pcwT+WccDBzcd0znJ>ZLk2=L**^hU9(g%ZsKCX>kWvlAn@<=P| zl+c@k$vn(tiyS^%!{crJaS1*6N`y1!vH!-Om%AlI3=n<;BJX6A%@G_U(Y8-*qZ& zgry}NOvAMlf@5^v8KVT~x`)!Jb7Ws_l`NCBo#8pRN6OFcq<5a=eVBQg{&jd|TvUWw z=;@_(s&uu|Wv|;}E~tNpy8aM$peVCrr&7Nzs8ar2f%;;|udp)0huAM8lfs^e=NBUJ zMk_CP>I*K#3!Lz59X{XpJesv9_3>hE&FgEK@z3vVz_eAmw7W-sah*t{eN&?$Iqg_& zX18W;Yfs(s4|2LC0kYVliRsXGGkkYntdX>VKck_ zb*HXS(8_ZZkhM(ZYPn&Ah%XqVfAH>T^26)k&mkXwEJUm*CPsd)pqIXvFF4l!sp!_} zclIQV`c?cODHwD8(>tZ;{%L8%&uf_VfzlN#vYeNHOQp%@v%aIZdX;1B2NQ)Go^^p_ z)(d8&C%$&=dbZEM``Y9XzFCIae^`!;_xsxQ!_eN#^mY307dKHqslN>mSE@cmbog>2 zwm|IGT0moH$l+AR&Y^UB!mEG&3NUzB2?_LhL$n<1Y^OYKXhomO><5jySiM*JkHIgy zJ3R>>=W;hs;B=pe!*#Gw5XRT@i?h#oQg?mWA%#$=e*NW2BF!qU4KHL&11B)#)mtcx z7|7_pD|Osw_^m$s3fIH&>tpw#pGV_StMO*d@qajB|DGq(&mcNY;K*?%5bY#``WVuT zFbOq7GZEu!&E!ZJ1w=e^GxMg8q!C#%V^JuC3_*yWipD|{F`jxU<{hW_aRaB#dZftP z1X{Fot~45QPVl*Q1m&^N5bwp)WxV)e$|I83A_#mJn>ip@AjG0<+M&`?RH78std$D&a55PtXY`qJuQSYjMGKZ zFBLC@+-718&2b=TN=Qa`EL*ObL?6D*xPx$@C+o;g2n6Xw>b)Tl(iQ=o#o!dwm6adP z`Q9-QE1OTNSE>hcbGKsL4|D6^2Dvrs7h7?l$V|uPP9a~+^Fgsk{+IN{bwpB9IAcha zOE=2Z5*Eds#Bay#e93%X8YOBPf21uqa3P@tm%TP%4A<2cS`!zrxq8hxu9T1|8B3I& zO$47U*c@P0JT5>B7Jj>|sPT?`?K`upw5a=iC!~7IhmrJrAM^GBs+=gy`6M1J$adoyk!(h+GOSh)+JDfYNtA4y2WFz}{s~ z#>8tOi$x@eeRUbdw9+-s(kkB@L~(ja)Vo3wV_1fRKC#xi_%o0BOmUi6xrumLm3rw< zT$x2nx}ObFLtFR9H(7!llK+`_iLS>B7xGvC>!>H??7J1m=#(_9Nt7AG4OH0_TM^K! z#T>x>(>mD3IzhB9?1z~aKfXAPTpV9pxmjG1C~J2lP}K`W=jw`j_9JMM+E&LllNzEA zZ0yQ;O4fBs*7*Xj2=Xvtn9lgdM9OHk7sk8~&^*wU-3(x>Fp1oRI*w(ssiXZKo8yV>W?!qI5bnfaO&81)JYqhrH>iPIZhxLR2 zl?E+vyNoF3ud5RIbq=62Omti3CR&M(>vg%dqGMWJL3GWn*;;iyT}`2Q1)~ z30c578_6piv-O5^+QxzPJ(3L!bHp~BGjmZ@^z8Zb%xWs@4XIxno;7jktcQNWGD;K) zBe3%c0Gt=2jG#98@27g{8R9Auj?wYokl`^%pm`f|5}|fY&GY(xa?Q7(@Cr<%Td+w* z^Vwe<1C4OQGS{Z9lR%hzG^$miwWJFu&-lffIj0*hQNKW_X9%DibW(}9wlJ5pWxtHZ zMW{ZiJ@h-EhiTW}0tVdL_3-VX&Fw>N8vR0728B9?Y&-4^x7(_>&&)w+SsnNHJLcxv zAIf*$spxoG(N2eNb#O2uCUKq1S?!x`kj=Tymu~GnZS9k`?c-Tpi-BEFDmn+|Iz9z< z_PYUxLLIM$yB;%lJ(chJJKXtVxNASFW5>2jp8_1OGp-RghjrbF(#!btT$8rL-Ih|f zj21n_XU)v;9j4$JC*-!O0UmC)2)Do|OX@?|`TuoE2?A3qX zE4tfvp48)7iL!R@HUHgr#jeMvz305}ZMXOR5|zDJP(OD5w)=d)>F>U)!u`<-w=Y!o zh0fFabt?OO;-Lx8dm=0QqJS3SA~hqGXZfI#d6!;JHSaE?tVW!adkw6 zJYwBDGR-p5^&XgRAEvbfw-iPevPU}<#wPTE9=nkqg|Qiy(S^$4I|`t#?9l;zK!rBe zVK+Mbesn{4?9s?@-){zFF*bK~tTTIfc>c~k;n6mhkp=g=Pu}0MeidiPWN@H)%r zggd~60)7dPzzs$@9}Mqh-{oc<-E$v3eop%_a(8@wbYx_N_5EPkC7Jw@icq?4L)$@9 zkgak%Ni_Yp>$63*RToXSXN)^nS7iI~Q?vG^-ee!ZEFVx95Ma&vkx(T8ntuVTd4Ai7&XHTA6S z0qqtMvax^vMgl_r_N;L+L>ice5FmEkI0G8wR2+hfdg|3xB)b@>$9`74e)g#x@^SN= zv0uZjqPc@5A3Xx(mK3O4aek=~B?1eo7heZ`*PjPg^89WTX zY*G>SA=2cLDg)cqd$_0YXq6QZT86cs@Z_mif*L+r`=dYK(Q*q7uq+Px*iYX&;JLzl zj{z*x;RMDwG&BvDf_2s&)DTSa7Mu6(N#D~5o~bbusMlLtl-4dU>#s=&=$*9`0_hXXL*o_ ze<3IKI0>F>UCGF&6O+j=)_A2?YId1Ts*0j#r{k(!r!cL8m55I9M>;V`h!)~@8j{-= z+^}@gplqW6>;5hDB!k)g5{W=Pc z+6EZ!zT$vvnAiZ3f$vVx7k^)5P}X{!Qk}+O*45|kjESEeMZ|M$=*`Y_-)W29dQ(Vo4c%i32A{I*SPGYZT&I?K zk^Rkv>>GpV+J&mx9-yzrZn%)ViogA~0FBci;5ZEt^_94)_@My@F=lziYl`EWeH6lLz_$h9%r*IZhxX6!QrA*pouD5M2dT7!7()yn;MS%8ibEfn%F-oJ8MwRL=l)4?x#apPS2>(YNIUpgY@ zB67iRA(oE1d}I6UQ!fHtHM@GU(hCs$iVDU7%O0#Pwtily@3*wS1?T9H)MqkUr+UOd z7wt8r33-*+w`nKG6+46CcnIPX0r~41HGl=lk`4pvWN@u8@pa-N8h|37coiY|Y;IS^?uWf4C8`T4!8tiA7AtQRHpiO?GweJj|iv8XRy z+l6pt@%|Ifg%+O2aBgaan+Lw=fk11lg9KZ7Bj6z~XHxZ+LiKI)c8AD|DS=;|$&~pf zdYo-#Ae+xp8Mf56!8syhIGg$RYiyf}*J|tE!}7j2XxX{upx%NG=E!xI>~P(%?772_ z%gLWV2^b|bbL`wt=T%Q))$O@7m3PYhPL6K(tGO~=`V~5>Q1{!Jdb3KS+=@d#ccNQ@ za_72Q&{C`Tqpq=^-+dnqoBdeG9SJ?yo=iSHgQqe39pOvcY zuTNz+!}(2-xaiH<0f|`P&Yo1dDD1eQ(6T?Hk*Gp94Zx*+d2zg5ZhGgGSf*ece{+R< z`l;ryYxH-xBK|u&bJDqPhyLn0=2?iwLTq5Gcv)6YfOvUaTdQPwl3qY-fwJj-YgPnv zYiql0L11H7Klpt|9u(D9-!E#q-_p~@97LU9w+rf?63q_knNyw*>Rm8mxzY2Fd9hja?d#Y9tIQ4MaLS9o8LK&shu3NImpqVkx^(seWocanMvUE z-%gM`E|f`}$$zU`LO3Gl8?>x}YOzwJNKShwhs#Iu;(Q%u)vJqFVr~-oc3pzO>$<)&oB_MU zY-#d|lTmterDa~x5{MIOzz4-t@+_Y-0Ru+*aQFb9h-GcEZv8*T2@VGZ9;3Jd)b#_jv|w&(Ou8)*oYkKP$jucpD(NcnQfWb^zK2 zp_%Np)q5KJYII=nyEnnL;7m8BAFDvS2HmF3(TF_nFU`bF>3PIv$5uBNl!lmXDuQ9oDvLOR1yRnUY7@xwGmu@JtNAk5oNB|01TT^rAL zK|SX)VyL&O79#8flAjwfLXRGu5ia$wpo{%bRDv33@beUA86*LWEx2)C7ywyO`%#K1 z#94I-w!eHDbP@VCGH&&r$k8H9iZ+gpk4aHYePc(`b!1Fi06sXN%MyWM7NpUBP+jgY zU0SZ>L!HtdbDdIhqf|O1?D8n$Kqh6}5I)2%j~WgX(RI4|b;CtNT`S`mPoR1y$JD6x zxIG|LzIN1ycoJ?R=k+s?lY>0-6aZol*ap5mgD zw5PBhF>qmkNqU;VJIT5sLy_U}@@RbO=64`X>jMg@-B80%L0-s^1B1LDn=qpSAI8&t zR3R@bC*Dl9Is{AbR0@a%aStI0vgX_1M(fQ3stXBpP+XOY4-)U!MSQl&rS6PYaqFWB zXxRHgRtQ$Rn63Q$s@HNpYu1)$vU#(p&u$AlA-p_B*7Hdg1AQMYgW?r<$Vbman_rA` zb}g-MKa1)cNldpYIDG!ftG-=UD&PZi=ox6k5kvQfvDN(!f?V)M`u}#3dN`%Z%(_En z(h+?zp>VFQCpXD6)e{RrKY3rLaaB-h^4z=kYI)bZY3>Ay#OOY0Q29~Fljq{9w=%|z z6_-2GzoewRu0X5^q;p)Pz4sD#z9WYNdTkyMOd2t|SA8&5_LsT^ZVIH$pQmf(HQMbQ zEY4VbcP&AcC5C2oBV5$oOf(9Q9YXVREfgq819)y6r^Tha`yhlK_ zcP8fSQn(^!?%noz#DXzP`C0*YHig@Bb{&t0X*o}^6balfeeJ=e{bNuq?Aes#rHkBh zECdnXMliSVRZqBg)3wiMa(w&AL`d*-TkPkxRqv?c7V934zM>nC}=lxDni z1nJyufM~n}v0XUBQYqCt55uILbKGjQ)1j>!;P0YNYz3ZNyoum@c^l%w#sWjrs+KPR zkUYY6hoU%C#w*mcAp#0p+~ktM0bJ(sP*{NZyAXZGq@Ss>|FWDru}x7eyVqqK`@D-bNJk_c(}(P6Vl z00A-6rax4NFCO?ZL7&?{e6IN{ll?Ps%TIjcdw-Pl9Y+7?Czs-PcYfSr77550-(KKY zPOn>Qk2Svdw}E>*r7oT$PcCVf`w>H8FgBQdi~W#ST)|3S^w|?PBIDpD=6(d7o_Q~$ z%W{gKW^4ApBB20LtK7~%ss;lr4jNQjrhqv*?49s)*&COk0P5YXN+7}3DN@z}7SqXcEh#niAO#9ooRYM9CPjTP?vx8bft0G-lB!Qaf`OD5OW*{2 zs)04p!k=g^07#T6b*U1q_K2quX-=z(_9P@7B?jUU1G&nASg}xE0zzXEa(^OCh>AoI zAo>SD3m$2Tg?h@SF__@cRm8a%WD-rlU=i*eg9xC)@1F^%pm--Tx{oNtOahF-Y#NJY zWY3U7turzXQq!<(nva=$K#)WVi5-VfAw!Z#nTRdGF&yDh22r8HqH*9d8o10_zix?i z3z7Yio9JK-@jrlt(qOu%OkhhWZV#M@f%B#-m=NH8x1CgR@bqz577ZLlh0P-1ARJ^i z2JWz!Oj?gLLOW&g>xhC>LWw>q>y&>{Dn9QN z1!&)cddFsBP_Rgf)6fc3Kro#h54Av-dNa6OGDI~75l+tWpd|_y0}1pkCL#qeCFC9H zkW#5x3FV|wQYHhy?mK|ssPLh;4Bi(45K43@nISe+_lJl>Xha|$9_B(UW~eBQoA4OREXP&4W7D#RnU;wJ)roy6iT08JnZYy?zs+t$u;l|~)sY{Wn{ zXnC=&rGwfxT#mE(kwCvIA|f)Ym4vuXD$~jbP6t4u845HC{LfHbuWP{DvMe;ZGLs0A zn?sCdB0&2$Z=(QKLIpJzemn~#9#o@ga5|hB-dtYEl2!keRM+BC>ps_bFRWHB0?Od4 z!WWAJW)LgZl}~glzl|5qBmC3|-NNq?$8+5$S$f3Xk)jGc(!xEzeR`y>_9(P>%VsO{Wh?j3^$0&#hM~c)-zJJJ zCsj~DGG~*T$m*#yki;eA2Y$6Qxjs-s*eP|S5E^8x@Bhn383DB3D@Wg5B^EH=L>Bp} z7>JZD!_Nl=S1K_8w+~T@rVLV_mgYH+G{HfGT@V@vl`Ue>lS0U#nEqS&xeeRGK8BDThaA%>(JY|SM;|(lpIWv4qXt0xJU&2u$ z2>?}}8*3|7*;NA&V(>^ZgmGL4X3ROLut)M)&+B^f$-ph$JPRvG%vGnSy85}Ok~E;V ziCX%h8Of%I9AS}1SujJe)i)UhrKnK=17WPcru31*RR{))9l8i(FGf_w)G^~G>M4wP zYNB($F$^0gPB?d)s3nWRh+Og{E*gu}+W}jc-{I=H*~WZOZF&p&3%}O1aYzVPTE$_jw$3$Y#KnO7}$cCxBB<%dT#5C=5E2g07&d2MAHPMg@s39 zCf*KLb<9jh;BSa+kUdervA;kh7T%90$Lc!AxWZ))a*4Z8$kq*B%ZTw9IPnAZ&aa}I zJu~wNm{v4=7BNc-WEB4}{+6(;{27`nS(N~9wSl0Hiv~@h2j!z_*c*yixZ&b>*@F^6 ztsASEGa={+5DF5x#RLH$sUG>U)`;F90hw7aTX}wDhhS0#B71aVwY6x<0CD|8Wu?Kx zn^Y~r)D_JfV}N|7KY~d(TF(uKvx_u#!O(48!68AdI>6($JHqj} z#eWfEpbIsi<)6Z^2)RCeA(*ds46$a0>!M5l#v-a)ORfTdsOyvINWj1qs!yHEn$36I zdRFxg#wflB5(B)(7$1=agE^StwdQncyX3FzI5MP4h(&k_`A-7v8`HJYJ?JROKs~g^}~lG zdf7j&2-XF}n(Ivm!_h`jpuMJY{&+uj>r+0(*qN4i+W~Q+FvO+*jQ1x$XYR}47cN_~ zTK96l*|>ihbN_9Y!g&|8KG&@;K84Ro7*nBd7gf$r3Oqu<(0Y_1MAl0sRiSh)WvG`d z+!0kTEz(=W4n(&K#2!GVQT5TN!eTbyr^tev{8va)o-vmDz0!Ll=7xGw#f_8+1EEhQ zkLprHZivv2atXj?oo{E1wn~3ORP?s}hxS{KkCLFTp|p!rG<#$<C!-toVI6GBcvQd!^Pqn9;LMr*?Gw)82R0}nrUKLiI5_O|p4HyR{! z1>j)R;utXC-B>XIjBS5>Q$g8!AI6LC@KJ($kiUMOAU0AN3o3X>LX)5zKoUw{-tL$Q z&Gf*xWX{y<qCL>jGiH%ymVHr7Ae1Vvo+O zDu6X1NZLQzP$`;RfVp2Cbxn^K;M56-)R6{~f`K|(i8NiuymA>pBn0c1jq<8g0FZX> z+@==reMk+(Jb$U=@@XPs-0fRSQBKWpBuY4dW}3eP2bg5MJhba}N+8+R=XknF41`yn zif|#k-bqmu1_e=KmldG_EG5uEhl`l(e6~~%&S_tq)~BQ?%+|QdL4Y-C zYWly^?UclFa0-hH+VL@pJ^h#4lrGml60sBGUyFI}*ZE>3MqE$7TiJ9yYDcOZD>nVn z-4JYU=nErQ-?Yj}J&1kJ46y2loED?~Dal?A=zRH|f$}a$nr5O@mEYuqS0)w6*(vmw z_wZY499)vQHq5>YYqWUIRf=;IVK&iupHJtTx>jw(p)2>@bB5aZXc>l5RdQs1txpQ+ zuB@NN9Nz0)vH2vaJhMB{o3>HAxR)j}kdQ6Cm5?!CH&G;>o*th6rBu}GJa70}`v5j9 z4FP*~-^P+t%?D$YtAic~qIl6X5O=clwjRVEZ32>XJj>@Q*S}W>(M#Cf$~d3AgxkI1Lz%j@0{aX&A8 zX>i9S*HZpngYqYfcY5KA-BTj;V07HO=Ga)b7M8{2!2Q;iriv1nLJKverLE>$i);6@ zz;>eYMoS>dvcuclV*th?53!h${SPL%=Yf`cYuAFM!pFWR7p{K1y?R-pR$M3W{l|f= zbcIiYud?Plv$;OdARU27PEVIfpI$yTBc6LS)M1I8Y&X{lJBVr^lM^G*xP&L(L7eKq zXTNP)tqMQN-M#6#(`X@23upvcsq)`So0@D(2Zd#wY<|r;)z8=W4DesXgPzYM$t={we2?S@=Q>P3hV$!6XJ6jCB zrJf)ya!+JneCvgXr_SvcBFgO_Q$#pCUz(vJSDk)H6gs~w3y8qw$y`n}XP-)pTXlk8 z%)Wbnsw~yOOb1Y0?G9kjykud|I@=|y_qTSt^e^KPKx%Nb4ku?_2=>=EkQVJZTnba=*hd25sHBlERK>s`g>h@b+B4PED?Fe;E}e-JFY!dl6F4AN$CTZCywoqk8}7eq zuERGC1JTi2>>&c%QdQ$Hk)rg#${`Wpf;U5(D$Xw4YkzW`mb&zZAg+(zQGH2GeFKQ6 zh7ru*CK7NNX75Y67>sBZE!FSfzTiXd2_dPiA(@x8NQ$m0Z}T3>NM{@2`wDX60RpPT zX9D*kN-!8uB7BsbS?6!swN9SYZ^;#LpRDhi$WN8Tb#uF$i}z(Y-M8%W=6na10B(Ls z^(zBlqp}TpF1Q&B4N6XOL#_y8NX8ndmQ2lg-6zx}p!JF-r-e5ah*)C~ZGmBEk0oGm ziWJXl!eeL+oD5z@=>D8i*Z%48%~HI#=%CE?(&diNS2gI zM%SBUmI7dYrv(O}pO|oY3AEVU6Cy;|rWj@a206bYXWY_zLRk6mKyOC&=@~sq!|=xU zl7gz(r@)1_NM6|GVYl*TH85);<*Mi&@JyfJr+n$Pg0Hs87@d?wzg3thc*YMGPI|u^_8V=x0ZcJqt_P)?Jm3&j?>0`&}`RAwa=fbYW*bC?32dFcxA`cSwWWm7P zN!h}i|HPVI{o7leAcxa;D4$Ojc+B@N(W|a`4K+}BBckmH{_I1Anehrj6smnCduto0 zXs^gP=j_k@LDZ|-No6s&j?vrcr_ z8J*^-lE8_xNE}!g%me8L2~K&c%w2b@bf$7;?(rjod^zYZaWiOv3CQ@zI{t4l79vm1 z0|esE-TN*UIbm?+Dg65_z=d2g5~is~dtDPFZ@d0QiI3=FmMSb}b#u46-Dhz4eN-9)^!Yvi6L;_vF*zY_1%UGEO^gVuoA{x(2 zRF!2l4L&*g^Vy(R_7j;|YRO~UkLtLWIW{e-HtD0cQIynE(uxOlH|`9$s1;aTl9GL2mPzWP5+fUM zEa=&JCxI`8d=Ap`fb2gKcW(Uc!=5~)YfIlPXY%-tmH^Lj(pa8R)0uHbZi}Z9!Tw5p zaB;b0amZrQ{YB2_D~azhfE&ZTr#Vv^YoK`;`NC@JAk zTVcM=o}R9W*s{N_1tpHduHvq4tA#_#QlD~3sHHQ}oLSeW**69NH!9P?N~-EO$Tpct z9LvS~n5bsLZBh$zCNMdRX+X$K=O{dOTRg&yu&XxPIXu&SKR|;s<>M8=lEfrIzPL=` z)GSDmA5^r$0+U5_M^1oit`GIK7EpYnGz5;*(;>~6f)%K|t`aF2|CDSr(Y_nJYL)C7 z!z4-Oa;ODMVKa^P00tQ>hU3DS0AggWY%;+phM?FDl?1ZhQ`6iJvLpdU(__{i9N@7g zGH^~~P}(w%Bp8z*DUm^5QJm~!R`zAgp;>Cank62juBN1R@1*x1UT>C=U$T~5nL$Em zvTH7~FI-qRXQZOG)7@v%&)1Tw#JJdIxTHY9Mg}n(MRc|1V#0u_D_jzs*#?72E@Hl} z7%r>YybHC2DD`xCJXy3Q=|CV&VhePVoQyJIa?j@umCfAq-(10ZY9!JN* z9dY4nJ_rYjvejaOKD9uxRavQ3S$C_ziUxVu3{hPx&^Rt&M9B2fg$6?qy@LYnSm=IF zp@D9p)^UMFY>}RBq3vveyl$Z`8DcV9VBA`$oLQ)9Q=~9dXgFJFd0gz(THvW$q}^JC zJ1)|hEijKQ)<+cvzbo<#C^niZ3TQ11UMskgS)vwOdNH;zcDB@Hw%B5g@v9P2Yl*R7 znPPdK{UAAHFV(b{$&SV)VamjAoh)K<5;?lm8&6#FwmdRHlyzPKohsS^xa%X~p|90>ASwl%PERf|PNWMChB{RS(vx7$Thc zW6{UR>PM|rA>P$bY^ql?s~^r*uLTHg3fAnrt4iOlUeT?2ky*1DP_w^QGe3)j9+dT4 zlexB2zf+jR$pq}ry#6vKtPZCbEv`nF`xpS#m2=={ZWto?T8G4cyRiBqD*p<|{uJbD zE9d(%TdA~Dsc4$xlIr@g-`(y(@OKS_& zt1-)@Hq~pi)f>dsYunbtIqP)}z@}~W>y$brp$7T=1{FN}%dNV%*m}qH2IF51=52L4 z@(s$i_13={-Q!TcZESvX^%%V-X?&wrT)p*v{RO>7H(Pq6-F}_pa9y-*lcrm$1^t%vXO+H^pzF@W(lNSzZ5 z$7RCg!KlTS9)Cd28-Niil*C)P32i zrXRS(M-K1g5>9N07H_%2>Foq?W5r7}XWKfp#ZgO$jyWU;ULtBdPAr9qzf2Os*wWfb zG&uv?G5k}u3J-SD&rTyRbDMBK?=9i~KX}~#aP&(3|8Vr4`Y(>&|Api#|GzkTZU3Jf zy}|!CN3Z9~URxq*2*ENXbAD4Y1jwIC7EmGGh-!Xvh8ai3^-+A2b|HIK+@Lze{_Rikg zs{hT=`yV`R$bWJ4rd?+AhUFo${x?T&>5ZGY)z!)jN3T+J6GPJ5*8ZQ4-oXkAWr*SE zrInA|gp8*uw-P)1=coR|(R=&ejemLE>}NTC>G#KGx`2l%+XdVPGJD**d~=P@|8?~K zD0)%5_46-%;@1O#EGfsA6#iN0)BgqLN-zS^nDlDWzhEvTXu|$# zC#nVy}BhRl6~bedyO!WdgNkp4^VJPImzisfZzN;`n`; z6gPnf=Ll&JL1Hc^0B>&0!Gmr-DzME1C2cR{GxX@+5<&Z_LNM%t4 zF_Q&Mu$GM%8;eS}&W;o6`GNGWy`}@psC&q@84RpWuZyE>B4|NY8{4TOATW)<3B#p; zJc!bV7d#|v>1vm}Y_gX43yN6#c``*zFV{)R+NMGL)a{=EX%6W~42x%2rkVea#ra0; z=P@-$gI550Iwx%dZ)Mq~sah!-gnQ}>j_Hfc3@^5py)1zgtw7>cTut}R2zDXMja+Tl zo9Z0SxcXH*J2(8Mv2Ku-aUQ*(Eh!ZHM~qQ2eXQ#)!ZC@52RGf1osab4BezIH4TNO6 zDrHwF#uZI7t(panX{~kl>udsgFv)thrr_ zvafVT>sTtXbX4K;Nco9Yf+4H@1sOIUjNMf64b1bM9v@42Ia+Rv+v^f_ji7t1rJ;v! zR7dEIoKEJ3zqUKiYHCGbEE3Jl6#yjbmoHMd%MyiU27XIDWeV|=XAB>j#(zMA?d;HT z>OZro+TdHV#S2CDiWHH4TQwTgundD(7J1$ONt~$zJ+V;Aii-r~tOhloJ$+jB;n8K; z4e`ggD>D7qOO>2`@%1zv$CYK7YoyTtJ5wM(eLOPkWtyO(T!wtyYVI1N*KljylveSFVBcQ!90&M;p6de}B+_ zN8Dulxy66F?L~W#hPs5r!^57RFN)1sknb7V`)>!&uNxmh6vb3?R0chjw771YMG!)$ zG76`cCsPy-I$kRUAq`3F@G0<4Z9GmEb|tX zLL8U9z@+Iv#$%eAKA|qWj`#u|IwYt0Ws)Bx)yz?R>blQ zXG-Nc8Hmq}?PyD05Dq+tO z%tk-+iTgiM9^mYCPauE^RTe6V$AUQJWv=Ch%kg4Y=4P3?ql{1NtR&Rl=ENLUkSODV z&xRHzI^SMiw=dIttea^x6t22Jm&W8{$@EXC=1Z`pI=Q8iu!)Av@Kz~Ymhpv| z&bs!+hZcTw%XURYO?i9otdf6?nm@?((dUJN|CRU}T!XuxfPN&}($71gZnvC|e0e_Y z$~lGfdYFIhGQux1gY4HJ!7nTb>UIL>UOvyKkPQ19+x$a?xiYEV z)C-e(Bq6E^To=Q_%!SL)rnD;wn`CO(Qp*M=d`g5Z#FT!mkId;P`s_WBxspARl{hS+ zc~nlUPCyHbtzP!ktDXWPBE{z`u+ZEO7WjpstjGPqwJQ;O0tt4bUG~cT#4>Ja#i$hV z1_`#fL9-i8@+9yYA7}I{xlo5wkDarkMn0@}_sk~?|0fv6?3j$fE|9m`bWQQ5~-aSxK$Q$B8uEh)i;gIjF7 zXI=Ns5%7tu%p%cY_Q1x&+da3HOd_%`a8px7QwT(Hb3!-XI%s%q`_YvLr9#XNq2kt9 zSCeN2GkJq}spApvw0v(^_gAWdVpO-N;jufvZ-|9*PqzTucCQ`$9)BoT~IY2f|Hc|G4%163WayE{>mS+tudkww`TSxX3R$t+ZY-r_u+W_A3 zD#CO%@q!lfZ0nyr4c$AP$?T!7=2%pxEKHL6xNk=1`#oG)Zv|&|6HxqEG2?B%+B?v$ zZ1S`%N~ij^U8=(vI_!7s=AhOY?%1GfcMqStBuWftG%J57j^|=jXV|S=bBN#-gCb3PjKB*F^qXXs`O>&%+ZSi(vQwW$yqB? z4?bR%t}(N&8-YX5`F8&f8XoHG{SUV8I;zR|Z}|ANzBX!f;|L|iiAW>l%ZTx+*K1+Rp=5k_fVR(y8joVBJTYu zHRmxLFeH=CN&mzO-x&xf+9!&(C&k{XBfv=tIcD za)DyHVV(Ofx$ld&0Wy;xqw55=X5>p}{6k_^>5d=F0DFGvb*Pk3Q z9-(Y?CoDH7U|pk{8jppO#JJ0S%f%Hh5mD5`a0mquZ}Ao*$o?rYh&*cYmrZ_rAaR>; z`1;!p9z(OeJm3tFWjNV}QTXowJs0LsnppbldM4)^uC7T%& z+<^I$hy*Ty-SR0BB+{RJWEczeX5K})8BLjEOd<+PT?bczXC4ERk?w2M_xQ1~b zz`ubdzC*-3R{ng4B<(72Ugg-i0g>a)$20W&U!I0MCMkH#?`XWQ!dGW#kJzj=ct_UxpPiX;Q*M5GQiQ3vJ)fkN92xL z`rp@z-Vx7oQUUo`FhnTG!_s!Frw!{0zf*FqPM5>tp*A1@NYXl5R9x<+AXnowg|fd< z#MAnZ?8%Tjm!>4Wsyb+aANWPolqmS|%jC)j@7q?6G6;DkvX^vg+P$UhU++aUaRih; z&r_d-=nhA8=GHI5>!QwkdXin4DNWGvA-DZBtNAPKv3G ztXia~P3AF$OAeGNebkHB_ABaUkW)RWh0LU~kEhta8_{Ld?i%fG1-Z6Lt$~W= zCfv9(IP$!Z*$q)fLQKt|%94Bf=5!8tR?av}z5Gylezo}hM8noEfn)AbNBZlXt{1u3 zhMbshJlax>Ujn|+_`MB4e(vanZlp(B7)h;UsJ(oFUjm{4vmYypH}DOV3_r7&B~X5m%Q z((wFU3`PGH- zbE*T7?p&GbFeU@+?G91(s~_Aucy~H?rnU?BFM3214xMZiam^9=+KC{izG- zQ9A?i(!EJBeW&jYWb^dbcnnm1>~*mlIB(cj$J3i1(-*;WJ=gGh5l>&N`i*4izMO^h znzl^cd)56|dd5I`aKEy;r8<{v7%21V(o#2TM+stK8amu>aKrzX-8=jryLT8*f7`ju}Q^Z@z6G7RKG2Z66jQ4Zq^KiD%rz&~JYE2z;j86e16Q-Wgu~cysO}uyNxi zN+>P%tc&EGLhJbRdjIQ;P*^IPT3KRY*nso#QWK%iHKHw~FWCr9LYnVW{dA0C)E z@90;K-RS3l(bY=WYrC6@>%;PaqmsN#wmK8fWa5F*zdSdkVn_8^!&<*@8E4;uFvfU{ zj_Jl!jIe6jrz(XHcKs+~k=U<^nsZ1-Ec6LzxLGq#em%F9&G5OF{Fvxoa&Q09J~3;7{`o=-CTZUxC+g&`>oAS zMsM!`!elQy?~Xx#^w4kJ&x_g*?%!kkbS?*?h3OBtgBfh02f|tC?)AnlJdmUF$kR43 z>V*`0;GfznK8-^7qDjwCCk0`#=bMXx;Xl6<#NR$DAe;at#B?6pi$6gm0WfzxRw-Wd zKoTh>6+{Dh5eyVSVF|>c@vOamft1)8`0FZuxC#Jc?GGY1B$Ipm5P+1dpp3E8=8K{q zMxd$v6?R5WngJSQB~nx2BQmaGOw>tFR|5c+c^rML!#gW1(dI%}dgHTeT(TD{HlT+# zNpij4`&6zBX32h+oEGiEM)LYr2%wKKb`HYRUu)m$ZWt9fbtfg2e_*!sKVQo@moY^3GA z*;10S3BE1#2)aEi8Aic2bhsNh!D@5n%V__+-jn+Q<|kCx1<-XG{>lz~I_>UiFa0qv zxn~53T^zsu2POpgHu1r=%N7c_)2CQqLH6a>*tz01bZkofO@o%6#kL7sv{`#9G8_%T zdL;p;2Csl(-yogaS4y#ST(x)mO$n6(x1xy(&{73Q5J4A|m2oc~$3e$0pj`z8olk(+ z{MXzOrclNrcc!Mi1$_AI&7u&1=8$)7abxUUuqj8{%x+28bMF01P{T|w_=HLdE0PiT zw2OXv{l}|9a(a}tbQxp*wMLIb4mx}k0W6->|C(+akFt5SKalcdGEDF!`%MHTJ=zuB zH^QAAe8anlf;(qS39(RL;geKAM~4F6z? zdwU>vLh73N){@&Fr*T96o@vQ+bXrC+J&P8PmbWB*i$j;ZdckvOwV1a0jVcXCP8Z=d zV) z-xD1@-9s>5N#Q@o$z%r*5+AW#61$mMj|>;6z+JC%gG)KzD~Fv1z-H_A ziUGsUKW7uNxoiw17VmAr-Cs?Z4WoTc#Xmpz3HmdqkDC0D3g*1Z z`=+PWzf$uD6SnrXW3M1v7rmo-%0O1|#i#dCO={8Z=!eBVRlZM7aFqgwn#S{90Zi@5tJ*O3y@TAn$b_a@TlpYaMP3?g++1MWSrbgx%q2{hiI^&f&R6Y+xY_%!BdO1HhZ zBL&O170>6DX~*1O?lRvaP-_PH#H%jGXmxro2H|pkDre1%m za-!p4`r3qh=<0L2wYSp+wXhY(4qv}ZVHF2Di4|vtlkD4jnorjqj$6B58R18&iqBdj z-23+aew+W6T#!Ln3$gP|hZw)zF{}Kn^lc7&)qqO__ZT8~mNO;rj(y2T4WCUu4?H{F zZ2IL>MPb+KT%cY1r=u?H#~lU}noR~SZI2r+IE(-E6X^+92;cpsMCQhq^`4m!^HZ^r zkt_6*U&{Vt^!`|X{>x9`@57zV?;jU#<(ZglZ++kT_;=ssC=LW%q`>AQ=rKP86~Xv8 zr53pqxP!H4%7%@rXBvM~dTp9qe9K}&9Fqji5V9tE@#}MEuF?8TmRBaeP9-tpV9AO? z*51wu?jQOh74nR4&ep@#D@damcsBK1j+w$>1I^UI?_7cL{A@%1-iMJ&S*~K`%LVSx zt+%-bP}RmV?Ygqv*=n7B4Mi6@Yb$ld+HG@Z3&KnM-orKK2OEo{b6c0`x>8b##gVU6 z-qDQ;R^DFL;i#U2WU*YEbAzF+O68YEGgixJuc%9PM+(}S=uVvyt2Cb=Dc_8WSLLeJ z9gim(D$TT1TM8+C{!1OEQ|N%Q8+DOtm7yh3O7vJU_vNzjDL>y#&pMmtlJKCZdd382 z^;{i8%YUU#se(pSf}H&7biJh~037;y?FJS4sk0p%YG7ss5B;!I2)>m!)UXeL>nbqh z|A=Xz$Euaq3vM;(U9lMzk>({Ui=WA!94eWx+kg9q)6m6n8g+6KR{I`=K5=+mVDZ%Hzm49o8Ta4^Vb4z|@cn$| zm}mcU_g?vLS}HyLgmSX`{U8tDz1dv+BxvGE`{|M2IM+Ye)RH=Yp)m;Ufau=nTt-svs5 z3;4viEgK>i?_F~=rD({VqfPE)M`G`M{CTE;TmQ0xCZKn8uNev!;S$o`ru=R2;q<}w zle^v5t{c#(Ol^L2B{>(=0_RT}@;(fF0Gd;zy$23M(Lw37i zF_Fi@6!XdXjz|+l%lZXP5bpc(PrOQokO&>~TRjCTYYM#yp~GCUBSO6lT|o^TPZo?R z;!H=p^YlcES&&fl+1q9lnwhC85Rv548+_+XlK}!jtY;u4>?J=BtG&*+g?QVnB|pdV z_bzx+da59P9cF&NUdf$0(Nax|C9=kZ#pd*le~;u737$fhrPc$(SQx;CgtY+x+Tw^| zf1_-lS4o}mBo(p$$-VSLo2f#@&H!QCQWfFAPbq5V1vJk3*>R59%44dY5=2h>fl&Ij z;;Y$>Ym}7(3TjJKV0qy>cU}W>KNo&&hubKVs0(~p9{H8?yBa^-QjcX;9Rnb`Tkmh} zrV*kB)tLtQK6ie{Q4q1o1hM5-BSST_C=dFm*!BsE&_qy$?fPAgHQ7k{kXgmdy>lq# zNo%axwSolSWbTgnbmgaS_?Np|7NpMKJ1Le_bR&BdaikSeR`50LM%5@ni#Ao_4>VWB zHX_5Nrg&b^!oIl@G*U4XRbQ@*wVSg4RCHpUKTu*>lw@CNaKExm+betG%}uE{`1rk} z?fupsyN!N=*Xo`M`qi)Khgm(;@d}BElV<9=kP#qf@pB|U*dQt$eS6`@gPg@9DsRZm zy02gICqCR!*ApnSxO18)=sqxtvBX2sPd;b)cii#e{;YQ*88ICv}WG1=N0% zr0IC4eM+7MyZ)HlI7;_f;piGh_}$77(zEa0i_Iq*FRPrDO8wp&R4PddQZZSbQY8^~ z8LscL6Zq=vyv?|t$@G&iS`cuO5{JHl$Ouz*m8(W&pYJV_kJ1%TCE{f?#)b+Vl0yHe@pEs(2Bb|s!>2%}Uk|V_!qv~Wlg_oz&dMszJOf+< zN7yTQ^1Hh37P^jz=}f%)s#;s%oIB6>!cKX#yS7(}ukZO#EDBdejjuYn`{II&fHv$` zqvpEDs@3H(*!Z-JD}xhP%)JZ%xq$D@P36MJh=E zdH1Bvk#LM&VLw3hQpDJc$kj_c!5k2$`VSX#U6el945kgFT_tC5>Pq{N6}=#?*>UwiMVG- zS~Y|h7l73xC5X62D_XXLptdoOqb^*>hD3n|Zmi-K$@08ds8JfB+df=pwSdpVjw3&( zIJ_4$iS+3A;hWE3H=wdrQz6uXIEQEcz>G}lh7hxVQAbVX03{Job}dbB7=XN&x82or z3-QQP}#>rQHx3UlT{5CB~-amDZ&gn}=uP#o9o9NvB{Id^!A3_L@ksi6; zLQ4fE8~}{cY0+Ru!&kxFc`%k2=aTr&@H>9mkRip#WoU<2r%3SFqJnp6I-*g27a#*D zia9M(SAz3}qCd#UwQ;QgOG%9L4h~$nb#PyLePR8%*Ab~v&OZum$KgQJ@{t=B!5xZ6 zu6;kb_Qaq~7kf+F{7}OYeh?UKIHcNmNDdox@qP5!WZh4rG3Uk62q6425fGurME4{K zi-ezd22hKhq&b4@z(y7hV%)Mjjm5V6oB{^>6TQ>2};vK+&*Jjas*>VDp5!DoA6!t=^ zO7<9)KeGj2L=&zYL0AjIx~M<^2yhABzDU#|Iyc5aSG2(J+`yL%^*e|bOU%k9rNgIF zZ&PzushDwBm@j||VIrTXp!;V9t^nB)i-?a3|C-BS?hYOZ4)!HI4?YbIXXS7=D?!Mx zaFU!o6LW}L5R*_?G;ahs?<6z!B3aIX2x>8D5lo~k1TZ7!W7YQ!nzt2iWQ{cV? zK4CoEpMgrlp@Nt&E~&d6fpVbykH5>^#ZQNYGxJjk1<-@Q6(Z{R9QQh+teG$s8;~39 z8c^UT0kk>!U+F8j2>Rhm3@OM%B*9=}$}5`%_POVyF>oataLOjXhT2HO^92urT2qaX#m2X-SsH7NLi5?W z*HLd)VQja0CwDMtEyp6W#oT~*n*o?pP%-#_6?d%!TEM1K2LlMxVE$YZGzoBE!Gy8M zbWAPYrZNx@Ie~_sHUMLpm$O;*)0PFMc!<<03?#!1aBU6OL0zCtpOvFA^-tUFafcg_ z1i2w^n?D%7SiFYJ4r4`l;>L{fl3hwY+w(7gAb*5nHA$-0)a zn4zwY-s3?476C&NB#WM&hK21Rok$~H(@?)=WtY8_*<*LFr*);qVz%dK47EwPGaTr3 z%Ib}`?rpHS=BAE0K6}9SETBZ|9t$#zUaaovB3Fpeh}3=c{ndxQ>TsOQS1%doJTMEm_@}|Iu|V zaCxP8cmqdbkcNdd3=CE=2C_+m4ct$M=5sKHYaTt;gBf0i2bj(=g#>%^CbWBx?%~^R zY6Qn8up6Sq3D1aK5v;5i1ISlv{HccM&wfqX!~%fOn1ydCrXiDTa^9|Fy$V2|azh_g z!`$+1OQQ_~gqvj)q!Q-lMrPqxDsm|X{c+)H=MA_#EA(P&TrQR%Pass&LXKM7`+h(d zABPI|5DImScNT6bO@JQvcs-{O0;FP<|Ma`jwDf5^YAFpE_X9mEz{kD<7<^?hqr8oP zEz}46W6*nJ(GR)jg7nd^QWz(jp4x?*WsK20Y?Cruh+FQeoz19S5YXp^b2f1eg$%=$ zo*T=}7G)ZHcAd58)OzyjJl_(v^h~Ymao%7im9seI^*Mwdnii7K| zBGU+0**w7E#kNpV~Tt2O=lK z7xRW!k$@X&)D6}kQ~Xs5wrdW7VL^4c+xIu*(xQ4zR5`SAqk>4%SSn+3x(WDTbkAHG zeHV82uZMkds{MQq;@xdscfcXs*Khlr!`}cG7pA@Y5ro-u`?%g)5Cp(YGA)&+W6h1e z9z)!)BYH5PMTJD3XNO^3Ch|;2p&uapL44v4Z{uXk<+?ar*}IhV37mB+DR+NH(}(j@N~7mGW&^6u#8n63U_t@Saf{Ec zO2Vfmk;gm6wzB9~=%~n-sHa9)Q_kaK_h*u4{PjDD#`De>=Gv!FF?qfa{++K8Q9_H@>UMmD;r(siTX zS&aWW5jy0TdK{XLfEthAt-NEx`Q{p1?|)z-&Xw$@PItTeWZ!{4J^GKAt{=e3oFVsb zydW$40t+U!iU6@l?h=g1MR;off9z(3{dG+)yX*NMcK6eL@J2Z@oPqMgKAgQ*X&?(I zq2UI6fF}lSPN{3~MOnpO-F#8`a|;Yrqd(PebFm+N&%-+|31DzFd!`U750|pA6$yqY zlh1%P8GfLKTV(-P*8>Whj0=>5;PEV^g2PgOc2g3!+r=~NIzgi$y0j+B{-);C%G=Z9 zsB6{*#zAmZ{?cfYmG*D27M(MvzJzmlZ^=Zdy+R`yv6I?&qPz9}Huz(>@-Fv6bi-A| z!WRB`Ar;SR>jdcjH0j#o-;F#Q`|w37?rs)6;INLNb;-Fr=7)<#uVY;J_yYwfk%#u@v_a&-~-x@RkO1kGJ!toG{~lwvfe zHiEETdJ0UA&T?8swez-@KA;c#$py1NgOZ=Om9wU9uD`V@K)kdxec;P*IX&=z7BAq6MZY36^c~TT;=T>^c??%JUzO`Q+96Q^i z^D1kRki&H3-FTs{* z?W+8}o&yrs6>h?&`y|B}numwpq++fNxi^NBZYd2unJ(#AU3k~44@|Eiyc5Q=jm$I;gS1AY-`_kP)!x&+xPI}1S zZ;na?$VMozUz~6_-O$>~cn}5=Tnr_;tXlOSRw6$x=LaeenLf@#oN@ur_y970LwA$H z;WQIfEOZxRA&>O^9s#bi9~BLp#k@hC!o%aRKVtO2O*+5_faakwKx$fg`o6d@F2H-} z{{XxKx&HuO}uq z{_sGt{Z=j1PGf;u9=iwXe6=A1*>`ibZn52@7R=v zHc!DLTD6YB5rBqo%|)lKzbKCpyWrmI4z3T_P+Jvx&4yKEobISyR(G9Ou%ADR7A}nu z-eKeeZ_kcYQgujkgTinM)F4i5nHiFmXtp~tmzxS=#JK)0C_%ZS4AI!dD|qJ`g7CQ7 z4yAXepivDFGrYGgbMHyw9OC?~k_Q!eQ=%4u5g3)8AD`2%86IAKGAXS7(A-8y{q)c# z4xQ&xkP2ay(G$+H&{%87aQY*Rs>*F{gtzn z$9^g_$M;by4ICcV=y%QZG`f`rxDg; zkY?Mi{)4}_%l=WkZ;K9Mk8VsTm1?|WI;HJjN&&bArH`O#UyF|)Hi@brwd?)YZbQep z?z4}KF&BV?F=jNWDFs>$7eYOU=#W$6t6{Jwngr z$b%}_m!1OZSS#sA{(KeB`vU*`$nr0Id4b<2Vg{<8imS?F#s2*B{SDRSey6-)$_DaW zZ$FM5&7YtrV zL(iQ#y;1Jmg!=IJDC*``MBv|DUwW>K{oxy1xRCSy_G=~cF!DV6J&n zla!5zM}lK?ZzT7g#u_g8DP5GfkGoZe1i19KK*t*yD8LjMl}$p<92lMB-IK1%!9ma{ zZdgkt9YptKM;Z~vqF*qKbVMkSh)9^gIl+`%Hc3nWp7r-j2eQyOd48R5a1|OAtt+!3 z$h$Ho9ZJ6zg7f6pv>1iWbRCwv^2RZW_{Kz2k#~vDlaD(;B9lhViq-2%HOHRaukseI zbj1@o^VVxu1wb*v)uySC6(r7V0ys=Qb(AzF8iE8Q739-(&ZYCeqK=z)cH!b@C$P-3 z3_WHoWx{k+DrY*)MlCatk0~oVsHkkH(Iu{2#>5_J9XY)%bXs$9%o|JB`dIY|=|C70 zEJ2%E{I<$^Aw_vHkOEhn7)9+^FUl{IZ+u+dBP?rZeZhB{$9A0ahOcbXRAP-@uU#bs zygjFYUCN+G{q*FMeT#B#YOT#t;SuD=B^|t|$ooXJPG?gas-1NEk+GBrU_M}Owgu>- zjya1>Ec%=uz&hyO?yf>?&;@e|xngUJm(zU-f|lC`7G+Nz(_Aa?;HrA`Qj^5FEMGH$ zg1nGu1&}mrZuolZUY%6f$!oUe-r2NfJS&kulB%|~uEb*oCGm#`5Rz*QD#dsoHx?zr z`YSe`8Z9UCJlG@vB~~{0r?rx&7e5&A3>G zQTpyP-w5fY&!Fv!v5j5{cW1lBe)6Y3Xn8r|?$+~4o}(V!xa>VRe`AezCO4b~^W%AJ zJR)V&6u0;wgpHv@t6|7hacyUnT~Gz%KWhCZWPxqPfqJQ51Fc@q`44?hOMSC^6kJR; zJvfhYk6c2{g{sOll`tpr+4Klz#f5-GoRJJopyy;o#7Dm;QLjudrThBs4q>Dn!XAm3 zv9G`@i8&QJDM_u3l2U6sq_|_P$;99;2!1>MSnuxky3#Vg~gdZcGM7QW3lm0iBThe6w^I zT3az%NtIxc@CLM2IWBX<)ynYIv>?yZ202ck1Zwv$`4Qx)H2H%88DXTy8IIp6nQ^|! z#TN>e3(vhB75s_7e>apiKejccYh%9Br`>IKyI!Pu1yKlT{&1Y+xF_J}$XD$|0p5G% z!pa$lDuJVwrp{WARi~ZG?Af|2yoz$Qz)8y&_$I>zxZn=s3t6*%x5}a0f=Xe~T?P$r z-52H$WEtLum2#hf&gz`3{5)@8b3qXnrgN_UJSZeRMJzCS zDrq@*Dx6>n{eaHTjkek zea?rpN*rC@>OPW)Xxu!LaBFDgPj4wCkODpM%hr)x5Z%RxfaA*YeUL!X(}+bYf)tR) z&jxB=zQQU|hS%kt>z|&<_%`9lF}u#-L?zBed}j$roGfwz>7>R1i`p!)5+YVq@9^Q8 z#H`F?Y>_<|YVi@O@GZXDq;JWu_dh{pwH4gj3c4skNZlmfZZ&G zqo(4=HsaH1aj7)K3thdXUy?8`$zZK0kK64a2$fP1(*C;Nv>AcfJc%PfxdVxAlo%(o zgdeEAJKS3_#zC+S9kBdwE7zWWQ=y_L=s@zulA@`P7~)Mbz=-2ox*yUJiX>1J1dxD4 z5=7KUUINAt{ZJ|@LqoWc)c|73*$s*kQOtv!gzyyChoq$wL`}Q^tFjbRCs39oakn`s z`}tnHwta6tM|7M8?-qn1g@7A<`!+|DldSh~)m!hQd+c0!EaZhSbc7;4ZWkfmaR9(= zCUUolp+LZc4Jo6F26e&Z*>NTis5&j4Mir9>#O(;sI#=^R8*ixU2Yw7^Tso!AF}dmp$cOqU5nm8v}fC7*$6&m)Bw zHYJ~whRkn>aEV9fD+5e4}afD!LOP5A>t zZSqA;r(>4~pvcL@ow9f~2w3cg?gpUlbXqSV*BZ>F31*K?w6#bLU1UVIv9T%CRxQ$=EYejiv{EfTHdm3IM<%~22dEs?lXD&qPrO~n`Vz~!&I#PgJkFu<(9 zi7Z!k%CV&U_NBe$Fx`A8vIAmv*H`w(Gn2o{xZ7@3enk%dWyAXIm=P?pAoXX0)Z#a;JgrE!DnB zwXqfx&tJ~wv_0Gs7kr%kLjkg9ZO@*HIu$j@9&+8@iaOqnI<*QI-d0!}Q@@8?kB_d$ zFV-Ezz_e`Z-JR-rO&bjS>)aLUm2HJp4H^ui8+7LD&9|}kQ+32`?$YcAr?&b=VuQUu z+S0vVeY^3Lf1UnRoqb!w3AHBwwT3flO~kb(WhqWGX}d|)9TV187r0%2!M52}tvLWw z@BX-45ewZNS^GCq7;+tsWMmm$1a7#3MUqevLWUjC>e_W#feajlKp_U)47YVNss%{` zd^hu4x-#qB#oMBQ1_MPw8>k4atq}ulo=njoBpo%abS|iUD71G!`!IKBTMxn95QmCu zk#}I7kvf;3shs;^>B??}4!YCHX=@46h{#NO?ixzMj*#d|Mi_2%xOWLhY>2uNI*&7j zy{zN?y2Mfw5dyfpi}_-RO!2mIaaZD=I0%q1A}mks5Y4E)IWI9?cdXOX;C?M?>k@2i zL^4^TODIMG$$+%}677!$5rm`<9#MU}7 zkTIG8Q0G)OK7V(Y!HsUa0_x~Bs0T^yX`7~2yOL2%kF_Bs&opLCTw^>*CS&*isdl-LuKrm!SP(>~)mCdKhWfkJGGUUssk$Fj%8vehrZpXm?#JVN_ zjpt@(NYCYt zA!gsre|YZXYB^++PeCN#sX|?TzvbLj`)Oj z#^pPhT69~$5GsX5L2tuIgYQC&vi%^FOEjx^C8yYHm z95I%mcvr;pb~CZwwp#7z(R5|k%MvX`^o&9?3Az#5ro~*i&i4ssFTSr}&Xgm2y8uBM zu~{JUe%6Ujdc*Q44DWKEFw_-FyXmiswmvy^dpdEks6^c-OY7OavI7A+mMToEn+P=$ z)2-D;#5^iO2=ic|Hy|bjLd)e^H|wVT#&7OFpnj2`DP7i@z`F)3shl~Z-tQx#^?0I- zH#aNQ?#=s;v)xw58{XIukxg9+{J)iwacl`jP3ooVNx{J2OWi~TDpOe5{+0N|Yxu_3 zzrg7Nm-sJ&tX&BJ^@oMBp1P%6f4p4385?$pS$V1*z|LKRzQb z@G#|Q(n56gu_ zOg%ML>|D`vVX2d%N+QRb#FvZlao+CP1FLr^$j$10I^y*FU2o(#pX!II)RR#o#|=-- zB_bR&7A;C0T|>`TcsoUw#@QbuANM4CPL>K2acb`LpMO+c8Z*cBCt?QtfIDsna*IzR zqD(JBs3i&dlS3Xkq-U%!^B z#4s0NSpv!@j$&yp$;v_u!8U-VZ!N5&*|ewLrPc3MiWu8F5z(}<*m=X4DZNj?c%7}; z^XukEO`(mS?fZuRBG)_lx0h~w8QN5k$B%x4p2XkW`1*0*&?64?{+C-qh8h>gByZdp zyCWn0TXRHsOd8)KSby^Bu+a)>-{_uijEi@^n(bV?ucgcTZB*ed@7Eg`U88IKAhv+= zz^II<0Ni}H`>l=4>W@;K@O-#SgoMQ>3xs4S&Gfk>i3RsO-(jG5B+)=mZ02@(8rbZe z=>K}~Y-45E^~u^zc>DYC1+k|u-v3aLUq=f;9vD1dxOV?w!j)@FTkkcrZ$0{XW&dqu z@z|(ahKy|XJ&9j**i`-(UhOH-M;f7%Tb!Y*W4|&vgo7`5MXu=Dj68nIDE^VO&h?fr zO9D0MC8+GglP>r(7jJT<-{OYK^Xyc?+1r6b5TfRfrxCilL^woZe(cw1_Wnb%@AEEm zw$}Ue4()u*J9BgA>)0dC?@xDwP5%7;^(EoY7rPn`T!QdpI+y}C+67&uqkipWQU2DS zfgL4K#k2F!5f?pz>U4LtCi^iN{lw3{F7m2 znbJ~xhH(7gXf`&M$gFMqDQ31dXBB;6^7I=32L}$}6DMN4{x(S5`E5U)_&e*e7{v9? zAGiHUzw2=aaYWQYqN1v`KgK}BOY+U&Moy)w1fakCJ9UtF7gw zufI{&D~xm+AugsOmmI?px{s> zPrNgpzW-QCKfhal52WCzgB~9s1WY+gg_QIJp4-14eZ4 z5>Gj0HYy#g>F;cin&(?Vq(EPUXzcg*M{d67w71pWX?hL^PPF#X-zXj3_p%FsJU&oY zrFBs8h+P}*vvXoo(s;9Pj`R~>J)N7`VZldtw?C=4-f4b??I^_}(98;Jnhy2qNznY; z;PT>^>z3QsWO!f`28wO|0@k97#m6CElPXUnXP?&=3N6zrKPbo3bilsD|E>I8qeX4? zU-Ezl_+1pLqGA$-Id|!+dBx`!>3)njv%t3Z9wUK22h8+OpXfJGoY&l=+jrd211u6P zA?-Hv-??z{VAx#fArN>H{ph$w(W$p`3Ijg1nkT%@UZ#okr&39jBqbgj(%f+Z5J(xUOK@YjY|dTT_|rFFyBX&+clzIAMBT$Upzcd#$%#*c!i) zBEF--8aK*s$u)gVczxu9vIqI$Bal&wx>AI{CE{kO(@lS=a#!v77E5pDD^BDS+EQ_Q z`p>~0ZNkF44~#n8^#f#SL8BE1<#O!Bw4Roj#Bf9?KPGdIm3!o~wc-0G?mMqW11?1TwHTo-+I7g>{$uzOS-Z`r?s>=~btu$DuVC&tr zdWg>XAo&XVKIHO+2Yy*MjBIW94Bp={d>0-ux_ls_`0=PybECE)=cDdL(a=9>tW;1eH66s7XnKZkZAFf*lz zzx(1JlAz(JsM=?7>Q=HvsCcYI@(_n|F^L>rk3-7%CVJtJO4K0zfy7x{++T6D`E2qI zA@V*ke3}qlQiO9)rBn$wwScIv1>*e?0ZXD#u&kO*U$wPn&F+A(^GMlY4n<7stVWIVU zkR$?BiF-Ri&ScS3YG^R~vP*F@(ICV(b|QUQ8KVs#C(5!(l;lJ%g?1E7RY6XbWgh_e za!&+eXs9qeiW5i!#Tt5vW?F0iA3u*X&vn>ZfOG?R6z|Ul-KPzk_J731{~1EZu-T?qxdphF&=2>E}S%u z3FXHY&upeYWQVNOCuxMm#-9(Ca4XeT@wv#C}5O6ndOw4%;uA@ zWe>=a0Y8!YQ6L733M0XT$tV#VoV$hMJR`@0k(Nb-de4Ep0F<$!zMEE@N-nr(3Y46~nE{OERBB>eKo{I%;o264NW!L1(vI#&+Yj#?B z@)){mRJCeq3+;9{FjqgLm%1opjYSnif^bIR5lTiV6K>yt@}L86Ic~`z^xRB($%DCyn`ZUzEh{=R zDjM-g51Co)(n}?M5t^>D{1WtTUHXs<{YiPPv|cqul235n{}#GYE`xr;HixZ>z9{Cu zpbvVJxUL9zn1JFo5grU!C>bSyg+()rtR_qLB-UT`1VZP*E0Ps|M=Fe@(BW;(b@Z%i zeC38tzKBgiXhy?NmzYbo=;Qv44$+Bjnc1>y*+&ej^8FJFE6N&3A)k;i?$AdN1+Ilb zSw_KPX$UL}p;`fO8SE9`rh^idMYzj%4-Y#)fW7jE@sUFgqP)(N4n;HTl1Odj z3g9%YGv8IaoN7ciAl|g9D`RIu3NrJ_S!QNXN=5sC9_CN;Z46+M^M ze&T$4DTxLfjMTHk3`H`oy(g>bo*TcE&nw-N;FEed0JO>~8y(DE@Nbmm!RZ(Z1;;e* zlkBAoHoBeYys*Ooq5Y6sKHexYP(g;Isz;1oM+aq4Qq?rd-y8aWWW<+2ONrEq8-o>g zNfiNQj`s#-W_=5O_O7|~+S&OWn&(YfJ8ORZQU@xg*drmZa|w2??N7-C3PyA^uM@z>!_$6H;nU6FaZn<2+}wpf;0#y&Crbl2$DLaNXXEw zLpKcFFi5AQv<}@!Ns5Akl!1kXe0P4kXLrx;Klk5z&$;Ku`@GNdd2;bsrM{KZmh}0) z#m(6Nw!2cK2iBB&OSbDe43I-g{o^jZk59Tuq9KOTk7keiorCfkl55I~28zRwlqv5M z+vmM~184EQ*-{VO5kS)f@`_a1b`j#N7ums1%OG6zmm^PwF2yuI{;2P1zco_+%d^wX z6prA*^}ga0rp8-b-D#BP%$ey$xH8C0>FES=;M|}Wqg?BYd72T=@E6ktCvnQHV zCUDd!#*ulkaZs(h5BsW5g*%gx7HPjRkTvhusGn0r%8dveio*kj>(qwG+#p-z=qCNu z+V%`luj)<#x3FOirNJ~potp9pHh<8)xQ}b9E{8H8K7*KI&9%y{k#VR7B@Rh{nd=YHr$H!=h%< zN3Kd!9Ufz;q^4Hx=kw#0W9u`1hN@8d z#Dl+y(i$C%62&IE4(E1)^8Q=x2%UcM@bCrb>vRQi?0(~fckzovLh4g`B$5J2R-zpc z8;zb{e2k;;vCWWAf~96CW8wHo-G$?6|LXo1oZ=YwlY=Gw_$MwBtL0{dbr3hBYNnm}Han7v!H#f}YH z>NuVB5}2w;b*}Q-SW^n6@Vttm>&}#VZaK@ytFoCvdbRO$Xz#d}?ib}H-^PH~#FQsu zSY=>nU~3?GBm+fFszGv5022xFPjqu;zZr0 zH~q&ORdkMWBv>c~_JAFt-BWEualS@UHl(;iSD#m7mZJ1`s!yKphA);9&FG9g9@*m^ z$2Whdn0FdJK0hCrcv}7wWGj;)&Drw z>`RW$>0K9MULWamRcQ^rA-Ak7KO0L!-+L-_7*9%cZ(%pqg1eJacMk)F@Z(*phXOwb z@`+LEN0YrgeSXM~Yp53kPd`Q`9KhojlIK1v9Bh~i26U?;?qjN>x2rvIPR1kE(l|JQ z^Qf3obL%7hBTm}2xw|xk8m)un(v$h_+4j!U2wd9dD9b)s{EHuFd*DaQ=jYxV=U=6) zU;MPITSq!dqw60?L1E*~)X=*&2b3BlXCwiBL^zrRYg3F^B(AREKYS3{{eqaBc#Sj) zo?9$g@_-Ir{d_;hSY1Z)vUX>U{RbATg7kPcGFZ;^(AEF^8w5oipm2AYr(f((y!GAIVYG`VY|mlbI6AkpOT3T0mDMt+Uc;K`roa3l` zCR)m4L(9Le9Lpva`GrMZrgpwuE7_OU>K1!RB5RKNbgi`QME0!)n}H;`hHmOw<@MPg zxdU)T52Y~Hx?YHQ_XkTQpLDJp0_hAQVN7pOAtHK-v_)=W>ut$5%e1Rb7dCD+rEn=d zoax?ro_kMpe>0gQYj5_8!MSnVGMiPjEK8Dat(i7)fv#4_`5~%r=|$x*a3exztwneA z65ro*l=81${dQqL)pOyezPmGARa?J9$QxvY0kM`29OJ(Cs!ubNNu|~-DbjntIWTzB zap%KkU%c3F`)|MH2b`+YpX25Z%ENwiG2)5&XkZB5Vts>7{o!OQi#Dr*-yH{T{dQCD z&-MupaYDx6((vCqLUF{9h+ll{f^iP~>@tm2xhAKw_z@8QoZe-DnyOq54~y=L(~o5S zxfF%m{20f6BdMvzA=5yjz&M;l%D%SU zxf+#m{51EA`$5vbrb$Dvva(dO*p>OJR|7woSwCoEuk9^gi;du9y}oRc;59^Bq*Z+T zsCl#D$=^k@2Tu-F!!1V=>S-h^k{L!Rw3oS+S|gwdMs0#oQ!x};{+7ir5~5CDpWrn@ z4Wx$5#Ap0oobxl?;26ujZ}(M<8eVLjztNh!XLA-&Y&he1D34tLE)s2CzPd6!*`nEb zSUu~@U`;4_{3j)FW5=zb!&=LBmKG&+r@((xj;ZO2Tm8n;6CBe7qATLjrY;!VWc2fL z^zQnrLkd@9Vg5$u&AC~Fh7Eh`?bZ|@pRN2d8l-Lc<>usr!m_kpvFaPsy3r{?p|2l2 z-p~*Er~)Cn*XKQAuskX{Q7wC{l))?a<=Lh5vnMq(V&>IE={chZoTh(+^*T1wBI-OL z-j-kU2%q<#aO<+EGoqa{v5YG6Xnm+c_ItYJ*T>AqXHWKKtKT~K9m&_O-Yyyd?s$Z4 z_a*+jYI;tw6uyZ`%mnf9cE=b}@C^R*!#wqZ5EW$-GJ`;OC+&6=BP;>RCy$Y^%hCF`z*@y7%%F|jf68}ps=a3dCU{My1ms@ztxxS_X5L)GLkTubq zB)Fm$iJ9R{9mc7mQi`Dr zpq<)uy{Kzxl)@DBot;?4c?Y@~r7Dp_5)G)BnZ~6%n)fNXSD!W(gt_VT+gjgzsO$G}gwg3IjgHN}I*x3KW;VF;yNS9Wa& zPQujbPxe6QR57s7l%qp-Dx7P@&Fq@Wl-dRG(-MYd^Cdq%)6a$C73bH!*QMa<6D?V~ ztE=_sOWz$|y)Hs>xPoVRAf?WE0I11lzpV7bL!iBQ-AmU`sW!KUw(km;=bv^m%g1_P zGZgaAIT~%mM;bi1+UIX@o?dvEV?}Jc-;ux?_*B|q;RJ80i@N5ZM3^7u1!175MRio% zG@d41R5G;02ey2N#^jli5HQM${a?IP`LjT3Degyd@N`1gpz(vaA=c2WBrBrU zI7lh~@fB_oW8WRa;6N#Tu|I9>W-mEO-H;eK}d z=e5T2#TLSa#>BuP2c7%?!_q44`;vpoVR-Rm@Z4z9Utz(8vGX8xqmZrW2>07w`AtL0 z5>M{9a5-vu=GXPo_>hjHpVMr<9nn?*wrz@&A?zlWT=~9Na91x>b*I%_%vg!R1kLj% zuaC3AzGkpxh%TdsChl2kNpRFo+emRt`LEFB{$s^S-2H0)Qf4!4oc_R1%REijtNrq_ z=fT`B%V+EpJKODHq!RHfON+D-Xw$p?z?d8XSX-f{YF^bET2Z91nse5uc@{5fZ z4eCD++V_OAWih?)Xqr58mC3Rhu66p>j9Rd+dzK*k8aYU9PacZ!0q&AY{jZ!@CmZ;2 zTxN1?Vt46kxAm~){Fo1kd&DCM21G_>96!H$_4jx;-{w46QX@LTp&hi0&$}SW%cgeu zpL^KZp7r%=xzOC6k3{cxS%-pJT6{Jj-4OOI8n)J7G4_mFu5nGBxZVEIT|Kuhxi>!& zL~mBCE-7@b;NP;!hag{{NY~yrcpvCKr9I0p_ds~ABY5!jsrFK+o847~&sr~jx-8+B z-iIt4UE1Zp_qFl`Zk6WJ*L-Eq$9coyX|iRpU`JVLj&#H0yzSl!2K=ZVq19T^IBrb> zP>@Av9)qx9#occeK4rpGryG2i`S~ z-@4{L*!VuZ@Y2`lX4lfFKu}#@$X1L_e{n-I8(P^Hd%n^WEH=TzrTtY!skY)*Nov9V zSVhT;w!hytu1LODZ`b}7Z58syDJ$f)nnv2YZ{f4*ck@DR9YIq!OVaR0iD4cR)=zHh zRrmkuHC+91u#=$tN#XD`YPdvaknPz+hBEswt=m{WT*DQE?T5>;U6u?J>gb9k*vuV-v>aFe`?q5JrduIXgDzXNbqa@ zl>|@{wFXn9@}gCIAfaUS@loBWQFUrVB$sp003z+0bka|3eDzh|^q`c9HT~?{#Qb0J z3;76qcQVjoRU{Xejng{~1|v^2)&0-YpR=cdkfQb%B2QZYo3RAGpZ0b6X-5c6C?fsg z8V{58rO!jm(J{JNa%NO57=_n+sizmxp$iC;t`s1hx?;BE*xTddG3ECe3UE#Ash{;S z_J2xLf2Vc9!MkoD+bgrWMoc;?4feiYsJ@q}t3W4^NLTgCXE7>i)l~?E%(`C@MjlHc zorI}>5s{lD7IxEqaE68hH*JpEXa=z$@5Qy`qt&A>*odP z=SLUhl`2T43g=b66c>9B122+6P+aW*Hw)jOC zh~Iu1O5RC0ho(%>ER$qrOE43rG4rfbp3;V^km2t7P-@-nDTj#;R$ZBtd;fRY{W|!k zTV+2(%0i%I_rtOu`ealu`D3=O3Kp)1B{NKsIkn2^70Ve7)VV^-E+vt5$YhYgV}>Ls z%^$2Xk^DQc{Nwks%Qlbyt(S8rmDALh3))nG4d8TzWU6c_8%pN*^BC4!&a7BTb%jZA zR_f6{7MdzMmk+JLg;LK=7FR64R#>Uy{&>s<$@~-DY8ih|7q^)gzgAG9wvt8+Cd!yT zwEG=<@G}*_=~`-AhGoNSUt0L%El{n{07XkqBq+M@E)oF22(?ts9vuJy10ZU4D88^Z zIaC$B4J3t<(n9P0T&ZJ_s)Z-kmU7k=Ce>w50aQ$1L1C>Ffds|ZmC=GKX+d$E^;Ji; zP<%sXVSTH6ofH58aCLc{b>*}T3GUR^Js?%Fu0E-u&!9fLzOLn{c6_QnGqkaS7Sv4J zG+8*nwHcf2QNlDd95gO+<8rDLa>wB9A4XDRDihE=2RPEBA=6;bzGVM8a$z4Z# zJ%MLmtZjvA?-212a&Y6!%9IjgTCZOCU2P|v&VWFw#!v|~FcJ-Nv{N@W1}=z)g}0>t zZ|Xj=3S&dQ(7Sk*j!T3~U(_jEqrwzN~te+MvK+`8S)O&P2HP))P%Y(5j7|kz#+vL~1hsV8L71ixZ;Xkqca|w&6Unr(?5XkSgS=|_>N^;M#^Ed zJOQLMKD7zbSwIEdoFq(J&e*0YC4in?9QS7P~EACG3r#nl4D`2!dJdirK;QBF8Nu|~h96ZOOgQ}@z zD{B?oLGF{ZG-AL%4$=j~kT)<>QYTu}@sUe6Iu8q2-2_i$#cxW*<(xq|K zR7>3xJEIx{Q=|M3H7G}h)rF@Q;unGoCU~$UES{< zvjx9l=n}wsO9hV4#MBywwU<$I!8$GSS=fMR=GeFg2IINWd%#j(o3z}uGtl{#k>gc2TL?9Y3{BSZ)>gu!*zL(Y+S3(`tT>& zG!Vk7+xY;Jw{vBK9{vCiea^j>M;T_?HDFv`mx2uV<@dghrGJD5EKtNIE~1sO0=Hw% zcryQ>y=d_?@@~@vO-cU%VDeU=tdL;vfMmkegnTet8hSEZgiGc2H_)NHI_^Q%bfg}A zH?@3<^dTF#ZLj+STgIO21@k}{iRN|VaBwya&;s`)wrzy}PsU@B)!yDhPQHYx%#Ron z40Ky^Uq>Kc@NDrnnbeQiwUSMmeM}U$X~O4U7oIHB@|BpPbj*2xuG!A9;FtZWD&|zN z)VLcRZo2cErk7@g9wGMV!z;$!Qsv)U-1^qErAQwNta~(d`pOIKMp!)`wCP>x`Ro9a zp>oYXv;(@0RV_i6eQYkvxC+;x1#E!DHc%>QJhZT<@f-B)Mv<3{lj&W;an zn(Sh5J9R=VwA)h12tF#q%s&6(1W4g>oq$Rl2__H*L_y|V9z(hhxF-*4T&Wic_- zDfgr9<_`aBFCTm)rg`Nm{mIN4va9>E^VzrY^ByZl%D9uiY4!O|ZFrT&Y#SQ@V9jA3 zFAc7?*1RagM$_`#GN&$l^s+<(gwjY0RsS>F9v$2tGybWyv&8nzqDBo3o>0hdV7pmP zZPB$)eo8V(zV&XZB|s4wC0XluHQ=T4e<=X)jXlPgyhfL)+JL{#WWyXR%YQlp-{ z&726CK3g(}`w}T%DVf)}H^U-DP=5V_T)u~T0YE1aXV>%e<7N)cOXx{Y$LBZC-ff{! z{oOtTkF2Mx&j&h>Rg2FY#U+yadVd_N2{TL9eUzX4^tumu!mb!1FqbrT&+<)z${)WE zG?AZA&s84(iat?VeDU+UcB4&X8>_m!`t2!y=R;YZK>F(k7@3%n3nL85C-cLxtgcky zmfJExi;>4Ncqi^+(gcKAF<}i7t9(G#WE3t$JWi4EP2gj`@*eRvLFns2dAf-2FTO<8 z7OS@;KG^-8STTm4ic|#&>xwvOUv{S)&LKoqqKL`w%1pJ)gxzG7Ir(=Cmsb#uDe_=p z{sMWy`>uIzrF!pEZ$|xc$n-9qh(=>FG{>1aGC5o_tvEUPbNN5v_83?S74}P&AJ;l0 zTb~Bs&pvmTxc@GjZ*JW&Co_uHJ=U#W|8b4w%J0Lf2Ay8Vy!yvBd==sE>yH_AT$Acj zh12Tx(+KZromxUZq3=~)nfr4@YJPeZdMRY~LO!t)ZH0?`b@cXQ6l0v|gYMaRhvuG= z;$#V)&{}G0_fz#Tvj6jx;phINjj+$XzdjW`c@8W!==T0uY93rMy%8 zDDpDOQd8JrTia;talp#s-z zvjzgr8El+V12;T8wgOkY8%hFK{f0@`p+4_af?kKe@VdShG;Vxj)3XQ#qK~NYirRAI zYQC{^SLoB}R`#3OA6v;X4@34yP6OTBnZrE44ocqTbs|H|Kgqu-x-=KO7M;xVXQy3F zHDtGPx>RX3<;|zRpX1GWZ@lUJ=Jo4CYx3)!{h|Hl@OJ~#|2lVCpYy6f(=Oc{*mnLF zFDoP=H_p0rQ;4NA>Q>DYRb0{`aI)r+Pq}KzpwjG)C7Nheq_opJ(=`ttgES7 z8m4|=TLxxZyYQdFNhCUj3>9({Kk0G4Pty?#;(j8Le%QD6c2>v zv-NWUoccbboc^9(@>cOlocv5VLlA-$aH*1eAxxqh*pubt{F3l&yPP?1Vnk3egX>2N zTn&FswHn35r#HjTTsAQ(5$Yp+^4C!pm?(Y^ZM9Y8n^rHa9=#rlOL>mG%)PHSt_Y^Y zvqAYyT;JuhYs{t+iwpTG@v$QG0MnIP4OT2Efd)ezl*lk778eDv#+s937+z zZ}|+@Mp(03rcl(G#*#e-biHLli-66rpbSAP%fVu|{Fv!~2?DopvG?`PK}GZ2P=%L= zvnHxwt7I%-m?PcxJp(XOhT4xdm(qrknVo3k+xv&Ih7@M#0pl@>!IcExJ?1`(PHKx z!QW^vQ|=<^(YF!cBt*!GI{krEB#k^-{=X0IG^HdEzyi<$qeMVa>ZPC&YaVO9h|im! zF;@j{w*XBNfGlRKE-(jVY;|yf3;?^}j_y}9wSJ-i@!)!7e^kP!5D;)j$nIyuFP9hq zgO5)zYh~FL6%Cj-z{60PZ827n_Yd6@v|xb+^uOE?rN2RIrERo)#P{&hN%KDsvw%xi zK(U|}Fk1e?aHE9=Vs26oLfkI!v)GMkIEh4vIzTdbg!$$YV|l+V142X}J>6+*u^1vv zgoT!u%(a_A*^vy)Sa+TcEL3Sevg5qMngWgzO%TEpf#Z*q3t|{oy5QgS^z2VyQYSIA zl|4u{yx;Aj?HF6ZY>-)O6pa`$RaUJWa*+TAit&-O3BSQKEdWbl%RNsPEW`wVHJ}0q zy59F2nUd=#`|2Cw-$*9<&wbyAby4HO41)P#-0z7OoL9hoisGE&F;QV6CYg&?=;{7y z;b8?ZO?z&p1zy}`n8T{<=ud+U zjnOW`%-Z}4m2Yu_9DNZW5iid;F!)dd(hTBq!EW>_iynK-B6X_*N^HZmNSxDi|4jmvIDi-!LkUTCG46UFEEwQ{sfIEE z#s=G_{N&*1m- zFID%4R?SE6xqh$!AVLV6QJ+j#S9=$NS%Tqq6)5+zf`gNMZM4F}cX0z*kmU-+q%8S@ z=yUnCVTEER<&q26J>JPBYsTNzj9;%%s#%hAZkJzvC%0-YKclH6h`pYgAAflL(MOWT z+h}*UTSos@6VHPJy($c|#2<%is5k%*dWmD#PQ$9@8Cl*II9!RhN zcA?55oVrv8J+UdA2_*1GvSupTMHE+ISIMhgyy77$Rqd!LBfI{I1WrD>RiF< z@ojs3xd8Daz}1OR1$hL4Orwc~3rTV6fGk{3q4Z<|I}V^Bf#Sw+PPrgslIzc_u6eF; zlW>4%+tsl;j4lB5VK1y(00A8bPJfW%S4i}Dx1QSo6+lhjg1a~$cI#Z;{jU@6Z3p$! z8>YYFv5$5W#S~b`-3Gfc#$4KfU;<*fQqQWzAhA;KvJ~&W0PsQ<2>lrujkY=L$Ws4d zwjX1h!jhFVqGyU9NSTBmp9W1O%TX_SaC;mG|8xmrTS@t;7V zF;G7;{1}!l3Zj-)gdN7-2j2@bqYl17_Lv^RqP9=e6?^+C0^@Jh_j~ryNZbe3e1Hb{ zrswl0B%i-P&AU9{JXXDSjNPNsJ#`_I{2N{6qL=VJJCg`-k<4N+?yKQuWP@ccv|{;7OnGf9x7l~*Ta}5< zIgdmq$rxJt|8&a*rWhc!$miCN8Ge+pfgm*QI^4ZF@b3kDHWfqU$7UIiZ;U+7mWs|PdRzxvu8+;Q)Y2cw+Nfpa@Hg0tta7X#wF7^A%>fi2H{Lrs* zJVGhcBE!hiidZ<7fN&+k*-eqESk&J3`NLlgZv!munHD{Nrg{Bzt zYs*8mOur}u#{H>J;%vyLJXRpWyiQ<&ClKSOK!pKAC>m>xL1^IM=GPI|0B@>?J#ilF zM}nQahtUxr6TMJL9NdSN(T~t%q7L^3ylpWEZ^F$eLSqR9mO^@x z&1wJ~GGwaJ$NkA2z?=2Ox5IBksWi??WS~|{AuaKG*GqH z_X~g);O$3&YPWC)oD-mi?uh>0+$dkT+KF=>zSVmhcC-dll!6W>A-As3A;oQ61Z^1UOYhv_64(;*bJ=oj)VsV#!crF7kdIlND`kgNRoB(=J)sRzAg6 z;xwXchsM1QrbywH!@&Zua9A>84|p2d0tLv-8}2X>Q3PR=3Wh|?oiq)(Bf)4!Ljueb z4e>an2_|3KYk`7Kmf(MIBW18)FT^r=`0(2tl>+m;UYf$>|;C+mtT)^jsBB zy*b_XM0gIS=dNL&BBm2PRm*AmsGb)8E6@GzQCB=?_iMVgG9TDScj!$K1OpN3gN5gX zA-*3qcpUXc<9nh=fCfd%Z<9V04fUFYZ&m{SEj0Fc>b25%lN;l3{d*@6CcxVl123Qj z(%mJ%egCt4|M8%D=X+u>&>*roZ412Awm(a>ZI00YV7?DKPxAo%^u%_MnTi^7DZgri zlCaUKiOUSL)!LjMApagv<>t%JfVj*{+^~h%Pj|-`A^2ZCdm)PWs)T4-?o_pvsHDA` zM;cVoqk8jQIA?ko&$@|U(=rvGD_};GTWlMX2i@p^1BX#C`5Xw??qLQq{-&d1UGj-ckjo9@9_95gquA z0wD@79~)8a9Uu=-=tOIIFV!p_SKRPKeQr1XWF%&OowC1Doz>bP(>`9 z8^GC)A(vW>Atr1cM>JmB2n;u*$7b+?RO6@!LYwj=n0C;8y~&3Y!ruG99tWp?*Q}P- z2n$CXZ%BOV1$GSJLByNlI5>MR&6z1fa>Ijn>e27{j}i!tA01oliH##k;Kx+Xtnzcs z#?d_dF__T!#s>0>+xy+lkm!q^l_{=u#qZLW3};mv<>V2=45t9_tz`RqTG6hQw}cJV zg!Q~zjr3JcZ8QekGAYvd_s^HBYEq&vz8grQnoC-&3&r0TulsGSug+z*S|aqW2W>sH z>4F6_xtg=UY!7^lIdq&ZzjuhFakRuZcE!;=({o@TT8Ua3GvL4)7ftHDgU>s?&F2q3 zukSjI$vM#JIDfwEpm%DOh&2fCFXMEWl zmW{tRVy+Ya_VMj_fka2E1C1ayeYRz()wo^lt`2L&YPC!@4SH}mDMof1QGg^)upB~K z#sxL=I0dh*kp0WQ4N>#__Uw`0@-Fg*r6QDx^XC|fNRzXI%?fNpr3Zcz@m)Nxn0!2z%1VPJX~w7P zWkeVheqS0-H&A#@I_;EBb zeasdD=-$W9nmLRB!j7YL$N(gYxpm72KPntu8?$0SL(Vz2seu|00j8X~m))^5PY3wH zMBDnXb+fF@z|jO`%*9{gySeBkR*V(CsrIGtxB#_==X6H8<6t4~ZR5It028%e>-~J) zuomWUy+h#{Mel%xM@|t6bVt6|JGpEV&SkJYisDyx-4Me#>+lizgG>N4_z8mNxGvJ| zh408j@e=U5MY^LV2NXp6)l(l|3u3-p^U&WBynRkn@}P*ab5m;k;u{V=-jMoV!^5Gm z`D|~(e{^<@3WhDW7I|wQWY9#uyFYF(UvFieDw}i0Mpo(?^-EBQp{SR0KC6n0i-SEp zC=Zn8Er*9_&JV8n?Un3bmODS#rU)*8FhKlseLsh|w{@mmd?n5-E;&Fr3$uR2iO-_G zXdU!|p+w^PqLF05{ac0Z&6BQ051t`~%nVq4)maVLh1M)TNsU^7txQMr%M5U_dCcZl znK&S~2|4?=q4rfVklVK$XfB#E>0nE|LF6b_uU0uL3xFHXZdO|Fc(F7Cgnh|sg)h%n zVq8nC(J9;7D9Gte8^iNmlfR4wdwY)C&5*;r7g+E%LThG22N4>uKBLRiGdsLPi6x*l_sqb;6RaIht>5b$lI*^+aF&dY^=+* zSVP$ev9}tUr+(hHv1S!zjE@J45+J34~rhHD^fnajc>Fx_19*ybD-Jc+DU3y zsc&e*J^^Hh#{fMB^+9l$lypi!!)KG!hqqQRiF0Qb*+B2+$H*zZMd8FxjBJ4i(Sa;t z&J$c-wV9fno2KpFF|n1d_VkPB;!DcQ{+YBy@Pj9&;Psmt3CBvM7~(IizoY|~oR+d$ zCf)t<{5n$zw|a0%LS~I>kZc1nP6{%6<^xgD(hEIrm;fWy)t6sIntm}XRC-mTvh~q1 zy+c0bJ980v(o6Y6Ipd>Wn%yAmgHSqkBpTPH zB1a=>fdzK5i9kES<=l*q?D*I~Taj505W!{hn`;q?tXfqjml2n3sU#w4-fbX*?-hKv z8p>=`eya#OBS=dc6KQNkTW3=eyi23a{OduZsH!r}M z`CDiOiRl@|&JKJ~EFdru>3R_~&I3Dvshojf3IsfZ(R_-S7T!wDEsir3Yxt#Z5Go}< z^a9w9Rr-#B4=P46@Dpg6IE61UUX5Zfy8uPd(;-TJY14hhwIsia1n)V<$y}YE-eHZB zQ^5-Uox#C*zEgntY*+a?bPIxIhgyLkc**_u?42WQxNUyb%$Nc%0uxmjN`TzZ{4)6E zgaSPWh#-2qN!%kq2H(58$21aBtfCwZ?ybZ!yw^`ywyHwc;O;#m`58%`3@SFpxQYEc zgxE%Xdu-8bydr;y5(`N+w4*ITjXOW(0sGWyiPxJZn)46Hfwr`_ z%JmTS2ovOs3=LK&W(;(7ics~IQmI^JVS}VJWIHBX*Gmc4wXoLvUT(P6;ZCE%qvK~7 zTfgnRzud0)@(BiE##c)Fvc6X{BYC8bPCN>cu;4&f7n#p{%@Xl$XS}uFW5sxMFypki z#_qdjsmo^!@mg>rLw*E%>_Z>Os@-XxGy!!9H_w~EGtDE-esLsxp6J%E!zpwwa`$?b zGcvtSJ&>tCkC&aAue=H{^lp7Pwv$QR)=1Gv42QLzWoo20L|z1=KYIi&$)q5BoC zcll_pHEBLH7R=f^3_zuTyB#`22#Mm~>nP@?*r>>-*%NE^P7LY`SOM}x(4NaBNZjPE zF$E8AqrOf;aRM5<82Aa_Y~j21_flMMXIxIlL@j*Y%Z6PBDPhiC`K*NZ;@*?d(6Dbu zoap@pDe?hgScQzI5i5WjvXV~z7G)mK*W;>w-esGQ^LVoW2%K(KXx9&`_1V)!z5-S*}4wC+*KG#?FO^x)uW z7k!oZQ^_3RcoCEC$(whMQX0bd#NvZypXNV@P5hSeHiSyO<1_0XHZ{aYeZJ}YQ&GmM@6siGX7ot z79opVyTpmXL1bAzqNFzUcIqO9z*3dp$|EBg(qztR`=Wm?n|B`9$H=Cli6C*qKvbGq z;cynuUzMWnYM;_?H@gP*FOTo6-+J@sd&3*SR`2J3&r?MQ;nXNxxH z-e|Q6AS164?Fa73K709yb6?yKhod`*tRKAdOE>Bb4(>*R=Sl%mSo=h@SRD)Tm(Qci zwMe=7=uv5&W_7;1H%vsjtpyR%I1N-9#(JfS7N-Z_<%3c+9F`@pA0E!zPIJ-MnkT{T zDj2d>MZ5%#j6DIP*=;Yng>bJroL66YtNT#(20*(K+Elfc!!2p zwJ^RRSdZtYgkYGaiF9Nln50Mdw?%TDowj!wvOtN^ae`}6Qh{wo6(Te`i2E>sk^6=K ztQGh=n6zAr+R#MKouI$qBEGgTsBH%UuCi2^>uM_xLfv5hLg@TgT>{iM@DX|mmf*~*{uW?pyF`nYXrS0g zT;uU4!nE+vkQUhak5!&!qUw-RuH5yJCIpwBYS|%XJ$!ToP?z`{dlZQ z5CNJM0E1;yNiAi!L1}%b=*; zHJRt78cx>)M-<0NMLQ=_{=}GiOc~%*tP&!*f#g{3Z$$Gnd{cluwom-YdLB``F@ZMqHkU0?xsg2(8Qj!nRcwtPuZ} z=sDl<7Ex&BDDVq08gVDeA2h<_(CPtrcn}Hxj~_77SD*c+EI7h96qgg%0(`D8deg2V z&B=dOF2K1^dCv;L5uB{i;8_OXm4APX-tbE&Km3VC%+jz+(Z=TO6*OJ`S&2>>b zvYb%=+!?m+4qT&YXx#uIYvn;Hip6CGyDfbqF=@vgIp*cDu`ls?80MLFU_VzTL~ z44)X7*OP38NO1G|hAbA8Aqf#eF!+p(x4f8 zPZe3NA(yUL=dfKG8nyq;C!;$JhyB(^us_-O$;EMzmKK{l%*uE_Sh8^YF6Z@3!-*W6 zC<>T{qc4}Te(N-CpauA?zb!_i{otqON1lcrUIPR@TU$YIZ3|nk{!fyruPa)rcNy>I2fIJA1W_Rh zWw|m;@W1*G;E8w zeF|LqT^Vi3M2Ec>$LhvF0uV%=IRnICrrZBP+F3Tm@px^zXBc1@Y#_l23>G9n2qAdz z;1FCB0t9z=2=4Cg?iSoVxVyWDU;#q-?ff6BXKS~1Yis*Oe}b;AI_KQ?b-6cSOyE7y zQZhEb2ug7-wx{OgB-G^eXllMW(a&-(DGBSW-{Q+#va#(lN5=2+n>$m{y4sygrHFDA z5}i`+O+gZzc#kP$W}O71`l#XEB&XPk7`c2l5K|k-ufp!VeJc|-PjUF{CQ&t10hJ`-Euw z_8NMX9}N`ANd+zXHJRNpSM_)ROTra8qSBzNKYfN+{f@NU9We$nYS6c8c)vK41FJ#K zTVHd90R-II-hvL|4R~4r4s{^%K9B=Hsd;#hoOr)VxhV#K0(v9QGua~lByBHN-k%We zOf%9Ye%e8l79=F`EYD~lr<^kl4tPTVe-zbJJp;E7*e)nQk}x)tE+a<+URe*L#|N@R zuxe^APwnXNcYa3SJd)wqp-?PCN(THpJQN<2@Z~f#Q$z>JLT94vm_*QzSE~(LN^bi0 z&Gb%|bPGYb%;N%7Vn|gc*GqA#XtDLp;c8jz24+$;-4SUcx?nu;Z+@kk?D1$}3DRx= zfdIMIPqZqHD)Sq@yTIaMW2X0>%;RNd0MO06(eSie{fGMJ!l#IW`pb-hs2Wm)RK1?_ zckjqfiz$u=*cd1XkNEX7XlxO*@Q+@Rk7mA==wT*_^F5`~ifjuB zG$zE^BC6aX=|CZ=M0w%0^$ch0`8Wz9bBnlAo}_Y{7-x%@ZJViMo6j3UXtjl4-G&S7 zRGDvc$Zx;K*E3iYRv&C<TS}R%dtl zO-&@KR~oscwAM#$cnJVQY;c7Q`E^4;a52@dg9GfK*Lm0wI%>|h#cf=rY-@VG|l?JIsMXycP#ANY-YnC&J)GnTHY zTmG~~^|arLxm)0L*z1&P>hzLM^V7-cguvM>>uF!d>712jzrg9V*Xh#JX)n(Cs{HwU z<=MX1`CjDtR^<84`sw!5`LFTwCgPyo>L2>?9Tv;f5|CI7}UcLW$RmCC2)+Hm-c_sAis(kl~ zr}L`Z|5`5U>SgwI8;6wi>uX+I6s4+b!Hw(BKd+@IZ+HZ6^*XP`J8!tHuRnje{cL?L zM|q=$`&;Upp{U@kx!|?aKR52*uHx#A1SX`dJFnG0{?^C6lbg8q{HL@k|IQlsx?JoA z9^K__HE;ZP3J=Sf9c%6H`29D87#SOwN@!6rXCUV@^lJ_TU6+s=eyo=L5a~srX7e?4 z`hzy!2@XOW0SC$X0QR&5=CtCtUE;Yo;2a7G`)km>-Eq-Juvz_AjhqiDl@R<3fKFkS z;XN3i?V&buh;gD<0qqF|ZVvf=0lzU4)pT-o|FAm1*FUg#=*N)Mzk_Y3hLK=f5jTfr4&98O&VdAbhHvQU3|2qYGU%lDgjGZT=j{UE! z?P49SxctN$=eqvRFkA|+$EC~t8Jd3{IXOi9>||!%v$P91p50xYY*^z70XF~|!zS|Y zVzTLD!r1u9J~yU8!NKuE--iElHEt?jVx!`%Kys%;JtNHIuEZy8n~+;_he9cnFP?-A zhudNFo(wzT9P=hS5hpHOt6JF@eVZYdJRF}t{O&f{jgi#x--(swJVJtPy$U`diP-xH zGpq^|#TY54qdhOhK*s%KgG5&vcNHy7QXQPR4=<9w3^39=MLZhsXSnQ_9Au`-Nm2X# zL}kn|a~(51%vtzV5*cZbQ*_7%;b$`SjtmSbbRX|;Gzt}=K0Yd{lw&$B&QFvs^*u{~ zQifXUL+FdE2S}AN3g^vEDw^yL0elm3VSf~0myJ54%q+Dax}tO_w|tZ{OtErO{MDI8 z_%t!2u|#%`C8-2pQ&Kt(x<}|}F}0T09ro~^wVXDbJe_O8O9f}>@ zp8RBX>Uf3Rgb~SN<6fDqpp=5%VQnP9GsTNLpXZrh^b;HNv-Mz{*c`R{?7MIDJ*rt; zrjr(tfBMeU*hVsVb*cNhDQ}LSGEKC@?Q&eI<@9PIRL7ic^m3RP-QHV(=u01uwLjg2 zLMO3NfzUSz$2krA1-~{^6Z31|5;YRqB3cPcrzFjyirZyU{IhpadR1m`KOcy@oG-b2 zA!b|g_*DE;^L{ok>a$;d_z$6X)X@$^NiF#h}wG4}IjCo@rs z`@?+g2FD&hKkUlY9TAiB#H>Mieo+^%OXEl(NZxHd(M>ifZzt>xRbL_dknhnyMQ zE)~zCt2Z~)T=!Bd%Ou-=Enf9M-mWfm@UugUroJyw&RAHKIjv;;eJFSQ`SfSy7H)I^KesQaQZgjhnl{E@RI__ZfXnfS#eSiv-(r`WaD? zG+GfV=Y`*MtQ=^LLu-u&n;Qu^+4!f065JLATAFaZNduFpnXy-n-^?Zpxfi;L9wupM zn5k_1O%Tv&xUje^?&v@x3P;7cM~}?ZnwMn%+1<}zjnVCj?RQlivt>B8uM*Lw8k@P~ zYC^H=CGfuw4RG2WLU&H)z;?jEgP~bCGgKuJeQL2w=)VEfhrj@UyvTq80RVtNAQ%`J zgoK1dL`1~I#7Lw%DJdx#85shBc>Ve{FE1}YKR=S2E+8NvC@3f@DypEMps1**p`r2l z^XD&LzUb=e>gnk@J3D)Lcz7dkUH<+70RhOXNO*X7PEJlB{rB(R8yXrK8ylONnwp!N zTUuILTU*=O+S=ROJ32Z#J3G6&y1Ki&dwP0$dwcu(`uh9(2L=WP2M33ShLCvj;o;$t zk&)5S(Xp|y@$vDAiHXU{$*HNS>FMd2nVH$y*}1v7`T6;Ug#{$Yd}(QEd3kwdWo31B zb!}~JeSLjnV`Fo3b8BmBdwY9lXJ>bJcW-ZRe}Dhr-~dTIKRP-(K0ZDyuCA`HuWxQ{Zf|dY|Neb$zM|!|J}5)Iiocvx1*yMS?a*;uZ#JbVAL@3FU=iL6m zg66>T(E4V^*3NG6!OiT^$>~Z`vhB~YNipFx_2JBJU0gF2MdNU_3hjT6`{E?nCc4AQ z@zpdLP8J)i&by=>IID9%gfkGCermFsmT+$F!(irlT_7ihYa+Q+T$v{t4d;n)Fk+t@ z%k#54H(099;4=Cp>BnVkqW+1OiyFzXEL>NcvN|YN~9(~`F5bvQ7$wG;4?`&SbO;I7^Q^O+}7EcuT za&E}Se$3#T%H>?SVsoO^@hrbPp0}ZJ~7;FyLbO(?85Zp~zHN z$|##GaE7@-FHNn{f7e>IC# zoXt{)qJ>UF$dn(?H0VA|CzmSaD9AGz7UT{P(tNGm?lY~Ra7xKfZM|GBqr&x$F3ta> zl(fqyzDzNbuN{R?+;r9k7+7%x%P?e#d`l z{GvE4sl#GS;FTwz5X7(T?a$wri7m&b>J;B&ve#E_^`90oC!7b~H-=mHrjH!oSLD2f zmEHNzc=5#M6<~PX?U{78ZAfQf#O%L`TR-JMtLBLr{7Se(_N&W2J8A8;%TikA4|tE>&OMwu@lgh_eZvpexGLPGZdzjWMWJ1q z)uLl6FHlfE@%ywp>)(yVge(2sKC|pHkaf*5(k(kxq0%E5DLVTYg5$4K!vXEbx1$q& zpw4(&p5uI`WBpRl<9VMMUCnKCmBv6V^)v$kTl(Blz&KBCdpJ@3Tf(W}uWj2WBKfbD ze!LM;bf9@iFYaKSo|LJ1n-4Y|qJBUP2>BMiL+k!D|32wvCn8@zAEvF&Plsb3qq=I4 zB4pg|v8E6&CI1svSbZ-{D?0SzEj>oScLv#U?0BD?e~#w#C!F z|BHr{8>oogfJUlxiK zV;!E~Hs)H0;bc`^(}_@(%4p@vm53UqFp6G3sT2#?`po^IUdMvTyo;@M7UeIIaec@T z=)Q8lv@`i|kAyf8#%5^r5M%U~$mcrVB(A(#8mq@pz$=Zda7Zv^`58J|l{@3SG4et$ z>qo2ew0@|qwgunS^2ff+U!K&TUp;%^2|H+4t+g#+{-Z^rlB45TsT^xsf1#2423eTN z?2%4dJthi`ghL$xi)P|bktR+IJ)vS@if#C)SS+VggDL`U5*>sIZ)Dzg*HM*Qkwh?a z;R4x0?pY9X5the@FiP=%Y^fQQyyEDUZ(c>9E&8C(H2uSW? zoShbJmFG^JH?%>UMtB3^IcTiKK6s_o1S0!!y)U(FD0n9W-+Tf9(nH@I{<=ws)MC{y z%nKVu1(cUS7tpsiq$s>BJNcxhITGQAsgmu>iIm1L9D*aLRyU%-?1Aq#g|WSnX8Uje zgjlSsODA2rQF4LK%T2+}vcou%>3ZMuvtywbGa=Y~&{>Ill2>ehU~6l37rym%jM%KJ z^R>;OzhzQfy5jk^OxzuH&Sn^OMG;t;*ikg6hwf@JI2FJRG)sJN?2moDyv9)=;Sk6Spr_w?y`}cilW6OpzV&7D1QE| z>RGxbi!xL8w!Y!p?+FXug6|C<4_Z-f=f@e)_V+GstW1CZsao;cbxGDVqcgtKe zC>Uwc5UQQ)IPa)8fpI~%Ub8#H*(j&^;w+)jX*-MNwpMfGGA_uyF{vY3t0cls|2KIA zrnN$^42g2`&g!n>9My~dxW%LWwmqrm_cK4wtXpPRkHxGxn{ah*a*E!sZ_dB+r;)ng zqp#PbeL5U_o1#=Q{&X8B#@{f-<@Kp%{{4<~Q65K4#Z>oOoAJ*RHwzziKIO#i4=Ca) zu=jhh)}A~bdb2jPlV#no#Aw9~jC*);3Xas+*ZsVe=E?BHagI*9%#{kFIXy73TuvoE zDXDbg_$jsLy_vif;dv*x_1V2zIpd(2^5lBRSn*q=_ED+C#4JhE!pQK;Kg&`tdr&*Z zdd*2gc8|UMe^fZFptql8BsH}Ky_mX-6PSZ(-&UujDF}J|O1YM_f(1&P|P3FKW zkHDtR$g4Hb%jJnkje^GWPTbe6NQZq;@#vRt=g9Wv`CGt%*)=;ef#^U%*(!}k>jfRRU#pZAFatZ$r43xf&-u^|ZNBaRz zgDT~mKK0JN4Qh`4yN=4i{yhgDd=35SiS24RIB1=5=+a)ON?FX!#%)ikuF1j8Bqyo%K*W378zOuc z01Vmw0{Q20GoVa{p&;1PIQ_z$?M;8PVAz0OOoE7_fruSvUa(Z6MxeeAh(aNP!W%S} z?C)nl@?^O0>cS4->PF1p0ZsV|%#I?t8ewwyplyu^ylUXH15vP_kJR^|lf_7ii^%$1 z$AK%;H|QQ3J&|X`ASey1D7Q0SQYbcc^tNR59~YV<`ao9(*IQy*EYpaeiyH0Do^kde zKDIIE8qu+Kw22OyEqC^X;Mn_O`WN^y2UkMY&i=o-qc0YN8Ge5+%GQ5}dAAff! z7=5PnUUc?Ld%fR{a54uEIH*>0V&0RITSI;cu^Ak-t3mU4?NZF;?XF2VYZ5{14Zwv^ zlz(`Nm{OtCy!sCj7CUl;V8%ec#Q)z!Sd9M?VZHpnh_KWVq>@zsFD|T?|K-9WVV3&e zy0G5JsF3}a3+scJ`hU8x6y!ddYD-!Dn+wb3-&|PA|ILMEZ~q@ItYC-#y$j1FnC5>G zVY&W)i?AyHClOXh$M^rE2n#viA?LXNwVWRppOBc8oRXTB{$C=j!lDqk2eP7HURD0B z#_L;ceeL&V8*{NF@a!y}_(8E}Wn^6Bb^ruN09w()ihpE^ zgP&m|_l48=^=eg%-Jv&?1#K?AY(gnVecp8RN-$R&upt!{mb^6V#d3u3gtQR4Ua%d< zOXaNWa1p~@NN-L?GBI0*E8cLs6lFR73mGSpdPfHJ4!48zJsIGMAX}F~0pvFz&5bR^ zBGy>G(OI02-$YjOGrK(~&5bm?DP~m^l~vbm`dNO!Kuqo~WVHFJxXxsz!Oyv@V#Sg) zTi0OIz#L6j$w-M}^^~K_}6X7_{&c|nYt`iq#S~LeHvLf^_eEytls6P5R=`3o10p;yma{0Cp z)O7@^#)X(d2aleQEJ3xnzAG57UPu_s!95&A7T>54$_{?I5DVd+F9aF->jn~o6!;Z) zo&8*Z4`wnSy0xB@nz;HXs%1(PJR>mSA)vaRqM?bPTt6g8P_)S2r#h7*FpiT+b@>?j zkq{scA%*X+Mv1)CfWZ!4p`srg)T&cV4vdZtbUFKDt=L#nkUAM<4m0kGeqfKG7=TBd=3sguJUABwrYJN|kz3*l^u?cc9 z8!8q5z8u#}2z8b;i>13=)*+-i)h?07X+(+xbjr>;zIT+J*NNh4S52(zmpM$0vY$Cr zHP_1gtmV7wLTOc%VPWlQWMbebhfsINMq-ErtY*TLgdp67u zA*oTyKp9}0peXhWLg4V+>Tb*7La}K(_-zOGb|4=P&rU2o&i!7pai!~Sg!TFTL6CY! z^I?*@yxU>6cI3lxf%EvoPFj&rFlLbXl!{Ko983S2uL;SXb8rHE(y0o1d?7;@abcny>O>|$HkRMjFc4uL>^ z|1R8*8ln_nydY|iEgWMFF@nF5LMAHXawO9EP zNA*(=g7dFs=eMAKEeaKPqbU|(KKik;iPgA3PQWhQ|hveeC`6xE4{Oq^EZVkFsxgmm@v`K5=c zLYf7EZDw4Kw&2eY8Ul7z4x>Pq;dig!DqOx165F`WlaP)1C^=hKH0IMSxbtIF9Pc7! zvMrF0Z8s5Pcpn3Dr{FFS@RaStdl6R%D@GKRk}s8CF_grNNrp(P8I0Csx!q-{l=TU3 ze>!0JobiLAs719QFyWQDt%#^7L40fI2bm^NnMJkOc=x_hwZh%8$RdrJn2K^ai30&> zy;PuM2(8f2F;FleMN<+QjXTb;zb_Cp4P7?p~V>^D zdXtH8=O?k$lTl-yZK58=^WM+`#V!;zNlWvSx?HIkBgU`P6Jh&TnSWZ12((>Wh+dwB zHIg66Tl)@}sn@Rt^b62)R2E56dv^9@EOzD{6yZ^8U!i0*7|pssN&Se(!OS@eEGc%J3@ zb8Xkj8Sfjny1#_Bt*!8EBd3@6lYZ!J?yIHZHPxsY>#|>oTSGd2x07X9%lm6?LSO!N zp{o9AM&v$!8i>)e)^4G|;IX}f>f}WtZ|U%bTPaxFLHW)2nTvMYChbDizyTSG-am^y zHUif*5^n-iS048{iA0A@Bd;alg`w)WN7!|J=~L&o(#_VanX9L4+q*Fx^6_6d?17f@Me zCHBU;BgfD{Wn%MDtp=l;sBI8hyl^&T#FGn=Fi%zR+)eUac6Q`KVv<}?*fu?p@>f@>LIx8R`?|%G{PnjD>u~8Fg6Mi z*xMC4<_NY^aJfA+noBS=CbD_Fi(Xua<}QlcqYwW%ABFoPj_V+99zDEk(k}pxZY~5h z)kPPY6nI#Ou&@3XJHXKfDGTHD3c~n83>H=*)H@7`>H@Uyh%k`^gMO%6oEU8AE;iu%#&1`}(4WPTBHf^aJ1DRi=@k_r}!p7%-Scl_RG1 zY~F;v(}-qmiWVn912mJrrP%qDg!%EH1*D*`XhfsBM&}`709~}8-U#=u1RxqP)aAC= zd|jZoO*#bQ2(7_zwI7-hZU0Ta4A24btFowc}(1FNgBoXJxR4`SOjVI_< z(t;A*5q1sTS}3$yF8q00Xcy|It`56#v`Jwr^ln1vp_|k&ru|h*0-Te=*op$pif!GB zLt#bXfnMjX7!)la8~3Yi*| zRo9P&yJBJ3Y2K|WNV;d|fq|$FPAVUZ+D9%~ttzJ_tJP0fqdnlhV zhWhXnJhT+wr`A}L=E=8czY8r&&Mq?i74W^0n98O+R2-m{Q8_*?6$*42moE0Tskt4l z$qOyxHZKkw!ti8*3bq8?8gbQZXA8oSKtY z3g7=RjXZ7|R%?n;sPtaU%Z{$ksjjaj$d561lKxQBY+8eL-^@J}-ZIksQT%%onX}Ib zhV(tgR&xu}i6^y9Tb3@Eex*9UtlXXqtE&SgDLL3)x4+aVc9;N!?+tA8}WEakvCVJWpXzvy10|NjI3hqbJQeM!IWagakdh zEAPn$C>-e6!)*6HHj}(@s835nl$V7j0$iWUlHd-nu`tfet23!;FA4H32lT5`qwE`c zb4g8Q$xB7)8)B;yH*b1HR>_6aHE~BP&q__T)Ovx7zRcr3{qmZk(BPP8hZ}Jyc9-*} zVT<}HId+>YIepw4zFcvw+pyUcBgd*P0_`JW_ z#HUzwr6{{*7`%j)%hVRV1Lx2e-GDCRHHO8fqIIET(@c;vC<$+&Ge zJ01ePK(m~LT3@4B(?Vd`L&Zt`5en5~s>6MV044;MLGX{>(+*qrzIP;HL2A9E>|<7> zZEuX~?$U?jt1SYRV!{v^3_>A^lIW|F<8&CGP5+pyk!!>Mgo+;jFlp@jJDR_E(D|^} z_ziQ&w@r6^AU^y;Tnhjek|SIvA%eMpC24`OE&jh}AOmz=4$e#Ml1C4G-w%JU^f}zi+3^^bmQqd4}__&ME2m_opo)p#{ zj>YC_R#GwS#hXMC#Oc>E7j|YJJf^pRiB|Wb2Q}1a=M{9idC1p$skmr1kOq>E?&ffj zu~6QVWAkHN;m3-2xsK-Y!v`0q$5PFTzS@ix9`zMC;e24l#M;Z*O9&8J2F1R}uFFF= zUNJpP!#Z|fr>2_0B%1h(W{d$DSoO5uUi)(6-g%qW$<(spe>AtoIYh`c$K$lz*R@IW zW)Og6%{pyJwdt(1Z~U$J()hU>lDQQEuZLwospR$Xx>oz2;2;)$LO3fYF0;wyYX5-R z6q@*^UFjE&$ciYy2zL#7{bCT4ecOS2(ZST>18?WD(~gzdj-*$ykZcbu(unVT$E#*L zRB3Ra4Tr{T*ScnRF7?YNf#FD-BE=5qd)7UT$6Z6!IjZ2k2B|FbhrL9$|TY zvhyt^Ze57A-Y(GCtGzFr`v!9!tX>;$jHv?T4wQ>_L)Z88#h<` zY{yqj9x;T;P6Bm9*SuqCT91Ftmex~fakA_XWu82RkDt_MpiKT=$fc#VPt#)=XK6);eY` z&e{FVjO6)R$P&iv84>mwR=B%CDl4rvf7);8%B{!5kvuu^7qxeji+Vz6kdHeQR(a8^ zZChSAYgSlAj2q;)7udBwrvKE_LXUIC&tDIvjgx%b96O<+v=SN*mdZX$?>-pqYWp~U z#oX~zk{SD_bTeVa)jA6;nP4zw)RtHAC-m2CPVcdvw{&C@Zfto2%xvI$9KAQX=t#6< zkX621|M|xa1kc0?TGlbO+GU~wpvD$i6!_G&Wpf$Yb%_OTrFJ_R@7SBBxD=U=x-V%w zU0*wwCs+Tu&==j)@bZ3J0sJyDZ>U3dc>Kqxmrz#v=ddV8!#R89j|U-e2Zt!Aq5Mz7 znulT1EDoMU_Ria!kH-e8f7HUDeq{yU#vX7pAB3&u9&tQBJpEkp{$t1WFqF01GEp{M z@BBnhDUglAi5F>=ew6a_&v?RLi7M`A<3HKcMnRMhDc>JQamN;Me-3)Om1GYgwVHWc zC;@rs!)p<-<0J!aI4wb6>By6OJPW-y7Y^tpP3{hYith#&5AW`vY@Gik!df~C!GJUI zN^6<9g{GFa3@<<2!^mFoJ*_aJIfY@0qg;q2u|MSg#>}ohaJm!^(oY4P8}pQDv!fRR z%gL9$#iy2$A}pkUNA(?^SEP=XkX7dS6Aon*jE33zTT~T{YH;D_20Gg&LKH$krv+im zp^>U5<@Fe1%<2m%?h|SYe)ILEcC*#l@jGUfYUD7nxrvhBP0lMTJ2pu}+v69@eF#B^$hw2p!=*V&l&ooFSUq8mS%Lzd4;aj1)rdSlSS!1J@tblDIfao- zvM^4T@<Cv+ys5$FocNW|ic;4z*axX}Oh|ESRf-9GE~cv@e`22@LD`#rKS= z2iY1RSr_0{Mt#D0NPib&;-}NA+@a`a zfaxMgjNu)Xq;B*x_!2(wo`Nus3$0#3FQJGS9-sKe>|oDHNzPDJNW<`hRw^TB?REs$ ze(*@7-c#;d8tr#2AqVsp0W~}FK@kqCPyRN~OS;G{6edw+Fh&&zF^rJZvuyhY z>a~J=Nr{ZY$tlr-qSye9!W7zA$zWlIN(`wq*V?<>;*Hs*7-Hv+&@wuk2E!8h@1P6( zFLJ?lCh-7PPLQ`Ks?1<@4sA39TwAK|3z-2coPD3TDP{SZk4(jz&|CGJl{GInnSWa= zj0Gy1{B2K~F9()iMG1&cqHvXPZ1!U0iEa9I@ZKL1gP5Zyk6I>4!mAsg)oft%GVc-_ zmB(Ng0u%a3Bc0}NO-w({UrT@b#qe&@#C+(WP-Z0yGSXY|^+bir^2g-Zr>lB$js>~V zCrP{nvRfG0pd8FBO%w$%QV~nPMe`E0b_1e}W};S8gw^dB0M7{o&*w-Nx3q&`aQ4 zI46nk;YdH_ymdCZmE4RUmQQtIPp6S4k3qM%+O1#PD|&yu&J1@@-SW*WJJ+dCi|x_2eMz+Jy*8RSI8czsAm%MCcK`6;4!8Y{x&&bJ`?{8R**!R((+&XcCf8 zzWjlPX*<-n)IH@_F>sq6W=Z=gc0OAbTdVJHeeFO55@4IsIcK?4xS^>X}uj*Jv<-;X6?_ zhf7PKINS2!H%_PJpkJx(-kvu*m^zl4q4tp^DN-^NOaAit*W>gQo5nX!k`_uI^4fwa zKHLbgiB%_Wq3kj|(&8!GNkl9P_oFV_^86_fNpl~WWu$GEQ92ZgG;!DeO<2R(_vVUf z@LGlaL$mx}EbHgfZRquV4KJQC;}g)?80^VzepEiJv!hxxW_2Z&S21{PiE^6x;(cJ3 zi&<`lJ(CoB664f#!nBo@2Rb+1RW%;%zAn0V@;_L*N@&s7x-(xjB%fVP`Ga-S4eazq zr)F#P@ZaXuAu*3bz-(45NSv?~q!0z0eXkc^r01F*@AbjkO}{#CVr$k>rR(j9t(lQV zM&xPJ@Y~PBD$jv7S`%57uDqJFud)fK-)_Zb?=OB;D43s^HwBBTJhh0Hr)&w0Q6pG7 zBcoB!p#7j829Sr@IRHfn>929Asa@BGyc*4)nkQ9k9iSFZ^_=Shhv2G;JJl0~nu?5& zvW^sf$KzcyHCDaKS=ctsw4u_tSFv4@R7$9C>&N;s*g_(Ma~^`aySO#WxDsZ=+02=% zyNmM-^n&&y`Sf3PNAt3Ub+e>5N^6zC%e0=e2>OZ~b4wBSkySZnuJ%i2Ln2Xj6kgge zi~w7yS`8&)BNEKil{0Ijme$WeVk!KC%#5hAzs~KnoG8rdbt7w>H$V9fwll*n1NABz zlokawq;?=s@MHtdx8KN~QSM?zDtndqvKzay&rRDy-B|xgUCIFpmJfdynwoDwCtDl> z$L|kf_@&+_78q*Ui=jiGI8@7^R3oB+we!X!7*Mo&naqqz{C3ty*!5Qc$vImxP#`qo z2eOTsD37Q4iT_=CoVFQjsFkVL_nkZyiBTex@!o^+045vwMQC;!&vTRKO;adv$O~i# zzL2Y1R|J>h%$tJS8y$DkC!cQ2530dC9aDK-K!0W`uk1FHjPnjxsQpMe$_+jJT)6o4 z-(&Q<&AIHrdRzsTBkib%naY=rMV{^Eia}Zny#tPArfVmkMpEayU)~mGjF}q{xz9@3 zc-NJAo@fe^&6Ni_mVWzdY8m9dJX-0{7*Sy%{muTVG4DN93V+bd4h2!J>r4f{mC+nciIp1C=+zL!-4{rQE98&AA)%XEh~d!XSQ}(f4kt>SzU#pw?p4{ z-j6F*+GWvu?g**#4*j!w9lfx6!1K*@!j;vbh^T#!WUyttpaZ`|nf&-87w?Z=dHZzd z)f4+ol##KgUkQz$4!H~IMcl~-og0_N%09o+M(Mx^71+!5ro=S(DD{;}nDM!U$Yjl7 zwo4-92z1Rx2+;>X&_lo-;_VG$k81zP3tT^C26chiIsq6l0xfTYAJXCe@J#pTRSjR)%!a`448isj!A`d&Bw`aj^#0)M#hXK=|zG0n#6_eSnWeF-^X-><1|0*q`#^@~2pZ=uR^?>SrG`z9k?WPZtu zCgagG8F%HP|JY_`EJh#bVIF4>c;Yb$kg4&L91!Dle7Td$1dZ{L)WFCxAoQmXgxk89 zLIL3I=lp8Gf*Uq34&rtRaOB3*Y%+T9qA!aU=qq4>FxOCXs3tMnpvvtdw3@^dpz zDdA_xqKOePaiE`MpdnSTpCqRAP;lr_h!jY78C7TdgAneXfs|iJ*5tFIChhQuqwsZJ7!sw1=HU&lX-0Vy4XM|Jr4@?>BjOt3IGgJT zt{TF9crb{SC@~#S&QtvTq%w;)zj8Iiwtzr;#mOHw0qg8Ej)v4VHX@K=kY~Tr`E$Aqzu-Pt1l{yS}81{<}@|Tf_Gbg+30$&L6 zEDqz@IYCZwHGmln*m|Rb6>`{)v)(^Tin&4maDh(j$HXA6BRmwN&w$GnE#N7Z^<-j_ zMSX8}hIIcq`*(e#jf1bNPqq4qq{w=F|Q1*3A^qL9=)=gmTApr{;?!Lntn z?S$<4CRR9P(Ojd0q9GqbW5h&-tOGwO@?so4Ln|+3UDH+6%rEtKF;p?jW^y($af5Z@ zk#qjS2D|Cm=Oo}uqibEbG}oAHC_EcDj(b*w7McLFopf?}Amc-j`whdGe26@j0pw}u zTWPW+01>Ok2frm6JuY^bMB~%V5D_A89)@AE5m|Lrc09y6T$FEIAmeHmWCAu7HYq9W z1f{vsrBN92cn4@5<`6-ZhjKICR-Sooj@Ju<#bJyO?0FbI@FQ zVZYwh0=hQvqOxM$T2aMkEO=jfTVN5}l@49B6lE}uFk7ohl=&YJDTJQXB{l;ojK#f- zJj}-a4KYq^r7X1x0Wb4ws=DHAAi^yhqqcVAdH&aT)et_3&RvDTyz1*8)$*e13cNLS z*&*5|*m2G!72YUroAsLRFkMm@CL+UPvZPEG#l9L1?WjSwBu=3u7F3HRdxFi^2SFFX z(o8LUmc(qu#`q(a*%H7JV=sRFt5MagE}|7xSOk=S-k9+eW+T;=@j|AtKo?Rfm0djY zoUm2qvrM&70VkBq|65V%(R8Wc_tsV!v{v_qk zBL!l+i6$ikdJ~QA{BIjE!BiN1NxRr&dx#xYkB>|-9OQ;5`4A1kVPqm4Ur}s z^k)UzSOJ|$3fp|LYY`Sx%_mh$28fYTKoVoV1ZzG^W9`Q5eSwG8Th_pz%WH9ht)m%R zAq2e3VP0cneAb9M#BSR%1w*5c>(B}y((ZdAcds&6C@IcP^i(7^bFJOzD#`=8wA{XQ z@b-5M_j$nMWrv8aTFc~$(P`2E!5`@67w;;nMg8`T*;A_Ci}qL>^wjZj{|bZ;n~<84 z_4+)jorv~U0pZRTQQLReIN2zN$s{NwII|!&cvr;9UEciukV5wm=m-bfCepTeC}sSzl z3{alIooWXSa?ItUJUDWKa4CHcpNH;#lj zC60aUX370N{!LoPp z2}i13N*$gzG~G>5ew`%1#^sAwC#;xq4;Z4GMR!7=+ijx5;eee`tMigbZr#+Yzu36* zQ_Pl=eQkmQ(P%M0ka%OjP9fjeas0@in+F(U9PP|J3dm^^m$-Gp{gdu!I(5`M%EIAd)L#<;_);gy zQncJsT*XoX%MxGLQsmRwQcC+$(%901irW4USHADk3226r@2+z?g^oKJnz72j|)T zg5PW3>vLW2_rlci1swj(5sReaD@J0gHv@oyA$vcdPyHUq3ne@#gnm?*X=V@B81D^+S;5jD~(l zx#;4bw{QRLyq!PJK;K|Ij$LTkc|X{~=w(~j%XnL#!4QA?{<-$Y_P?dyVi$E7UIu?J zJfxHhZs6DR($?=kGn~oQ+FjPx2{ie$Y^b!NFSc@FV411qykc~5#dvqwaA3t`cg2!@ z}$@> zYr*eU^lz?uwyvEYSPQzj7I9)VzIDY=Y1#M*hn&03-RIBT-Xcp1BXcsNbHp}eaT~>T zkV5tiS;9u)>y6vYjbd_4N%=-$W@KJwbe-5n&Bcx8fz8_1&C1=)@*A5K<&hoi8}+Rl zRW~;tILFlPZVg`C9DcVoa$>Xl-R9VdEo$rL9Wh8z-DV&AChgr;$BCV~o8bGI+fA)I zb5A$*eDd;Jw~NHKUYyu0U~VkljI7z+9?INoX5ZN@XKvS*?-rfd-5l8YdGYh-8#@JJ zTXW7a&&zj4Z*IKP**z@(yjuRb;KXN8))xHV?(B)(*38e3o%a@7A^+Ze=6k%GBQ~F# zs2ya`yK3dsoWHyt_)7lX*K-H26=TykP>GrBbj3^G&IWwzH&oDDJ|~q`c>312^BmuG z&+F}aR-d;s%A(EZV85F^`)+Yf)$7Vdz9Ls8)>jt;e%NOHD7>xhH2-p4>6Iz))8!u2 z{?bp6&+-*T4kMu#O>Q|~JNc6k@H6n_K34Lp4#m|^JTY1rErVmvk3$~`NEn&yq8J|f z6dIRvMg)Ur&;ZguAnqhuBwIRB92~I39l)_)@)0=A%*iTn16Zj~#V>>Sl=o{sQEHjmgI=mQBPfJch~u$uGxCLQFe z^&hr)m>uy?1><+$V|i;TSO)tq`8>LULjb4%;J6m+Dwrhz7k=<5>>X&ZPZUq7{ zaQU3DdsgQr7-(HxHhrh!c47)Z0VL$Li z&w2967o5MY?9tV8)YLbJOq{J2Udag?jb zF}&%2Z}UslgV*%xwjN|Y?0vcahvCS^@%%}%fVjnN6XIaLG~22B0+gf?aE>*UeW_o* z5^LFm02eX2Do1W$;EhVBbWbG$5Sd>tB06+h4Hu7}Ol4Pf4H96-Z8P_g-4tFCMW0*w zJl0-*=v8{f6(b68CVck!1U}Bh;j58!{mpB5yGBF)4 zjvFkxCRAokf?YB=0`)>!gUnA|Qlfr@iJYeD@>qJ)K4Rs#I&O0d%^g$_II;6j45@$S zGHze!h?kNySC#*imlp$HJXdu;xWw0K=o`BqL2_uwk{qL#VqUsr6CaeAO}_+!46Xsj z3GVKzC0Hdo-WX27=pmDkQj;d_gJe#t%JBPGk;ia zn1L;%a-bq1_%;%M@VccDH%CO21z6`hJ%K}9NoK-nn2M%&K{~=6!@SF3yqsD`LPK*Je40ucI5>|5$y$zH=5fkg}2z(OST{!tF_bm zTpPdkZuI}G)!b^nKhzY^2OykI^dC<3B+z!yP62%|MWxT(NJ!bD&9OQglf%Nl4Id6(+<8Esw0Irb3+?WGGkh2JEtaFXvq*! zy*^#CkoR^c?9Egkb^K-sQQ~8Z0P8Sorhvbu#I-SHpsVY8>Lvb%be4x zn&^nuwLJRN^cut7R~HV5i`P`$__Z0+RIYKZw)g3;?T4>#L~qx0Ug;860eKnmG>m{L*cmN>Mhgeyw zadv$qc3l#QU2mj_P2_3tqU6knGCFTS(ut7xdJ>^8s6~#6Z#}*QmRN=kraw8XPaFjo zq^S_W$OAfAmOjW4E07=t{zB28)#b=Q#!0e2C!5Ap^0;9}#o?SOLV1;#TLKUT-!ExK zOCPyM)eU6yIMXkD|HxhJZE(7rmgeccEJ(I9IPIB}8P@!fBa~pIFcz4q9pm^#Awo+r zF4^Oxo7haBiuN2%56Z)-8`x1xIh%o#JYu&>6p(-ejDdtC9*Jy~5k4ylTr5kxgmga* zhHlG1_m0IWf-VE>+p9;Ok54kvd#0xTXij9?CtjitN+}Nqer_KRmBfIzMZuuiL4#`Z z9Gsra5Zof7aEV=tqV4U1jAGQDwW#R)c$`TP=v7DqX(h&id9aY9fhR0^@G01;UVjq( zwv`oM@eD-OD3eYoL*-cB9ztcia__KW(sgss4hMp?axw&w91JqB-Vdp+1uBX1%XM75PO5=FoZY_^9*Ol?aA+VHHG2H^5?32;# zer@piq^i7!g8ul|68d<`F-eLa{k4l_)-#Th4K z!~j{?&^WQmC}F6}874}72y(3^L5!zC$UuE4FSl$?I#-ZKbJEiOgaMC+4 z+ivJ%0=p)2T~E}iMqGyE$R7P>$k3CvbCV@nxNGcT)|n>P)gMB`*P;TS=sf)jf7}VW zATZvTOuegtb(zj1b_{J0$zs$v4n!)B>m7-#Pm5#YosM_d=WbNN;W)0Z>o#9eCMQ0& zC?j_<(54w z2oe=FF(f>%ysjw)`fT(bwCLEHabZoU+BWrjcuHBxm($FzUt5~_f7T|8YMCJFOWwSI zv~=p}Yd-gsi&D!GTdH|)f%ylgQA?F0j!aod=dOe(5CG9Gy7`PvPLH#%ZEZxhkSmbR z%n}NFpQq&?XX0`-9P*u(n6|#O!1DRqP%nx6;#)cUmg;ZzqKrd=y4Xuho4&EpOZHi6 z*^7b`kN-3{+IPRwou(j}>Wj+1`aU0iCuc{IF*YHX2;b0XG7f6}oad;1dG$yEgF`qH z;bLSY%XoAHALy3^f&vGi6Np()G^ZRi7r0?gLb^z!+V`S1fBOGh3%@}H8pdMz*ZraD z0W)g1Op~t`k?nD{*ZOUI6gq=6>=H#s3Di!tFaWBW4KG`ZL>NcKgvZ6xV#(P63h-;M zMe;+5F8N><29GLDJdB74CdNCdCpGZd$YlekX^6Ojq^so6TmTYIVkX~b#89ZD(KFF= zWKuhs6mS4(kY&-uB}9kCv1BLRzd*jA?&M64)cKikd-Wy}?)7D#QetfU`4PZE2Mn-? za15g9s|OXAG~elUnhI%nt&bu>HTQtvqTuM&TfP|3Raq#yOqum zDwCnks%fb-NLzgp4u=YYKsgD}^HjA?N zz7Uhym6A`7emoH*{^;iRIJ@kc*5eMB-L9<8v4mUzR6BvL7f8n#XoT+p)u*q2wo8kr z`@Ae*J&OGx0JZ{_ZX2e1)KG>Ei3{Y3$5e&nGKmT5#wejlwXN0cV++~AG{n0LF(N3a zCmr6t2f50C^LK^g7&++4EU;ioA;L!*;e34Vn!1p8wUNQbU4fC1?c!MWK9 z`81=fF~~&|lszTC83Un(9w|K_>P9FlgZzA2o_%EAxwWkHI=>%sd2+IewAzA@6zrO9 zVFW73e<4Vx%kSh%Eg6{hVFX8{eNjRRscPGISgUyW{L0*a72iS`XHzUEOB zZeLv1o$%!#u!k?tL9&?1>vhK-b+o0;4VakVtEq$DsV^=C=2Y6^M8^QVAwQGJk2 zC?LHTru_(WDIbX>04w_}(tEPZrcW$T445_vs{X_RCjqnaj%45tnE<{8F1yDlUGgbz zOes!W0WR@@TEg8tItpnRP&FUO*cI|jfW-~Yvfj;mS+$@<7YdA{Taxe2DMMW^cu;`5 z<9LU6D z$QyQPU}QkdKH3AgT~ZPJngF-@g^u2<(zNq?P4s3IA}^tJoilS6$P5c6Ilu}{Ei`(nEN+W?PSmt#!+3*P0&!}6%J%f1#ckMxgAO3x z$`>(J%|cc4_C+V`vt^^bq4cQ7fMWnYuC=YEr42~GfCy@IdQ4Ax9nv&`X0x$=@bz7fp*+*)z4 z{<{LQ_de!0Aaco#tBNRcs36KO!F|aM_PkjBbpvMZOno-MBLy_ba^9)KG!~mkqnJnS z{p^;*FFgD?;^%R^X2&2b7wRa1Zs~+S9b_-qL~5 zFT)T+fq!g{y1=0^M8x$2cyt1>-4^kp;PzetLSW5@|M>%RTalLXeHQCiKxvp%q?#%L8`vgvbH`<*! z!jd?V5U_}(vO}D&4!l(4_L1fOx#$a!m}!leHHmXl0$g9+tDs?hJPyWOa{>CM#U40< z_i}Xd0dW~qlu+;eRxU*Cl-geq5I{)2o()}Qbn$)3{mL*GC^&Py*=f z{MG)|T+og>e;5~(EgKPL6r%@#3@`|<*9y^?P=o9m*Hoh0K7F^2?E&h3*$`y2(n@Bg@7lC=G=C}Q3Dc1g+r8ML+KDfr^iQ5@tC$I z%{5{}Z75s%@H4(T!nu&+EP&%L)e}kyp`^hWT>Lq&%y>EwOot1ws-bYu?jk5&RpIR$ zh))U<+ZQ3W1o>PVe%xtTU>4w?d0c8%H)PYgHpO(k_R;T;M@c-9%X7Ikg(?S7Wgrp& z6vGq1C2NflrMSup>dM{xQ!)QV)~@R8&X=)=8tVds z-U-7797{g}Rl9a%#1r~2wby84n^UuarwB*3Y^V_~MwhB4izIO^LE&w{(>l^r40J{d z<=6vxQPvXA09N4)_Kl4Vk0%ou|Gm+H~&IDuK8Ph|+U9TpQ)&kmE6TaiJ+4tYW# z?xHA}DNYqLstWFyN)irzp~{NOQD-w(#!OjOE~hfp74tozAy*5RCV5}=!wU*^Qcwb8 zgYQ!>L2?p>vr~~(=2QM|{i%3J2n`yfuNIw4G~Uehq$(UB04`ZXC~YnXpTp*pd{q_! z5zVzWejcBu%h{#k7C{N2#RU-%*vY42^AF)OHzKKnoXR&ukmPy(F21g6gBke9c-&FY zOm4ZY+0dW2HJF~^9bGpFGeO*-vv4Bki$vpYGoEq9c)UknXP#QHl&jS*%dTmeTY=9P zTa3lc!D8s}p1*V^xv}3v12y+E=hD||PGihJzBt;GxLynU^o5{fMp>z|o+o5_4zS2Q zH&}J@IEAV$dkW0o%Y_Z(vc+@R;B-u_9oHcuPzm&zt3AYa)0%0y z#oJyF$@`aw(cgSwM7BozepOlh`FI+R9ja?Vg8Yd|^q+*dO~XwX=z!(WNE+gmEK;Q9 z;p$kksP@cgvorfsiX#Pic#19-i|y!qa%H{4e*YD2IY#ttiGzH2d-4Fp8w*uF>J2+O z`a)ueYIlC(`0oRE#+Fo1AfsiW`kA`?A@Q@U%PGp<<|3p=Z{gh4fo3{RB=uFx(+}ns z7xM7T>ke`k;n$(2Z=Q)?Ral^P2ivr67gprfwgx5x=;!874_`b8#9*;jNP0zs3g+mI zSLrUIk^gQy&-{)Grdh?TjfbaT*Wpg8Sx;W?s}E)yNk|yIfuqggeIPKIXeNVmxOs71 zX75gYH-mLo{y&qM|DJ=?Nzk8{u^%5IEO5{dR-P}}RNgg3X*Wa%J-A_I5P~6sxf9_W zg!CUx5EvNx!whta1br5v5WeRNCrxqEGV_S=nP0#KJPYwky3NIGp9lmG9oAX6^Cok+ z{tvLi4gfD88YI9)8oJF)f3BXP@TZEmZ09ryDyXmFwNcpWEzEDAE^g97wwfzSz1K9*y|u0yo))%*gJpTr_Oh-+r#MBVhH| zV&v;AVJ+xqQE7fDX;M1g#~s~d4aHVc7*}ja4mvPy9$i4q(DWSWzV;)|8XTZ&jbx!& z179kORqF53t(dV$r+<^?`qtJ2YxEX}2%|zldEM%4pI|RTHh3uJ0Sw(G-ja^=97VX_ zvE1`s0-?}{AFgvoU{RA@5XNop{q(O-bI#+Me%)6yPk$7X4Mr2a>Z?AH_fiPIA<~mM zD!Yr8nQ_18uJ;pcqDY5h{kKa+Axj0|n#Tdp=7Fk9Bku|TW*{+J(j^;aZjO zzkXV+S%t1Qi|YdWUM%M`PJ8U3xn* z5{|#4@<-i3X;GA2^pHUZ>MJi1u6I*n|5$xzCY(Apc3$M)!I$|{)e|{rvyx_&QFNMu zO~joTd4<}U!Xpt@o*|uKVH&tnUHo$F)6)tA?jb67b^VK)G6Ih~+FD*;gG0i!+S_t@ zEKA%d>hCYv#(4v2hc@q=044cif8B;y7F)}U_qDRCb>p$E&Nb*v{5*@@hb3B~#ibn=-JH!UZAprb1L=_sX?4Y#(M;CG7YurSosIR9!1CyLj(*r3k=qZq7aktZ z$}FUI?7lS*R&1%s-G3v%)^y@VUzDP8R*Op-54(2H_e2`!h4l|7oo|cQ3P~MCPrO}YN zUYOREA^58>ky6(?Coe<9?Qv9y5QO#Xm=Jfn1dlXS374H#Jx|w{gsS5|$p=`e+vK9| zfNG^%F$UM1Smqh}O5QR&knqYtzG{owb3B&if2GGojPCtdce@kM?y!&z%#$t%*FcY< zBreb^5Tc>8IeOp#mH81YI!~9k2EZd}tfBrO5^J#Xd?EnWG9}-%X}@Arf}$ypbLh`l z8WmqK*i-;6lr3Ip0T-nzFoCPHgV^@Y8KQ!yM@LXYwFB$NArbGg&9Sy8wHlN6C+Fh8 zz^h8m24R*7l9FhH3;|I)Fvr=@UZYwHlWcB3Pyh;gSOE4X8s|{GMZTveS=qo^Bh>_( zCUMapzow`n_t|GZV%KgoHA*U*n_q81J^QjP^^-H|c1DErXpwIw>_C>9m%|!7ln@D{DdJVVnW1^i!6*oAX=|&$|qv|DakjRJkhvUsBaAYCv zk+`E#|4PmVc94qEh*C>ZDQ24 zXN*dYfe`1)2WIliC}oMT#XzLR!>$}v-NfZ^%_n5cwvh7$U5pfG2!{!l4&X1olrUIw z9v?IsVBxvhrOeZqc_D9@k*O}-D;qb4ech5l5XE7groZGLz^m@> zSaRhPxiflKcIv!tW&T*OoCYU9yZKvfVa>4GSLzFz-IyA9o;mP)(O(#W{aRx%yNzT) z$AiD(8VzV5d#i8xIgB&pvswyHgA=a>7a2SfM=4OBG3Ut8=ozee+qIB`!KxBc;;|Kw zIY??mY`!glh#vx(sDrtNY|@~5N-T!>3L%9ra6?W>a%PY~%-6PLD68^K0pAZ`3J#(2 zoybf&){K=d5Ku*rwsDy@OK>M4hGS?*-C~VYNAEQ;d@RR^EXlsSElfP)avQANF!zg1O;juL!4aP%8|NmS z1z)=SUapn>_NmGE+|hX1-BEKsj^`@#wyVI@sxm*PnbnOCtex({()9+i216e&GCAb0 z`P#g!D`*Hfjc%zo+|rj7Q=+hk8FS0VKu9nw5##PKzF?Zf1Dnw$C(P>$`{NLoGcaX5 z7@7`0=%vO(KlX}dS(WEq)2I`S!ZS5%YE2ahDnKZw>?eoIm5BQ#L6s%@A|q9E-v(VG zuh^PBQosi^QfiYk0F<$>Ew_YC#AX^|1_qrx5eecMW9xv0{gDT(n&K|iget2+aD>3O0o7$I7tOBhhNc zhE=czH01Y434jj@EnH_cNXSTJkOUv##5j|y0tjT0T9PHEsLfR00IYhKo~V-94+81ob;F1Q znUQY92LP_lcmo5v5_ZZphK0PlN+Cx%D)nl+(zv5KS{7B{|$BbJ($$;d!;q2eaTsqmi&~k)ZXwp7o zG}&{Xf9vb4d7q+^S&t|O9()W!gIZG(rN4_^H_XFACFq(;NPL7I5eG%s17NYw$Wb*k zkianrV!s8j3+PCAevWw=-VTUnN9S_N#WIp|e?Dp&P*zwwrJtb_K1Y9hDG?g}{`bXr z=MXAdqJCsoI5bHb?+UxZ_^Tv9_@moQMI+>yJ4yFq6fv$aJL8-3*|&Z#6^?vc%9^y` zX*mJxb>w}$m>|0NMA)G__Q&>Xvn{3vYq<8|+SbEMQFcf=m|cV*o!%MyS^i7(FRqw; zQp~?_G!zHGjFAZXtuNVJk_50M9?UXN0&svWfmBV3kZ!wmvkvnX5r3D+U6LePcpHpZ zIjh|ULH*a&ak4}B^Xr>uCU{QE*>jACrg26;s1y0|`dBJ}%7~B2?L>l*z+iZs9T8?t zjb+wFnAyRODI=fS!j3B=d&jxP#zD3O*b7XD*En71(!?XC4{ zJkgpz@eO}G){f_K2+kY>nXS2ep2)+U4XjxTHy9-(A$b$K{2X5gsaKv}`zCZo4Vyp! zA8$(x8vz9DP%%tIj2RAyU#NCL9v%!KDB~VHjaE$;8hKHHq!K1IE;TW*uDdao? zTuX^LO1Rq8Q7qY9c0hXi8X$oK&%92a3{R=iio3V+k^zlhQ~wgbIvB2 z8H4*6$+;L33KKI?7Yjk&u%*id8v{1k(MN=p#PR4DS!6bWG;N!9RCsMhf_WlQb9G2} zW3Unp9FK`jVI;>GffLEuxymr6dR84KM6U1J1@(=uyGlZ)qb=0XH@#5(;AgJ+4UibwD1{$Y{T_9TO9b# z!7cfmoPV9s96^a@1i%cL&TS9l-~!E&b2?;Eu!(RE*PJ|{G;Oc+zI=)`kbZ>(vzSj8 zI*dEB5veb6))#M*K=slCRQ+%#N>wRrlI6=L<)7sJR#VD9r3h?HGRt>1%B^(Ew@`OK z`;>p3#Qrq7dth?+_vGEr4R`;dsB41M?ZdnO7O;1GvM~JN_FsY$RucXgBbzBDSX82z zK+?o`Ix?jq0S~sOMX+FEdc%>;MX9}qIsaqTN7?q zw^h6}x#Oi4kIlW4Ks&34gH8ho3)-1?#zMnqop{HpjXzeK|6;#{2K5lZmo#cFMS(39 zYOK&8TMZ{$-Qh88VX?+xs>V3JcG#ol&!-yi#aipB8rz;)f76=aUo|e9N1k9d z=gn%uuR0Hnn(I?FJ$M&y-&*(0TF;(3pT?TVp4uLu{yNjN!Mmi!4qcnB(GV3?ceA9y zLa5GpvnEr+N!QDtBm5Y3QWj{>avcX9qs1u>rnlOon!BKgw)6=v7=l=mNQBwp!CcvC z$hH^>dc`pkplBIk-qk$jg;Wd#5cEps8qi_~p7AYn7N`(aZ=oqPb1{HHwH66Nasmw` zrQGylGE#f9>a2^xQ5{sD8x$INt+4WHG^yIlgYtLt9+~HsMugiBwdfoeYJrT*!d0mF z!eaT8=hxa!R3s|}R&~h&rx(M`=A)-=VL~i`)qFUT5ssb+7u||W!zD{ZM#p*?aVy4h zZ>8k6B_UZdb~i)RT+Fuwp<4zBZ4Y1Ohy8oHiVwG6`q_Rl`pzGA;(-)2J2J|)T~Hl$ z^js}Oltpx+;Iz1uy_O?F1{a<~;|dB{-?o;D;i7@C2(~onC`u`3I@#`X+CB$2coJ|(FX4__B<}V!=VWr3?Lg4e3 z5KWAJK$-5o;}^O=AF8}Ytrkov_v@)k>uK;aL6^wNJxDl(=x(d%d0^K2NVC)Mbtq)3 zF{@XnW2^TFe&B2S(C&FxruQvT&c4Z}zUflx7$;||VozvY=lO}gSAPAkg>}>;j)6;$ z-E)YZXBqgQH~@X&*DdV-tB4u0+%&K?Jz&<;#W~(T*m11dv1G^Z@qXIlfQrU+zk#td zo%f}WK}s};6Zi6R-|Dj6%id1t42^A@_7xBHCc#aVk+JR}#=?SVk#3HeLD3o7;juwu z0Qj`kbBGKc?{yPv9#U)`z+eYYro&IQh5kvSHB0z^Hw#v39@dQM*8zsPwjt#E6ngYP zRu@exeZ*wDS9@>Rn+~}b-kF)CBh)u&>OX3`-L3Oy_);^KrAO#(=|lDOQ8)9kkm-^0 zA|uVy;xc8OLwvpbwqt=x<4F-?%4K73ni6O-(E(1Q!Q11v`a&F7hqZ{Z&lKA#P+{uk zT%?(ajP$_JKSNH;7$Mc4J?Q2M`R$3~=1E@baUblUQy*oush1sHQR+Wcx1{6$Xq3-s zD5GdXE`73IY5D=HRJPJ!;-3L7qg(f4Chwb1KW3eI0h%n286N|ckY>lM%=-tAlmj!u z@gkGWW#jkvA0MR-Pt%_)hzJdDkI1-9q*Fp#T%IhNKmFt{*pUwR5t(`^QWEL+WWfLF z7o}%rpeJ{?pM*D!-%#Qz)Oz-J`&61zRxjF zSS_COYP0-UdNO*7vw3qWdS;yH|6Jnui&DlA*Y>2hveRd?NmTPQ@jJuE*j}EpKw{I+ z15`*T9e-3Tg`LnA{9hPR!T*U7g#dgIc2M$>{6R`k@XV0{LRv&bT~t9b0*avG8vXXO-6pF4tyDjiofQWG{&7Btm7A!Z~dY9n&Y zSVS~JMATbY=)W*gO;btDi;{wY64F7(tW8AhtwhXC#eD2UB78-SOt23nqN7BiE3MUXqx$m-;6ad(EmR?QOp0y6Lq}gPcRGrFHiKcy_d%|&r5D0 zzMh^zLBUsDoGV0+9q~ld{2fyxyhKw)g-b;FtAvEIB(P~>|1X|sL{@xYb?S}8S~q)t zig#3+NEAh=_P%Iki$Y76a%;DEX>~|a!Htxf*osH#Iky`MDXk?*k1EnS8jE`Fm6D79 z0~5Vn`=G9-w)a6}Q%7I_FgSxnEVe$ zG?gnJd*$U7Sj}bY6s*;i0t)u>(~tkbh_0=VL*G_2$U>Ie&zIg!v3xDNB9ta{rH*B( zc5-On1VoA5;8Jj!AX;(&qTe~Y0M~grc`Kf`O|ssu!~fL|ZTJJaczzA+BE?(O$f@5c z>P6>7mHZ8UK7WCO7gzH9r4rDhjVK|q{1~vrLTQ^)kw+qMv1mY;6pFM*4`Dq_F94VC zyy#mDMI$S{Up8J%^S#=4pLw||gl#`;3a%?!ZKqvrjlTvqKY6|A&8y4r@^qBuc$Vn^N40iJtVt{h6G+5ZUSAn1QrfPCkg{S9`r1Ut)iMGumD~chIkfu`du`&t?*suxv!LR zxlbRAMdi2v5Xd&2jkzb7{F@a>OA?ioqBslw5N3maJzK))Ro_?U09>~+!mCf#*LlxtVn#} zQ&&mR6B?CZ%O$A zChckFZ*E^*cKEo`@!bOn@Zu~;GDT@0(;Dl;e5W?3%+y8S%7dt=d!?nWB_|toC!#)A z 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

X_+vQ}AS` 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 w5s01w{9V zhB<4QTwlnevo}x^5r%+KL7T9U?IT2ieISusDai@qSay5j3@pBjDZ$1-eFD(Q4Lh*Y zX$_4nQ-CVL@peP~Gl?eYLlH75ca|DyS}#W#sIwoATj-<)cbMt5A0>===4zvSMbkkXNf?@)T#aW%Xn_R4ODx@4y) zx>M7=Q@6P7d`hR`%TA8lokr+~H(s`0mwagE{&2sj-J4C32OnTXqhGt9I?a7qv{j&^-2L6xZNQBT!rGaW79smG3luvKL|DDKXvN9e_)hev?<@2 z1Y(fhnJ|7BLk20z>0;k^`dKY$?sTWbj`zGDHL7VvkpKEoGg!6U%O3GkdDDWH&`Bxifcs#TC4nJ$K z@G{+iW%Iw+!ThSUuCh1};Nal=V@W^RXuG&(72yzZawLi+)nR%siXm$SBQh+u6v?hGTp(&N?l=Y-)=g;>ar+-H=a;&;Wh4Q>(tVEL3C%Nwx`NY)Kl!d-u*huqT zwWjWC>Go1DKCmn#6h?7pL3~ zK9~XYe-0uN00F5GD)29;N#G{#R4IApO5I)wA4Zxh2p3r=}_=CHntWQ?fJ5|KEbD7Yt3#SUFxby?4dX zO&~HtOG}dus$RQc^8Wy;I@3Yb>;HnP_x>xWn*85_s)_#_R88bh$;PH62^J)VWW@MZ zCws-!I9homx`d_hh9&aUwDDCoNi_XmrfO!^|81(4wDo7zcGlL^{J)#3{|T!88}j^D zjm{utX8pII>VFM+{%fUq3YY=z3YvK9Sz7L#0_Y3WNM znSO0gSBm&*3)rhvGqS0XxGysDZG5|tdtar)%`7*1d_o;v9l|K6x2nP%1JeWP#aCPd zXyOdQ9C7L>jwZLOSweRC1_*}R5Hx?&cx`T|&@4D-aH@&D9k?jlqT$j)F7o-4CD%#W z(*^i{R}RY`h%dG!vP%iG|CT0HIQ=||zm`3|_0p8NRo?xIw9X@wzDdWET*}wAOqKg5 z$#?@;=<}L@DS%pY{R98Eu~f<6)fh$-E^yBh2%Au0CWi}V2)X&k;6QxX*_`9J;<(z* zY4BkC_hHlt?;Wmu-L~GQ| zPJF(U9bTiU9WBT+YZfa|2qy$c35M7pATm?x91I3On4{_dSG@=g&YR_;+Ih6BY6+Yc zZbikMae3Os{YlSS--S*O0)q@TizDA{ zyVMeC10v-{iR0o`UOlSR|=mB4}zV#)tI>-hwxXgBLCsH}I?v%`qI!K5mbxA(#S( zXA5rxhU(>(Bq`kM8Mb4WHIK(z(%ZF!e=sEiZb(9W%r%^7^B|3<*r~X_p`pI9nI`W1 zz%$aoxjxfeWt+^`+P7Qgo-i&tDiC~fu}QtapuT!M64hAjwI9~;`rM1-x{0yD-%af~ zJNmT~>XOP*ZyzOl_>!kj#lYF~$DTj4{#BQIMs3NV>$8vTZ-~=P$1byY4l}!GqCm(H zpTeTwoM-UIfTt0`OTj;{c7G!LBOS6FusPBFiTJ@YWSJm3`D=}&%Y3|=ZMdYkMtpAb zYdP=bME6>FuuRyd6y{>=Mo7q4lBJdHrJ3X!b!f}IX7s65b_=sMb$IGZ`fJ!t>=es^ zjbJQm{D7V8iH!;6iIw2V&YJi0<8M7jhq3rA^#$ON;mQwMe3SGjYgMdj-%>_Zde3IE zMOoyZit?!b0vK@?GnvD*diV^I@!ObulNNZ~B=^-pi@|T7{on5S`Pz6F- zPlLx4A1`FOg1Q}|!AYYgaEh&w9!6qG90TxEC&TT>LP7% z+|?@#&GW;oG5B~zxw9;vx1OO^GZSyVay)y3wxuJ|g-OAm*t6s(>Pn(+rn;D}!p>Xj zD83~TLl;5(C!z@Mb7BRP_ajlP%E5KO62H(-;uAI)5d39IlhMs{+S60TIfK_fQt{2P+ z-{S74ZZQdr4_z3UPHs|JgO_gMr3T+t#4xV0nS>bdk7wmI6~@32n6u1`+9;JhU5on? znf78nBCO+i#?k5kSg*QXP#on^#6!y!mL6=V3}G?Zd0~b?sf$I9$9yDxS7;!&jxiHwZp-^s+w4!gXss2%12Zozt;vm%O z+-Q)kft;>=mjbx#>KZ^_T4<^;w3{GJU^$ReNkUXZ>iZ>$R}F}F;DLv!ggv)A6=r6X zT=9spv>cV`2kDIP`>~i$sdeOZ(FvjML#qD#sk7W+TJKb+(!A`vt{`@PSD(N1b;Di7 zA>SUWfQ^y$IwG?dF7n(HSO90T!!T!u=F|CK#kbzT5Ujfg@=^5X*X;MFtUg5wJ*8bv zo4G;PZSE_0qWu0F1>! z*i78l`HJAmq0}Hmrhg;({58kHS9W>nTs~>Ruh#g_I6RLVrDPDVt)FE%3v&w`0&ouN zB3BkvaV;|G<<~w-=>8nx?P|~KmMRdN^BXUtUd(@SZNn6+^zxo@N71L~&)C>rHV4~| zl1+~!#p&b8kec{{_{YdAo5!ySoI~4Fy!4DG4|}-rH&L#E1T^pOH^J%8iUsKzPZNjN z*-OwWKF@7q@6f3-=7)7`nf7YVgELjem(yN1?U)ml-^7hT8*Gf+#hm-z^-TKLbL=5u zQi9-KX88bh=`Rkn>B9Lt=|6-WNJI{;lm7U^{sBc0tJ>z-0yhm7e(l;flmm$vXaz9_o*DQC9b&(9M7gx&s z^qY9soa*j%ZA$M(cb{yeDJo8asD7yji>yvty)Q1S9O|EU1*_vhf+D0Bqz@;X_~65b zRWjczo{H=c>%xY!rGKce++Ji~-#Sfr z(d+wDjWUN1jk!U=6itC8QXk#6y_eWThs&)K=<{=7%NG6gO zBOy`&8};R9tmKPWr5aXV&w3SdZ?>p_1K%;dff3SotjQUbWiS1$t z4>DX6i!dO-Cr485U=71Dpcdlgr@sQ)3DM?UNCtAMN_0jp4jAfT`!#yY>{p^vTgI6! z#3?wSKuO!n_nK3TGMh`7woLn^BgASIyHeo$Q8cd86k>#f`_c;-<>B23uJ$1qD+bnC z2Lxl_sz6YQyw_vdB$8eBmFT2QLbh^6cG_~bXmrHw&oRusp%|;2Gp@euW632U5MyLy zxt?c5B1CyPM-i9&A(41hA^mX;EO0GFL_Y%n5`7L~2YErhYz(57(y(R5GzFv(HpJ>H z2&se&?B?)u&bR7e3qD5Bk#27NG|X{=l@cveTPcdu)gyW=SzjsOoe1)jBgjw`nq_4p zWPygzr^9xn98zJik}sSJ79k-Sutf-Y;O!PEsn;{5J|Q8rpvVH&DDJU@D6ZU0<`chX z66~6ZH40uJZm7=6#?q~xAnuSZHqIR!LkDz6X# z&BA>JWJ?ODAhRm3eAiGZ3y-bdvM{~_JiB3KfH1YRh!Vm=I~_8=K>l`IA;eR$gB5;gUVPQEir2NWgitwcUXl;w{L!g? z6XMSQyIjS9yamr~b|QW)tS(3>&-5Ypj1Z1{kX(vINCiOLE+%W)Szp4#5LJ>KbYQ)N1k}|m_0_E@A;D%SOd#YESu#+E%N$tedmJk|#i`155NJk=7 zd)sd1ef4|2IeYNBgqo^utC|>*hSiOlmW_-`N`{qz_fQxzOrrcArO9QWsl&>}6_MU~ ztFcts4MlFGwTv}-ybmk~YI`^8Qrwb$jMSl!jk~UmIhA zrDVMH>ahnFpHHUd{n=>E#nyaFYI)7$@}{BwOIT>VrR#JO<%?1}j|6h*J*sG|aEV;_ z)d{F^MLigMFp}ByMW0e?UL2<%g?v=Dk8)+Y-Kwq7kWTi00JM}~JElg$Z`rkxaVl%Qj zH6(EMsOA^nb+1D#L)6HLtZR^{+T!p>6;|js!o%TYu;B(x*Q zWfNXw*w_04mMiWd+lP|5kMfK0ZpK{j#n8yhDWw__^eU7G- ziQSY}U7aG&o=t5u^vMsf-Wu=^8qiP~3U(TdZtUbA8}z2~Z|Xr~@sLIZ>Gr$uZ!S;G z4NyYAo;AZrzuoPD`{?_;P9M=AnS$mX!;cIh z5tM%cR(%X;0-b$vd!Pybq%7h2sJ`QsR8)=igV@D#wQEjJsiS*5VeQBvSJasF6@;z0 zLVx1ecRkfQ6R1mV(9Bz?$s<%mp*wKfu`L|^a?#oL%R^e5^*x7pfOzet;O&X@lA0%m z{RU0lsmp-IKu=J35l48#Hg9kJ)N|HbqmBs>7unZ`kDGd%CT4azZp**)-5uaLK?F;2 z4eFyI6O(mQ-6#43i;H)4!e9S-RfhJwd$RaYQpL}5FqB5EE|{^Se}Z-1wkYXNUMt#SJBXs8S z&rAn1y_KnWGGxGORfgh3EuDo8_jlS6l@pvzCy0p%6<>p^%|WFf1W_YbyILF{ zzh@Gi&B8YI`80LP&-W2(Mc+)18{JjJzfZP)`)Z>8_hZNYiGj_>OC_X*(&cx}z$c>o z2X|@uV*dPPw;|(&q~+W8%J_C4y{L7YCC<}t-sUbj^G?pB(N_ncV=5@CG&HNRW7Zzh zrW7qs$^XdozH?_0AuOznOy7cV=NOfJ9lA2YCWvQ`~K2vU)m-%!alHNId%Xtl8TTc!F@X5&Oe7- z$AYHaQLSjE=3UnW-FUw-&tF$Jb7Zz7Bt9$O*v?D^A^`Zylxc)4Jc#^QpDwGy;axA% z6BT!=aqBIFFRlselz}ggs9QAAGya*(yO(zoYMVJa`(FZ>r-#MxquU52>{B)>5Hqj` zb9w49>44!H=*7iwZn-j3V)h6mMbO4mzO9+bs`fIr&VJ%gaRkSgxFB*0k&+&WQLw=R zMg=g4_wYYUuD4DYg?$zi%)w#2s7w6at9C+fa}QL;*W)txoSA@Ky+kb%yx$VB&IVTl z5_Ry;442_rK8d|^@AEdk7`uNuY(A_6_C)D6(ECrfd?Rt6l0^2u8uT703VvHGN_nLB zJb~H|;D>wXVfzJy=XUnQBNZ|{!Z@$AL6vLVvHKjbZ*E93Y(36^2K=g$kO z)y&u|NdI7)Xd*z1*IkB(Q-MRhnFP}$=`^yi+q5sS7bl> zV*0*PY?D6kYZsXNSY%Y1iGb9ngMXqLY@gizh4TBxfF^60jVy`#yG-)Q0T@QE$B7qi z52v11<6TBvTo=taTmJ0!FK@zVZX(ZDP2{Bwjl9!$#vhN>;TaQwYh@plGHa$Pv{LAx zs;TI8O~oW(>3O+^nUL$xjB?#l7oL+p37P*z$v4fn>1OzPhUN+`c)Nb+3+(J#xLp|k z*h^b<%VY7${Xf6=+>h3+^`g`TF)E6_GlOLI*I&jiQI%jGco&0}2_DqTR3%!4*c&UU zjj3WC;@abz7e!w9!0VvPMRGs{#iPCd@AV^*MOwS@ch~f9@z-|R#VD|fVlU0HdTHHT zC5wkFyG55@^WOX+xRe~QI0fRr4|$7_T-ZqOpFN!2CLXI+^YQvTBFUbK z`cXf(-+oFG1Cs`m`-Xm<6%l72wYbk)sep0q%=EJ-YDj!rB{j})EZqDgOVNUU(z0+A z#BW^uoG`cTcQ40klnx}u^n@KNZ^@>Gq&AMb-OBIENJIl!9BgYLo`BQ5uGF09;2IdT)K@!82` zN+NpHBRiW6QjibNo7W?|nr`L~*A*mAOW&BRA-dbY_{o(l zc|=xBN)u1kd0=V(XLJ*}2KP)f{-sY5ovA?vb=y$***Gu z=kx&nNKW9v-!F@6oe{w|)|MnN!`5)-^;zzQD|sysxb{Wnsly+n)(h_Aae}b>aT=dO z&S;#{<_zpV{tV!45zu+h{o}3RGj=zu45|z{*V-j-hTiFTK5J5PVUhLda%ctfed?gM zgP+LWNaU5ZDB<$#wU?{f->7e|KlRRkkum&u<)!ndU-u7dx$MzYK zbB(hAvp@TA+ID0HeP=x@lb|~P4DL6eS$Z*=pgI&CCvwf6R|-GKae*2w*JNKYdGjd+ zPq9(>H5ojx2C5E_4!v`TWTE2Xkl$Yu3KY+>a?x2PY$hmFj12co9F~e44xm7>*M#}Ch2KsE0;~{C-{ocX*g|Xzk zmb{N1cUgAfYSlq4wSRXVL;u`?Z?o<~uG<#| zmsno^g<)Gx|74=|hHS9a3zdZSH1(1-&ck`QW>-g?CX5mZGmX19ClY46CtwwJI zU8oLLSyNW)ow{ZGwOD#$lNSEn?m8ldD?|KE6)w~VC7eJ8v(@2Ms%9s z{fLa$#a8i;4swlzIc7~DvYB2w6?8ai<~{jel9Zq3tAe$>L&kH6G9^_vd7Gg{_~hx1u4W$(UeljmP_ z_kJ!tM1~O)WJYq_&DJ-1k6u1K`c6rSFu$Rzc%@185%x*eIho9(_ff(5Z7(C}@vN1K z$6+j;Ri}i)4s4}DUoh9i4rgf#s(fV0K+5>B2t<4m{PbsEJwFx_aq%?+n6M1Fx8`7a z`n$SXuzKw4=ZkP!E(-%#<<9v6w0cCZC4q$$hJYgMiyrq}6ye1`!Yk5C+(U4C#sYCg zYhaK%Mq^+6Y067zM>`g|h%0s?SYR*Rg1ogPKn|1bx%AZ7uv|C~m#>*2ge;XXn!x&^nH5z)tRg78cn z?GhKmIw2~2fWF}ZG3B}h+Jc+?io0EaRC(dI?<`5pzp7o!1Qqej6jhqQX!zp2LZ(E^ z34p)df3!4&Bw)RQFfs8Yh$j^iII0>q57WXyzSMXIjCxhz6O9HmB=L}tDF$Y8EGrCk z?JQIdOOPTF!?z$tRN|(ig^?nt-X$htih+)<(rwmwE~pSYF+n!@{uVLAGO4DPsD^_? zh9r4Xf#Spn^(lJFG`jK^yt)8dTNe{D1uII_l7A87O^7^|0H+JE;2v=NDEJ8iB`B15 zR?Lg!LX;WO2;M@jD<%TC^ayNB20~M02>IoOip^I|R}DWmF`AIEFn?P#lh?01+U!^7 zu-ZB}?b9!i2ofaR4$4XjtC@o`(DghQ#Lc0kURirByzX^V?Yjt6pd3_*0N0uF6YWLc zG|h^{WU?ip>4t06RNO`V>}CXmR31`5JV~b4ah*iMSI1|CWS#O+5aG6eNyzG>k9{$K z(sI_RvCI%WRC+Tj9t*#elv#$0IgJ7K0fs0cZ8KLcj?m2bWi3WK3$CCnw*|Wp%S?CK z3?nRHRiAdflkO`bPPElO;YhTC3#vpk3h?|}5O9ZB@ByzY<)iD#j&jwC^90i32|!R1 zl6^E?*M*p}P;i$6^)U#9#KD6o&?GQp)fD3RPDhOdm4Izs`WFXA4C>&c->XQVl7eR#zYZQtexWb>e z`8@2+Ed_L+`zFCH5e4<=Jo;+9oNh`X%x}H0+^#Uxp|GUBs&eWfV!nqGjR zW-^@BAX-enGQ=*L)<-DQDuQ8>(0XENa6p@~lvRbrIrSVqRxyFO3xFk0x9KRRZsUy%|Pfnm<1q&l?I zWpe`_`_+WnV%c)m{L)^$Z&p3vHp`IHQ2+KaWQzjg^w(> zo`*r7?A2a}7U|7F&%xS{$@CkMrtz8rM8i3&G)H0W2L`bf7!5BxBG5E<_&4$kjD z;6PRDLc!0E=gKPT##8F=q0ao!$2kWYl6J@mzV(1l9suY%%r+DeGP>7%qjQkD7H1Ol zX?3S!1Htc*ziug}y5&+=>r7nX=n+!MK-S=Rj!{UGH#KU(62Z6u(^0hN$)l8zAm79Q z)Kq;qUNn;j)e6d!qSwWl)f1`JP$=AuOb8*x^x;bp19sj65rRALXUgUx_4eLL9m?S? zB67f4$@=$*PH}g{sCd)CvALmg!6SGsVA>%fQGT|-4uNL489Qo6BM*OR zU;NHy_dKQxTGRzi4*cEM+QVx1gVN>psO#@emu+mpWDJw|T{!2I=N_zzt{%7kCeSZb z=mSE5ckplulp+>cf`g=d=rO{8#E0O!2o#Ev9ApPgzpd+m0mZ$Hzd@tN)v*K}td}Am#BCq4swpMgL*ZlqaJ? zlecyr%ZWLw6XayBuNa7fnC7|;_;_QU72tIlMXLZGDC1o0BiTpoXC964#7Qi6&em1W zA4i>N;_$MCk}9|-%7CT8AWKh^oONZ5=upw&UERaNBR?LQd(8|iyAgVE z!=F)rn=B4;cbIc?Aju*q-faMuIshr*a(*=eN(pifAkE`c>FH)hN|=-{FHjjdMno<@ z4}1PIOx88>!3$PqYFJUQejf!0ZVKBt*OoIjDt~%x&hAB&b?oOVCJ8JwqY2GI7)y|S zu{w^7>3k7ZSpJHw+td28Tgip`rg6oWFV{8Z=RGq+vet-A0_5MH;c&;y#mTQt+ApMD|2Uy}efD^LeE&7I>Gj`5+(jV7ck?ym@9Ps@ zgDQF@#K4%|iaxp&$t-O^%Q{;CJ%usS2Ue#ro~?x``maxzc%C4mhC&%GXm(a2zro&e z`SOaVF-fJpJ^N;=V&Ew?_`fq+6W2z*L-cL>ZhnMzSj^m(o*mJeQIicH8=W<_nfa+TbFXol&PkESl$hp3DuyXOkx8f+uE;rrsHq zz8hJewM%;!%Jgpd#We!ooHyS)C(nff+TXdnC$nWA-{G$=koFdCl+NGvoDb%k*Z4SB zKQVW=`CY#Bf(E64>YJ4?@u4MR#@2I=9$s!un>R3;_m+NFVbfguBQ z-p4tbY9zTz$5q9RSH|aPUNJ8fs72^#@`u0T2hO6zmC2dtXa@})(!-jc7b7}q3{+hDas;%uN zK5{c$b<=`*-8TJmIBmsx1+pFM!Y}VA`fiK9e8{I0CS$(McVwSJv*#p(Mc>(%%WPv| z4yrgv*^<4e&Q7V!PPG@PoO!#vY@5t~H=B9qQVp0cqIULgXVC0RWwr%2b{;L+_o{w* zZXEW+cBhE{ZkyLmO8RzU&32}$Bbk4f+`olQ_>$Vc(_~9WT6bC^x7D3?%K7&ORO#>C zQLpV*neEP{y~q1I*aX^cr}2JwR822O5b*ZQ=7(Ep=d)v-C!f#uV#_3Hywfg@?PBMNP+vVWhk z{F~&#_lJ=`%F_>()DG@l-?mnxHk2LxOyBvo^zG79>Tt{6v;D2-`vk_%dNezE_{R8WHO=^!XVmxV7YALoyJVK*G@0+IE!oiKe?isegWs(zfBpkhedztC z`#(U{*MFY;Pf+#Q`ID#>=&<*H0aXv6&*`A*r`P7eS^`M)1t|K(n3B$B|> zB#8nafIg;wOa&dkQGO%~h)*eivY8-w8nX}Z&;hs@1Kv@)wD9_$zfVuJKnR4YIxCO> zKr}R%iT@>Qn+t_N3QEh$iTvE;>IXHo|CzOI#+kJyyj?=xGehns z0tt=(f~qgOJgZMJ*jhtzm$F(|0c-%&j^OYDcALrrzUE-qc8kdA@doj%HR*O|WFc<7 zk*k&E7Qz1UFfE{@d1b|vhH2|ERHfrt$KgB`-doTGZQv%{w)kTH@^C;`r zS)T?judsjJZwps@WM+_y|B)sd&#`&gc{v&(lDO<~Df9cN4SgAK+T~Ub?j^#y#3xZk z_~hc?#h6*`ig>H#KnA3k^%hQASTWWDBt9Dd=Dbikf$_9h4_DG9>+fPFAfd@lE*Z|; z+%OD+zo8A|#b>G` zOjWw+K63!^8SL)6ZIKe^Tv1dQ^zQN<7&p5tp^W#gY&_T`U>Q`#1-+%s!N+c30spzO zdIwJPaU<2Rb1!q-6p&{)GwZ8s8g?WMC+k=}gn9hf;;Krq`L;qN(lE%%rLO35;G4eq z1V}Z>J&6}tg+`k3g`zKJ-}|o4IY`Dx3Qf-c9yA0Li!Cqqm5?Oe3?{XAvbTQ6nS0v; z_qbpvh_KzpYu zy5~QAJN8N7l(&Cr;DVEa=i#*Z`O@xJYJgzCyn?{hpHn6WMqMAhPxt?ru}4>Qy*V$i zjEqfUa-DnFanl`f`g*|V8#W7-3a;~2kK7Qt9HYOrKj1300a$ z^rlaFDFeK|zS~au5S-d#u*mT&620I~1fL$o zF+`q^W=bVPMSBL|H%T$S+L!+YRS~!Fv23r%5Z(D_uoy}lpNb&Lh-(ld-l zD!&A273=cWtLwL$??`4fUKZdu*BC-h(kb^S#B&p<1-()YBmb6 zXp=!qS^yuA>Kb9{Q!a?fs`+uDiNs>^T5LU^Uys`X^^g8F+D0&^zU@s%pgKm7Cjqe& zaw_ta-UFx<8O-wwmwO6R&0?t^YkrFWqkNA>*^2A&Q2g>JO~O)+#|CD7rwS;h(GuR< z2I%$ng0{yGSfKib7B%1Uh91{QRTLVyyZPsT{QiKYhuiRW7cHxxU!_(yUun|p-P`cpV< zR8d7h3m_vH#QZ=-saoe0eD$xh0Fb+ZL!eGBiWj8!55MCw7?(lNv>udY4G=i>zhB0ASuJ-0#KC-0@Rnnn_wUdRP%7uGq^W$UgvxiYYy1lmf0- z%`+E{-{t(R)zA(hWV?&k$eLb|*Jur4x{U$YKUEI)5V8A0q(;o=pqO4#;xk9-wp8ck zYG69K@!Wk7;~40Gd)QwGa1jJrV#ZFtSsp!aeF<<@i9J30m*M>4A4c0uFZ9J5-cFt2 zh$7{f{--|Y!qnFCpWx2+C+eHo9-?w2B3`q+ZM=Dn`2w;-?BXdW{X=0{d`*_t_ymEulYE^O!py?M{`?9^HZFY2EJrCVjsIfF zxqm@b<iJ9?bRI$3T8MEb(4h+mYZ z#+)e$pAZ>-nL~h||H7!GO~c_pyy~$6oeuM9zZ_X%0|*oRZF-F0w1AP|$NN#>HTd=8 zbG*e~xsOghyXl8`60k7E(F!I_;Kw-{mo5-;@F`@z?9rEj2b%LZelL<1%NY zHjI0e=ecA`z}4kObobP`{w!wy0=CE0#Oo?ri+h0Z;!EZmK92>k*Y`^yyug_y2N`AA-if0+sqqNr~#q-e0s(=WnFWlX&LvGX4vTI!zovV2uWfxpw4RUdx9Kjb-! zxmuEl>$=k zTi4a3Vx$vzm_J`u(t})ik4@Tf5wY@M+<9el39bB+i%!oqwB-u4(cOI_64 zOYpY}zGAhJLwP>(1+mJOsKPGTAqBb!0~krr00P_>usN#rl?_3-Vc>#^!pg+ZXTAsn z3j8!y_YQ^*-$6sD4DM8hu%M{7RlaNk%z;$zw^h&xYVZvgy6EbogRzMuMG0DhKvxF<;>mk#%iRpM= zs3k|8OR$55i?3LmNg}T%l^B6Z48kQ6Ws@InCXS5w&4i@Qi^bO^07fKu5Pcvy02Ne6 z8i*y_6uZiX1^tjWL||cRvY-%)T#xm+K2w_jXN-s1EpukaNSUCAUw`i930HCcH zdTs%Z(uz#S+T*#9Z1}i6jBY}_Fc_PPKZXH>;KSuiUm!82j<~rMeVIMr@@Q7QQ<@id z{%3d+MjfJo56z?hR;i$RS!4F#{A?^8g-Or0%Lgff2uet$WeC|WKSVsgEg_bqR0t<} zQ$Kt#Y05rwN{izj_&8PHyC_-rpnt}7o7~|CB0(CE7^hiP3xN^E) ziknBENDxL>gpr+ZIY3tDLSCjoL1CzQ`SRI!iM>c<8pt+*a<8@B=Jf!BqbX_#W1fdU z{n0_Y25(nX!6?F0dBy;Fy3e-pY}v(e)R{b-?Eq2^2)?Nf`RNni>QqQxwtRsAdPbuv z<`C&-7xD z*cZie{6=7=l$*Q zyU0`4g!5Dzs4~f7H(Y@jkpX{zLwBrbngK;`tb0yR&d*(7z^CU^V0OnC9tB`(HZOq! zi!5d|!N>=z3 zPcB7jbh@t7wb&;I0*oPsFF;4_iEPUa1RZ)e5zNO2=}%?2Oy~UUEIE9jTKNs$E(swx zs5c@vkcJQJ4iSD20Sw65L4e6!BE0Q40yz+52m*96lMbeW@y86xKXq}N4Be!veZc01 zZqiwII7=t^(HwI)HV84$E_?ZbE?Unl*b#W62gpRJJmf zlr>V8lP&K3^v;5_`(-a2JlmK>`7?9uTDanmQ>ATzuXH!u%IV z3&Nt{LDty*kG_hQBq6S5GLuM(A{&8%u0&DPTB^oN^!y9U_+VY26e4NSOa!~D5%!njhSHNT#$BI zc9%-~i*vYiOFgD|a^%X#yeyR3Y|%3^AY=3kx_4UOC{e|J1pL|>2puhZ+3+e9B-f_} zb}$iWjO7+fJLLCVt9i2tRwsgIewf;Zam}TvoYmqOyQ-i3?0LyDr#RXlY_0G(8}3&Q zSP|7DP_Wmp+sVRN>r6QE8N?X_cc#IwFrnswNM$93FeaSK6X`feBt-{u_nE!80=4ae z^G+DP&9n@x>9Od1OZ9b&t>o5;A^|?dsa0BBC5Cs}KEIPmmhXFPxyv zoI4lh5U(sl|D!?s*Wgd80HNol2B*CDnqBs@U+asOUZmI=h7NOogz<(Tj;Rby?hH=N zAVQK5xBR(=tvEUrp&J8{CGCTaUk6FVq4&iR_c%G=j2ho5E_+sSZu)6~A5iH+mCKvp z%ZHmPR4!GPZ&@YwSxvfWUaZPHoM{Q9PwL{k2dJ8*qN42!HHvMHhT?30oOQQlI#58PUKJ`IqK)*&io7?T>y=@BeLE*O(V^K%mm%n9S-Ek18);+ zeEkIS=CI93EZY^;Ns-99s* zA!eaLfP zthAjO^DB%UHvdt6w}Jzj_@~82h2w>f(B@K-2Wn(s>wJ{_Nc9kLcKxY0%Q2=dN%@Rf zx$Fq4EYACQkajZQXTr*&u{O`X&iOB?1?fWihD3j>J>fZLus>VP%>kB3;4|pXseFCr zRJ=u2DSGcS)OCj04uQm z6ARaqGUD&G=RyFoa;Y#SL;jOm^747t;F#Xav@Z%pTt`tN&l!gzZUkF63e<=L9NoCh z-lHFhUoX}i3r>~o)Nr#n0`gM$N`!G#HE_vkfU)_Q#j_q&Gzce^3evaZ$Jt>|Bb;$A zFv4BkR^XyFLdA*wyx}{~Z^kBb*ppAsu0bN0?3W2`diq6FhO7OfFh1J4a%idmM%|PaENr-(W;o}Kf$p;|tmg2|KCB-!Sbal4N-2dY z*S#2WW|-9>NFJ*Ota0FGn(S^`>HQVR%a!FrsnrkqtGg+rt7{`~aon(|+Ej*f)#`t; zk>IA(Pm8Z?#WZmW(!jcH%_fWo3&uSMFZD8Y)2%)070U7*ateYxfk>y1pl4k$76ONc=CEK+F>iP!|i9U#Zr+%`No*(&0^ zB~70 z_J^6wJFP7B&6_z<7$JUu4XS=y@UttQ->z$=U>0p~<_ilzo4K3`QX}@pVsVkZ$20SC zj74x|o5Q4-%A8;{CyPTPiHoVhA~%=Q}jB7WSv>S6WHaL0C!w&sxu? z^}qiYRCTUNd012Pu)SSM1<}{Md*^S&gMVs*dF-q$p9V|QdIKtUf(-8E5`4*fdi;)B zQ4dw9`)vCmrGDH%7{V*%(nTJKPL_vh*|`=z9?VpQ^jd$=DjmvYgQ}|gPg%nS`k}x7 zOlm3q->_{+ZNW*HIsJ4vr_L;Q&Xp$)FA|#;dp!k@PRfyQQ|i*2$Y1bas@Dfk?wkyT z+*oA2oaKyb59YStfEt>Szd2CFZFo8&qx5XpkU18*-In&?E+!Il_rvT<@a5 z0~Zj*TMINWEH8m4(!Kq?*r~D(u|Zy3Xw|ZMf%K32>Sq48BZj^^-^7OmxP0`%zPoqs z@a5rOoffshPPjy;1iPu45a(j%8Z=R#EJ4yoo62xYkP)!}#=TqeCSctyi4rI>ajk4S z)h+3I9E6Y6N-7%fGu8UpGoD6G5ZM_b7RzYmn3qSzs}Ax->*S%M=&5i+ zIVr=9uhNl~HG`Gd#v^Hl0>OK!kNrzo)^h^qP+CTUe#}u5K`@5VcPL==xKjb>KMyhy z%N(8~^F%cA1CVg$RxCP#EvPb#C6=YYK}ve%(kefd%_QReCwf~7{a4SU{2TkCqywNb zaH;cFs2&L)D1AV}n=QWLX(&(Cr?1y+6a>7ih{rpAd%RPTWO8yDYS|v$s*|2r@`QGs zQ<_<=1+=3O5(0i_s-JIwqKFLxhrh9%roy3KPxFv}Abs&xQE?JEZdG=IoI%s%_9r@u zg?%d0`ZY4phtqK*t07zjo`@bUHAql7w{LBvlYUynUQ=S=l!v=bPV?9ybDYLbL4X;MYUd=G+|Lv)gB$w7-z4UKf;ctF(D(9~_VBhp%N!H}r}- zguY2oEcSL_{j5sBW1>x4)!K}8F5A{R&_R3@L!6Q+$fKObfAwAQ>BUaoz;djlagc`C zA{QqF%7kv*gR}0^^66f+Tlf5aqb05RCg~gAOfK8yTILRFh*@>*E8y#Rwj6&6_-Oh3~r4 z91LJW#Kh)fchW`~AN*fo!+cCi7|un+`tI=l_!CA@ChAo838}6^-rLEyWDHum)G1|} zSjR%XU>hj9C^f*;OGW_VezH=Yn4WLNAOJrxXY(m&s*1^<$9J9)Bx^E~La}1f#iz05 zYANcL3z92!2?B|H+K;=sVPIzL&Zc+3zikEiI1vtMT?@shRto2qY@Xfh!rH_mZ=Zm$ zs1-g+$vw+oMCp297-Pe2>YAGjieWWoWE`-h`U-e=mtjnC!5>guSFFCiG;Y70IO=68 zw$4a6`!o6xfPyUJ{G&l50)>a?B*0ja)E+CXhIFB7rO2xRZ{$Z@@b&#h;t__iN0cpi zLieIkoQ4=BE2fdJeYez3Nt_$9iV=YUzf(1YC`<_Pc~PQboyodxB)n*L>yXm3_hXM_ zd5{;@vEszRIKkAP2m^E$Izl5lEZmPDI`#4Lxm3OCvzhQKI`Lv_hVL&JHoz}68S)h6 zy+hPBYU0=9>_@U}{R5F*7FS9vl2!s+ zn)T>1@~C9OStK9fP)VHULk}1(QDJPo_{x{gbsSKN;ti!R`9GYf57WHS*w=^!iJ|k) zao^Ac_ls2T8Ocdf;|;?F?j=a|fPHvcf|9J&((*iqEqJq^(@^iV82i0{r&^37bVoze z13t}(xd2n2-YM~EvW{~IKPP95q~dK~n92js6Y1TgT}IR3__nEoN6pPGjOZBy3L}XT zD~U#)21ukZY6pcsoLodrgc^5SkP0bCFm&gsW4s&j< zx`rV8H;4DMX1%yeTPFwYN^hpPue7Ob~iIsCuQZ@to*xX5ZK(L$Ro1#w7i>OzZrhm;(DKh#*yWw+DM)?g1*DY z=W5OMlb!hM0X;>Xgyx1v>pZtIPM_;BXl|+P<34-~wdbAhdj*4-(1)GAZlS~~nqc<&#k#pJsw0fQ` zia2&U&(5&5J3Pi%hy|HH32U_kqCj4A93@1M$Z5iz3|TL<3;(ob%iuoDba-47I21 z_Fqi><;sl%T-2e^pTo(=@r6*Ym!|>Qs2Hp&j>`c-9ZQKnI=NiFr9%?pD-3~9to~- zFI)olqL!P8Z;rR?b6v(It~Axb8l~qs>(0fk-Xc&ykiO zip!d?_{F7+TU>QP*EBzG&1CB?>ZF3vIR^g1mpf!yrLZvE=bv)8{cnf$_kB}q!^I5R zyT+Hl15??oFAHi+Wa(V++)1#;NC4C@REZf`vgw=G2lHtG{(bZ%TL=EgMmcOou*|@v zibUJaFv&fyE7|8&G;E;83gfZ}M=-*If#}VUwyF336m;YfJeK#$y(A*6Gzh#{=KC!R z<}UAh8535p8?Y(jE%6m=galyL;FY5UmM~VLEI=C(S?nGq$BH|+6P(8k{U5Q)3RD{j z1>yZzf#8+W;8J32ei>=-YxKQ6&kx&(2bwX*{8Xol04og@i!}e8RBmekY6MWCm7p<5 zO6&x*IiA9f!x}Rw(IiR=ni9VUi6T*`XlfRk8he;S&9I|n_fzs(DS3EGiY_&Af4I7zJmT+|96HgQ}D1=i4$a9m_O0mT@IF!;+eL zSugVvN9MV^nO3=(jux3Wk7YTxW!~0vcB#lPZOg(^v)rf|(;{5(Zx6(lL$eY9M;uso zH{ynMn%{0jzlg6~0@xmfg`0zKAmg>N*;+~JMSKpZE+>x>=(dzv!AsFs7CtwFD=05?-@8Y{rMw)6%KdS@=O z(*h!Z0~w(5Q%mTt_Vb?R=6CDSJC-3G9P|dT2i|nZLUKaM0r6i`@J#_K)iB<}XqUzO>Q51ak-zAAS?1|JGyt+o!({ zrW-IGeQhh)$SvrpU;qyJI~4_O%lSX_9=23GYzTh1&_-Xke>5gq#QU4k%Tdr1TqqGz z_|&4XGdO=En4?Ya;lF{x8H<8GYW|uYozEekilRTK=IbgHPEIl~m5;hP=_`-qIP*DOLAc(Zm6bwOrY}b|PE6)r#N(6o) zK=zwpmdt_Z5!Fyh)cBsAXQtvt>pKhhtm??Yf?YFGJ(4Wd!g*_XGOVdw0 z3E~nFZ&rh%0T{2BxwmiR)##wu_z-7jOKM_rOdOeT!RMmCTU6GK`zAC(dcl=Ph4^Cf z&G2KHPuz>0{=4bz>fc~jO_LH$_pQIhXuk%4<7>h)p7)W!-0WfZx{49|xN-Be@W|V} z?e}N$>N4jWI^Ngjm)k6_y!%o+`*zY}@Nr37H*2d9e$nsC@GM$;?+1_SQ$(_$Y2~JZ zpW(3iS@%~0OU34ua}}5V2^jaT+9|32PQX;L_NyR2h(Tk8-}0<#b?D6#FFr1_TqyJR9Sc_W%AMa%MLeG< z{}D3uQHtl!mGEGPLOnOWz}127D;7&mI|ce=YWB^rp`W{NBa0f{heJ~>t}z3*4|zmp z@3jB=;1tF4zT`u~+q37T;_Ydz3B-wH5-w5k*ZX_|xHL!>&unwg_I@&QJ>TuSOqu9^ zE=F0Bq0{y|3lyHyy(X!rPI5?|Ry{vD+$_P{{4d^rA+%23xJ^9(PbST@?9V3%usK`P`nj`GW* zEa|l^r`x?78~wLQ>dtbKKA1}L9I}~D#cPj88=|G9J3MWr3HqP2AG@E2_dmKHQ-qhi zO!L5(U>Cj&U@97n8yCI4?xQ7Xucz)RhqVcCE>tvmytJ{D;?ppVT9L}fZzwK36wjUmRx|}r=VE?G|8#RA3)v461 zmWg=8O{gX+qc^?0CPS;A-i`@Y=~zA-_|$SMV#q~XQZBo+<#Y9&`r4~gSm%zXR|oG@ zRooeTQj$NvE1&o>5Ux`Ep2?<@>?+QP-L*oT@ENww-D(=+-hQIl;Q1qQ#|60?(&Tu^ zQ?nZ7mv&L`x%=2f&35g}oO(5Xl~W2AehWKmglg~n!4VGDdD7-W@+|cZG4z!J+*2>J z$*Ot(uYZ0okE}$L%%>W39RC~{U5Q^pX%V*PeP#o-NA68jKTaN;b<`P%e0yR1&FIEw z!BIUio`?(?$c%53>C5$+Vw;_|5A{=#vTfC``FL6yt%ufYRzI%hH!Fdjb$1SVu@bMX z>?M@V1aF8dY177cWKSOaB6wrxKK(Q9Y4_3@3?Vt(q&br@(5@PXyKt{N?&z`7lj=^L3Pa5x8_H_zA?}XQ^Aa9IvHL=GdiMgpX=` zOL+fqOXo?0psv!3H9lJovhW<@$hvL*RGje4quigTu&X*%j(njDZvyepOy;?7C7)odX}HT7fI009 z#$68{I2nhj(6#VwGBXe!#8^+bCRJ${BW=+9K>_WS>qoyFBNUn!T3v zSZ(9#^YALmM^&7O`jdeS?i{N$*`L!lKDadoU+pXW1-U7@AHrdo%DEj>c-vj-7W%5z zagAL5j0vlQEA{)5)(`Z4O`kxST=etxE(;o5)Fp3P9oextcc^U6Mys^H!*no+5j;=D zZ>z!pEpZUeW1l>kFN1o2Z!m*mf9}|+;xw;n`WVA}Xi7Ud(FF9__p7L&Koo48$1~`) KwQ&ppocTWwDo`8% literal 0 HcmV?d00001 diff --git a/vendor/github.com/gizak/termui/_example/grid.go b/vendor/github.com/gizak/termui/_example/grid.go new file mode 100644 index 0000000..4128909 --- /dev/null +++ b/vendor/github.com/gizak/termui/_example/grid.go @@ -0,0 +1,122 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import ui "github.com/gizak/termui" + +import "math" + +func main() { + if err := ui.Init(); err != nil { + panic(err) + } + defer ui.Close() + + sinps := (func() []float64 { + n := 400 + ps := make([]float64, n) + for i := range ps { + ps[i] = 1 + math.Sin(float64(i)/5) + } + return ps + })() + sinpsint := (func() []int { + ps := make([]int, len(sinps)) + for i, v := range sinps { + ps[i] = int(100*v + 10) + } + return ps + })() + + spark := ui.Sparkline{} + spark.Height = 8 + spdata := sinpsint + spark.Data = spdata[:100] + spark.LineColor = ui.ColorCyan + spark.TitleColor = ui.ColorWhite + + sp := ui.NewSparklines(spark) + sp.Height = 11 + sp.BorderLabel = "Sparkline" + + lc := ui.NewLineChart() + lc.BorderLabel = "braille-mode Line Chart" + lc.Data = sinps + lc.Height = 11 + lc.AxesColor = ui.ColorWhite + lc.LineColor = ui.ColorYellow | ui.AttrBold + + gs := make([]*ui.Gauge, 3) + for i := range gs { + gs[i] = ui.NewGauge() + //gs[i].LabelAlign = ui.AlignCenter + gs[i].Height = 2 + gs[i].Border = false + gs[i].Percent = i * 10 + gs[i].PaddingBottom = 1 + gs[i].BarColor = ui.ColorRed + } + + ls := ui.NewList() + ls.Border = false + ls.Items = []string{ + "[1] Downloading File 1", + "", // == \newline + "[2] Downloading File 2", + "", + "[3] Uploading File 3", + } + ls.Height = 5 + + par := ui.NewPar("<> This row has 3 columns\n<- Widgets can be stacked up like left side\n<- Stacked widgets are treated as a single widget") + par.Height = 5 + par.BorderLabel = "Demonstration" + + // build layout + ui.Body.AddRows( + ui.NewRow( + ui.NewCol(6, 0, sp), + ui.NewCol(6, 0, lc)), + ui.NewRow( + ui.NewCol(3, 0, ls), + ui.NewCol(3, 0, gs[0], gs[1], gs[2]), + ui.NewCol(6, 0, par))) + + // calculate layout + ui.Body.Align() + + ui.Render(ui.Body) + + ui.Handle("/sys/kbd/q", func(ui.Event) { + ui.StopLoop() + }) + ui.Handle("/timer/1s", func(e ui.Event) { + t := e.Data.(ui.EvtTimer) + i := t.Count + if i > 103 { + ui.StopLoop() + return + } + + for _, g := range gs { + g.Percent = (g.Percent + 3) % 100 + } + + sp.Lines[0].Data = spdata[:100+i] + lc.Data = sinps[2*i:] + ui.Render(ui.Body) + }) + + ui.Handle("/sys/wnd/resize", func(e ui.Event) { + ui.Body.Width = ui.TermWidth() + ui.Body.Align() + ui.Clear() + ui.Render(ui.Body) + }) + + ui.Loop() +} diff --git a/vendor/github.com/gizak/termui/_example/linechart.go b/vendor/github.com/gizak/termui/_example/linechart.go new file mode 100644 index 0000000..7411403 --- /dev/null +++ b/vendor/github.com/gizak/termui/_example/linechart.go @@ -0,0 +1,71 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "math" + + "github.com/gizak/termui" +) + +func main() { + err := termui.Init() + if err != nil { + panic(err) + } + defer termui.Close() + + //termui.UseTheme("helloworld") + + sinps := (func() []float64 { + n := 220 + ps := make([]float64, n) + for i := range ps { + ps[i] = 1 + math.Sin(float64(i)/5) + } + return ps + })() + + lc0 := termui.NewLineChart() + lc0.BorderLabel = "braille-mode Line Chart" + lc0.Data = sinps + lc0.Width = 50 + lc0.Height = 12 + lc0.X = 0 + lc0.Y = 0 + lc0.AxesColor = termui.ColorWhite + lc0.LineColor = termui.ColorGreen | termui.AttrBold + + lc1 := termui.NewLineChart() + lc1.BorderLabel = "dot-mode Line Chart" + lc1.Mode = "dot" + lc1.Data = sinps + lc1.Width = 26 + lc1.Height = 12 + lc1.X = 51 + lc1.DotStyle = '+' + lc1.AxesColor = termui.ColorWhite + lc1.LineColor = termui.ColorYellow | termui.AttrBold + + lc2 := termui.NewLineChart() + lc2.BorderLabel = "dot-mode Line Chart" + lc2.Mode = "dot" + lc2.Data = sinps[4:] + lc2.Width = 77 + lc2.Height = 16 + lc2.X = 0 + lc2.Y = 12 + lc2.AxesColor = termui.ColorWhite + lc2.LineColor = termui.ColorCyan | termui.AttrBold + + termui.Render(lc0, lc1, lc2) + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + termui.Loop() + +} diff --git a/vendor/github.com/gizak/termui/_example/linechart.png b/vendor/github.com/gizak/termui/_example/linechart.png new file mode 100644 index 0000000000000000000000000000000000000000..24f3c97f9d357f1f99a0dd7701111bca055e659b GIT binary patch literal 86642 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 RjNc4E;OXk;vd$@?2>`WL%u@gW literal 0 HcmV?d00001 diff --git a/vendor/github.com/gizak/termui/_example/list.go b/vendor/github.com/gizak/termui/_example/list.go new file mode 100644 index 0000000..375029d --- /dev/null +++ b/vendor/github.com/gizak/termui/_example/list.go @@ -0,0 +1,44 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import "github.com/gizak/termui" + +func main() { + err := termui.Init() + if err != nil { + panic(err) + } + defer termui.Close() + + //termui.UseTheme("helloworld") + + strs := []string{ + "[0] github.com/gizak/termui", + "[1] [你好,世界](fg-blue)", + "[2] [こんにちは世界](fg-red)", + "[3] [color output](fg-white,bg-green)", + "[4] output.go", + "[5] random_out.go", + "[6] dashboard.go", + "[7] nsf/termbox-go"} + + ls := termui.NewList() + ls.Items = strs + ls.ItemFgColor = termui.ColorYellow + ls.BorderLabel = "List" + ls.Height = 7 + ls.Width = 25 + ls.Y = 0 + + termui.Render(ls) + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + termui.Loop() + +} diff --git a/vendor/github.com/gizak/termui/_example/list.png b/vendor/github.com/gizak/termui/_example/list.png new file mode 100644 index 0000000000000000000000000000000000000000..7c5e27c64b9ad9b7903cca6554f3db741dc77e2b GIT binary patch literal 28586 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. All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import "github.com/gizak/termui" + +func main() { + err := termui.Init() + if err != nil { + panic(err) + } + defer termui.Close() + + //termui.UseTheme("helloworld") + + bc := termui.NewMBarChart() + math := []int{90, 85, 90, 80} + english := []int{70, 85, 75, 60} + science := []int{75, 60, 80, 85} + compsci := []int{100, 100, 100, 100} + bc.Data[0] = math + bc.Data[1] = english + bc.Data[2] = science + bc.Data[3] = compsci + studentsName := []string{"Ken", "Rob", "Dennis", "Linus"} + bc.BorderLabel = "Student's Marks X-Axis=Name Y-Axis=Marks[Math,English,Science,ComputerScience] in %" + bc.Width = 100 + bc.Height = 30 + bc.Y = 0 + bc.BarWidth = 10 + bc.DataLabels = studentsName + bc.ShowScale = true //Show y_axis scale value (min and max) + bc.SetMax(400) + + bc.TextColor = termui.ColorGreen //this is color for label (x-axis) + bc.BarColor[3] = termui.ColorGreen //BarColor for computerscience + bc.BarColor[1] = termui.ColorYellow //Bar Color for english + bc.NumColor[3] = termui.ColorRed // Num color for computerscience + bc.NumColor[1] = termui.ColorRed // num color for english + + //Other colors are automatically populated, btw All the students seems do well in computerscience. :p + + termui.Render(bc) + + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + termui.Loop() + +} diff --git a/vendor/github.com/gizak/termui/_example/mbarchart.png b/vendor/github.com/gizak/termui/_example/mbarchart.png new file mode 100644 index 0000000000000000000000000000000000000000..e51337e6eb7134c51f01606fe29eadc3634217fd GIT binary patch literal 72447 zcmZ^}2RPg9_diZmb?c^fb*S34iA1X{s%UBL(MnOo-Z7%>^H3BmwMW`oRU;zA2-4P` zK@bEfsTssdB1rP{d_LcK{lEWQ*E_j$pZnbN+~zvrfCi-^AhAGZ{BKBZSf!u_)so$Y0x z-la5-y-?X_c7Kc!xk`%zD8x9s75&>iOzc$xjJVTj$dUpWo#UaeKaJld*m@U z&!a<|vO$SIlqDq(>t3dCLi0cIx z|I+X~^iGZ`A|^hYdj^BVTZz2GT*>>Csw(UhdaJd)i_~VwvhDq|ks)ibtdTY^dA5pQ zLH|Qn76X<>h8bBDy@H&!AN%I^E6TvPztU^(whLdp(w{_?&6Jj3S1jJ_NG4rH3Xm~w zU!yXf>_rA8s+V2f@8{wbNi$V!txUVA_vtKIGp^kFZmdGJeoILG>%n{tYYlBb6<}5e z?&OKf38>o%!Wz*sb(+mjz-rO}tnRy+hk8j1#rHc5L%+&}HjXL2o0C}U?0R=xj24jr zpBGhgxq9J#oF+wYU;h50fOO5zrzpSn&0n%(vR!uH&xHLcy3c12fei673GWo-J5A`Y z?B*u>FqQHr73&%rCG{gt@MfOPr(5x=<3VONt}6y64#OGVmhyJbhqRt2;jQnSHDix` zkWiPj=|0tQ=ji$oVAQdDmDk^nONg#d>```SvIAQAE2GX79FkWQA9)|zYWQGh{W9<7 zPxu+%JNj(o&K zTE{lu6L;boOnP;@|LrMj*IzddH^TByMC%B+NX`Ee@0qa${4&2QHKR0hU+WvG ziWs$;DPBPzmHG9s^5M#vQ7$Y^ zwM>}O0i3;;lc?)!tA<#*P`TTsfU=a7{J& za#!jF6Q_@UhJP277w{A)7s#6_Eb&;Ul^LUN?0r1n74FAf|5qbCJZtiPkl*J>SB6=0nm((uJS&K5c#4`&3(1Rn<^sQf2NO zT4nUo$T_Lg;Zwx5y^r7TsTM-bi_Py3s}A3CKTkVNlS_D@To5{N&aJ*$wc33`b3$)| zPqQKCZ@bST`d&!8db@JF^hue}%b`4>rp(Mu=H~Uyjz5TQhD_&8!CN6Rl@~5af0D_0 zT34v}&A_tS?4)I{nO%9E<3{qV|MleLFUg2=`fl|@UWNV-bpqa3=rf8?OFfHWiwjFl z-S?cY&gsqt%sI`y?OyHXx%KcC`WEt*|FiCACM5yNiqTiDe)!mB)uYi}*R`W^$N$a3 z;kCb>oj+~7n6>T@`1O0tEz24MTIKSo5mWa^s*W`$YiRC)?)<~Pf#$T5W&dHBVO%N0 z^l9GW?TnI{+|FoiIx6DmhkYgAaOyjixYI5)b7QZ=A@s7B2#cXSzF z-u1xeA)r?i_aythzn=7!Lf9h|# z1=teW(!X>v{!IL#c&&KL6q=Nji36xUaMRLAyXR4lP8y@^Q`wuc<7Gl+(^lCwsPdk2 z1aSbe54l7fCN`o~QF9X(W7Ft-;@=bHl^*ClC+c&BYS2s4!e{D-Kb3tmY57&)zsT+# z@g|3*6pGtS5=_K%S9ASyle9Q9C^hy5)u{yWsjDjM7x{WKcsO zhEj)`l$jC_TMYF9(4l}Wm5oOXz;9-E&ydk#;4ey3EsAlMdPBUogH+sEJZ0IX-d@|w z_yVtR{O*`Qio)h{!Z}4;cXfS!>_*wX&U(G_WBJExiI~rS-;w({{QKMQs^1+~imv?n z5dBz1IJ-0BLidxhF4lnD zZ%)WSJ-3?#$%0QF`Im*SY>zFEF%GVz@N5HFszc#DHu-bj52J6U*RHqUSTh#Mnb-E* zs-9j7!k;K6<-AY| zikzOEiw{fRQ5diNRHXu5qVlHk3Ll@Ai?tk9Rn-C6V+x`)i@S;7Wk%8uF`NjlPY ziYW|Li}os;YMp#qy)-p%ovn~MmbNl>cU*E}$X>|I2Kx*~X()&H40U^b3QHBAE<$>a zpczC>BIXw0*6G!O$tR6uyvcMw5wjmWVj*OawsK>wpU4U@UCA4D6oHjYmp0diP}6Tk zK4Ua@M#znv9vRtFr6bDkc-&Ks;42be)L8VdWPf0Ov5&bN6Q2}y_3KrINaJ1F{NV5W zz7CNjQ7tc@aN@Du*snGPK@O|B_BQsx5qBdNx<04$osvH#6^Ys@|Nf*Hx&NuVq^4N9 zI2|sgnF4dEG#nU)snH;&TV?ZM3$r+T@63szNZ`(X+lfel{u(GcuYM7V+(_OkOi342 zAlM_ZW<(c4&}=Y^Sr`)b;a_Qo<(^2sU52oD@>AG|Mj`w-_GGwo_ zGhOGyiYQlBRUre2JTr3{R{XbM;CAyNP&bxqvcNOwd_5}ez*jitV_@yi#dYcWKM%K| z*|l{pF77}* z3JCDgQcwsE4wesAmiP8^RZ!B@)KpNst#JFc+(8RD|4^@h7a?+9{#XCq$$$29&)FaB z=jIdO=Itf%PrommyaNMtBqjeD=)XSyo~Lt&+kcPb<^LbcI#{5>KNJNec}0c)>id8d z@K3GQW491zh}AtePiHUxgE4?gDk_SAe=+=jNdGcz^1IkC ztH1-7P?yW_-kql*+$&QjKG@AgNbF)A-VO2?@|gW~hX0Gi)ssgdJg>`NqBi5c z$54bxb#di&E0Av!8qVg{PMCMAn=UAMuWtI9mIo&1*7ux1FTaE)r2PqDsjytgk5>NP zmZN$vUx?jK8{pX%Y;u{8oYHY^2%F!21owA=xQwOIrUo$UaSGf{aLEn?68pY$lMYPJ7swg+=UNlI|($dsMC{(sZCUwQuLDisrc zEZ2G^$`RngS6v@0`^(!SRr;Ivp)0IkU)<8RRsX#g1N?`CNs+!~*jLuX`X2*eP;5FI z`b|8p_~gM(Wjy2NUX%~z^Cn(cs1S)I^EV110_%Ij^E}C-+2FbEcOO|DV3MPFF3vi) zIMh}+n=1IOu-K%d86lck9BP*{ZWG+|JV#maoD_T4K*TZU@I##>-fG;fROQ;esh3K%qYJ}1#2?9l1)G`hqeRQdkrTVC%j?;&9Gs55o^uov(25r9M6>Y$adY=2x z38T-h+>0Z%_7~FGL%UWHGjUc85S0hf(d3n%c;A&S0+{3Kn7MFgiss9DO9YQpeH`QL zCAInUE0jIV%OREl&gLtKypJI<_y1T!0nX&y^j4p$U&?N)Itn@W{uF=9u#-!%~Wg4R|10~18kGyZN$l|D%BGniX=9=-L{BF&go}YDWl*H+s0P?2lC6fden@0c%11Wp)$vt7~_+ zCfS)3@D{pou=K=2J31#()wQ_NA+H&>4KR^>l8yVMI7otUtT*#oTur`4&kX&90Vvjkn~jL(K+WP+#xNV;nOwLU15g0W;dg;G@e98}$@0{yI1!S*sV1dQWY* z=GEX0mW5ZX(q+}_WhTNI!r(oH!lMBJUbUs9$oqB-;f0ZO*y> zBziYtTlmG(9WSUyLj8wr2AA}Q!Wlsshb;Fzjrv{B9i5~FhUG=kdB5E#Yv5nwnoHmxDAr!N>zfun$+Qu2~8w^ z9FFyS6oYsNhxUB8O4Fj`Lf2k3?ywiMTLX*KRr$CNvE&pf+>1uQAWysS2)S@YA-$wR zqJX%TNQa|nqO(BR`>hH`fw$`A@vm!&%@l^H!Hc}aw>M)7azCboqlnX=Wgh?C=8<`AFGohAmTw@#*Uq(j26qmG@J|@l3}Z+d5Oi% z12)CytCX*b6WZyZv2&$__pPPkFnPMM?B@HjeB!;V=J9j6hXl#1unJ;e+Mw9}R0!i4 zlAP||aycg<9k#U*0xYh`lJCGLeZuwr?kb~Om(Kc~q%U3eja!bH>$>_2fR)-S_#xiWAn*|x8ugLGXF0^SP zdXu!ThT&`>oN>zjI2$TAJ+%vM5>L$V-uwA_Y$H>>wcT^+uD8b2R3y|*R@`8w@XMF6 zJsDHRXY!L^+DrLEhv$=itQ`4lPOZr{qt*m$1&FYQ@ z?g(r_Pwa+T)~(R)v|JeXB5E(%DZog`R+IN0cKqBKdq#x}dAYVcF$I?!mugw|{<`QP zuJfrbt6Oi5>J|?b+s49fOg+poIWbEcZeez%iS=hwo3zjz$nhn9`1__MzR#CebHk06 zudru^_4c>BG-ZF+K!VYOvbesbFf$)yfoTft(v%*%{Yl)Q&*VAy;Gj&; z653VyR}6w{3vOf($jjx#+4-;|6mn%Vow-eJV=3>D|E60bmdd8asX>Hw%qd-5t}7b1 zv=%O1%5mUTMA7EFs8i2==Jck{VJuCiE>#sXvp#Myy^LI%t^aPyUl z$c`)x+8BF>PF2&oeX0l}JN;p;N-*@cJ)ODj2RmEb! z382OJoCnzc_^X_V@L$`=Zo4KAPx7DA7RFf$zOG!@X{14=cfC|^W4YL!Y_1Nw2=_ah zxUCEKtSw7OEj8oMQ+6e{fV3;8}I0z0ED>EXCvv;fj zjPV?$u+qBssn`uE?XFvwqQn|K{UKwTXL`(H=!557!HaF=jUgT;PjPj5MLhpF_x{S- z+l`6kpBkL6=13{t`zYbH;P5r$1Gh|NZQe2lY~*P-bNY3|$P#ye@N}Kl5qT@I5|Ve$ zc(CMYmi?~p)#6}h548KL)7)~}u0d0bIw{i&GgSphr5%Xt=ofknzp-$XiRVt*g-K&k zKn%WReN)U%Gdr)`Sysfsb}G=EbQ<5aa%!pL%fy+Z2u|qnN3fvz=;?3eVPGLP zSpVSp^Eb~%E6iRDvo`*iGbrH=s)Q1DU&3<|;c)~p>V=mg?*h9}mkdC(_12gZr(2ip zm*S7z*I>7pxQ+OYh4(q=sMMmAG5j3^MKoWB<%Gy>96rex?#WS-_uwcGRtWEwcA!5~hKdCyoPf8F5rc1v)%$yI#a|97j!-*;3Ub8~r+mvOTmcG6;EVkys&+ve zBRXy?-PNYc^MHb1^z?GX;(%jefBM8`Jy70gA#h=|pAwnVPifE7uF@JG(K2XM>qAQR z1P603PKzdGF|$~^G7&(M1%Cp6srUGWY%lBF{#3j#rzSw2nWRrHOyu{kn7_=M2p%C? zXKp5NU+i=}?Pi%G&m5}=(06y=D8{3Vykr{edz^d=h8XlyieOS&;f9b|A!i}62=RyU4mgNghW;vQ&dyi!->$>{p3qCMr z710vtYkOS<@g`^SFYU{Gv){3Gx75nI zv9@LAHbv(pDm4zfsB-D-mPvZ^Ql}SxjVQ_oZm-%)Zs)pH9nPEr$HO0441x&SlJoAj#T0e zywPk@EP+D>ujXEe>fH>LrJdw-HOL`Z0`9e6Ya0{u-ZceNy@c<6jx#dqUh-5{9PRu2 z_cBpFQIxa%#;OKL4H}=(*k|f&1Q_8a=z)O@Y3(TfVuvam(BFY|$CRw6_C7%X6HaCC z{3Ia~bEz33Q4SFua~ti!6-gHthO@R?39oX(S9HT&SJKC0Nuz*vVq1D%LWe`WgjYD@ zdD*x7+O`f-SQ>e!f3IWrnCZnR6J`V+)~I;IEFd_9`elr@M&G6W?P`R^6HmkcNC zL>|aWKo$mZYtgkf29joxdpGC-x0*pcLo!>8IGlZYdywO${5`y)5_Y;S*)!32+6`{& zV%+Ckjf=iNy0#LG(M}8$j#?{pP2GA^#!e~}Z#!*Qc^w_-D>gJ47l-W`CG>^rdn}J{ zeD7qMp~H)}8d%~m>Hdg?LfTftQsPDH=B<8V6zwG}EELeaITF7s69$CW4|9t6NcObX z7k)Grgq{@QumhkHs|$JYuEc1E_?r}KZ3Lw)lo`VI@P7CS@d!v99jC?gEdf@(28g9a z{$<#7j`QUeqSfBkiNFWDHTtOGv|wyLY>ON+OLCpMFLe19Ol$}s4x$$dfEOF&5^VQu zyRG*&_V<<=zS97e^guMclVp;;gpPD{=8SimZ3LysS^jBgp{Eb~Rm2OYfjRwy^z_vj zTjDd@W|!Z3nXKn%ollxxm%9A&_dgyQAbDJV=q+)oCFEI|5%*$aqW=9Mb%g^f`Z4>FwV=EQ_B%KQ6fjyi{x= zZ%96(cFW07NPByPQ(Y`)piO)I`SO{pkk8+E0YQZ^$PwKKbnzrh4m;$1!MmwwSQ^wd z&s-S)%39VGCdG(qmI%`EaVskk@YhI;pwKkvLzz|$q0b<7zQ#K5G@4>PaNB%|ztf2Q-zH(?dm{ep)e}CPYX9{e%(?l|cKQGP(M=+1+Z(YwUL~fq)aEkEk zOsxK;>}Hh&dv$po1R>WxZ`Zt#9(q#n(_?k8M_*aFSrP zs|;m5ieVU8%Ep?Lv@X46K#cem$~|3cf+7O;V-jQe!+R$Ij-{PW`J0NCPmmc*fF(s`8Cx^~41>`uYo|ORknzJu<*Xj8L%Af-@q= zz(ZF$Hu$mH^nBCc5@S$0{c-|5RKlW>e2Nw`aA3~`i}WPkKVOS48+0Z*DCm^t2)ty< z`H3Z`*7TAf5%*($cc#f?;YPeoL0;?!s~vsSB%sCxK5@;gM5v6@dU=U@fEHX^xlxw& zN@oiBRnua(b*mllc3LD!$U~lzoK9UTO4Wgjn=;bk$bXvrJbPcbCue3XJ<^`2ZCoi! zoI&S3S0N1dn(i^=z#ofJvb@o>qsC48oZB?9^5Dvx@Gr^#ct9H=Y!VQE>15K_r#G4c zgtvI9p;#JN?#=|H-e%gtv?(bMQhyz`ULj-7|9jZHitbZ^!MD`=mB-bqoQiAmn5L_0 zDq5K?ZPJjTTP5@v>A3Q*z~K3hyse0Ryn3-%_0r5I?9Nk29q1GmIrnIV)h0#WvDYRq zJLZZ+Rh&|-lu!8iA=txVRdRbG;B146{q`d^_ZRf83+9{m$@;*|XoFC~W(ZJN=(++| zuDtHFAGOFTvwz)GhyGCLgvaL38q2)UXCHW9qo~nl+528b*}X-Utn38Bl-Bgd4$nfO zm~j&f?zyLQ!PE1(>D%?B?`txHK@W9)d+6k$#J^;L&J7<=ld}zgjjBG3xm?S>v-@!-`T&3WNB~ng zc9)3md)RToY(Tl=9^~m=xiSC6O{4Zh0||6DtTwGuXNvFh!Y`Bs;s9r;T5UqVtl#=D zkvxTMC!~u#4VZt$E?G!c@f+Dd?BC3D*OU@+lrR6j7p{h*JaEv+S<7M0?6B2nr3oJ5 z2B6c4fg%~pR!?N?(QNuwyH~f4ZAX5411fw37)Tv5Zr+-A%aa;umJ0%s!WTV?9p0CE zV{WQB9)u?+NkG7}Fq4L@Ub{H4j;c9#itM~~Mfmt`+&pTk0At!`qP7IsSvx>>CMj|I z)m3?)YD~Doh7`TZBXVme_u9wksHKjT31*;CgY|eEJf^x91zz$R=>QF`{5HdY*Cql? ztWMk&H{nM|Hq8AT{g11}BoVqDyg1es>@4QeT0_1jOs*J>&ALm^BCdKb2c^&X-r!s! z@{f+%L0}dD1QAptqvrU8BB~*DwK%d9F zQNVWry=D}L7&&+NsO;0%)~9u)(rSx7PllO4u0SihhbElNO-ON@tQF@Ji?_>|A4x^M z^(y}T!szSL>M-9M*>d_7jVwK`YCdq)CxY`GTr79*${h>0n6O1MDPih-^rdfdSS=j@ zwPAa`(MEBt#4*$bu%0&Ozy14T$PQuX$EYV_SX=p2rlOBY@s(rl%C62!{e^POL*iA$ zX7{E#aT9LTIMi9pnoG-;I-?-^?isd0$)e!%pR3Y0HSM`1K(KK`=ddRAg+5si^M;j+ zIlP}yGtSdc!$}`pJCvG-{-Tv7Q-ba3Rwd@0w;=9hv_~{6CG6Qz5x1{!Wog5@V#nJa z67~4-=uPFNFMmllPR{5@O?0aj2ElwI7L(8O7b?k7ZGqE9p|kuNxu~>}xu=wpsZpY! z*tb2Xm9S+v#G}l{93zvzHG%R@%gK%wXTterCu!;M#u~)%4VbG48aPZQNghKUu;a}Gg5*%zUs-n2*Fg6`n=unqOdAYZ?8mf4IsFd)AKNW zu694vAk8cohN2m(2P?lC$xybfFaQ?oAcVszeRX{3d(sjNp9MQ-iuaniHjcc&(rAbuBDEo{kwS*GffUBjBozfiw?WlI+%SIhE9x93Vf;7SrUv3(O(>Z?sU zf6MvmHC#oCnLfmw2z46Tx?3fV!k>ba2yEB3L+`kz^?4TcY<<{>ueH}HRmXR+n}olVoGb%F0-XP zw9RYrvW|Ze`wT)isL#%syns_7w>coiUmh*5bg6HmgH}N_eX2!xvZUIQ$9kYzm-9WUv|AW%PB@wbAfE5X(W($dLm5O zmD!7J1AySG(ym+83ndYG%ka^{=`l+}7?{7~Ck}fCH%VHFeXK)sIi9H>G$Tf??NXl) zWo<3p33ba^a--bpYhEiCXq_luXdS{|rOljsU{e0Bk2*Pg6f*ywH8mmsz`@}4+JV{C zYgHU<%>`Yw0_??p8B2SEtNF3^SP0C-xV@hH(F!tA)IGx@0ZL-I)nJMlNyN>S~*W?>P}!D`$d;PaICB-O#Wd9eAJg6Uxw7AZs$Eq z1Uu{Wd_p_~W{XW>g-K#XD~A;|n_O^90sR@#kT76z%j0>qND;%Xm-x867!}3~X)D@G zp*NJKy&KN%VCY&$;)Flw2H=sBtt&eyt0tFD!O~k%p+zK^1>!(--9kQlA+(n>Ygoo* zr21)gkyr4l9K;3a?CH83lr>jc+Yw`Pj4+D0s?Nf5wDt3B( zr})OSUj`gUzjrWsAXklo`Mf!${JXT`Q%XI1s7nxfJ)vfQ_+!Y->)22QRN{P>JLT9) z;vT;4r>(o(pQl2R(TVVTt~yD!7PYiBQQsL{d942tcWmh&Y>|h69&9UrXAO&c zQ^Ir`E_UHwoVoDF0UfYk9D{djEcG^K`lL^Xm~@94J$KuAC1k06B9JeIw78v92_pmlj$f|-IzQh|c7bG76i*tWuKBP#Sxf%GWG z$vGz*8kP(2b&t#RYp$|8{V=Pw5MiID01|^SryUdbnsXg{>vL=x__n9u9O6!m3~KsQ zO1$F!zU6EYY-6U&vD(DY^jYKSFXdxNaP|1@@zd%Y-4EE7KCiB| z{pUH5dOF}`&;4cYh;=OXQj5%H*w*kS`emDe2pi_`jtAVt*ZoIX22A#j%$r!qEHPb@ z#=$3r-fCO4SGD^(17;4w#7BK0DT^EP3OH&3#a)D@MQ1y>R0pM9*vy|>egHhY`1F; zus`?8nnR6Q+zR^mq~oTKcAtC+WR5c+_O`36i*Dg_#s`mqUh_T+A!^J$5O2<<;xyZ` zZU!fh1yM%@znxkljCdHnZw$DZcbUQ+F)qFu7hhpmYjY|$?ky}#_Q6ogju2wdDrjax zunct4JBxVAn|KMdrTsRrC$`qg1YRgfY=aQ=($ZtO7q_3cA(fI)c?#BhaKR{fe1))E z;R$RSu^Y8*OXRe=J)^tg2}bJvDor+9#a&sxy*JrmbkQ&QZoq2&dMfR$q9_B z4M$ca&w0<1WU)-5ZQ5wB{b!d0sn5(PZp4lI-QUby#l__jE;_=d&y832R%Y+sj0D^w zC(l9JIVQe9_#En0lW9MBJI}g_vDw)8i241Gf0dDdxmUgHskcFq5rWk`OQAwIlRZGf zgRJtsMptiQF7fj7Mn0I90`9+rU5grQvsJAD1R$x)H9NgIw@vZpxs1y z3n@53C5Y>YD8Sfl8c*YcCy{bqyX8OIgTcoVS3p9bon9hYhQm-GAoMWyNz9{XZr<{d zY~E~!$MeJT7yVEmSR2=N)ee!fKe*%Vc7eGiHHiWRtat5DNg0v7zY|IXHWD2T1}oCe zr_-HWwY&Z$%FaP`*?2t_G(qg^N2o5fnaoF)Qnt>j5sUYZT>pCErZ=u-ho|kvd+MZJ z#TMo^6JlDPVYF8@ckoV|dt((mHDLwAH*7d+>YJNR#7NN!9pjfP&c>N9Zl%23N6|!Q)pEOBq({pg?L0O|! zu65;V&n^cK=b?wgKal3j7?B;T6{>%Gk<`N~O=?>Qw}1CZ*@)d9$-!!#4p1w%qJAio zC)SS0mYcwe5ivAh8r=Sp2j1I@nbhxY8fq9v6W^O?w(_I2oo|m4%l2;6hjzO{>z3E2 zmM+ar@ZT&4l~vau*NA~&+gp({md>zIhutc8Rf9~W=p~y}dZw@H#KM;E%5u*{dsKfj ze1{NOdnK7N@J6+^18MW1%JUnB<#=EmaA&9e3f@q&B?WXaV-1~qE_N-nWAOEJ3WZw@ z$C|En;7#^^*M{%@3g8AbjSN%7O_dgmk-MGeGT0%*8UD-R&Xl}zmRlNeo@BDHWewEk z2o5{~F9%y^Y7wkc$yRB&10y$$bfDYkN|O)FT&?izeyPa$<_Uj|p&L(ra}Q5#M@=V3 zUnHhQU-XDr4`?aa2{rH+SHp(sS|YGza=1yl+a3|VRvCh9IWhpOhq6@hJ!sB8>%o7B zW&hsKiH4$n%e3~B)mWl@ygGJuQsdK`J7KoexMslADsw5Ic45gJ$?@NFA~7B~k+Bo! z1f~FIT!Z1UKRMLm6FOr}Gqtym@LfGEdTWeFOLR#top7lBPf6<`Zv{QRnArtRAGOU^ zAwEQc_cP}+=g`2&3AB9JnclyUjajE8iH0Uk`F-;Ws20zrZ@rOCxS>*xF@JVvSk%OG zp%{p3gh*9@hfNP+-LofX=kX2rs^LX{H^(3sV1oD$Ohi=sh0;Di5k}FoytFrb|FGti z`(9H(>FS0dEOs^QIY(g;uGyYky@A>4CcT zfc}9@w_N@RTu-AR=l2Um!*1DSM%!zGPGQVE_%IyeW}Q0(u(%es@-lFIiv3mRZGtJ2 z_Mx#E-83D&nbwu9wmo3vOJ6|G^L@r2N-vn66)2vbb%jrggJOR^z-^>)1&jwxjitpo z?mQcZ&!u8_s>{}nLt^e*e2qZ6jl4M%qkt_4;A(*EL0rDxi@(To@H?lxg?Im>JCz6PNP5rRiO=MUOY+2|C6tqF^1l3z%sTAnq4@M*YVsZ zH8C%A^28c+m?EA|4|9R0RO>kni&4}+Di-yucyHH;pL;)kTXB|VR3v(&T$MH70?-aF z>x8DDy$GjzW*4sXMOZC&Bll86wrd@|`b=1?9W|wy1|)=~YN_~-dM*D)y}GQ0chCte zb|IAIEcc>;Z2n(Lb!((H#$B_&|EwcttC-w{Q&Tt^Jjp3iX>{?-Xm20L8X0wRJ9K#S zu+Y_KPm}QTg*xZ)x9Cw74wXx$lU2IouS9mqQ^>v7^Cq(V&-d>w*5^3h?ch0c{`3wR zA4Aq{@MMk05Y5FvkBwKPQIy%bjb`Je8UK9W9n+u=ykmxzcX^2gNb!Qdn?2)w6L$Y= z-4Z?>ggBe^~Uxi?WI_`RAp$7y27pOI~>TwBKzvbI)a*6J+@p+eMgDRALR+T z+mwXM6z$cH00F^UeIXJrf7OL_{fT~=>@?-8#T$-Q633Z`#q7f4MO!Xuo zl9)}jtCk&w>cxu>OxQ&8exP%p^_NGY%P*$nYGPu8I6@{$EF(~!SYt+BY6`Ie#p+le z7u@Yi7W|fwJt`E{{I6`NXG=~44qy;PKVf0Hp5ZHI1N3ZEbh+EqLT;@K-j0g)CMxt$tNs8(KZG00(@eRZwXZa$)aVy9O;$=#y|aH7828D+()k;~e;qD{)U@XCZ=p!qs0Bj?CU z+)6#4W_++x$qC%?4&+dtbGPLcxbZh98UZTj|C_vIBbCsn#gYkgxxf4|Cps=9d< z2zht-C-|Axk`Ar2XJa)?IQOzp+Vy_DcGx{5O{0Zm3~VmbFt`vM^zweUjfMw97ofNyK&n!c&&rD><@OKA4_$vc-mWKA-g`akVCgvOh_GwRB4hmSrzZ#BuiINb85J*+>TfZcou*cxZ09K zB4N9p9+U$MXBQ(tCW>bQOjq5$69AQ0`;9hQP&m=|`c!D7nO6Dvc7N+BTizJEDfAY>w5fJ_Rt@^9sxn{*!HXHVJW!q}?zgcy5aij1#!QaGywymLIne zZYXFmbo%Eq;O#T!dAUZLWO&U;qelzYOu`Rm9g-hpa;+DPP`Ht$`tWHNbX z?(imb&RW5`;bueq^jnRuG{ZmEB_3oQ>OMYKsZN^qZai4yRQ~N|q>Ag(?$kuxu0l|2 z1FgnEX3rdvdb;*!0z)f%J-<&>8iB3(G99)%AP&NB>X|DiT~#QExzX%TRnZiB=fTm~Of!A;GhR^+%rAY(s=iS6A(! z+-?>2AhI3GnJa!XZZ3G>R#cVRKuLs4&lpwh+NQ|u{0UM$t!(b|zp|S4SIe_kk(#ES ztD-TOZ?N$u+}H{k);+%!hqDvUMi;vJ7i^)@Nt~wu_^J5RJY^qqXuobmZ?}A8lql6# zGyDcU;!o@tk(RWI3Ip7t+&)bdS}8SNQL!^z#XMZt>LZ6V$+PXh#~+J6h(}#hE0560 zGiu2Uj0{|`rfXPCqwJX7^Qa|r$X+Q!K2m~p(}9}gd&7ab?W zta+>RU^0!$*BtiMO>68d@7vLl9s{9ePQE4t62ukVXT zHEZf@OXjkR$5wrE*j-B+v7_gX^JzQR_!gBKV7bfEL{vATwh z7mJV_03c^tA-1q5hAbr>rsdEnf6Lv!AZjDQ%?`W$VYs><<+~Dl-gkaw$cj~@>f66m z%^p@iVE?GGq&v9z8#S0OMebynw03T$BG=|ekbpvemypmh4Jj(2{papjWx@~otDNaD z$;74rEhlD`6*AQMq+L}NUCoK~b7xN*j+pz-&Wh#HyOIuR+`7J%v)e+nfJLq9AA}gBRohI+qi&86pDmQA_i*yGTK3 zs;3pjNalz+oL%@c5~ibf{dBAO;m;n1i6DU2&eQ$H(c;-cF(y+Ven=6n(4Cf2bx+K>mV;PC8d3)|J*AZc<5&8P7Gr-@{=JM2nz8% zSuj65@%D!8SF|zd1A1xVdVj&j=U~r74^r42SrAb$Gc+K?ureHy`$CDFz7re0R?Sdz{=TXp2!Y(P_dXSUoy#6=uZ}LfEf84)_(X&!%r(!#iwFfQ z|F%zhd%YK{Npe9V9;b8{P7zdV^Ac{!`#F4=Q-_67T*4sz=8j<#u(|q|2@1B3^m;Ps z*y{mE{VWp_QS`$gXChdO_R~IXP0jl3)dQ3@MR>IJdrjy<;CX*FK?1PSQ`Sda$TexW zAB@*rtU_(1@E0fYjcdM2O46URuiCu$4SRvBGyn)sBzx~B3AF33>gH{m0E1-{v3_c4 zIT*QZY*W^}xx0gSh?f2=R4ARco8)+*bcpFw zF6K^<)zcq(HoiOO>($_5t@NRv;iw_VkKJNIVs`^aLiBS2ot5rHXR(vIN!f zK;7kg+f!*K_fGZPKCp>ykDyU=l=QaD>hflGQZabx?@}!mUF|})zCWmpfDE?72Q^S2-fB)qbI5_J)DL>z*`wc-{%cI3iAhqoeB4@C z|CB*hBeA0E{wxe}gP*T-ycxZ3{+zMS3AvufzUP3Wjb1K>!9!0Lr*wOp07@X%;Q%hh znM11bScwWYs~lOO_Wn+f$DhvFok1*X;}gxHH4L!ic4*)%7`s`Nvj1@yv-1%--PW`z zBHsTso=;LO%=eL45xB7t-*}mN<-pxJ@v#nT9Mc#~1|}7Jxshj}_w7#t zzjfG$Sz-L!3+V;of~Ujx`Ibfpkq+ADdFoOu)q#byYgl#K0N`i#cl#uc)svp3lhu@V z^e5O1p#ju|t{-)~Y%$2PM%&e3jS-E2XNINp<88;aXhD4g^ zgi18CrjPwxKzjE$a1x~QrUNjX-ZW`TSfAfKl~6T|!lJQdd;zWq2X9zHgWE}IB*d=+ zUAFw4EmtpI)(k4m+L+knL9)Q<9Yqv#*UD|TfW-ij-P!mO<$Psna^ z1)w%9sY34qEpvqzAO_rjR6=*wAB*h&Dy{!nG;j87x;&|zY9lOT@xC=vTr?@YC`8d@ z&*q3zPwrc!U*K-r+WJPw%!$=I%k)sG$O9{CI?|zRvQp&%?qtV!gcNy^aN1bd4xZ87 zxZmgz0hx~U$_Zn~S(&MeJ}kNqftr60^q#sPJpBP`aE)UQ0{lPr-aD+x?E4p`2s$Ey zh2B&KQK?Fev?wE}h^Q#NC<>utKsq5Xj3Qk{Kp_-GK%@zwmmotEkPxNUNCE_@MtUG{ zc3@`6%-6ZUdw%yk&pqc}|CvW%-u>>q%4dDn+H3EZe|4Q=>tbMbPl~M$ZJW2A1LE;`;p)D|EmW;PC(eo9o3&^I?gJg5)1uC!W} zL`6MWFkJCl|8~!Ry{jnS^+q|jvg^@>2mVqP-ld3R4}Z7*QuF{-Y@DpU3ldi z<8 zV%Z35N_$_qN7mt%_PT#GXa?$SdFrMAa{XdGEtB3EsYjL zNVE$T>)6OJsOiEHx&aJ4@1E(#OO{JMeYJ{SH(|#4g65%h_j|_2rZv@JdWR;>2g)C; z1>Y;i4y%DPK|Z2~7zPDk4u}6dU^E^AZ3#;L)UL3&PS8JzroMxva8@YRb7@qoE+VY( zzg0}zbEFN$3SX>}$EL&fshS|UYxZQjoDs`sm~c7cy?7c;H9<1rs+=!$Y17UoQN_Ru zEEh86|2T>jcux8)WN5x9Y=R?3ApR>ufj4us@PNCH59i{O`SF@QO*=gy)r29bs7^z6 zdEvck@&|p9qhD5dlxKhX%=EfCNm;TZX5NAN6I7;y`#7F9sI1109VsMjwf8K4p7(lZ zwXf7q-;5fV9IB9DSXba?uP4%EAqxN21a`S*5&jPv^IAVG#W4iBG9722zFRa(XmC(^ zbp~=qXCFAA^^U;J8DKH6kT?Iwlo^@aj=ept_S;=+DNZ#`I3bTim-or-y>d34fBg?T zY|f{+Fym%7(A7~Y{yyG*qX?z?;Odi_CQts7?BC9Q1?IA-Q%1E3T{$g;Ns-EvGv03} z>wOe&PbbxVJmuiqvH{mNLmwtIZBU?o6_=P||7DbmOd=FQDtt9V?!wK+Qlz7KHiBGY(os6ZxrLV zd}{6-e}`u8e=2YLAAu~=xNgSrKTnQb|M>Nas_$ew{7~NS9_9yKRye?+w1OtfB)^eH za-#2&?)po`v?%;y)sI~r#HIG$mC)Rgc*&ytsPr_-JC%M`}RQ?OY*YGd%Ai_cdA z?`xLisHBHH8*@7FubtNUC1BNI&yBpG!vd?z{p1#&9PP{Lo=-@Ni_{p=o8>7PI zizH{-PVY4LD6^Ruq8Z_~6#kG)N;M1R6hjpSD+C`@>1z0*Z4sWav?qNjOJzq&cViKU zV^ontdpF((f>~HMG_m)UMU>>Mn>!IElaY!^l^f$dOV)7?7lus#c_ec4Me}7)5!Mu$ zhrkl$4eFbE+$NW9kLM=B7xFyD8LL2X=nFXANE4nJ1 zVXx7pY93!<;jFKw(qYLfUsv*{KIbc!ZVV_RN#A%uS}a_KKB=zVJ4&gB96$V@HUoYW z&qU=4z)XKDUGY?`dqUMF3|r#$Wkx#~$MZkm>tAkThIb~La|vKYLYS*Jj8JPulLSKI zm!IxufXYmNQY7>7PO?0kboZU5$p26RO)XRzoHpb50$i8BZKblPHeX}G#@{(xY0m4d zGU@PdL_B-q!@=qTmAz?{A<)`v)i})zA8RrshzzZ|IUEkXQnTO$&=JcuBQ3370Ias>?ScUj3|yKOx&T`9ick*oIP?%ZtE z$>NRQ%bYk)3hKG39vd8VB|iW5;JagoK~prCaJ`z0!2%q@*({Oh?vb1DMctMw{Kr36 zs<5Dx{Km?ADxHig7gu1!%+;ta*nqmClnGN0(T>|Jx6EetyT@j68%&7Jvw0i$V4xNJ zf}roXHhCG*czZB+bRk~FciuL;iuk5yU59z$Bx-3bA%i&HSF|rmB!XxcS+n%&WQvPr z%ur$kv!&WTo&kT0@EJAUsLIt9%C{n9G2#S!4g8$bu1KQYvq;!P?LB}Ps#jgUJCC=! zc2K~9S>6gvu~ZkT9pRL?JTc@obs*Skp+E1Tc{SWZGUVet{>eOklQr#lNgN9>Bo_{7Pdr~8ab>$pcOM=JYBVmuo;CN$l` z+g$rc;d8T&57SQW-?{!Z-)k|ivHC)-|5MZ4=f8S>XZT&5<1T?14ycj{uh)^JDgcAe zt|U)h3!qGx1e~slOn(6Z9N$geA_zXs-2YPX&OJd0zaF&(*8gj_b)10CfXMgeylcMd z-OJt3*~^UMl9dA{=>GN~R;6xX`DYKlD3`4op_EVYXXRQ5kaBa_2jPl~)OBM1(r}j; z|7?r25=2b@ueHs3v!w2r7pgV zQn+8xV%@T;^PkWOxRgKF_$tG_$DyW(mh_%`wPipr47q* zj8Xs#V=E-wN%*ci&6z_Pd@$XQ*1n6`Hv@O?g391Rqn*Ahtq-2yy!DEO=C@6v^v~A^ zvYa@?Pz9B^T>M>Al*O}96d9;`8+k|}CC8BEF662VIf69itMFdr`v#@=In~ntXXn9k zNz8hU05NGN$#Nz3m1IP0Q`hRo)W=d{hA7y5O(4|bk467#O|OIPaFi1IE*P_HJK%3u zr+NJHYM?i7hLli1bc{{xpLYQy&6-zaU5~f^?xf#x?ilk$88G-9ET@C_`3}Cpo zH}t|krLnc7D?r@kP?~gnJt`s1pJp1K)R?EoL$+9CQ zOW791dR6{c>ZLjOM;VR%CC=vDmK&cV;B7$=F{OX8 zGn*SXF^zU{uRcY^?pwz3h(z?uM0kyZG-M~{>QR=Kf6)h5;EFKKg@3s1KOE(U+tLZ- zhui*e+keKdAJO(lwEh1SnfeiJcl{vAbUyuqB>xTa|98!Sez@%qx22=1fT;b*ZRu(p zKiu|5Zu`$V&X3%d4lsV?w*PB#Tf~vC`pNiD;$m0BEq1Mq2(9|$^H2W6^4w|FCi5q* z5R>#=_4#^j;-ZeIun%6B9O&}&Ld_`vTSmOJdV6Zpn2t0{3Q0%zJ-A$O8_l?b-}yzg z$L@u;E#(e|rFtJ1V`Qr0~AI`sBdDj?(ZFWdWo*x;pPjrOFS8g;Bwase7sW8 zAsh(u$5QI2hrvUh`hK4UqV+j>QI1v@VSxoapZbhp`uI!SIPB4cXQ$?v`g%VkT!e#D zJ06OE-v~7tXKJsvBbEE5G2`0Zr@47ilW)w8CS`mN=OjvH`y@>c*u&h+nZZYo`g#ek zNoCU3V2JLOVt+c+w6VBZt~~uAFW)GX30GhFK~0CrTILl?3M}(1Mc#NiTTj9xiAzT% z0mk(yqxX0}mhx0He;Y+5?ZI}>Idkf6d=9ji%??~YaKF{?01jIiWUHg*y^r0(@XH6JJ0 z^%=`N%}I4s5vALVg>Ha`rzOk86CWjaJ*|4g9guV%jQVpCT0M8b`?~zJqwoza5m=g| z%H-|+=S2VF6mM-onBj5ilDjy zn=>g>_X`>3C9i9Vh-W4)z(=vEFYRD+uTN2wC9M06MWT=K|0UC*fz_eCTweN z(k~q?rY{MM-w*KUVzZt+){lKpx4Q?n(V1{m!;FjaY=0>K1sL@LP=bV~Fqf`Mf_BWu zMq`@tpZ)T2Th5XuH07Hv?6&x2b8h$cSX)ynOcI+Dwa>L< z$F5q>!ws5?(dtL9%5Td#%m75|j|Nr0^6cB3oB1!jm3_|@acqp!**wi%SBn!LZ>tcR zvH^nsYTo4-Tkb7$Y^ebQ$vVmPCEBHlwW3K%u|T5;mS$&i=ZayBXiVh$^w;HrGM zHMb+pW1ZN-z#p#i{{vSE#IQq=^DR+zIi_*--5OrE2j)JHP`LgdfWFQ(R;`vh1Wijn zdFN_*!i%NBgCfffBL{b|iYGk#WK45OkFMShrD&EybkouF50wEPigW4LP?A@Q6Ll{) z9o)A59o*&b?!o)Yq%FTN%-=JwU|}Vd+w*i$S}e{xz}T{qNT*Bsdd<4u5sa!mij^n4 zb9Ic16Itoue*BqlFbxKd0SsGms7Wv`t^GOWb5I zcbeoH`sGl?W5odHms4ht=s@WmBiU@$ZSTkaMq5XJ;)TX_>vI(ydNg=m09t|z|JCI< zj76zLJFUq$D*o!%YXuOAXTR8OGm$r3vH`ip3%gy8Y(AlM)gu?x1m$6J?Ydt8yW{pZ zX7p{xo|Kl!%uo}~_s*}_Q%r5OYD%7>e@*C5{WOxT-FnRHcrS|U(n~tN(z%-#YS`~{ zUuoaw6A8yu46%1o*cc&`XM5!eAb;bj-b}2x(S_^hq;}m=`oxNpl282%E(5Mcl z3RVZzd@c7sW7jV9gM;NLAd%54+}nKm4a=UCEaz$h zjB8WgFfNaw_yAPXng3Jt31;t9^?SmW1?WCalz^SW-48&yznJ3dMg5K1sxmTeXb z3&oaSSqyjlTcU9#DS+{wx7v-XY)riog^c&uT8}Nqx*FVd^SvIAT6oRJA|sZ7{`JDs zZTg>L0_J0Hn)mhS))NP;NzKpq+&g>-W`4|9OYv`M-!Z*+4CR$cZ(g$mPHFWql;5{G z=%)jbC@oVvp^NqD2>&(iNvmzeaeEPa1 zDnquO_@%eZ^(eFXuJ^_~%}I}2|CZ-9ACL`@&dWGqe`X7ee!$ls+z|TTfv+Ft{x9YZ z&1W8$QQdGI@NBd~A*OPd*Gd{!9b}aOj^6<;U;-*mJ}@&Vwn0}A;>8G2@zVDc`u18e%UZ9;@pLchOtjRljn|)D8qM6@3Vjq5GYLGl0M)Z{B6;y)XDF9Y41&h|L zl9N6JBOZ+utPDU2Rc5M0vfXi0^cUCOj>Me2`i!?&;A{2df<^9$2=IQ_etQY&l#g|bkrbM^2VYUlAX0tSMa$cNI+V8@958l z1EvlL_fDBZu$?Xwkwm6mR0O_h-*ypZ#{+3ur^_m{6mBgxqgF`**##9Ag^?ksBv+{j zBj9U$S%UzMU*ZNFc+{~V)3bqP#BreRaS+cVbdZvJBRtR%+b}z_>o3~O$fU{hOfe(T z6Y+&{zA(>2U=OyUsMg1y78hzK<|+*(U~@B2p|&{mX+YmkpdkrM#3&kc1(D~4brc2YH0F}O+J-$ zqsQBU$@S>Y{~7jW<1&+3l3TwTCpvVxfL~(?dv@(>ot2pp${(><{>4)m%jc?yvS9a4 z>qW7b**MT;8aG`4YppUD6nm?=`TC)n@%n>-6RsXk3jRxYnZ`WiN}_V5o!c-u&5MF9 z!eivWB*!d|bW1m6qANDkr(bwYhukJFL`UbgS}55G)v8&TV;}UtIg_WFfIh?HMBZNK zuBqcU8LGs?f_8Z9-b`jxgsS>1Q{qwP#vxHveh~kK=Mr#Ro~9@*=JD!8YsfS#N0$z z4TI(N``)kBFww?7z-PQLeAL>DoBZ2eR0DVyu-L=0M>o|Rb@lYyD5wxbfITHykUgcl zy1tTA!~d&oC1oay+>b<9o7;S2@DWpY+iyQURax6>WQtNB$VdUJ_r6Io& zFV%&boLK|#?u@I<$gD^dd*uZdNsRdp= zvDP3FN5IHf4*Drj+O)N1kyb?NlzX>}!H}N&NOmQLJ?Et(_JKjh0$p2xtob_zpYq3Y zyMCc17*eXbJM3F~n?5p70*^C~`&yRsE~&aXCAzKD+=h>7h6xn%J~@npvY3Lto7S6PzTMK$B%Z4nJPbQ0gFErua7%|hDbbw9;Y*TN3eh}ra-=} ze3S2PVu92Z2W&ih3J;-3PKUgZT+Pi9wf^-pS)t0(*ATVRE=t~+s^RQKqKGIBI4}%O zl~1Q1T-MBiNW6`yl0Ke*w&1ab(~bWMn1a5e^c&qx-_4aeu4L$v194Cch*aJfxmLN- zT)&)CZORuYQ-@S7I@q@H!CqCCADWC(4siAuY;`Zd8-m69d!|)(TDut}{T50md)a_k zMkcwfG+gfUX=~GzE|h`*RHiOU!(FFxwO3*i>GkzfMpV5e!fTpie{KU+AHz5}^52~> zre?WrczLzGq+w-2Q>B`*s$1mn0LJyfWO19+*I-~FHzj<{uPMT+q?-wJvpf%~T^T)Q z*AuqXXL`*!cWBE((!$_va@`&b)$3_#UNco}0*$$55gMyR9e96V*2jRAgw&dO4lRwL zgi2>(y7hWR7b>Q=b=@GQ)fg#JaEdO{6aWh`hIHQ$+w^opuIL2m;x1I{sQ?T$qJ@kj zNxKMGuGjVx!m8a`7AO0W@;)0fiujH9z{NsD^HqJ6d*8hF8RMV`(rDCv%Unvhk}g%T2Bj}jRY6t?uTI-aCnwvsa@gpwdXUyUQGB{UBC zIUY}7F&>O=?Pa)#{)O(1 z{J<=gcDVT@ZdEE0y_*co^{@tn+xY7J8Y;h*bF;xmkV7HS8wCYekCmm!IwU@y(*bF4 z_vGICGVndXl_H*0SCMi`#-;F8gsmR-$a%!y6XeH&e#tLgz`e! z&WJPh2DW})=MYNO;9dSY&cQ02{O0t!)7Zm516x)_uKK||4Y*`d|6I3cc4B;$bNB7t zUdFoE-Q%5)bU>E*Ucpp_Zg^idUg+#J;aH#$km&qp)*zKPi!U7*AqnPd9j4s`>P88_ zp>}l=G4^8~d3iXbzVz)%*6GCxoyBtM45V;r#L-qrV9W;%5wIyTpu0oloj)**)h}LA z@6tEzTk5PXsQHG(x}lj|V`JRR4*(hyuUcD1hX{K#0W$L<3YsCb>L)AC&3WLRundgZ zp$8f#0b_O=co&=4+WW4#(2UL=Y&c~Dk{FwgZ^D#quicSDFx^5_0@ovSHfl0{*B!U6 z5k4&4x4Uohf_c@BN8i92Z*dkkBI}|TM8K$)wcHFMU`u2zo^r&p8l;cX$Bdu=#`!(x zFCX6Yqn67D7$FWXM+dS4P}ZYn-M@em>e05l(sV+t<@_F1l-u)9s(8oEW0_~&Zp|i= z^Vy-hqevw3ca>FBb$8GJ$)yx9nPehBuD=yEj=vomI{c{hIph3ZEt&LPyih&HZ;OGuz`FL13_H`+oS}Ij8u)hZ4f~R{ zX)S}@k&ABTw8<}_lM&`IjQ1>6^t;Lnl3~`zU(;Qy5vTwtV5sZei5v&=`sl-w$n1u; zDm15tYCbOycLwvFyaa#JFzWH(`EKO^?3kGE;N5HT2*4!ypn4_l4esFKN$z(4W`Akx zyoBPU!&S*tRe@^}U39nCymJKhf`%-RvK_L>6&wB#e`?EY-Eiv-b1%Q+Nf@{3l9)>r zn3(!XQ5bw;YNndxbUFxPgWGZ16mXGlLY&O?U8Jpf3Z%F0~84oVmWKJU6HQ&%ze141J_t zGxT$+YQp48H546@FaW|gy`?suklVnVfsc&Nn?~TNthgo2TfrsOiURLpt2I)bbA(}} zw%@p=O#ROF6$+WB8eDx*vJf-zvA1_}(PH>(l#SA-T7Iz1%IM8yR;nmvle$mRmN|Q! zw#@(7CfJk0F;sY8B~tN|UL-4S5^rVkP(;H^-U6}IxjbEsDOk^LVjhoK{y=RZC$(}_ z`THDCQpsPKRLreU#v@M-6|D>%#NDOA1oX+}&i)Xfqij6YqzxSH(NJ&n12ArCF^8y0~+F zQk+bdabBAlR}wChifuCw)t{^#*Ce~7GR}K?f_kHw5@&hGDe%HRR-EoPSK_<$CihI% zy(56&?@8JD>2s1~JA+R##41;-R|Yd0G( z)Ppv=UH}byQW6l-E2;tCc#52S$DR+PCmQVsINm_ zYs+q61`BKo`Ct1spTquZnWlunHVfm8+Mqafgyi}}tpoDWU4@zCZ|s2i(=BY&F3Ytfcv04rjYx62a)a>U;aJ`hZt)x-0X zx;duTSm!N}zujGJ=F9C@FL@_YAn>J}6{jTc|DbYUIihA-0#@q0I>3Z{KlXv4{GDu} z(G$jbN#=0@e%V^mlQy(Kr6TgfzbOqXAK?GRYGCd|kq{T=yQG+P^&g~IrQ&g}6+_~O zFjT~bi&%mj^Eg}wY^wsR+k^v%GCRJ>KS{wayq)fv6y5+3=NaM)yZ6KRp!oHMQLk~g zxDuJ_wcwI^9waGty1QhOmui%igFh z_ZwII>V+E+|q-t-K8PyW<*cJeK+0K2Ka#sI+>&yiKH0h@Stn73y?F`Q(HqnR1|!P^N}NH1=io zPI{=N2gGgCWt^*GccBdp5W0)mXNEiXq#%-76%v4!%cT2i>1@mP9N4Gi>hd3&|G%Ks zrtm*#HSnGq_7skklf9L9@>BxEmd3a@*--lZAfxjN%;U`CTAL=tC|Rad^4>pbA)SGZ zt`GY2I}p-2!aqe^q?HjJ1fg-Lpkjv>n(IwtpSmNN#|tRE-S&V_A#xha>5|g-Z1V^P z>IM@71H;CKuwa72pO*?v4YHNqvGx|Hl-T9kvsnd19y(-~Dr$d_>o+glqsZXPj}EA$ z*2>-a`k0*iv+KT^nL~ontLdLRV z`%K~=r28fp&EBY3OzUd2xZ!}9>~0G(FS746!7ur4bopaSx-E)+KB5)6ad87O+2#@v zZNUp~ecsq`zhoXm4bVVdp4Bql_2KZ{joBfUMu|C>So8{_vQO$!JbG|(BWs4)TkEE9 z;50`iJjsyc-$d#iP_+2Mbso5a+7l@{ACx!0`9gjAEve)cZvgB3+pN!PkINr*z1^2| ziYXJ)9w43SXvuEN$NL*}g4BDcVN8(j(LDxGW}ml1*sd#q9rp`a?`g8Bzq*w%c8S^N zJd4A)okEI$N$CT2m4&(NTkZ1nsSAY@7cj%zB)#Jr&nJFdfxgxu1sFfh`ss8QqZD%x zCzzx_T@NaVj;Ph_zSAFIft*fPUQbEOhfhC-W7(@-^D9;zE&d?&sPFA#beV3|Cy7Ha z@C!*y07?pzDZ04(75LoE`C_`AMclo>`;@}kB+GAVDQ(r1V&&mS4+Yv(Pjr3wCiWYD zP_48R8k=1HC>Cwg>D`kWgT7^$B1DQqdvtjBpf9!dzHOXdqg%fu=G|FDU%kfdGSQ<- zDLmzcrnldk9qz+;PMkHt_9dZQ=i<<=7K@h;JVMJW&7Keks&R$oE75tNE~n9JJ(Vel zEtI2z39E7R5fFUh9D3y0=?)MDs_&3bS%ns`ZECA<>gm2m=u;+( zx*%h`4w;n@1=Bl4dP{#JTr1F%vsPlb>wBh5Haqt5!#ugSGUCt=xUyf=#-JZ?=iaKl z+-h8#ZdXbtmHERdjDtI$nD2Te{YoLlIwL#)74xycFR%j@0|`dZD7?!q;9-yDSJbVgmjDMN`?&g}sk58w zmr}6?Id*s~LZ4+s@&TNojjs;6@nvAgPFu#Wn#KEYB|Fjvz z!FHHmajFBQ;28gaUIHS(Xb^{b?{BW(#G@H>ittITrtf}l{06lYv+sPX@pHExdV{e6 zt5-_BtOdEVX)^PV*t*}gw;0#%?!pZ>8*74}fV=;f&JD#j+x9BmfMTzWR_296?Xk_M zS`3}R$kSHO=YFdBFx#fd1e=vUNVLH68@zq6*AUCUi6IIw_Js6ddIn6 zv57xi=7-Dt7cLX%D1e*H8$8%3QYf#Ot9A-o_M(KBKWHn2&_MrxDum#lSTTqm4^rNk z=qLQ9dBj+hyAGJR9Mok*^ueu`NSfKW(~^#EJ9i!7=DdY^G?tCgaxKPrlr}<`#QA*lxRn z%(e(PQC5q~H|p-qM^?Ft@vlMOVa=f(BaWQS*vIjIYf&2!Phm{7)NOsuv=#4J>fbLv za*c(<9pn`tSyxY<6254UJ$3Y?!Zse}aDfQo^hLKad=qra!wV3g1CAB+*9Beii0t@V zZ{Q&f0BURY_F7z9p+n-BRzvVpbav*&~YJv7)hfN zfI@)QL)l%R)AP3iw^x5}vR(Pf7D_VImwN-}TuJ_P^MLxyU)aQVV=qAk2$Pnn^J+te5@1duOq6&X&4}7l&WjflDGHkZ?_-fOn^YUVu$Kl zwglR8tRJ-T-sA+0wY#iI=l|Xz`0W5L0GpR?b3JfNQ@>i>@jDM`DJ@lqk4JUB=H=rM zQ-JYBKcnm8?b>Y%Eh(NqYN53yP_14JXg~}C?Tu%Ssc75(tu^yeGSHO2f)~bK+bu1Io@~p07o01m-dRbnSrbGq-kj6evH7|nBPu|}GQ0!-W zA=m!iLH|G7^uLGpm>+2W-$eU+DgwBEt4_E^C^acxG-;q% zd(E${g2AZH^qiVCE%3dHEs(I268{-i zB&p*Obg|XggYzieowHC|C>tZlO#py9IY9GN$z#hoh871ZTCK{dHTp#TWFO;!&bdBO z^17T%7?&?zi5R0v^i`^sldkykMXs2%dL8>M$0^a~D9rth7O2g(8e@*w(7AaPaP#S$ zs^@Vu+$_mttfF+ZHNb<{i34x?4eMigvO`@wrpf0~6*f+SrP|#Mx#9`cK35%=FRH}j zT)S@g=$+XA2pxJ8d>;d_ee<1U`V$C}0CmvEQZHPW0;uDx!%TUIuT;N`SXj`v?pget zKf|X*>7Bv*`J_5@FlOPg@@!s`0$CDYJtB$k>$0i(U3F4f1>T?gBV0o0QEz_x*_@1-MrX9nE58psp+ zGBPuKRO(5pl*aN+)M^=XqeMQzmmH$MUb-5##}fmn;D)EwZIL4TZ_=(^BNGa+Dc3HP ziGuelkU@V#MbLe5BCr>T8RnTE1C9G*3Q9anaCMIeq*kT1ny9;qD-G-rj!xc$6J+L96E#-r zg}Gdw>R7?}VtlTe&BtUkeiXOh5wCV#J55@}xErkb)r;j@W%D6y2TbHss$VgxNx%hM z6({SQF75y79a}f1E5-s!4d3KF=(ma(f&Z`{dvbWMCC#)RG~9%VdRJa+AtudYj?a{O zMlIhbA*3Rg)ADq=zQXWoGF|>;o`xj7Y8PX_*%pzA7L321S>X(UcT!0Mb6R?N{3N-; z0UJt+K$N{;oj*vBYX*OlO4y0%0@a!2Z##*hc~J4OZ)0Wbn|w>WwCzw$}rq`HO2s`F?R9Ticghll<`j9ksRV z)!PP@7wdyeXV-6{5ToNf`<=t&!dMF>Qebzn-wN3w3D$jzV!M}Bb$**GzD7&*-S?}| zk$c=OK;g8WHXRDyL>SH6cgr6Ol5rY|JS1xUvXo-FgQBl!*&ITDb;gX(FcC@U;rg^M zirWyHtm4j6D03KfZNeM(0JU(b@4+3$WLVR^A)~VZ#>6h)GTbKVJNSg-i`WT+$EuA0GF25mgl~^Bq5YV}Vb?@B)^7s_eedkGAVUOT_WB&PKamrGyCl+NoPIy2w{RrehNbDAGFbA{+QRK67n%T4 z+c~PV;!hKGjxChuVMgWB@5&>J zH~2}pD|bO)Bo)szZUx5X_6j8%$|dY6DaY1yF_?nH`Se;ae7a!zxxdcRrF7EBwRCmU zk_2sdU1pzy-#+^i29Qf-%6EI~VsJvGrXs44^~nvy^?|-lzodcT$6g!HD-uSgSd;m_MG>1P3%#*;n@=`BiR?t8YQso%!*@I z_swzpA$EQlFqp%WKtN-H~9H(v2SHQ3dbyh9vp(PpD+jtJ^^Ew20tamqgi!7 zUZJlD>H{;;J62IdD&;56M z0zEO4+H%G7OC2O*Z?Wrv0X#HsqX}8`(+Qg%spWC$&u zS4asqXC#Rn*i0AMuJ8fLZPw4h``ZI9bGeXKueo(ymO}se)ilmSk4k__h87em&h6iP zNah-&i7PMrcVePz2U*S2UWNp7t;|sPxQR!LN=p zS2R+ET$)yH(TdrpN!KOU2S9aS0dXW!je=1gH;#&`9&S=2Sk9OTmkgDy{<>3{V7*iq ziU4<>IciT;bkD#WyW<*#5|a^Z!Y@`-Uil~4L6xc(gHUJev8)g+()J-H=uKJRVL@== zX5&8z>yqcpw0Hv-Pjc`MK?H}L`kt32Rp z_g@%R0cO7tXL-OETQFH1JS3>(H>{9P4m7q1*CtS57Tgkx7?*~y;D#ky-Ccm-!IPF>dhu(yY{VYY2gl+M@Mb>tada5# zd<~m?ist~*WNm%4EtweL?R1&8w?K*sdIL*kRIC2_CR$yjdf{b134c5?#6iR3n&VXY zo0Z4Po~?b#caz!*TP>@ODf*=e>5g}_$+3^Kyd;fE1D|sjsyjgE+y#J{U|)u#^#~7B zHw*>mbfW4a#eFT2-^giXlx5ke#eVCxq8u9Wq?R#@drVa_QE18hgNDCa9OtW8F`637N#K6_mQW)#c|^ zt6lbMy`gV-&ZVkiS+&CT+nnUf)siz7ocOYJjk<2(fqjj+6tuEmb%l83@~6@-1ts+g zXbUy9wo?A(Ynw7<4pXZ;oH6G3P}9SnZb2vZ;{tMb6|V;)j$l2Ij>Ck@lC~BD-QH)cS6|a;1I3-zU%2FST8+7G!!Oaz_W{U6)XX+sBvJ!XUBWbs+&h<7 zN-z*r1ju2$Ogv!&iOQhxDfO+u99st5sBOI{KMFZW#4w@fOZ@C-BcS#xca zQWN&qG5bn3yi_%W_|-2djpjupP$B&AvjQxLH^Gf=?@`tW;6;s3_n6}!0iV38iT7Nk z7$FDcR2sT^11z`<&A(E-?$j6aRv{+ZW{^Guo$fB3ktNn^vYW01KX&3-JnQ_x>tG>M z`6q^vN>4mhubU08H8n|~#E0hIxYUVM4ZGzRdX*DvmJS+1qm*77Ci{2`dX6tOdh}fz zupb|2GG)(Mw(ui7)rcHCtylI3TN6+zv0heQn7hP$x>okOa#{!KhVswB+b{;bc^)8u z=C2|Xc1w6co~qd=Mv96L;~EUr0o%yU${hF@kYt@=I->zuUzCXqjo|q3%_==%vm*PP z_2o-DJ80X^)jaa>oQA49p3+)^{8`aV30@ISMeZkI5Q80Ydpy=t`zA_w*vCncN-0YC z%EO8S@;-QqH~}G|EMcL%ez*tz>5m-g%7Ec%k_G^5ejFsjicE@)N7svlh|=v1$vOf_ z-!iEF`xyabOlLHV!D!NRT9S?8CrEyT#lwucgaKMn7xn91PB4GJf< zf=I1a-F8bGsWOC~XwLLiob_5u%eU?)<~z>LMwzduQf6|NFrw<~UwHHewNlZHh&Dr+ z&@jxmd1Xr7Bw@rb(vswdFTsW;=av3!5U!BQ5n&3TC=MizQopgzXG2Jwb9JLF-z$XVOJUVFrj(WUM(mtbIU-z&^j0muZ7S&1gRc)< zjkLU=j3G%7^V(Fz8mbo^zEydzC(?F~v2q+YS}!vD-0F>Sq4=#W>YSeGS6z(#I71%K zg9{$8JU#oWw1_C%&OUBUu988@ORrMY;2+Dw8j;MemY;O8sry`7n~5i|8Eem;yzVz< z2lf2i>h+pYjk&Jfo8=nP8S8sRhEC47^FYp8u~G=!&Vx%As6hnv%-hIf9?K5*nq?mM zR#n0+3E_xRbSZu=oM*2FMS$FOBRQd*3Er}?b_KOcYJp9~;M+F~-~Pt0UA6debCc_< z1P}hkgC*@f`EpiYr1$j~W5B0YANDx)YD6NAa&d%7ys$Kuf2{YsJk-0KQ3&3s5Lc&X zi7*yiMOB2U#r>Jt)oYaI9AB>iw9|i$a08%s$Q17IBZ?cE$SF*>fJY%9JRiM3<;lOX zZVq_#?bbMgPfgtzxj8yig40sopM|jKs~6R-L9O)H!}m}(EjmJK3g0yb)1m!5ep6hxONO60LuJBtBJW+Fnj46? zZK+ziFvHQ%Ybb0qgXD6tPPDap@BJc1hr#?OfC=M%Puo*57gjin2UxL@`?3kd^kv zi#NE`o@{ecy(m)B;Ic`Bx=UXx2-1-39Au%8jrfo{BjI6WFmUm%(?86p=PAha=U7!)syl@|(bw%DLy}iA;#V zI~?j)I_}2E26`)a{k$@Kj|?HP#-RMsvLD`t2jAADwzfwt;w8~;m55;DyE3~d(AyqUe@)+_LNmHs(FjKE#;_$ z3OEn=nxGcGko2mS-rjbJlryl9TVKmus~zarH@R_$Hox-qqMY_!`fdgp5MDOA(ngqQ z3S*UWmcS@~&GrWWX`L;XjYMD(`3o;@ zkZUUp>IOB|?|a=_jZ_}LkB=0!xHq_*qtq}q_bVVKOAQJfd%Rtll@Xg=84UGJ;|KY1 zZai~eyIsOPtH;VSg^Ja@T-T--s`umlekMFL^cVN1b{gs;6`eppruJNgch?OiwoX3O zBt}NKM3~N6@HbWtqsbCG2h{Srb;8=vB`c~4`)3fqNFA(N2ADE6lt}6?4e6F)`v%~E zzJ#I8Kuf3$iSlkF&W&qHkLn8F=*Vkxb)Ty{2^gjhK=MJhq+4_NyeM|$+y|DWmRrG_ z=(V>~WI#|pg@hj3myzT_u0y1d`e$*=!7@qvk~f@5>fgzsFZMZwlt*3PfNjRHg*>N3 zt!MG*)2%f|bki~t1o&DH&tAB?SD8}0jC+&S;8IOqo&fHh7p5}CM{ZWK5OMKZSvXKK zIX(zqjg86wQY|E6Nm-n!lCdcl+awKkhfc)Df}Q2JDpm^#>%M|>Pq6s9XZ~%)!I#5L zHzu1)XRu$K+M|R+mXf`VvwM8k)IYWNb3~}P_{03ZrF+OHYm*Ww-sy~LiTqLA+#vh@ zUAvh6USwTR!f`gKXH_1mHB{wq^KZDF-zHbmkXsR%R=QQw#LQORn>jk)e|+#_0}p4_^%@~WMaiqm~H}Ty*08)RD@ixYE{1;RUfUVHO22+ zFJx&c?CJR2uSf`)LE~5@|C*}VLc24#wXWUXN@pX&Oln`)LA&1`H7s}^^S$i`;R+}Hfsas#Ft%nZTWEuk{2InUZmxeSlK;XmyavJxb`-^psNq?K7kgq zk1upPhY~qV_yxL!`A7q}tgMqgTV4@y29nU6xpYbO zG4Z!ol8XmEawBKO>JMvQ+v~gDSyKN~@Gk>iV^{OXVuwU+_bkTuoGO9Z*J@$M6c;Y$ z1)vt960jfijLmip>82vkMelV-QCZE+XVjQK0m3ulXdx^k{RA{D$*1sSGDtzf zS?}rWc8cGg^L8JjfZ}E!;~%X~pa?YW0M*#nD2%WaoX>7-%uF5-T_4S*RiP@{E>}Bh z3l?`r_F5+NP&V`UxtYgpVOvG4ZTDBb0Vb7kVw{@8dETi9?6e;d4pY1UF_pi#GhQ3K z!O0$)=R<5IPs&suT}0Kx`!!u61u$RZdzPW3uztb^P}-hb93SXf_3DqphN9O;J`eGn z8h8op@v83jXZ)Zqfj1sOl@#f0u6!^TrP|rs+^f$uzwQtE4!Zz!{Fy29q^KUv{U7ap zcT`hZ)Gwge7zPz7QdLw`nurj3umGb7s7R9%1tloW(0g#~ba14TP!tA15JGQJAyi2~ zr3Q%70tAR5KoXLWch#98-}jui-dpee@!tDjEf!>D-FxoYcc0(c<+t}?51cE7bxwE! zvGW|>u&;cA)6z7gC>qY7$`k%rCP;MKCihRQPvQ^2om9r$Bv$TtuHgU1P zPD5#&%o5UBnbLHgR3C32sMRi}H}zwrrM0wJppv)%^y+G5W~QI~SNRY_9@ zBApz*wkh@*8RxuFomW%`0++F)5}oFs4}M&^KS$~Nr~=V z90^%{PE#pCdAuy$i}Ra%^@8oV`3mP;26M#^_PJS1aP%*)SN?oA;5fcG@}C{YlUZs? zMO-wc-+&;CnE^FvW&4jIlb_|EaMlVr7CeeC`8M4ipmKU{+N(9h%0X-S<~S+ivsn7RbrgSOo*9#s{9*j z|3_Y1INBL!-2y=doR5abTyLHFMYfhtyD2Aa{n*#LXMq(Dq`=&gzX9i_S_iG5m#Al` zZy3P-Mrc(MoQ88&I>%Fp;b8x{Xq&6Uk;E?m7 zx2Waxe;lx-yi(&wvh0{Z(o3AF!=;8vc=!=4n>wks(m^ixPRx;8f5ioWasl+#{$oG% zxX@|w4|xTsd1^QB>dqhU_>r^&;5fgesO*mp{GPcMhoA84j5Z!0$qzgHD}lTKn^gLi z*jx1G&_|9{o7JWDfRP$W#k5+@$^VblR4G6$v3@rbg*ZK+QXKq(?~8i=0Omo2oi98PHlzNJ$7tbt+x1g z#E{3-y}z8IQvCEvt9i77e(i~clp1pvoO+g;!k;tiv6;Xfz>Lj#advpQA2?xdB)T9)OGF&8QF^{>$I?$ocmsvqh8tP_%)-@ZWK`Jk6?~nfWmUBWK?@fIINw z8+YKCOe4cVtfdrJqf)6~ek?q&KeC$HiryLLN!Ycu;VT~2995hiZr)Sg_`|Wdka+;V zRib+^sjr!9PZ9<8B-1HDk3B#3RaK=KAZy^OL!N_t+g4o-jOQL(nAZi4>3368Wh6LX zF=}H}f;52$xHaXj1_V8VWQ!x7MI$*k5p;dtvb_gRZPI>pEN#=eB4c&|sw!n{+;0Cv zk%Nwl1_gUpwq^YaD*S<1GKcWH3JFVu@swm=#~NMJn)z&DfG$#dqPWf{7{6}VPo<3N zGhDe%`={w;9J@{0%-!kx)(30^REwEc=A8aR%pPW@jG9i{AT{z46~Jp-IhiGIihP_4 zS-!>^E0Z3VL=5YNhtk4JZ&4L#L5RT4FF>FM3LY;VAg0uC#2;U|>lP%sPZ(qg{eTDAYX4M#A#-$x5RicDvSmtii->0PKkAF{Je6R&-nGL3 z39PZO(}S-@erUfxF>h{evZyG9Z2{OBfMJ$1GD-uioT?QUvwzI%Yk7c;cVQQ9`}+gm z7bb%LW1bdZn3+kaD1O`N0K=?wo08@qTYLo~-6PkPe{~PQixBScoEQD^igiFYp(;P} zbn$6GG=I0WyR}2AW+H{XVfJ#T1RMqx+yf9|EuM0+L{PybX^H zUEgK{M4O8@EY=SY@6P|3S)Kj2SuH5}AI<8v!Lf90r*HdKaNG^_w*M->F4RM zQ_ipdPJel8R25hU0}0XZ*{}G2%;II4cG30eY)(@K%yj<&stFKz^1W5n^7*w1zK9CA zVUtC+eljbrlkVTWo5><+;FF?-kH#EK2mFsp@$yBfe7l~4vsrj7(LGr|=kSg90E9(y ze!mfHqt#jdT0K1}qqk^Z>aX(Z&{Xdfu70Lg0QgkZvJMkUep~{%&Wzd7mMXPDZT+Fz z*^)&2h(tGlg|w_$C_6vjGb;ygYiH=ZFGO!_B?A^^0S<_@B4p#4T6 z!?q2y->BjF?tW~b{r__{JZ+VXT%!Bmy#O|l|NnrUUmjwFXVyPh`7q{0b*Lq1FVB6E zcb*{bGVxdOY-2Yk+AKzy5Jv-MO@s8l5jsnF9VX`AN*g*J_O_n5-LA4HC}?O}MeY3} z6k6)h%C~pKBbJ8suFmsHMDZU>Sq(Z2b$IRFhbevYG(o(E*#5XR5?3%1h0AI1e{!fZ z5?8J#7MPAqZ|7uHMieD;rAJ(|fJpeJs6KMM@mi~#>LSE{sfwvGzqc-B?;x)NGc*Qu*NZG(7XTUE>Y!QDD>eGLcO}&71dD$^|Awdg4VA#yDCZv$J3K3SJ zdGo5BlI-D(v*-SW?OFysECBsXw1&%bx_PHIWh`1_qo$P7}A<}58rbi zpuAO0?wC%1vx1^o#Cf0lZr)VS(oT4=QEM+XOk<0AsL|ZwYB6?sf)~ZK!%ivRS|z4t zbX|FdN(zLd`Nn<;zyFWtau zOWreV8Fi?Kp1AsyEI!ZC4WQYSL3BKu_CudOKu(e;aB5oV1xKN3hAz6CFMR_HN^3r- zct|0sK94SSEW9s<XH3D%fRC)5njaZKt4|Q8P7Y4z0wh0Kj2f3C?G1z_vDuO5 ze2%1@fLjf(eU{AiQeL=KlUT}lm$yCCh?J{0EEzSzFy8qEzhG+Npzu!!EF z4U|j((g?$p6qF$8>dV%9s=R~T0xS+|r)w1=99cubFf~dkSUToyQxvVsb?O5DYeS(4 z#fkxH7@~dff~8ja(GQGzIhEXWC~MrEh!}~hgKMnT6!4B@3gOm6TIF^CUHH{9{B`w- zWjSH%yvCerFxgJ0@lpY`A~&kv3=!@zk&Y4Rw)P*s{iOoaTkMrKub&e1_V&Pg3tX4s zrr@Ttn}TolTw9xO-$HE;(JqO11fFems2x5t?Yguy%;$oj-ee_a91^Xfs<}-OZQK5O zHcDuxa4B`zxD~W?qre%RDx{+}O`J+GyNz}E5WF78i7=o7!IgAK)APO2p)ab@RKIcB zBge(Hv00+XM{CtM_hXIqUtc~6+3)MfuBfm{LF$zrN9vLmN1`4&!MtMMbH0_j!1#SB zaeGPfYpTwbTb9nmwPLA}_=f1URML*=c4mQRW;K+7FqFxc(^?x9WtC*S5D99;p~mvI ze}woSg*w0S)-cCLG6%^S^~f*^3YOf1jKLeXaH7UQcM%#4yunE8S05DKdCB%Cp&1}8 z5X^7Uf^MjWl4qXM=9Cu3S;$DHX240NHrcsmVt8yta%-$|b<|<3B}Pd{qf7TXj67n!8UWkB6`RA${`!gCT(@@0nHek2aHj}K2t!;3m#;#d?^OPgVPhZ0 zaWi~<^-dh6eWr8p`PnCEF}g14wgJxHMl0R)W}k-#T{nG=Va;-9-GS+3r&qPKDP@B4 zRl;o$mswM|gb~>bAIVW)eSCEF0d4{6Ab@62$c4p3 zl5z~~`K+?XTF_s^(@Lz0s98*1k&?E~!#=SYMzWeP;5+o)@3bBmL0nC-E*3VQsqSyL zEDfkmx@!!j;(=-#pnB##BR~%cLo=~7C5n$v^!ZJ-3aW_pu>AM(bW#UlWXWz3U=9%L6C+BmMZAdQQ5 zaJ(AoDFV+U5Q$UI?Qdfb6Ubg%vR?#Z!r1&IcGq)ic>Pn_nM?|H=7BGzuvvCQeoPY6 zi|vor*c|nMZio@->C{fwm*`fb*CHxksA@h-oy07W71lxwVf;(e7;HLX?&}eW_T)V= z6Igsj^eB~aOPU5x9S)fi>CG37LCCd8>OHNSpaU-;gE*)c2CRzJcqm*Cb=nHPZk6HvAt!#Lugq8DlO zAaq2As_S+Jn+IPL*@+4(xDCTG6UGoUxm-?nA4SsOBN-?GIB^d?xUpv6onbJ64%j7!|x^&wx{n78eBa)r_1c2&|*ebU(ip#2GB{v9Z+b*2O1-& zkJ^|jIpLnymVv{^ql%GmvT`_e>}x7INR{cuU0T0WiVu_5e0I0S?HzKt3jpFv!f`8k>o_tSyd)W*Y4|M@5+5W6Tbp= zwkknz7&AshjdSW1U6+X(8(k)dTc)mURR@FQEl#ilfNoDqyL7pV0QQLiPicRw=CiK0 zSeIep*Y{4>+4ZRcq$l@$M=oa%Xi!(S()2`i`n@CxK?tLj-_P9c{uLXGZ%#IE>Hem{5Igr zo@Knuxx}(llfXC(l3WMer5idL>B}qaI(5Deok9}cMn&QMqeq|>f!Al(#xr#$X*Sr^ zqFdH^qI6y0Ft{sPr2VO*$EkhF$$P3^&a%cnVS(~7FCIpXR*dG_5p}3q+_)B3oV`m7 z*j>T}nQ5o2pWc}g=|V|myK#C7>-+TOlIAQz*`Hrw#5x>6K_RgY&h7G%DjA)ex-SR5 z)nab(byqGHA3hGle0EK;ninw%_lPUCk7jj_t1eR7RgNe+>I9dJnQUvV(*hQ+^)5#X zd##4D0UE~e@rsgnWjTFoEQfs-Fb!kJW2VT$hQhyLT^R6LdY;upk@JcJ(p(@E(QdnS zxcLkcXsnfKXViE(RKo$ZW+z=5T4l3{&Br7{#W>sSLJ{-B-IO4WaoLty?-`=YBCZR2 zHSoeeX`BcH86f!+^a-|RJEvIuezl=p<*vfQ$GYNb(|3(j^r0MT)D|cqpnVYIq5CVA zGfV6lbQ^e&xZD2fBke9?_ynF{D96ajNvL;cRV1WGhQvVB7;$@1^Wa90Q9R~7yV9uf z05t56R}+Bsx}4TwTXL>HX&xiCg3xC?XmBXG00s(h8D}swSzq?HB_AJ&BW$7zQB{|V z;J)u$J1N~+O^%{A{3iXYo^x^lS)H?HQ6d^OgC5u|S9QUDyGBKW>p_H_{jRWU{T(5* zy;8ES1B&*&2|6-S2@2XJ_6vcy4n5~~Qj|ijj#m|hJtl)grd7B4v=&t_ez zMxR!}Q-crTw|e&(-|7qpq$~6?V>y1wb7190v_0E3+C7ayEg7hwE5$ijiJ;q6NpS|i zic|%%Ge1@GBG1D@w%#0H?v%v2F!93S@&k%i~(6oAj5d@CdEv)>qdEuVKr^}Vs^v;`coH~atk z1N4}>YoUIFYcCc3Mik&_>)dSgqa19}!s!2+E>k}#jZ+O@qataZYwzNyS>n&Ui_HF&qv2HwZqutO(yP8_nhZ^6NI5%l&`dS8)UFH_(0q?KjYV1MUAS zbkW^F`wg_;K>H1}-$48SDrhgeI!3_Eiqy3v1Bb)tdz*NL`FQ;j&L%;~nZ6I~9G72O zTLvzDkp9(oN|HP_Zl~@aII_Fn^iXuhO$*DCdMr; z+Q;)x!gTVUGZN?a_9GH$hR>S#<6bbo`h$uJYmITXGc2y|>bxiY{UgmwEMr0Zy~Bqi{O6gXVdiL8f= zepEHT7pFI&Roeey0aTk>bbNJUlF}H3 zizH|*YU!0kd(mxK^OGbeHYD7wg@l$Ma%Q%US3FWmA1YSWH0)W6A$+^JO6yjeUZJ!o%NKxTQAX#_P$oXI5t_@Ix(3j?Kf08(@Ke< zE@TdUNP4iu30NKq#NDI@&_{zQV&i|v38j?ng?~j=2hU47H&!7isiZMMwC?ErKJkpV zAWFFs@YHU}t?h1W-v0LsUdgwLff|*5OAzPw@t$aFJ@^#)Tw@D95d|Dq*5ggD8Qj|eF!5xXoVhe>acA3~ybW+ESd&kymtg5l zH`esxn7=UCR)WdK-i3Yc35m6IBgJrZ8vWYMTV$%P?{65-=jDtc@T@<9tzYUCKDrh|e;*?o30bJtUM^NCiQ#DW?q$VP(_hk>O_Jsxd$D`v zow|^w{=X1*!h^^6!fYt|F>eRKI|0(iK&h6pJtK+kCA=BEij8ZT;q+gk%rzVcUj?Hj zkby)7(4&vjvK1^QtG)L5iJneL#9A-?Ge*8e4H;S{=^fIHLU0!8Al%Vktyl>tPeeP^ zqYco(_S@iPw1wn7k2c#?qV0WT`pDpgpQHxe0X~HT{e$L&Wu1t6(1GwJEIhJHnwGBV zdWJI8X$%R`4W~bhe@WqL@;@ZNmx>e7eJ9Eb9!nqf_1rik@gTF5g z$Bi`9F&F(j+h5aIeW?w^#t__fGC52)V1d)f%;2vwI;33ui}YZre%=W44#Vu@oJi^F z!gkB&X*{(xdKyYK%jJ6Qy|&Ma38uSd-!qB`&--B@uj4lNwL9VZ)Y?JxL292ZXS~{c zowM-fvzTi<&uSUH+rk?2wMg=8e`UWD{`Y=27niduDAh^ivn_DS1a@F85W1gldK7H! z6*)@~h|t z#|BB5dn<|Zfn6f9FJjHg-L+0myF(xYB`PTi{8n^cHaYE}<2?AO=GnE^hk1sV=gLx0 z^&c)~-|QLhS)ttSypNsl@o#1K5EJj4qMYYv>&E?gea*XiJ@@R7SQyF-yQW&Wc-PRv zt@0fMu^@uAeA1xOoRKQf`RZDlOUZjHgMh7{DtMRbfv$!$XV*Uc{7?6tr!h_A^K5;U zqtd244(js(AL)Kmp?zK*q}p_lxI0T5FB*h{I)b()-5AxD3_K{uh1|dR-+j0(%Xm1% zA-aK@=&l^wN)ifHaSY1VR(h&0E*o~|hJ7{p+8lH6wYZl5Z}k<#u0U8{G2iBHjucKQ zUDTvQYw?W??q+te`_0);vmKvOcDZQ~#Bx#HUi}XhBNqPL-0e{aGBU9^TC)(TByHgg z3&2kwgPrx!ErXpK4nv7_>m5{=G~DK1W`?6QXY8feRLq;=JN$Z16c1rvxOo-9U0rY( zMPhNNwo7bX(XlJS2K_01UX?c*a_z`zQr1i1;RhoYT4n<9|9Q$uHB&mspb;sX#Gk(9 zgAp?6{M}+upG$ZSBd0oiewk97;DwPC3I)YtS-;i8-II#_rJrP0v5!0I1>Sj$8#xN+ zd_eB*Z`|*R`+dT$^OQH)Gc4G_>fS`DZJ&J|q23bLyyW(%_3pgeIF@PsEC5mG=)vEtFE6)W3fm4BsO@P}2OCy!i)$vj?;T9~sd8I_X=s%o7&RMiX;GmV)f9F;caak#8GXnlz<{R5Ryx7?|UYRCfz z?tO8T>3CIQM1q7s%fBS$bb^oacS}xPh>9(G=wi;CuMU16;!MYv2|ackk`gK@D0)+( zd)zLQ6I!VauFK^&{s~->T=ekY*0N{KD8AmWFJ!YFmu{boG`P2=J9iv}W+24VUipU~ zvYWTBJ^1AroFWP9Rcb1GVQTwZ7(VvMX&&jYtL`_pb)lStNX_Emb6s?-vw*WH(gj<< zqwO?PYf4%00`KvWResSm?u_{;t@@=*QPchp{zrV%9}!z4cMr_94OI@OS9sj&Se$aO z9UazvameTfr*59`I=lW@?d~(UHvNg}5_6TsVl4KE!~XKTPNTu4HiVedEz&!LNUu^< z|5^M*58w3DEB5;VK%P5@g0D0M-FtiblWj{XF|<$8AY^2&xDA+M1KN(u0+2AyD&?D2 zyfd1>k0l2$$-yR51jdQx3(>N=2!8v)e#_p{)BN3oRQ=asVSU=;U&`JVpe=*7XdZ8S z_Mq^2%`|PRXDYgyFW3~DJ8m<-->-NjToj@I%xxE6da>T1;Wj%3vHj60yF2?sl|73p z-#?y?7DL#`2*@hHukPw8JE>7+`tnv2%)6mM<%YsbF)OPpamcD;+IbK_=eAq#nk`!T zl!-ID%mdZR_^zyzddTH1-HxETPF1f=KQcLqi}}>D%Qc#36=f?ljW^NDio-|}G^NOm zz=O!B9}5q{#cpu?FmSU$8IGk|RsRizEaRJnIdSM!BUWd=zu2+YGcKB=z0cauR<16+ z3uNL^$Jgi!HY;_goMDfEP&-kBsw;fc&}2-8_py-%XmgHw`q+4GVa)DY|CX`>9|fj* zS8PQgITp`?@xwXTM0dkKQETSIj3RVfDnZO3|J8Xha#x5xe$vl}=QgmJ+}XE@Yr*{z{B3@y zUvaiLBCVx+)>n$vqCjD*NdK9dv5WErE+tHETl@%Vq<^IMqgl55H%&{#FHSWkBOmXj z$|`t)s$NANQtD5tVy*r!<{ z*;up1PazL8aluE->Jt9e%5NKm|G#V$vDKbk_rD=g7jE_P1^|j)}}Z6N|xxm#gAj{cmZUr+)TBd8tpmLNyx0xH*_cJ6%(FYESO9z9}YAU*?-4L1oNiorQ@uFM4D~{Ykz_JtHVv(` zG}@qDjWTZcS6brEc2>N&0pS^GEuS(2@UltqB3xCP?%y0=MMQiYxGfaRZG?T7;{{$ zLb0^%RTT%uWdJL~yrM2cvCuH09=W0Z?X^p@ia175fO5U3zum+u)B<~i%ZTaLiT)T0oXzqZ8hf8jSleoTX3^IalX9v^7xh34A$Sq0BJz^;)=rJU~4 z$fo$~s$+`^X0~p|+B)NR`oC!UPG6K#AZr{P4Prb~^$zs+qQi4pH-Ys z47if{V)B#i&>`}l+9sU^sB)9hOMXe#*l=!S)!^k_x|Uw5#tN(Q!23UpV{w8~Kp$=y z-!=VD*Ckm%Zzb2~&MKB*bsEZol7Uu2VL=1=%FpxZ(p3JDK9 z&;Fl(0RC?1Hb3AZgZ%&gqQ6EDA}Ny5P%xLFf`tGRVCaDS*e;{L^QR zmnF6NetzeJn>TlF-*bj*cHCwOI)bM*{ERWzSloBMAHk!2*Xi-!kHPg7FxITtPJ@20 z>1{v1bNtSo2J#nw;R. All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import "github.com/gizak/termui" + +func main() { + err := termui.Init() + if err != nil { + panic(err) + } + defer termui.Close() + + //termui.UseTheme("helloworld") + + par0 := termui.NewPar("Borderless Text") + par0.Height = 1 + par0.Width = 20 + par0.Y = 1 + par0.Border = false + + par1 := termui.NewPar("你好,世界。") + par1.Height = 3 + par1.Width = 17 + par1.X = 20 + par1.BorderLabel = "标签" + + par2 := termui.NewPar("Simple colored text\nwith label. It [can be](fg-red) multilined with \\n or [break automatically](fg-red,fg-bold)") + par2.Height = 5 + par2.Width = 37 + par2.Y = 4 + par2.BorderLabel = "Multiline" + par2.BorderFg = termui.ColorYellow + + par3 := termui.NewPar("Long text with label and it is auto trimmed.") + par3.Height = 3 + par3.Width = 37 + par3.Y = 9 + par3.BorderLabel = "Auto Trim" + + termui.Render(par0, par1, par2, par3) + + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + termui.Loop() + +} diff --git a/vendor/github.com/gizak/termui/_example/par.png b/vendor/github.com/gizak/termui/_example/par.png new file mode 100644 index 0000000000000000000000000000000000000000..b71fa7ccfbd74b37603188774737e88386f027a5 GIT binary patch literal 46080 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

2LD;*FT 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 S). All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import "github.com/gizak/termui" + +func main() { + err := termui.Init() + if err != nil { + panic(err) + } + defer termui.Close() + + //termui.UseTheme("helloworld") + + data := []int{4, 2, 1, 6, 3, 9, 1, 4, 2, 15, 14, 9, 8, 6, 10, 13, 15, 12, 10, 5, 3, 6, 1, 7, 10, 10, 14, 13, 6} + spl0 := termui.NewSparkline() + spl0.Data = data[3:] + spl0.Title = "Sparkline 0" + spl0.LineColor = termui.ColorGreen + + // single + spls0 := termui.NewSparklines(spl0) + spls0.Height = 2 + spls0.Width = 20 + spls0.Border = false + + spl1 := termui.NewSparkline() + spl1.Data = data + spl1.Title = "Sparkline 1" + spl1.LineColor = termui.ColorRed + + spl2 := termui.NewSparkline() + spl2.Data = data[5:] + spl2.Title = "Sparkline 2" + spl2.LineColor = termui.ColorMagenta + + // group + spls1 := termui.NewSparklines(spl0, spl1, spl2) + spls1.Height = 8 + spls1.Width = 20 + spls1.Y = 3 + spls1.BorderLabel = "Group Sparklines" + + spl3 := termui.NewSparkline() + spl3.Data = data + spl3.Title = "Enlarged Sparkline" + spl3.Height = 8 + spl3.LineColor = termui.ColorYellow + + spls2 := termui.NewSparklines(spl3) + spls2.Height = 11 + spls2.Width = 30 + spls2.BorderFg = termui.ColorCyan + spls2.X = 21 + spls2.BorderLabel = "Tweeked Sparkline" + + termui.Render(spls0, spls1, spls2) + + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + termui.Loop() + +} diff --git a/vendor/github.com/gizak/termui/_example/sparklines.png b/vendor/github.com/gizak/termui/_example/sparklines.png new file mode 100644 index 0000000000000000000000000000000000000000..dd5641b24f33db31f088510587a38e04a9a1cbf7 GIT binary patch literal 49102 zcmZVk19&G*vp){U);G3oTN^tY+qP}nwz1jR&c@u>wz093fA+qgbDr~i-?^^2W~QgA zy1S~YQJ;$VE+-BTgAD@&1OzWBA)*Kb1TqZ-1l$J&@l`TZ@R0xn1czlIEc{(kSeWp; zqn)XRwFwZAL_~@jq_UDEMy{G76f_+YFjWD^H_wz!p4nb836Nl9VZ!p|8By>hdSXiI zc49*aw1z4b&A zhh_Cc07dw7W+e4b20n2DwQ_3_PJsJQ1K)c(If5I$AsCtvkwO6_&<_1jtRxy5RkWt6 zi-^4oU4{f=P8mcl1tFw}otiKz>*I6;38#C;#V6R!LF%ZRQ^yVOAj(ZnVZ$->pdJ_+ z-5Qj9*P7VBPN!8pj-B=z?ZsRlj~$C1=w>~&Za`ll|4muW|}E0DbQ zOGP0ieCph7<-A8QArY2_)y9DL?4Oy6))`ydJBh`8V8Js0MGxxW9CHGSnr7z`a=P>B zc53w6`m@~nadR5q0E!>W@q`@2nq%<8-=O|L@cToH)RG0Q5aRt=eLZ{G$#Nb*to27K z2BBvpScvu*kQ96Rg9U!mn}_7^ZL&2l%{UqMCjVo+RrQ4xk}7eAH$oi39mWB@I<{kn z-W|%@^OtE1&#s)2ugr6uMnty=fg#XLoH_Gk5WI$2A30d3UlD95ABHK#VIRTxjuvm9 zk`ToX(+)&ImObP^AVnf&k!piGcppJJ%Qwp7(3v-}2I)|y*CA_r;gMB@$37h*zY#pM z?bBblEg>21yO)d{Jmv4X1?JgnEt(&kdFl6$&(Ws`G6&~k8l-W4SXT}|35wkP)JPD{ zgZvr?R1Jq~RnKW%p{)i^flzpY7L06`shIHfpyf$v46K_apj+TD!#GThG>lfvo}URC z8pN=m$hL6y9ghwpIf5UpdwGc%*yz$upg%{nO$qaCm?A7}EKDH%pFZi|eL77fKGvZ2 zZa8#YQGnz`zh}J24$p#a?<)Zv3vW4l+HF5*LjL-J&@7Qov9PlX3H;rkcOA=85cU|@ zC_Ra-7LxuK=u;pe5<=lOkaXyuxe)b)XI%Qg>M$_hnA9QJgP3bU&mmraeX~cM4-m6Q z*9KA(glq-A>}{HX)eQt@1PcX#5fQNl$CeYVh65Xhs*}WqniHqqGI_3cbX0j8LEo|0rj!h`=sPQV^dyOnFi8s)vR6c+e$`s5@ zh>$2ZUMgLfk~A6V0a*@dvcGFi8j~0~02q95| zlr0f!GzC@8Fu_qWq`0aWw3wxsUXkGhR3o)gwwe4j0cF(N5x6b5GtWD7UDQ_$KUE=~ zDc&I!I&EiUB1wa$LA>6?h|(;TG*wBmaPn>PYjR6{eSLeqT)mQs zN4>PMv`O5EZn6*QYeIzxTZyMqnUd%{+dQ=;%00q8U5pq@vBxyBMO!0Vqva~ss_-f# zS9^Adc0R7SZJlf{4cX1`e$Ch;%?KqXwL48MDmqm%O}27t z31hj0TB9PI+JvHZRjb~0;;s`}Vq!sJ4YIgJ+pKMglN6tGbhY?nX~W6*vDfj@N!OT& z3CV%rf%AdkLD1O67$~(Abu)DxwUf%2irf!p7RFE_lK6yC^>NOz*3l={Z%%)tV&kYfs@9vv@jJYSm$J z+sI*&H{;u@Y~abvl2I~&e&`Fj{4aA~js>50lG-i6vF>-pOg z^kwy>;05;1>h21A1d|iH7|WW;oXy?N+!)iWwXb&aPg_ETLcT(`Ld=YhQD$9-L$gE4 zwF^pNM3H3ZsB02}()|1+>+i<(y9z8zQ@bISHQPn52*yzhWIx4&Vy#1EC;406TkKnL zbhs#_D3B=bD7B<}3JN)0fi{;LHEEu4nQ^|<$I9f&z)F}(?8;5`EX{_h@v54&Y3ny@ z^tJi5&StiTgH_e#&E}%DkkzVMtL9h3D}9DW0pqQs{Hyr=+TS~=MfFC(dzQmda$pn; zWrK1tas)XSIZioo+@A-Amx(*|TL;gmMO5olUZr=fr|tFHZf&j|OdE;ouI(-zXRQtE zG#dn7#~${)51zcYtk*J+yxY%X6f1UmcAPmb7`9{|}zg@mvzdcM;O4Ju0`kj@P z(%I*lYk}VDvhVj zT^Hsarh<%9rT6*W^6B#9mrLU8w(n64Geq|!=I8#BE|(`I8zR4y#mzqCvAJ#BJaL_a zE!)aAU^TjomS$NnGo9pRllDcoTC5`#Qq-RPD4wdcS0%GzI!*J-0NK# zIN57=_{~>ET9tS7n`W;|4pCw&;e(%qw}{$^l!gA*9-WJZ z>Wow`BCppjql(Sz@?0(;Bmet!&P8??mzN+W?Rr+w{=~?SDV0$19QK5|V~Uv~-j>dr zPDCfeBiyW?oM{3rHn}IADz~`@uLqyZ1bI`rTb+Vty|dtP=$`cJO;8%io#h^No4W^5 zUTIGZD=o?OtVSnS;Hls^Fq?EyT8p*XPS1%4d;-s(%1V@Kl(d~qeI|pkDNj*q+E?AaTM&cr&p4j! zp|+J91MA9-CmV+vSqv%5sprc=E5xg_I@pSuJt}@@?Nxc>vtzc&UMU2drFAw7&5vtb zYaP_Q)Cd>T>k6HFb8?%LYaMTH3#!7F`>H&4 zkND6nAS^7rvOUyPeX|l_^MNcSIOaTds{M$6F3<_X3X6*KCn+Rh@RfbJKb+Yv`aO&r zhsSMe@4W{75>cpG?5cYqsH3Ul<|E{DG@76E8=fAX!nfh6szRZx?k#!jM^hP9Sy~=G zSCXG;t>pB)AN#$v{B7l-*U|2jj$Ov;tS|r5+aRnj#$=Ocb8g$QXWez;ZAnrZ9>bDO zU610L>5}WNTgR4s<66s-u1l-t*3SIQG*`*3bDG!EiWUD7y*6T}?}6BI%w!f5huv1D z@6T8Eqla6b3^(1a-yJ;OcB4Lh?}d;sh*J2Lyp?bL`*Hmn4;y9p&%Bmixc5)Gh#f}< zN!b*6UTFd)d~_bA@0BlY_qRj*J>9VwbGmoksGYc%3~x%;Q#LixdU&7Xdo|4gPXU`t zeM=;Esy!-RTKAI=I=A`*+x-QV1v`(T1oQmoug6by_e$$!X8lh5N&IQPOwY4_*q+Yb z6Dkt`z|td$xZsS-)5)kno65j~(*9}j--_MDpg}&NrLWA9>mc*TK>gFn zfP#OqNP$~JASoFz@cW8;0nHDYcE(7_MaDF-qN8mZLJ^3GZCZi|S^{lH*&7?XzmANg z@x`Cx0cF;gJo48e?O^$pgPZz>mxHuhiCKtR0i++VLYCe8+g?l#u8PTcN%#Q#um zf4%=LW*{c~hs4>6k62yyJE5?hqX{7!Ju5vUF+U6;AtA4$u_?Erh}eJFzrOg0&7Ga? zxfvMT+}!BhSm^B>%@~-txVRV?nHiXw>AooFoIGru4czH$ok;!_@;`D!Oq`4yE$p2w z>}(1D$~7>wb8+S)CjMK||6c#L)5P84zctx9{ij=B9c1|Xhk=Qnk>P)3f3foZE#>}h z;cjBBE@EM0V(au(2R{chBkw=-|9^k}TjT%X)c7waE8G9W`G5ZWhm)7#ZwLNQhyK;p zKc!#l;)mg7_+QoY!;rC+HGEkE*Fr>I`RfVt*EC<(&eu)(pXb+mD3{+6Z9Nc>AdsZU zH)VI=^DbCt)TI>qHzJ~7(mOB!sWC17@BSh5W%yum(l{)yX+w!{UkVbaC8mf7j{!&Y zKUvYfMxo0=Mu_%CyzHc|AP**j96MvNSm>l+m;R6_aNiu_W2}uyg5rUIL7+7oi&Z~6 zDmvQnbr#|j=T2=eZkQ{$UGQJMU!8MmTrV2r34r8Y@({)R0s3H=!2f+f0R`|Uhe107 z2|A$vxAY$xK|z0L);Q4rpHf07uyjF4V01H+|3{AgSLrS0|0`P`EbvQ2BP1=2)M1?1 z=Nd+B(M>$X!lxtvogP0-#AL|#*FhX&{>?O&NyV0vl>$?Jl1=%B7gTS`ofezfm#hHY z5JBqDWKyEZ&Dc=BC9lpSjRwdfKSK;#72Vz#{4{cGFvg!faQi+2SPo!&dG;$&|p`upy#{IaY+?I8oQdAERtBBNYfnyeN?HfO@mskC*3U)=8eT_kf$XDyU z2AwP6L;J08;>yp6D_1(9^a$?R?#SA>?R5I`{65JSZDTSJ#86jhqwT;HO}9ci${xcS z8phqkrZzb5PC8?1d|mn5B?cP3WpsFu9AeqM`OlPCJznNeD6rC7?MM^%I_y1U(I&ky zxv>;Y5eGLu;{%ej!3G9-W)=upv2lx?|Bbi5khcWC9RdrD;= z9C88z`AC@Z^^RQ*ixj#Cp+wL?z9E^zE?TdJbL}}r^O*najqC#tm$Edb8}6kelYnhT zOf^jQF(ZaRqQ1Dez*M@kk(rPbu{p3zu0A^eTh$ERs1bFgoan#4>U-x=g09`v*vvNJqH!a4ZflXw8CQl`AU+I zx&LdB&2JEch-g}})*3sccW8mRw_3;8`K*8d+YGEj#rHDeS+nmcE zx3m?y@TRDY0S`q)-M^v0@I#EQ54+qQ71_TX3T|A#mwWpO@Y}VAB%d2lrt^Y^u#}Pr zT<~hx5x}l{;z+_UO6RlrP_FqR#l^|8e9Nz*^t+&nmg|ZU_&A$e2Hf-G-qxKhJMP2E z-=t!9-rM#33MfTIo$|wu!#Ip8U%1o_n{7(L2768fv^qhBqaPC!PvC|G8=->zK@cifkvm;J3j zEm8k1?aOqf8ykJwMH{hN+pmXB? zn0(#xo96QQ44Moq`B8V>L5F#mE%cu8@xf`P8uvNGy#6F-ADeBeDjw-b659SE_TJ%V z5n9k)FAc#n=hb-y(-xFKCh~&wF$CtIE$>Y}j#T!`kAnOaS*C}J;fyMBNKlX-cd?$M z?%+DYzYF4L83WWT#+-JPzOE%j%CHn0oVr!mO;JrEj(xRH8r<1D4#6jmP@ax=o z_4`Fb+Ev5g(n8EUW)L?x;87tMVQC$yZxF~zxUCNcR{Dz35~7Ro?ws_x!|+x2wyT72 zd8v^D`}}tqT`0|Qncw{g{lRs6lW(nhWrP-4HD9ttwook+(yLwg(jR!sjrEsVG9<_k zR~<^=)i#md;z#lPwK*YzM?y$^W-y~a>A8M4t^IjEpZnIfSd5BvNmZ{qYlhgH|C$sp zc$;v+pk{9yXZKz@-Pb1N=m^Me!K9-fh3S zI^+44>6xHMc_%K55+G*#3;me181*|5JXlLND}ELg>m*9bUZ=md1iqAT&mAWxj@|A= zRvMecv34f58TY+CG6|9?7zpvS=)qcDfpMioz8X>h!uqg=CMM*(vb9Lgz2pS8Xr+_` z>(Y7uEcld%Xin{fAC?`h7gRg48sA3}g@;W!-PBv5GKqN9>v+>gKKCwVk_+ zQetE%xisH1>c9>fSPw>Z4EK~^;j{%K|Li{G87`{#qKW&kCg7_k;R^|wRMCv)b)s4n zmlf48{F>7;aqRxnw4u(f@=#>=!xs`!piYtwPLB!1K=cR39wxXI^xk_xpT@kl(5bZC1&VqR!65phDF2v|LC~55 z!ie=SJhPgeyST=SO!K(*q>uLm%nm|fZCcvL$$-+|@Dkeg7&`!Lg5yfFp#%aR4d!sc zJaQ1cRbmpcol$M{Ff6~mR ztn6BA4qR=nd}Ax3f*7C0H44Y$>wjJB#XL!S1kwD^dP%Z^4;3`yb3)vavQw_;{{}1Y zY1#V6X}^YCAIg9-`d0d+4fDCS)cYsAnOZKpJunl;r1I`HILUMn6qrap9V~~@QN3hg z`U2X|>wyiOK_(UGyIP_Sw{+^Yy2ZI-*sUP~3 z)LWwa%mmG)p5CgjWb`_1AX?%ej+YtXqeiy_qR77&(A@W-`H<;av>NOPX3c&JA)J@j zJfp@`VNK|gcP&qBNud)$OHzHl~X+oumPpurDN?F?FNXcD@GNPNGy|F!w za?l-j(s3F;4A(jo#iQE^lL3xhAnd3V-(#BYM+*2^RS580?EEV6p1{q6_Id}F$?K3pibNF44@3GRo^K+Z`+n?^?YFt}Fhb`{_9%R~m2l8aAUb3o zC$9H`6Db-@bt`7nhbTfg^Kz;2b`c{;)mUjJu7$Civ}^x5@1p(FMtqA1l+nC`=1ps< z&5HA-zX3)D$m06PUIkvD=%Q~GXlyJeX)KmMoOI#xRqR|EwESNKdEIWak@Cs_DyKu% z%&cp-oQdg+2ol36h^u#~`QLnVe(KDb*#1dg%E9FwFYdPSddEZ+jqJKA$21$C7_17ol*r2q@S- z_9eVwf{#1k*u3QcVSd@vQ%5$`48s6o<`9z)F>5Vd%EaTMnkgj>>MF7*12XEeqg?|H ziGx(=16Hu#LB;FU!lh5fGvpZ-;{#1tSG2xhS*Yy^V_cc{wdwNvo^2A< zR#b1g7TKG=`&GDWHqYVdW0!{Oc&gIW?PN{JQfOG3OfZuXrdV$TRs1K^MD zwaT?rit0w-$sK*tB&uytZ7Zb!wiDJ|$ADT3x89dGeHZ~LfsTqO&g*mVrfp}FYQB}- zOTwFHGqh*i;E1cO7~>hnldNbDXrpw(GwG38hiWw0uu=GfnluMlZw)5ua(cHUVkPg& za2cZG3*Xr+B;mGafJ`AbxcIaF!tU}U zZG4$i`86lWJh45^EWK{I!V#*+r-RYBf9(fF|KLU7?9qUODwD8Dd+@AzFuIcHAi$h^+5s zVV0Bw*F*PrklvMV2d6tlFgvLt%J&C1D(Z<`j35{0+|g8n<7{ZD`b!Cpj%;;%zuHgK zRZhBfM2KG4zlZaC{vy!j03R=L7PXLGVL$iIt{iH%q^0-nla`OH^p)oW(*z*brmw5$ z61t@vR=E8cDU?-ji}4-=2dNs_YcZVs1+@+UGY&M8U@bk^J44mu=+4=to=V-LHcLRf z@c*XMdd>da+irq$^X4A?CPs{FM!z>DJxa_KBQ#c367RUr;&p*R;ouqPMxlrvGZ=h@ zykg!Fa%#8OddjRNSFTH}pP1D@VUT_|XI&o&O05Q5LP@@M+sQb6D|+SR_cH5%`Dyb4 zXCc9uA_V5npQHcxKex8eT%=W}&K_#0^kG@;h=+9(@*D((bHDO;-SV6U>vz zHP0QH%h*O&e9<(ZC#|zJ>aFEgGUE~hUBKnWMr?bMh%f=11cbCPJ0!v@lq6#v$v9C0 z%zyv@R)4%Y0@*lrac2E|4+e)%9*j`bs8%y~w-C;L&+kxeTT*I>`HVPB zQ|V$l9)TtWR(V0r@7Dz1AHfToyJSO~^!x=y*ZM?BS@~oG5aE6+c znR@x`3>gm#=9wC~BY+e6Z7*q>L8a*tUuFAOjN4R!=D{Y>S=*j63BTs%_QH4e=dUIC z&7X}yYApJM1(JxZhG2KKV+0ViOSgu?xE~fIn&( zGNkE3Q^_W-v`iMi@KiuenKijfxs>~0ny>Y!q z(l)s}3Qt*b^$~8a^va~%kN_5O{Zn}sQSNijH4${_-aO7IVmUYr5;+MGuMvSQ>8PL1 zx|&V!;Y)JF#}tF2T3@zWkN}(bM#{iHDZH{KuT%Wt)nN-|GSQsYa>>8W7a`LNp{k?L z*k!&h%7EQHnoilW;wNTI=q3d-OKuY0-9pb@Rp(7jJB^QLxq90PcWm94*y70Q2m?9& zu-Mo5!|xbH#lyP^?+u1Ruf0%DJ;PGSZ)|tAO~n5GAkp#UJ;nH;isgr|4{r(gJQ(-! z7eGTjo92z_sjr#_EbC%_y2t&TBP)ff9PkXzD7mhTP7!ls3)gw6WdPygbUTM0&p)3Hf<0NP?;9(RU#$W|B78GFaP644iIEt42M!OerXx6wvR#cCSoo zfR>Kf==-jS_x&PRy)*PJ?&y1K2htOV*TB7lp~e$-GeZ`&Z+%Hu?{SY87pSs266pW zdFGiTPuN)RBe)?I-f-GsHs!11sA~bq{)N0xa5fJkMxS0FN`VEl8qyYjKf)HE62Atu zgH7l!Ut{xt!UWu0m|dT&EhW6N5WgvnDpp1!5Vu%0cM(k`g}mbgvuNbYC+S_YwMjj$ zAn~@^Q35o#j3<7ob0F7`o(gEzzMue7jYP*i7hBR{V7JyUDWzZ=Va7H46j3O#0$v3n zWsFs9AW8-JTD?)U|Jo!t(`|Ql z!5c?I;LVT89CHNx;!5GQ02|N1z`o_PCDq31g4eCMPviVY%}CottrcW{(At>u8lmHn zN-S-9b>n+h4!XRK6joHuT3qYt!q&CCt=eaIJ^f>w8AYE>#oFjDVJsCH}H|)wgg#9<%e$Bq!zXJe!g{2YknOT}EsAM?tT_c(B7f zPU3J5a)mj6DnDt@|FADxpiMz?MHEN!^zc1R1@Z1>?w&&FI$xZ$n8C^69KN;J((Ha9U5Jz~g_6_x%&51> zJaU?381u=mu+D4ARRoRXsBzt_xRd})8z+>?v{M`O*qpe){Q^$)UX5Zdb)8 zKvh$E1;pXu+>a$R@#k-ll>DQBf)AYxJhK*kn`gm8w~i6TguUpZaQQPJaOSSxDMUw*3}>1M@C!*@E`c`o%x5lK18ng z_!G1DK7f+|8 z#i%7}DvwUC;ubb`y(`OmAanFS7Z?%QXJPvqKQT`vm15x|rRkc<^s(U*loxkgE{Ucy z)9CeH<~-<=I)W+JjH{|$ZYoUTYj56XjY0+8th8TKv~F>B-`b5-tE`452=Mt2Q-FTa zXzs21x!2qtF#A{;IINg*5OMFUzt=OziNNSA?mp`3mMfN~jNv(a9!bwJ;I zJHn>xt*3YGcAHSi)8Ck<82Q%()*|^Qkmfok&DD8-r+t28!yjGqMtzPtCIuF=V6-LgUiNA5Ls_Irwd(}Cu zeQWtRh7~4Meb-+*eCu{W8Gm|mpQakhM<#Z4zn>GV*6$eR3)VKL$|ZsS5U0=zKkv(|te zg39uY;1%HQ4@lr3;ACRs*q?aPh&Iaf#TWD^B%L5wENO?J#nCF#LM8b)YGv9;j29DH zxTtVyI6;qk>@j(CT8a0jW=ipP3TnDboR-lkvtMlmN($j}!NjR)-7{G-YzW>g4H-rv zUH5MWlZ&&99({j(foanTTd(e}sZEx@R=WvMeKDl5^+IRkKD~ZPZlm_o6=mn98)^<> z5QK7|4OX-H)Zzf8>?a~V86w`*!`jt{oCskJgGh;gmGT%!Xo?Q6qzf6oP_3)9wIY&FmtgW-*Z}M?T{zfT1U3mucfWk(~*g^y!wx8JdxnAUJS$w#9 zpOWZ&C*_}2Ee`KB?9TVHA}{l(cP`F_{WEFJy$=`iXMo-<=)wJ5DWjj|PgVRGjMw6pJgrT{65MDfgB^U8{WY*DG3 z^KJ{O-b24vCh~&_nR%tYP3@qiwC;$W*8>QdVy)E;cpa<**ZV84iX{0rBy$Iv^ZrIO z_5|0@HF=D^gA3{F>1A98AqO_YqCfT_j_#bR>-&s0wuZP2g6Oi($b(W)9Xu>l{6bC$VkPh5A0>?ZR)%Np}#2sO}&HGK31JOi3vyN^|rB}P71IQLsyqE*f8 z3-_1-Qv&SUPMUwp_yXyV!UUtVsOAs?K*R4`*jVQ-BTsYq0&U~Kua~F+|t3G4*ZmIx)F2xmp0Ke>g;dP(g+IdHnSueNq zB)P^0=QzR%CMOh$`b&H!yiQUD7{6-fOa)Fie^@0{CmU-JPrtn1Y}v8w$s`7SGK1_0 z{W8~uju#v^)T|s#ci!5-WR2f7P`vs5Q*ZazqEvQ51LdT#keb#B422mLb?-zV0CTzq zPY-`9YE1ZrtVF7E@RsRfQ~S=UCnA)EqSnX`sDQD!?`;VPnC6fnJ9ItZeOj)ydC@OK zDaDJ8K>$KjmQ*Y9a8GOQcJO-Ew+iB{MLDxPB#IH_;~#r4U`^uw7|BTs9hl(cbB%2%j;Tq!=G^=k=o07~-CQ z%bmGq?{b8;K3kA+EGqUYJh4hpppopACDy%ibQ68K7;f7E_l_MqPoS3ntf661b@}y7zTZZ zcM7jI{?(Rfe}umkKh;6T8pItMgKQN2aoSS|{IW&$(I7)#-{4++IchP1{qr7ZIj^%=#@G=ISftdU zk@@G^leajT9OdluJQVQ%O`cF7&$*k9k^gV11aG}d{$X+Xzvjjxt1t$^Ba1X-@y?Ml_ZH1iD;pEo}8{NQs<{1L%Omw(^xkP0JL1j%Zq0S)dvT~30Xm_4ZGwFq?D_- z5fjuSs`i4>WNmeOdgV$pz-j0RbI<6Xv<4_5Jq}x%dAG^~&ejqzi{1w! z;?`+MGh#x&8i&kJ!IHG&WLnVgUsQdgYtQ3!hWh6i0ZvqG|q2zqE*aYkRs zR5AVf@iAO`18y9T`AA`p|B3^8p1*H~$RBJxh1U)?&uNR4cE{Im$+5CQMQ!Nfa%_YF zmA^N|^_II=39w-sOK+GhKOHRdpc^4D7fgS<} z^nYjcfPgWR5%*p7sNdvAZ@pI~b3)WhC!5Bu`yD4wGp6SSQ>0|K7x($X>RO8!2BFa% zEd~~Sn8G8RzXzc&;!3?MLwLaJhDPvFJ1H_sNy$t{ptOX*8Yb;U({0|3@&R%?v1?ahp0X3KrdWAG2H%JRUCQ`<>gKuYD)H8NU>^>$&hbAs+?#GKum z{n3LA-+!+Aqftp}7b&Ex{=NQ5%bkz`6t8)l)5W-^mw1RcIYl6_;N({ftloBHj$UeeXzJihP zexCuI7m5~s9@Mf`t>;T%KJA1iZWS5q^)V<(f*b+;B)%7-7PSw916>T5j0e8nWEVO4T%k#L;A zxbY(zakM(2pK~y@6x2L6L?r2F_n@4OvNKY;T9A%!BK!Awa-y;8^;J!2zdctfSdM5~ z)?WVr_Z85Al=@D4t2cx*jxS_dxLLCt@Uqv_zfLBG?mS9>R$iqZJsaA#{5e5uY*|qu z@PdBG-!(Xgc(xnkelRLDqj)AM0_$4y>bC#hiim+B~OpB1{;Fttnln=O^HQ=e2gZNe}6G$*`}k$9Lt7=qhRKP z+#m++YW-|p`axInVWEf8S1q6iwpx$b(aaa&?fBlZaM^#O=;H&`1>@`u;}JDR1Eu!+ z3P{XIgc8{K%FWm|yG`@Z4=Z3Bpbvt_Yg)iC18-;)DcC?Gd+dS<&*u82mJ8i^E|{P18lZ}f6x%a> zb%yRjUK{)}elk^$_GgGHlzP2nvx*c-&-eV(95nUfR<%Y)9QNecGM?Y=X4fRk#&sjtJw6xt8g%fw;8ka2tTaK zegha<*!Z_0U+&H|6vZF`W8UEU-!8+~VFEt>dlatQ@rXLmJ9pYMg4%S8-}jTjBS)xG zpNqo|0`dL7z~cU|v=1I<_j_@WW597?%JRDum18(B2fiPqQ>wM2%fN6?BL91g{1r8A z@Pb@Vg3=cheAD|D`vqCXu-H*?g#e%+0?LV|buhH-cjS9tUtD!8MBj54^%+mZHkJ2% zwg!ktKd450Xk{Cl!PeYcp`D$NiPTZOsC!1Qg~nx3AORU|$TFljr$%2hrbcjKs^IHM zExTNU8HnA#fMkhu?U@9Z4{^)CfaH(1s@CLF=-hltY9h<7i$CbZH2Z}GI0*8RZ<&7< zI}NQ9+H&fNueAvS*CL>XaJ+rLB9J5mhCATjgw3NUomU}Xa>Nqo5Nfgl54hi(zpvy7 zX=t&bWAGDc7Q8pNIPx?nCys|S^D&GDNl=nAKjS7y%7O`Z{2vHb7n91~`bXbx7{-sv zW1%yKOYT68eH??I8?yZOR-mYqjV~xTDNwA>9#OW`g9pp6LeM_KK#kSh-NCE^{A87^ zMj~_R$~`3MTM45Mr52eCSONKfaBL7f=c#q@K5TIP%x80K(^m{z5F6FW+SA_3_#OHs z&^@wsooH1Mn;HRsjL#!KA`AUQdSkUIm5R!w*?}$ZH#**Wkp~=CwA7IxKtW1Y{OJru zw1^Z}@9@9TX;p>J{6GAA^p9!f+4ymK2f7UyxD~e|nuJPg!UG+tk~w6lp=I z;YGfBvIe~UKQNnxy25bZlB>~*@~VFEGbg%0{lNGbOuQDj#hLAPb=12;G?ly^VVxhG5DDU<~w5*63a-~hG{4*wq9fEyz)0SbKTahmrnnPe)(nqoQwA>QR?`S4H7A$-)Pz zs@n|vf~a`^f@A0Z1;?JFeX7o*?D3DE=2Mg22N#S)vZmbLU)-hl$d(;SZL(^x0`vjl z9w2zMgo?gO^pG<7WKW$RVlW9e$h4@?UBA%!X=M@$-M+T|&3dz7)#OsE+M7#?T%W-U zkLVlSXAUiAM8dAPK4)0GU7{VcboK z)Vji#uudaB-*&btt2I6=_D$-wr-~m&K)M3oBD+rBg*x4=u>hJbUN21{eQM++T;RdT1M3E#iPpY|f{FG!|SytBQ_R~nR3x7n^F1UJy80(}i{YjhqT+P8T{#$BMkLWGdYg%&~L}SKB)j zojOFk`*I5O>n|t@@lcJYCPRTs54OYe)30|?-!Y7YAR^AoT5^Bh*-Flv1u*-0X za+s&K*RCui*Cgra69b7p`adTi=XW;mI-Q1)M1f=_7Dhvj(jR!>?t|{?RN3G!Ic@3rP?GiO~YWTf{4XEwWk~3;V{28?PSH!on=sscU+o&fD~!X z2z_pBs@-8+n*l^YtR+rN;=;i`CmWrJAT6muc;#3n&StVmduyTG#I!AvC+_nKTm?M z;1~&(axC(!M3me)FvSO46fhGWnYP6fnBgIWir`^3UVA40>z8mon;yU%=eDacrVS~k zC<6T#x)+_l3Ml5tlX6;oHR<1JzWw5Z=KUiOyX7lCpwy<@7%cGb>Hp*&j9Z=1i`uUd z$-LpoIj1ACNT3q7`l-<%y`4QPunXKT-7*f^`H$c$m4Or@|0(O&(JM*X=F=Cq@M!dUb_@;sbLe9Y*c3#b_Xnx|my{ zNphwYZ=~5FCA$WZTf$>=$6G=dR7Xd5{%1V6&nK+j@Tkrw>`&)rZ3gfQ>4c^%4f8F5GuWq2cuzck=Ri*4E+X42H zU;SpFjlDgAzUPcMana#5JA!rv`C; zVO|AV)}vi7DG>sehJn>jezA)Z9Ep!rbr}G$*mBnN{z&ODZUM=(;eHee>a!5smcF== z4@t;Gk?4-cN@JT8+N7E60Ojh~n%7>cq4nk~Lpo_I^mqA8OZmM!wKVf4Bj$R?tG?PD zk47H6jY1v7s!JWj5Z!?AX9MEHK4K1WX*_;zUEwICTgD&uytBB!8*dFtdndyTPqsgZ zKzxF=zYkQ;Kyb^(z_&Vgq2WpV3qnwB5^+G@jQWb4B+;Q9r<&r-GE-p^7&z1)A}8Js z8Qr)q#m3XIrMSBXIEMA$Pv<3ouf`;sDHIjq*T`qUKC=nJnh@?Kjj3Z8t~qV>`O6t# z2<104FgQvsjb5`toKEdQkUf^%{TDUxz3m}M+LK9+{WJiZAo_~NeFc2N%$C0B-p_@PD1oZtYMxlnL>HTu^H@JMesrb~QCAXPwpj8-GUB@USq* zx~WaB>>WaLn$OBw#!*oCfEcRu2zXf%3Vt_uf+jBf|JZxWuqwN5ZJ6$Eq#LBWVbLJn zjnW{Egmg=TAl)GiBDm;o5QRl|Hwe-o`CjP#9N%+4``&wh$NT&Je=*mX=ZHDx81o!d zj<2>N+3~S=#rTBNX!6tMp}P-Ut?ejI+e%&!2>^8fsf#oj#%x9bsX;k&ZMtn1jYR9K zHs^y;%pd|uY{wEZ@_})ZXe?O2n?-F`hSm`nqFi!u_v&sF?z>RXKlbcvRPuUatAVFEa6+4}xrz`eG=LE2ix(MXIKBQW&BKZ9rfx;LCmnaT zhCfgZW$7@zFRH*TZ><+OmHjg{N_fl7U51K&z79(3VphcP|#=)nOm zvR?uW8nad?TLitIJihK1o@D_yhyB%uJr=lgnE@ahbz|IuLZ-8nW!5a#i9wG|W zTupDAzr<-^L#V2V7$);7H6vq87J9#bQT%Hi5=19DHmqoNts*Y1WdKfSTk9*C*>B#K z8`disGaY(JLMeVqSql6J#B&^30aJx-``^h?^irT5E52hYz(t( z#TRu*=V3Z_zBL%omlA`ZHg{xjrgW~gbHH#u-6R=xU1kmme7!bwoZBJ_k2U9Piwm^i zX0Udw0JmBdmlo}j~9Y{{K%G-X$zU$0>u+HAFXjwj>$|~kmPD(f~ z7kH5uk6O}C|HlSrC;6{{m&D0PG0Qj52osJI%69ERqhddjv3lJ~(i>&odFx{)nYVu`(BX&yj$uGix*Mp%hp?e3zri&H1x6YYfiUurr=_4M zT~g8{e%J8HxSwywJ(bPJLgEr4(c#hnxyb)}xg-eR6*on4Px*}yh!*9`EP?l2f7~0U@Fr!o!b^06-B2y$O}^N)!$X$2yYu&jvUP&5n?O z_5ko1QTpr?rWU&i7g)sJub8_3(vHaW8)iUqEQF_;zNt+{CK4tR9%_UfDc=}@?RD@_xAG9JLSW$F2_IOG=Bj{_dQphsS^&4vV0adKi@Dmq+m zoJ>=`xQMIVK8F&iyY~GF72#6`qQsAXFxSv}eE6*)6y7r?V1Ls5PrtZ(gs;d>^(v~d zkB&yv4(diB8SZ4pW$k(UnUXOUowuBhrZ=Tc8t5wSB!7SFqpw!wGoq;u@!u_z7Zbi+ zfIMSQmc^EF+gm$~lt%67m-wEC10QztHH?^@@J#4WR&he-hvmevByuEDdPtjPDC3Qw zKhg59)E}h}_ry;f5Pa`#O#p!i$0wM^mY7paBs=k3%wbr&2x~iv&p}l{%|9KbpoE$p zGFHf(k_6!C%?_iKXKr{^96^G+`yLYo5Rxek6mEo{@RAC5cW?$frv3n4*UN; z0w6H-L^@9e@<@jgNIa*5FpY+`R4gehrQ%e6j?$%6OwA3K~c>7E#*; zEZPWc#+Bu8#mm7wGVn z)SJLbD0xo(khUklqxZcTOrL_?D2unQERnr^%lXuC8@L(Vdft;$RV~>eUNEyz0pKRqIwyGYMU2z~95F>urCfHG5F5lR8}cPM6rA zfGwZ%X9J|-dhx8jp^F*tkk}_~wa?bH28ukgK|GWY}rCPfQ`C-Ktj zL%Ec$&l9*S5c@SLM)g!}2U|TO0qR#khMo$PEy8m=7zzL$& zWz5`e;xGFQvJv7W@xPxvR4V1q_F0aA`U1tZT?SSE#0|F4yXP6;grTMHB} zim%esjnZ&VOfeT!B`Y1K)r;{h^z;yAhWYYA(KXEPjqYI((xeD*a89)cj_G~3BFhAujE}RfP&CC|HC5Z6T-8$N{>){B5xxseeCMZ)s$zq&` zl$IR3AN&k9HyqKyi#5)^Obl4n!AfQLF3+p3S5-)PoVD?P)p6$(Zs#p7- z3nlDgH<=TY*YFYZY#@7u!S4|Z}RfdrGS#LXDD z?`U59j3bI->L3knr}aN*dAaK3w0nzWor)&wv$gf7M@Fs!Cp3c>6gOVeWfuK(6lvI_ zYW`~$08!2?sB=BQNnHIAf! zmjhXo!r5R-Mi@C+8uP6Vmfsry=nKJIOZ1i)rp(q zdh`CG<%vpq&f8UlYhL$y0sd}xls!lVps_wvSJ;$QjlPTVZ404+D9AJAiP>nmA1MAz z6)h`a;xWMqXY99xZh9}0^v-|J#hGupH=Q4r=m2;sam`cC(1h8P?bdy%j=PUZ)WB4i zEo08|#t3KKHbyYa9d5@dUo6yVK|^@#dS+LGFxJmBy$#5!4`U3iODqgEtkC z@cN13&lAQx#pR~@B+~8*S!ivH%A6>idS8Ae*=#4=ELd%-HU+(VP7k~EQ}Uoo_U^DK z+STN0Zt$gYC)VlM^i{g{VE$=Y@`O{n54i)bYeLn@*^$5-^jsFv3dOH&p~oLqyFMVD z+fqY<77o4-r)zM*Ts?5WBHxGR7l>vx8c&6Gi1?WJ^!TwhkbHjd#oonkdb?UjN}Dj$ z>vH)_<#E?u9tn{73L-!!`$@<*Uf;HL@gqBQ>i8SZQ&Z(%IwT{XL>yLO5`)H^(4^{R zocq)%4tY$(N=^!{%-(a|vc>qDVI{Wp*QtfWeqZS5EOD}1hMAlixJw4|fooXXc}AWw4(=do8<92YHzhj0ee#8xcDY+Dwq4_9*3$&EwbLuTF|I}_-CX>q=d zLBGsY>9stUI(4q);5X_EU#WhB&qNfZa1h@3?cwmy=HVxa4Gmu+4;5^Bk8x<9O6YB9 zqO+#L3W1_N25(o&1et?zglbgJq2`QBRXv$sI9g|3*{9F1jdwn+?P88LZyxk_{Gl!m zDyhgFv{(;?(Ws#~n2Z2(2zSkO=f|>o5d_*53vqSa)e&UIGI(cNu z0=iKELNt;>HDlIY{d)J>WI9h|I&>?DHlk7EkEBtJW4 zy!UR`rBwN*BDFg1E6E~x5DrTWoi~gSZ?+R(KKk9u7-gZ)*ciRO5c^Hr3@nvJbR>7` z`hJ7ai>@HMy$QWOoPYKjRg6irkZKGdI<>bXNZ)(b&yStXWETANF>-}Tl%u6db~7!B zpb0>Jz8+Do$m!ArCqzGKGmET=TVv|*;KTuNTq0N@H;vBaVlaRiw`GGcSET(*H*ESl zmZSE6`hKEtL3p)Gf7@)QPYx{vo0J8tQea7en%k9kfzzRJIS_ORn9l zk8@jTk&ObT4&AftWF|~q&94tEjWo|?jAa`&Qc-0`&gYus8CDQPb(503COasQ?zyQm zU0Z_oF}(?P|1c0~$JJ_eje8@l+24Aqe^@un&G=S6OzUmi5^gddbF=xCWs2RX?(Pyb z%UknOZqz`CV52=-(o@LAbZekgb658H&Lr7zNTksUU7{UH!rF6q;*=#%$BpQ@+|vF! z#<2)AG-5M;H*1`;^WXp=;iykkR_Wst>Kk@c#1ds?B!}-2K;=U>Cen) zM2MYIbzDY&5MV80eo?~mEE;)*?sUlmb!w&ZB!*$gPwulyfc&(r*f|g;tKt5^@>Q!#5jXM8jjK#NCq~+R2 zWcdl)e%q8Ew=blOddvUCOYluDp0L`MyR0Ev;;b5NJ&I;TTu3Wcun#S*NcGE zX&*!6M~VGkX?OCA=xBVW{E6f@eB$vMN+z9~8z7<#!W}VxuQXh#USO^P4Z16>e6a+Z?em zeBa_I&w4vulBD>vn)b~rI0FjRG7R3J%NWr%tG4kh@bTqGvo!~THa85<4!1-K@Nr-M z1K&JbqLcT9dsan~vHUC69v>14DT9*b_=yTCK`JWj`#p!P`tNKd@UGh>Ml0DL|IqW;4V0o1A&{fUaq!;naB!V4YwU$8%##Pl6Ri+Cdy zQ@}XfjEh=#w@;KC&yf=nK?k_UG~U=c#&(@ zxJHP|{kR!zhf#h)77bI*DOOYo3#sI8^K=FuSaa1csMK@JtoxfBw~Qyw{R8vDMYVVh zb|fg8(AY-swbWOw8H|v2vzO6x_>b4qCDes8WlsRj2Xt&@V~IZevIuH#zCs{Hp07r% zZXmmx#Ran2NU|AOcTLan=6VD;Q(I7RA z9gcA7wxkWu`s5U;g|#be88jXEUYX!>EI7>gBKVbt3T8STS3{c)gS5e_801D;lcv?V z?DZK-oflb?cnfAv35v=}woRUlmoujr0&AV5M0Z3u{s$4?`d(vmy z6W3bSgxzX5HdOmE&@yei8zD9dI-t5Roy*v125+3QaU3tfwzG2?Qsy%c&g1vR?{7c{ zm>N{P*#!Bqgar9z^V|$2J7J*(rFY2%rHiMpbuQmvV(?c-ZNf!@D&(zjSmntW*yPc9 z3IHlqtcm?5LY*~^4nW|^c{|bk(h%$l=YL3S9>g|@*1GSwEdvNdWexe_it`j zV56Y$Y4Wu&rDnBPqBk$T--VwiRA%Qyln6MmgmAk`>eEht!&O0r`a#d9L+@DUkAoN54s1coN# z`&$jMzL%K5ND(tew0!F_QU`Of$a+q~ACN<^^UubaZc!OBx95AB0SUQ6)i*B^1<&E0 z!F!sX-gJQ(6HOQcq}Y>|Fzj|y7Qghh{QUlM@*ZszA9we7bg(!kKVnKGrxnG*{0}5Aj*Xx5WP?= z9`G)96?_k-Pe=zLgY6Y$TgY~DKk0!0))aga4~qXleTb=mL67N9!|N_lSTzYA=42FZPAUHO=6NqUfk)z<;32ISh^nl6#Xw$rgL>=3 z!c+(QmgXHWS|q7&qk|j@`XYu|4)K})C4bhv+St2MO+gH|9?gJ0{cL$QNtdDSsulJP ze?@kI?rZy5z1S}=l$Ko4^?8Clz~Bw7raKv$pSg0>HAm0eXZPALI&oKwHc~b}eUf_w zD(vdl=AT@i%t`IZoN}08$WlYkE460mt#78D71zIPj2gGzNBemeJ1E;Z`7;F>tXL+c z6W22s;LI*ye*m&ObU+Cq2={+^5dX33XiBZwB`G#CV$C`KFo(jor|vxl2BLv#{p#hR znEW#-pYoQ4ar8*pE&4|;Ika>HIR?jv@9*M(p;jWGF$NnsDdGDcxI<-H%4rtAgsO!h z{50fbJB|fm9@H_z3KIPSGb(=B))~(BdxBC4ueSYVkVJ0$jR5{9nk$!u3oJf#;ibG*UfZkh?Gi1xDu&o7uop2e-d8G z`SDa@cY(?A0;Z%86DJ%w`aJ82T7qOj)hcvBrTbur79XBrV=dlxmmx^K( zBx-p+*`6hTi2AN;Byj$tLn+UP;8D+R3AoauW2J!(Lad`ea#&R3Kk-YJnVwQk8k<(4 zCIpnl&OXv$X|~x&^;tHrNnHKipZF-T_1j{8WY)tY&yjLzW0X3g8p_+JpB}Z zYGjYPB9}LL-<8`{GBa(04cJ&g8K4YUCX*Vl`g$hcvE zuN04dokgJbV&HwUIY%W&`Z=5LO9<&X^~Bvk^!52v=Z1yd>qhg`E-{8?<_O@Ce9MLF zufgA?67;cj0M`NFpdeJ4lKW%&{Av1hQt$l&thPh~HTDM{h#L7T;9}$A13Np2fy8RG{MhC15V<9qha@dE3|;UI5ZZ zYEP4AINY}BtZVag&LmYnpMH@S!hV?;Lf3XZ5c;hKG}U2J(_ zis{YV@glMs*8mgqH6S;*73Rv$Lu;Y#HvYS5vdm543LnAUxCr z_!QtmfsJFDq_*MfGD&Ky$$27;r7B;O%cQQ;2t8dvV)IVS@Ro+$h*}6&groGmPOc~3 zd^nl#8!OXFd7_^jvB0ePtHgNSV%0MFZvF1~t!5vR%#i!TDFL@WEbd}to;4gtk?-Zy z(-*G@Qf-(Bk6Z}$pDLzl^pMBXfVee^p9l}1%}^dXq{a$lQ$7HTc1MC5b8!nB`~$nZ zK)<;ofu6Z&4AhG{o>&o=k&VKB9k`Y~u_be2p&3}|$sxn(Qk07uER#=#Vov3}o_pKr ztocSfpgD6+`y?Kb-|GVfw8ldS71klH%kFz5W#zU0iOR`*dTFbzRo87Sq$>f`i$C@8 zOcG3^C_n}nU}C1*Q~M9-s9Z)0tj4`#GH*QLS*TLOrT*gTEcgZ~)F&&pd@RG^c*6daFg z_k@JrL^gQ`8t@~+q<{aBRB{GLN+MU1-xsXHcUDxK%h0z~hK(+D*d?m|p`w}f>!E^e z=e}jXlVc1VvN}D{B0L}1iJd;O5bAFQ_Ka{M0)%%;Uu#QSv#KZ zr`d0QdZ5rfBj<9O)vtvNN_K#A^5#PRcZGEG{`fYRL=5XGB4XeyQ`rn3C+Np$l7ANV$R3#MK z-%5yx@qLF2sxP>!E8!5j;Cr~PRyCKK1SsVLpUj67*x&E`kK-!2aGoB`M;b($q!;*6 z$MI}F+3rL5-)*Yqv~luilEq@-el>a(!4&l+R$tOzxvc@YX41C)_+Nd~PUI zkWFrc6qJN~#gj#bVe(ROF(amOhl3gi^h*a6Y>&X@aPtN;;caeun3A&gh1?M4m2CsXCw3SI{TSng z9BHwz`Oi;Wi}4*v$-F0;#fsq$;5lQ&gOUc6)>6}Y*9 z5oyz=-vQ=|DyP`a#kUvTkcr&&(${hL;=4RKhd{D)9q6}nT>qnU&;Vo*XKoL+Oj>Fa zG;&z}HM{ptr0y=1qR@DpPd-0+r<2LHQ z*r-!~ede9o_%hG#viB8#RtV?)n^9>c@=U}aRQ`W)ITjtixBJQG@}dfUE^Ob{%I@#io8W_<8^CIU1e*?46`Wkk+93s5Bvt2Bqo+K~ET9I`tQ#D5jTXEz9! zWjqk^IpU44JCxGGw2iE?%9MB1)RPNNhWGCm3bOk z@ev^0**}N)a_dEG$$_c%qv%c3sE+YOgWsh z=xtMR2F?#54V6#y9;ABwWEIbs8loAcR}fIfaZopa7P zgH?MIij$l-Z0jHYBbV3{gkfEG_!|vDKO|naHI(l86-Fdp;#BiKE49k9O8}kO)-aAO zD_fVJC#Gz{l1dzr^!y>LdTpiFxxzF%+40qZ5bBPOjjaJ<4!kQ5T z`TF+^)|?RyEVx6>eh0_1Z-nS|Wysdcr1Qw6$2V}7?(-ROEI3)|qiyr#8j-+aIj$Ya zaPv|+u=}AQ1e_|IM!iJx_~h9*rX~`hUd=vh8!l0eHN9jmQU+*D(jLf;rmrb+oO9G@ zI^l#SBQB3_e*5KN7>Vka`~N)YHnD8z9;W-ikRt_`{OqdwL?h0RVIDW3D*9UVhOeo$ zRZfx=|29$!?<)qLH|u|ysik&_n{s9|LJPx6zo71Ztr^3V#VB2MMtp0ai3&`wyT3AA zMjn&W8G`X!y^=Fk#8R6S$H5VD-aK^QRnZcT@5`*5yM1nVEI*{>mKZ(a78V^B`eBu; zHrPlO2J*hWGwT@vU}NF%+a?q8ziq7apKL5r2}Ze@u~_w#y-|Ed7RlQDM#euy0F1DqnRSl_WItIlcsllX%QMCkt zQ-S&&bi+ZJJiz#%u(`h}63VOnMp#YtxFLvl#0K~9o!rGQOOK%a-QjSthBOx9J)!C& z@6)qN#zKi|s)}<`lz|fewNrJbm3{Rm|6si1oO%0O_V@oNyB>@~k&KODsEkc{DGFCU zchuDZm1mSIIjYr}%Qqj3NZlBlf`eKAP52nPj)YecA4jQZux;>%@TleNO9rte(ONe2 zlxnXxAUHvM-liNW65Y?w;pTCjgzS%SP=|KBh{G`4$as@C+Y4_{C=aSnj%B~;lQ+gU zar*o2s8Dyp-KZ2S-0sH#nf*8q0dPIJ6rT(otRyuWA%$5Zx6UVL$5zZ6US5nJV6c*m zz^DlX%6TxZ@*m$PSss@?Y+c2@vdX~r*P(kXYzdyk5ejV4e}RJe-BCnk9SVnk#j>#Il* zfU%gc^^Fw{Jt6%b>&d0z#^d!el$&6-|JjB8JF)AFxXj`k&szf$v2w=){S%r`?q4?O zFv?&9r!$Qut{8!P6CVy-cCF6=+P%Jk>4SP1)q*xy~&mWs#?T6>1C{`Xf5WH^NfXkTw zJl;=f*c&TxhpQGZvosbOWgVUW#c>?|-Asoo>28!)m|nG6maElJH<^7$5h3Y(6C6JK zNZ50|sFs_=+EjJ>ra&20#C98v6eYiHU_#K)6yD=4vg(~vpUyJ0!NnBsnYJpB;x;p= z#V_#zg^68{aSpA@ud?FVh7XBZhx{%@ecSAYqs#G%lHNMyWe;_K>UQ2b5At?xBpZG9 zy1;$J>>Y^WKZfiGy$_|53a4S1zz+#An=$P7-@TLpRmKp<5J#n>C|G6d57s3DefTXZ=^~Ru(l^r9KESfYLmcnK? zdXwqOht2JWL9d_Ry+(YNeMW}fJOuizT($nZ6s9(ct>qc zAy^}7(lh2c=DZE#DlU%C9ZM$O&1w_58NDQU4h1%qSy7HnptnzNqBIq)R;LhNhf=>Y zg-p*+w_ykfSD<%zDFxcOq02jCdsMa~77E3dV8LW(_oz9WQ@MVjwz0iIB9uPiP#06W zdt?7|LT|1GBMSx6Uz=LRd!S~)B8N>-$I}{rB`!j9^z~ccb?^bFLQJ-`R%8h`LZPZP zp3@hgA%w`)1JXH=|Ds`>=uqn$NybK(W>r z8n(DIZ7+J$^rt&A5lWgLnuxTyNsT{SBLdB6JAjsw`WSN^S>8pEeV41?3~&(<;t_&k94GC-W%$( z;k|{Q;lU*VcWz8Ma~B*(SwiYY#_{A-HKIl?_C5k9&L5=K*XaA%DE8v6E554-@?9~v ztt4l9tO>WptErOm2TyNf9#2=S&%n9B7L}X#P3x+eXr;{>mtqUgEJinmGty6=3C}Qf zLLD~0e>+c!VDsU44vKo|mAM%(I{{(${F%OBk8C>!D1Z#zslS)+A&rtXuvUl@A-IUK z`4GW~+f?gHl`}V6IOu+%0(YkIatF09*v~Non5^3Sb)0RO1bREPgm>QzX~-bvE=ueJxpC_k%9)K7np^jMzFyZ zy*II-c}bMV4F{QaRFP$A6&V(+fM*Yd z4GWIU@n^41U`K=GK-qLybKDM~pkcrh^FkAE4%Griu@wkF5{%EIW( zs~Yfb0jf$~Ym}#`wa%Aif~DfC8tStwwJ>Oq?eV?ozD1O)HrhzJ{ zwowPfdHASbmzoR!o$H1Vyy@S|xz<+gRYCq_NLX^Gwp6XVUNZmF?f#eOORa%yXdz=+ z+j8r`X<8o44HN)hV{C*KqI{oqT~Tade59pjfvxa;|27=)DgTm#(cb`|LH4*_Xo|vu z>GQpabf2stisQN;X$iMuKXSGVv^(9$B(8OJkbGTsDQq0zKT0^|Vhu>9p0Q7y$BX>E zr&01rvd}Jm+1)>q!At(beuQD&nq$VbMxm+{Y{>iZQ8+*?)M)LTl2^Ue-qaq?vHl4_ z;=BpVq~x2-{*C@x5wsTSXXrm`A+C(?@Z8tBlT}b1yj8aR@>mtO?-3?NhM&b@Zv@6| zM{M2w5Se<1X(CdsB#dBVso^Ro3H{ezDEI%nz3A*)EBBMBDs`$cJ9v+_&5y-()cadC z(ZPZ(hgw%UWpmWCJG@Uxm+$;(>byEU&>;7;YcM1ze>Ti#q&lb7z{V8oqFw|j!;q_E zCwjk;8&vTPvcO=v{pA;t?Cuxl#do;5Cg8n9{6^)YVe!iA`y$7N8NBe8Z0qgjs8NSYU2oU{20#)r{>RG>w4G$ij zfEPAH%3PlUV?_$*N1&9oN6-)Z3+{XhITK%fO;(++Icqq2%z+4>Sg&0LM7@<%ZEMED zVUbeS3ekGEs3unV+gyqBw2Sl5KT|=UL)06Y0(cyTBGz*^wZ9Jf6{!OV6z%C7e1~F9 z?!U*E`Ji6s3L}ff5}PFy?(|ri0MT&5t-^hT7{w5af5r8FJtgBb=nz}{?4v#LMnV5y zCZm(y`de}uPQjOpVEJPSUMy^-ReCLW`%PkZ`Ke#siUOqxl;F(Y$CNo<{$9}s*2aMJ z<|1J@T!cyKgI;l3L_u6xA4%1!W;8~PBLM|o`KBJ`Tb=7C%Qxl*#mlaF+UhE`jMNwI zO?liBbLEjoc=$Wgq8xpvVJ(B8LyRdJ)+P_8XN(SFdjf;Ef%)OlOw@gvy086(d7?w*jm z4{t*vE?SY(X&LO6y6~CXvV-Y45Je3(-b=FUYFkpibi1tu7&$*T->0fKtX{mB9sez5cckh>;>HKxl0qeBp-)`52iCZIHrFxyN+) z-4dTTqGcHGeMX_s5wKXqL zx%fWi_!t@oOzUOS8;wzxwY*)X#rUkY(6gT=FW9BKi3N$o`NP3H!93)!ZoxMvPSjBw zBT!`3pL(hRq)@*77o=8T!QWgOl6~Ow%9`CH5gSN<`4`r0f1zKCV>ng7jG~GifO23J zgB36&Kt$Mujwsp3L$J|)ae3bJUsgh}N$1KKzQ=%kq=VuM)VX?_G114}GqetX$QcTt z*=H4~Q(=wZZ63%+m;Rt3+msf$)X?RbI)I&p3RkH^=L_7(om}(xj9DM`5uk1op>}VH^XQ;!Oe&v!tTbF5AwYvnuXjT^D6q-%JrDBbV+Ltby0*dx_+DFd^tXl<=F*Pf&qD9w znjIdR-*4<>)qr#ARPNHDY|Kc(`;w@}vId->%;BToC~ZNt{Vfam9@1M>3B}COh!33W zoLgZbgY1Ldb0yn(51p$MIYOM}InG%cIs3Vqm!(Ik&k#EfB&X8L8Qevx!T&ntIX&h% zJr-+xD}8>k`ko=I)@^a0Y=op_zJb*V#3zD7*?q`qw7ey0tjDs^zttx7d4q+NwMp%6 zrX{*Yn_l#TbxPb4L0}P^7sG!h?76VE>i%03+dmqeYn24zkob3RI?g#2V6g}$Ad!*0 z)HM7?9nevr5>w7VTB22avy&uRep}Sv^|M*cy?9@NY?S%%E{DB*gDq2+D6cK?#GZk9 zRRYK)E)Zh>?B_J&zuk{8ELfK-^Uwm`_ahW6c=?qEgX|P;oTiE9{hP1kQ}-GhtDeTC zLYfyJ<93og{yG;tSiXcXRy4xrw)mp7R8+Abuy+;Ey_EK7HKqwvU0#ac4;k1{oM^{L zNun0#4}F&r@_CxeVa6AR`IRD&co?4QJ1S)pX{!pPpi{hpEf0YGA+}MX{`-f5^8al+ zIWB=1N!kUchJB5{ocd{mnS+n}q8pt*5&!HsV`y#m5?;Q1u}!z2UrP|qKO*Px5!%iw zrI5bKJoUVr*)84}Cu65RPZR%f8sYQKtQXOE-e<3G_Se$eR3;ahPS*eR>Nlvc< z*(!|Uqkg^Y*>oARJAb%?m3YWMmO}>=An?B{V3Y{NK4%aT9(5{XA_LKD!JO)t3-16M z^$y-CH2U?E;*F-q4tY^TRy15;-0fFo)+V7q6vVWSgaQ$Zx3QswBD6cMp&g0+h&yhF z3TF>bn89?4IbBgv!knD^6}tHm*DG(yBri_Q?2k8J>ML}SO9RQy1w!WkYDzv~=+QTQSU$)OR4b+2DmRj1HVx+J^)mTu*Dlj(Hz7~j9JLTm)j4k>`?s4G! zBg~F&)dwFu|E3zFO)S{+PCU06eKd&ohQx0>QSnl~7-jO&x>Ae{S#i(bSDN}Dl%qTU zJAW3Xfg-E)#aJLu!w5a7vAUF0)J=o!qC}C6>+PFBJgILif5u`M>g2nHO2kciy;`OF zxk~7wd@r!E#&P7Z!EC(FoRd`d*mlC@&a@-&oJZH@!vH)CqoFHiyM_RPu4L|NTMus} z|F0tWU8ol?Py&rs3mS)1t?GCKF(|R{D5g*&DP}eXwnpHkLxO|Ta*(3vXjjsL>;^X1 zzm|EP^lmRjW~a9?GxY!y%Bdao@S;qb0z1ebcl3LfBQaKLqsO~JbwsT0R!`j1p zang+tY`#P^w#PslI7O7=7VaYtFjbd52wKMP`I#oM56{einkV)JXEQxO7@=Bg6o=Ybe3 zU5diw-4-qqypx{^hrjAFL+>VPYfH{#Zv5agdDp8P+Bcqwq^nJaqwDb|EN56<)PqUq zyW;B=op@z&Jw|;Pjo^zG@`2W}evPc&LYZFE*ocrHm?6Dikbf53aDi}phkbDoY}z>U z{zSRf{~F~~omy%bAD3-nXwihMbqIunVz&|=M6?E;EI<#8&n~7hNtWMS&TED|0CI|B z?uwHl;Z!!NLl5g7{Qg~bVod5f*Sv(Yc6In#_GI$taHTuehx2xM3Yl1~cApM9^#k^6 z+wPioxB_o3StNDenXji7oA*z4A5DR)+_f8TCAcHvVhuYy+55j`hDRb5mOYHxIR2C# zX^d>#+m^K8KkWJjuX-Ls0^hosi4>Cj)^Zq@5$|}(K$o?D;r%P?Qxay~ybyf5lhGBF zyffF5-R(DN=Y5$8smb1vQsBq!cl1hlVmvcsT?-UheQDhb96mRjj>go=K4C8-yRa8pumVcRSsfje2f50D;QNIS3WVj?UL+6K)D?i^rAN@R=S-DJD z;DP0m^ActK3UdSa-Xz}G_Az#!IaYt3{5llvIgoJZ`aYL01J3h*I{&H;iJ|v~ceK@U zzL!~0XKAu?>8Qv&cqtU)W#%AVYKj>(>{E?Ug6^c&xm|z6ys(}3jGxWm_|C6rc6zk_ zqeMXPH4yM5fkvPxl#{t0Sj z>ro8XjVz)!{jtJ9!d&4~q1a2{N76^&XSO$-kIr4gVn9A4q}Bw4T*_5pt#GEj(M9NjqTYdeVD*nEzE5SYs|4ISPG zt7Mfa-bt%x@NU7ekzj7^vt9(13c4z2j%I7gF7dkrFP~$hOS~RA7ZgW4jL9zJw8#Z? z3i4ZWhW^)!9mrRoNIPS_+Qjx?cBc*Ucg8J5&HV=s#v9&=j>qihI>{C4v5o&6L^T_d z>RYGpc+joB%~oWJ*dGS+TlNhgL%nzx_&?YETZUFc0yII?_k!aa#Uj>&)y}o8k?`W9%$-!#8&Wp>`TYSjH+2D zlIJ^G3iQ#^j-Y^C;J=9K&72&sl8CQXL0~&N?&L#|s>6AyV*6|4o`zQbz_0)^eP3@x%lTw2&H6 zJA!>mZ)IE5r0Vpdu-nE)NO#vWFQMJs_N1M*p4a5M>W`8+**KIB__z-MF93RVJg^L_ zx7Oo2au?dNXvy)+@B8Chj6|?G>Qw|hRK_dBI=R302zc*~rfG;Q&DODPEzc;lfe1k* zSHhRHy}Ki1Sh{&vk2Bbz??|3!Q1pbqblFy4@VhBCDKK-yPqlg~YPDhK1p~AG{_$v< zn2&=tc;2wz*n*oEc3ZUmeCI>I_DE=3fjOm}f1lQ3j*SO=GiH6a!0BE5@os%%%UW|0 z`SmlKHxQmk-R`uC-ZVt@8e7a1e3E!JCz<3%rk`^b+)B+ZG@#T^_`??4(Ux2)RZe_k z`7hOT+kvVM_yhzE7&)c-|8C^Qs1OMk+|1(-+c^A}Zf z4pn`Ap6rJWa^Oz)A3}Gu#Zm4w+kvDcGp)g}1lTpvqgtY<(yy+8kq(;yJ6a<2m^~Hf*r@kCHE2T-a-7c3qLrGVgFkm3;}PUWkHd8ewkhlcO`KX#{F5 zO}jmUBKZWa*~-~r!6DSbGrX|iH}e@6O22J3-QoGy(uXo4Lph2+k>v94kpvb(XIJxc zsG~=i{a#o{_DVVKO%vFaSw~!L(r?4~%WR#Q|H>zPb;cipO}38&EP73C)s|}D1?qWA z;)Mzag9ytOpU*8n$JW+^D14?D!$KV*H>M3q$OJJUW-)oQFTD(}9=`5DgMUVOe}vbL zPww7q9};`Sec5{%^r^X;X!J$>QlU{0Uw`C7P>3^b`7}GI+lr~}U6Qs~$ap6ci$D00 z9X_%iXZgaRDD_4mIy9##5&^g>@kWsH!~NEb3q6yc!i8!XHin1nZ_T{;n`T7Kq5R%% z+~s65QB#3=a{JR&7hK>48;_hEdwX5l4Cm{}`%YU32aGM_pxq4Zki0f}>1|`>PE_uR zHwjdFVr)fK@$4(A`;Acx`N^LdAk?_8@Zk~P4n{Jkpv$eu^rWK>-rs3`Q& zOduSg>A=1ZNBP8C6e`G^AR0VB0X08!a7uB!vjiR{?p9B)_`s!DY;xN{XBm_Oi_e_F z7YvzxS3Fa7#h%-@k3HP$pS~Hzus4!_=$-YFO@1q6{(sv0?zg78ZrddE-jt$L5m0G@ zNEL{nfYLiiQ|Y}W^b$Y>MWlm(kSNkbK_MU64xyG7hjQ#9=^$@1El^z!Rg@;l1)%w^+3~x=w-CJgeT;^_ZmL2c{ZP8L(%mok zpT57Q#AP0$i|&S@9}GVE;N8D=gpO;96_e1gZX5D{9B^ijZ|jm9c;j0E;YHJZdmHT& zw)_BxiS{~Q>?c_#Ej0d0Sr<1mgN%gVfrkGl8~X%ERlUtBp=_p#W_~sFQPB4~rYh-h zM6LDN7Qxu_mo|7LEDZJp#uV&@%SPX|ekEVw)DrGd!{x{R@||l-;wRc2UwnpUC{@1v z?00ISnY$;ShDGMzl=Q!wlJox_Dr7i35?@+|u($V!Up~BLc{n*~IY9j$f-}0WM^Y6}h5N%u9SKyIgM&2aeFUF%6opwAimxz(LZ5@tNWFXD zd;80?9RbY)Z0C{ullx*Mu$BZ?w)c>Ch!Fs1%P9zrz1z8B)<&(P)aO=TYUu0kir>z_ z6<0`X9i5AHyQSf3Jq@}y{NEqVpv^K3NtIdKPy>r{7eTJv0DfwzHz8>hYXXTBcPyETu|I>XnRNpYuL52=nLM~Ep`ND z;R9-#vVtCybN`r$1+^<@AQc=`kJS6jP9%yiR~vhI&q`#?N@vY+V#B!&&Wa= zDHJd06SjjD%sK70dl>mBowvK-;w{mhbD+kW5W%o_507kG)C(q*$yaVNJNZ>woDNaz z7EUt33K4Z}d1~wFphP)J1!Sn)0sh&A{7QAW;+XQ7pI7*t9^z2$b&z_$?%SNvts>$< zQ;rBdAj{EW(BWCTnqS#b1m-(?w!EiQSR!Fmn$aRhHb(wqcXQXsWKnP6I z*nrh_eJkBv-D<8Gq|6yi&cx{Pn<;<!~2C+6hIds0%=K+lc%{Hwuo~u$}P!V zS1$H5==ALgFW(oABO$5MywD5UNQS=Wxc3`LCYesOv{%MJT)$o zc}x92O(rdgOPT4Y;Mqq?6{M+n^#TD+lWqaWO*W^8%2-W$Q~ntEcsslHO69fD$1TUmUEvT~ z4C#laxld}j@Do{;pUP(r&*X20X*oI1JpyL|;=?tkd|FzmS#nolz`ywv|F?g8x~4$q z&p{c~-M>-laYN>qnq%GjkJ-J_zD-ZP>u|_j4p@vJ;~RHLV;xfm%!ODjeh8Kd>zcv9sXb$R=HSK9BNno*QwmYJO{74%PjfWjsHB~EXUc5Tn^@f z-t`L)E*B+JuV@q?s9B?;%S4`BQ*qZ|dNFh*w*6AIM3bx*E3FDStz?0yxr|%na9mO8 zic~>$lE*oxnSJS*=H)phPo&aj=wN;LoTurN{aocuxy|LkO~n?aP+UFX*5b8Yn-%2Q zX@;JcPcH2Cme|imyc<)04t!^THY373wG zXfIWIV^DVVFrSvD)?{M1`}^KCGx2eG_H`R;lkWBaiH$<%+36{z^r;EutFvwiyFsDI zl@Bl+i^pMioTL~Z{$p0do2{jp>E7z-mT8|HeU^Evi!HYq=OK|Fe{;Mf*HH%Z+XW-_y~;ld3L;=Q6^0tQp51I zX@ z4MYsJlDl2F)M1B0dm^3=n1+sK5_;7b50A^2_Sd98EX>> z#n#oiuHZ?diFb9iY*orN%h`K_dtn%BCQ3$B97-d)Iu5-*`K?!i% z5n|EmBJRE+7L0CcG9J(UWi}9$6vfTZd~bZt&hK)(SluqVn-dZ|vyg9AQ&>U*&H~M@ zxk@Z*0mEI*0PHnbhUPW1pj0b9bLj!ySm#DDjYktb;QaK?sxY)Xr{+g?o)zQb zXTpV7i$8eilC2aPBe=8XLXbSwET|*5&ykNIq)w``{-z^Mo9V}Qr;*{dBP1_z@i&Up-NZFw4=71#QV-X}&06~fVDJep)5FUJi+9Q} z$_dBEXAiaq;~L+GyglBHz?4)%Ae6GajQdBQ`YmjdT|48X$`8_}lZ zuM|Z!az{R*4sI^Pk*>6roez$I-l0B4RTzndKMHR#uFx-q3Yh*X0l5kBP8b9N!)Una z@){P3c}v5esw05eX$OF7~k7 z*-|(q-f!cyZdqiEU3UdrCfEv8hy}FGUJ0<;3HEj>=UuloRyU zn%<8066NaG9@H-nDb>CPk zlzy2W8{nXXLbchmj{s< z7A`~;!35Eaj>8!H0eN*2*uxL&Gk(ZtgR-JXIk&6?Tyj1Q_mWnypyo#V3u)*emn zXd_*upo~#-$-vy)$bMyQw2{CFC}%7te|o?7_(>W$7=71-@TaZBx@o!YEOrcZmUSatg2Lc5M+QS-fbx-~5A2 z$EVwp^qSzHXljh_GYIShgZUuQR5YD#p8Ha^smG3Dd*fY>vCI5PCX*k2(FaDB$lVBt zK1loxo6P?N8)j5Vy3%EfAG)lovVsh{*=$%^-`8*NcF=KLaGY1>Eq`12))-E+gexZ| z(em)($AuN_HCwCSQ|*34uhxd$DQnqt;oxOkTqsz;iys+jFvzNAH(4b;8Wkm`hro}= zd|qwLFV@ERIfiwKUxf<2DR6kH5#0qSy2@5RXxLCJ$wdaLyD5F&f{yE&eW|M3>b#wG ziw!aoXF{_r6&h8<8u!sR&|8^(9mlz2quozELySZ3>p!vnb&ELv3fVnAd+2_6J!wP= z{`e4u_Gna*x0^?kRa7W-xGz^N;L5ZRg3zP*u-S+nPxDPFNR??+r#{suMWux~Ya@@( zb7f`pfmE35B{jW==qFa-pn7TyaT!VIGUR#2B3EM@_3|BB*Fi@kH&E-OigTKOf6!uf zLCgLjZULV{(agu+(>qM#uZ&GCc#P~`7tn?2c84U+c`Q8tEV)dWtk@5}W`E1XP&)>h zJjq~P{|HqJDlJ!&FPBk!<3-@lE*u|@Ue`-YfQ zt5|s|sS|GJ8J?3?&LH?7^1ZjZ~5zT~3T_Q=S=z%EEWvHy(~Vb0`seCEf9K zR$@8Y!A32Tinpox zAyXYU4a0}@T0}<0O+p2f9U1Z>gLO_pMR)fMdQJ|^|@kh z1+~+Y)$Qs_>ignd^1>xzp=RPsWyQ1YVoAoZQ^!8ln!u125@JfRq>z*w7is7JJtn(j=Iw$+92f30nu~V@% z9aaX4%RQ4{Td~H)@9Xo|`f9@UcHK;~mWqR2?KS1Ik7{$NF({5ZR_F~`% z)sB2_qN~5IHkt7W0c+j2eA5Ma#EMeLX6PB6vNzut?e>i^Dc00Zo?z8AoM5%dw94}s zsSNH(SzM)_fy;+l2Q5SSGK|YYRfAzus5)>;EK)@?hIZpXb zQ3_kI@j|mnSBUst8!J8JEai#sz7=+xDknpwyhy=|^tv6;8q8ViDZfa7-b3x!gs(Q^ zyM$4}Ha#{7+*HFA^AF#|mj=o&+QIBil1&_=&ifrh)9ozhlBlDxFISl0y%o0=JePhRh6&!hChKR?Ku%<06UHUDS>zDi%3Q}~9cZn5+R zZTY5C*FH_8x%^(}`|{<Q|CQ1u7Q}V&)A4H-udlnNuXW4_;iUq8ojsY^Kw9bd$oRt|KL?^pi*s1iTNufl&pFvbZD7Ii?wW0iNvf#tk6NRxD_CgosPwek2!fMdzA^YhER*pN_V+5pY{YmBAThKBiiVgy6 z`6wAM`o2uuoZ4bob9t~!y>#P&Da&jGe-R%91{8;JI;{~CHbY|<3%JIc7+7@>dn!do zMBL1q=0KgLnVOCu_+>S0lpir-puxo-p<^ZQZSQbs{SmtkACWlN7+UZ-jD!*7cG{w; z52lc_lW@5wGM5UbcRl>;57kK0iTGa>i#vXVG{ zy{rtJs9pSACo!sVZ$`PRXEZcL@oBZDOfUAp5Umv8e|NU}p~=3Lu)(XJ_%`h$>F)J3 z;N!CI4Ay|GktX0-Uh^PVB>0EVI*y3-f|pcUG0gLE)C%lbdgi!Y!h=d{^z(7$jrnWD zo{!+Fqh~>mmFvI4N`HlTR5YAqG7RrW%z1lO-*{EOVU4Br{}NUh_A%+X;N%Ct8oL>h zrJm=bqM?>9ESuf0DT0alyuLP3xyIcK3gM%>ar*e?k%U1r-q2s{j(T~0gLxo;2H21} zhEZH;v2Plo#8}gDt6u;*u1D4E=f;}EmqejF_mtQ0IhW<9-yDn{;lFh{E=JO(OCTHc zJD%71Xf|*=o*Mz9tMj$5s263w$+>Z%oa;#MN{4Rpw4fDH?PD&FNJ(;kaBWxWV(8-N z#@4xnMzMIFunT8TJYH*Q&u!)9nP(}emo)f(VnL+@4-sB<3>GP&Tag%4>(!JJ(`lPt9J8t<#j%wqd&@k}cv_+3 z>=9(Dq@Pl5Fj8)C()eLHrUKss|5^aPXO%CO?XP^nFgYWyNYTaPxapXyJMhak9rdUHtEh^KwQXTjg0 zf=>GHsXPhbVfY`2K30QoY93HwuzoP$Wi3goHfVjdUvma!+B(wfNjzfa8Sr>7c_`29 z2c7406&gRZbgXHUh;r~Z)()chdSTVqI?^W_Ha)3ZR(Gm`qo1eSR;&_*mUM|8OFE_*5m=c|N zZk^Ej?wh+yg5ALvC{E=ZeV6vc<5MEAab$DK#J4vp72wn| zO}aOzh4ln{+2+I+)aX*Tdv>)(rt#B5W%pz21FuElm#ZhP+Xd}Tyq=om_rlKL!Phd?) zs5*(_Tac>rpI>KCrlO(Uq$?~~+MWG4fO_iWI9SmNUU`szT1%Y?Mo6#Q{H~>Hp<>`E zuaJ(z!!_I`h6*wm{CyZz=TuIN{f}Rgf!@3Bcuem4?ALmouLmC#;FUo+#8Sh`;G97% zQfhr(-2M}bupp>ff^f=+@(Z!fz5O#1)FE#o)FE8_r-&5)*uk|pmJqjg=|+W z7Nt(>bihvPhR_>SG6Bb@f>A!Io*aa^6+B_DgJWn znmF=s)%}!%(mB7h3-H_J$8I+qPU#5wAAFrZ7%$0#t-NTklr62~RMFYx0IMqh($-Fs z1;wA2{|$2HlmVsjGON&}Jd=tLt0UXE2$ugt08(PUaq?RL1Sf|m9UJNtmR5-NWGfXE ziWCNr?m|?Un=0RaoDNLC%sx3xy3*z3Tn9Q$ODho0^mS$knE;B$Kb|-2ApIKuIvXQpMf$E#K=X(oF*{&7rEm7@9;NlFPh}y~z9LA?g zkla>sQf3JX$#p-9KmNHW{_Z9-z{ib~v(WMBy@sH_vW{8-#hhN7?ZSBHE*oy;Wby-L&clrXymyKp*8wL2-={iqZt^Mg~y+&0$}ThUG}l zSAwhrTR8WUY1cx_LzZ(rJrn6Ri9P<@EHsw9G2Uv3X3cX4f^A9+UZ+JXnEvZcl|FS| zGXy|r>T?2wCKORqj8uIuL5*2zU-S)^>RCx9Lnfi|MrE|RKH|2(9jVjcR9mjA?wD(niC(Uy?6of;bA)oq$!WYYDke0*ds zeTUe)Ticts{^RiH4IC)6j9@>x_i;#R-TcRet#Llz>FA?Aug0$X9ED2Whhgf$b!AIe z2Tq}LHA?%m>4-XQIzj-_H-JEP{_}@NW%OIXLnJtE#x(&7x%EP4i3NI0!Obh<@-H5C zG+A?Z#5uERuX!AavxdYbGB9O5e=x4vdiFQ)mH!2N)kd&obVc0k)emLO<=>-TZwoR>O<;=kzT&5SL$@Q&cvUSzxM0-B*75UL$+R}#U3=zK_ z?va6it~vZo#^PFOV`EDn@yGr8fXfH*n$gFGSc0%!@ZM=Ch?XROsszm@C(qNQr^HNo zyDDfn%cLf71lFBthgo(u0h7)6#IZs=D;ct=r*DH}KU}WdM)s_Z*I?E@qg8;oWTGYg z7^(r7;`{j8VrCNL4*Mzubya_zR9I6D$xezvcXB<_t_5@|0VdQDUHZqo#~g&EZ^H-I z@cOP@3<(_spUb<%&l}x)jKGJQ*2JHgyy=xckD8tiyL_@+O7hK%VzldR_NMe!}(4KG~q6=Kl;SHsn_VA8Tv-#J_Ye3yO!$2%6dSJg=H zD+)G>rDeY|aj`6^Coxo0jNAX@OKy15-P!z&J|LjUxCX=K4z6LifP9|GOcZQ;xMGu_ z-%UzNt-+fC>R%gl;j;x8D_^$WRPPIPgPutw4_X2STr!+#!KBp2r-@o09%uK9JxO=( z#$}$IOGan+XuzaEU^F8=&Bbp?x>Ialg_~>y+{OyVuHREK=B7KKn|dYFK~2f4mkRN2 z(bf8OlwsEwe}Sj$0L>X*f2sQmP%J?~5fJA8Qi4QzHT}rIq=%PI^(1ZOK>ZGZTS{iW z8B)xsBQpV3RS+;DhHB-xFsV}x`v?=1*AeKJ1|CTvKoCmaM0MZ?_tvBoqzn*ztV(YX z)PU>nsscN74*rIX@=O{Cj4tZ=JaFOkayu$UR3$XvDF`w|!-&e0aiF2(1^yob{?4n+ zw+F@noP7PN)~OA~OVogA{nRHpw@_6;YngAX8x#fDr~?W(ztZnJY!MJfVBerjU&u~Z z1hxf3swB9CF95IU1c(`<=ewtWl2YFUWTmv&5rO_TEE@g{1WG?y!*3qXQWvfc%MK^U#8h*_tH`yiQsDRlB5%&tG?#>x?Gd8 zqhdIZrPmhQPvpHz3;BkNZ+q?*UviC;fVS{1Ft@+i?#s;ebR!|Zds1>stQxuRKca1~ z7|!wMj-G&zpKV&hU0yw7gLAIQxV=a%UU*RrYI5o1E6&!#&3hM|?$0cQtHSj_Dp2b2 zH4F=pXe#+bZ7u`78u)wK_iv(9l`OY~d}ca0R&HsRh6Ik@@7GD|?Mk{3{!6v%8m29X zh^qVgUHq$ZHKs$e;kYKO_LF!1MB?;G9_@LFF63?Uo>nHpVu. All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +package main + +import "github.com/gizak/termui" + +func main() { + err := termui.Init() + if err != nil { + panic(err) + } + defer termui.Close() + rows1 := [][]string{ + []string{"header1", "header2", "header3"}, + []string{"你好吗", "Go-lang is so cool", "Im working on Ruby"}, + []string{"2016", "10", "11"}, + } + + table1 := termui.NewTable() + table1.Rows = rows1 + table1.FgColor = termui.ColorWhite + table1.BgColor = termui.ColorDefault + table1.Y = 0 + table1.X = 0 + table1.Width = 62 + table1.Height = 7 + + termui.Render(table1) + + rows2 := [][]string{ + []string{"header1", "header2", "header3"}, + []string{"Foundations", "Go-lang is so cool", "Im working on Ruby"}, + []string{"2016", "11", "11"}, + } + + table2 := termui.NewTable() + table2.Rows = rows2 + table2.FgColor = termui.ColorWhite + table2.BgColor = termui.ColorDefault + table2.TextAlign = termui.AlignCenter + table2.Separator = false + table2.Analysis() + table2.SetSize() + table2.BgColors[2] = termui.ColorRed + table2.Y = 10 + table2.X = 0 + table2.Border = true + + termui.Render(table2) + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + termui.Loop() +} diff --git a/vendor/github.com/gizak/termui/_example/table.png b/vendor/github.com/gizak/termui/_example/table.png new file mode 100644 index 0000000000000000000000000000000000000000..5781b1d612a43c92ce8bf2da5278b3c176b95e11 GIT binary patch literal 46987 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 Z;u^GmEE0zBx_fwZ=?VK literal 0 HcmV?d00001 diff --git a/vendor/github.com/gizak/termui/_example/tabs.go b/vendor/github.com/gizak/termui/_example/tabs.go new file mode 100644 index 0000000..25be239 --- /dev/null +++ b/vendor/github.com/gizak/termui/_example/tabs.go @@ -0,0 +1,83 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "github.com/gizak/termui" + "github.com/gizak/termui/extra" +) + +func main() { + err := termui.Init() + if err != nil { + panic(err) + } + defer termui.Close() + + //termui.UseTheme("helloworld") + + header := termui.NewPar("Press q to quit, Press j or k to switch tabs") + header.Height = 1 + header.Width = 50 + header.Border = false + header.TextBgColor = termui.ColorBlue + + tab1 := extra.NewTab("pierwszy") + par2 := termui.NewPar("Press q to quit\nPress j or k to switch tabs\n") + par2.Height = 5 + par2.Width = 37 + par2.Y = 0 + par2.BorderLabel = "Keys" + par2.BorderFg = termui.ColorYellow + tab1.AddBlocks(par2) + + tab2 := extra.NewTab("drugi") + bc := termui.NewBarChart() + data := []int{3, 2, 5, 3, 9, 5, 3, 2, 5, 8, 3, 2, 4, 5, 3, 2, 5, 7, 5, 3, 2, 6, 7, 4, 6, 3, 6, 7, 8, 3, 6, 4, 5, 3, 2, 4, 6, 4, 8, 5, 9, 4, 3, 6, 5, 3, 6} + bclabels := []string{"S0", "S1", "S2", "S3", "S4", "S5"} + bc.BorderLabel = "Bar Chart" + bc.Data = data + bc.Width = 26 + bc.Height = 10 + bc.DataLabels = bclabels + bc.TextColor = termui.ColorGreen + bc.BarColor = termui.ColorRed + bc.NumColor = termui.ColorYellow + tab2.AddBlocks(bc) + + tab3 := extra.NewTab("trzeci") + tab4 := extra.NewTab("żółw") + tab5 := extra.NewTab("four") + tab6 := extra.NewTab("five") + + tabpane := extra.NewTabpane() + tabpane.Y = 1 + tabpane.Width = 30 + tabpane.Border = true + + tabpane.SetTabs(*tab1, *tab2, *tab3, *tab4, *tab5, *tab6) + + termui.Render(header, tabpane) + + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + + termui.Handle("/sys/kbd/j", func(termui.Event) { + tabpane.SetActiveLeft() + termui.Clear() + termui.Render(header, tabpane) + }) + + termui.Handle("/sys/kbd/k", func(termui.Event) { + tabpane.SetActiveRight() + termui.Clear() + termui.Render(header, tabpane) + }) + + termui.Loop() +} diff --git a/vendor/github.com/gizak/termui/_example/theme.go b/vendor/github.com/gizak/termui/_example/theme.go new file mode 100644 index 0000000..f06b3d0 --- /dev/null +++ b/vendor/github.com/gizak/termui/_example/theme.go @@ -0,0 +1,143 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import ui "github.com/gizak/termui" +import "math" + +import "time" + +func main() { + err := ui.Init() + if err != nil { + panic(err) + } + defer ui.Close() + + ui.UseTheme("helloworld") + + p := ui.NewPar(":PRESS q TO QUIT DEMO") + p.Height = 3 + p.Width = 50 + p.BorderLabel = "Text Box" + + strs := []string{"[0] gizak/termui", "[1] editbox.go", "[2] iterrupt.go", "[3] keyboard.go", "[4] output.go", "[5] random_out.go", "[6] dashboard.go", "[7] nsf/termbox-go"} + list := ui.NewList() + list.Items = strs + list.BorderLabel = "List" + list.Height = 7 + list.Width = 25 + list.Y = 4 + + g := ui.NewGauge() + g.Percent = 50 + g.Width = 50 + g.Height = 3 + g.Y = 11 + g.BorderLabel = "Gauge" + + spark := ui.NewSparkline() + spark.Title = "srv 0:" + spdata := []int{4, 2, 1, 6, 3, 9, 1, 4, 2, 15, 14, 9, 8, 6, 10, 13, 15, 12, 10, 5, 3, 6, 1, 7, 10, 10, 14, 13, 6} + spark.Data = spdata + + spark1 := ui.NewSparkline() + spark1.Title = "srv 1:" + spark1.Data = spdata + + sp := ui.NewSparklines(spark, spark1) + sp.Width = 25 + sp.Height = 7 + sp.BorderLabel = "Sparkline" + sp.Y = 4 + sp.X = 25 + + lc := ui.NewLineChart() + sinps := (func() []float64 { + n := 100 + ps := make([]float64, n) + for i := range ps { + ps[i] = 1 + math.Sin(float64(i)/4) + } + return ps + })() + + lc.BorderLabel = "Line Chart" + lc.Data = sinps + lc.Width = 50 + lc.Height = 11 + lc.X = 0 + lc.Y = 14 + lc.Mode = "dot" + + bc := ui.NewBarChart() + bcdata := []int{3, 2, 5, 3, 9, 5, 3, 2, 5, 8, 3, 2, 4, 5, 3, 2, 5, 7, 5, 3, 2, 6, 7, 4, 6, 3, 6, 7, 8, 3, 6, 4, 5, 3, 2, 4, 6, 4, 8, 5, 9, 4, 3, 6, 5, 3, 6} + bclabels := []string{"S0", "S1", "S2", "S3", "S4", "S5"} + bc.BorderLabel = "Bar Chart" + bc.Width = 26 + bc.Height = 10 + bc.X = 51 + bc.Y = 0 + bc.DataLabels = bclabels + + lc1 := ui.NewLineChart() + lc1.BorderLabel = "Line Chart" + rndwalk := (func() []float64 { + n := 150 + d := make([]float64, n) + for i := 1; i < n; i++ { + if i < 20 { + d[i] = d[i-1] + 0.01 + } + if i > 20 { + d[i] = d[i-1] - 0.05 + } + } + return d + })() + lc1.Data = rndwalk + lc1.Width = 26 + lc1.Height = 11 + lc1.X = 51 + lc1.Y = 14 + + p1 := ui.NewPar("Hey!\nI am a borderless block!") + p1.HasBorder = false + p1.Width = 26 + p1.Height = 2 + p1.X = 52 + p1.Y = 11 + + draw := func(t int) { + g.Percent = t % 101 + list.Items = strs[t%9:] + sp.Lines[0].Data = spdata[t%10:] + sp.Lines[1].Data = spdata[t/2%10:] + lc.Data = sinps[t/2:] + lc1.Data = rndwalk[t:] + bc.Data = bcdata[t/2%10:] + ui.Render(p, list, g, sp, lc, bc, lc1, p1) + } + + evt := ui.EventCh() + i := 0 + for { + select { + case e := <-evt: + if e.Type == ui.EventKey && e.Ch == 'q' { + return + } + default: + draw(i) + i++ + if i == 102 { + return + } + time.Sleep(time.Second / 2) + } + } +} diff --git a/vendor/github.com/gizak/termui/_example/themedefault.png b/vendor/github.com/gizak/termui/_example/themedefault.png new file mode 100644 index 0000000000000000000000000000000000000000..23b574f966df6fc125bd005ff7558e77ee3f06b4 GIT binary patch literal 105508 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 d+OgULNoXW!K9NaT;I5>o36eQR;1(V$| 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 z zJ;z!0m{tsN&gye%sG)^P+5!{7(X`MXb5LDN#^$gFM7~_%!FWRRUG;UcdGr7Ea7GmNm5npe$knjLToKyv0+=b4LNj}I} zJOPz>3(<5R0Ri-?2DC7fT!QIuA#t;FEUqE8E@Va-=Ij#!OMEgZD_|%Jfh@fgJqwx( zry381mtiQ|7 z3*dg`Sz>41oj2^aV-f1=jT;gx?81`SSU1W(@G=6k_TXHihPFST?uXL0xT6gbU?V`x zaaeusrtDvvXQ!Tf`FvY?kX$DAM<5TlBAb5TwBQCJ<7TpMY#2J8vhn#c9k4gbVz&yQ zNtTj5q9KnO^w$s{rPamg-Q|D6SgOs=-ckQ}A|$iZ9Sr#1;w`2f9tsv&=BPHgJdKKb z;Z%9(mNm!k7@PeXF~z)~X+UFtpa(yc;!9;IhXpkJvZkrb%~Bol;zg!9RK6zOuBhxZ zkeX}!c!AB;J*y4K4H}F9GHlq`5GEH`(x<(*uv>$qA%KoM|^+yCTsr0 z{?Ryb4;{n%nCsTfkb*~heJEdpCW>6ViOiIdy<@gY{Y$4V`R1D;?OI+lFu@{G$Stzr!&S$0UFZB__%iUj_$CZv-2lbPX@qn7?gkMM>H`o$tl`k(wi$;h5 zJ84x|y@E3;DhR#n5A!;l@=i<4O`MJP+ial$u7X7xwlw5GMl;F78&tu>F4&AB8_zPQ zS84Vy%5$!A62(2WXpmr!ME>REjI6*wGFD~u9^86N2cxVZ_gLf$oCfL)`S>A_-(yi0ugHka5W*>f|M!H z_uXd7j@!jy-+~u=xs|A=FFO|MYm0KWzKl1+QCvJ0hBGQDZE+ zBp@F*B7Cp+-8N^1M7|~h@(>%vTTJe4Tm&wVn;qirsJ<_`TJU=E$w;p-A{Bb##=zaP z>w^2EybRP7&uiRnMMbV_3i?NPjugr@$@e$Zrw*Sp;jS^|#|8NrV~%yR`HxVkvR;x+V@&fh-12U9L~J&AMq!~bXAKby0!V(gC8liI?DQOðv=!6U^mTE z+!`!x4jnWy)bTR=ZEg(?<^kSY^(!%d3H0e;Fm0tRzpLZ|6YfpjO%29|{Y)!s>*7X% z=gO)!BxN0@guLZM1&NC|?%oQ=i44p2*N&%klq6pwBhh{h+ir3CMpiuco9&V3`85Z# zXcM3a#x155P@hx{ru+GL_dM11%~^H2BI< zdH*$&j!z`h@X(RZ2+*oaTw0$*5yigS{h`5EA9^?Q_gV3A7cUt*-tBA!*Ymhp6^K(1 zNYV5FzVX6E^U^C+!YG8cYxBCA6~ZhljS^4x$}U)1{LGyn4vldGT-3$~e5%r`*aKHd z08;maIm`vt2$I5V*#UdWhiL_(emAQ@8!ubT8@Gpz+2R{#VGSjID5Fa}evgO(kE@lD zbtB+_7Ep~9hzhK>_1=_k#y~yuk${B1V~<(0{(hb@D%`2mZ$tn7Eh|N&L$?^6BVYc zbOmJ1E>F~odhX&P5Ahv`+EgRpaE>AdmR#m#FDvtRX#6+bCPTk6EPXriH&6A${d zGZDEf99|QSikhh`7m=9N{GAc{z?&L2bkQ6ZIba<`Wx@X$r*fQ~Ed13S&3(v@0yX(M zX`r{i;SZ%d^~|`s*xQFUFm8@~3MphIj*mb7dXfjTBF8Kj`3h~UuH(DIe24k-#uc*; zohM+X?9nm$_?fQURVi#BJ928&sxVmE-*F3A{5@Umn+@Q^hWkaFIgSsJ$Jul%8M_jU&vwX%FS3C4eJS7O~?>@A2BE9sRJ zuj%Zqdo{KEG^;?+=pY|2)Sqobwf^uM3e92B_1z^t{IfQBGOXWn;+A=Lr_4=cu)9@# zL9R&Vb3LwctW4q~e$&0Xa$F!v*r&cacLE5x$%|PWH(l#t`^sNwAK)C1t-r^UA^f;h zgFzeiyB4itL+D2PJAHdod0>58TdEvtXN9rIEfE{&X_=bN2h66zn!!80eWkIzdqgY# zvYM;$9!qVt8Y3(J&Qi!PBc@yzeKoycCB?Un&C?qpk&FrVXKjmSk~6>VXNi@F9CbsA zDaFY<+aG;l{Fx83C)Q$Dumg?8hM%u0((SH3U|^7Y*+ z(=0P8O}!@*)`K*WFe!ewO_9GYUskNDR!_?|F5(fy_1fqz^vnGA-v;>Rdh(4$Ztake zd1A#}MU309dUEkSU!64UlyuY>JUa^}%$%ykia6p^S19Zy1CnMB4`eLo4nA!8FELvQ z$k9K!aRKIHN1aPZt0%4>xT%EGeTgkfD|+?!Q!{1Zv(z%zGjO#>hD}-*he^sca=eC) z;63z5pErTC$Ji@StCk< z{0}^i!}diIqj{rvSmApe?_2#J&;QV2b5XH14}~ z4E*bPysTIXrJRVB&6sRLFti}$+$(9&-{1oxJ`u7NEk3Y(p`pc%IMtBrLGxi3+jlQ; zt^*U+>NvwSzRFIgtQ<$1EGPncUM|R5cH!B3noxE>8HJcm`#v60wVMytSDLo+d}y$2 zeH2{w_1flEUOv-*ep;^jHme+01pR=PP4=p#vBEw*SyNyjqq7GdI(O*xS$Hw+JlU@* zx5d<`=xUQW)b41G+@;Ip<>$`nP1e<63(fbxW!wnFyfRQuPbv^qx>n#zWU6#dYH8L? zX7(ytg_eY#VSQ4N;B!in1aNL?#iG)Nsk*TuJUfL_ViWwywU&%iq7FC!%*hw(AZEtR z%W2BSj&J(UXiWGk7gnGSHYXL#rEIAh4|!7PH!pQ=Y0foTdpuq*giF2;>r#mOsqG=s z553bMC2L}<#~dqOLeKF?jw!86pLHomD%Ww`zRhu)61a|R!_A&RfJ|0q&Db#)3d~lr_@;)a+bW%~0=Vva zl5Lybnjr&iVuM_Nwc8vc03+_wgj++xOsk@wMv~%(_`1^C zPZ`7^ent|ialfrilJGyL2$~P=#Typi^d!Y+d9W`HQ8CYsfFiS*SUh?8=%J%Q=4{<(W_e8{ZnxSxi}U zh#aH=408^QYO6EFwhWF>h@=gnhbE~Bs5&WN+#P`^bxUoz?5JDra@Gn-($jY`Rz1&~ z1Oz#UB&3EXous6t2uabnG&xhQZ`GX|KHfkRMf0_%<6r#QIuQItxBO&3Qf|>l(Uewl z@dzgQ%9jq8*lf)ECdo$tKEIxU?92(K8d~Nb^QKHhx-?TPX6p8T9AGQrmF= zGEVVET(s@#WOdGkHNYo6RGdr2HRS8xRR!g6@oXJ)f7TUVvLTy?iJJ$#Ex$b1Z5LJDv;@3uo{iUW0{9LiguMFq zt|M$uErr@U=-Jngk%|0eH zH1rZO-i3`C)5CRf`r;ouvjjGVDlxWPdny$I(O9qi;SdAv_MnPP`Lq$e*wMQrLBOC( zJGeb2xR=pm#DQy&0WekFKROqE`WB(X^Ios+ZeW~0yUzz3B>cOsvaj~7$4S3YIO#i0 zSPKMt2v3Jry?$*JbY?UhZC;7gakl4U_K;P8Dl712%n`_=dcu)D2lfm$5s!;z=T7j< zIp-PMRpkI`PS@`aI{891=rG?(rM;V0-H|mE^?zs;;_y9DO)hBM)Lm}o`01P^2UATg zkRZyiEX6Ely(>sN%2H=tv^+pgPX8Ut!@`=t^S?p#8rSJJ}B%R77$oc}^UA(Fejf`CNm)ipL#= z-`Efdj$8g%?S8dkRcb%`mFGlBz6dtxGO8GZ>bP2AQYSlN*FKXIbJi?m(PlNBLJg=H zFl{IIw`6S9jAy zotT46%m|R~X})H{uPuVghVEDyeD--r@*JHMNV;ice)88GV}=n5$Z1xJ*<@ohOCnN9 z!SDHbkGdht#r>0pQlACz^-fXn!|~2)+nkqLIE{cv)K8Gl$t{NuR~w`^)lB9+mkBKb zB^u9^`Vb7$U;EmJY-Tv2xCXT{b1v!NOkm-|+zAY#7(l#ZGf>(uA+Tkk54qry7l_=; z^Ay;Zk2z)!5Rf}iCkMbsv|^ys`f)@OB!?0DD!HPXSz1FAkxc3g!PLULs?w(S;8#8Y z2mHvb-*j3-ze5jKw~&P9{I9-fUBO@Q{QAtW#FxUn;?PJh^!hD+k#bgYGNiKtPVXk< zg-{LD%*ODiHtxM4|D|Zw{1$nEpe+XJD3ovlETkr%cOwFUsoN6L3hgiU(JK~^DI-C; zPlSVp3dA|=fCmh=x%n{Sc$KCaG~%@4CNnDBi*LWC*50Vv?WYu$$72--j69a*HkOl( zz5(K^?PYBu*9&URGzAJOZsoO6USntV`5W?QJITj`q`sNJ^C4RN%(jwUUjnfH8wJ^T zwfF52I&2U@&utD^@6vOI=C*dbqj{#v4vgCTBg)ZF62M$=jYn1%*>}4`?pD*e{nXS3 z5{SEXCga&n%xkQBWw&vFO+I6W&9;9q^OmKt`FseBJH~6Kjiiqb8a$su^w?VPCH(nV zNzj64mEp;skJ8i?bO`duaHc;|jWyTR`y!EEaAKSpmcdA#jBEcJQMFu)X?6@#hIrnF zVW{?w*B7pl(9ke4%*`0BE>u(Dw4btL#ZU@Es9%T~v>M$rl2_iz3lqyK!x&dR49`Bi z$yfcY7yNM=ek`yf2TrG-gO;YI#2V;S|DNCTY5819k)}E1KePDTcKOfkDLaDcvo^qo z@c;t39&SDv+`G+UOKMb&8{JBhOF**=G!Gth%Q3{-vP1&`Qfc$xnMMTf@Q81tlZu`f zBnE|9=QWc%qm6^{2!@Ji$v}}ql*I@p4RT^4x?PdxA6tJD4mQ5*jb89Nd?p481qVOf za#=UdpH5AGRogOaQ%g)LAeqi?aTauLuxEWbdvA2XTji7;+!1K-xOT}6&qwTGFgH|m z;#Rh}xMvknZ_&dj5h&d=>TEl>qt$hNB^5OchmxVzRsr}_H|ESM$EJgLY*IRO9I)(^ z?Zk;9CA!G$;#l+yyv8&$SulKDs=SEzPI+1VeP9y;ye6DvR-L8?nNK3ZdV^{KWvlgJ z=Zk5$)hn-YhLz0xxRTvyy>&*7q0nJ3uKLA2y}`a6)uS6*oaVS#bi)zY;2l?$0(`~W zgdBRj;^r$Sy}RD18`{&OxJxf5v70`;OQm9QYi{G-DoKuY;cP!(KPRvDY#h1JsE;$R z#}J=Md}zfDH@?(QADPfcoZ(9A&E2VPl*EMq18OstT(c@ZP)VvV(5DY(jdZej_z(EA zVa&k@{V0b#Zu&BR^3>`=t{G{XV-?s?np`9X19sS# zzSac8o}T31;X(97>Z7_R`!@(o8$E?HJ0u5CGfa2Ku$Sa2CrFcxqI-N{p>mSg*R&^+ zxhx+URvdFRo9z4{bZBH$Sw$4qtI;ygsbTe(Cfiis>JH*e6`Mc~(uQe=ZqeHaYVMwC z!_800ppc^*Wr*Z4y}O1W*Px0p;DYUh5AQ329cvH&=nkBM`hUgWc*&l?7>qkp7q3%q zrjk?dUnw(r7P22wYn}x1IR-UtQZOCV@3B?u_Oy)7hNmNgY*u5N?xWY%wUa z_WIo2arn5nTgou%I`Vfk#$LBSZnSKVxyw0;CmTN0eA!G}x6EBn2GJM3{yY+IEg6(9)&Br*wT#sZPQxsL$;hWB|L2?k z;zLYhcG3IMS&Cf;!yN!B=!N~!T3FF(N^rl{n+(Y=dthM#oWg zT%;pl%3nOg^FQrR{rvvd+O#(qi8hzMl+F?p<>0mp215PPu~TC*BbUty*US^6iZdqv zlZ%?TF+_cr`CpY(_Yw~50%L=YUpo?5z$P4yQ)7B3EKUnl|5qcJzM{Hvnifr4oU5 zy!z0heT4*hP>79@zK}2cc}c$&t{k>VE)K2TehVnOZ{pVf*NMnn*VkBF3NL5&y@`em zC1q!;zjepe*{h70f;C_I7toZ^Sb$1t~np$#FX z5R61~FrxtiMM#SLgOss%PYT$+Ndvi=@lZ5M z5x@%(JS*t4DG3nlh~Cnt{c%jwR*UpDy0TKI)Rvc@CdW5>AB67Zn!^6MIt%le%Jv4G z6N`D_ElCuAd@G?qx#oBdb9@<#UZGNmMT4jFznJO@;nEyyPszlxVjDaAUVr7PWg&*R z>&j>Js_W40?vrIbi4O}xvx>-!8^a&;RmQ#(V4_RBXT&?iLj(@jy9iQrTVGLbsR^G% zM;iBgOk$!%Jx~K&0^~FBhKv*{Hl_yJFQCHPDkkW*@$^`lIaJmC{{M_T-JJBYU%JDK z5b^Xxh!~k1=UM0p6k;%(+^Ls`HV)G{7VV~J4sC%Qz!inW9H_B%cjs+i=ouZaamfvJ zN{ns^eb_uR{D9yOuW8!qnwo1*hStm~i?IQoOFNTiE8|+f=M`o}@LrTUmtbpKAPZn$=x_?;{K_rJzMl~MK! zwYD9v4K^~OrX){v+$&?srig;9`@J+J)Bnyns)iqj1m{Srr*I3aSC zh^56cUnIgg-D}Tfa{wiIJA{cmCX7lavi7xpVc^2O?u`5gUC)ps!$y&~rHb1kQ;74Y zt$!;)E}jQI74s$B5QeP{gTnl9!v@iwU)_Ski9`;$rj3apDZLjxVkx}Yja+yQFN{`# zKoli>1tgc*Sa^uTp;+8J?9#w8dwxXqG4&cPLXapD-E~rOIs}w z%_mj#!WI4|f{6Ab zm)P}clD(|a$z9Cn?v;6AJ2(+biR#ee6BeqIj-5-JgEqs1-~45zb31kSz$Zm5I2z%9 zn#j+)guWG(dc<0kJSOkjhyLlJ_cuCJV7qo3_9WH7p$ZMK{azCx6I|XD)QCi^9qSq- zN=Y~2OfC0XP##=c7VQ!EN1L|t>?tPj* z@IN9ClMNUOg%&-vx-!)_`EfV<5j5qH1WEvFvkb+Uy##TE6m{#2h@`B4;7BU+g8HXa z!D_V+v(-IO@zV?pkwH+X*VJzvT1SNSR?F8BdI*rf&HJ;{Hud%Q{6B#qI52Od~6=TD-E>TNteYVizEsm@6Vl@?< zq?QRys4EmFX$ZGwMJ?Z$N?;%wD3yklZ)DybSU(tl;~Tjk?{;wx%wuEDt}>I&v;}D$ zZQkO*_tOj-1j@BDF4r4y*rh(VT}hXL`DkXsNNu{38ejM>ZB@9^r#S^fhCRnYu_Qz_ z(?)U;_0seJ-20D(F52bSNB?oxX@w-b#)5}}5!U|`3a)h(7rNLLa}h;ykc~W!tW|w; zxS;7K`dIw~zx}5$#QOQkEQvC^+E1)ZI3x)U$idA2+P@?FpSW(R1)C|+^oJ{2B_0L5 zCINLvV_^-6j9`>}ZHbl%5;Q;8`U84cs3KF1HM7_dyu{3o*u~SdGeY|jeLvn7kK5h^ z!vbCRfLhkU1Dqh2(&bmJr2|sEAcsJ3?72S>Unztq7yqkiVDO7LCb@x!bnKVzxq}C* zL>{v{%9Q*{c?70>@z@3U9~mK^eb5i?Y^;S7k19>FJT9zB^4`k0n=|~tr1XHt-dq1H z>ml05@E=$HcNGNP(ANKE;Qq6AGPC@@Wf(*S;UE4B65dbq7@v9XWOsY+(=&OO<+$lq zoy-Q+*5M6f1$dOkkx<=6wKDlMCuICGcw#;*=ZQFqGQRY{YIq7vZuhfUyM4=EZxS%v z!w=oaK4gT8*`>)SZowm}VB0edzq?Eps!t|F5yR>@IFhen-Q2^sn$~yfwDJFWM}Wu1 zJM)U*#xus{=U$seBR@pg)049BHJXSkEU;Q`NAJ$6+f_^j8+(kI$h}mxkb?&f?#pnZ z7{O>otK{K5`Bu@f0=qghOckuXv${rIra9I#Hy13 z!k4x4M$o_N>BTzuOJ@VY8e*`3{WFfG#BQaRJ zcv?T>d=^`*&6kJ=t2H_2!kaz|0|N-Z2aQ_vRBZj$fLEAI8BABu&ZAmPixFYIzN;IH zXnP`>7qKroFnn&F>>tkbo^x@W9Bp+_m_iUT>Q?e+0 zbAsg{RPo|N<$G^<2GY^46x8s!%T#9kln=EWIxOO;CxwJPD#Rd1C=G|dv;L5=5LQ2* z>?Ui@En(yuWXWzPG8|Ms5VpY8M^G9ivs29|>i@=Q{|8;~yV%|nI6y{_v1OV@cBfkB z`jI5~z=?_^RCBDGT>E9N{USG_yfOFq0AA_EYZf>uyCVl7a^b4QvkUQs#-OR7?{C2-hmkewCU;?U0W!%!GZ~t6{RA zS%IC5vhFQXc#eSNt^`|rhpgp%sNYSEW5Wi|d61&!gzFQ+<&ucrJ`TQ2AFnUbOO;Zw z_e1V8Wmf9pAM?03?6uE`+7Lgvbk zo%Q1GU^l8-2XBVwfICHqS{8^$?b&>AIZS560iw`J_4Jl*+ft=4bN89R{OV9wf=al< z69gC(=AabslAwa;kA!v%pX9tU>rn3^tT4~wunBSo9(6_wYEw5Y)*slPxw<53qSwBK zg5Tw&i#b?#*N$bn_K$A*jz?fhr4S`avCFU%NI2MbZ~c56V$TMlut;HSkcX%GaNz+g z-Kc43cnC`-zo$8+am0QPZswMe#m-m+8WPL=_6-1UI-S}7{zYKgEEH2 zLRfOPA^r4;Du1}c(~X$AZj&(cAGPwq1h*42;Vk|tX5wD=&C!1I-)yHdufpD~xZ}sO z`6hhucsurM()N|cG(x)9HTPvmTFVt}F=w3<`5L(h#th%fhqz({-ovBJ@5%U>>2-{8 zqfGVePfg22BE9Kx{)v|BE}JRJT()tqZK|6Y8 zy`I^3u|-S1*0a`(zXZzYizBSM!$Z2dQ4bC?WvHS7ECeQyiq5TS;~xmO$Qvt}*adI1 zco#CN`6>b15>{HB>>( z|AISSf3y=x!OP|s!kTZ2A-aakU8XdA=NS@luDXs9GZu41G@_G$g)lYl&yfVJ-bd~NtDfQG&b4qX zqBv%4K}{cj>k8{dV3&kC2AKnNFQupr{o+!alH*H6e&!H*xQxHKF5&e)5hrnn_OHpA zyz3jR4AoD(l9Q*Lr8EhfblQxJG=yr{3W#bK>G21*>-r9+es$(F8Q98pLNj_kulbhF z{+78Cjn4gTvUX^RP#V0rJq$Z2(NLTyK!8q355}T+=6JpO|G6&hw>|qqbRmv?^{{Fq zU@GD{?2H@a2RnF$a(s0)tInB$-6ICuX=%KuvD-nM^j7PG6l<#372AOZLzb+lEF}3w za20zZISzW|-cf8@^qBC%E3Li8W%qd&vkke@{>iprPEOt1$Ud6I>gF7&q}cqPlPXV@ z&LUo8?Tk?Fvu^rOn3RMDM&-!YFgeBE)OymOw(>(;`zs;RvGarBWUFB591LW7& z2v^v|!i;|$>fJ8wcZRA}0ktBcB?1Y?O9Ji8YY6*Cg-hW0uC&OWnRL7O1dt0C)$Ieq zSvw0^i`xe_pOaEp5QS*3kJ6YIZS=6FxV{Zni~(^54~N9!kSo%p`e~1@yc;E^Ni>F| zw{U2ergY3GQM;w3$NBBvfp)vWYrU+1x!PYRH|hORt)as}m?)@5*b^3Z$IrR!Gl3PvDLik|otPcrBvO?moe06f$FxK#9%XDE2F7T+x`W!?2Y zovqZhW<{3rt=x0Qpso1{Sj>-X<*10JS6iyf@{Odl%y}b7u7Z+qiQ*1LYwSd(IW8feeOI& zOA|EE*K)i^1Gq>S(nXV>4w3cW9*Sm9CWt|Zf?t}I=R7hG+;Js){g4h#9CU@FoH^)z zQJ1<%@t>8}U(7Wx5xSJOuTKg0&Bz0FFUnl^iEYfwOp~Zy9{k!|`(O~ehE23ZM~G5= zzT;(}Y0G8|>FleA;-kY=4-y%a*Lt_p@>U9ucBEdRhMPpF{Tu*`YU+pF{?7nhQ}Zue zD+o;uec-oWe_%#oLFR)FUi=Af{OTuOqQr}oM)I{p?t#`i;c%U*jZ! zOq6;?m9tN~U3=W+@ONTNoR)#&gdK1NAIyroOuC6f~wTd>x%IW~6WxU&kSd#}_B zR`ccIFOT?Al7Q!)o{?Sf8Dp_mc_L$Q$l_4B{@YveSMYjA-Kp)@YD)P=tuG!~@A?qf zRUVLX0wm4DMubMo<(~blUrgn5KzN!u2pIzBF4j_LSZY&_g=X~}f>dCh73wVc5erO&r5M^OqSihh&j_Bi#3G+xp^ zDIIakP3uC5`tn;C+eBux(vibamE+&m%K%PVnG(`{;jyuK4T}xXmRa+fx zG?h09!4e5K6GU~4$noQzz|-2xpXy)zBL#4U00kRV{UaKcv+}#!5Q{F^Uci>7#~jSqR920^Wz89?;!)a(D~E z0FN_V7ko}C7^kymuXeI*5cO>Ru1i+~SKb(v1z_*o=J%UDZGlHOm-ULr9)CBT@px|! zk6QTOzTDm?rmj=UjBN$2YNIn+&%cwQ^=4PmCk+4i>Fw zVp;|w7c}38sY;Lsr^{%-kK&+h({z=*t@>QBY^eBZ%X7H}TX%h6i^wmlB3Y-|2#o}E zP23(^Irmol^_0YWWDc~DG*|>8yH)o^x$yk8Qza-Z=IP-Lq zT8*mXTgxaa(z~|^KcG;^slddxj1A@n$jF5ACseLNz===OSgosD3c;qjPUiWJVOy>2 zaWc5zRvK&*#?MJEHuF<*Ysb~)ZOqU$6*g6LFXQQykB0WvSjbia=ok*n@0Cgo8D@F#j3-Cv*H= zeE%n@b^aJs)ZAL`HLV0JBb*k4vj(G#%5vqB;5Fa&*Vf{$7X=_85=vJb^Nh&WGe^OMw$%r~wqDXcEXatOwd*GZEkCpGQ_O$W4@D_#?u z6e5aGM#}jfKz~^oNp=+s-g`qAp6NZWVC>tOeW%th{;}Y#C_*$$g18laNHR~ugy0nr=hyQd%HvfG zVC(kpAr}}TSTgHMNdD3(G}kbe?v~G20QlKx8FpOAgz3PGU1PsFfR6~TPB`Mi2(JH* zjq#jYcJ6Y01~GDKboA8YUpxyK8Gv^-!|_g)E9{McySjeau-4!X0fmHUJ_ecWvSwK8 zK^3bt9JSJL0U(5zEI;4JwVrFLt{-i{oY6Fh>LY3|*3JKn`qagzaTRXL^mO|>3$$N3 z?si^}T6`0nFCudq3gCSDjp=S%v~Tjc9XF{8sQGM8e||uR8wHE0uO(Er+h?f~;Y^PF znZ6yZ>xAed{<+Oslas@|?ekNmj=(1PulVyFAx5YI-^Eu)?wMhN5f>KS?lTB|2`_Ta zcE-2w>KIbf=C8OJeEf;1AZ-Gj1<#W={($E|EL!Xr+R%+Y$n|O5?cW1~{)5UF%$2sg z)W^H87*ykv9K>hGtCfax!U3wkNtiGg>AWs?wbp}USn%6Fa9!*1`e2J6NeMOHRH(Kh z>Kxv|=j@)mL8`hNWT3VGTfY0dNHMdJH48(H=`-k}kr0kIHC*1E;=%MG;}x)ZGk5)n?HH&^^syB~QfSrAH#AI+-1 z`3&zvIyvT~=}~8=CYz-sCC!@FqC-n-$sVGShb%v(Ddf1lzaL^ZQOR!#G_N()rYLe6 zd1OW?G#f$*yu)pAR`vD9BTkg1;_7^g{375lir1&fsJKH+im5l-A^ zUkt|6l+nc@8sHg4Y^gQxD?h{{J9B>#&z;u>RW^Ld-*wuvXWGGpC$5Z2fMId7uT#c? z0GrCzc;!|rd|t#aUH|QD5GWeggN^_dxp;JbE(9sQsSpc)1M#V&bvQi2w$KC;2fU&w zD@gSA)TT(iB+U5r^6&sTRWke&7VdlTFTc?Eq_}BaL=Gwz^dryBo1A`KYEzgTQWkrj zx-=0|HAGOgNA=m-D8VwPT&wCq-DCp^UayT{mc@!LQ0tR`_Zubrp4c$>@tB};j-s#g zcr^s^My}y?HWQ%cZ$rJ|dRY8a1_-XFLfYlkE9a?s;~}3=2Fw7tjNn~kr;~*)STlI% zI@E6NaNC3s>lX3ZRPlC+*5w2U42TD;ejg0($}_RP-b5_*Veg~?MhWGa50B>PdYSuT zH2bOKU$Y2%%v?^2q62Q3{t_hBHQd9bV#crX5HD)l+K}p5fc#%4L=;`f7DK$a$e4H{>3HwuTU-gm6Dr9KI z(A%y0Jx*Cmpy;&NU8c(d3TTR&TUbK9#?)nYj2lf7_=lUF60110PpzQ8!In^kI&((c z$oI|n-7kRWc_KYlCUb6?Tn9=XeY3N$_2|$bD^O7MEmgx{ey{@kmDN%7E&_s`{=t;i zdGK9G0)Q}4v{QqWeWQck!b#V+9R8kFJP}OseGomKL5#wsmx%k2Oj?Diu#^M9;g*j@ zDhd0Ft?XM&NQL(flSC1S>E>xGsqE&pV`0CetOxO};{V*h)H;VxI6wSyH~TPa5`b^f z+_Wp~oL0~m>y#3s=X4d-SZ3;7De+JK{ztNHdtkJkguvv6%&_99YHiKJ^g}D+H-0OL#}Ud|>m&2{u}DxWm_6Tp(uJ+J4MHSeE!z2Z zqrC-9OB-W;z)W+k#E-Y4G>lydMB%xQ>dhWG;mulSr~7M84I?vU1EaFxnfEtwo0wT^ zpb32%G=c?_`jL-3&t8fPsIOLa`IsJSMoDgy+i1J2m1j7q*`BRJ(AUT# zq>&56yP`+a6wAwc?bx1)1xmXR3xim<)Ry{~g#p6^9f4JcPi);mZ;?M@a6pj{ylqtK zy?D04WJ)a=Ab-3MN*__pvk8Z{a?{E!HB9|8umI1tT}Q$QT7y?NxjtV_b<{WcV5z(M%A&35JhT|d zMEZq$?$TtSl}tXxzK;3(pib&c^KxA0AZN#&W?(}Xw@B6PxgdJkR>dD}2O4ps4 zaFs`VKY8oq)b=~({kt!2!`RB>%(K?ev+`1jL1!wf@{%6ilac?AxA%@}D(K#YDGDMT zq&Go8kq*+E3R0vB(xe3GNbkLgQltq;FHu2|4$`EB-XW3RyAXPSKp-R}U-13CcinHT z`{#GRS!d;(bxO{h+0V@E{p>w6sd%J~EpI~7HO1>ItShaQqx?@uABPR!h3N7OusIoi zvfQ+n*mgKF+!TCKy#Zo|dl&RuIO3L)oZ*$P`Vok-1Rk6!32W}_`2?QfnVaSr0Z^jNbEPVxw)+{x6Lj_l%3<@}! zy@fLymv>Gjs^IJEW!B^)o)}I~ zU@T9kw;ZXFrE{f@&fvFfnl=qvB{)OfkOcV6*evWZ;%=E_fC!m7Xx#YTl-~=K+;EPF&IQ zHp3gMWR5Xz8yu^m*e9jvrC4_h`!M!vq*~wr#9{QS?1`&~6*KRU=%0JOBx>o|>1*|` z<}w`8pU0;2U2$-{rTSCg&4Xxp_qvI+&zj)X*`_WP+5l>8{7S#pOmR%4v!!y*-=#}` z_qldLz8eMG!^_-I{+8AEa}Fybof`}WjYg;wrdhS)5#W7Cw?4mXp@Z}j7ET_?7iT+w ztf0RF6@T!ZjBi-=o1R4k}GApXC_dV%S@4nx`nJHK#hShnb zQm-V5O3~N0FY!6oh7m6Q?kg+j>HdR?wyL+@HAEw;du#%M(Z`oeEvQM9sKiZ$f{*YgJ^Ugl{}$u)7Df%~~2^^f-Fj z^M7`w^mLk|PYv(A*6v#WQ?s=cjGLAd_tc{d3EF?l8VyI{X25Jgw*daFab)6sdN=mb zf1Pb@G%-;$&tqx${`c8Ay-imW`^yfZUp2a?e?ByuH$oxo3~;enmX)2jvGPkf6pnL( zN&4;`IL9yJ|Jf&&Yy4D&>!-2+kIPcaiL3L#S|6Pu$pX6UQ{{>Ox z)OE`mN{Euv>gi2QFFxpSVmwj0cl!m71Q*p7$D}_N6}TzBo1(C;9e#A*IyGQBnHc|< zHg$n*1%%S^_pFqaSz;~zKi?6K@v?ku*51oYbdubUS0f>@(OBJ2&hR{TzA8Q}n_q|C zh)KWvU?b)nu=&c!9WS&Q7rbB{m$hFD+7TONmco0-ogj9Foo|JS43)`ZH(|l0tf5s^9zC$+vZ_73{IW7Q^jsdU4=L4 z3W{7djARu=O<%5hFsr!+XUz#xCisn?@~ByM@2vn!TPZk+&D6c%2L zl!t`Y3S%G3W!OK2%U|_jiw_&M3oY8dWkM8^4q+%_bN+c)*nSRsBn%64WT^hBT3a5e zS@Bj$@O-TOJtv-}TEg5q#nLNznUAM=(nCqF=i5U3tP=f5R8;zfXUEF7)43*5_b1HI zQLF3Ib`mmfMzW@D>^X6;oug-z5ScWKS2i$O#VQ8g7q=HNoC!a>$moZInANHHKT5A9@y}CG$K0G{_{G|K6)Y~w$ zD=zDpQS5wAoA-iTegV|V023SYyr`rRRV^vg&+;t{Hgxs$vGATv#!-xGa!3*ci z8=R>n-iPkq+X(c8PBa8?dP!O5+>*(+o`t*7Jb}Op zaXIzji#XbhrG-BTd(^uwl|S}vVrp!xxDdR)Qz$ucHN1m9%JxStZO&o9b;qN%?MAws zFu1ALFQnIqJuhu%3<* z_Uc;ll9r_F@|izb6dSIkL4*T&aOuj6spRt0t%=J5Uq&03V`I*(k+4%)6T}t1c{xh5 zYL|KeewVG#VvuX(mdcVX&A_>c0EZ$l4$7_3OY=L4v^e>x^y{|51=o5he^ohw=i=pj zyJDQNN{mI^`qBFVq5f}0@gSVz)B~QZoxR31-7r||=>;qCqRs|){u%cVqGCvL2RB{p zkevv$Z!buFfY+&&F*=fEB<$%y0KsC7SXvIvW;Vu z2`^_?;ylf69^FPz@Iq>1=wCd0y58KI7ubub3Mn4Qp*ZG6w!_ZX0FmW-?e{>|gJ z{eD~dJ}s5!?p%262SQaly0`op3TXdo*TZP^@pc(psLn>=io`4H{6n{qEf(@{0oz@!xQo92o_JXxsg_3pqi+ zhb7-4X9{$Uw0@M8sacYfhR=1z1<3?Oo6uff&`?uTXHzBAUXx-Sz0r#LP4OhdKs3jj zAyIH=010#^vt>CXfT3!%p0MO$6IJWx^r&-Oa#hdH#A8LVP-?maFn2yOgYv;kZfb`& z1N1MCT2qpYwU#t7Y>a03DIp^c@&O9{QB-3m-qmlHAxq2d_Os|I@^@;}@?`8R##@9U zS2$-y~7+c^;I@I;#nV@PN#TC@FO(;UJElxFGCBA{rXwA8&OnVt03NEkOrxPWw@Zf^wluxfQKq8<&^HoiBc zK9`A!bsv5`JRHRs&`WVt@?bBLg&!STl@^$raO&|kE$hRBFUD#$WFFrW>sht>nrX(l zdA61dhm3x{*Zafu$2A~9?K|?$VIoN?p74C1^E4S*nu>KZ1&ZBftcwS7*b8Z zUwxox%edzB%gco12C{-*WaxOM`hN8t9PRZ$fg4wDn>_ zZ-ejShUptEU@y^*40S()h*h`@E!?gQ$N;fV=QvGA;|#w=t3r+=%))7y;_amNQ@a^T!Qu?DEnSH0G2uVh5J` z?ehp1J$=dVf4n~!z$7awcG_-P5rEgz==pM)Q)0e<(pQoht!oL{xD9mJKP?k7c8ZAN z!KcW0-FGTXz3w!ok}g~?l*QA`{ai1`gSMGZimSVA)T+br>^Co?w_8wkG4 zXmypAG9RMt&oD2gYC}FBJh;En`^IT;HRmFr4FiskjU7}ki;WRIl-~Yaf?(E_D&sYB zW=|aZ`b=Z~l2KMv|8A@0X&}eVhs%zxh9>s;LTQvPxDkdQJjaeWOCDgDlkzU!CJACi z1utOxDGLO_` zzmvN{09%+4K`|x2(}ejO9h=TxSjz!v)%R^U$2Wwt68rS@%TqpJ-8NuO;(!p8&_Ufk5lS*z;a&N`#h3Il)h9n0Q-I_u1KFBLnr29rMc}fNE>ji^!O_?rrc3u?DL)Jj+#5il?qJmC;D%;h3x>Qh}pT>RS(6AOWGt z!X;xRC2F!dfeo4I9`dL@q`;fEwOU$GLFS>Bu3O=mS;we%*Iuom;^vIIeevTgqSwGM zIx`*1Pmu%9upwmwo#f}AhoOSdlIoMm;MtLilr>&v@+MoM+Mroz9}e##MC7yV#G_KEzEKnAggrK^|t%W4}$M-?n$0 z$XY)<<^k3o$Xt%{C)B7PkOmBF2<*w z!TG5iXwi0SwV!5`DYdT)$tpuOA)iN}>}uB%44<_qJAQg0^id7Kq>W+z7r6BVSE8h9 z1}~~zluC&rmZ#&hh;4W;#r2S~OSDcx8n)Y8jscqu())G5nrM$kz)VtlChZ%tNrb}7 zfqymvks+un1T*T;v_7UartMYaLsZ8o2LpUlRlNURqefmGt+#itA0c5qR?79+`MqKC z#?*E;;1j_u<>h#nrY3STk>2CmA{wEhG8)A7!wIqXOp6K$0M20@m8O@ENSqy?=@!_m zyR*LAT)`glVHzX+pz>{G{dG8S8tOis>#;x@?TAHLib+(c{sxt{&+ zK7UI-)n+72hnRuaA=iY5k*`I1VMh)}kPc;^1Z^-*Prh1{Oqywt=@VWBpANG_Y+<}C zm3I<rHlGnCJdv{q@Q8 z=<3R;Otx!zTB6Ox?4shZ)Y~&-oRO*xMB*iWv%P8{GP*v>txxJ2l7T-4D2;xYJZw4= zHQQj_5~pa?EATl!KM@a#Qu?zc&;7_->wRTqJ8wE0?P&;hX_MZeF`r)HNtt)&Ju}|> zV&4sH8N;~hO8%S%DPR3MRcCiP2p!L|1m>$mrvd;!Z{_Hpc$d^hZufVU2=25oK6_5b zdpIVvmLly_gko&{RQlTRcD%RF3l&>)uLb*)nNH*8fII%TRToXNBwv9=s65}8 zcg+{M@6C6OMY04s-D!$Kvg^){FnZ5mA2k0;|73=ZcT8eg|2xD{!g)_~IX0zpU)|zC zzlHExzK7TLC%(mwxKa0`BhLdfncEYBW2MB6)GUuUY$`&UrTq{K5_z0Y)&?Ar3yLRL z>DL*(Fy>n_-Kn`CS;TwJzzm4&X8x^2XzU6u1ar9&6v(7{4N)xRK84~N(8@QhGbt5n}O1Z5kUr#&b z#QEjGJp%GT3RCZwS^5g~-}I3jxRNv3cy08nE`-+{DM(*`P~vkzF&9cDC7n1oY%?d? zE-(qsXIoU>=PyN+uD7N!B|6k}Jf6PTZ03R49`;eD&Fy;q9VLxJ8q7vN6UPj&b4$ML z=z^Lls%t;l3ptS1av^hB7~%54$Ok&E_uWz?BT^)zFbIN@%eY_mze8?tT+*K#N`}qe zcM5tvVEqJuuD0^!Soq7xyG2~UjaWpfwYhx!QtdewMDc|~?VKd>HHUnJX$Ob3Qdj)sGI;?pNB%p0jr7pcxul?M8pFm*Dm{6HLvhxBo6b9Gi4%TH{4uF$#KTi*dJESPfG(%cMTCTfHX5I74)F`w&} zmjjv|^rSp(YD11h>wMW}60hJ`*{owz5#maFv7;8ys z*wg*a(*US2#Uf4uF6Av%2d`JC26K@QBU-a12|ooPV%|q@5HZTX?T=b~!WJnWV=f;o zSnjU8ma0$^hb`QSQ4Cic<57T$?^qqi`%i`~rfoKbutnu&cYZBg{U(X~;;tm_FO)}A zpua!K1BP2eQrfF&Nwt5>15uVEu>POr;mjBPa;pB>TLe`Qkk3tU>7kuJZnkzO8}Tm} z%j92qJ+rcPmo$Pol)v}aiQ6t42{g-VXf)5u&(Rn(!Jm1?# zt{PmSVWziC9_A&zQXm)q!Yt|F^JLStHNKbM9$22lICDJ}avf%$?@6*!udg+LmxE*Z z99QM8X5Bfr!~xelzOxiZ(uLD@N~@>0!>{-<5?&^$6^Ha!t`-sfENIAEdli4e#YqO( zGn#Z+ioEW$DP+0BR}*qgg5BB7zG!s)Q`&EYtjMi?OR^@n?lW5U^3KPJl=s}*M`OJO z0ok6vbpCwiyN}c8ql`>4L)FSl2N{d^4O9!@y-_j+Y)gqIr;$o$0rm$L9Us5A%j+S7 z#1SABYnWzX{`p(})qqr8 zDekiBhs;Nuzv^sbOAp4ujaoDT%+tjcJ12Rz=$qVF8G35|XG`pTTVHXETz1GlBy!@q z@4^YAZ>$H7uJ>IZpiL17#e6D9Az63*$`^*XxE_=(U@&6>g;m7U5+edTJ)qzMuXv_oze{x|k02<6{$)ku$(D{}(E!;uGg3d(PA; zDTWC_#@@JW{!4>Jg%STf){?!+{lE18%V~9L8Swfz_0kb?+}9hf_e$=GDO6sp{r7zS1o>wn)$8))6y0#j|GsFgFNR~gZyfv~cChHn>KX%i zHjc8nNhum?`2RV=Q8+&LaP{n8`oC~G8Ykg@I9j7>vMJ2>r%v&FuzF>1UWE%(ejWZP zcJL|g4o_!(z6RD#t{r}+!!{fgSpExz!YdrUiNxyJxenJ7{E}X%^nVN4*PU+V;zGW< z=Hucb9B2JkVz?i%-A6ao>|aVtBKV)9|I4TUvQc^F_5A0vdK|Us+bD1H7G;bBF0SrL z0zf1q^mzm6#tWArmfJGnwz88W)>E@mn`CbRFH3xI8?BrLO;df+AQd7le$V2Ef$R^1 zmabxcopyd42ax;9*ceLgXXDTpgIpOf+8=qLQiL~N;BLonjt6rF_e(kFP|eyomcEK2pCpJ(yLImF5?CZy|T>q`5-h3sXM9Q7|#$SO@@HqG+ z3z8YD4oYZgk#(1*Ttj<*c7;npLn>uobyXxbsBkdO2>fe%5=b&bx1f2i(r$hA?a{qF z8-w_-c3KRSgn7~VVz{ZckihU*pbJ@&Ut{p!@{iDPv}f2a8Igr%8fv~l5sK`SaWr2m z#OhAxx2NJ`&Mayu*8lt~)kFB;=|?ZO@dnbS@cOz%HHz!E*I)U#HdkxNvz@R%Mwm#`z zDb;nrSk^k=59OkJWy>!F^)&eGurFj^d*5HyQ-8@)oA|ovInY6*vM@Twm_KfLUi<@1@wq`_fKeVFv1V=f zTi@X6T)N_|(;mj+vHB~0nvOk8OKW37blt@`)dDck&AvXzDH-y0{Wrb&i2ZN@Rh(I( zrQPw$tM16Y>d6iFL3!g1B9k^>#kf_nfqA+ckqsT>@pp8VmfIW99ZX32zLEZod|QRw zU7m+7O&w}_Z>P0hzk9KXH1cnpeqRfqrPsJkW}o2goO1ATQA1w2=&jQ zlNYv_vSkC!kULIIc^Dc-ziMNb9-Ht>Jk%_^Rp6NX0n4w*d;XQlSL*LFjywzn6^C1Y zoRUEp%P^KyFiS8`gQiOz_%o#CfyCO!_tAU3I;v zco(T}^{?YJ@kdC@4=X?Z0dENGNdXOzT<|CGXXCg+&{dQU*6J4;>WnRrULt)bk;5I! zgA`<639BpK$10HsY*uL6|5`^}S!%3$t;9{K>MKcK*)Wqm;7S{)5pH#M9TK+aB{7(M zlE0QhBd?V->b7AOAdDwGw$vx;An@%l(&s~~O~f-Pw)vRi#fCx7#sb7kgl#~L4@y5Z zBiR_*G3Ux)pWLjIqc{!z_Ul03iIfFOvtXvPm>}I+3?k}8de03jQ95Y z72Q%L%5)ZKgIifX2%#yBa!SW6k$N}Y7^s6EborQrIlJNULS9J}%>Lc~f?CXTed z!z=Uc>7@lr;7FOlPoh)c_GbZB+T{ZoS`cys4hNK(3(Ys>$rX*bGV{=`!4#_iWkePn~&Qq5LD47TTMdGnAGqfO&LceH<8--&Rl9 zBeBD}IB~Tw**4*JF5}V%h0k?30T3kKgt{OE`(6erQlxyggOD8*FC_rH%Z(Rfk*pwZ zCG>`crM8D&=Xu>`++gqLi=wi)Sxk2|hf~q_@4*4G^ouasF3<{$F6bIgpz3sa5^n06ne}w-^6gypnbAM-Q)pry8kQSh#}HqD;N1 zJbTNg6BqzWdKqD=894c=+(bWTuj@e5ZEK~~lDH6S$>ATenYJ{JjQPfnQ%W&gY*cX# zE)JXh+A@ILc3UC2?I-vi9!GD7nQTSAYJTRv{0c01OLXyfsf)r}lcvK!W8&S0)$TL; zSM#BYpY59Uc^)}ee--?kqsDE#R&1lH#%g1N7sdf!iUIL%%e_Rm zrB!TchFh^#;TGr$wL0qkYaYSN>K%pK?zF zjm(<&G|XD|5JPel7D{k&6jp&3RJc*5KhkAlGHOe%?C>n}>Y{D~^OWbYFFa~I7zlkp0>Rbtz?My&9q-foe@vkjrR{^cgIrl~06@}2jf&7J`+Da^GFhcA2r6&`I@Qed3*74*OJwq5=(HpOg+Ee&*) zBDw?|0ZUy+Wzdtr8uUs_9&OL3o2Hnoe^UxwkTz4ytLj@3*mkJY0Upm#8@*fUorlp zxV`N*O~o5|+N0pmdfoU~^=HvM_X((4R;>CTGQ0xRl1H%71+TR&Ee5fb3I%;rd%3>0$!lawj80&4~S0h@s-3;2r9O}b{3vO&b&pXj?c}K*IQwx$~{vS@-tw)Wp(`uL{GJ@5GJ@pnep z<|Kq*sY@25LH}ZK{Bmi+a`8&u1bO=MSRX*G0M(Izx!A22q=y!ZPwa;HU2qC)x4TX$ zcs#Ki;#)2Nu84m8Ay*eDEcYign{k!)P@vgUur8P3+!Vw&bT`8dP_gpQG$)AIwar}} zH<2Hpf0dezDAN|p$zSZj4(eWx`uf*w#m+)8?E$1Hz`{bgzj}$1t4wO3%kS2}za7Nz z2iERMmFf0429TwZohyG7&{t~1GlR7H(!7?%$R^Z3b1P2J9%j`=cqkBJML#qDEFqTo zcUB@%9C0eQy52xHh}7HQeV_9zl}TPsc(04EC#*r^vz3O@Za`6fcCuE_8`%d9--FBu zf~%jM9?nnN$hN031s8tkaHtK~eMc}Ne;k-4`DeWw{2G~hgQwUcG-84O(lwkVEBEr~ zA*OVMb~&altMzET73)WNRA$f|a`?Pkk+P>Tu5q@`W?#W&X(}9!LI0r39+&}THV-f^ z!3t;MXW_e)35a=GYQCzsl(9wJ9+)Y3Glm}kU6DqL0QWn?+#E|fo1R3r_w~+CFo8ty zIMnFb2Hj?K{YC{v4+NF@fj41j#RkPp;Gn+k{#;MDTRQhhrtERB>2g z{uVJfw*^ud)Z_%Oo0cc z|DN?>8h`Zamw1XaTg?2`arNa<``u_QYSwXaH%@eiVkpD^TaMTGo)RAVqzQ?8pxP!!Myq&_zLI! zn6udARh1*sKm8{&E&fotCf{SQ(k!SU#o5F;X*ewMQYl=i=R1ft0W)}UTgiM zE^N~Oounead(*t*(*K*Ax$%+>)?`Jx2ikh%HoA4Kqy-1MV*@j3s~R;_qHcA&s&KSL z{bd)tEyN{O&v_TcSI}#nOC)Fg}$t&Of(y=Fjy%Vy#8<<474XvXI%ZIKIiWsD&A?Mz6~UN?#Xe zj-0-PUFg5mG+2G#bvD`M`|z#XB^xRn`MUa=aUfrLH-}j(b*|NtD+miO3}wc({15%v zaMpz36p|Q|o9G=50`&svEN5ufW^%%FtnXw+HQnn#Zul{nb3>; zj!+lIW%2q_tUF9@Af9u{7u)Ls9NCvrNDGwoIBzP=V;FVwThh>y*{7qp-aqeEL)qeL zhm_(7`;;F>&qHr<=#Ou{kH5SwNG@ae$Ft2djcn~FS33iy^ zL!?7{I1s7=*c(=pj1Y!==$ZN9B9J5|V43FS*lRn0en+L*PVWT_c0UifRdXBG z73?_2zZ(YRFPhbn=1}URLc-63u;_M-{#GIhM6=wAvD!B#eeQ0x77e zcWqg%_BG8;K9aKzbp5pGN2@=6x{*8!-#e0&A0Ysa6)^0n$u)6B*}I|vVU42abNRt^ zBTC@{QLOR;GFsd4Y^d(1z#F#NmT|75BeEy7eMgW79koTJg-5c04U_wPM89LMqLKMc z5~SvCyXq>3AB$Z1h%A> z^0OwjIpP{`n~2&dCG<{iwvqz~nj7L2`eH9Rg8_Nf)yox?WI zD#MI_d40Q#rf6c!i3=f`YN;tQ>CBled|4TZV!#Va5W%5VRr|s>|Grf~&Ne?dh{1ui z@m=7N8cmT|9d$tdl1hzer*`8vW0^aZIa$4?sK-s5(cO5zn^xk5S_MLVqdvCE_ z;PJmmlow+ToToz%k7QTE$9O983=0Bb`n$4@&a#~&$=Gz@^7ZSJ3A+2$`vQPKoEKOK zxx--EWXrp?yb@3GofrVE?La3jN*=MBXXkq(N1Jp?W}s`?_#3(Io1{`omP^0r)kls# z#U|9G+HBjg=T<9d&!+s1v}>53O*-h)R`S!mxLqbNaXWuBfkqVM)M zkoX$A^5uqsD(cA%HRUnu*=43{*SEy?I=VvZGk&M|^(`)OlaN!T(=>=>Uf_z1Cuakl zoeCHAaJg(0Cmw!rMSDb@co$WKNW(+Gs8aRgnzUecqyT+zzwAm|WAS2QtwV-h^8u^d z)fLL*=>?K(DKPWo2hhBaq;BMq2DDCG-RcY2w(m9vRE{Im8*C%MH1NH`0xL1)`LjFG2f4lAdlB@TdI2`n-!3Ap&+C%)CkN4c^6QMp%$U;yL4V)m)K-v7VRv9?ugw>x06T(iQ#=+$X-i3ddy zs7BTvICij);YbH|Bsn=05%7a-6~=Un^>ZA|pCdD|QKi^(%VBUBi-ZHOD#`~ZlsjUn zu1{uQwjZ8<`#3>*K6qu`k<>~{0$btvn2P~-T;CN*bbLFK7L;WLZ`REW^rCd z?EXu!(7L%%#InmmO(X-QeRx?-`AX+Q#ejEy58UxNFgt;xqoe2PUjr}bEd$>22h08H zVIDRDr9%pqS6W>xAg;E|2C~6sPdIEZjzU>obo_EdCcVL191uXxF21!);z7_6HekC! zmFS8dJK%0Pl=I1@mCMhAMb|wbCv#s;48l{w4slQnweLa-sDO}dXCqK?xjJ6gFWbw) z$7j(c^XO9@M3Y}Z{))0TP7DH3E#Onb!Smg!%{riLX5cp$4{=Xh7KqaMyVJ{EeRZpiLV}c0e z`h@}eCw!`qE$XDvU~#+M4u$)khZZW;9iMAfd0#a|JT;VU5B|{GPHEK!OM6{u{y}N# zJd>EX{2gD7O}%a$uETifP1xF)r}G^H3xUn7^k@rRp~Jma%n55u0+vWT{4c6dU5zEk z&L;P6#dTWr&L_JMk$Naz#p6WaTE(S^5_;}k_tUM>z^C|{w-~Y@&ymbhUVYO_x>#Rv zXy~4r`RmL*VuQvFlbJxu+Ab0Gf>X&1HQDgF*k9MltJ^I8FzxGI!8PU8mS_n&jZW*` zT*X@#7_W#2Qopv6JN~x%cjN{3%d9VlT#-|>l1156NvAjOT7B4R1GjUa#hRE(8#EA&(XAg{FIIY`+{1a`S9zpW+t_wH{I{KNyl5DL!ncG9J64BL z5C_oRp%SL!l$2Fpc;-{QrR!3vm#-|t-39<=-EZOyDH=q_%i%COZR0u+8k zAA&j<@JaxIf>51Zhjam`NI@tQplw~i-mJ9qWz8mC*vSd(__L@a$~s}pJT6vC{S&Vjyn-o(d<>sXl32-NHrnHb*ENx4I8F$YUzs%3TS z_-nisM+o9hO(C%Xq(O2#H4H4k|3mNN-#U?3lFKKPZV>ctZn%9@Zi{HcwYRjr#h&WP z_cVGt0xC?DuARFiegYf%_##(KL27B(l#t?~Q_vZ7`8^rl3~keKJI8ef8>4{f6CQX7 zivPkEHz=Y@DJ-8{%?rDMDKMb73(f%f=~lBWDuknDlQ|BSW?hm(p|5V^9ONIj>NIsf zCana{T_3}cz*gX>=Tyif-MeF4(Vl`7m!~TLa)NbE8|kebT~?z&BUfyhLodQ7J!TZkmmgl^}ZR@W)wiWm=^t+@E&8|N9sXQ2JR`RRUbuK(Qb3FHc1BDH0x_ViixM$HEt+7fPPt9N%4S zv_e~g4jcn*dtxs`iK6$5-AF6(Fqmy2b;_-?m#r1{sRiiirRKzpzf4nC@lERXD@cKe ztpl6QXgrG!EAoBe1DCch%?4=^$?AR2t%MEfczlHJF0?s#!zLTv5>{h3-_c*CNgGLw z%<=>}+K50s$^E6mQ844L)wwVHB^sznJt7}1N-5s;S)J9amh>8qvujVyAd;KJ*A&{0 zQ3^3@3N*!&7iX#9tKN|td}5_Ys%N4oH%Vl2d6auOv%5G~@5EmXYRpc|MeVPrxVLnZ zZOM)p<3j(lK39wD`NWpME?JZ*=}cZ%$VYzy<0kdASUMhpQT`gxyu&|9yGLavdC7Ml zEXn<^wf~&Dxjl*GG5mFLd*j;ea4rAXa=4_pk#bgP5R5Vq#TJY`gC}S{3f?5SbokIZ zCcfdks^+3g;0|^{Ptw!2Sy4+cm`8_S7))UYuzG9v9C3KnX*;h|`kVJr!EIQOf7!5Y zr0LV7zj45R?X1%!w2;KCFGt2Y;50k=sldzn)!b^lNd`zX3X$sb%Uky#(2lTq#-GXM zC}hYFaUNX9$or+)4F2{uap2MNxdLu1C zXHpcFEprSDf2jnRIOOj>PU^{@UDT#Bt;5;6h$s1WbDO2&+0x0J!;@B2mGJ~f@ zCdkp4+#M@}B$gVzPF*M^lj<+%zGUt1^x*KL`|jIs5Zm%@Zune0QP+HhI4V`lA_&)g z<`^$jDw?q=0tYbKs83%Y-yR77F>0WmfeqMpygLB0^yvr*AEg;)C>Uhuu;}gxzbaXN z&w?!Ge;tOarqO<(L8Qf00uv64zKK4<9PxX;u)jcHP%41TT5NizU-h8oW7-bm<^2~p z;u}{rMTBK@!1Kz_536gT<4XXtV%O)%AeI^BjuLozmsxGz)1bM;bxE4wJ;OX3W|54C zHNeo+egK9if1%s|@Z*;p$v=^>W@72%`e!??3{+L8u`{fYskHE(6t#gBmsMQwiTprS zzBY6$qX|`Qj%--<4_?m4jVneWeN}ip6%S8KE8uOG7O2Gqnj(swKNAyw9vI4aXLjIA zD$Y8GTf~H%p#s4x3%bg^c=|t{0~iQ+IbPmj{nn5x#H?z+#o=) z@}b+hv+feX3W1JHFb`=))%MRH@T?8pcH+3fcbIioapc9~etc>b71F{%Sq5l9et2~t ziyo^DdA*UM%RpU-d8Qa}SQ+xSRjRJ+3I1!(JvwZ%gW^dKe$=}gve&lwC3_OPM(CfS zGA^#3F|(IntK{J&s0D*i3S*77wvNTs^#{qd)g$H)w#VUOX?E#8th}EhLwgvckK@9j z>b#7pE0WjYPLo84>)Cc`-DTxP2dqk~GahHR=BmhogQ|*3v}q%0D5>u1d9GzOhxg2< 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 literal 0 HcmV?d00001 diff --git a/vendor/github.com/gizak/termui/_example/ttop.go b/vendor/github.com/gizak/termui/_example/ttop.go new file mode 100644 index 0000000..f5c32fe --- /dev/null +++ b/vendor/github.com/gizak/termui/_example/ttop.go @@ -0,0 +1,369 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +// +build ignore + +package main + +import ( + "bufio" + "errors" + "fmt" + "io" + "os" + "regexp" + "runtime" + "sort" + "strconv" + "strings" + + "github.com/gizak/termui" + "github.com/gizak/termui/extra" +) + +const statFilePath = "/proc/stat" +const meminfoFilePath = "/proc/meminfo" + +type CpuStat struct { + user float32 + nice float32 + system float32 + idle float32 +} + +type CpusStats struct { + stat map[string]CpuStat + proc map[string]CpuStat +} + +func NewCpusStats(s map[string]CpuStat) *CpusStats { + return &CpusStats{stat: s, proc: make(map[string]CpuStat)} +} + +func (cs *CpusStats) String() (ret string) { + for key, _ := range cs.proc { + ret += fmt.Sprintf("%s: %.2f %.2f %.2f %.2f\n", key, cs.proc[key].user, cs.proc[key].nice, cs.proc[key].system, cs.proc[key].idle) + } + return +} + +func subCpuStat(m CpuStat, s CpuStat) CpuStat { + return CpuStat{user: m.user - s.user, + nice: m.nice - s.nice, + system: m.system - s.system, + idle: m.idle - s.idle} +} + +func procCpuStat(c CpuStat) CpuStat { + sum := c.user + c.nice + c.system + c.idle + return CpuStat{user: c.user / sum * 100, + nice: c.nice / sum * 100, + system: c.system / sum * 100, + idle: c.idle / sum * 100} +} + +func (cs *CpusStats) tick(ns map[string]CpuStat) { + for key, _ := range cs.stat { + proc := subCpuStat(ns[key], cs.stat[key]) + cs.proc[key] = procCpuStat(proc) + cs.stat[key] = ns[key] + } +} + +type errIntParser struct { + err error +} + +func (eip *errIntParser) parse(s string) (ret int64) { + if eip.err != nil { + return 0 + } + ret, eip.err = strconv.ParseInt(s, 10, 0) + return +} + +type LineProcessor interface { + process(string) error + finalize() interface{} +} + +type CpuLineProcessor struct { + m map[string]CpuStat +} + +func (clp *CpuLineProcessor) process(line string) (err error) { + r := regexp.MustCompile("^cpu([0-9]*)") + + if r.MatchString(line) { + tab := strings.Fields(line) + if len(tab) < 5 { + err = errors.New("cpu info line has not enough fields") + return + } + parser := errIntParser{} + cs := CpuStat{user: float32(parser.parse(tab[1])), + nice: float32(parser.parse(tab[2])), + system: float32(parser.parse(tab[3])), + idle: float32(parser.parse(tab[4]))} + clp.m[tab[0]] = cs + err = parser.err + if err != nil { + return + } + } + return +} + +func (clp *CpuLineProcessor) finalize() interface{} { + return clp.m +} + +type MemStat struct { + total int64 + free int64 +} + +func (ms MemStat) String() (ret string) { + ret = fmt.Sprintf("TotalMem: %d, FreeMem: %d\n", ms.total, ms.free) + return +} + +func (ms *MemStat) process(line string) (err error) { + rtotal := regexp.MustCompile("^MemTotal:") + rfree := regexp.MustCompile("^MemFree:") + var aux int64 + if rtotal.MatchString(line) || rfree.MatchString(line) { + tab := strings.Fields(line) + if len(tab) < 3 { + err = errors.New("mem info line has not enough fields") + return + } + aux, err = strconv.ParseInt(tab[1], 10, 0) + } + if err != nil { + return + } + + if rtotal.MatchString(line) { + ms.total = aux + } + if rfree.MatchString(line) { + ms.free = aux + } + return +} + +func (ms *MemStat) finalize() interface{} { + return *ms +} + +func processFileLines(filePath string, lp LineProcessor) (ret interface{}, err error) { + var statFile *os.File + statFile, err = os.Open(filePath) + if err != nil { + fmt.Printf("open: %v\n", err) + } + defer statFile.Close() + + statFileReader := bufio.NewReader(statFile) + + for { + var line string + line, err = statFileReader.ReadString('\n') + if err == io.EOF { + err = nil + break + } + if err != nil { + fmt.Printf("open: %v\n", err) + break + } + line = strings.TrimSpace(line) + + err = lp.process(line) + } + + ret = lp.finalize() + return +} + +func getCpusStatsMap() (m map[string]CpuStat, err error) { + var aux interface{} + aux, err = processFileLines(statFilePath, &CpuLineProcessor{m: make(map[string]CpuStat)}) + return aux.(map[string]CpuStat), err +} + +func getMemStats() (ms MemStat, err error) { + var aux interface{} + aux, err = processFileLines(meminfoFilePath, &MemStat{}) + return aux.(MemStat), err +} + +type CpuTabElems struct { + GMap map[string]*termui.Gauge + LChart *termui.LineChart +} + +func NewCpuTabElems(width int) *CpuTabElems { + lc := termui.NewLineChart() + lc.Width = width + lc.Height = 12 + lc.X = 0 + lc.Mode = "dot" + lc.BorderLabel = "CPU" + return &CpuTabElems{GMap: make(map[string]*termui.Gauge), + LChart: lc} +} + +func (cte *CpuTabElems) AddGauge(key string, Y int, width int) *termui.Gauge { + cte.GMap[key] = termui.NewGauge() + cte.GMap[key].Width = width + cte.GMap[key].Height = 3 + cte.GMap[key].Y = Y + cte.GMap[key].BorderLabel = key + cte.GMap[key].Percent = 0 //int(val.user + val.nice + val.system) + return cte.GMap[key] +} + +func (cte *CpuTabElems) Update(cs CpusStats) { + for key, val := range cs.proc { + p := int(val.user + val.nice + val.system) + cte.GMap[key].Percent = p + if key == "cpu" { + cte.LChart.Data = append(cte.LChart.Data, 0) + copy(cte.LChart.Data[1:], cte.LChart.Data[0:]) + cte.LChart.Data[0] = float64(p) + } + } +} + +type MemTabElems struct { + Gauge *termui.Gauge + SLines *termui.Sparklines +} + +func NewMemTabElems(width int) *MemTabElems { + g := termui.NewGauge() + g.Width = width + g.Height = 3 + g.Y = 0 + + sline := termui.NewSparkline() + sline.Title = "MEM" + sline.Height = 8 + + sls := termui.NewSparklines(sline) + sls.Width = width + sls.Height = 12 + sls.Y = 3 + return &MemTabElems{Gauge: g, SLines: sls} +} + +func (mte *MemTabElems) Update(ms MemStat) { + used := int((ms.total - ms.free) * 100 / ms.total) + mte.Gauge.Percent = used + mte.SLines.Lines[0].Data = append(mte.SLines.Lines[0].Data, 0) + copy(mte.SLines.Lines[0].Data[1:], mte.SLines.Lines[0].Data[0:]) + mte.SLines.Lines[0].Data[0] = used + if len(mte.SLines.Lines[0].Data) > mte.SLines.Width-2 { + mte.SLines.Lines[0].Data = mte.SLines.Lines[0].Data[0 : mte.SLines.Width-2] + } +} + +func main() { + if runtime.GOOS != "linux" { + panic("Currently works only on Linux") + } + err := termui.Init() + if err != nil { + panic(err) + } + defer termui.Close() + + termWidth := 70 + + //termui.UseTheme("helloworld") + + header := termui.NewPar("Press q to quit, Press j or k to switch tabs") + header.Height = 1 + header.Width = 50 + header.Border = false + header.TextBgColor = termui.ColorBlue + + tabCpu := extra.NewTab("CPU") + tabMem := extra.NewTab("MEM") + + tabpane := extra.NewTabpane() + tabpane.Y = 1 + tabpane.Width = 30 + tabpane.Border = false + + cs, errcs := getCpusStatsMap() + cpusStats := NewCpusStats(cs) + + if errcs != nil { + panic("error") + } + + cpuTabElems := NewCpuTabElems(termWidth) + + Y := 0 + cpuKeys := make([]string, 0, len(cs)) + for key := range cs { + cpuKeys = append(cpuKeys, key) + } + sort.Strings(cpuKeys) + for _, key := range cpuKeys { + g := cpuTabElems.AddGauge(key, Y, termWidth) + Y += 3 + tabCpu.AddBlocks(g) + } + cpuTabElems.LChart.Y = Y + tabCpu.AddBlocks(cpuTabElems.LChart) + + memTabElems := NewMemTabElems(termWidth) + ms, errm := getMemStats() + if errm != nil { + panic(errm) + } + memTabElems.Update(ms) + tabMem.AddBlocks(memTabElems.Gauge) + tabMem.AddBlocks(memTabElems.SLines) + + tabpane.SetTabs(*tabCpu, *tabMem) + + termui.Render(header, tabpane) + + termui.Handle("/sys/kbd/q", func(termui.Event) { + termui.StopLoop() + }) + + termui.Handle("/sys/kbd/j", func(termui.Event) { + tabpane.SetActiveLeft() + termui.Render(header, tabpane) + }) + + termui.Handle("/sys/kbd/k", func(termui.Event) { + tabpane.SetActiveRight() + termui.Render(header, tabpane) + }) + + termui.Handle("/timer/1s", func(e termui.Event) { + cs, errcs := getCpusStatsMap() + if errcs != nil { + panic(errcs) + } + cpusStats.tick(cs) + cpuTabElems.Update(*cpusStats) + + ms, errm := getMemStats() + if errm != nil { + panic(errm) + } + memTabElems.Update(ms) + termui.Render(header, tabpane) + }) + + termui.Loop() +} diff --git a/vendor/github.com/gizak/termui/_example/wrappar.go b/vendor/github.com/gizak/termui/_example/wrappar.go new file mode 100644 index 0000000..07e842d --- /dev/null +++ b/vendor/github.com/gizak/termui/_example/wrappar.go @@ -0,0 +1,35 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +package main + +import ui "github.com/gizak/termui" + +func main() { + + err := ui.Init() + if err != nil { + panic(err) + } + defer ui.Close() + + p := ui.NewPar("Press q to QUIT THE DEMO. [There](fg-blue) are other things [that](fg-red) are going to fit in here I think. What do you think? Now is the time for all good [men to](bg-blue) come to the aid of their country. [This is going to be one really really really long line](fg-green) that is going to go together and stuffs and things. Let's see how this thing renders out.\n Here is a new paragraph and stuffs and things. There should be a tab indent at the beginning of the paragraph. Let's see if that worked as well.") + p.WrapLength = 48 // this should be at least p.Width - 2 + p.Height = 20 + p.Width = 50 + p.Y = 2 + p.X = 20 + p.TextFgColor = ui.ColorWhite + p.BorderLabel = "Text Box with Wrapping" + p.BorderFg = ui.ColorCyan + //p.Border = false + + ui.Render(p) + + ui.Handle("/sys/kbd/q", func(ui.Event) { + ui.StopLoop() + }) + + ui.Loop() +} diff --git a/vendor/github.com/gizak/termui/debug/debuger.go b/vendor/github.com/gizak/termui/debug/debuger.go new file mode 100644 index 0000000..e239ef5 --- /dev/null +++ b/vendor/github.com/gizak/termui/debug/debuger.go @@ -0,0 +1,117 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +package debug + +import ( + "fmt" + "net/http" + + "golang.org/x/net/websocket" +) + +type Server struct { + Port string + Addr string + Path string + Msg chan string + chs []chan string +} + +type Client struct { + Port string + Addr string + Path string + ws *websocket.Conn +} + +var defaultPort = ":8080" + +func NewServer() *Server { + return &Server{ + Port: defaultPort, + Addr: "localhost", + Path: "/echo", + Msg: make(chan string), + chs: make([]chan string, 0), + } +} + +func NewClient() Client { + return Client{ + Port: defaultPort, + Addr: "localhost", + Path: "/echo", + } +} + +func (c Client) ConnectAndListen() error { + ws, err := websocket.Dial("ws://"+c.Addr+c.Port+c.Path, "", "http://"+c.Addr) + if err != nil { + return err + } + defer ws.Close() + + var m string + for { + err := websocket.Message.Receive(ws, &m) + if err != nil { + fmt.Print(err) + return err + } + fmt.Print(m) + } +} + +func (s *Server) ListenAndServe() error { + http.Handle(s.Path, websocket.Handler(func(ws *websocket.Conn) { + defer ws.Close() + + mc := make(chan string) + s.chs = append(s.chs, mc) + + for m := range mc { + websocket.Message.Send(ws, m) + } + })) + + go func() { + for msg := range s.Msg { + for _, c := range s.chs { + go func(a chan string) { + a <- msg + }(c) + } + } + }() + + return http.ListenAndServe(s.Port, nil) +} + +func (s *Server) Log(msg string) { + go func() { s.Msg <- msg }() +} + +func (s *Server) Logf(format string, a ...interface{}) { + s.Log(fmt.Sprintf(format, a...)) +} + +var DefaultServer = NewServer() +var DefaultClient = NewClient() + +func ListenAndServe() error { + return DefaultServer.ListenAndServe() +} + +func ConnectAndListen() error { + return DefaultClient.ConnectAndListen() +} + +func Log(msg string) { + DefaultServer.Log(msg) +} + +func Logf(format string, a ...interface{}) { + DefaultServer.Logf(format, a...) +} diff --git a/vendor/github.com/gizak/termui/extra/tabpane.go b/vendor/github.com/gizak/termui/extra/tabpane.go new file mode 100644 index 0000000..879bb3b --- /dev/null +++ b/vendor/github.com/gizak/termui/extra/tabpane.go @@ -0,0 +1,265 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +package extra + +import ( + "unicode/utf8" + + . "github.com/gizak/termui" +) + +type Tab struct { + Label string + RuneLen int + Blocks []Bufferer +} + +func NewTab(label string) *Tab { + return &Tab{ + Label: label, + RuneLen: utf8.RuneCount([]byte(label))} +} + +func (tab *Tab) AddBlocks(rs ...Bufferer) { + for _, r := range rs { + tab.Blocks = append(tab.Blocks, r) + } +} + +func (tab *Tab) Buffer() Buffer { + buf := NewBuffer() + for blockNum := 0; blockNum < len(tab.Blocks); blockNum++ { + b := tab.Blocks[blockNum] + buf.Merge(b.Buffer()) + } + return buf +} + +type Tabpane struct { + Block + Tabs []Tab + activeTabIndex int + ActiveTabBg Attribute + posTabText []int + offTabText int +} + +func NewTabpane() *Tabpane { + tp := Tabpane{ + Block: *NewBlock(), + activeTabIndex: 0, + offTabText: 0, + ActiveTabBg: ThemeAttr("bg.tab.active")} + return &tp +} + +func (tp *Tabpane) SetTabs(tabs ...Tab) { + tp.Tabs = make([]Tab, len(tabs)) + tp.posTabText = make([]int, len(tabs)+1) + off := 0 + for i := 0; i < len(tp.Tabs); i++ { + tp.Tabs[i] = tabs[i] + tp.posTabText[i] = off + off += tp.Tabs[i].RuneLen + 1 //+1 for space between tabs + } + tp.posTabText[len(tabs)] = off - 1 //total length of Tab's text +} + +func (tp *Tabpane) SetActiveLeft() { + if tp.activeTabIndex == 0 { + return + } + tp.activeTabIndex -= 1 + if tp.posTabText[tp.activeTabIndex] < tp.offTabText { + tp.offTabText = tp.posTabText[tp.activeTabIndex] + } +} + +func (tp *Tabpane) SetActiveRight() { + if tp.activeTabIndex == len(tp.Tabs)-1 { + return + } + tp.activeTabIndex += 1 + endOffset := tp.posTabText[tp.activeTabIndex] + tp.Tabs[tp.activeTabIndex].RuneLen + if endOffset+tp.offTabText > tp.InnerWidth() { + tp.offTabText = endOffset - tp.InnerWidth() + } +} + +// Checks if left and right tabs are fully visible +// if only left tabs are not visible return -1 +// if only right tabs are not visible return 1 +// if both return 0 +// use only if fitsWidth() returns false +func (tp *Tabpane) checkAlignment() int { + ret := 0 + if tp.offTabText > 0 { + ret = -1 + } + if tp.offTabText+tp.InnerWidth() < tp.posTabText[len(tp.Tabs)] { + ret += 1 + } + return ret +} + +// Checks if all tabs fits innerWidth of Tabpane +func (tp *Tabpane) fitsWidth() bool { + return tp.InnerWidth() >= tp.posTabText[len(tp.Tabs)] +} + +func (tp *Tabpane) align() { + if !tp.fitsWidth() && !tp.Border { + tp.PaddingLeft += 1 + tp.PaddingRight += 1 + tp.Block.Align() + } +} + +// bridge the old Point stuct +type point struct { + X int + Y int + Ch rune + Fg Attribute + Bg Attribute +} + +func buf2pt(b Buffer) []point { + ps := make([]point, 0, len(b.CellMap)) + for k, c := range b.CellMap { + ps = append(ps, point{X: k.X, Y: k.Y, Ch: c.Ch, Fg: c.Fg, Bg: c.Bg}) + } + + return ps +} + +// Adds the point only if it is visible in Tabpane. +// Point can be invisible if concatenation of Tab's texts is widther then +// innerWidth of Tabpane +func (tp *Tabpane) addPoint(ptab []point, charOffset *int, oftX *int, points ...point) []point { + if *charOffset < tp.offTabText || tp.offTabText+tp.InnerWidth() < *charOffset { + *charOffset++ + return ptab + } + for _, p := range points { + p.X = *oftX + ptab = append(ptab, p) + } + *oftX++ + *charOffset++ + return ptab +} + +// Draws the point and redraws upper and lower border points (if it has one) +func (tp *Tabpane) drawPointWithBorder(p point, ch rune, chbord rune, chdown rune, chup rune) []point { + var addp []point + p.Ch = ch + if tp.Border { + p.Ch = chdown + p.Y = tp.InnerY() - 1 + addp = append(addp, p) + p.Ch = chup + p.Y = tp.InnerY() + 1 + addp = append(addp, p) + p.Ch = chbord + } + p.Y = tp.InnerY() + return append(addp, p) +} + +func (tp *Tabpane) Buffer() Buffer { + if tp.Border { + tp.Height = 3 + } else { + tp.Height = 1 + } + if tp.Width > tp.posTabText[len(tp.Tabs)]+2 { + tp.Width = tp.posTabText[len(tp.Tabs)] + 2 + } + buf := tp.Block.Buffer() + ps := []point{} + + tp.align() + if tp.InnerHeight() <= 0 || tp.InnerWidth() <= 0 { + return NewBuffer() + } + oftX := tp.InnerX() + charOffset := 0 + pt := point{Bg: tp.BorderBg, Fg: tp.BorderFg} + for i, tab := range tp.Tabs { + + if i != 0 { + pt.X = oftX + pt.Y = tp.InnerY() + addp := tp.drawPointWithBorder(pt, ' ', VERTICAL_LINE, HORIZONTAL_DOWN, HORIZONTAL_UP) + ps = tp.addPoint(ps, &charOffset, &oftX, addp...) + } + + if i == tp.activeTabIndex { + pt.Bg = tp.ActiveTabBg + } + rs := []rune(tab.Label) + for k := 0; k < len(rs); k++ { + + addp := make([]point, 0, 2) + if i == tp.activeTabIndex && tp.Border { + pt.Ch = ' ' + pt.Y = tp.InnerY() + 1 + pt.Bg = tp.BorderBg + addp = append(addp, pt) + pt.Bg = tp.ActiveTabBg + } + + pt.Y = tp.InnerY() + pt.Ch = rs[k] + + addp = append(addp, pt) + ps = tp.addPoint(ps, &charOffset, &oftX, addp...) + } + pt.Bg = tp.BorderBg + + if !tp.fitsWidth() { + all := tp.checkAlignment() + pt.X = tp.InnerX() - 1 + + pt.Ch = '*' + if tp.Border { + pt.Ch = VERTICAL_LINE + } + ps = append(ps, pt) + + if all <= 0 { + addp := tp.drawPointWithBorder(pt, '<', '«', HORIZONTAL_LINE, HORIZONTAL_LINE) + ps = append(ps, addp...) + } + + pt.X = tp.InnerX() + tp.InnerWidth() + pt.Ch = '*' + if tp.Border { + pt.Ch = VERTICAL_LINE + } + ps = append(ps, pt) + if all >= 0 { + addp := tp.drawPointWithBorder(pt, '>', '»', HORIZONTAL_LINE, HORIZONTAL_LINE) + ps = append(ps, addp...) + } + } + + //draw tab content below the Tabpane + if i == tp.activeTabIndex { + blockPoints := buf2pt(tab.Buffer()) + for i := 0; i < len(blockPoints); i++ { + blockPoints[i].Y += tp.Height + tp.Y + } + ps = append(ps, blockPoints...) + } + } + + for _, v := range ps { + buf.Set(v.X, v.Y, NewCell(v.Ch, v.Fg, v.Bg)) + } + buf.Sync() + return buf +} diff --git a/vendor/github.com/gizak/termui/test/runtest.go b/vendor/github.com/gizak/termui/test/runtest.go new file mode 100644 index 0000000..2451ce9 --- /dev/null +++ b/vendor/github.com/gizak/termui/test/runtest.go @@ -0,0 +1,66 @@ +// Copyright 2017 Zack Guo . All rights reserved. +// Use of this source code is governed by a MIT license that can +// be found in the LICENSE file. + +package main + +import ( + "fmt" + "os" + + "github.com/gizak/termui" + "github.com/gizak/termui/debug" +) + +func main() { + // run as client + if len(os.Args) > 1 { + fmt.Print(debug.ConnectAndListen()) + return + } + + // run as server + go func() { panic(debug.ListenAndServe()) }() + + if err := termui.Init(); err != nil { + panic(err) + } + defer termui.Close() + + //termui.UseTheme("helloworld") + b := termui.NewBlock() + b.Width = 20 + b.Height = 20 + b.Float = termui.AlignCenter + b.BorderLabel = "[HELLO](fg-red,bg-white) [WORLD](fg-blue,bg-green)" + + termui.Render(b) + + termui.Handle("/sys", func(e termui.Event) { + k, ok := e.Data.(termui.EvtKbd) + debug.Logf("->%v\n", e) + if ok && k.KeyStr == "q" { + termui.StopLoop() + } + }) + + termui.Handle(("/usr"), func(e termui.Event) { + debug.Logf("->%v\n", e) + }) + + termui.Handle("/timer/1s", func(e termui.Event) { + t := e.Data.(termui.EvtTimer) + termui.SendCustomEvt("/usr/t", t.Count) + + if t.Count%2 == 0 { + b.BorderLabel = "[HELLO](fg-red,bg-green) [WORLD](fg-blue,bg-white)" + } else { + b.BorderLabel = "[HELLO](fg-blue,bg-white) [WORLD](fg-red,bg-green)" + } + + termui.Render(b) + + }) + + termui.Loop() +} diff --git a/vendor/github.com/jawher/mow.cli/testdata/help-output.txt b/vendor/github.com/jawher/mow.cli/testdata/help-output.txt new file mode 100644 index 0000000..1ac03c3 --- /dev/null +++ b/vendor/github.com/jawher/mow.cli/testdata/help-output.txt @@ -0,0 +1,45 @@ + +Usage: app [-bdsuikqs] BOOL1 [STR1] INT3... COMMAND [arg...] + +App Desc + +Arguments: + BOOL1 Bool Argument 1 (env $BOOL1) + BOOL2 Bool Argument 2 (default true) + BOOL3 Bool Argument 3 (env $BOOL3) + STR1 String Argument 1 (env $STR1) + STR2 String Argument 2 (env $STR2) (default "a value") + STR3 String Argument 3 (env $STR3) + INT1 Int Argument 1 (env $INT1) (default 0) + INT2 Int Argument 2 (env $INT2) (default 1) + INT3 Int Argument 3 (env $INT3) + STRS1 Strings Argument 1 (env $STRS1) + STRS2 (env $STRS2) (default ["value1", "value2"]) + STRS3 Strings Argument 3 (env $STRS3) + INTS1 Ints Argument 1 (env $INTS1) + INTS2 Ints Argument 2 (env $INTS2) (default [1, 2, 3]) + INTS3 Ints Argument 3 (env $INTS3) + +Options: + -b, --bool1 Bool Option 1 (env $BOOL1) + --bool2 Bool Option 2 (default true) + -d Bool Option 3 (env $BOOL3) + -s, --str1 String Option 1 (env $STR1) + --str2 String Option 2 (default "a value") + -u String Option 3 (env $STR3) + -i, --int1 (env $INT1, $ALIAS_INT1) (default 0) + --int2 Int Option 2 (env $INT2) (default 1) + -k Int Option 3 (env $INT3) + -x, --strs1 Strings Option 1 (env $STRS1) + --strs2 Strings Option 2 (env $STRS2) (default ["value1", "value2"]) + -z Strings Option 3 (env $STRS3) + -q, --ints1 Ints Option 1 (env $INTS1) + --ints2 Ints Option 2 (env $INTS2) (default [1, 2, 3]) + -s Ints Option 3 (env $INTS3) + +Commands: + command1 command1 description + command2 command2 description + command3 command3 description + +Run 'app COMMAND --help' for more information on a command. diff --git a/vendor/github.com/jawher/mow.cli/testdata/long-help-output.txt b/vendor/github.com/jawher/mow.cli/testdata/long-help-output.txt new file mode 100644 index 0000000..e47bf93 --- /dev/null +++ b/vendor/github.com/jawher/mow.cli/testdata/long-help-output.txt @@ -0,0 +1,10 @@ + +Usage: app [-o] ARG + +Longer App Desc + +Arguments: + ARG Argument + +Options: + -o, --opt Option diff --git a/vendor/github.com/maruel/panicparse/cmd/pp/main.go b/vendor/github.com/maruel/panicparse/cmd/pp/main.go new file mode 100644 index 0000000..67d8e1a --- /dev/null +++ b/vendor/github.com/maruel/panicparse/cmd/pp/main.go @@ -0,0 +1,31 @@ +// Copyright 2015 Marc-Antoine Ruel. All rights reserved. +// Use of this source code is governed under the Apache License, Version 2.0 +// that can be found in the LICENSE file. + +// panicparse: analyzes stack dump of Go processes and simplifies it. +// +// It is mostly useful on servers will large number of identical goroutines, +// making the crash dump harder to read than strictly necesary. +// +// Colors: +// - Magenta: first goroutine to be listed. +// - Yellow: main package. +// - Green: standard library. +// - Red: other packages. +// +// Bright colors are used for exported symbols. +package main + +import ( + "fmt" + "os" + + "github.com/maruel/panicparse/internal" +) + +func main() { + if err := internal.Main(); err != nil { + fmt.Fprintf(os.Stderr, "Failed: %s\n", err) + os.Exit(1) + } +} diff --git a/vendor/github.com/maruel/panicparse/internal/goversion1.6.go b/vendor/github.com/maruel/panicparse/internal/goversion1.6.go new file mode 100644 index 0000000..3bd5e5d --- /dev/null +++ b/vendor/github.com/maruel/panicparse/internal/goversion1.6.go @@ -0,0 +1,11 @@ +// Copyright 2016 Marc-Antoine Ruel. All rights reserved. +// Use of this source code is governed under the Apache License, Version 2.0 +// that can be found in the LICENSE file. + +// +build go1.6 + +package internal + +const ( + showGOTRACEBACKBanner = true +) diff --git a/vendor/github.com/maruel/panicparse/internal/goversion1.go b/vendor/github.com/maruel/panicparse/internal/goversion1.go new file mode 100644 index 0000000..3ee33e1 --- /dev/null +++ b/vendor/github.com/maruel/panicparse/internal/goversion1.go @@ -0,0 +1,12 @@ +// Copyright 2016 Marc-Antoine Ruel. All rights reserved. +// Use of this source code is governed under the Apache License, Version 2.0 +// that can be found in the LICENSE file. + +// +build go1.1 +// +build !go1.6 + +package internal + +const ( + showGOTRACEBACKBanner = false +) diff --git a/vendor/github.com/maruel/panicparse/internal/main.go b/vendor/github.com/maruel/panicparse/internal/main.go new file mode 100644 index 0000000..b4750d8 --- /dev/null +++ b/vendor/github.com/maruel/panicparse/internal/main.go @@ -0,0 +1,139 @@ +// Copyright 2015 Marc-Antoine Ruel. All rights reserved. +// Use of this source code is governed under the Apache License, Version 2.0 +// that can be found in the LICENSE file. + +// Package internal implements panicparse +// +// It is mostly useful on servers will large number of identical goroutines, +// making the crash dump harder to read than strictly necesary. +// +// Colors: +// - Magenta: first goroutine to be listed. +// - Yellow: main package. +// - Green: standard library. +// - Red: other packages. +// +// Bright colors are used for exported symbols. +package internal + +import ( + "errors" + "flag" + "fmt" + "io" + "io/ioutil" + "log" + "os" + "os/signal" + "syscall" + + "github.com/maruel/panicparse/stack" + "github.com/mattn/go-colorable" + "github.com/mattn/go-isatty" + "github.com/mgutz/ansi" +) + +// resetFG is similar to ansi.Reset except that it doesn't reset the +// background color, only the foreground color and the style. +// +// That much for the "ansi" abstraction layer... +const resetFG = ansi.DefaultFG + "\033[m" + +// defaultPalette is the default recommended palette. +var defaultPalette = stack.Palette{ + EOLReset: resetFG, + RoutineFirst: ansi.ColorCode("magenta+b"), + CreatedBy: ansi.LightBlack, + Package: ansi.ColorCode("default+b"), + SourceFile: resetFG, + FunctionStdLib: ansi.Green, + FunctionStdLibExported: ansi.ColorCode("green+b"), + FunctionMain: ansi.ColorCode("yellow+b"), + FunctionOther: ansi.Red, + FunctionOtherExported: ansi.ColorCode("red+b"), + Arguments: resetFG, +} + +// process copies stdin to stdout and processes any "panic: " line found. +func process(in io.Reader, out io.Writer, p *stack.Palette, s stack.Similarity, fullPath, parse bool) error { + goroutines, err := stack.ParseDump(in, out) + if err != nil { + return err + } + if len(goroutines) == 1 && showBanner() { + _, _ = io.WriteString(out, "\nTo see all goroutines, visit https://github.com/maruel/panicparse#GOTRACEBACK\n\n") + } + if parse { + stack.Augment(goroutines) + } + buckets := stack.SortBuckets(stack.Bucketize(goroutines, s)) + srcLen, pkgLen := stack.CalcLengths(buckets, fullPath) + for _, bucket := range buckets { + _, _ = io.WriteString(out, p.BucketHeader(&bucket, fullPath, len(buckets) > 1)) + _, _ = io.WriteString(out, p.StackLines(&bucket.Signature, srcLen, pkgLen, fullPath)) + } + return err +} + +func showBanner() bool { + if !showGOTRACEBACKBanner { + return false + } + gtb := os.Getenv("GOTRACEBACK") + return gtb == "" || gtb == "single" +} + +// Main is implemented here so both 'pp' and 'panicparse' executables can be +// compiled. This is to work around the Perl Package manager 'pp' that is +// preinstalled on some OSes. +func Main() error { + signals := make(chan os.Signal) + go func() { + for { + <-signals + } + }() + signal.Notify(signals, os.Interrupt, syscall.SIGQUIT) + aggressive := flag.Bool("aggressive", false, "Aggressive deduplication including non pointers") + fullPath := flag.Bool("full-path", false, "Print full sources path") + noColor := flag.Bool("no-color", !isatty.IsTerminal(os.Stdout.Fd()) || os.Getenv("TERM") == "dumb", "Disable coloring") + forceColor := flag.Bool("force-color", false, "Forcibly enable coloring when with stdout is redirected") + parse := flag.Bool("parse", true, "Parses source files to deduct types; use -parse=false to work around bugs in source parser") + verboseFlag := flag.Bool("v", false, "Enables verbose logging output") + flag.Parse() + + log.SetFlags(log.Lmicroseconds) + if !*verboseFlag { + log.SetOutput(ioutil.Discard) + } + + s := stack.AnyPointer + if *aggressive { + s = stack.AnyValue + } + + var out io.Writer + p := &defaultPalette + if *noColor && !*forceColor { + p = &stack.Palette{} + out = os.Stdout + } else { + out = colorable.NewColorableStdout() + } + + var in *os.File + switch flag.NArg() { + case 0: + in = os.Stdin + case 1: + var err error + name := flag.Arg(0) + if in, err = os.Open(name); err != nil { + return fmt.Errorf("did you mean to specify a valid stack dump file name? %s", err) + } + defer in.Close() + default: + return errors.New("pipe from stdin or specify a single file") + } + return process(in, out, p, s, *fullPath, *parse) +} diff --git a/vendor/github.com/maruel/panicparse/internal/main_test.go b/vendor/github.com/maruel/panicparse/internal/main_test.go new file mode 100644 index 0000000..d6e27f0 --- /dev/null +++ b/vendor/github.com/maruel/panicparse/internal/main_test.go @@ -0,0 +1,122 @@ +// Copyright 2015 Marc-Antoine Ruel. All rights reserved. +// Use of this source code is governed under the Apache License, Version 2.0 +// that can be found in the LICENSE file. + +package internal + +import ( + "bytes" + "strings" + "testing" + + "github.com/maruel/panicparse/stack" + "github.com/maruel/ut" +) + +var data = []string{ + "panic: runtime error: index out of range", + "", + "goroutine 11 [running, 5 minutes, locked to thread]:", + "github.com/luci/luci-go/client/archiver.(*archiver).PushFile(0xc208032410, 0xc20968a3c0, 0x5b, 0xc20988c280, 0x7d, 0x0, 0x0)", + " /gopath/path/to/archiver.go:325 +0x2c4", + "github.com/luci/luci-go/client/isolate.archive(0x7fbdab7a5218, 0xc208032410, 0xc20803b0b0, 0x22, 0xc208046370, 0xc20804666a, 0x17, 0x0, 0x0, 0x0, ...)", + " /gopath/path/to/isolate.go:148 +0x12d2", + "github.com/luci/luci-go/client/isolate.Archive(0x7fbdab7a5218, 0xc208032410, 0xc20803b0b0, 0x22, 0xc208046370, 0x0, 0x0)", + " /gopath/path/to/isolate.go:102 +0xc9", + "main.func·004(0x7fffc3b8f13a, 0x2c)", + " /gopath/path/to/batch_archive.go:166 +0x7cd", + "created by main.(*batchArchiveRun).main", + " /gopath/path/to/batch_archive.go:167 +0x42c", + "", + "goroutine 1 [running]:", + "gopkg.in/yaml%2ev2.handleErr(0xc208033b20)", + " /gopath/src/gopkg.in/yaml.v2/yaml.go:153 +0xc6", + "reflect.Value.assignTo(0x570860, 0xc20803f3e0, 0x15)", + " c:/go/src/reflect/value.go:2125 +0x368", + "main.main()", + " /gopath/src/github.com/maruel/pre-commit-go/main.go:428 +0x27", + "", + "goroutine 2 [running, 1 minutes]:", + "gopkg.in/yaml%2ev2.handleErr(0xc208033b20)", + " /gopath/src/gopkg.in/yaml.v2/yaml.go:153 +0xc6", + "reflect.Value.assignTo(0x570860, 0xc20803f3e0, 0x15)", + " c:/go/src/reflect/value.go:2125 +0x368", + "main.main()", + " /gopath/src/github.com/maruel/pre-commit-go/main.go:428 +0x27", + "", +} + +func TestProcess(t *testing.T) { + out := &bytes.Buffer{} + err := process(bytes.NewBufferString(strings.Join(data, "\n")), out, &defaultPalette, stack.AnyPointer, false, false) + ut.AssertEqual(t, nil, err) + expected := []string{ + "panic: runtime error: index out of range", + "", + "\x1b[1;35m1: running [5 minutes] [locked]\x1b[90m [Created by main.(*batchArchiveRun).main @ batch_archive.go:167]\x1b[39m\x1b[m", + " \x1b[1;39marchiver \x1b[39m\x1b[marchiver.go:325 \x1b[1;31m(*archiver).PushFile\x1b[39m\x1b[m(#1, 0xc20968a3c0, 0x5b, 0xc20988c280, 0x7d, 0, 0)\x1b[39m\x1b[m", + " \x1b[1;39misolate \x1b[39m\x1b[misolate.go:148 \x1b[31marchive\x1b[39m\x1b[m(#4, #1, #2, 0x22, #3, 0xc20804666a, 0x17, 0, 0, 0, ...)\x1b[39m\x1b[m", + " \x1b[1;39misolate \x1b[39m\x1b[misolate.go:102 \x1b[1;31mArchive\x1b[39m\x1b[m(#4, #1, #2, 0x22, #3, 0, 0)\x1b[39m\x1b[m", + " \x1b[1;39mmain \x1b[39m\x1b[mbatch_archive.go:166 \x1b[1;33mfunc·004\x1b[39m\x1b[m(0x7fffc3b8f13a, 0x2c)\x1b[39m\x1b[m", + "2: running [0~1 minutes]\x1b[39m\x1b[m", + " \x1b[1;39myaml.v2 \x1b[39m\x1b[myaml.go:153 \x1b[31mhandleErr\x1b[39m\x1b[m(#5)\x1b[39m\x1b[m", + " \x1b[1;39mreflect \x1b[39m\x1b[mvalue.go:2125 \x1b[32mValue.assignTo\x1b[39m\x1b[m(0x570860, #6, 0x15)\x1b[39m\x1b[m", + " \x1b[1;39mmain \x1b[39m\x1b[mmain.go:428 \x1b[1;33mmain\x1b[39m\x1b[m()\x1b[39m\x1b[m", + "", + } + actual := strings.Split(out.String(), "\n") + for i := 0; i < len(actual) && i < len(expected); i++ { + ut.AssertEqualIndex(t, i, expected[i], actual[i]) + } + ut.AssertEqual(t, expected, actual) +} + +func TestProcessFullPath(t *testing.T) { + out := &bytes.Buffer{} + err := process(bytes.NewBufferString(strings.Join(data, "\n")), out, &defaultPalette, stack.AnyValue, true, false) + ut.AssertEqual(t, nil, err) + expected := []string{ + "panic: runtime error: index out of range", + "", + "\x1b[1;35m1: running [5 minutes] [locked]\x1b[90m [Created by main.(*batchArchiveRun).main @ /gopath/path/to/batch_archive.go:167]\x1b[39m\x1b[m", + " \x1b[1;39marchiver \x1b[39m\x1b[m/gopath/path/to/archiver.go:325 \x1b[1;31m(*archiver).PushFile\x1b[39m\x1b[m(#1, 0xc20968a3c0, 0x5b, 0xc20988c280, 0x7d, 0, 0)\x1b[39m\x1b[m", + " \x1b[1;39misolate \x1b[39m\x1b[m/gopath/path/to/isolate.go:148 \x1b[31marchive\x1b[39m\x1b[m(#4, #1, #2, 0x22, #3, 0xc20804666a, 0x17, 0, 0, 0, ...)\x1b[39m\x1b[m", + " \x1b[1;39misolate \x1b[39m\x1b[m/gopath/path/to/isolate.go:102 \x1b[1;31mArchive\x1b[39m\x1b[m(#4, #1, #2, 0x22, #3, 0, 0)\x1b[39m\x1b[m", + " \x1b[1;39mmain \x1b[39m\x1b[m/gopath/path/to/batch_archive.go:166 \x1b[1;33mfunc·004\x1b[39m\x1b[m(0x7fffc3b8f13a, 0x2c)\x1b[39m\x1b[m", + "2: running [0~1 minutes]\x1b[39m\x1b[m", + " \x1b[1;39myaml.v2 \x1b[39m\x1b[m/gopath/src/gopkg.in/yaml.v2/yaml.go:153 \x1b[31mhandleErr\x1b[39m\x1b[m(#5)\x1b[39m\x1b[m", + " \x1b[1;39mreflect \x1b[39m\x1b[mc:/go/src/reflect/value.go:2125 \x1b[32mValue.assignTo\x1b[39m\x1b[m(0x570860, #6, 0x15)\x1b[39m\x1b[m", + " \x1b[1;39mmain \x1b[39m\x1b[m/gopath/src/github.com/maruel/pre-commit-go/main.go:428 \x1b[1;33mmain\x1b[39m\x1b[m()\x1b[39m\x1b[m", + "", + } + actual := strings.Split(out.String(), "\n") + for i := 0; i < len(actual) && i < len(expected); i++ { + ut.AssertEqualIndex(t, i, expected[i], actual[i]) + } + ut.AssertEqual(t, expected, actual) +} + +func TestProcessNoColor(t *testing.T) { + out := &bytes.Buffer{} + err := process(bytes.NewBufferString(strings.Join(data, "\n")), out, &stack.Palette{}, stack.AnyPointer, false, false) + ut.AssertEqual(t, nil, err) + expected := []string{ + "panic: runtime error: index out of range", + "", + "1: running [5 minutes] [locked] [Created by main.(*batchArchiveRun).main @ batch_archive.go:167]", + " archiver archiver.go:325 (*archiver).PushFile(#1, 0xc20968a3c0, 0x5b, 0xc20988c280, 0x7d, 0, 0)", + " isolate isolate.go:148 archive(#4, #1, #2, 0x22, #3, 0xc20804666a, 0x17, 0, 0, 0, ...)", + " isolate isolate.go:102 Archive(#4, #1, #2, 0x22, #3, 0, 0)", + " main batch_archive.go:166 func·004(0x7fffc3b8f13a, 0x2c)", + "2: running [0~1 minutes]", + " yaml.v2 yaml.go:153 handleErr(#5)", + " reflect value.go:2125 Value.assignTo(0x570860, #6, 0x15)", + " main main.go:428 main()", + "", + } + actual := strings.Split(out.String(), "\n") + for i := 0; i < len(actual) && i < len(expected); i++ { + ut.AssertEqualIndex(t, i, expected[i], actual[i]) + } + ut.AssertEqual(t, expected, actual) +} diff --git a/vendor/github.com/maruel/panicparse/internal/panic/main.go b/vendor/github.com/maruel/panicparse/internal/panic/main.go new file mode 100644 index 0000000..8273c2e --- /dev/null +++ b/vendor/github.com/maruel/panicparse/internal/panic/main.go @@ -0,0 +1,152 @@ +// Copyright 2017 Marc-Antoine Ruel. All rights reserved. +// Use of this source code is governed under the Apache License, Version 2.0 +// that can be found in the LICENSE file. + +// Panic crashes in various ways. +// +// It is a tool to help test panicparse. +package main + +// To install, run: +// go install github.com/maruel/panicparse/internal/panic +// panic -help +// +// You can also run directly: +// go run ./internal/panic/main.go str |& pp +// +// To add a new panic stack signature, add it to types type below, keeping the +// list ordered by name. If you need utility functions, add it in the section +// below. That's it! + +import ( + "fmt" + "io" + "os" + "sort" + "sync" + "time" +) + +// Utility functions. + +func panicint(i int) { + panic(i) +} + +func panicstr(a string) { + panic(a) +} + +func panicslicestr(a []string) { + panic(a) +} + +// + +// types is all the supported types of panics. +// +// Keep the list sorted. +var types = map[string]struct { + desc string + f func() +}{ + "goroutine_1": { + "panic in one goroutine", + func() { + go func() { + panicint(42) + }() + time.Sleep(time.Minute) + }, + }, + + "goroutine_100": { + "start 100 goroutines before panicking", + func() { + var wg sync.WaitGroup + for i := 0; i < 100; i++ { + wg.Add(1) + go func() { + wg.Done() + time.Sleep(time.Minute) + }() + } + wg.Wait() + panicint(42) + }, + }, + + "int": { + "panic(42)", + func() { + panicint(42) + }, + }, + + "simple": { + // This is not used for real, here for documentation. + "skip the map for a shorter stack trace", + func() {}, + }, + + "slice_str": { + "panic([]string{\"allo\"}) with cap=2", + func() { + a := make([]string, 1, 2) + a[0] = "allo" + panicslicestr(a) + }, + }, + + "str": { + "panic(\"allo\")", + func() { + panicstr("allo") + }, + }, +} + +// + +func main() { + fmt.Printf("GOTRACEBACK=%s\n", os.Getenv("GOTRACEBACK")) + if len(os.Args) == 2 { + n := os.Args[1] + if n == "simple" { + // Since the map lookup creates another call stack entry, add a one-off + // "simple" to test the very minimal case. + panic("simple") + } + if f, ok := types[n]; ok { + f.f() + } + } + usage() +} + +func usage() { + t := `usage: panic + +This tool is meant to be used with panicparse to test different parsing +scenarios and ensure output on different version of the Go toolchain can be +successfully parsed. + +Set GOTRACEBACK before running this tool to see how it affects the panic output. + +Select the way to panic: +` + io.WriteString(os.Stderr, t) + names := make([]string, 0, len(types)) + m := 0 + for n := range types { + names = append(names, n) + if i := len(n); i > m { + m = i + } + } + sort.Strings(names) + for _, n := range names { + fmt.Fprintf(os.Stderr, "- %-*s %s\n", m, n, types[n].desc) + } + os.Exit(2) +} diff --git a/vendor/github.com/mattn/go-colorable/_example/escape-seq/main.go b/vendor/github.com/mattn/go-colorable/_example/escape-seq/main.go new file mode 100644 index 0000000..8cbcb90 --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/_example/escape-seq/main.go @@ -0,0 +1,16 @@ +package main + +import ( + "bufio" + "fmt" + + "github.com/mattn/go-colorable" +) + +func main() { + stdOut := bufio.NewWriter(colorable.NewColorableStdout()) + + fmt.Fprint(stdOut, "\x1B[3GMove to 3rd Column\n") + fmt.Fprint(stdOut, "\x1B[1;2HMove to 2nd Column on 1st Line\n") + stdOut.Flush() +} diff --git a/vendor/github.com/mattn/go-colorable/_example/logrus/main.go b/vendor/github.com/mattn/go-colorable/_example/logrus/main.go new file mode 100644 index 0000000..c569164 --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/_example/logrus/main.go @@ -0,0 +1,16 @@ +package main + +import ( + "github.com/mattn/go-colorable" + "github.com/sirupsen/logrus" +) + +func main() { + logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true}) + logrus.SetOutput(colorable.NewColorableStdout()) + + logrus.Info("succeeded") + logrus.Warn("not correct") + logrus.Error("something error") + logrus.Fatal("panic") +} diff --git a/vendor/github.com/mattn/go-colorable/_example/title/main.go b/vendor/github.com/mattn/go-colorable/_example/title/main.go new file mode 100644 index 0000000..e208870 --- /dev/null +++ b/vendor/github.com/mattn/go-colorable/_example/title/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "fmt" + "os" + . "github.com/mattn/go-colorable" +) + +func main() { + out := NewColorableStdout() + fmt.Fprint(out, "\x1B]0;TITLE Changed\007(See title and hit any key)") + var c [1]byte + os.Stdin.Read(c[:]) +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/custom_func/main.go b/vendor/github.com/mattn/go-sqlite3/_example/custom_func/main.go new file mode 100644 index 0000000..85657e6 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/custom_func/main.go @@ -0,0 +1,133 @@ +package main + +import ( + "database/sql" + "fmt" + "log" + "math" + "math/rand" + + sqlite "github.com/mattn/go-sqlite3" +) + +// Computes x^y +func pow(x, y int64) int64 { + return int64(math.Pow(float64(x), float64(y))) +} + +// Computes the bitwise exclusive-or of all its arguments +func xor(xs ...int64) int64 { + var ret int64 + for _, x := range xs { + ret ^= x + } + return ret +} + +// Returns a random number. It's actually deterministic here because +// we don't seed the RNG, but it's an example of a non-pure function +// from SQLite's POV. +func getrand() int64 { + return rand.Int63() +} + +// Computes the standard deviation of a GROUPed BY set of values +type stddev struct { + xs []int64 + // Running average calculation + sum int64 + n int64 +} + +func newStddev() *stddev { return &stddev{} } + +func (s *stddev) Step(x int64) { + s.xs = append(s.xs, x) + s.sum += x + s.n++ +} + +func (s *stddev) Done() float64 { + mean := float64(s.sum) / float64(s.n) + var sqDiff []float64 + for _, x := range s.xs { + sqDiff = append(sqDiff, math.Pow(float64(x)-mean, 2)) + } + var dev float64 + for _, x := range sqDiff { + dev += x + } + dev /= float64(len(sqDiff)) + return math.Sqrt(dev) +} + +func main() { + sql.Register("sqlite3_custom", &sqlite.SQLiteDriver{ + ConnectHook: func(conn *sqlite.SQLiteConn) error { + if err := conn.RegisterFunc("pow", pow, true); err != nil { + return err + } + if err := conn.RegisterFunc("xor", xor, true); err != nil { + return err + } + if err := conn.RegisterFunc("rand", getrand, false); err != nil { + return err + } + if err := conn.RegisterAggregator("stddev", newStddev, true); err != nil { + return err + } + return nil + }, + }) + + db, err := sql.Open("sqlite3_custom", ":memory:") + if err != nil { + log.Fatal("Failed to open database:", err) + } + defer db.Close() + + var i int64 + err = db.QueryRow("SELECT pow(2,3)").Scan(&i) + if err != nil { + log.Fatal("POW query error:", err) + } + fmt.Println("pow(2,3) =", i) // 8 + + err = db.QueryRow("SELECT xor(1,2,3,4,5,6)").Scan(&i) + if err != nil { + log.Fatal("XOR query error:", err) + } + fmt.Println("xor(1,2,3,4,5) =", i) // 7 + + err = db.QueryRow("SELECT rand()").Scan(&i) + if err != nil { + log.Fatal("RAND query error:", err) + } + fmt.Println("rand() =", i) // pseudorandom + + _, err = db.Exec("create table foo (department integer, profits integer)") + if err != nil { + log.Fatal("Failed to create table:", err) + } + _, err = db.Exec("insert into foo values (1, 10), (1, 20), (1, 45), (2, 42), (2, 115)") + if err != nil { + log.Fatal("Failed to insert records:", err) + } + + rows, err := db.Query("select department, stddev(profits) from foo group by department") + if err != nil { + log.Fatal("STDDEV query error:", err) + } + defer rows.Close() + for rows.Next() { + var dept int64 + var dev float64 + if err := rows.Scan(&dept, &dev); err != nil { + log.Fatal(err) + } + fmt.Printf("dept=%d stddev=%f\n", dept, dev) + } + if err := rows.Err(); err != nil { + log.Fatal(err) + } +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/hook/hook.go b/vendor/github.com/mattn/go-sqlite3/_example/hook/hook.go new file mode 100644 index 0000000..6023181 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/hook/hook.go @@ -0,0 +1,78 @@ +package main + +import ( + "database/sql" + "log" + "os" + + "github.com/mattn/go-sqlite3" +) + +func main() { + sqlite3conn := []*sqlite3.SQLiteConn{} + sql.Register("sqlite3_with_hook_example", + &sqlite3.SQLiteDriver{ + ConnectHook: func(conn *sqlite3.SQLiteConn) error { + sqlite3conn = append(sqlite3conn, conn) + conn.RegisterUpdateHook(func(op int, db string, table string, rowid int64) { + switch op { + case sqlite3.SQLITE_INSERT: + log.Println("Notified of insert on db", db, "table", table, "rowid", rowid) + } + }) + return nil + }, + }) + os.Remove("./foo.db") + os.Remove("./bar.db") + + srcDb, err := sql.Open("sqlite3_with_hook_example", "./foo.db") + if err != nil { + log.Fatal(err) + } + defer srcDb.Close() + srcDb.Ping() + + _, err = srcDb.Exec("create table foo(id int, value text)") + if err != nil { + log.Fatal(err) + } + _, err = srcDb.Exec("insert into foo values(1, 'foo')") + if err != nil { + log.Fatal(err) + } + _, err = srcDb.Exec("insert into foo values(2, 'bar')") + if err != nil { + log.Fatal(err) + } + _, err = srcDb.Query("select * from foo") + if err != nil { + log.Fatal(err) + } + destDb, err := sql.Open("sqlite3_with_hook_example", "./bar.db") + if err != nil { + log.Fatal(err) + } + defer destDb.Close() + destDb.Ping() + + bk, err := sqlite3conn[1].Backup("main", sqlite3conn[0], "main") + if err != nil { + log.Fatal(err) + } + + _, err = bk.Step(-1) + if err != nil { + log.Fatal(err) + } + _, err = destDb.Query("select * from foo") + if err != nil { + log.Fatal(err) + } + _, err = destDb.Exec("insert into foo values(3, 'bar')") + if err != nil { + log.Fatal(err) + } + + bk.Finish() +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/limit/limit.go b/vendor/github.com/mattn/go-sqlite3/_example/limit/limit.go new file mode 100644 index 0000000..4e4b897 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/limit/limit.go @@ -0,0 +1,113 @@ +package main + +import ( + "database/sql" + "fmt" + "log" + "os" + "strings" + + "github.com/mattn/go-sqlite3" +) + +func createBulkInsertQuery(n int, start int) (query string, args []interface{}) { + values := make([]string, n) + args = make([]interface{}, n*2) + pos := 0 + for i := 0; i < n; i++ { + values[i] = "(?, ?)" + args[pos] = start + i + args[pos+1] = fmt.Sprintf("こんにちわ世界%03d", i) + pos += 2 + } + query = fmt.Sprintf( + "insert into foo(id, name) values %s", + strings.Join(values, ", "), + ) + return +} + +func bukInsert(db *sql.DB, query string, args []interface{}) (err error) { + stmt, err := db.Prepare(query) + if err != nil { + return + } + + _, err = stmt.Exec(args...) + if err != nil { + return + } + + return +} + +func main() { + var sqlite3conn *sqlite3.SQLiteConn + sql.Register("sqlite3_with_limit", &sqlite3.SQLiteDriver{ + ConnectHook: func(conn *sqlite3.SQLiteConn) error { + sqlite3conn = conn + return nil + }, + }) + + os.Remove("./foo.db") + db, err := sql.Open("sqlite3_with_limit", "./foo.db") + if err != nil { + log.Fatal(err) + } + defer db.Close() + + sqlStmt := ` + create table foo (id integer not null primary key, name text); + delete from foo; + ` + _, err = db.Exec(sqlStmt) + if err != nil { + log.Printf("%q: %s\n", err, sqlStmt) + return + } + + if sqlite3conn == nil { + log.Fatal("not set sqlite3 connection") + } + + limitVariableNumber := sqlite3conn.GetLimit(sqlite3.SQLITE_LIMIT_VARIABLE_NUMBER) + log.Printf("default SQLITE_LIMIT_VARIABLE_NUMBER: %d", limitVariableNumber) + + num := 400 + query, args := createBulkInsertQuery(num, 0) + err = bukInsert(db, query, args) + if err != nil { + log.Fatal(err) + } + + smallLimitVariableNumber := 100 + sqlite3conn.SetLimit(sqlite3.SQLITE_LIMIT_VARIABLE_NUMBER, smallLimitVariableNumber) + + limitVariableNumber = sqlite3conn.GetLimit(sqlite3.SQLITE_LIMIT_VARIABLE_NUMBER) + log.Printf("updated SQLITE_LIMIT_VARIABLE_NUMBER: %d", limitVariableNumber) + + query, args = createBulkInsertQuery(num, num) + err = bukInsert(db, query, args) + if err != nil { + if err != nil { + log.Printf("expect failed since SQLITE_LIMIT_VARIABLE_NUMBER is too small: %v", err) + } + } + + bigLimitVariableNumber := 999999 + sqlite3conn.SetLimit(sqlite3.SQLITE_LIMIT_VARIABLE_NUMBER, bigLimitVariableNumber) + limitVariableNumber = sqlite3conn.GetLimit(sqlite3.SQLITE_LIMIT_VARIABLE_NUMBER) + log.Printf("set SQLITE_LIMIT_VARIABLE_NUMBER: %d", bigLimitVariableNumber) + log.Printf("updated SQLITE_LIMIT_VARIABLE_NUMBER: %d", limitVariableNumber) + + query, args = createBulkInsertQuery(500, num+num) + err = bukInsert(db, query, args) + if err != nil { + if err != nil { + log.Fatal(err) + } + } + + log.Println("no error if SQLITE_LIMIT_VARIABLE_NUMBER > 999") +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/Makefile b/vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/Makefile new file mode 100644 index 0000000..97b1e0f --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/Makefile @@ -0,0 +1,22 @@ +ifeq ($(OS),Windows_NT) +EXE=extension.exe +EXT=sqlite3_mod_regexp.dll +RM=cmd /c del +LDFLAG= +else +EXE=extension +EXT=sqlite3_mod_regexp.so +RM=rm +LDFLAG=-fPIC +endif + +all : $(EXE) $(EXT) + +$(EXE) : extension.go + go build $< + +$(EXT) : sqlite3_mod_regexp.c + gcc $(LDFLAG) -shared -o $@ $< -lsqlite3 -lpcre + +clean : + @-$(RM) $(EXE) $(EXT) diff --git a/vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/extension.go b/vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/extension.go new file mode 100644 index 0000000..61ceb55 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/extension.go @@ -0,0 +1,43 @@ +package main + +import ( + "database/sql" + "fmt" + "github.com/mattn/go-sqlite3" + "log" +) + +func main() { + sql.Register("sqlite3_with_extensions", + &sqlite3.SQLiteDriver{ + Extensions: []string{ + "sqlite3_mod_regexp", + }, + }) + + db, err := sql.Open("sqlite3_with_extensions", ":memory:") + if err != nil { + log.Fatal(err) + } + defer db.Close() + + // Force db to make a new connection in pool + // by putting the original in a transaction + tx, err := db.Begin() + if err != nil { + log.Fatal(err) + } + defer tx.Commit() + + // New connection works (hopefully!) + rows, err := db.Query("select 'hello world' where 'hello world' regexp '^hello.*d$'") + if err != nil { + log.Fatal(err) + } + defer rows.Close() + for rows.Next() { + var helloworld string + rows.Scan(&helloworld) + fmt.Println(helloworld) + } +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/sqlite3_mod_regexp.c b/vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/sqlite3_mod_regexp.c new file mode 100644 index 0000000..277764d --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/mod_regexp/sqlite3_mod_regexp.c @@ -0,0 +1,31 @@ +#include +#include +#include +#include + +SQLITE_EXTENSION_INIT1 +static void regexp_func(sqlite3_context *context, int argc, sqlite3_value **argv) { + if (argc >= 2) { + const char *target = (const char *)sqlite3_value_text(argv[1]); + const char *pattern = (const char *)sqlite3_value_text(argv[0]); + const char* errstr = NULL; + int erroff = 0; + int vec[500]; + int n, rc; + pcre* re = pcre_compile(pattern, 0, &errstr, &erroff, NULL); + rc = pcre_exec(re, NULL, target, strlen(target), 0, 0, vec, 500); + if (rc <= 0) { + sqlite3_result_error(context, errstr, 0); + return; + } + sqlite3_result_int(context, 1); + } +} + +#ifdef _WIN32 +__declspec(dllexport) +#endif +int sqlite3_extension_init(sqlite3 *db, char **errmsg, const sqlite3_api_routines *api) { + SQLITE_EXTENSION_INIT2(api); + return sqlite3_create_function(db, "regexp", 2, SQLITE_UTF8, (void*)db, regexp_func, NULL, NULL); +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/Makefile b/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/Makefile new file mode 100644 index 0000000..cdd4853 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/Makefile @@ -0,0 +1,24 @@ +ifeq ($(OS),Windows_NT) +EXE=extension.exe +EXT=sqlite3_mod_vtable.dll +RM=cmd /c del +LIBCURL=-lcurldll +LDFLAG= +else +EXE=extension +EXT=sqlite3_mod_vtable.so +RM=rm +LDFLAG=-fPIC +LIBCURL=-lcurl +endif + +all : $(EXE) $(EXT) + +$(EXE) : extension.go + go build $< + +$(EXT) : sqlite3_mod_vtable.cc + g++ $(LDFLAG) -shared -o $@ $< -lsqlite3 $(LIBCURL) + +clean : + @-$(RM) $(EXE) $(EXT) diff --git a/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/extension.go b/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/extension.go new file mode 100644 index 0000000..f738af6 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/extension.go @@ -0,0 +1,37 @@ +package main + +import ( + "database/sql" + "fmt" + "log" + + "github.com/mattn/go-sqlite3" +) + +func main() { + sql.Register("sqlite3_with_extensions", + &sqlite3.SQLiteDriver{ + Extensions: []string{ + "sqlite3_mod_vtable", + }, + }) + + db, err := sql.Open("sqlite3_with_extensions", ":memory:") + if err != nil { + log.Fatal(err) + } + defer db.Close() + + db.Exec("create virtual table repo using github(id, full_name, description, html_url)") + + rows, err := db.Query("select id, full_name, description, html_url from repo") + if err != nil { + log.Fatal(err) + } + defer rows.Close() + for rows.Next() { + var id, fullName, description, htmlURL string + rows.Scan(&id, &fullName, &description, &htmlURL) + fmt.Printf("%s: %s\n\t%s\n\t%s\n\n", id, fullName, description, htmlURL) + } +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/picojson.h b/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/picojson.h new file mode 100644 index 0000000..2142647 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/picojson.h @@ -0,0 +1,1040 @@ +/* + * Copyright 2009-2010 Cybozu Labs, Inc. + * Copyright 2011 Kazuho Oku + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY CYBOZU LABS, INC. ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL CYBOZU LABS, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are + * those of the authors and should not be interpreted as representing official + * policies, either expressed or implied, of Cybozu Labs, Inc. + * + */ +#ifndef picojson_h +#define picojson_h + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef _MSC_VER + #define SNPRINTF _snprintf_s + #pragma warning(push) + #pragma warning(disable : 4244) // conversion from int to char +#else + #define SNPRINTF snprintf +#endif + +namespace picojson { + + enum { + null_type, + boolean_type, + number_type, + string_type, + array_type, + object_type + }; + + struct null {}; + + class value { + public: + typedef std::vector array; + typedef std::map object; + union _storage { + bool boolean_; + double number_; + std::string* string_; + array* array_; + object* object_; + }; + protected: + int type_; + _storage u_; + public: + value(); + value(int type, bool); + explicit value(bool b); + explicit value(double n); + explicit value(const std::string& s); + explicit value(const array& a); + explicit value(const object& o); + explicit value(const char* s); + value(const char* s, size_t len); + ~value(); + value(const value& x); + value& operator=(const value& x); + void swap(value& x); + template bool is() const; + template const T& get() const; + template T& get(); + bool evaluate_as_boolean() const; + const value& get(size_t idx) const; + const value& get(const std::string& key) const; + bool contains(size_t idx) const; + bool contains(const std::string& key) const; + std::string to_str() const; + template void serialize(Iter os) const; + std::string serialize() const; + private: + template value(const T*); // intentionally defined to block implicit conversion of pointer to bool + }; + + typedef value::array array; + typedef value::object object; + + inline value::value() : type_(null_type) {} + + inline value::value(int type, bool) : type_(type) { + switch (type) { +#define INIT(p, v) case p##type: u_.p = v; break + INIT(boolean_, false); + INIT(number_, 0.0); + INIT(string_, new std::string()); + INIT(array_, new array()); + INIT(object_, new object()); +#undef INIT + default: break; + } + } + + inline value::value(bool b) : type_(boolean_type) { + u_.boolean_ = b; + } + + inline value::value(double n) : type_(number_type) { + u_.number_ = n; + } + + inline value::value(const std::string& s) : type_(string_type) { + u_.string_ = new std::string(s); + } + + inline value::value(const array& a) : type_(array_type) { + u_.array_ = new array(a); + } + + inline value::value(const object& o) : type_(object_type) { + u_.object_ = new object(o); + } + + inline value::value(const char* s) : type_(string_type) { + u_.string_ = new std::string(s); + } + + inline value::value(const char* s, size_t len) : type_(string_type) { + u_.string_ = new std::string(s, len); + } + + inline value::~value() { + switch (type_) { +#define DEINIT(p) case p##type: delete u_.p; break + DEINIT(string_); + DEINIT(array_); + DEINIT(object_); +#undef DEINIT + default: break; + } + } + + inline value::value(const value& x) : type_(x.type_) { + switch (type_) { +#define INIT(p, v) case p##type: u_.p = v; break + INIT(string_, new std::string(*x.u_.string_)); + INIT(array_, new array(*x.u_.array_)); + INIT(object_, new object(*x.u_.object_)); +#undef INIT + default: + u_ = x.u_; + break; + } + } + + inline value& value::operator=(const value& x) { + if (this != &x) { + this->~value(); + new (this) value(x); + } + return *this; + } + + inline void value::swap(value& x) { + std::swap(type_, x.type_); + std::swap(u_, x.u_); + } + +#define IS(ctype, jtype) \ + template <> inline bool value::is() const { \ + return type_ == jtype##_type; \ + } + IS(null, null) + IS(bool, boolean) + IS(int, number) + IS(double, number) + IS(std::string, string) + IS(array, array) + IS(object, object) +#undef IS + +#define GET(ctype, var) \ + template <> inline const ctype& value::get() const { \ + assert("type mismatch! call vis() before get()" \ + && is()); \ + return var; \ + } \ + template <> inline ctype& value::get() { \ + assert("type mismatch! call is() before get()" \ + && is()); \ + return var; \ + } + GET(bool, u_.boolean_) + GET(double, u_.number_) + GET(std::string, *u_.string_) + GET(array, *u_.array_) + GET(object, *u_.object_) +#undef GET + + inline bool value::evaluate_as_boolean() const { + switch (type_) { + case null_type: + return false; + case boolean_type: + return u_.boolean_; + case number_type: + return u_.number_ != 0; + case string_type: + return ! u_.string_->empty(); + default: + return true; + } + } + + inline const value& value::get(size_t idx) const { + static value s_null; + assert(is()); + return idx < u_.array_->size() ? (*u_.array_)[idx] : s_null; + } + + inline const value& value::get(const std::string& key) const { + static value s_null; + assert(is()); + object::const_iterator i = u_.object_->find(key); + return i != u_.object_->end() ? i->second : s_null; + } + + inline bool value::contains(size_t idx) const { + assert(is()); + return idx < u_.array_->size(); + } + + inline bool value::contains(const std::string& key) const { + assert(is()); + object::const_iterator i = u_.object_->find(key); + return i != u_.object_->end(); + } + + inline std::string value::to_str() const { + switch (type_) { + case null_type: return "null"; + case boolean_type: return u_.boolean_ ? "true" : "false"; + case number_type: { + char buf[256]; + double tmp; + SNPRINTF(buf, sizeof(buf), fabs(u_.number_) < (1ULL << 53) && modf(u_.number_, &tmp) == 0 ? "%.f" : "%.17g", u_.number_); + return buf; + } + case string_type: return *u_.string_; + case array_type: return "array"; + case object_type: return "object"; + default: assert(0); +#ifdef _MSC_VER + __assume(0); +#endif + } + return std::string(); + } + + template void copy(const std::string& s, Iter oi) { + std::copy(s.begin(), s.end(), oi); + } + + template void serialize_str(const std::string& s, Iter oi) { + *oi++ = '"'; + for (std::string::const_iterator i = s.begin(); i != s.end(); ++i) { + switch (*i) { +#define MAP(val, sym) case val: copy(sym, oi); break + MAP('"', "\\\""); + MAP('\\', "\\\\"); + MAP('/', "\\/"); + MAP('\b', "\\b"); + MAP('\f', "\\f"); + MAP('\n', "\\n"); + MAP('\r', "\\r"); + MAP('\t', "\\t"); +#undef MAP + default: + if ((unsigned char)*i < 0x20 || *i == 0x7f) { + char buf[7]; + SNPRINTF(buf, sizeof(buf), "\\u%04x", *i & 0xff); + copy(buf, buf + 6, oi); + } else { + *oi++ = *i; + } + break; + } + } + *oi++ = '"'; + } + + template void value::serialize(Iter oi) const { + switch (type_) { + case string_type: + serialize_str(*u_.string_, oi); + break; + case array_type: { + *oi++ = '['; + for (array::const_iterator i = u_.array_->begin(); + i != u_.array_->end(); + ++i) { + if (i != u_.array_->begin()) { + *oi++ = ','; + } + i->serialize(oi); + } + *oi++ = ']'; + break; + } + case object_type: { + *oi++ = '{'; + for (object::const_iterator i = u_.object_->begin(); + i != u_.object_->end(); + ++i) { + if (i != u_.object_->begin()) { + *oi++ = ','; + } + serialize_str(i->first, oi); + *oi++ = ':'; + i->second.serialize(oi); + } + *oi++ = '}'; + break; + } + default: + copy(to_str(), oi); + break; + } + } + + inline std::string value::serialize() const { + std::string s; + serialize(std::back_inserter(s)); + return s; + } + + template class input { + protected: + Iter cur_, end_; + int last_ch_; + bool ungot_; + int line_; + public: + input(const Iter& first, const Iter& last) : cur_(first), end_(last), last_ch_(-1), ungot_(false), line_(1) {} + int getc() { + if (ungot_) { + ungot_ = false; + return last_ch_; + } + if (cur_ == end_) { + last_ch_ = -1; + return -1; + } + if (last_ch_ == '\n') { + line_++; + } + last_ch_ = *cur_++ & 0xff; + return last_ch_; + } + void ungetc() { + if (last_ch_ != -1) { + assert(! ungot_); + ungot_ = true; + } + } + Iter cur() const { return cur_; } + int line() const { return line_; } + void skip_ws() { + while (1) { + int ch = getc(); + if (! (ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r')) { + ungetc(); + break; + } + } + } + bool expect(int expect) { + skip_ws(); + if (getc() != expect) { + ungetc(); + return false; + } + return true; + } + bool match(const std::string& pattern) { + for (std::string::const_iterator pi(pattern.begin()); + pi != pattern.end(); + ++pi) { + if (getc() != *pi) { + ungetc(); + return false; + } + } + return true; + } + }; + + template inline int _parse_quadhex(input &in) { + int uni_ch = 0, hex; + for (int i = 0; i < 4; i++) { + if ((hex = in.getc()) == -1) { + return -1; + } + if ('0' <= hex && hex <= '9') { + hex -= '0'; + } else if ('A' <= hex && hex <= 'F') { + hex -= 'A' - 0xa; + } else if ('a' <= hex && hex <= 'f') { + hex -= 'a' - 0xa; + } else { + in.ungetc(); + return -1; + } + uni_ch = uni_ch * 16 + hex; + } + return uni_ch; + } + + template inline bool _parse_codepoint(String& out, input& in) { + int uni_ch; + if ((uni_ch = _parse_quadhex(in)) == -1) { + return false; + } + if (0xd800 <= uni_ch && uni_ch <= 0xdfff) { + if (0xdc00 <= uni_ch) { + // a second 16-bit of a surrogate pair appeared + return false; + } + // first 16-bit of surrogate pair, get the next one + if (in.getc() != '\\' || in.getc() != 'u') { + in.ungetc(); + return false; + } + int second = _parse_quadhex(in); + if (! (0xdc00 <= second && second <= 0xdfff)) { + return false; + } + uni_ch = ((uni_ch - 0xd800) << 10) | ((second - 0xdc00) & 0x3ff); + uni_ch += 0x10000; + } + if (uni_ch < 0x80) { + out.push_back(uni_ch); + } else { + if (uni_ch < 0x800) { + out.push_back(0xc0 | (uni_ch >> 6)); + } else { + if (uni_ch < 0x10000) { + out.push_back(0xe0 | (uni_ch >> 12)); + } else { + out.push_back(0xf0 | (uni_ch >> 18)); + out.push_back(0x80 | ((uni_ch >> 12) & 0x3f)); + } + out.push_back(0x80 | ((uni_ch >> 6) & 0x3f)); + } + out.push_back(0x80 | (uni_ch & 0x3f)); + } + return true; + } + + template inline bool _parse_string(String& out, input& in) { + while (1) { + int ch = in.getc(); + if (ch < ' ') { + in.ungetc(); + return false; + } else if (ch == '"') { + return true; + } else if (ch == '\\') { + if ((ch = in.getc()) == -1) { + return false; + } + switch (ch) { +#define MAP(sym, val) case sym: out.push_back(val); break + MAP('"', '\"'); + MAP('\\', '\\'); + MAP('/', '/'); + MAP('b', '\b'); + MAP('f', '\f'); + MAP('n', '\n'); + MAP('r', '\r'); + MAP('t', '\t'); +#undef MAP + case 'u': + if (! _parse_codepoint(out, in)) { + return false; + } + break; + default: + return false; + } + } else { + out.push_back(ch); + } + } + return false; + } + + template inline bool _parse_array(Context& ctx, input& in) { + if (! ctx.parse_array_start()) { + return false; + } + size_t idx = 0; + if (in.expect(']')) { + return ctx.parse_array_stop(idx); + } + do { + if (! ctx.parse_array_item(in, idx)) { + return false; + } + idx++; + } while (in.expect(',')); + return in.expect(']') && ctx.parse_array_stop(idx); + } + + template inline bool _parse_object(Context& ctx, input& in) { + if (! ctx.parse_object_start()) { + return false; + } + if (in.expect('}')) { + return true; + } + do { + std::string key; + if (! in.expect('"') + || ! _parse_string(key, in) + || ! in.expect(':')) { + return false; + } + if (! ctx.parse_object_item(in, key)) { + return false; + } + } while (in.expect(',')); + return in.expect('}'); + } + + template inline bool _parse_number(double& out, input& in) { + std::string num_str; + while (1) { + int ch = in.getc(); + if (('0' <= ch && ch <= '9') || ch == '+' || ch == '-' || ch == '.' + || ch == 'e' || ch == 'E') { + num_str.push_back(ch); + } else { + in.ungetc(); + break; + } + } + char* endp; + out = strtod(num_str.c_str(), &endp); + return endp == num_str.c_str() + num_str.size(); + } + + template inline bool _parse(Context& ctx, input& in) { + in.skip_ws(); + int ch = in.getc(); + switch (ch) { +#define IS(ch, text, op) case ch: \ + if (in.match(text) && op) { \ + return true; \ + } else { \ + return false; \ + } + IS('n', "ull", ctx.set_null()); + IS('f', "alse", ctx.set_bool(false)); + IS('t', "rue", ctx.set_bool(true)); +#undef IS + case '"': + return ctx.parse_string(in); + case '[': + return _parse_array(ctx, in); + case '{': + return _parse_object(ctx, in); + default: + if (('0' <= ch && ch <= '9') || ch == '-') { + in.ungetc(); + double f; + if (_parse_number(f, in)) { + ctx.set_number(f); + return true; + } else { + return false; + } + } + break; + } + in.ungetc(); + return false; + } + + class deny_parse_context { + public: + bool set_null() { return false; } + bool set_bool(bool) { return false; } + bool set_number(double) { return false; } + template bool parse_string(input&) { return false; } + bool parse_array_start() { return false; } + template bool parse_array_item(input&, size_t) { + return false; + } + bool parse_array_stop(size_t) { return false; } + bool parse_object_start() { return false; } + template bool parse_object_item(input&, const std::string&) { + return false; + } + }; + + class default_parse_context { + protected: + value* out_; + public: + default_parse_context(value* out) : out_(out) {} + bool set_null() { + *out_ = value(); + return true; + } + bool set_bool(bool b) { + *out_ = value(b); + return true; + } + bool set_number(double f) { + *out_ = value(f); + return true; + } + template bool parse_string(input& in) { + *out_ = value(string_type, false); + return _parse_string(out_->get(), in); + } + bool parse_array_start() { + *out_ = value(array_type, false); + return true; + } + template bool parse_array_item(input& in, size_t) { + array& a = out_->get(); + a.push_back(value()); + default_parse_context ctx(&a.back()); + return _parse(ctx, in); + } + bool parse_array_stop(size_t) { return true; } + bool parse_object_start() { + *out_ = value(object_type, false); + return true; + } + template bool parse_object_item(input& in, const std::string& key) { + object& o = out_->get(); + default_parse_context ctx(&o[key]); + return _parse(ctx, in); + } + private: + default_parse_context(const default_parse_context&); + default_parse_context& operator=(const default_parse_context&); + }; + + class null_parse_context { + public: + struct dummy_str { + void push_back(int) {} + }; + public: + null_parse_context() {} + bool set_null() { return true; } + bool set_bool(bool) { return true; } + bool set_number(double) { return true; } + template bool parse_string(input& in) { + dummy_str s; + return _parse_string(s, in); + } + bool parse_array_start() { return true; } + template bool parse_array_item(input& in, size_t) { + return _parse(*this, in); + } + bool parse_array_stop(size_t) { return true; } + bool parse_object_start() { return true; } + template bool parse_object_item(input& in, const std::string&) { + return _parse(*this, in); + } + private: + null_parse_context(const null_parse_context&); + null_parse_context& operator=(const null_parse_context&); + }; + + // obsolete, use the version below + template inline std::string parse(value& out, Iter& pos, const Iter& last) { + std::string err; + pos = parse(out, pos, last, &err); + return err; + } + + template inline Iter _parse(Context& ctx, const Iter& first, const Iter& last, std::string* err) { + input in(first, last); + if (! _parse(ctx, in) && err != NULL) { + char buf[64]; + SNPRINTF(buf, sizeof(buf), "syntax error at line %d near: ", in.line()); + *err = buf; + while (1) { + int ch = in.getc(); + if (ch == -1 || ch == '\n') { + break; + } else if (ch >= ' ') { + err->push_back(ch); + } + } + } + return in.cur(); + } + + template inline Iter parse(value& out, const Iter& first, const Iter& last, std::string* err) { + default_parse_context ctx(&out); + return _parse(ctx, first, last, err); + } + + inline std::string parse(value& out, std::istream& is) { + std::string err; + parse(out, std::istreambuf_iterator(is.rdbuf()), + std::istreambuf_iterator(), &err); + return err; + } + + template struct last_error_t { + static std::string s; + }; + template std::string last_error_t::s; + + inline void set_last_error(const std::string& s) { + last_error_t::s = s; + } + + inline const std::string& get_last_error() { + return last_error_t::s; + } + + inline bool operator==(const value& x, const value& y) { + if (x.is()) + return y.is(); +#define PICOJSON_CMP(type) \ + if (x.is()) \ + return y.is() && x.get() == y.get() + PICOJSON_CMP(bool); + PICOJSON_CMP(double); + PICOJSON_CMP(std::string); + PICOJSON_CMP(array); + PICOJSON_CMP(object); +#undef PICOJSON_CMP + assert(0); +#ifdef _MSC_VER + __assume(0); +#endif + return false; + } + + inline bool operator!=(const value& x, const value& y) { + return ! (x == y); + } +} + +namespace std { + template<> inline void swap(picojson::value& x, picojson::value& y) + { + x.swap(y); + } +} + +inline std::istream& operator>>(std::istream& is, picojson::value& x) +{ + picojson::set_last_error(std::string()); + std::string err = picojson::parse(x, is); + if (! err.empty()) { + picojson::set_last_error(err); + is.setstate(std::ios::failbit); + } + return is; +} + +inline std::ostream& operator<<(std::ostream& os, const picojson::value& x) +{ + x.serialize(std::ostream_iterator(os)); + return os; +} +#ifdef _MSC_VER + #pragma warning(pop) +#endif + +#endif +#ifdef TEST_PICOJSON +#ifdef _MSC_VER + #pragma warning(disable : 4127) // conditional expression is constant +#endif + +using namespace std; + +static void plan(int num) +{ + printf("1..%d\n", num); +} + +static bool success = true; + +static void ok(bool b, const char* name = "") +{ + static int n = 1; + if (! b) + success = false; + printf("%s %d - %s\n", b ? "ok" : "ng", n++, name); +} + +template void is(const T& x, const T& y, const char* name = "") +{ + if (x == y) { + ok(true, name); + } else { + ok(false, name); + } +} + +#include +#include +#include +#include + +int main(void) +{ + plan(85); + + // constructors +#define TEST(expr, expected) \ + is(picojson::value expr .serialize(), string(expected), "picojson::value" #expr) + + TEST( (true), "true"); + TEST( (false), "false"); + TEST( (42.0), "42"); + TEST( (string("hello")), "\"hello\""); + TEST( ("hello"), "\"hello\""); + TEST( ("hello", 4), "\"hell\""); + + { + double a = 1; + for (int i = 0; i < 1024; i++) { + picojson::value vi(a); + std::stringstream ss; + ss << vi; + picojson::value vo; + ss >> vo; + double b = vo.get(); + if ((i < 53 && a != b) || fabs(a - b) / b > 1e-8) { + printf("ng i=%d a=%.18e b=%.18e\n", i, a, b); + } + a *= 2; + } + } + +#undef TEST + +#define TEST(in, type, cmp, serialize_test) { \ + picojson::value v; \ + const char* s = in; \ + string err = picojson::parse(v, s, s + strlen(s)); \ + ok(err.empty(), in " no error"); \ + ok(v.is(), in " check type"); \ + is(v.get(), cmp, in " correct output"); \ + is(*s, '\0', in " read to eof"); \ + if (serialize_test) { \ + is(v.serialize(), string(in), in " serialize"); \ + } \ + } + TEST("false", bool, false, true); + TEST("true", bool, true, true); + TEST("90.5", double, 90.5, false); + TEST("1.7976931348623157e+308", double, DBL_MAX, false); + TEST("\"hello\"", string, string("hello"), true); + TEST("\"\\\"\\\\\\/\\b\\f\\n\\r\\t\"", string, string("\"\\/\b\f\n\r\t"), + true); + TEST("\"\\u0061\\u30af\\u30ea\\u30b9\"", string, + string("a\xe3\x82\xaf\xe3\x83\xaa\xe3\x82\xb9"), false); + TEST("\"\\ud840\\udc0b\"", string, string("\xf0\xa0\x80\x8b"), false); +#undef TEST + +#define TEST(type, expr) { \ + picojson::value v; \ + const char *s = expr; \ + string err = picojson::parse(v, s, s + strlen(s)); \ + ok(err.empty(), "empty " #type " no error"); \ + ok(v.is(), "empty " #type " check type"); \ + ok(v.get().empty(), "check " #type " array size"); \ + } + TEST(array, "[]"); + TEST(object, "{}"); +#undef TEST + + { + picojson::value v; + const char *s = "[1,true,\"hello\"]"; + string err = picojson::parse(v, s, s + strlen(s)); + ok(err.empty(), "array no error"); + ok(v.is(), "array check type"); + is(v.get().size(), size_t(3), "check array size"); + ok(v.contains(0), "check contains array[0]"); + ok(v.get(0).is(), "check array[0] type"); + is(v.get(0).get(), 1.0, "check array[0] value"); + ok(v.contains(1), "check contains array[1]"); + ok(v.get(1).is(), "check array[1] type"); + ok(v.get(1).get(), "check array[1] value"); + ok(v.contains(2), "check contains array[2]"); + ok(v.get(2).is(), "check array[2] type"); + is(v.get(2).get(), string("hello"), "check array[2] value"); + ok(!v.contains(3), "check not contains array[3]"); + } + + { + picojson::value v; + const char *s = "{ \"a\": true }"; + string err = picojson::parse(v, s, s + strlen(s)); + ok(err.empty(), "object no error"); + ok(v.is(), "object check type"); + is(v.get().size(), size_t(1), "check object size"); + ok(v.contains("a"), "check contains property"); + ok(v.get("a").is(), "check bool property exists"); + is(v.get("a").get(), true, "check bool property value"); + is(v.serialize(), string("{\"a\":true}"), "serialize object"); + ok(!v.contains("z"), "check not contains property"); + } + +#define TEST(json, msg) do { \ + picojson::value v; \ + const char *s = json; \ + string err = picojson::parse(v, s, s + strlen(s)); \ + is(err, string("syntax error at line " msg), msg); \ + } while (0) + TEST("falsoa", "1 near: oa"); + TEST("{]", "1 near: ]"); + TEST("\n\bbell", "2 near: bell"); + TEST("\"abc\nd\"", "1 near: "); +#undef TEST + + { + picojson::value v1, v2; + const char *s; + string err; + s = "{ \"b\": true, \"a\": [1,2,\"three\"], \"d\": 2 }"; + err = picojson::parse(v1, s, s + strlen(s)); + s = "{ \"d\": 2.0, \"b\": true, \"a\": [1,2,\"three\"] }"; + err = picojson::parse(v2, s, s + strlen(s)); + ok((v1 == v2), "check == operator in deep comparison"); + } + + { + picojson::value v1, v2; + const char *s; + string err; + s = "{ \"b\": true, \"a\": [1,2,\"three\"], \"d\": 2 }"; + err = picojson::parse(v1, s, s + strlen(s)); + s = "{ \"d\": 2.0, \"a\": [1,\"three\"], \"b\": true }"; + err = picojson::parse(v2, s, s + strlen(s)); + ok((v1 != v2), "check != operator for array in deep comparison"); + } + + { + picojson::value v1, v2; + const char *s; + string err; + s = "{ \"b\": true, \"a\": [1,2,\"three\"], \"d\": 2 }"; + err = picojson::parse(v1, s, s + strlen(s)); + s = "{ \"d\": 2.0, \"a\": [1,2,\"three\"], \"b\": false }"; + err = picojson::parse(v2, s, s + strlen(s)); + ok((v1 != v2), "check != operator for object in deep comparison"); + } + + { + picojson::value v1, v2; + const char *s; + string err; + s = "{ \"b\": true, \"a\": [1,2,\"three\"], \"d\": 2 }"; + err = picojson::parse(v1, s, s + strlen(s)); + picojson::object& o = v1.get(); + o.erase("b"); + picojson::array& a = o["a"].get(); + picojson::array::iterator i; + i = std::remove(a.begin(), a.end(), picojson::value(std::string("three"))); + a.erase(i, a.end()); + s = "{ \"a\": [1,2], \"d\": 2 }"; + err = picojson::parse(v2, s, s + strlen(s)); + ok((v1 == v2), "check erase()"); + } + + ok(picojson::value(3.0).serialize() == "3", + "integral number should be serialized as a integer"); + + { + const char* s = "{ \"a\": [1,2], \"d\": 2 }"; + picojson::null_parse_context ctx; + string err; + picojson::_parse(ctx, s, s + strlen(s), &err); + ok(err.empty(), "null_parse_context"); + } + + { + picojson::value v1, v2; + v1 = picojson::value(true); + swap(v1, v2); + ok(v1.is(), "swap (null)"); + ok(v2.get() == true, "swap (bool)"); + + v1 = picojson::value("a"); + v2 = picojson::value(1.0); + swap(v1, v2); + ok(v1.get() == 1.0, "swap (dobule)"); + ok(v2.get() == "a", "swap (string)"); + + v1 = picojson::value(picojson::object()); + v2 = picojson::value(picojson::array()); + swap(v1, v2); + ok(v1.is(), "swap (array)"); + ok(v2.is(), "swap (object)"); + } + + return success ? 0 : 1; +} + +#endif diff --git a/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/sqlite3_mod_vtable.cc b/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/sqlite3_mod_vtable.cc new file mode 100644 index 0000000..5bd4e66 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/mod_vtable/sqlite3_mod_vtable.cc @@ -0,0 +1,238 @@ +#include +#include +#include +#include +#include +#include "picojson.h" + +#ifdef _WIN32 +# define EXPORT __declspec(dllexport) +#else +# define EXPORT +#endif + +SQLITE_EXTENSION_INIT1; + +typedef struct { + char* data; // response data from server + size_t size; // response size of data +} MEMFILE; + +MEMFILE* +memfopen() { + MEMFILE* mf = (MEMFILE*) malloc(sizeof(MEMFILE)); + if (mf) { + mf->data = NULL; + mf->size = 0; + } + return mf; +} + +void +memfclose(MEMFILE* mf) { + if (mf->data) free(mf->data); + free(mf); +} + +size_t +memfwrite(char* ptr, size_t size, size_t nmemb, void* stream) { + MEMFILE* mf = (MEMFILE*) stream; + int block = size * nmemb; + if (!mf) return block; // through + if (!mf->data) + mf->data = (char*) malloc(block); + else + mf->data = (char*) realloc(mf->data, mf->size + block); + if (mf->data) { + memcpy(mf->data + mf->size, ptr, block); + mf->size += block; + } + return block; +} + +char* +memfstrdup(MEMFILE* mf) { + char* buf; + if (mf->size == 0) return NULL; + buf = (char*) malloc(mf->size + 1); + memcpy(buf, mf->data, mf->size); + buf[mf->size] = 0; + return buf; +} + +static int +my_connect(sqlite3 *db, void *pAux, int argc, const char * const *argv, sqlite3_vtab **ppVTab, char **c) { + std::stringstream ss; + ss << "CREATE TABLE " << argv[0] + << "(id int, full_name text, description text, html_url text)"; + int rc = sqlite3_declare_vtab(db, ss.str().c_str()); + *ppVTab = (sqlite3_vtab *) sqlite3_malloc(sizeof(sqlite3_vtab)); + memset(*ppVTab, 0, sizeof(sqlite3_vtab)); + return rc; +} + +static int +my_create(sqlite3 *db, void *pAux, int argc, const char * const * argv, sqlite3_vtab **ppVTab, char **c) { + return my_connect(db, pAux, argc, argv, ppVTab, c); +} + +static int my_disconnect(sqlite3_vtab *pVTab) { + sqlite3_free(pVTab); + return SQLITE_OK; +} + +static int +my_destroy(sqlite3_vtab *pVTab) { + sqlite3_free(pVTab); + return SQLITE_OK; +} + +typedef struct { + sqlite3_vtab_cursor base; + int index; + picojson::value* rows; +} cursor; + +static int +my_open(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor) { + MEMFILE* mf; + CURL* curl; + char* json; + CURLcode res = CURLE_OK; + char error[CURL_ERROR_SIZE] = {0}; + char* cert_file = getenv("SSL_CERT_FILE"); + + mf = memfopen(); + curl = curl_easy_init(); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 1); + curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2); + curl_easy_setopt(curl, CURLOPT_USERAGENT, "curl/7.29.0"); + curl_easy_setopt(curl, CURLOPT_URL, "https://api.github.com/repositories"); + if (cert_file) + curl_easy_setopt(curl, CURLOPT_CAINFO, cert_file); + curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); + curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error); + curl_easy_setopt(curl, CURLOPT_WRITEDATA, mf); + curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, memfwrite); + res = curl_easy_perform(curl); + curl_easy_cleanup(curl); + if (res != CURLE_OK) { + std::cerr << error << std::endl; + return SQLITE_FAIL; + } + + picojson::value* v = new picojson::value; + std::string err; + picojson::parse(*v, mf->data, mf->data + mf->size, &err); + memfclose(mf); + + if (!err.empty()) { + delete v; + std::cerr << err << std::endl; + return SQLITE_FAIL; + } + + cursor *c = (cursor *)sqlite3_malloc(sizeof(cursor)); + c->rows = v; + c->index = 0; + *ppCursor = &c->base; + return SQLITE_OK; +} + +static int +my_close(cursor *c) { + delete c->rows; + sqlite3_free(c); + return SQLITE_OK; +} + +static int +my_filter(cursor *c, int idxNum, const char *idxStr, int argc, sqlite3_value **argv) { + c->index = 0; + return SQLITE_OK; +} + +static int +my_next(cursor *c) { + c->index++; + return SQLITE_OK; +} + +static int +my_eof(cursor *c) { + return c->index >= c->rows->get().size() ? 1 : 0; +} + +static int +my_column(cursor *c, sqlite3_context *ctxt, int i) { + picojson::value v = c->rows->get()[c->index]; + picojson::object row = v.get(); + const char* p = NULL; + switch (i) { + case 0: + p = row["id"].to_str().c_str(); + break; + case 1: + p = row["full_name"].to_str().c_str(); + break; + case 2: + p = row["description"].to_str().c_str(); + break; + case 3: + p = row["html_url"].to_str().c_str(); + break; + } + sqlite3_result_text(ctxt, strdup(p), strlen(p), free); + return SQLITE_OK; +} + +static int +my_rowid(cursor *c, sqlite3_int64 *pRowid) { + *pRowid = c->index; + return SQLITE_OK; +} + +static int +my_bestindex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo) { + return SQLITE_OK; +} + +static const sqlite3_module module = { + 0, + my_create, + my_connect, + my_bestindex, + my_disconnect, + my_destroy, + my_open, + (int (*)(sqlite3_vtab_cursor *)) my_close, + (int (*)(sqlite3_vtab_cursor *, int, char const *, int, sqlite3_value **)) my_filter, + (int (*)(sqlite3_vtab_cursor *)) my_next, + (int (*)(sqlite3_vtab_cursor *)) my_eof, + (int (*)(sqlite3_vtab_cursor *, sqlite3_context *, int)) my_column, + (int (*)(sqlite3_vtab_cursor *, sqlite3_int64 *)) my_rowid, + NULL, // my_update + NULL, // my_begin + NULL, // my_sync + NULL, // my_commit + NULL, // my_rollback + NULL, // my_findfunction + NULL, // my_rename +}; + +static void +destructor(void *arg) { + return; +} + + +extern "C" { + +EXPORT int +sqlite3_extension_init(sqlite3 *db, char **errmsg, const sqlite3_api_routines *api) { + SQLITE_EXTENSION_INIT2(api); + sqlite3_create_module_v2(db, "github", &module, NULL, destructor); + return 0; +} + +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/simple/simple.go b/vendor/github.com/mattn/go-sqlite3/_example/simple/simple.go new file mode 100644 index 0000000..261ed4d --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/simple/simple.go @@ -0,0 +1,106 @@ +package main + +import ( + "database/sql" + "fmt" + _ "github.com/mattn/go-sqlite3" + "log" + "os" +) + +func main() { + os.Remove("./foo.db") + + db, err := sql.Open("sqlite3", "./foo.db") + if err != nil { + log.Fatal(err) + } + defer db.Close() + + sqlStmt := ` + create table foo (id integer not null primary key, name text); + delete from foo; + ` + _, err = db.Exec(sqlStmt) + if err != nil { + log.Printf("%q: %s\n", err, sqlStmt) + return + } + + tx, err := db.Begin() + if err != nil { + log.Fatal(err) + } + stmt, err := tx.Prepare("insert into foo(id, name) values(?, ?)") + if err != nil { + log.Fatal(err) + } + defer stmt.Close() + for i := 0; i < 100; i++ { + _, err = stmt.Exec(i, fmt.Sprintf("こんにちわ世界%03d", i)) + if err != nil { + log.Fatal(err) + } + } + tx.Commit() + + rows, err := db.Query("select id, name from foo") + if err != nil { + log.Fatal(err) + } + defer rows.Close() + for rows.Next() { + var id int + var name string + err = rows.Scan(&id, &name) + if err != nil { + log.Fatal(err) + } + fmt.Println(id, name) + } + err = rows.Err() + if err != nil { + log.Fatal(err) + } + + stmt, err = db.Prepare("select name from foo where id = ?") + if err != nil { + log.Fatal(err) + } + defer stmt.Close() + var name string + err = stmt.QueryRow("3").Scan(&name) + if err != nil { + log.Fatal(err) + } + fmt.Println(name) + + _, err = db.Exec("delete from foo") + if err != nil { + log.Fatal(err) + } + + _, err = db.Exec("insert into foo(id, name) values(1, 'foo'), (2, 'bar'), (3, 'baz')") + if err != nil { + log.Fatal(err) + } + + rows, err = db.Query("select id, name from foo") + if err != nil { + log.Fatal(err) + } + defer rows.Close() + for rows.Next() { + var id int + var name string + err = rows.Scan(&id, &name) + if err != nil { + log.Fatal(err) + } + fmt.Println(id, name) + } + err = rows.Err() + if err != nil { + log.Fatal(err) + } +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/trace/main.go b/vendor/github.com/mattn/go-sqlite3/_example/trace/main.go new file mode 100644 index 0000000..9f83ee1 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/trace/main.go @@ -0,0 +1,264 @@ +package main + +import ( + "database/sql" + "fmt" + "log" + "os" + + sqlite3 "github.com/mattn/go-sqlite3" +) + +func traceCallback(info sqlite3.TraceInfo) int { + // Not very readable but may be useful; uncomment next line in case of doubt: + //fmt.Printf("Trace: %#v\n", info) + + var dbErrText string + if info.DBError.Code != 0 || info.DBError.ExtendedCode != 0 { + dbErrText = fmt.Sprintf("; DB error: %#v", info.DBError) + } else { + dbErrText = "." + } + + // Show the Statement-or-Trigger text in curly braces ('{', '}') + // since from the *paired* ASCII characters they are + // the least used in SQL syntax, therefore better visual delimiters. + // Maybe show 'ExpandedSQL' the same way as 'StmtOrTrigger'. + // + // A known use of curly braces (outside strings) is + // for ODBC escape sequences. Not likely to appear here. + // + // Template languages, etc. don't matter, we should see their *result* + // at *this* level. + // Strange curly braces in SQL code that reached the database driver + // suggest that there is a bug in the application. + // The braces are likely to be either template syntax or + // a programming language's string interpolation syntax. + + var expandedText string + if info.ExpandedSQL != "" { + if info.ExpandedSQL == info.StmtOrTrigger { + expandedText = " = exp" + } else { + expandedText = fmt.Sprintf(" expanded {%q}", info.ExpandedSQL) + } + } else { + expandedText = "" + } + + // SQLite docs as of September 6, 2016: Tracing and Profiling Functions + // https://www.sqlite.org/c3ref/profile.html + // + // The profile callback time is in units of nanoseconds, however + // the current implementation is only capable of millisecond resolution + // so the six least significant digits in the time are meaningless. + // Future versions of SQLite might provide greater resolution on the profiler callback. + + var runTimeText string + if info.RunTimeNanosec == 0 { + if info.EventCode == sqlite3.TraceProfile { + //runTimeText = "; no time" // seems confusing + runTimeText = "; time 0" // no measurement unit + } else { + //runTimeText = "; no time" // seems useless and confusing + } + } else { + const nanosPerMillisec = 1000000 + if info.RunTimeNanosec%nanosPerMillisec == 0 { + runTimeText = fmt.Sprintf("; time %d ms", info.RunTimeNanosec/nanosPerMillisec) + } else { + // unexpected: better than millisecond resolution + runTimeText = fmt.Sprintf("; time %d ns!!!", info.RunTimeNanosec) + } + } + + var modeText string + if info.AutoCommit { + modeText = "-AC-" + } else { + modeText = "+Tx+" + } + + fmt.Printf("Trace: ev %d %s conn 0x%x, stmt 0x%x {%q}%s%s%s\n", + info.EventCode, modeText, info.ConnHandle, info.StmtHandle, + info.StmtOrTrigger, expandedText, + runTimeText, + dbErrText) + return 0 +} + +func main() { + eventMask := sqlite3.TraceStmt | sqlite3.TraceProfile | sqlite3.TraceRow | sqlite3.TraceClose + + sql.Register("sqlite3_tracing", + &sqlite3.SQLiteDriver{ + ConnectHook: func(conn *sqlite3.SQLiteConn) error { + err := conn.SetTrace(&sqlite3.TraceConfig{ + Callback: traceCallback, + EventMask: uint(eventMask), + WantExpandedSQL: true, + }) + return err + }, + }) + + os.Exit(dbMain()) +} + +// Harder to do DB work in main(). +// It's better with a separate function because +// 'defer' and 'os.Exit' don't go well together. +// +// DO NOT use 'log.Fatal...' below: remember that it's equivalent to +// Print() followed by a call to os.Exit(1) --- and +// we want to avoid Exit() so 'defer' can do cleanup. +// Use 'log.Panic...' instead. + +func dbMain() int { + db, err := sql.Open("sqlite3_tracing", ":memory:") + if err != nil { + fmt.Printf("Failed to open database: %#+v\n", err) + return 1 + } + defer db.Close() + + err = db.Ping() + if err != nil { + log.Panic(err) + } + + dbSetup(db) + + dbDoInsert(db) + dbDoInsertPrepared(db) + dbDoSelect(db) + dbDoSelectPrepared(db) + + return 0 +} + +// 'DDL' stands for "Data Definition Language": + +// Note: "INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT" causes the error +// 'near "AUTOINCREMENT": syntax error'; without "NOT NULL" it works. +const tableDDL = `CREATE TABLE t1 ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + note VARCHAR NOT NULL +)` + +// 'DML' stands for "Data Manipulation Language": + +const insertDML = "INSERT INTO t1 (note) VALUES (?)" +const selectDML = "SELECT id, note FROM t1 WHERE note LIKE ?" + +const textPrefix = "bla-1234567890-" +const noteTextPattern = "%Prep%" + +const nGenRows = 4 // Number of Rows to Generate (for *each* approach tested) + +func dbSetup(db *sql.DB) { + var err error + + _, err = db.Exec("DROP TABLE IF EXISTS t1") + if err != nil { + log.Panic(err) + } + _, err = db.Exec(tableDDL) + if err != nil { + log.Panic(err) + } +} + +func dbDoInsert(db *sql.DB) { + const Descr = "DB-Exec" + for i := 0; i < nGenRows; i++ { + result, err := db.Exec(insertDML, textPrefix+Descr) + if err != nil { + log.Panic(err) + } + + resultDoCheck(result, Descr, i) + } +} + +func dbDoInsertPrepared(db *sql.DB) { + const Descr = "DB-Prepare" + + stmt, err := db.Prepare(insertDML) + if err != nil { + log.Panic(err) + } + defer stmt.Close() + + for i := 0; i < nGenRows; i++ { + result, err := stmt.Exec(textPrefix + Descr) + if err != nil { + log.Panic(err) + } + + resultDoCheck(result, Descr, i) + } +} + +func resultDoCheck(result sql.Result, callerDescr string, callIndex int) { + lastID, err := result.LastInsertId() + if err != nil { + log.Panic(err) + } + nAffected, err := result.RowsAffected() + if err != nil { + log.Panic(err) + } + + log.Printf("Exec result for %s (%d): ID = %d, affected = %d\n", callerDescr, callIndex, lastID, nAffected) +} + +func dbDoSelect(db *sql.DB) { + const Descr = "DB-Query" + + rows, err := db.Query(selectDML, noteTextPattern) + if err != nil { + log.Panic(err) + } + defer rows.Close() + + rowsDoFetch(rows, Descr) +} + +func dbDoSelectPrepared(db *sql.DB) { + const Descr = "DB-Prepare" + + stmt, err := db.Prepare(selectDML) + if err != nil { + log.Panic(err) + } + defer stmt.Close() + + rows, err := stmt.Query(noteTextPattern) + if err != nil { + log.Panic(err) + } + defer rows.Close() + + rowsDoFetch(rows, Descr) +} + +func rowsDoFetch(rows *sql.Rows, callerDescr string) { + var nRows int + var id int64 + var note string + + for rows.Next() { + err := rows.Scan(&id, ¬e) + if err != nil { + log.Panic(err) + } + log.Printf("Row for %s (%d): id=%d, note=%q\n", + callerDescr, nRows, id, note) + nRows++ + } + if err := rows.Err(); err != nil { + log.Panic(err) + } + log.Printf("Total %d rows for %s.\n", nRows, callerDescr) +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/vtable/main.go b/vendor/github.com/mattn/go-sqlite3/_example/vtable/main.go new file mode 100644 index 0000000..aad8dda --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/vtable/main.go @@ -0,0 +1,38 @@ +package main + +import ( + "database/sql" + "fmt" + "log" + + "github.com/mattn/go-sqlite3" +) + +func main() { + sql.Register("sqlite3_with_extensions", &sqlite3.SQLiteDriver{ + ConnectHook: func(conn *sqlite3.SQLiteConn) error { + return conn.CreateModule("github", &githubModule{}) + }, + }) + db, err := sql.Open("sqlite3_with_extensions", ":memory:") + if err != nil { + log.Fatal(err) + } + defer db.Close() + + _, err = db.Exec("create virtual table repo using github(id, full_name, description, html_url)") + if err != nil { + log.Fatal(err) + } + + rows, err := db.Query("select id, full_name, description, html_url from repo") + if err != nil { + log.Fatal(err) + } + defer rows.Close() + for rows.Next() { + var id, fullName, description, htmlURL string + rows.Scan(&id, &fullName, &description, &htmlURL) + fmt.Printf("%s: %s\n\t%s\n\t%s\n\n", id, fullName, description, htmlURL) + } +} diff --git a/vendor/github.com/mattn/go-sqlite3/_example/vtable/vtable.go b/vendor/github.com/mattn/go-sqlite3/_example/vtable/vtable.go new file mode 100644 index 0000000..1d6d824 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/_example/vtable/vtable.go @@ -0,0 +1,111 @@ +package main + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "net/http" + + "github.com/mattn/go-sqlite3" +) + +type githubRepo struct { + ID int `json:"id"` + FullName string `json:"full_name"` + Description string `json:"description"` + HTMLURL string `json:"html_url"` +} + +type githubModule struct { +} + +func (m *githubModule) Create(c *sqlite3.SQLiteConn, args []string) (sqlite3.VTab, error) { + err := c.DeclareVTab(fmt.Sprintf(` + CREATE TABLE %s ( + id INT, + full_name TEXT, + description TEXT, + html_url TEXT + )`, args[0])) + if err != nil { + return nil, err + } + return &ghRepoTable{}, nil +} + +func (m *githubModule) Connect(c *sqlite3.SQLiteConn, args []string) (sqlite3.VTab, error) { + return m.Create(c, args) +} + +func (m *githubModule) DestroyModule() {} + +type ghRepoTable struct { + repos []githubRepo +} + +func (v *ghRepoTable) Open() (sqlite3.VTabCursor, error) { + resp, err := http.Get("https://api.github.com/repositories") + if err != nil { + return nil, err + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return nil, err + } + + var repos []githubRepo + if err := json.Unmarshal(body, &repos); err != nil { + return nil, err + } + return &ghRepoCursor{0, repos}, nil +} + +func (v *ghRepoTable) BestIndex(cst []sqlite3.InfoConstraint, ob []sqlite3.InfoOrderBy) (*sqlite3.IndexResult, error) { + return &sqlite3.IndexResult{}, nil +} + +func (v *ghRepoTable) Disconnect() error { return nil } +func (v *ghRepoTable) Destroy() error { return nil } + +type ghRepoCursor struct { + index int + repos []githubRepo +} + +func (vc *ghRepoCursor) Column(c *sqlite3.SQLiteContext, col int) error { + switch col { + case 0: + c.ResultInt(vc.repos[vc.index].ID) + case 1: + c.ResultText(vc.repos[vc.index].FullName) + case 2: + c.ResultText(vc.repos[vc.index].Description) + case 3: + c.ResultText(vc.repos[vc.index].HTMLURL) + } + return nil +} + +func (vc *ghRepoCursor) Filter(idxNum int, idxStr string, vals []interface{}) error { + vc.index = 0 + return nil +} + +func (vc *ghRepoCursor) Next() error { + vc.index++ + return nil +} + +func (vc *ghRepoCursor) EOF() bool { + return vc.index >= len(vc.repos) +} + +func (vc *ghRepoCursor) Rowid() (int64, error) { + return int64(vc.index), nil +} + +func (vc *ghRepoCursor) Close() error { + return nil +} diff --git a/vendor/github.com/mattn/go-sqlite3/tool/upgrade.go b/vendor/github.com/mattn/go-sqlite3/tool/upgrade.go new file mode 100644 index 0000000..94ed39d --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/tool/upgrade.go @@ -0,0 +1,111 @@ +// +build ignore + +package main + +import ( + "archive/zip" + "bufio" + "bytes" + "fmt" + "io" + "io/ioutil" + "log" + "net/http" + "os" + "path" + "path/filepath" + "strings" + + "github.com/PuerkitoBio/goquery" +) + +func main() { + site := "https://www.sqlite.org/download.html" + fmt.Printf("scraping %v\n", site) + doc, err := goquery.NewDocument(site) + if err != nil { + log.Fatal(err) + } + var url string + doc.Find("a").Each(func(_ int, s *goquery.Selection) { + if url == "" && strings.HasPrefix(s.Text(), "sqlite-amalgamation-") { + url = "https://www.sqlite.org/2017/" + s.Text() + } + }) + if url == "" { + return + } + fmt.Printf("downloading %v\n", url) + resp, err := http.Get(url) + if err != nil { + log.Fatal(err) + } + + b, err := ioutil.ReadAll(resp.Body) + if err != nil { + resp.Body.Close() + log.Fatal(err) + } + + fmt.Printf("extracting %v\n", path.Base(url)) + r, err := zip.NewReader(bytes.NewReader(b), resp.ContentLength) + if err != nil { + resp.Body.Close() + log.Fatal(err) + } + resp.Body.Close() + + for _, zf := range r.File { + var f *os.File + switch path.Base(zf.Name) { + case "sqlite3.c": + f, err = os.Create("sqlite3-binding.c") + case "sqlite3.h": + f, err = os.Create("sqlite3-binding.h") + case "sqlite3ext.h": + f, err = os.Create("sqlite3ext.h") + default: + continue + } + if err != nil { + log.Fatal(err) + } + zr, err := zf.Open() + if err != nil { + log.Fatal(err) + } + + _, err = io.WriteString(f, "#ifndef USE_LIBSQLITE3\n") + if err != nil { + zr.Close() + f.Close() + log.Fatal(err) + } + scanner := bufio.NewScanner(zr) + for scanner.Scan() { + text := scanner.Text() + if text == `#include "sqlite3.h"` { + text = `#include "sqlite3-binding.h"` + } + _, err = fmt.Fprintln(f, text) + if err != nil { + break + } + } + err = scanner.Err() + if err != nil { + zr.Close() + f.Close() + log.Fatal(err) + } + _, err = io.WriteString(f, "#else // USE_LIBSQLITE3\n // If users really want to link against the system sqlite3 we\n// need to make this file a noop.\n #endif") + if err != nil { + zr.Close() + f.Close() + log.Fatal(err) + } + zr.Close() + f.Close() + fmt.Printf("extracted %v\n", filepath.Base(f.Name())) + } +} diff --git a/vendor/github.com/nsf/termbox-go/_demos/editbox.go b/vendor/github.com/nsf/termbox-go/_demos/editbox.go new file mode 100644 index 0000000..e429080 --- /dev/null +++ b/vendor/github.com/nsf/termbox-go/_demos/editbox.go @@ -0,0 +1,300 @@ +package main + +import ( + "github.com/mattn/go-runewidth" + "github.com/nsf/termbox-go" + "unicode/utf8" +) + +func tbprint(x, y int, fg, bg termbox.Attribute, msg string) { + for _, c := range msg { + termbox.SetCell(x, y, c, fg, bg) + x += runewidth.RuneWidth(c) + } +} + +func fill(x, y, w, h int, cell termbox.Cell) { + for ly := 0; ly < h; ly++ { + for lx := 0; lx < w; lx++ { + termbox.SetCell(x+lx, y+ly, cell.Ch, cell.Fg, cell.Bg) + } + } +} + +func rune_advance_len(r rune, pos int) int { + if r == '\t' { + return tabstop_length - pos%tabstop_length + } + return runewidth.RuneWidth(r) +} + +func voffset_coffset(text []byte, boffset int) (voffset, coffset int) { + text = text[:boffset] + for len(text) > 0 { + r, size := utf8.DecodeRune(text) + text = text[size:] + coffset += 1 + voffset += rune_advance_len(r, voffset) + } + return +} + +func byte_slice_grow(s []byte, desired_cap int) []byte { + if cap(s) < desired_cap { + ns := make([]byte, len(s), desired_cap) + copy(ns, s) + return ns + } + return s +} + +func byte_slice_remove(text []byte, from, to int) []byte { + size := to - from + copy(text[from:], text[to:]) + text = text[:len(text)-size] + return text +} + +func byte_slice_insert(text []byte, offset int, what []byte) []byte { + n := len(text) + len(what) + text = byte_slice_grow(text, n) + text = text[:n] + copy(text[offset+len(what):], text[offset:]) + copy(text[offset:], what) + return text +} + +const preferred_horizontal_threshold = 5 +const tabstop_length = 8 + +type EditBox struct { + text []byte + line_voffset int + cursor_boffset int // cursor offset in bytes + cursor_voffset int // visual cursor offset in termbox cells + cursor_coffset int // cursor offset in unicode code points +} + +// Draws the EditBox in the given location, 'h' is not used at the moment +func (eb *EditBox) Draw(x, y, w, h int) { + eb.AdjustVOffset(w) + + const coldef = termbox.ColorDefault + fill(x, y, w, h, termbox.Cell{Ch: ' '}) + + t := eb.text + lx := 0 + tabstop := 0 + for { + rx := lx - eb.line_voffset + if len(t) == 0 { + break + } + + if lx == tabstop { + tabstop += tabstop_length + } + + if rx >= w { + termbox.SetCell(x+w-1, y, '→', + coldef, coldef) + break + } + + r, size := utf8.DecodeRune(t) + if r == '\t' { + for ; lx < tabstop; lx++ { + rx = lx - eb.line_voffset + if rx >= w { + goto next + } + + if rx >= 0 { + termbox.SetCell(x+rx, y, ' ', coldef, coldef) + } + } + } else { + if rx >= 0 { + termbox.SetCell(x+rx, y, r, coldef, coldef) + } + lx += runewidth.RuneWidth(r) + } + next: + t = t[size:] + } + + if eb.line_voffset != 0 { + termbox.SetCell(x, y, '←', coldef, coldef) + } +} + +// Adjusts line visual offset to a proper value depending on width +func (eb *EditBox) AdjustVOffset(width int) { + ht := preferred_horizontal_threshold + max_h_threshold := (width - 1) / 2 + if ht > max_h_threshold { + ht = max_h_threshold + } + + threshold := width - 1 + if eb.line_voffset != 0 { + threshold = width - ht + } + if eb.cursor_voffset-eb.line_voffset >= threshold { + eb.line_voffset = eb.cursor_voffset + (ht - width + 1) + } + + if eb.line_voffset != 0 && eb.cursor_voffset-eb.line_voffset < ht { + eb.line_voffset = eb.cursor_voffset - ht + if eb.line_voffset < 0 { + eb.line_voffset = 0 + } + } +} + +func (eb *EditBox) MoveCursorTo(boffset int) { + eb.cursor_boffset = boffset + eb.cursor_voffset, eb.cursor_coffset = voffset_coffset(eb.text, boffset) +} + +func (eb *EditBox) RuneUnderCursor() (rune, int) { + return utf8.DecodeRune(eb.text[eb.cursor_boffset:]) +} + +func (eb *EditBox) RuneBeforeCursor() (rune, int) { + return utf8.DecodeLastRune(eb.text[:eb.cursor_boffset]) +} + +func (eb *EditBox) MoveCursorOneRuneBackward() { + if eb.cursor_boffset == 0 { + return + } + _, size := eb.RuneBeforeCursor() + eb.MoveCursorTo(eb.cursor_boffset - size) +} + +func (eb *EditBox) MoveCursorOneRuneForward() { + if eb.cursor_boffset == len(eb.text) { + return + } + _, size := eb.RuneUnderCursor() + eb.MoveCursorTo(eb.cursor_boffset + size) +} + +func (eb *EditBox) MoveCursorToBeginningOfTheLine() { + eb.MoveCursorTo(0) +} + +func (eb *EditBox) MoveCursorToEndOfTheLine() { + eb.MoveCursorTo(len(eb.text)) +} + +func (eb *EditBox) DeleteRuneBackward() { + if eb.cursor_boffset == 0 { + return + } + + eb.MoveCursorOneRuneBackward() + _, size := eb.RuneUnderCursor() + eb.text = byte_slice_remove(eb.text, eb.cursor_boffset, eb.cursor_boffset+size) +} + +func (eb *EditBox) DeleteRuneForward() { + if eb.cursor_boffset == len(eb.text) { + return + } + _, size := eb.RuneUnderCursor() + eb.text = byte_slice_remove(eb.text, eb.cursor_boffset, eb.cursor_boffset+size) +} + +func (eb *EditBox) DeleteTheRestOfTheLine() { + eb.text = eb.text[:eb.cursor_boffset] +} + +func (eb *EditBox) InsertRune(r rune) { + var buf [utf8.UTFMax]byte + n := utf8.EncodeRune(buf[:], r) + eb.text = byte_slice_insert(eb.text, eb.cursor_boffset, buf[:n]) + eb.MoveCursorOneRuneForward() +} + +// Please, keep in mind that cursor depends on the value of line_voffset, which +// is being set on Draw() call, so.. call this method after Draw() one. +func (eb *EditBox) CursorX() int { + return eb.cursor_voffset - eb.line_voffset +} + +var edit_box EditBox + +const edit_box_width = 30 + +func redraw_all() { + const coldef = termbox.ColorDefault + termbox.Clear(coldef, coldef) + w, h := termbox.Size() + + midy := h / 2 + midx := (w - edit_box_width) / 2 + + // unicode box drawing chars around the edit box + termbox.SetCell(midx-1, midy, '│', coldef, coldef) + termbox.SetCell(midx+edit_box_width, midy, '│', coldef, coldef) + termbox.SetCell(midx-1, midy-1, '┌', coldef, coldef) + termbox.SetCell(midx-1, midy+1, '└', coldef, coldef) + termbox.SetCell(midx+edit_box_width, midy-1, '┐', coldef, coldef) + termbox.SetCell(midx+edit_box_width, midy+1, '┘', coldef, coldef) + fill(midx, midy-1, edit_box_width, 1, termbox.Cell{Ch: '─'}) + fill(midx, midy+1, edit_box_width, 1, termbox.Cell{Ch: '─'}) + + edit_box.Draw(midx, midy, edit_box_width, 1) + termbox.SetCursor(midx+edit_box.CursorX(), midy) + + tbprint(midx+6, midy+3, coldef, coldef, "Press ESC to quit") + termbox.Flush() +} + +func main() { + err := termbox.Init() + if err != nil { + panic(err) + } + defer termbox.Close() + termbox.SetInputMode(termbox.InputEsc) + + redraw_all() +mainloop: + for { + switch ev := termbox.PollEvent(); ev.Type { + case termbox.EventKey: + switch ev.Key { + case termbox.KeyEsc: + break mainloop + case termbox.KeyArrowLeft, termbox.KeyCtrlB: + edit_box.MoveCursorOneRuneBackward() + case termbox.KeyArrowRight, termbox.KeyCtrlF: + edit_box.MoveCursorOneRuneForward() + case termbox.KeyBackspace, termbox.KeyBackspace2: + edit_box.DeleteRuneBackward() + case termbox.KeyDelete, termbox.KeyCtrlD: + edit_box.DeleteRuneForward() + case termbox.KeyTab: + edit_box.InsertRune('\t') + case termbox.KeySpace: + edit_box.InsertRune(' ') + case termbox.KeyCtrlK: + edit_box.DeleteTheRestOfTheLine() + case termbox.KeyHome, termbox.KeyCtrlA: + edit_box.MoveCursorToBeginningOfTheLine() + case termbox.KeyEnd, termbox.KeyCtrlE: + edit_box.MoveCursorToEndOfTheLine() + default: + if ev.Ch != 0 { + edit_box.InsertRune(ev.Ch) + } + } + case termbox.EventError: + panic(ev.Err) + } + redraw_all() + } +} diff --git a/vendor/github.com/nsf/termbox-go/_demos/interrupt.go b/vendor/github.com/nsf/termbox-go/_demos/interrupt.go new file mode 100644 index 0000000..5534521 --- /dev/null +++ b/vendor/github.com/nsf/termbox-go/_demos/interrupt.go @@ -0,0 +1,69 @@ +package main + +import ( + "fmt" + "github.com/nsf/termbox-go" + "time" +) + +func tbPrint(x, y int, fg, bg termbox.Attribute, msg string) { + for _, c := range msg { + termbox.SetCell(x, y, c, fg, bg) + x++ + } +} + +func draw(i int) { + termbox.Clear(termbox.ColorDefault, termbox.ColorDefault) + defer termbox.Flush() + + w, h := termbox.Size() + s := fmt.Sprintf("count = %d", i) + + tbPrint((w/2)-(len(s)/2), h/2, termbox.ColorRed, termbox.ColorDefault, s) +} + +func main() { + err := termbox.Init() + if err != nil { + panic(err) + } + termbox.SetInputMode(termbox.InputEsc) + + go func() { + time.Sleep(5 * time.Second) + termbox.Interrupt() + + // This should never run - the Interrupt(), above, should cause the event + // loop below to exit, which then exits the process. If something goes + // wrong, this panic will trigger and show what happened. + time.Sleep(1 * time.Second) + panic("this should never run") + }() + + var count int + + draw(count) +mainloop: + for { + switch ev := termbox.PollEvent(); ev.Type { + case termbox.EventKey: + if ev.Ch == '+' { + count++ + } else if ev.Ch == '-' { + count-- + } + + case termbox.EventError: + panic(ev.Err) + + case termbox.EventInterrupt: + break mainloop + } + + draw(count) + } + termbox.Close() + + fmt.Println("Finished") +} diff --git a/vendor/github.com/nsf/termbox-go/_demos/keyboard.go b/vendor/github.com/nsf/termbox-go/_demos/keyboard.go new file mode 100644 index 0000000..b6a258e --- /dev/null +++ b/vendor/github.com/nsf/termbox-go/_demos/keyboard.go @@ -0,0 +1,722 @@ +package main + +import "github.com/nsf/termbox-go" +import "fmt" + +type key struct { + x int + y int + ch rune +} + +var K_ESC = []key{{1, 1, 'E'}, {2, 1, 'S'}, {3, 1, 'C'}} +var K_F1 = []key{{6, 1, 'F'}, {7, 1, '1'}} +var K_F2 = []key{{9, 1, 'F'}, {10, 1, '2'}} +var K_F3 = []key{{12, 1, 'F'}, {13, 1, '3'}} +var K_F4 = []key{{15, 1, 'F'}, {16, 1, '4'}} +var K_F5 = []key{{19, 1, 'F'}, {20, 1, '5'}} +var K_F6 = []key{{22, 1, 'F'}, {23, 1, '6'}} +var K_F7 = []key{{25, 1, 'F'}, {26, 1, '7'}} +var K_F8 = []key{{28, 1, 'F'}, {29, 1, '8'}} +var K_F9 = []key{{33, 1, 'F'}, {34, 1, '9'}} +var K_F10 = []key{{36, 1, 'F'}, {37, 1, '1'}, {38, 1, '0'}} +var K_F11 = []key{{40, 1, 'F'}, {41, 1, '1'}, {42, 1, '1'}} +var K_F12 = []key{{44, 1, 'F'}, {45, 1, '1'}, {46, 1, '2'}} +var K_PRN = []key{{50, 1, 'P'}, {51, 1, 'R'}, {52, 1, 'N'}} +var K_SCR = []key{{54, 1, 'S'}, {55, 1, 'C'}, {56, 1, 'R'}} +var K_BRK = []key{{58, 1, 'B'}, {59, 1, 'R'}, {60, 1, 'K'}} +var K_LED1 = []key{{66, 1, '-'}} +var K_LED2 = []key{{70, 1, '-'}} +var K_LED3 = []key{{74, 1, '-'}} +var K_TILDE = []key{{1, 4, '`'}} +var K_TILDE_SHIFT = []key{{1, 4, '~'}} +var K_1 = []key{{4, 4, '1'}} +var K_1_SHIFT = []key{{4, 4, '!'}} +var K_2 = []key{{7, 4, '2'}} +var K_2_SHIFT = []key{{7, 4, '@'}} +var K_3 = []key{{10, 4, '3'}} +var K_3_SHIFT = []key{{10, 4, '#'}} +var K_4 = []key{{13, 4, '4'}} +var K_4_SHIFT = []key{{13, 4, '$'}} +var K_5 = []key{{16, 4, '5'}} +var K_5_SHIFT = []key{{16, 4, '%'}} +var K_6 = []key{{19, 4, '6'}} +var K_6_SHIFT = []key{{19, 4, '^'}} +var K_7 = []key{{22, 4, '7'}} +var K_7_SHIFT = []key{{22, 4, '&'}} +var K_8 = []key{{25, 4, '8'}} +var K_8_SHIFT = []key{{25, 4, '*'}} +var K_9 = []key{{28, 4, '9'}} +var K_9_SHIFT = []key{{28, 4, '('}} +var K_0 = []key{{31, 4, '0'}} +var K_0_SHIFT = []key{{31, 4, ')'}} +var K_MINUS = []key{{34, 4, '-'}} +var K_MINUS_SHIFT = []key{{34, 4, '_'}} +var K_EQUALS = []key{{37, 4, '='}} +var K_EQUALS_SHIFT = []key{{37, 4, '+'}} +var K_BACKSLASH = []key{{40, 4, '\\'}} +var K_BACKSLASH_SHIFT = []key{{40, 4, '|'}} +var K_BACKSPACE = []key{{44, 4, 0x2190}, {45, 4, 0x2500}, {46, 4, 0x2500}} +var K_INS = []key{{50, 4, 'I'}, {51, 4, 'N'}, {52, 4, 'S'}} +var K_HOM = []key{{54, 4, 'H'}, {55, 4, 'O'}, {56, 4, 'M'}} +var K_PGU = []key{{58, 4, 'P'}, {59, 4, 'G'}, {60, 4, 'U'}} +var K_K_NUMLOCK = []key{{65, 4, 'N'}} +var K_K_SLASH = []key{{68, 4, '/'}} +var K_K_STAR = []key{{71, 4, '*'}} +var K_K_MINUS = []key{{74, 4, '-'}} +var K_TAB = []key{{1, 6, 'T'}, {2, 6, 'A'}, {3, 6, 'B'}} +var K_q = []key{{6, 6, 'q'}} +var K_Q = []key{{6, 6, 'Q'}} +var K_w = []key{{9, 6, 'w'}} +var K_W = []key{{9, 6, 'W'}} +var K_e = []key{{12, 6, 'e'}} +var K_E = []key{{12, 6, 'E'}} +var K_r = []key{{15, 6, 'r'}} +var K_R = []key{{15, 6, 'R'}} +var K_t = []key{{18, 6, 't'}} +var K_T = []key{{18, 6, 'T'}} +var K_y = []key{{21, 6, 'y'}} +var K_Y = []key{{21, 6, 'Y'}} +var K_u = []key{{24, 6, 'u'}} +var K_U = []key{{24, 6, 'U'}} +var K_i = []key{{27, 6, 'i'}} +var K_I = []key{{27, 6, 'I'}} +var K_o = []key{{30, 6, 'o'}} +var K_O = []key{{30, 6, 'O'}} +var K_p = []key{{33, 6, 'p'}} +var K_P = []key{{33, 6, 'P'}} +var K_LSQB = []key{{36, 6, '['}} +var K_LCUB = []key{{36, 6, '{'}} +var K_RSQB = []key{{39, 6, ']'}} +var K_RCUB = []key{{39, 6, '}'}} +var K_ENTER = []key{ + {43, 6, 0x2591}, {44, 6, 0x2591}, {45, 6, 0x2591}, {46, 6, 0x2591}, + {43, 7, 0x2591}, {44, 7, 0x2591}, {45, 7, 0x21B5}, {46, 7, 0x2591}, + {41, 8, 0x2591}, {42, 8, 0x2591}, {43, 8, 0x2591}, {44, 8, 0x2591}, + {45, 8, 0x2591}, {46, 8, 0x2591}, +} +var K_DEL = []key{{50, 6, 'D'}, {51, 6, 'E'}, {52, 6, 'L'}} +var K_END = []key{{54, 6, 'E'}, {55, 6, 'N'}, {56, 6, 'D'}} +var K_PGD = []key{{58, 6, 'P'}, {59, 6, 'G'}, {60, 6, 'D'}} +var K_K_7 = []key{{65, 6, '7'}} +var K_K_8 = []key{{68, 6, '8'}} +var K_K_9 = []key{{71, 6, '9'}} +var K_K_PLUS = []key{{74, 6, ' '}, {74, 7, '+'}, {74, 8, ' '}} +var K_CAPS = []key{{1, 8, 'C'}, {2, 8, 'A'}, {3, 8, 'P'}, {4, 8, 'S'}} +var K_a = []key{{7, 8, 'a'}} +var K_A = []key{{7, 8, 'A'}} +var K_s = []key{{10, 8, 's'}} +var K_S = []key{{10, 8, 'S'}} +var K_d = []key{{13, 8, 'd'}} +var K_D = []key{{13, 8, 'D'}} +var K_f = []key{{16, 8, 'f'}} +var K_F = []key{{16, 8, 'F'}} +var K_g = []key{{19, 8, 'g'}} +var K_G = []key{{19, 8, 'G'}} +var K_h = []key{{22, 8, 'h'}} +var K_H = []key{{22, 8, 'H'}} +var K_j = []key{{25, 8, 'j'}} +var K_J = []key{{25, 8, 'J'}} +var K_k = []key{{28, 8, 'k'}} +var K_K = []key{{28, 8, 'K'}} +var K_l = []key{{31, 8, 'l'}} +var K_L = []key{{31, 8, 'L'}} +var K_SEMICOLON = []key{{34, 8, ';'}} +var K_PARENTHESIS = []key{{34, 8, ':'}} +var K_QUOTE = []key{{37, 8, '\''}} +var K_DOUBLEQUOTE = []key{{37, 8, '"'}} +var K_K_4 = []key{{65, 8, '4'}} +var K_K_5 = []key{{68, 8, '5'}} +var K_K_6 = []key{{71, 8, '6'}} +var K_LSHIFT = []key{{1, 10, 'S'}, {2, 10, 'H'}, {3, 10, 'I'}, {4, 10, 'F'}, {5, 10, 'T'}} +var K_z = []key{{9, 10, 'z'}} +var K_Z = []key{{9, 10, 'Z'}} +var K_x = []key{{12, 10, 'x'}} +var K_X = []key{{12, 10, 'X'}} +var K_c = []key{{15, 10, 'c'}} +var K_C = []key{{15, 10, 'C'}} +var K_v = []key{{18, 10, 'v'}} +var K_V = []key{{18, 10, 'V'}} +var K_b = []key{{21, 10, 'b'}} +var K_B = []key{{21, 10, 'B'}} +var K_n = []key{{24, 10, 'n'}} +var K_N = []key{{24, 10, 'N'}} +var K_m = []key{{27, 10, 'm'}} +var K_M = []key{{27, 10, 'M'}} +var K_COMMA = []key{{30, 10, ','}} +var K_LANB = []key{{30, 10, '<'}} +var K_PERIOD = []key{{33, 10, '.'}} +var K_RANB = []key{{33, 10, '>'}} +var K_SLASH = []key{{36, 10, '/'}} +var K_QUESTION = []key{{36, 10, '?'}} +var K_RSHIFT = []key{{42, 10, 'S'}, {43, 10, 'H'}, {44, 10, 'I'}, {45, 10, 'F'}, {46, 10, 'T'}} +var K_ARROW_UP = []key{{54, 10, '('}, {55, 10, 0x2191}, {56, 10, ')'}} +var K_K_1 = []key{{65, 10, '1'}} +var K_K_2 = []key{{68, 10, '2'}} +var K_K_3 = []key{{71, 10, '3'}} +var K_K_ENTER = []key{{74, 10, 0x2591}, {74, 11, 0x2591}, {74, 12, 0x2591}} +var K_LCTRL = []key{{1, 12, 'C'}, {2, 12, 'T'}, {3, 12, 'R'}, {4, 12, 'L'}} +var K_LWIN = []key{{6, 12, 'W'}, {7, 12, 'I'}, {8, 12, 'N'}} +var K_LALT = []key{{10, 12, 'A'}, {11, 12, 'L'}, {12, 12, 'T'}} +var K_SPACE = []key{ + {14, 12, ' '}, {15, 12, ' '}, {16, 12, ' '}, {17, 12, ' '}, {18, 12, ' '}, + {19, 12, 'S'}, {20, 12, 'P'}, {21, 12, 'A'}, {22, 12, 'C'}, {23, 12, 'E'}, + {24, 12, ' '}, {25, 12, ' '}, {26, 12, ' '}, {27, 12, ' '}, {28, 12, ' '}, +} +var K_RALT = []key{{30, 12, 'A'}, {31, 12, 'L'}, {32, 12, 'T'}} +var K_RWIN = []key{{34, 12, 'W'}, {35, 12, 'I'}, {36, 12, 'N'}} +var K_RPROP = []key{{38, 12, 'P'}, {39, 12, 'R'}, {40, 12, 'O'}, {41, 12, 'P'}} +var K_RCTRL = []key{{43, 12, 'C'}, {44, 12, 'T'}, {45, 12, 'R'}, {46, 12, 'L'}} +var K_ARROW_LEFT = []key{{50, 12, '('}, {51, 12, 0x2190}, {52, 12, ')'}} +var K_ARROW_DOWN = []key{{54, 12, '('}, {55, 12, 0x2193}, {56, 12, ')'}} +var K_ARROW_RIGHT = []key{{58, 12, '('}, {59, 12, 0x2192}, {60, 12, ')'}} +var K_K_0 = []key{{65, 12, ' '}, {66, 12, '0'}, {67, 12, ' '}, {68, 12, ' '}} +var K_K_PERIOD = []key{{71, 12, '.'}} + +type combo struct { + keys [][]key +} + +var combos = []combo{ + {[][]key{K_TILDE, K_2, K_SPACE, K_LCTRL, K_RCTRL}}, + {[][]key{K_A, K_LCTRL, K_RCTRL}}, + {[][]key{K_B, K_LCTRL, K_RCTRL}}, + {[][]key{K_C, K_LCTRL, K_RCTRL}}, + {[][]key{K_D, K_LCTRL, K_RCTRL}}, + {[][]key{K_E, K_LCTRL, K_RCTRL}}, + {[][]key{K_F, K_LCTRL, K_RCTRL}}, + {[][]key{K_G, K_LCTRL, K_RCTRL}}, + {[][]key{K_H, K_BACKSPACE, K_LCTRL, K_RCTRL}}, + {[][]key{K_I, K_TAB, K_LCTRL, K_RCTRL}}, + {[][]key{K_J, K_LCTRL, K_RCTRL}}, + {[][]key{K_K, K_LCTRL, K_RCTRL}}, + {[][]key{K_L, K_LCTRL, K_RCTRL}}, + {[][]key{K_M, K_ENTER, K_K_ENTER, K_LCTRL, K_RCTRL}}, + {[][]key{K_N, K_LCTRL, K_RCTRL}}, + {[][]key{K_O, K_LCTRL, K_RCTRL}}, + {[][]key{K_P, K_LCTRL, K_RCTRL}}, + {[][]key{K_Q, K_LCTRL, K_RCTRL}}, + {[][]key{K_R, K_LCTRL, K_RCTRL}}, + {[][]key{K_S, K_LCTRL, K_RCTRL}}, + {[][]key{K_T, K_LCTRL, K_RCTRL}}, + {[][]key{K_U, K_LCTRL, K_RCTRL}}, + {[][]key{K_V, K_LCTRL, K_RCTRL}}, + {[][]key{K_W, K_LCTRL, K_RCTRL}}, + {[][]key{K_X, K_LCTRL, K_RCTRL}}, + {[][]key{K_Y, K_LCTRL, K_RCTRL}}, + {[][]key{K_Z, K_LCTRL, K_RCTRL}}, + {[][]key{K_LSQB, K_ESC, K_3, K_LCTRL, K_RCTRL}}, + {[][]key{K_4, K_BACKSLASH, K_LCTRL, K_RCTRL}}, + {[][]key{K_RSQB, K_5, K_LCTRL, K_RCTRL}}, + {[][]key{K_6, K_LCTRL, K_RCTRL}}, + {[][]key{K_7, K_SLASH, K_MINUS_SHIFT, K_LCTRL, K_RCTRL}}, + {[][]key{K_SPACE}}, + {[][]key{K_1_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_DOUBLEQUOTE, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_3_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_4_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_5_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_7_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_QUOTE}}, + {[][]key{K_9_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_0_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_8_SHIFT, K_K_STAR, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_EQUALS_SHIFT, K_K_PLUS, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_COMMA}}, + {[][]key{K_MINUS, K_K_MINUS}}, + {[][]key{K_PERIOD, K_K_PERIOD}}, + {[][]key{K_SLASH, K_K_SLASH}}, + {[][]key{K_0, K_K_0}}, + {[][]key{K_1, K_K_1}}, + {[][]key{K_2, K_K_2}}, + {[][]key{K_3, K_K_3}}, + {[][]key{K_4, K_K_4}}, + {[][]key{K_5, K_K_5}}, + {[][]key{K_6, K_K_6}}, + {[][]key{K_7, K_K_7}}, + {[][]key{K_8, K_K_8}}, + {[][]key{K_9, K_K_9}}, + {[][]key{K_PARENTHESIS, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_SEMICOLON}}, + {[][]key{K_LANB, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_EQUALS}}, + {[][]key{K_RANB, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_QUESTION, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_2_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_A, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_B, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_C, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_D, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_E, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_F, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_G, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_H, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_I, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_J, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_K, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_L, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_M, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_N, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_O, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_P, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_Q, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_R, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_S, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_T, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_U, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_V, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_W, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_X, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_Y, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_Z, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_LSQB}}, + {[][]key{K_BACKSLASH}}, + {[][]key{K_RSQB}}, + {[][]key{K_6_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_MINUS_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_TILDE}}, + {[][]key{K_a}}, + {[][]key{K_b}}, + {[][]key{K_c}}, + {[][]key{K_d}}, + {[][]key{K_e}}, + {[][]key{K_f}}, + {[][]key{K_g}}, + {[][]key{K_h}}, + {[][]key{K_i}}, + {[][]key{K_j}}, + {[][]key{K_k}}, + {[][]key{K_l}}, + {[][]key{K_m}}, + {[][]key{K_n}}, + {[][]key{K_o}}, + {[][]key{K_p}}, + {[][]key{K_q}}, + {[][]key{K_r}}, + {[][]key{K_s}}, + {[][]key{K_t}}, + {[][]key{K_u}}, + {[][]key{K_v}}, + {[][]key{K_w}}, + {[][]key{K_x}}, + {[][]key{K_y}}, + {[][]key{K_z}}, + {[][]key{K_LCUB, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_BACKSLASH_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_RCUB, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_TILDE_SHIFT, K_LSHIFT, K_RSHIFT}}, + {[][]key{K_8, K_BACKSPACE, K_LCTRL, K_RCTRL}}, +} + +var func_combos = []combo{ + {[][]key{K_F1}}, + {[][]key{K_F2}}, + {[][]key{K_F3}}, + {[][]key{K_F4}}, + {[][]key{K_F5}}, + {[][]key{K_F6}}, + {[][]key{K_F7}}, + {[][]key{K_F8}}, + {[][]key{K_F9}}, + {[][]key{K_F10}}, + {[][]key{K_F11}}, + {[][]key{K_F12}}, + {[][]key{K_INS}}, + {[][]key{K_DEL}}, + {[][]key{K_HOM}}, + {[][]key{K_END}}, + {[][]key{K_PGU}}, + {[][]key{K_PGD}}, + {[][]key{K_ARROW_UP}}, + {[][]key{K_ARROW_DOWN}}, + {[][]key{K_ARROW_LEFT}}, + {[][]key{K_ARROW_RIGHT}}, +} + +func print_tb(x, y int, fg, bg termbox.Attribute, msg string) { + for _, c := range msg { + termbox.SetCell(x, y, c, fg, bg) + x++ + } +} + +func printf_tb(x, y int, fg, bg termbox.Attribute, format string, args ...interface{}) { + s := fmt.Sprintf(format, args...) + print_tb(x, y, fg, bg, s) +} + +func draw_key(k []key, fg, bg termbox.Attribute) { + for _, k := range k { + termbox.SetCell(k.x+2, k.y+4, k.ch, fg, bg) + } +} + +func draw_keyboard() { + termbox.SetCell(0, 0, 0x250C, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(79, 0, 0x2510, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(0, 23, 0x2514, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(79, 23, 0x2518, termbox.ColorWhite, termbox.ColorBlack) + + for i := 1; i < 79; i++ { + termbox.SetCell(i, 0, 0x2500, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(i, 23, 0x2500, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(i, 17, 0x2500, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(i, 4, 0x2500, termbox.ColorWhite, termbox.ColorBlack) + } + for i := 1; i < 23; i++ { + termbox.SetCell(0, i, 0x2502, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(79, i, 0x2502, termbox.ColorWhite, termbox.ColorBlack) + } + termbox.SetCell(0, 17, 0x251C, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(79, 17, 0x2524, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(0, 4, 0x251C, termbox.ColorWhite, termbox.ColorBlack) + termbox.SetCell(79, 4, 0x2524, termbox.ColorWhite, termbox.ColorBlack) + for i := 5; i < 17; i++ { + termbox.SetCell(1, i, 0x2588, termbox.ColorYellow, termbox.ColorYellow) + termbox.SetCell(78, i, 0x2588, termbox.ColorYellow, termbox.ColorYellow) + } + + draw_key(K_ESC, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F1, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F2, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F3, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F4, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F5, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F6, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F7, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F8, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F9, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F10, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F11, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_F12, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_PRN, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_SCR, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_BRK, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_LED1, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_LED2, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_LED3, termbox.ColorWhite, termbox.ColorBlue) + + draw_key(K_TILDE, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_1, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_2, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_3, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_4, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_5, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_6, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_7, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_8, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_9, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_0, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_MINUS, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_EQUALS, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_BACKSLASH, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_BACKSPACE, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_INS, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_HOM, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_PGU, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_NUMLOCK, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_SLASH, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_STAR, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_MINUS, termbox.ColorWhite, termbox.ColorBlue) + + draw_key(K_TAB, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_q, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_w, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_e, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_r, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_t, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_y, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_u, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_i, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_o, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_p, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_LSQB, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_RSQB, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_ENTER, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_DEL, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_END, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_PGD, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_7, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_8, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_9, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_PLUS, termbox.ColorWhite, termbox.ColorBlue) + + draw_key(K_CAPS, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_a, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_s, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_d, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_f, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_g, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_h, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_j, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_k, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_l, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_SEMICOLON, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_QUOTE, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_4, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_5, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_6, termbox.ColorWhite, termbox.ColorBlue) + + draw_key(K_LSHIFT, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_z, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_x, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_c, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_v, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_b, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_n, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_m, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_COMMA, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_PERIOD, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_SLASH, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_RSHIFT, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_ARROW_UP, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_1, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_2, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_3, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_ENTER, termbox.ColorWhite, termbox.ColorBlue) + + draw_key(K_LCTRL, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_LWIN, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_LALT, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_SPACE, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_RCTRL, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_RPROP, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_RWIN, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_RALT, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_ARROW_LEFT, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_ARROW_DOWN, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_ARROW_RIGHT, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_0, termbox.ColorWhite, termbox.ColorBlue) + draw_key(K_K_PERIOD, termbox.ColorWhite, termbox.ColorBlue) + + printf_tb(33, 1, termbox.ColorMagenta|termbox.AttrBold, termbox.ColorBlack, "Keyboard demo!") + printf_tb(21, 2, termbox.ColorMagenta, termbox.ColorBlack, "(press CTRL+X and then CTRL+Q to exit)") + printf_tb(15, 3, termbox.ColorMagenta, termbox.ColorBlack, "(press CTRL+X and then CTRL+C to change input mode)") + + inputmode := termbox.SetInputMode(termbox.InputCurrent) + inputmode_str := "" + switch { + case inputmode&termbox.InputEsc != 0: + inputmode_str = "termbox.InputEsc" + case inputmode&termbox.InputAlt != 0: + inputmode_str = "termbox.InputAlt" + } + + if inputmode&termbox.InputMouse != 0 { + inputmode_str += " | termbox.InputMouse" + } + printf_tb(3, 18, termbox.ColorWhite, termbox.ColorBlack, "Input mode: %s", inputmode_str) +} + +var fcmap = []string{ + "CTRL+2, CTRL+~", + "CTRL+A", + "CTRL+B", + "CTRL+C", + "CTRL+D", + "CTRL+E", + "CTRL+F", + "CTRL+G", + "CTRL+H, BACKSPACE", + "CTRL+I, TAB", + "CTRL+J", + "CTRL+K", + "CTRL+L", + "CTRL+M, ENTER", + "CTRL+N", + "CTRL+O", + "CTRL+P", + "CTRL+Q", + "CTRL+R", + "CTRL+S", + "CTRL+T", + "CTRL+U", + "CTRL+V", + "CTRL+W", + "CTRL+X", + "CTRL+Y", + "CTRL+Z", + "CTRL+3, ESC, CTRL+[", + "CTRL+4, CTRL+\\", + "CTRL+5, CTRL+]", + "CTRL+6", + "CTRL+7, CTRL+/, CTRL+_", + "SPACE", +} + +var fkmap = []string{ + "F1", + "F2", + "F3", + "F4", + "F5", + "F6", + "F7", + "F8", + "F9", + "F10", + "F11", + "F12", + "INSERT", + "DELETE", + "HOME", + "END", + "PGUP", + "PGDN", + "ARROW UP", + "ARROW DOWN", + "ARROW LEFT", + "ARROW RIGHT", +} + +func funckeymap(k termbox.Key) string { + if k == termbox.KeyCtrl8 { + return "CTRL+8, BACKSPACE 2" /* 0x7F */ + } else if k >= termbox.KeyArrowRight && k <= 0xFFFF { + return fkmap[0xFFFF-k] + } else if k <= termbox.KeySpace { + return fcmap[k] + } + return "UNKNOWN" +} + +func pretty_print_press(ev *termbox.Event) { + printf_tb(3, 19, termbox.ColorWhite, termbox.ColorBlack, "Key: ") + printf_tb(8, 19, termbox.ColorYellow, termbox.ColorBlack, "decimal: %d", ev.Key) + printf_tb(8, 20, termbox.ColorGreen, termbox.ColorBlack, "hex: 0x%X", ev.Key) + printf_tb(8, 21, termbox.ColorCyan, termbox.ColorBlack, "octal: 0%o", ev.Key) + printf_tb(8, 22, termbox.ColorRed, termbox.ColorBlack, "string: %s", funckeymap(ev.Key)) + + printf_tb(54, 19, termbox.ColorWhite, termbox.ColorBlack, "Char: ") + printf_tb(60, 19, termbox.ColorYellow, termbox.ColorBlack, "decimal: %d", ev.Ch) + printf_tb(60, 20, termbox.ColorGreen, termbox.ColorBlack, "hex: 0x%X", ev.Ch) + printf_tb(60, 21, termbox.ColorCyan, termbox.ColorBlack, "octal: 0%o", ev.Ch) + printf_tb(60, 22, termbox.ColorRed, termbox.ColorBlack, "string: %s", string(ev.Ch)) + + modifier := "none" + if ev.Mod != 0 { + modifier = "termbox.ModAlt" + } + printf_tb(54, 18, termbox.ColorWhite, termbox.ColorBlack, "Modifier: %s", modifier) +} + +func pretty_print_resize(ev *termbox.Event) { + printf_tb(3, 19, termbox.ColorWhite, termbox.ColorBlack, "Resize event: %d x %d", ev.Width, ev.Height) +} + +var counter = 0 + +func pretty_print_mouse(ev *termbox.Event) { + printf_tb(3, 19, termbox.ColorWhite, termbox.ColorBlack, "Mouse event: %d x %d", ev.MouseX, ev.MouseY) + button := "" + switch ev.Key { + case termbox.MouseLeft: + button = "MouseLeft: %d" + case termbox.MouseMiddle: + button = "MouseMiddle: %d" + case termbox.MouseRight: + button = "MouseRight: %d" + case termbox.MouseWheelUp: + button = "MouseWheelUp: %d" + case termbox.MouseWheelDown: + button = "MouseWheelDown: %d" + case termbox.MouseRelease: + button = "MouseRelease: %d" + } + if ev.Mod&termbox.ModMotion != 0 { + button += "*" + } + counter++ + printf_tb(43, 19, termbox.ColorWhite, termbox.ColorBlack, "Key: ") + printf_tb(48, 19, termbox.ColorYellow, termbox.ColorBlack, button, counter) +} + +func dispatch_press(ev *termbox.Event) { + if ev.Mod&termbox.ModAlt != 0 { + draw_key(K_LALT, termbox.ColorWhite, termbox.ColorRed) + draw_key(K_RALT, termbox.ColorWhite, termbox.ColorRed) + } + + var k *combo + if ev.Key >= termbox.KeyArrowRight { + k = &func_combos[0xFFFF-ev.Key] + } else if ev.Ch < 128 { + if ev.Ch == 0 && ev.Key < 128 { + k = &combos[ev.Key] + } else { + k = &combos[ev.Ch] + } + } + if k == nil { + return + } + + keys := k.keys + for _, k := range keys { + draw_key(k, termbox.ColorWhite, termbox.ColorRed) + } +} + +func main() { + err := termbox.Init() + if err != nil { + panic(err) + } + defer termbox.Close() + + termbox.SetInputMode(termbox.InputEsc | termbox.InputMouse) + + termbox.Clear(termbox.ColorDefault, termbox.ColorDefault) + draw_keyboard() + termbox.Flush() + inputmode := 0 + ctrlxpressed := false +loop: + for { + switch ev := termbox.PollEvent(); ev.Type { + case termbox.EventKey: + if ev.Key == termbox.KeyCtrlS && ctrlxpressed { + termbox.Sync() + } + if ev.Key == termbox.KeyCtrlQ && ctrlxpressed { + break loop + } + if ev.Key == termbox.KeyCtrlC && ctrlxpressed { + chmap := []termbox.InputMode{ + termbox.InputEsc | termbox.InputMouse, + termbox.InputAlt | termbox.InputMouse, + termbox.InputEsc, + termbox.InputAlt, + } + inputmode++ + if inputmode >= len(chmap) { + inputmode = 0 + } + termbox.SetInputMode(chmap[inputmode]) + } + if ev.Key == termbox.KeyCtrlX { + ctrlxpressed = true + } else { + ctrlxpressed = false + } + + termbox.Clear(termbox.ColorDefault, termbox.ColorDefault) + draw_keyboard() + dispatch_press(&ev) + pretty_print_press(&ev) + termbox.Flush() + case termbox.EventResize: + termbox.Clear(termbox.ColorDefault, termbox.ColorDefault) + draw_keyboard() + pretty_print_resize(&ev) + termbox.Flush() + case termbox.EventMouse: + termbox.Clear(termbox.ColorDefault, termbox.ColorDefault) + draw_keyboard() + pretty_print_mouse(&ev) + termbox.Flush() + case termbox.EventError: + panic(ev.Err) + } + } +} diff --git a/vendor/github.com/nsf/termbox-go/_demos/output.go b/vendor/github.com/nsf/termbox-go/_demos/output.go new file mode 100644 index 0000000..2b9479b --- /dev/null +++ b/vendor/github.com/nsf/termbox-go/_demos/output.go @@ -0,0 +1,228 @@ +package main + +import "github.com/mattn/go-runewidth" +import "github.com/nsf/termbox-go" + +const chars = "nnnnnnnnnbbbbbbbbbuuuuuuuuuBBBBBBBBB" + +var output_mode = termbox.OutputNormal + +func next_char(current int) int { + current++ + if current >= len(chars) { + return 0 + } + return current +} + +func print_combinations_table(sx, sy int, attrs []termbox.Attribute) { + var bg termbox.Attribute + current_char := 0 + y := sy + + all_attrs := []termbox.Attribute{ + 0, + termbox.AttrBold, + termbox.AttrUnderline, + termbox.AttrBold | termbox.AttrUnderline, + } + + draw_line := func() { + x := sx + for _, a := range all_attrs { + for c := termbox.ColorDefault; c <= termbox.ColorWhite; c++ { + fg := a | c + termbox.SetCell(x, y, rune(chars[current_char]), fg, bg) + current_char = next_char(current_char) + x++ + } + } + } + + for _, a := range attrs { + for c := termbox.ColorDefault; c <= termbox.ColorWhite; c++ { + bg = a | c + draw_line() + y++ + } + } +} + +func print_wide(x, y int, s string) { + red := false + for _, r := range s { + c := termbox.ColorDefault + if red { + c = termbox.ColorRed + } + termbox.SetCell(x, y, r, termbox.ColorDefault, c) + w := runewidth.RuneWidth(r) + if w == 0 || (w == 2 && runewidth.IsAmbiguousWidth(r)) { + w = 1 + } + x += w + + red = !red + } +} + +const hello_world = "こんにちは世界" + +func draw_all() { + termbox.Clear(termbox.ColorDefault, termbox.ColorDefault) + + switch output_mode { + + case termbox.OutputNormal: + print_combinations_table(1, 1, []termbox.Attribute{ + 0, + termbox.AttrBold, + }) + print_combinations_table(2+len(chars), 1, []termbox.Attribute{ + termbox.AttrReverse, + }) + print_wide(2+len(chars), 11, hello_world) + + case termbox.OutputGrayscale: + for y := 0; y < 26; y++ { + for x := 0; x < 26; x++ { + termbox.SetCell(x, y, 'n', + termbox.Attribute(x+1), + termbox.Attribute(y+1)) + termbox.SetCell(x+27, y, 'b', + termbox.Attribute(x+1)|termbox.AttrBold, + termbox.Attribute(26-y)) + termbox.SetCell(x+54, y, 'u', + termbox.Attribute(x+1)|termbox.AttrUnderline, + termbox.Attribute(y+1)) + } + termbox.SetCell(82, y, 'd', + termbox.Attribute(y+1), + termbox.ColorDefault) + termbox.SetCell(83, y, 'd', + termbox.ColorDefault, + termbox.Attribute(26-y)) + } + + case termbox.Output216: + for r := 0; r < 6; r++ { + for g := 0; g < 6; g++ { + for b := 0; b < 6; b++ { + y := r + x := g + 6*b + c1 := termbox.Attribute(1 + r*36 + g*6 + b) + bg := termbox.Attribute(1 + g*36 + b*6 + r) + c2 := termbox.Attribute(1 + b*36 + r*6 + g) + bc1 := c1 | termbox.AttrBold + uc1 := c1 | termbox.AttrUnderline + bc2 := c2 | termbox.AttrBold + uc2 := c2 | termbox.AttrUnderline + termbox.SetCell(x, y, 'n', c1, bg) + termbox.SetCell(x, y+6, 'b', bc1, bg) + termbox.SetCell(x, y+12, 'u', uc1, bg) + termbox.SetCell(x, y+18, 'B', bc1|uc1, bg) + termbox.SetCell(x+37, y, 'n', c2, bg) + termbox.SetCell(x+37, y+6, 'b', bc2, bg) + termbox.SetCell(x+37, y+12, 'u', uc2, bg) + termbox.SetCell(x+37, y+18, 'B', bc2|uc2, bg) + } + c1 := termbox.Attribute(1 + g*6 + r*36) + c2 := termbox.Attribute(6 + g*6 + r*36) + termbox.SetCell(74+g, r, 'd', c1, termbox.ColorDefault) + termbox.SetCell(74+g, r+6, 'd', c2, termbox.ColorDefault) + termbox.SetCell(74+g, r+12, 'd', termbox.ColorDefault, c1) + termbox.SetCell(74+g, r+18, 'd', termbox.ColorDefault, c2) + } + } + + case termbox.Output256: + for y := 0; y < 4; y++ { + for x := 0; x < 8; x++ { + for z := 0; z < 8; z++ { + bg := termbox.Attribute(1 + y*64 + x*8 + z) + c1 := termbox.Attribute(256 - y*64 - x*8 - z) + c2 := termbox.Attribute(1 + y*64 + z*8 + x) + c3 := termbox.Attribute(256 - y*64 - z*8 - x) + c4 := termbox.Attribute(1 + y*64 + x*4 + z*4) + bold := c2 | termbox.AttrBold + under := c3 | termbox.AttrUnderline + both := c1 | termbox.AttrBold | termbox.AttrUnderline + termbox.SetCell(z+8*x, y, ' ', 0, bg) + termbox.SetCell(z+8*x, y+5, 'n', c4, bg) + termbox.SetCell(z+8*x, y+10, 'b', bold, bg) + termbox.SetCell(z+8*x, y+15, 'u', under, bg) + termbox.SetCell(z+8*x, y+20, 'B', both, bg) + } + } + } + for x := 0; x < 12; x++ { + for y := 0; y < 2; y++ { + c1 := termbox.Attribute(233 + y*12 + x) + termbox.SetCell(66+x, y, 'd', c1, termbox.ColorDefault) + termbox.SetCell(66+x, 2+y, 'd', termbox.ColorDefault, c1) + } + } + for x := 0; x < 6; x++ { + for y := 0; y < 6; y++ { + c1 := termbox.Attribute(17 + x*6 + y*36) + c2 := termbox.Attribute(17 + 5 + x*6 + y*36) + termbox.SetCell(66+x, 6+y, 'd', c1, termbox.ColorDefault) + termbox.SetCell(66+x, 12+y, 'd', c2, termbox.ColorDefault) + termbox.SetCell(72+x, 6+y, 'd', termbox.ColorDefault, c1) + termbox.SetCell(72+x, 12+y, 'd', termbox.ColorDefault, c2) + } + } + + } + + termbox.Flush() +} + +var available_modes = []termbox.OutputMode{ + termbox.OutputNormal, + termbox.OutputGrayscale, + termbox.Output216, + termbox.Output256, +} + +var output_mode_index = 0 + +func switch_output_mode(direction int) { + output_mode_index += direction + if output_mode_index < 0 { + output_mode_index = len(available_modes) - 1 + } else if output_mode_index >= len(available_modes) { + output_mode_index = 0 + } + output_mode = termbox.SetOutputMode(available_modes[output_mode_index]) + termbox.Clear(termbox.ColorDefault, termbox.ColorDefault) + termbox.Sync() +} + +func main() { + err := termbox.Init() + if err != nil { + panic(err) + } + defer termbox.Close() + + draw_all() +loop: + for { + switch ev := termbox.PollEvent(); ev.Type { + case termbox.EventKey: + switch ev.Key { + case termbox.KeyEsc: + break loop + case termbox.KeyArrowUp, termbox.KeyArrowRight: + switch_output_mode(1) + draw_all() + case termbox.KeyArrowDown, termbox.KeyArrowLeft: + switch_output_mode(-1) + draw_all() + } + case termbox.EventResize: + draw_all() + } + } +} diff --git a/vendor/github.com/nsf/termbox-go/_demos/paint.go b/vendor/github.com/nsf/termbox-go/_demos/paint.go new file mode 100644 index 0000000..fbafd18 --- /dev/null +++ b/vendor/github.com/nsf/termbox-go/_demos/paint.go @@ -0,0 +1,105 @@ +package main + +import ( + "github.com/nsf/termbox-go" +) + +var curCol = 0 +var curRune = 0 +var backbuf []termbox.Cell +var bbw, bbh int + +var runes = []rune{' ', '░', '▒', '▓', '█'} +var colors = []termbox.Attribute{ + termbox.ColorBlack, + termbox.ColorRed, + termbox.ColorGreen, + termbox.ColorYellow, + termbox.ColorBlue, + termbox.ColorMagenta, + termbox.ColorCyan, + termbox.ColorWhite, +} + +type attrFunc func(int) (rune, termbox.Attribute, termbox.Attribute) + +func updateAndDrawButtons(current *int, x, y int, mx, my int, n int, attrf attrFunc) { + lx, ly := x, y + for i := 0; i < n; i++ { + if lx <= mx && mx <= lx+3 && ly <= my && my <= ly+1 { + *current = i + } + r, fg, bg := attrf(i) + termbox.SetCell(lx+0, ly+0, r, fg, bg) + termbox.SetCell(lx+1, ly+0, r, fg, bg) + termbox.SetCell(lx+2, ly+0, r, fg, bg) + termbox.SetCell(lx+3, ly+0, r, fg, bg) + termbox.SetCell(lx+0, ly+1, r, fg, bg) + termbox.SetCell(lx+1, ly+1, r, fg, bg) + termbox.SetCell(lx+2, ly+1, r, fg, bg) + termbox.SetCell(lx+3, ly+1, r, fg, bg) + lx += 4 + } + lx, ly = x, y + for i := 0; i < n; i++ { + if *current == i { + fg := termbox.ColorRed | termbox.AttrBold + bg := termbox.ColorDefault + termbox.SetCell(lx+0, ly+2, '^', fg, bg) + termbox.SetCell(lx+1, ly+2, '^', fg, bg) + termbox.SetCell(lx+2, ly+2, '^', fg, bg) + termbox.SetCell(lx+3, ly+2, '^', fg, bg) + } + lx += 4 + } +} + +func update_and_redraw_all(mx, my int) { + termbox.Clear(termbox.ColorDefault, termbox.ColorDefault) + if mx != -1 && my != -1 { + backbuf[bbw*my+mx] = termbox.Cell{Ch: runes[curRune], Fg: colors[curCol]} + } + copy(termbox.CellBuffer(), backbuf) + _, h := termbox.Size() + updateAndDrawButtons(&curRune, 0, 0, mx, my, len(runes), func(i int) (rune, termbox.Attribute, termbox.Attribute) { + return runes[i], termbox.ColorDefault, termbox.ColorDefault + }) + updateAndDrawButtons(&curCol, 0, h-3, mx, my, len(colors), func(i int) (rune, termbox.Attribute, termbox.Attribute) { + return ' ', termbox.ColorDefault, colors[i] + }) + termbox.Flush() +} + +func reallocBackBuffer(w, h int) { + bbw, bbh = w, h + backbuf = make([]termbox.Cell, w*h) +} + +func main() { + err := termbox.Init() + if err != nil { + panic(err) + } + defer termbox.Close() + termbox.SetInputMode(termbox.InputEsc | termbox.InputMouse) + reallocBackBuffer(termbox.Size()) + update_and_redraw_all(-1, -1) + +mainloop: + for { + mx, my := -1, -1 + switch ev := termbox.PollEvent(); ev.Type { + case termbox.EventKey: + if ev.Key == termbox.KeyEsc { + break mainloop + } + case termbox.EventMouse: + if ev.Key == termbox.MouseLeft { + mx, my = ev.MouseX, ev.MouseY + } + case termbox.EventResize: + reallocBackBuffer(ev.Width, ev.Height) + } + update_and_redraw_all(mx, my) + } +} diff --git a/vendor/github.com/nsf/termbox-go/_demos/random_output.go b/vendor/github.com/nsf/termbox-go/_demos/random_output.go new file mode 100644 index 0000000..efcf0b7 --- /dev/null +++ b/vendor/github.com/nsf/termbox-go/_demos/random_output.go @@ -0,0 +1,46 @@ +package main + +import "github.com/nsf/termbox-go" +import "math/rand" +import "time" + +func draw() { + w, h := termbox.Size() + termbox.Clear(termbox.ColorDefault, termbox.ColorDefault) + for y := 0; y < h; y++ { + for x := 0; x < w; x++ { + termbox.SetCell(x, y, ' ', termbox.ColorDefault, + termbox.Attribute(rand.Int()%8)+1) + } + } + termbox.Flush() +} + +func main() { + err := termbox.Init() + if err != nil { + panic(err) + } + defer termbox.Close() + + event_queue := make(chan termbox.Event) + go func() { + for { + event_queue <- termbox.PollEvent() + } + }() + + draw() +loop: + for { + select { + case ev := <-event_queue: + if ev.Type == termbox.EventKey && ev.Key == termbox.KeyEsc { + break loop + } + default: + draw() + time.Sleep(10 * time.Millisecond) + } + } +} diff --git a/vendor/github.com/nsf/termbox-go/_demos/raw_input.go b/vendor/github.com/nsf/termbox-go/_demos/raw_input.go new file mode 100644 index 0000000..97a4897 --- /dev/null +++ b/vendor/github.com/nsf/termbox-go/_demos/raw_input.go @@ -0,0 +1,109 @@ +package main + +import ( + "fmt" + "github.com/nsf/termbox-go" + "strings" +) + +func tbprint(x, y int, fg, bg termbox.Attribute, msg string) { + for _, c := range msg { + termbox.SetCell(x, y, c, fg, bg) + x++ + } +} + +var current string +var curev termbox.Event + +func mouse_button_str(k termbox.Key) string { + switch k { + case termbox.MouseLeft: + return "MouseLeft" + case termbox.MouseMiddle: + return "MouseMiddle" + case termbox.MouseRight: + return "MouseRight" + case termbox.MouseRelease: + return "MouseRelease" + case termbox.MouseWheelUp: + return "MouseWheelUp" + case termbox.MouseWheelDown: + return "MouseWheelDown" + } + return "Key" +} + +func mod_str(m termbox.Modifier) string { + var out []string + if m&termbox.ModAlt != 0 { + out = append(out, "ModAlt") + } + if m&termbox.ModMotion != 0 { + out = append(out, "ModMotion") + } + return strings.Join(out, " | ") +} + +func redraw_all() { + const coldef = termbox.ColorDefault + termbox.Clear(coldef, coldef) + tbprint(0, 0, termbox.ColorMagenta, coldef, "Press 'q' to quit") + tbprint(0, 1, coldef, coldef, current) + switch curev.Type { + case termbox.EventKey: + tbprint(0, 2, coldef, coldef, + fmt.Sprintf("EventKey: k: %d, c: %c, mod: %s", curev.Key, curev.Ch, mod_str(curev.Mod))) + case termbox.EventMouse: + tbprint(0, 2, coldef, coldef, + fmt.Sprintf("EventMouse: x: %d, y: %d, b: %s, mod: %s", + curev.MouseX, curev.MouseY, mouse_button_str(curev.Key), mod_str(curev.Mod))) + case termbox.EventNone: + tbprint(0, 2, coldef, coldef, "EventNone") + } + tbprint(0, 3, coldef, coldef, fmt.Sprintf("%d", curev.N)) + termbox.Flush() +} + +func main() { + err := termbox.Init() + if err != nil { + panic(err) + } + defer termbox.Close() + termbox.SetInputMode(termbox.InputAlt | termbox.InputMouse) + redraw_all() + + data := make([]byte, 0, 64) +mainloop: + for { + if cap(data)-len(data) < 32 { + newdata := make([]byte, len(data), len(data)+32) + copy(newdata, data) + data = newdata + } + beg := len(data) + d := data[beg : beg+32] + switch ev := termbox.PollRawEvent(d); ev.Type { + case termbox.EventRaw: + data = data[:beg+ev.N] + current = fmt.Sprintf("%q", data) + if current == `"q"` { + break mainloop + } + + for { + ev := termbox.ParseEvent(data) + if ev.N == 0 { + break + } + curev = ev + copy(data, data[curev.N:]) + data = data[:len(data)-curev.N] + } + case termbox.EventError: + panic(ev.Err) + } + redraw_all() + } +} diff --git a/vendor/golang.org/x/sys/plan9/asm.s b/vendor/golang.org/x/sys/plan9/asm.s new file mode 100644 index 0000000..06449eb --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/asm.s @@ -0,0 +1,8 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +TEXT ·use(SB),NOSPLIT,$0 + RET diff --git a/vendor/golang.org/x/sys/plan9/asm_plan9_386.s b/vendor/golang.org/x/sys/plan9/asm_plan9_386.s new file mode 100644 index 0000000..bc5cab1 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/asm_plan9_386.s @@ -0,0 +1,30 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +// +// System call support for 386, Plan 9 +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-32 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-44 + JMP syscall·Syscall6(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) + +TEXT ·seek(SB),NOSPLIT,$0-36 + JMP syscall·seek(SB) + +TEXT ·exit(SB),NOSPLIT,$4-4 + JMP syscall·exit(SB) diff --git a/vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s b/vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s new file mode 100644 index 0000000..d3448e6 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/asm_plan9_amd64.s @@ -0,0 +1,30 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "textflag.h" + +// +// System call support for amd64, Plan 9 +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-64 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-88 + JMP syscall·Syscall6(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·seek(SB),NOSPLIT,$0-56 + JMP syscall·seek(SB) + +TEXT ·exit(SB),NOSPLIT,$8-8 + JMP syscall·exit(SB) diff --git a/vendor/golang.org/x/sys/plan9/const_plan9.go b/vendor/golang.org/x/sys/plan9/const_plan9.go new file mode 100644 index 0000000..b4e85a3 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/const_plan9.go @@ -0,0 +1,70 @@ +package plan9 + +// Plan 9 Constants + +// Open modes +const ( + O_RDONLY = 0 + O_WRONLY = 1 + O_RDWR = 2 + O_TRUNC = 16 + O_CLOEXEC = 32 + O_EXCL = 0x1000 +) + +// Rfork flags +const ( + RFNAMEG = 1 << 0 + RFENVG = 1 << 1 + RFFDG = 1 << 2 + RFNOTEG = 1 << 3 + RFPROC = 1 << 4 + RFMEM = 1 << 5 + RFNOWAIT = 1 << 6 + RFCNAMEG = 1 << 10 + RFCENVG = 1 << 11 + RFCFDG = 1 << 12 + RFREND = 1 << 13 + RFNOMNT = 1 << 14 +) + +// Qid.Type bits +const ( + QTDIR = 0x80 + QTAPPEND = 0x40 + QTEXCL = 0x20 + QTMOUNT = 0x10 + QTAUTH = 0x08 + QTTMP = 0x04 + QTFILE = 0x00 +) + +// Dir.Mode bits +const ( + DMDIR = 0x80000000 + DMAPPEND = 0x40000000 + DMEXCL = 0x20000000 + DMMOUNT = 0x10000000 + DMAUTH = 0x08000000 + DMTMP = 0x04000000 + DMREAD = 0x4 + DMWRITE = 0x2 + DMEXEC = 0x1 +) + +const ( + STATMAX = 65535 + ERRMAX = 128 + STATFIXLEN = 49 +) + +// Mount and bind flags +const ( + MREPL = 0x0000 + MBEFORE = 0x0001 + MAFTER = 0x0002 + MORDER = 0x0003 + MCREATE = 0x0004 + MCACHE = 0x0010 + MMASK = 0x0017 +) diff --git a/vendor/golang.org/x/sys/plan9/dir_plan9.go b/vendor/golang.org/x/sys/plan9/dir_plan9.go new file mode 100644 index 0000000..0955e0c --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/dir_plan9.go @@ -0,0 +1,212 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Plan 9 directory marshalling. See intro(5). + +package plan9 + +import "errors" + +var ( + ErrShortStat = errors.New("stat buffer too short") + ErrBadStat = errors.New("malformed stat buffer") + ErrBadName = errors.New("bad character in file name") +) + +// A Qid represents a 9P server's unique identification for a file. +type Qid struct { + Path uint64 // the file server's unique identification for the file + Vers uint32 // version number for given Path + Type uint8 // the type of the file (plan9.QTDIR for example) +} + +// A Dir contains the metadata for a file. +type Dir struct { + // system-modified data + Type uint16 // server type + Dev uint32 // server subtype + + // file data + Qid Qid // unique id from server + Mode uint32 // permissions + Atime uint32 // last read time + Mtime uint32 // last write time + Length int64 // file length + Name string // last element of path + Uid string // owner name + Gid string // group name + Muid string // last modifier name +} + +var nullDir = Dir{ + Type: ^uint16(0), + Dev: ^uint32(0), + Qid: Qid{ + Path: ^uint64(0), + Vers: ^uint32(0), + Type: ^uint8(0), + }, + Mode: ^uint32(0), + Atime: ^uint32(0), + Mtime: ^uint32(0), + Length: ^int64(0), +} + +// Null assigns special "don't touch" values to members of d to +// avoid modifying them during plan9.Wstat. +func (d *Dir) Null() { *d = nullDir } + +// Marshal encodes a 9P stat message corresponding to d into b +// +// If there isn't enough space in b for a stat message, ErrShortStat is returned. +func (d *Dir) Marshal(b []byte) (n int, err error) { + n = STATFIXLEN + len(d.Name) + len(d.Uid) + len(d.Gid) + len(d.Muid) + if n > len(b) { + return n, ErrShortStat + } + + for _, c := range d.Name { + if c == '/' { + return n, ErrBadName + } + } + + b = pbit16(b, uint16(n)-2) + b = pbit16(b, d.Type) + b = pbit32(b, d.Dev) + b = pbit8(b, d.Qid.Type) + b = pbit32(b, d.Qid.Vers) + b = pbit64(b, d.Qid.Path) + b = pbit32(b, d.Mode) + b = pbit32(b, d.Atime) + b = pbit32(b, d.Mtime) + b = pbit64(b, uint64(d.Length)) + b = pstring(b, d.Name) + b = pstring(b, d.Uid) + b = pstring(b, d.Gid) + b = pstring(b, d.Muid) + + return n, nil +} + +// UnmarshalDir decodes a single 9P stat message from b and returns the resulting Dir. +// +// If b is too small to hold a valid stat message, ErrShortStat is returned. +// +// If the stat message itself is invalid, ErrBadStat is returned. +func UnmarshalDir(b []byte) (*Dir, error) { + if len(b) < STATFIXLEN { + return nil, ErrShortStat + } + size, buf := gbit16(b) + if len(b) != int(size)+2 { + return nil, ErrBadStat + } + b = buf + + var d Dir + d.Type, b = gbit16(b) + d.Dev, b = gbit32(b) + d.Qid.Type, b = gbit8(b) + d.Qid.Vers, b = gbit32(b) + d.Qid.Path, b = gbit64(b) + d.Mode, b = gbit32(b) + d.Atime, b = gbit32(b) + d.Mtime, b = gbit32(b) + + n, b := gbit64(b) + d.Length = int64(n) + + var ok bool + if d.Name, b, ok = gstring(b); !ok { + return nil, ErrBadStat + } + if d.Uid, b, ok = gstring(b); !ok { + return nil, ErrBadStat + } + if d.Gid, b, ok = gstring(b); !ok { + return nil, ErrBadStat + } + if d.Muid, b, ok = gstring(b); !ok { + return nil, ErrBadStat + } + + return &d, nil +} + +// pbit8 copies the 8-bit number v to b and returns the remaining slice of b. +func pbit8(b []byte, v uint8) []byte { + b[0] = byte(v) + return b[1:] +} + +// pbit16 copies the 16-bit number v to b in little-endian order and returns the remaining slice of b. +func pbit16(b []byte, v uint16) []byte { + b[0] = byte(v) + b[1] = byte(v >> 8) + return b[2:] +} + +// pbit32 copies the 32-bit number v to b in little-endian order and returns the remaining slice of b. +func pbit32(b []byte, v uint32) []byte { + b[0] = byte(v) + b[1] = byte(v >> 8) + b[2] = byte(v >> 16) + b[3] = byte(v >> 24) + return b[4:] +} + +// pbit64 copies the 64-bit number v to b in little-endian order and returns the remaining slice of b. +func pbit64(b []byte, v uint64) []byte { + b[0] = byte(v) + b[1] = byte(v >> 8) + b[2] = byte(v >> 16) + b[3] = byte(v >> 24) + b[4] = byte(v >> 32) + b[5] = byte(v >> 40) + b[6] = byte(v >> 48) + b[7] = byte(v >> 56) + return b[8:] +} + +// pstring copies the string s to b, prepending it with a 16-bit length in little-endian order, and +// returning the remaining slice of b.. +func pstring(b []byte, s string) []byte { + b = pbit16(b, uint16(len(s))) + n := copy(b, s) + return b[n:] +} + +// gbit8 reads an 8-bit number from b and returns it with the remaining slice of b. +func gbit8(b []byte) (uint8, []byte) { + return uint8(b[0]), b[1:] +} + +// gbit16 reads a 16-bit number in little-endian order from b and returns it with the remaining slice of b. +func gbit16(b []byte) (uint16, []byte) { + return uint16(b[0]) | uint16(b[1])<<8, b[2:] +} + +// gbit32 reads a 32-bit number in little-endian order from b and returns it with the remaining slice of b. +func gbit32(b []byte) (uint32, []byte) { + return uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24, b[4:] +} + +// gbit64 reads a 64-bit number in little-endian order from b and returns it with the remaining slice of b. +func gbit64(b []byte) (uint64, []byte) { + lo := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + hi := uint32(b[4]) | uint32(b[5])<<8 | uint32(b[6])<<16 | uint32(b[7])<<24 + return uint64(lo) | uint64(hi)<<32, b[8:] +} + +// gstring reads a string from b, prefixed with a 16-bit length in little-endian order. +// It returns the string with the remaining slice of b and a boolean. If the length is +// greater than the number of bytes in b, the boolean will be false. +func gstring(b []byte) (string, []byte, bool) { + n, b := gbit16(b) + if int(n) > len(b) { + return "", b, false + } + return string(b[:n]), b[n:], true +} diff --git a/vendor/golang.org/x/sys/plan9/env_plan9.go b/vendor/golang.org/x/sys/plan9/env_plan9.go new file mode 100644 index 0000000..8f19180 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/env_plan9.go @@ -0,0 +1,31 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Plan 9 environment variables. + +package plan9 + +import ( + "syscall" +) + +func Getenv(key string) (value string, found bool) { + return syscall.Getenv(key) +} + +func Setenv(key, value string) error { + return syscall.Setenv(key, value) +} + +func Clearenv() { + syscall.Clearenv() +} + +func Environ() []string { + return syscall.Environ() +} + +func Unsetenv(key string) error { + return syscall.Unsetenv(key) +} diff --git a/vendor/golang.org/x/sys/plan9/errors_plan9.go b/vendor/golang.org/x/sys/plan9/errors_plan9.go new file mode 100644 index 0000000..65fe74d --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/errors_plan9.go @@ -0,0 +1,50 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package plan9 + +import "syscall" + +// Constants +const ( + // Invented values to support what package os expects. + O_CREAT = 0x02000 + O_APPEND = 0x00400 + O_NOCTTY = 0x00000 + O_NONBLOCK = 0x00000 + O_SYNC = 0x00000 + O_ASYNC = 0x00000 + + S_IFMT = 0x1f000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 +) + +// Errors +var ( + EINVAL = syscall.NewError("bad arg in system call") + ENOTDIR = syscall.NewError("not a directory") + EISDIR = syscall.NewError("file is a directory") + ENOENT = syscall.NewError("file does not exist") + EEXIST = syscall.NewError("file already exists") + EMFILE = syscall.NewError("no free file descriptors") + EIO = syscall.NewError("i/o error") + ENAMETOOLONG = syscall.NewError("file name too long") + EINTR = syscall.NewError("interrupted") + EPERM = syscall.NewError("permission denied") + EBUSY = syscall.NewError("no free devices") + ETIMEDOUT = syscall.NewError("connection timed out") + EPLAN9 = syscall.NewError("not supported by plan 9") + + // The following errors do not correspond to any + // Plan 9 system messages. Invented to support + // what package os and others expect. + EACCES = syscall.NewError("access permission denied") + EAFNOSUPPORT = syscall.NewError("address family not supported by protocol") +) diff --git a/vendor/golang.org/x/sys/plan9/mkall.sh b/vendor/golang.org/x/sys/plan9/mkall.sh new file mode 100755 index 0000000..9f73c60 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/mkall.sh @@ -0,0 +1,138 @@ +#!/usr/bin/env bash +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# The plan9 package provides access to the raw system call +# interface of the underlying operating system. Porting Go to +# a new architecture/operating system combination requires +# some manual effort, though there are tools that automate +# much of the process. The auto-generated files have names +# beginning with z. +# +# This script runs or (given -n) prints suggested commands to generate z files +# for the current system. Running those commands is not automatic. +# This script is documentation more than anything else. +# +# * asm_${GOOS}_${GOARCH}.s +# +# This hand-written assembly file implements system call dispatch. +# There are three entry points: +# +# func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr); +# func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr); +# func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr); +# +# The first and second are the standard ones; they differ only in +# how many arguments can be passed to the kernel. +# The third is for low-level use by the ForkExec wrapper; +# unlike the first two, it does not call into the scheduler to +# let it know that a system call is running. +# +# * syscall_${GOOS}.go +# +# This hand-written Go file implements system calls that need +# special handling and lists "//sys" comments giving prototypes +# for ones that can be auto-generated. Mksyscall reads those +# comments to generate the stubs. +# +# * syscall_${GOOS}_${GOARCH}.go +# +# Same as syscall_${GOOS}.go except that it contains code specific +# to ${GOOS} on one particular architecture. +# +# * types_${GOOS}.c +# +# This hand-written C file includes standard C headers and then +# creates typedef or enum names beginning with a dollar sign +# (use of $ in variable names is a gcc extension). The hardest +# part about preparing this file is figuring out which headers to +# include and which symbols need to be #defined to get the +# actual data structures that pass through to the kernel system calls. +# Some C libraries present alternate versions for binary compatibility +# and translate them on the way in and out of system calls, but +# there is almost always a #define that can get the real ones. +# See types_darwin.c and types_linux.c for examples. +# +# * zerror_${GOOS}_${GOARCH}.go +# +# This machine-generated file defines the system's error numbers, +# error strings, and signal numbers. The generator is "mkerrors.sh". +# Usually no arguments are needed, but mkerrors.sh will pass its +# arguments on to godefs. +# +# * zsyscall_${GOOS}_${GOARCH}.go +# +# Generated by mksyscall.pl; see syscall_${GOOS}.go above. +# +# * zsysnum_${GOOS}_${GOARCH}.go +# +# Generated by mksysnum_${GOOS}. +# +# * ztypes_${GOOS}_${GOARCH}.go +# +# Generated by godefs; see types_${GOOS}.c above. + +GOOSARCH="${GOOS}_${GOARCH}" + +# defaults +mksyscall="./mksyscall.pl" +mkerrors="./mkerrors.sh" +zerrors="zerrors_$GOOSARCH.go" +mksysctl="" +zsysctl="zsysctl_$GOOSARCH.go" +mksysnum= +mktypes= +run="sh" + +case "$1" in +-syscalls) + for i in zsyscall*go + do + sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i + rm _$i + done + exit 0 + ;; +-n) + run="cat" + shift +esac + +case "$#" in +0) + ;; +*) + echo 'usage: mkall.sh [-n]' 1>&2 + exit 2 +esac + +case "$GOOSARCH" in +_* | *_ | _) + echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 + exit 1 + ;; +plan9_386) + mkerrors= + mksyscall="./mksyscall.pl -l32 -plan9" + mksysnum="./mksysnum_plan9.sh /n/sources/plan9/sys/src/libc/9syscall/sys.h" + mktypes="XXX" + ;; +*) + echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 + exit 1 + ;; +esac + +( + if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi + case "$GOOS" in + plan9) + syscall_goos="syscall_$GOOS.go" + if [ -n "$mksyscall" ]; then echo "$mksyscall $syscall_goos syscall_$GOOSARCH.go |gofmt >zsyscall_$GOOSARCH.go"; fi + ;; + esac + if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi + if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi + if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go |gofmt >ztypes_$GOOSARCH.go"; fi +) | $run diff --git a/vendor/golang.org/x/sys/plan9/mkerrors.sh b/vendor/golang.org/x/sys/plan9/mkerrors.sh new file mode 100755 index 0000000..052c86d --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/mkerrors.sh @@ -0,0 +1,246 @@ +#!/usr/bin/env bash +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# Generate Go code listing errors and other #defined constant +# values (ENAMETOOLONG etc.), by asking the preprocessor +# about the definitions. + +unset LANG +export LC_ALL=C +export LC_CTYPE=C + +CC=${CC:-gcc} + +uname=$(uname) + +includes=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +' + +ccflags="$@" + +# Write go tool cgo -godefs input. +( + echo package plan9 + echo + echo '/*' + indirect="includes_$(uname)" + echo "${!indirect} $includes" + echo '*/' + echo 'import "C"' + echo + echo 'const (' + + # The gcc command line prints all the #defines + # it encounters while processing the input + echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags | + awk ' + $1 != "#define" || $2 ~ /\(/ || $3 == "" {next} + + $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next} # 386 registers + $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next} + $2 ~ /^(SCM_SRCRT)$/ {next} + $2 ~ /^(MAP_FAILED)$/ {next} + + $2 !~ /^ETH_/ && + $2 !~ /^EPROC_/ && + $2 !~ /^EQUIV_/ && + $2 !~ /^EXPR_/ && + $2 ~ /^E[A-Z0-9_]+$/ || + $2 ~ /^B[0-9_]+$/ || + $2 ~ /^V[A-Z0-9]+$/ || + $2 ~ /^CS[A-Z0-9]/ || + $2 ~ /^I(SIG|CANON|CRNL|EXTEN|MAXBEL|STRIP|UTF8)$/ || + $2 ~ /^IGN/ || + $2 ~ /^IX(ON|ANY|OFF)$/ || + $2 ~ /^IN(LCR|PCK)$/ || + $2 ~ /(^FLU?SH)|(FLU?SH$)/ || + $2 ~ /^C(LOCAL|READ)$/ || + $2 == "BRKINT" || + $2 == "HUPCL" || + $2 == "PENDIN" || + $2 == "TOSTOP" || + $2 ~ /^PAR/ || + $2 ~ /^SIG[^_]/ || + $2 ~ /^O[CNPFP][A-Z]+[^_][A-Z]+$/ || + $2 ~ /^IN_/ || + $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ || + $2 == "ICMPV6_FILTER" || + $2 == "SOMAXCONN" || + $2 == "NAME_MAX" || + $2 == "IFNAMSIZ" || + $2 ~ /^CTL_(MAXNAME|NET|QUERY)$/ || + $2 ~ /^SYSCTL_VERS/ || + $2 ~ /^(MS|MNT)_/ || + $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || + $2 ~ /^(O|F|FD|NAME|S|PTRACE|PT)_/ || + $2 ~ /^LINUX_REBOOT_CMD_/ || + $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || + $2 !~ "NLA_TYPE_MASK" && + $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P)_/ || + $2 ~ /^SIOC/ || + $2 ~ /^TIOC/ || + $2 !~ "RTF_BITS" && + $2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ || + $2 ~ /^BIOC/ || + $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || + $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|NOFILE|STACK)|RLIM_INFINITY/ || + $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || + $2 ~ /^CLONE_[A-Z_]+/ || + $2 !~ /^(BPF_TIMEVAL)$/ && + $2 ~ /^(BPF|DLT)_/ || + $2 !~ "WMESGLEN" && + $2 ~ /^W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", $2, $2)} + $2 ~ /^__WCOREFLAG$/ {next} + $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} + + {next} + ' | sort + + echo ')' +) >_const.go + +# Pull out the error names for later. +errors=$( + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' | + sort +) + +# Pull out the signal names for later. +signals=$( + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | + egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' | + sort +) + +# Again, writing regexps to a file. +echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' | + sort >_error.grep +echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | + egrep -v '(SIGSTKSIZE|SIGSTKSZ|SIGRT)' | + sort >_signal.grep + +echo '// mkerrors.sh' "$@" +echo '// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT' +echo +go tool cgo -godefs -- "$@" _const.go >_error.out +cat _error.out | grep -vf _error.grep | grep -vf _signal.grep +echo +echo '// Errors' +echo 'const (' +cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= Errno(\1)/' +echo ')' + +echo +echo '// Signals' +echo 'const (' +cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= Signal(\1)/' +echo ')' + +# Run C program to print error and syscall strings. +( + echo -E " +#include +#include +#include +#include +#include +#include + +#define nelem(x) (sizeof(x)/sizeof((x)[0])) + +enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below + +int errors[] = { +" + for i in $errors + do + echo -E ' '$i, + done + + echo -E " +}; + +int signals[] = { +" + for i in $signals + do + echo -E ' '$i, + done + + # Use -E because on some systems bash builtin interprets \n itself. + echo -E ' +}; + +static int +intcmp(const void *a, const void *b) +{ + return *(int*)a - *(int*)b; +} + +int +main(void) +{ + int i, j, e; + char buf[1024], *p; + + printf("\n\n// Error table\n"); + printf("var errors = [...]string {\n"); + qsort(errors, nelem(errors), sizeof errors[0], intcmp); + for(i=0; i 0 && errors[i-1] == e) + continue; + strcpy(buf, strerror(e)); + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + printf("\t%d: \"%s\",\n", e, buf); + } + printf("}\n\n"); + + printf("\n\n// Signal table\n"); + printf("var signals = [...]string {\n"); + qsort(signals, nelem(signals), sizeof signals[0], intcmp); + for(i=0; i 0 && signals[i-1] == e) + continue; + strcpy(buf, strsignal(e)); + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + // cut trailing : number. + p = strrchr(buf, ":"[0]); + if(p) + *p = '\0'; + printf("\t%d: \"%s\",\n", e, buf); + } + printf("}\n\n"); + + return 0; +} + +' +) >_errors.c + +$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out diff --git a/vendor/golang.org/x/sys/plan9/mksyscall.pl b/vendor/golang.org/x/sys/plan9/mksyscall.pl new file mode 100755 index 0000000..ce8e1e4 --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/mksyscall.pl @@ -0,0 +1,319 @@ +#!/usr/bin/env perl +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# This program reads a file containing function prototypes +# (like syscall_plan9.go) and generates system call bodies. +# The prototypes are marked by lines beginning with "//sys" +# and read like func declarations if //sys is replaced by func, but: +# * The parameter lists must give a name for each argument. +# This includes return parameters. +# * The parameter lists must give a type for each argument: +# the (x, y, z int) shorthand is not allowed. +# * If the return parameter is an error number, it must be named errno. + +# A line beginning with //sysnb is like //sys, except that the +# goroutine will not be suspended during the execution of the system +# call. This must only be used for system calls which can never +# block, as otherwise the system call could cause all goroutines to +# hang. + +use strict; + +my $cmdline = "mksyscall.pl " . join(' ', @ARGV); +my $errors = 0; +my $_32bit = ""; +my $plan9 = 0; +my $openbsd = 0; +my $netbsd = 0; +my $dragonfly = 0; +my $nacl = 0; +my $arm = 0; # 64-bit value should use (even, odd)-pair + +if($ARGV[0] eq "-b32") { + $_32bit = "big-endian"; + shift; +} elsif($ARGV[0] eq "-l32") { + $_32bit = "little-endian"; + shift; +} +if($ARGV[0] eq "-plan9") { + $plan9 = 1; + shift; +} +if($ARGV[0] eq "-openbsd") { + $openbsd = 1; + shift; +} +if($ARGV[0] eq "-netbsd") { + $netbsd = 1; + shift; +} +if($ARGV[0] eq "-dragonfly") { + $dragonfly = 1; + shift; +} +if($ARGV[0] eq "-nacl") { + $nacl = 1; + shift; +} +if($ARGV[0] eq "-arm") { + $arm = 1; + shift; +} + +if($ARGV[0] =~ /^-/) { + print STDERR "usage: mksyscall.pl [-b32 | -l32] [file ...]\n"; + exit 1; +} + +sub parseparamlist($) { + my ($list) = @_; + $list =~ s/^\s*//; + $list =~ s/\s*$//; + if($list eq "") { + return (); + } + return split(/\s*,\s*/, $list); +} + +sub parseparam($) { + my ($p) = @_; + if($p !~ /^(\S*) (\S*)$/) { + print STDERR "$ARGV:$.: malformed parameter: $p\n"; + $errors = 1; + return ("xx", "int"); + } + return ($1, $2); +} + +my $text = ""; +while(<>) { + chomp; + s/\s+/ /g; + s/^\s+//; + s/\s+$//; + my $nonblock = /^\/\/sysnb /; + next if !/^\/\/sys / && !$nonblock; + + # Line must be of the form + # func Open(path string, mode int, perm int) (fd int, errno error) + # Split into name, in params, out params. + if(!/^\/\/sys(nb)? (\w+)\(([^()]*)\)\s*(?:\(([^()]+)\))?\s*(?:=\s*((?i)SYS_[A-Z0-9_]+))?$/) { + print STDERR "$ARGV:$.: malformed //sys declaration\n"; + $errors = 1; + next; + } + my ($func, $in, $out, $sysname) = ($2, $3, $4, $5); + + # Split argument lists on comma. + my @in = parseparamlist($in); + my @out = parseparamlist($out); + + # Try in vain to keep people from editing this file. + # The theory is that they jump into the middle of the file + # without reading the header. + $text .= "// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT\n\n"; + + # Go function header. + my $out_decl = @out ? sprintf(" (%s)", join(', ', @out)) : ""; + $text .= sprintf "func %s(%s)%s {\n", $func, join(', ', @in), $out_decl; + + # Check if err return available + my $errvar = ""; + foreach my $p (@out) { + my ($name, $type) = parseparam($p); + if($type eq "error") { + $errvar = $name; + last; + } + } + + # Prepare arguments to Syscall. + my @args = (); + my @uses = (); + my $n = 0; + foreach my $p (@in) { + my ($name, $type) = parseparam($p); + if($type =~ /^\*/) { + push @args, "uintptr(unsafe.Pointer($name))"; + } elsif($type eq "string" && $errvar ne "") { + $text .= "\tvar _p$n *byte\n"; + $text .= "\t_p$n, $errvar = BytePtrFromString($name)\n"; + $text .= "\tif $errvar != nil {\n\t\treturn\n\t}\n"; + push @args, "uintptr(unsafe.Pointer(_p$n))"; + push @uses, "use(unsafe.Pointer(_p$n))"; + $n++; + } elsif($type eq "string") { + print STDERR "$ARGV:$.: $func uses string arguments, but has no error return\n"; + $text .= "\tvar _p$n *byte\n"; + $text .= "\t_p$n, _ = BytePtrFromString($name)\n"; + push @args, "uintptr(unsafe.Pointer(_p$n))"; + push @uses, "use(unsafe.Pointer(_p$n))"; + $n++; + } elsif($type =~ /^\[\](.*)/) { + # Convert slice into pointer, length. + # Have to be careful not to take address of &a[0] if len == 0: + # pass dummy pointer in that case. + # Used to pass nil, but some OSes or simulators reject write(fd, nil, 0). + $text .= "\tvar _p$n unsafe.Pointer\n"; + $text .= "\tif len($name) > 0 {\n\t\t_p$n = unsafe.Pointer(\&${name}[0])\n\t}"; + $text .= " else {\n\t\t_p$n = unsafe.Pointer(&_zero)\n\t}"; + $text .= "\n"; + push @args, "uintptr(_p$n)", "uintptr(len($name))"; + $n++; + } elsif($type eq "int64" && ($openbsd || $netbsd)) { + push @args, "0"; + if($_32bit eq "big-endian") { + push @args, "uintptr($name>>32)", "uintptr($name)"; + } elsif($_32bit eq "little-endian") { + push @args, "uintptr($name)", "uintptr($name>>32)"; + } else { + push @args, "uintptr($name)"; + } + } elsif($type eq "int64" && $dragonfly) { + if ($func !~ /^extp(read|write)/i) { + push @args, "0"; + } + if($_32bit eq "big-endian") { + push @args, "uintptr($name>>32)", "uintptr($name)"; + } elsif($_32bit eq "little-endian") { + push @args, "uintptr($name)", "uintptr($name>>32)"; + } else { + push @args, "uintptr($name)"; + } + } elsif($type eq "int64" && $_32bit ne "") { + if(@args % 2 && $arm) { + # arm abi specifies 64-bit argument uses + # (even, odd) pair + push @args, "0" + } + if($_32bit eq "big-endian") { + push @args, "uintptr($name>>32)", "uintptr($name)"; + } else { + push @args, "uintptr($name)", "uintptr($name>>32)"; + } + } else { + push @args, "uintptr($name)"; + } + } + + # Determine which form to use; pad args with zeros. + my $asm = "Syscall"; + if ($nonblock) { + $asm = "RawSyscall"; + } + if(@args <= 3) { + while(@args < 3) { + push @args, "0"; + } + } elsif(@args <= 6) { + $asm .= "6"; + while(@args < 6) { + push @args, "0"; + } + } elsif(@args <= 9) { + $asm .= "9"; + while(@args < 9) { + push @args, "0"; + } + } else { + print STDERR "$ARGV:$.: too many arguments to system call\n"; + } + + # System call number. + if($sysname eq "") { + $sysname = "SYS_$func"; + $sysname =~ s/([a-z])([A-Z])/${1}_$2/g; # turn FooBar into Foo_Bar + $sysname =~ y/a-z/A-Z/; + if($nacl) { + $sysname =~ y/A-Z/a-z/; + } + } + + # Actual call. + my $args = join(', ', @args); + my $call = "$asm($sysname, $args)"; + + # Assign return values. + my $body = ""; + my @ret = ("_", "_", "_"); + my $do_errno = 0; + for(my $i=0; $i<@out; $i++) { + my $p = $out[$i]; + my ($name, $type) = parseparam($p); + my $reg = ""; + if($name eq "err" && !$plan9) { + $reg = "e1"; + $ret[2] = $reg; + $do_errno = 1; + } elsif($name eq "err" && $plan9) { + $ret[0] = "r0"; + $ret[2] = "e1"; + next; + } else { + $reg = sprintf("r%d", $i); + $ret[$i] = $reg; + } + if($type eq "bool") { + $reg = "$reg != 0"; + } + if($type eq "int64" && $_32bit ne "") { + # 64-bit number in r1:r0 or r0:r1. + if($i+2 > @out) { + print STDERR "$ARGV:$.: not enough registers for int64 return\n"; + } + if($_32bit eq "big-endian") { + $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i, $i+1); + } else { + $reg = sprintf("int64(r%d)<<32 | int64(r%d)", $i+1, $i); + } + $ret[$i] = sprintf("r%d", $i); + $ret[$i+1] = sprintf("r%d", $i+1); + } + if($reg ne "e1" || $plan9) { + $body .= "\t$name = $type($reg)\n"; + } + } + if ($ret[0] eq "_" && $ret[1] eq "_" && $ret[2] eq "_") { + $text .= "\t$call\n"; + } else { + $text .= "\t$ret[0], $ret[1], $ret[2] := $call\n"; + } + foreach my $use (@uses) { + $text .= "\t$use\n"; + } + $text .= $body; + + if ($plan9 && $ret[2] eq "e1") { + $text .= "\tif int32(r0) == -1 {\n"; + $text .= "\t\terr = e1\n"; + $text .= "\t}\n"; + } elsif ($do_errno) { + $text .= "\tif e1 != 0 {\n"; + $text .= "\t\terr = e1\n"; + $text .= "\t}\n"; + } + $text .= "\treturn\n"; + $text .= "}\n\n"; +} + +chomp $text; +chomp $text; + +if($errors) { + exit 1; +} + +print <= 10 { + buf[i] = byte(val%10 + '0') + i-- + val /= 10 + } + buf[i] = byte(val + '0') + return string(buf[i:]) +} diff --git a/vendor/golang.org/x/sys/plan9/syscall.go b/vendor/golang.org/x/sys/plan9/syscall.go new file mode 100644 index 0000000..5046cfe --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/syscall.go @@ -0,0 +1,74 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build plan9 + +// Package plan9 contains an interface to the low-level operating system +// primitives. OS details vary depending on the underlying system, and +// by default, godoc will display the OS-specific documentation for the current +// system. If you want godoc to display documentation for another +// system, set $GOOS and $GOARCH to the desired system. For example, if +// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS +// to freebsd and $GOARCH to arm. +// The primary use of this package is inside other packages that provide a more +// portable interface to the system, such as "os", "time" and "net". Use +// those packages rather than this one if you can. +// For details of the functions and data types in this package consult +// the manuals for the appropriate operating system. +// These calls return err == nil to indicate success; otherwise +// err represents an operating system error describing the failure and +// holds a value of type syscall.ErrorString. +package plan9 // import "golang.org/x/sys/plan9" + +import "unsafe" + +// ByteSliceFromString returns a NUL-terminated slice of bytes +// containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func ByteSliceFromString(s string) ([]byte, error) { + for i := 0; i < len(s); i++ { + if s[i] == 0 { + return nil, EINVAL + } + } + a := make([]byte, len(s)+1) + copy(a, s) + return a, nil +} + +// BytePtrFromString returns a pointer to a NUL-terminated array of +// bytes containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func BytePtrFromString(s string) (*byte, error) { + a, err := ByteSliceFromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +// Single-word zero for use when we need a valid pointer to 0 bytes. +// See mksyscall.pl. +var _zero uintptr + +func (ts *Timespec) Unix() (sec int64, nsec int64) { + return int64(ts.Sec), int64(ts.Nsec) +} + +func (tv *Timeval) Unix() (sec int64, nsec int64) { + return int64(tv.Sec), int64(tv.Usec) * 1000 +} + +func (ts *Timespec) Nano() int64 { + return int64(ts.Sec)*1e9 + int64(ts.Nsec) +} + +func (tv *Timeval) Nano() int64 { + return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 +} + +// use is a no-op, but the compiler cannot see that it is. +// Calling use(p) ensures that p is kept live until that point. +//go:noescape +func use(p unsafe.Pointer) diff --git a/vendor/golang.org/x/sys/plan9/syscall_plan9.go b/vendor/golang.org/x/sys/plan9/syscall_plan9.go new file mode 100644 index 0000000..d39d07d --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/syscall_plan9.go @@ -0,0 +1,349 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Plan 9 system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and +// wrap it in our own nicer implementation. + +package plan9 + +import ( + "syscall" + "unsafe" +) + +// A Note is a string describing a process note. +// It implements the os.Signal interface. +type Note string + +func (n Note) Signal() {} + +func (n Note) String() string { + return string(n) +} + +var ( + Stdin = 0 + Stdout = 1 + Stderr = 2 +) + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.ErrorString) +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.ErrorString) +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) + +func atoi(b []byte) (n uint) { + n = 0 + for i := 0; i < len(b); i++ { + n = n*10 + uint(b[i]-'0') + } + return +} + +func cstring(s []byte) string { + for i := range s { + if s[i] == 0 { + return string(s[0:i]) + } + } + return string(s) +} + +func errstr() string { + var buf [ERRMAX]byte + + RawSyscall(SYS_ERRSTR, uintptr(unsafe.Pointer(&buf[0])), uintptr(len(buf)), 0) + + buf[len(buf)-1] = 0 + return cstring(buf[:]) +} + +// Implemented in assembly to import from runtime. +func exit(code int) + +func Exit(code int) { exit(code) } + +func readnum(path string) (uint, error) { + var b [12]byte + + fd, e := Open(path, O_RDONLY) + if e != nil { + return 0, e + } + defer Close(fd) + + n, e := Pread(fd, b[:], 0) + + if e != nil { + return 0, e + } + + m := 0 + for ; m < n && b[m] == ' '; m++ { + } + + return atoi(b[m : n-1]), nil +} + +func Getpid() (pid int) { + n, _ := readnum("#c/pid") + return int(n) +} + +func Getppid() (ppid int) { + n, _ := readnum("#c/ppid") + return int(n) +} + +func Read(fd int, p []byte) (n int, err error) { + return Pread(fd, p, -1) +} + +func Write(fd int, p []byte) (n int, err error) { + return Pwrite(fd, p, -1) +} + +var ioSync int64 + +//sys fd2path(fd int, buf []byte) (err error) +func Fd2path(fd int) (path string, err error) { + var buf [512]byte + + e := fd2path(fd, buf[:]) + if e != nil { + return "", e + } + return cstring(buf[:]), nil +} + +//sys pipe(p *[2]int32) (err error) +func Pipe(p []int) (err error) { + if len(p) != 2 { + return syscall.ErrorString("bad arg in system call") + } + var pp [2]int32 + err = pipe(&pp) + p[0] = int(pp[0]) + p[1] = int(pp[1]) + return +} + +// Underlying system call writes to newoffset via pointer. +// Implemented in assembly to avoid allocation. +func seek(placeholder uintptr, fd int, offset int64, whence int) (newoffset int64, err string) + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, e := seek(0, fd, offset, whence) + + if newoffset == -1 { + err = syscall.ErrorString(e) + } + return +} + +func Mkdir(path string, mode uint32) (err error) { + fd, err := Create(path, O_RDONLY, DMDIR|mode) + + if fd != -1 { + Close(fd) + } + + return +} + +type Waitmsg struct { + Pid int + Time [3]uint32 + Msg string +} + +func (w Waitmsg) Exited() bool { return true } +func (w Waitmsg) Signaled() bool { return false } + +func (w Waitmsg) ExitStatus() int { + if len(w.Msg) == 0 { + // a normal exit returns no message + return 0 + } + return 1 +} + +//sys await(s []byte) (n int, err error) +func Await(w *Waitmsg) (err error) { + var buf [512]byte + var f [5][]byte + + n, err := await(buf[:]) + + if err != nil || w == nil { + return + } + + nf := 0 + p := 0 + for i := 0; i < n && nf < len(f)-1; i++ { + if buf[i] == ' ' { + f[nf] = buf[p:i] + p = i + 1 + nf++ + } + } + f[nf] = buf[p:] + nf++ + + if nf != len(f) { + return syscall.ErrorString("invalid wait message") + } + w.Pid = int(atoi(f[0])) + w.Time[0] = uint32(atoi(f[1])) + w.Time[1] = uint32(atoi(f[2])) + w.Time[2] = uint32(atoi(f[3])) + w.Msg = cstring(f[4]) + if w.Msg == "''" { + // await() returns '' for no error + w.Msg = "" + } + return +} + +func Unmount(name, old string) (err error) { + fixwd() + oldp, err := BytePtrFromString(old) + if err != nil { + return err + } + oldptr := uintptr(unsafe.Pointer(oldp)) + + var r0 uintptr + var e syscall.ErrorString + + // bind(2) man page: If name is zero, everything bound or mounted upon old is unbound or unmounted. + if name == "" { + r0, _, e = Syscall(SYS_UNMOUNT, _zero, oldptr, 0) + } else { + namep, err := BytePtrFromString(name) + if err != nil { + return err + } + r0, _, e = Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(namep)), oldptr, 0) + } + + if int32(r0) == -1 { + err = e + } + return +} + +func Fchdir(fd int) (err error) { + path, err := Fd2path(fd) + + if err != nil { + return + } + + return Chdir(path) +} + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +func NsecToTimeval(nsec int64) (tv Timeval) { + nsec += 999 // round up to microsecond + tv.Usec = int32(nsec % 1e9 / 1e3) + tv.Sec = int32(nsec / 1e9) + return +} + +func nsec() int64 { + var scratch int64 + + r0, _, _ := Syscall(SYS_NSEC, uintptr(unsafe.Pointer(&scratch)), 0, 0) + // TODO(aram): remove hack after I fix _nsec in the pc64 kernel. + if r0 == 0 { + return scratch + } + return int64(r0) +} + +func Gettimeofday(tv *Timeval) error { + nsec := nsec() + *tv = NsecToTimeval(nsec) + return nil +} + +func Getpagesize() int { return 0x1000 } + +func Getegid() (egid int) { return -1 } +func Geteuid() (euid int) { return -1 } +func Getgid() (gid int) { return -1 } +func Getuid() (uid int) { return -1 } + +func Getgroups() (gids []int, err error) { + return make([]int, 0), nil +} + +//sys open(path string, mode int) (fd int, err error) +func Open(path string, mode int) (fd int, err error) { + fixwd() + return open(path, mode) +} + +//sys create(path string, mode int, perm uint32) (fd int, err error) +func Create(path string, mode int, perm uint32) (fd int, err error) { + fixwd() + return create(path, mode, perm) +} + +//sys remove(path string) (err error) +func Remove(path string) error { + fixwd() + return remove(path) +} + +//sys stat(path string, edir []byte) (n int, err error) +func Stat(path string, edir []byte) (n int, err error) { + fixwd() + return stat(path, edir) +} + +//sys bind(name string, old string, flag int) (err error) +func Bind(name string, old string, flag int) (err error) { + fixwd() + return bind(name, old, flag) +} + +//sys mount(fd int, afd int, old string, flag int, aname string) (err error) +func Mount(fd int, afd int, old string, flag int, aname string) (err error) { + fixwd() + return mount(fd, afd, old, flag, aname) +} + +//sys wstat(path string, edir []byte) (err error) +func Wstat(path string, edir []byte) (err error) { + fixwd() + return wstat(path, edir) +} + +//sys chdir(path string) (err error) +//sys Dup(oldfd int, newfd int) (fd int, err error) +//sys Pread(fd int, p []byte, offset int64) (n int, err error) +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys Close(fd int) (err error) +//sys Fstat(fd int, edir []byte) (n int, err error) +//sys Fwstat(fd int, edir []byte) (err error) diff --git a/vendor/golang.org/x/sys/plan9/syscall_test.go b/vendor/golang.org/x/sys/plan9/syscall_test.go new file mode 100644 index 0000000..8f829ba --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/syscall_test.go @@ -0,0 +1,33 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build plan9 + +package plan9_test + +import ( + "testing" + + "golang.org/x/sys/plan9" +) + +func testSetGetenv(t *testing.T, key, value string) { + err := plan9.Setenv(key, value) + if err != nil { + t.Fatalf("Setenv failed to set %q: %v", value, err) + } + newvalue, found := plan9.Getenv(key) + if !found { + t.Fatalf("Getenv failed to find %v variable (want value %q)", key, value) + } + if newvalue != value { + t.Fatalf("Getenv(%v) = %q; want %q", key, newvalue, value) + } +} + +func TestEnv(t *testing.T) { + testSetGetenv(t, "TESTENV", "AVALUE") + // make sure TESTENV gets set to "", not deleted + testSetGetenv(t, "TESTENV", "") +} diff --git a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go new file mode 100644 index 0000000..b35598a --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_386.go @@ -0,0 +1,292 @@ +// mksyscall.pl -l32 -plan9 syscall_plan9.go +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +package plan9 + +import "unsafe" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fd2path(fd int, buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func await(s []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(s) > 0 { + _p0 = unsafe.Pointer(&s[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func open(path string, mode int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + use(unsafe.Pointer(_p0)) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func create(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + use(unsafe.Pointer(_p0)) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func remove(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, edir []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + use(unsafe.Pointer(_p0)) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(name string, old string, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(old) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(fd int, afd int, old string, flag int, aname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(old) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(aname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wstat(path string, edir []byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + use(unsafe.Pointer(_p0)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int, newfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, edir []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fwstat(fd int, edir []byte) (err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + if int32(r0) == -1 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go new file mode 100644 index 0000000..b35598a --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/zsyscall_plan9_amd64.go @@ -0,0 +1,292 @@ +// mksyscall.pl -l32 -plan9 syscall_plan9.go +// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT + +package plan9 + +import "unsafe" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fd2path(fd int, buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FD2PATH, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + r0, _, e1 := Syscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func await(s []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(s) > 0 { + _p0 = unsafe.Pointer(&s[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_AWAIT, uintptr(_p0), uintptr(len(s)), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func open(path string, mode int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + use(unsafe.Pointer(_p0)) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func create(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + use(unsafe.Pointer(_p0)) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func remove(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, edir []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + use(unsafe.Pointer(_p0)) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(name string, old string, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(old) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_BIND, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flag)) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(fd int, afd int, old string, flag int, aname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(old) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(aname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_MOUNT, uintptr(fd), uintptr(afd), uintptr(unsafe.Pointer(_p0)), uintptr(flag), uintptr(unsafe.Pointer(_p1)), 0) + use(unsafe.Pointer(_p0)) + use(unsafe.Pointer(_p1)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wstat(path string, edir []byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(edir) > 0 { + _p1 = unsafe.Pointer(&edir[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(edir))) + use(unsafe.Pointer(_p0)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + use(unsafe.Pointer(_p0)) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int, newfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), uintptr(newfd), 0) + fd = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + r0, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, edir []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + n = int(r0) + if int32(r0) == -1 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fwstat(fd int, edir []byte) (err error) { + var _p0 unsafe.Pointer + if len(edir) > 0 { + _p0 = unsafe.Pointer(&edir[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FWSTAT, uintptr(fd), uintptr(_p0), uintptr(len(edir))) + if int32(r0) == -1 { + err = e1 + } + return +} diff --git a/vendor/golang.org/x/sys/plan9/zsysnum_plan9.go b/vendor/golang.org/x/sys/plan9/zsysnum_plan9.go new file mode 100644 index 0000000..22e8abd --- /dev/null +++ b/vendor/golang.org/x/sys/plan9/zsysnum_plan9.go @@ -0,0 +1,49 @@ +// mksysnum_plan9.sh /opt/plan9/sys/src/libc/9syscall/sys.h +// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT + +package plan9 + +const ( + SYS_SYSR1 = 0 + SYS_BIND = 2 + SYS_CHDIR = 3 + SYS_CLOSE = 4 + SYS_DUP = 5 + SYS_ALARM = 6 + SYS_EXEC = 7 + SYS_EXITS = 8 + SYS_FAUTH = 10 + SYS_SEGBRK = 12 + SYS_OPEN = 14 + SYS_OSEEK = 16 + SYS_SLEEP = 17 + SYS_RFORK = 19 + SYS_PIPE = 21 + SYS_CREATE = 22 + SYS_FD2PATH = 23 + SYS_BRK_ = 24 + SYS_REMOVE = 25 + SYS_NOTIFY = 28 + SYS_NOTED = 29 + SYS_SEGATTACH = 30 + SYS_SEGDETACH = 31 + SYS_SEGFREE = 32 + SYS_SEGFLUSH = 33 + SYS_RENDEZVOUS = 34 + SYS_UNMOUNT = 35 + SYS_SEMACQUIRE = 37 + SYS_SEMRELEASE = 38 + SYS_SEEK = 39 + SYS_FVERSION = 40 + SYS_ERRSTR = 41 + SYS_STAT = 42 + SYS_FSTAT = 43 + SYS_WSTAT = 44 + SYS_FWSTAT = 45 + SYS_MOUNT = 46 + SYS_AWAIT = 47 + SYS_PREAD = 50 + SYS_PWRITE = 51 + SYS_TSEMACQUIRE = 52 + SYS_NSEC = 53 +) diff --git a/vendor/golang.org/x/sys/unix/linux/Dockerfile b/vendor/golang.org/x/sys/unix/linux/Dockerfile new file mode 100644 index 0000000..7fe5fc3 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/linux/Dockerfile @@ -0,0 +1,51 @@ +FROM ubuntu:16.04 + +# Use the most recent ubuntu sources +RUN echo 'deb http://en.archive.ubuntu.com/ubuntu/ artful main universe' >> /etc/apt/sources.list + +# Dependencies to get the git sources and go binaries +RUN apt-get update && apt-get install -y \ + curl \ + git \ + && rm -rf /var/lib/apt/lists/* + +# Get the git sources. If not cached, this takes O(5 minutes). +WORKDIR /git +RUN git config --global advice.detachedHead false +# Linux Kernel: Released 03 Sep 2017 +RUN git clone --branch v4.13 --depth 1 https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux +# GNU C library: Released 02 Aug 2017 (we should try to get a secure way to clone this) +RUN git clone --branch glibc-2.26 --depth 1 git://sourceware.org/git/glibc.git + +# Get Go 1.9.2 +ENV GOLANG_VERSION 1.9.2 +ENV GOLANG_DOWNLOAD_URL https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz +ENV GOLANG_DOWNLOAD_SHA256 de874549d9a8d8d8062be05808509c09a88a248e77ec14eb77453530829ac02b + +RUN curl -fsSL "$GOLANG_DOWNLOAD_URL" -o golang.tar.gz \ + && echo "$GOLANG_DOWNLOAD_SHA256 golang.tar.gz" | sha256sum -c - \ + && tar -C /usr/local -xzf golang.tar.gz \ + && rm golang.tar.gz + +ENV PATH /usr/local/go/bin:$PATH + +# Linux and Glibc build dependencies +RUN apt-get update && apt-get install -y \ + gawk make python \ + gcc gcc-multilib \ + gettext texinfo \ + && rm -rf /var/lib/apt/lists/* +# Emulator and cross compilers +RUN apt-get update && apt-get install -y \ + qemu \ + gcc-aarch64-linux-gnu gcc-arm-linux-gnueabi \ + gcc-mips-linux-gnu gcc-mips64-linux-gnuabi64 \ + gcc-mips64el-linux-gnuabi64 gcc-mipsel-linux-gnu \ + gcc-powerpc64-linux-gnu gcc-powerpc64le-linux-gnu \ + gcc-s390x-linux-gnu gcc-sparc64-linux-gnu \ + && rm -rf /var/lib/apt/lists/* + +# Let the scripts know they are in the docker environment +ENV GOLANG_SYS_BUILD docker +WORKDIR /build +ENTRYPOINT ["go", "run", "linux/mkall.go", "/git/linux", "/git/glibc"] diff --git a/vendor/golang.org/x/sys/unix/linux/mkall.go b/vendor/golang.org/x/sys/unix/linux/mkall.go new file mode 100644 index 0000000..89b2fe8 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/linux/mkall.go @@ -0,0 +1,482 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// linux/mkall.go - Generates all Linux zsysnum, zsyscall, zerror, and ztype +// files for all 11 linux architectures supported by the go compiler. See +// README.md for more information about the build system. + +// To run it you must have a git checkout of the Linux kernel and glibc. Once +// the appropriate sources are ready, the program is run as: +// go run linux/mkall.go + +// +build ignore + +package main + +import ( + "bufio" + "bytes" + "fmt" + "io" + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "runtime" + "strings" + "unicode" +) + +// These will be paths to the appropriate source directories. +var LinuxDir string +var GlibcDir string + +const TempDir = "/tmp" +const IncludeDir = TempDir + "/include" // To hold our C headers +const BuildDir = TempDir + "/build" // To hold intermediate build files + +const GOOS = "linux" // Only for Linux targets +const BuildArch = "amd64" // Must be built on this architecture +const MinKernel = "2.6.23" // https://golang.org/doc/install#requirements + +type target struct { + GoArch string // Architecture name according to Go + LinuxArch string // Architecture name according to the Linux Kernel + GNUArch string // Architecture name according to GNU tools (https://wiki.debian.org/Multiarch/Tuples) + BigEndian bool // Default Little Endian + SignedChar bool // Is -fsigned-char needed (default no) + Bits int +} + +// List of the 11 Linux targets supported by the go compiler. sparc64 is not +// currently supported, though a port is in progress. +var targets = []target{ + { + GoArch: "386", + LinuxArch: "x86", + GNUArch: "i686-linux-gnu", // Note "i686" not "i386" + Bits: 32, + }, + { + GoArch: "amd64", + LinuxArch: "x86", + GNUArch: "x86_64-linux-gnu", + Bits: 64, + }, + { + GoArch: "arm64", + LinuxArch: "arm64", + GNUArch: "aarch64-linux-gnu", + SignedChar: true, + Bits: 64, + }, + { + GoArch: "arm", + LinuxArch: "arm", + GNUArch: "arm-linux-gnueabi", + Bits: 32, + }, + { + GoArch: "mips", + LinuxArch: "mips", + GNUArch: "mips-linux-gnu", + BigEndian: true, + Bits: 32, + }, + { + GoArch: "mipsle", + LinuxArch: "mips", + GNUArch: "mipsel-linux-gnu", + Bits: 32, + }, + { + GoArch: "mips64", + LinuxArch: "mips", + GNUArch: "mips64-linux-gnuabi64", + BigEndian: true, + Bits: 64, + }, + { + GoArch: "mips64le", + LinuxArch: "mips", + GNUArch: "mips64el-linux-gnuabi64", + Bits: 64, + }, + { + GoArch: "ppc64", + LinuxArch: "powerpc", + GNUArch: "powerpc64-linux-gnu", + BigEndian: true, + Bits: 64, + }, + { + GoArch: "ppc64le", + LinuxArch: "powerpc", + GNUArch: "powerpc64le-linux-gnu", + Bits: 64, + }, + { + GoArch: "s390x", + LinuxArch: "s390", + GNUArch: "s390x-linux-gnu", + BigEndian: true, + SignedChar: true, + Bits: 64, + }, + // { + // GoArch: "sparc64", + // LinuxArch: "sparc", + // GNUArch: "sparc64-linux-gnu", + // BigEndian: true, + // Bits: 64, + // }, +} + +// ptracePairs is a list of pairs of targets that can, in some cases, +// run each other's binaries. +var ptracePairs = []struct{ a1, a2 string }{ + {"386", "amd64"}, + {"arm", "arm64"}, + {"mips", "mips64"}, + {"mipsle", "mips64le"}, +} + +func main() { + if runtime.GOOS != GOOS || runtime.GOARCH != BuildArch { + fmt.Printf("Build system has GOOS_GOARCH = %s_%s, need %s_%s\n", + runtime.GOOS, runtime.GOARCH, GOOS, BuildArch) + return + } + + // Check that we are using the new build system if we should + if os.Getenv("GOLANG_SYS_BUILD") != "docker" { + fmt.Println("In the new build system, mkall.go should not be called directly.") + fmt.Println("See README.md") + return + } + + // Parse the command line options + if len(os.Args) != 3 { + fmt.Println("USAGE: go run linux/mkall.go ") + return + } + LinuxDir = os.Args[1] + GlibcDir = os.Args[2] + + for _, t := range targets { + fmt.Printf("----- GENERATING: %s -----\n", t.GoArch) + if err := t.generateFiles(); err != nil { + fmt.Printf("%v\n***** FAILURE: %s *****\n\n", err, t.GoArch) + } else { + fmt.Printf("----- SUCCESS: %s -----\n\n", t.GoArch) + } + } + + fmt.Printf("----- GENERATING ptrace pairs -----\n") + ok := true + for _, p := range ptracePairs { + if err := generatePtracePair(p.a1, p.a2); err != nil { + fmt.Printf("%v\n***** FAILURE: %s/%s *****\n\n", err, p.a1, p.a2) + ok = false + } + } + if ok { + fmt.Printf("----- SUCCESS ptrace pairs -----\n\n") + } +} + +// Makes an exec.Cmd with Stderr attached to os.Stderr +func makeCommand(name string, args ...string) *exec.Cmd { + cmd := exec.Command(name, args...) + cmd.Stderr = os.Stderr + return cmd +} + +// Runs the command, pipes output to a formatter, pipes that to an output file. +func (t *target) commandFormatOutput(formatter string, outputFile string, + name string, args ...string) (err error) { + mainCmd := makeCommand(name, args...) + + fmtCmd := makeCommand(formatter) + if formatter == "mkpost" { + fmtCmd = makeCommand("go", "run", "mkpost.go") + // Set GOARCH_TARGET so mkpost knows what GOARCH is.. + fmtCmd.Env = append(os.Environ(), "GOARCH_TARGET="+t.GoArch) + // Set GOARCH to host arch for mkpost, so it can run natively. + for i, s := range fmtCmd.Env { + if strings.HasPrefix(s, "GOARCH=") { + fmtCmd.Env[i] = "GOARCH=" + BuildArch + } + } + } + + // mainCmd | fmtCmd > outputFile + if fmtCmd.Stdin, err = mainCmd.StdoutPipe(); err != nil { + return + } + if fmtCmd.Stdout, err = os.Create(outputFile); err != nil { + return + } + + // Make sure the formatter eventually closes + if err = fmtCmd.Start(); err != nil { + return + } + defer func() { + fmtErr := fmtCmd.Wait() + if err == nil { + err = fmtErr + } + }() + + return mainCmd.Run() +} + +// Generates all the files for a Linux target +func (t *target) generateFiles() error { + // Setup environment variables + os.Setenv("GOOS", GOOS) + os.Setenv("GOARCH", t.GoArch) + + // Get appropriate compiler and emulator (unless on x86) + if t.LinuxArch != "x86" { + // Check/Setup cross compiler + compiler := t.GNUArch + "-gcc" + if _, err := exec.LookPath(compiler); err != nil { + return err + } + os.Setenv("CC", compiler) + + // Check/Setup emulator (usually first component of GNUArch) + qemuArchName := t.GNUArch[:strings.Index(t.GNUArch, "-")] + if t.LinuxArch == "powerpc" { + qemuArchName = t.GoArch + } + os.Setenv("GORUN", "qemu-"+qemuArchName) + } else { + os.Setenv("CC", "gcc") + } + + // Make the include directory and fill it with headers + if err := os.MkdirAll(IncludeDir, os.ModePerm); err != nil { + return err + } + defer os.RemoveAll(IncludeDir) + if err := t.makeHeaders(); err != nil { + return fmt.Errorf("could not make header files: %v", err) + } + fmt.Println("header files generated") + + // Make each of the four files + if err := t.makeZSysnumFile(); err != nil { + return fmt.Errorf("could not make zsysnum file: %v", err) + } + fmt.Println("zsysnum file generated") + + if err := t.makeZSyscallFile(); err != nil { + return fmt.Errorf("could not make zsyscall file: %v", err) + } + fmt.Println("zsyscall file generated") + + if err := t.makeZTypesFile(); err != nil { + return fmt.Errorf("could not make ztypes file: %v", err) + } + fmt.Println("ztypes file generated") + + if err := t.makeZErrorsFile(); err != nil { + return fmt.Errorf("could not make zerrors file: %v", err) + } + fmt.Println("zerrors file generated") + + return nil +} + +// Create the Linux and glibc headers in the include directory. +func (t *target) makeHeaders() error { + // Make the Linux headers we need for this architecture + linuxMake := makeCommand("make", "headers_install", "ARCH="+t.LinuxArch, "INSTALL_HDR_PATH="+TempDir) + linuxMake.Dir = LinuxDir + if err := linuxMake.Run(); err != nil { + return err + } + + // A Temporary build directory for glibc + if err := os.MkdirAll(BuildDir, os.ModePerm); err != nil { + return err + } + defer os.RemoveAll(BuildDir) + + // Make the glibc headers we need for this architecture + confScript := filepath.Join(GlibcDir, "configure") + glibcConf := makeCommand(confScript, "--prefix="+TempDir, "--host="+t.GNUArch, "--enable-kernel="+MinKernel) + glibcConf.Dir = BuildDir + if err := glibcConf.Run(); err != nil { + return err + } + glibcMake := makeCommand("make", "install-headers") + glibcMake.Dir = BuildDir + if err := glibcMake.Run(); err != nil { + return err + } + // We only need an empty stubs file + stubsFile := filepath.Join(IncludeDir, "gnu/stubs.h") + if file, err := os.Create(stubsFile); err != nil { + return err + } else { + file.Close() + } + + return nil +} + +// makes the zsysnum_linux_$GOARCH.go file +func (t *target) makeZSysnumFile() error { + zsysnumFile := fmt.Sprintf("zsysnum_linux_%s.go", t.GoArch) + unistdFile := filepath.Join(IncludeDir, "asm/unistd.h") + + args := append(t.cFlags(), unistdFile) + return t.commandFormatOutput("gofmt", zsysnumFile, "linux/mksysnum.pl", args...) +} + +// makes the zsyscall_linux_$GOARCH.go file +func (t *target) makeZSyscallFile() error { + zsyscallFile := fmt.Sprintf("zsyscall_linux_%s.go", t.GoArch) + // Find the correct architecture syscall file (might end with x.go) + archSyscallFile := fmt.Sprintf("syscall_linux_%s.go", t.GoArch) + if _, err := os.Stat(archSyscallFile); os.IsNotExist(err) { + shortArch := strings.TrimSuffix(t.GoArch, "le") + archSyscallFile = fmt.Sprintf("syscall_linux_%sx.go", shortArch) + } + + args := append(t.mksyscallFlags(), "-tags", "linux,"+t.GoArch, + "syscall_linux.go", archSyscallFile) + return t.commandFormatOutput("gofmt", zsyscallFile, "./mksyscall.pl", args...) +} + +// makes the zerrors_linux_$GOARCH.go file +func (t *target) makeZErrorsFile() error { + zerrorsFile := fmt.Sprintf("zerrors_linux_%s.go", t.GoArch) + + return t.commandFormatOutput("gofmt", zerrorsFile, "./mkerrors.sh", t.cFlags()...) +} + +// makes the ztypes_linux_$GOARCH.go file +func (t *target) makeZTypesFile() error { + ztypesFile := fmt.Sprintf("ztypes_linux_%s.go", t.GoArch) + + args := []string{"tool", "cgo", "-godefs", "--"} + args = append(args, t.cFlags()...) + args = append(args, "linux/types.go") + return t.commandFormatOutput("mkpost", ztypesFile, "go", args...) +} + +// Flags that should be given to gcc and cgo for this target +func (t *target) cFlags() []string { + // Compile statically to avoid cross-architecture dynamic linking. + flags := []string{"-Wall", "-Werror", "-static", "-I" + IncludeDir} + + // Architecture-specific flags + if t.SignedChar { + flags = append(flags, "-fsigned-char") + } + if t.LinuxArch == "x86" { + flags = append(flags, fmt.Sprintf("-m%d", t.Bits)) + } + + return flags +} + +// Flags that should be given to mksyscall for this target +func (t *target) mksyscallFlags() (flags []string) { + if t.Bits == 32 { + if t.BigEndian { + flags = append(flags, "-b32") + } else { + flags = append(flags, "-l32") + } + } + + // This flag menas a 64-bit value should use (even, odd)-pair. + if t.GoArch == "arm" || (t.LinuxArch == "mips" && t.Bits == 32) { + flags = append(flags, "-arm") + } + return +} + +// generatePtracePair takes a pair of GOARCH values that can run each +// other's binaries, such as 386 and amd64. It extracts the PtraceRegs +// type for each one. It writes a new file defining the types +// PtraceRegsArch1 and PtraceRegsArch2 and the corresponding functions +// Ptrace{Get,Set}Regs{arch1,arch2}. This permits debugging the other +// binary on a native system. +func generatePtracePair(arch1, arch2 string) error { + def1, err := ptraceDef(arch1) + if err != nil { + return err + } + def2, err := ptraceDef(arch2) + if err != nil { + return err + } + f, err := os.Create(fmt.Sprintf("zptrace%s_linux.go", arch1)) + if err != nil { + return err + } + buf := bufio.NewWriter(f) + fmt.Fprintf(buf, "// Code generated by linux/mkall.go generatePtracePair(%s, %s). DO NOT EDIT.\n", arch1, arch2) + fmt.Fprintf(buf, "\n") + fmt.Fprintf(buf, "// +build linux\n") + fmt.Fprintf(buf, "// +build %s %s\n", arch1, arch2) + fmt.Fprintf(buf, "\n") + fmt.Fprintf(buf, "package unix\n") + fmt.Fprintf(buf, "\n") + fmt.Fprintf(buf, "%s\n", `import "unsafe"`) + fmt.Fprintf(buf, "\n") + writeOnePtrace(buf, arch1, def1) + fmt.Fprintf(buf, "\n") + writeOnePtrace(buf, arch2, def2) + if err := buf.Flush(); err != nil { + return err + } + if err := f.Close(); err != nil { + return err + } + return nil +} + +// ptraceDef returns the definition of PtraceRegs for arch. +func ptraceDef(arch string) (string, error) { + filename := fmt.Sprintf("ztypes_linux_%s.go", arch) + data, err := ioutil.ReadFile(filename) + if err != nil { + return "", fmt.Errorf("reading %s: %v", filename, err) + } + start := bytes.Index(data, []byte("type PtraceRegs struct")) + if start < 0 { + return "", fmt.Errorf("%s: no definition of PtraceRegs", filename) + } + data = data[start:] + end := bytes.Index(data, []byte("\n}\n")) + if end < 0 { + return "", fmt.Errorf("%s: can't find end of PtraceRegs definition", filename) + } + return string(data[:end+2]), nil +} + +// writeOnePtrace writes out the ptrace definitions for arch. +func writeOnePtrace(w io.Writer, arch, def string) { + uarch := string(unicode.ToUpper(rune(arch[0]))) + arch[1:] + fmt.Fprintf(w, "// PtraceRegs%s is the registers used by %s binaries.\n", uarch, arch) + fmt.Fprintf(w, "%s\n", strings.Replace(def, "PtraceRegs", "PtraceRegs"+uarch, 1)) + fmt.Fprintf(w, "\n") + fmt.Fprintf(w, "// PtraceGetRegs%s fetches the registers used by %s binaries.\n", uarch, arch) + fmt.Fprintf(w, "func PtraceGetRegs%s(pid int, regsout *PtraceRegs%s) error {\n", uarch, uarch) + fmt.Fprintf(w, "\treturn ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout)))\n") + fmt.Fprintf(w, "}\n") + fmt.Fprintf(w, "\n") + fmt.Fprintf(w, "// PtraceSetRegs%s sets the registers used by %s binaries.\n", uarch, arch) + fmt.Fprintf(w, "func PtraceSetRegs%s(pid int, regs *PtraceRegs%s) error {\n", uarch, uarch) + fmt.Fprintf(w, "\treturn ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs)))\n") + fmt.Fprintf(w, "}\n") +} diff --git a/vendor/golang.org/x/sys/unix/linux/mksysnum.pl b/vendor/golang.org/x/sys/unix/linux/mksysnum.pl new file mode 100755 index 0000000..63fd800 --- /dev/null +++ b/vendor/golang.org/x/sys/unix/linux/mksysnum.pl @@ -0,0 +1,85 @@ +#!/usr/bin/env perl +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +use strict; + +if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") { + print STDERR "GOARCH or GOOS not defined in environment\n"; + exit 1; +} + +# Check that we are using the new build system if we should +if($ENV{'GOLANG_SYS_BUILD'} ne "docker") { + print STDERR "In the new build system, mksysnum should not be called directly.\n"; + print STDERR "See README.md\n"; + exit 1; +} + +my $command = "$0 ". join(' ', @ARGV); + +print < 999){ + # ignore deprecated syscalls that are no longer implemented + # https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h?id=refs/heads/master#n716 + return; + } + $name =~ y/a-z/A-Z/; + $num = $num + $offset; + print " SYS_$name = $num;\n"; +} + +my $prev; +open(CC, "$ENV{'CC'} -E -dD @ARGV |") || die "can't run $ENV{'CC'}"; +while(){ + if(/^#define __NR_Linux\s+([0-9]+)/){ + # mips/mips64: extract offset + $offset = $1; + } + elsif(/^#define __NR(\w*)_SYSCALL_BASE\s+([0-9]+)/){ + # arm: extract offset + $offset = $1; + } + elsif(/^#define __NR_syscalls\s+/) { + # ignore redefinitions of __NR_syscalls + } + elsif(/^#define __NR_(\w*)Linux_syscalls\s+/) { + # mips/mips64: ignore definitions about the number of syscalls + } + elsif(/^#define __NR_(\w+)\s+([0-9]+)/){ + $prev = $2; + fmt($1, $2); + } + elsif(/^#define __NR3264_(\w+)\s+([0-9]+)/){ + $prev = $2; + fmt($1, $2); + } + elsif(/^#define __NR_(\w+)\s+\(\w+\+\s*([0-9]+)\)/){ + fmt($1, $prev+$2) + } + elsif(/^#define __NR_(\w+)\s+\(__NR_Linux \+ ([0-9]+)/){ + fmt($1, $2); + } + elsif(/^#define __NR_(\w+)\s+\(__NR_SYSCALL_BASE \+ ([0-9]+)/){ + fmt($1, $2); + } +} + +print < +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// On mips64, the glibc stat and kernel stat do not agree +#if (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI64) + +// Use the stat defined by the kernel with a few modifications. These are: +// * The time fields (like st_atime and st_atimensec) use the timespec +// struct (like st_atim) for consitancy with the glibc fields. +// * The padding fields get different names to not break compatibility. +// * st_blocks is signed, again for compatibility. +struct stat { + unsigned int st_dev; + unsigned int st_pad1[3]; // Reserved for st_dev expansion + + unsigned long st_ino; + + mode_t st_mode; + __u32 st_nlink; + + uid_t st_uid; + gid_t st_gid; + + unsigned int st_rdev; + unsigned int st_pad2[3]; // Reserved for st_rdev expansion + + off_t st_size; + + // These are declared as speperate fields in the kernel. Here we use + // the timespec struct for consistancy with the other stat structs. + struct timespec st_atim; + struct timespec st_mtim; + struct timespec st_ctim; + + unsigned int st_blksize; + unsigned int st_pad4; + + long st_blocks; +}; + +// These are needed because we do not include fcntl.h or sys/types.h +#include +#include + +#else + +// Use the stat defined by glibc +#include +#include + +#endif + +// These are defined in linux/fcntl.h, but including it globally causes +// conflicts with fcntl.h +#ifndef AT_STATX_SYNC_TYPE +# define AT_STATX_SYNC_TYPE 0x6000 // Type of synchronisation required from statx() +#endif +#ifndef AT_STATX_SYNC_AS_STAT +# define AT_STATX_SYNC_AS_STAT 0x0000 // - Do whatever stat() does +#endif +#ifndef AT_STATX_FORCE_SYNC +# define AT_STATX_FORCE_SYNC 0x2000 // - Force the attributes to be sync'd with the server +#endif +#ifndef AT_STATX_DONT_SYNC +# define AT_STATX_DONT_SYNC 0x4000 // - Don't sync attributes with the server +#endif + +#ifdef TCSETS2 +// On systems that have "struct termios2" use this as type Termios. +typedef struct termios2 termios_t; +#else +typedef struct termios termios_t; +#endif + +enum { + sizeofPtr = sizeof(void*), +}; + +union sockaddr_all { + struct sockaddr s1; // this one gets used for fields + struct sockaddr_in s2; // these pad it out + struct sockaddr_in6 s3; + struct sockaddr_un s4; + struct sockaddr_ll s5; + struct sockaddr_nl s6; +}; + +struct sockaddr_any { + struct sockaddr addr; + char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; +}; + +// copied from /usr/include/bluetooth/hci.h +struct sockaddr_hci { + sa_family_t hci_family; + unsigned short hci_dev; + unsigned short hci_channel; +};; + +// copied from /usr/include/linux/un.h +struct my_sockaddr_un { + sa_family_t sun_family; +#if defined(__ARM_EABI__) || defined(__powerpc64__) + // on ARM char is by default unsigned + signed char sun_path[108]; +#else + char sun_path[108]; +#endif +}; + +#ifdef __ARM_EABI__ +typedef struct user_regs PtraceRegs; +#elif defined(__aarch64__) +typedef struct user_pt_regs PtraceRegs; +#elif defined(__mips__) || defined(__powerpc64__) +typedef struct pt_regs PtraceRegs; +#elif defined(__s390x__) +typedef struct _user_regs_struct PtraceRegs; +#elif defined(__sparc__) +#include +typedef struct pt_regs PtraceRegs; +#else +typedef struct user_regs_struct PtraceRegs; +#endif + +#if defined(__s390x__) +typedef struct _user_psw_struct ptracePsw; +typedef struct _user_fpregs_struct ptraceFpregs; +typedef struct _user_per_struct ptracePer; +#else +typedef struct {} ptracePsw; +typedef struct {} ptraceFpregs; +typedef struct {} ptracePer; +#endif + +// The real epoll_event is a union, and godefs doesn't handle it well. +struct my_epoll_event { + uint32_t events; +#if defined(__ARM_EABI__) || defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABIO32) + // padding is not specified in linux/eventpoll.h but added to conform to the + // alignment requirements of EABI + int32_t padFd; +#elif defined(__powerpc64__) || defined(__s390x__) || defined(__sparc__) + int32_t _padFd; +#endif + int32_t fd; + int32_t pad; +}; + +*/ +import "C" + +// Machine characteristics; for internal use. + +const ( + sizeofPtr = C.sizeofPtr + sizeofShort = C.sizeof_short + sizeofInt = C.sizeof_int + sizeofLong = C.sizeof_long + sizeofLongLong = C.sizeof_longlong + PathMax = C.PATH_MAX +) + +// Basic types + +type ( + _C_short C.short + _C_int C.int + _C_long C.long + _C_long_long C.longlong +) + +// Time + +type Timespec C.struct_timespec + +type Timeval C.struct_timeval + +type Timex C.struct_timex + +type Time_t C.time_t + +type Tms C.struct_tms + +type Utimbuf C.struct_utimbuf + +// Processes + +type Rusage C.struct_rusage + +type Rlimit C.struct_rlimit + +type _Gid_t C.gid_t + +// Files + +type Stat_t C.struct_stat + +type Statfs_t C.struct_statfs + +type StatxTimestamp C.struct_statx_timestamp + +type Statx_t C.struct_statx + +type Dirent C.struct_dirent + +type Fsid C.fsid_t + +type Flock_t C.struct_flock + +// Filesystem Encryption + +type FscryptPolicy C.struct_fscrypt_policy + +type FscryptKey C.struct_fscrypt_key + +// Structure for Keyctl + +type KeyctlDHParams C.struct_keyctl_dh_params + +// Advice to Fadvise + +const ( + FADV_NORMAL = C.POSIX_FADV_NORMAL + FADV_RANDOM = C.POSIX_FADV_RANDOM + FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL + FADV_WILLNEED = C.POSIX_FADV_WILLNEED + FADV_DONTNEED = C.POSIX_FADV_DONTNEED + FADV_NOREUSE = C.POSIX_FADV_NOREUSE +) + +// Sockets + +type RawSockaddrInet4 C.struct_sockaddr_in + +type RawSockaddrInet6 C.struct_sockaddr_in6 + +type RawSockaddrUnix C.struct_my_sockaddr_un + +type RawSockaddrLinklayer C.struct_sockaddr_ll + +type RawSockaddrNetlink C.struct_sockaddr_nl + +type RawSockaddrHCI C.struct_sockaddr_hci + +type RawSockaddrCAN C.struct_sockaddr_can + +type RawSockaddrALG C.struct_sockaddr_alg + +type RawSockaddrVM C.struct_sockaddr_vm + +type RawSockaddr C.struct_sockaddr + +type RawSockaddrAny C.struct_sockaddr_any + +type _Socklen C.socklen_t + +type Linger C.struct_linger + +type Iovec C.struct_iovec + +type IPMreq C.struct_ip_mreq + +type IPMreqn C.struct_ip_mreqn + +type IPv6Mreq C.struct_ipv6_mreq + +type PacketMreq C.struct_packet_mreq + +type Msghdr C.struct_msghdr + +type Cmsghdr C.struct_cmsghdr + +type Inet4Pktinfo C.struct_in_pktinfo + +type Inet6Pktinfo C.struct_in6_pktinfo + +type IPv6MTUInfo C.struct_ip6_mtuinfo + +type ICMPv6Filter C.struct_icmp6_filter + +type Ucred C.struct_ucred + +type TCPInfo C.struct_tcp_info + +const ( + SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in + SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 + SizeofSockaddrAny = C.sizeof_struct_sockaddr_any + SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un + SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll + SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl + SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci + SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can + SizeofSockaddrALG = C.sizeof_struct_sockaddr_alg + SizeofSockaddrVM = C.sizeof_struct_sockaddr_vm + SizeofLinger = C.sizeof_struct_linger + SizeofIovec = C.sizeof_struct_iovec + SizeofIPMreq = C.sizeof_struct_ip_mreq + SizeofIPMreqn = C.sizeof_struct_ip_mreqn + SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq + SizeofPacketMreq = C.sizeof_struct_packet_mreq + SizeofMsghdr = C.sizeof_struct_msghdr + SizeofCmsghdr = C.sizeof_struct_cmsghdr + SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo + SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo + SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo + SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter + SizeofUcred = C.sizeof_struct_ucred + SizeofTCPInfo = C.sizeof_struct_tcp_info +) + +// Netlink routing and interface messages + +const ( + IFA_UNSPEC = C.IFA_UNSPEC + IFA_ADDRESS = C.IFA_ADDRESS + IFA_LOCAL = C.IFA_LOCAL + IFA_LABEL = C.IFA_LABEL + IFA_BROADCAST = C.IFA_BROADCAST + IFA_ANYCAST = C.IFA_ANYCAST + IFA_CACHEINFO = C.IFA_CACHEINFO + IFA_MULTICAST = C.IFA_MULTICAST + IFLA_UNSPEC = C.IFLA_UNSPEC + IFLA_ADDRESS = C.IFLA_ADDRESS + IFLA_BROADCAST = C.IFLA_BROADCAST + IFLA_IFNAME = C.IFLA_IFNAME + IFLA_MTU = C.IFLA_MTU + IFLA_LINK = C.IFLA_LINK + IFLA_QDISC = C.IFLA_QDISC + IFLA_STATS = C.IFLA_STATS + IFLA_COST = C.IFLA_COST + IFLA_PRIORITY = C.IFLA_PRIORITY + IFLA_MASTER = C.IFLA_MASTER + IFLA_WIRELESS = C.IFLA_WIRELESS + IFLA_PROTINFO = C.IFLA_PROTINFO + IFLA_TXQLEN = C.IFLA_TXQLEN + IFLA_MAP = C.IFLA_MAP + IFLA_WEIGHT = C.IFLA_WEIGHT + IFLA_OPERSTATE = C.IFLA_OPERSTATE + IFLA_LINKMODE = C.IFLA_LINKMODE + IFLA_LINKINFO = C.IFLA_LINKINFO + IFLA_NET_NS_PID = C.IFLA_NET_NS_PID + IFLA_IFALIAS = C.IFLA_IFALIAS + IFLA_MAX = C.IFLA_MAX + RT_SCOPE_UNIVERSE = C.RT_SCOPE_UNIVERSE + RT_SCOPE_SITE = C.RT_SCOPE_SITE + RT_SCOPE_LINK = C.RT_SCOPE_LINK + RT_SCOPE_HOST = C.RT_SCOPE_HOST + RT_SCOPE_NOWHERE = C.RT_SCOPE_NOWHERE + RT_TABLE_UNSPEC = C.RT_TABLE_UNSPEC + RT_TABLE_COMPAT = C.RT_TABLE_COMPAT + RT_TABLE_DEFAULT = C.RT_TABLE_DEFAULT + RT_TABLE_MAIN = C.RT_TABLE_MAIN + RT_TABLE_LOCAL = C.RT_TABLE_LOCAL + RT_TABLE_MAX = C.RT_TABLE_MAX + RTA_UNSPEC = C.RTA_UNSPEC + RTA_DST = C.RTA_DST + RTA_SRC = C.RTA_SRC + RTA_IIF = C.RTA_IIF + RTA_OIF = C.RTA_OIF + RTA_GATEWAY = C.RTA_GATEWAY + RTA_PRIORITY = C.RTA_PRIORITY + RTA_PREFSRC = C.RTA_PREFSRC + RTA_METRICS = C.RTA_METRICS + RTA_MULTIPATH = C.RTA_MULTIPATH + RTA_FLOW = C.RTA_FLOW + RTA_CACHEINFO = C.RTA_CACHEINFO + RTA_TABLE = C.RTA_TABLE + RTN_UNSPEC = C.RTN_UNSPEC + RTN_UNICAST = C.RTN_UNICAST + RTN_LOCAL = C.RTN_LOCAL + RTN_BROADCAST = C.RTN_BROADCAST + RTN_ANYCAST = C.RTN_ANYCAST + RTN_MULTICAST = C.RTN_MULTICAST + RTN_BLACKHOLE = C.RTN_BLACKHOLE + RTN_UNREACHABLE = C.RTN_UNREACHABLE + RTN_PROHIBIT = C.RTN_PROHIBIT + RTN_THROW = C.RTN_THROW + RTN_NAT = C.RTN_NAT + RTN_XRESOLVE = C.RTN_XRESOLVE + RTNLGRP_NONE = C.RTNLGRP_NONE + RTNLGRP_LINK = C.RTNLGRP_LINK + RTNLGRP_NOTIFY = C.RTNLGRP_NOTIFY + RTNLGRP_NEIGH = C.RTNLGRP_NEIGH + RTNLGRP_TC = C.RTNLGRP_TC + RTNLGRP_IPV4_IFADDR = C.RTNLGRP_IPV4_IFADDR + RTNLGRP_IPV4_MROUTE = C.RTNLGRP_IPV4_MROUTE + RTNLGRP_IPV4_ROUTE = C.RTNLGRP_IPV4_ROUTE + RTNLGRP_IPV4_RULE = C.RTNLGRP_IPV4_RULE + RTNLGRP_IPV6_IFADDR = C.RTNLGRP_IPV6_IFADDR + RTNLGRP_IPV6_MROUTE = C.RTNLGRP_IPV6_MROUTE + RTNLGRP_IPV6_ROUTE = C.RTNLGRP_IPV6_ROUTE + RTNLGRP_IPV6_IFINFO = C.RTNLGRP_IPV6_IFINFO + RTNLGRP_IPV6_PREFIX = C.RTNLGRP_IPV6_PREFIX + RTNLGRP_IPV6_RULE = C.RTNLGRP_IPV6_RULE + RTNLGRP_ND_USEROPT = C.RTNLGRP_ND_USEROPT + SizeofNlMsghdr = C.sizeof_struct_nlmsghdr + SizeofNlMsgerr = C.sizeof_struct_nlmsgerr + SizeofRtGenmsg = C.sizeof_struct_rtgenmsg + SizeofNlAttr = C.sizeof_struct_nlattr + SizeofRtAttr = C.sizeof_struct_rtattr + SizeofIfInfomsg = C.sizeof_struct_ifinfomsg + SizeofIfAddrmsg = C.sizeof_struct_ifaddrmsg + SizeofRtMsg = C.sizeof_struct_rtmsg + SizeofRtNexthop = C.sizeof_struct_rtnexthop +) + +type NlMsghdr C.struct_nlmsghdr + +type NlMsgerr C.struct_nlmsgerr + +type RtGenmsg C.struct_rtgenmsg + +type NlAttr C.struct_nlattr + +type RtAttr C.struct_rtattr + +type IfInfomsg C.struct_ifinfomsg + +type IfAddrmsg C.struct_ifaddrmsg + +type RtMsg C.struct_rtmsg + +type RtNexthop C.struct_rtnexthop + +// Linux socket filter + +const ( + SizeofSockFilter = C.sizeof_struct_sock_filter + SizeofSockFprog = C.sizeof_struct_sock_fprog +) + +type SockFilter C.struct_sock_filter + +type SockFprog C.struct_sock_fprog + +// Inotify + +type InotifyEvent C.struct_inotify_event + +const SizeofInotifyEvent = C.sizeof_struct_inotify_event + +// Ptrace + +// Register structures +type PtraceRegs C.PtraceRegs + +// Structures contained in PtraceRegs on s390x (exported by mkpost.go) +type PtracePsw C.ptracePsw + +type PtraceFpregs C.ptraceFpregs + +type PtracePer C.ptracePer + +// Misc + +type FdSet C.fd_set + +type Sysinfo_t C.struct_sysinfo + +type Utsname C.struct_utsname + +type Ustat_t C.struct_ustat + +type EpollEvent C.struct_my_epoll_event + +const ( + AT_EMPTY_PATH = C.AT_EMPTY_PATH + AT_FDCWD = C.AT_FDCWD + AT_NO_AUTOMOUNT = C.AT_NO_AUTOMOUNT + AT_REMOVEDIR = C.AT_REMOVEDIR + + AT_STATX_SYNC_AS_STAT = C.AT_STATX_SYNC_AS_STAT + AT_STATX_FORCE_SYNC = C.AT_STATX_FORCE_SYNC + AT_STATX_DONT_SYNC = C.AT_STATX_DONT_SYNC + + AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW + AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW +) + +type PollFd C.struct_pollfd + +const ( + POLLIN = C.POLLIN + POLLPRI = C.POLLPRI + POLLOUT = C.POLLOUT + POLLRDHUP = C.POLLRDHUP + POLLERR = C.POLLERR + POLLHUP = C.POLLHUP + POLLNVAL = C.POLLNVAL +) + +type Sigset_t C.sigset_t + +const RNDGETENTCNT = C.RNDGETENTCNT + +const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP + +// Terminal handling + +type Termios C.termios_t + +type Winsize C.struct_winsize + +// Taskstats and cgroup stats. + +type Taskstats C.struct_taskstats + +const ( + TASKSTATS_CMD_UNSPEC = C.TASKSTATS_CMD_UNSPEC + TASKSTATS_CMD_GET = C.TASKSTATS_CMD_GET + TASKSTATS_CMD_NEW = C.TASKSTATS_CMD_NEW + TASKSTATS_TYPE_UNSPEC = C.TASKSTATS_TYPE_UNSPEC + TASKSTATS_TYPE_PID = C.TASKSTATS_TYPE_PID + TASKSTATS_TYPE_TGID = C.TASKSTATS_TYPE_TGID + TASKSTATS_TYPE_STATS = C.TASKSTATS_TYPE_STATS + TASKSTATS_TYPE_AGGR_PID = C.TASKSTATS_TYPE_AGGR_PID + TASKSTATS_TYPE_AGGR_TGID = C.TASKSTATS_TYPE_AGGR_TGID + TASKSTATS_TYPE_NULL = C.TASKSTATS_TYPE_NULL + TASKSTATS_CMD_ATTR_UNSPEC = C.TASKSTATS_CMD_ATTR_UNSPEC + TASKSTATS_CMD_ATTR_PID = C.TASKSTATS_CMD_ATTR_PID + TASKSTATS_CMD_ATTR_TGID = C.TASKSTATS_CMD_ATTR_TGID + TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_REGISTER_CPUMASK + TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = C.TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK +) + +type CGroupStats C.struct_cgroupstats + +const ( + CGROUPSTATS_CMD_UNSPEC = C.__TASKSTATS_CMD_MAX + CGROUPSTATS_CMD_GET = C.CGROUPSTATS_CMD_GET + CGROUPSTATS_CMD_NEW = C.CGROUPSTATS_CMD_NEW + CGROUPSTATS_TYPE_UNSPEC = C.CGROUPSTATS_TYPE_UNSPEC + CGROUPSTATS_TYPE_CGROUP_STATS = C.CGROUPSTATS_TYPE_CGROUP_STATS + CGROUPSTATS_CMD_ATTR_UNSPEC = C.CGROUPSTATS_CMD_ATTR_UNSPEC + CGROUPSTATS_CMD_ATTR_FD = C.CGROUPSTATS_CMD_ATTR_FD +) + +// Generic netlink + +type Genlmsghdr C.struct_genlmsghdr + +const ( + CTRL_CMD_UNSPEC = C.CTRL_CMD_UNSPEC + CTRL_CMD_NEWFAMILY = C.CTRL_CMD_NEWFAMILY + CTRL_CMD_DELFAMILY = C.CTRL_CMD_DELFAMILY + CTRL_CMD_GETFAMILY = C.CTRL_CMD_GETFAMILY + CTRL_CMD_NEWOPS = C.CTRL_CMD_NEWOPS + CTRL_CMD_DELOPS = C.CTRL_CMD_DELOPS + CTRL_CMD_GETOPS = C.CTRL_CMD_GETOPS + CTRL_CMD_NEWMCAST_GRP = C.CTRL_CMD_NEWMCAST_GRP + CTRL_CMD_DELMCAST_GRP = C.CTRL_CMD_DELMCAST_GRP + CTRL_CMD_GETMCAST_GRP = C.CTRL_CMD_GETMCAST_GRP + CTRL_ATTR_UNSPEC = C.CTRL_ATTR_UNSPEC + CTRL_ATTR_FAMILY_ID = C.CTRL_ATTR_FAMILY_ID + CTRL_ATTR_FAMILY_NAME = C.CTRL_ATTR_FAMILY_NAME + CTRL_ATTR_VERSION = C.CTRL_ATTR_VERSION + CTRL_ATTR_HDRSIZE = C.CTRL_ATTR_HDRSIZE + CTRL_ATTR_MAXATTR = C.CTRL_ATTR_MAXATTR + CTRL_ATTR_OPS = C.CTRL_ATTR_OPS + CTRL_ATTR_MCAST_GROUPS = C.CTRL_ATTR_MCAST_GROUPS + CTRL_ATTR_OP_UNSPEC = C.CTRL_ATTR_OP_UNSPEC + CTRL_ATTR_OP_ID = C.CTRL_ATTR_OP_ID + CTRL_ATTR_OP_FLAGS = C.CTRL_ATTR_OP_FLAGS + CTRL_ATTR_MCAST_GRP_UNSPEC = C.CTRL_ATTR_MCAST_GRP_UNSPEC + CTRL_ATTR_MCAST_GRP_NAME = C.CTRL_ATTR_MCAST_GRP_NAME + CTRL_ATTR_MCAST_GRP_ID = C.CTRL_ATTR_MCAST_GRP_ID +) + +// CPU affinity + +type cpuMask C.__cpu_mask + +const ( + _CPU_SETSIZE = C.__CPU_SETSIZE + _NCPUBITS = C.__NCPUBITS +) diff --git a/vendor/golang.org/x/sys/windows/asm_windows_386.s b/vendor/golang.org/x/sys/windows/asm_windows_386.s new file mode 100644 index 0000000..1c20dd2 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/asm_windows_386.s @@ -0,0 +1,13 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +// System calls for 386, Windows are implemented in runtime/syscall_windows.goc +// + +TEXT ·getprocaddress(SB), 7, $0-8 + JMP syscall·getprocaddress(SB) + +TEXT ·loadlibrary(SB), 7, $0-4 + JMP syscall·loadlibrary(SB) diff --git a/vendor/golang.org/x/sys/windows/asm_windows_amd64.s b/vendor/golang.org/x/sys/windows/asm_windows_amd64.s new file mode 100644 index 0000000..4d025ab --- /dev/null +++ b/vendor/golang.org/x/sys/windows/asm_windows_amd64.s @@ -0,0 +1,13 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +// System calls for amd64, Windows are implemented in runtime/syscall_windows.goc +// + +TEXT ·getprocaddress(SB), 7, $0-32 + JMP syscall·getprocaddress(SB) + +TEXT ·loadlibrary(SB), 7, $0-8 + JMP syscall·loadlibrary(SB) diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go new file mode 100644 index 0000000..e92c05b --- /dev/null +++ b/vendor/golang.org/x/sys/windows/dll_windows.go @@ -0,0 +1,378 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "sync" + "sync/atomic" + "syscall" + "unsafe" +) + +// DLLError describes reasons for DLL load failures. +type DLLError struct { + Err error + ObjName string + Msg string +} + +func (e *DLLError) Error() string { return e.Msg } + +// Implemented in runtime/syscall_windows.goc; we provide jumps to them in our assembly file. +func loadlibrary(filename *uint16) (handle uintptr, err syscall.Errno) +func getprocaddress(handle uintptr, procname *uint8) (proc uintptr, err syscall.Errno) + +// A DLL implements access to a single DLL. +type DLL struct { + Name string + Handle Handle +} + +// LoadDLL loads DLL file into memory. +// +// Warning: using LoadDLL without an absolute path name is subject to +// DLL preloading attacks. To safely load a system DLL, use LazyDLL +// with System set to true, or use LoadLibraryEx directly. +func LoadDLL(name string) (dll *DLL, err error) { + namep, err := UTF16PtrFromString(name) + if err != nil { + return nil, err + } + h, e := loadlibrary(namep) + if e != 0 { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to load " + name + ": " + e.Error(), + } + } + d := &DLL{ + Name: name, + Handle: Handle(h), + } + return d, nil +} + +// MustLoadDLL is like LoadDLL but panics if load operation failes. +func MustLoadDLL(name string) *DLL { + d, e := LoadDLL(name) + if e != nil { + panic(e) + } + return d +} + +// FindProc searches DLL d for procedure named name and returns *Proc +// if found. It returns an error if search fails. +func (d *DLL) FindProc(name string) (proc *Proc, err error) { + namep, err := BytePtrFromString(name) + if err != nil { + return nil, err + } + a, e := getprocaddress(uintptr(d.Handle), namep) + if e != 0 { + return nil, &DLLError{ + Err: e, + ObjName: name, + Msg: "Failed to find " + name + " procedure in " + d.Name + ": " + e.Error(), + } + } + p := &Proc{ + Dll: d, + Name: name, + addr: a, + } + return p, nil +} + +// MustFindProc is like FindProc but panics if search fails. +func (d *DLL) MustFindProc(name string) *Proc { + p, e := d.FindProc(name) + if e != nil { + panic(e) + } + return p +} + +// Release unloads DLL d from memory. +func (d *DLL) Release() (err error) { + return FreeLibrary(d.Handle) +} + +// A Proc implements access to a procedure inside a DLL. +type Proc struct { + Dll *DLL + Name string + addr uintptr +} + +// Addr returns the address of the procedure represented by p. +// The return value can be passed to Syscall to run the procedure. +func (p *Proc) Addr() uintptr { + return p.addr +} + +//go:uintptrescapes + +// Call executes procedure p with arguments a. It will panic, if more than 15 arguments +// are supplied. +// +// The returned error is always non-nil, constructed from the result of GetLastError. +// Callers must inspect the primary return value to decide whether an error occurred +// (according to the semantics of the specific function being called) before consulting +// the error. The error will be guaranteed to contain windows.Errno. +func (p *Proc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { + switch len(a) { + case 0: + return syscall.Syscall(p.Addr(), uintptr(len(a)), 0, 0, 0) + case 1: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], 0, 0) + case 2: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], 0) + case 3: + return syscall.Syscall(p.Addr(), uintptr(len(a)), a[0], a[1], a[2]) + case 4: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], 0, 0) + case 5: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], 0) + case 6: + return syscall.Syscall6(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5]) + case 7: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], 0, 0) + case 8: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], 0) + case 9: + return syscall.Syscall9(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]) + case 10: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], 0, 0) + case 11: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], 0) + case 12: + return syscall.Syscall12(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]) + case 13: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], 0, 0) + case 14: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], 0) + case 15: + return syscall.Syscall15(p.Addr(), uintptr(len(a)), a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]) + default: + panic("Call " + p.Name + " with too many arguments " + itoa(len(a)) + ".") + } +} + +// A LazyDLL implements access to a single DLL. +// It will delay the load of the DLL until the first +// call to its Handle method or to one of its +// LazyProc's Addr method. +type LazyDLL struct { + Name string + + // System determines whether the DLL must be loaded from the + // Windows System directory, bypassing the normal DLL search + // path. + System bool + + mu sync.Mutex + dll *DLL // non nil once DLL is loaded +} + +// Load loads DLL file d.Name into memory. It returns an error if fails. +// Load will not try to load DLL, if it is already loaded into memory. +func (d *LazyDLL) Load() error { + // Non-racy version of: + // if d.dll != nil { + if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll))) != nil { + return nil + } + d.mu.Lock() + defer d.mu.Unlock() + if d.dll != nil { + return nil + } + + // kernel32.dll is special, since it's where LoadLibraryEx comes from. + // The kernel already special-cases its name, so it's always + // loaded from system32. + var dll *DLL + var err error + if d.Name == "kernel32.dll" { + dll, err = LoadDLL(d.Name) + } else { + dll, err = loadLibraryEx(d.Name, d.System) + } + if err != nil { + return err + } + + // Non-racy version of: + // d.dll = dll + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&d.dll)), unsafe.Pointer(dll)) + return nil +} + +// mustLoad is like Load but panics if search fails. +func (d *LazyDLL) mustLoad() { + e := d.Load() + if e != nil { + panic(e) + } +} + +// Handle returns d's module handle. +func (d *LazyDLL) Handle() uintptr { + d.mustLoad() + return uintptr(d.dll.Handle) +} + +// NewProc returns a LazyProc for accessing the named procedure in the DLL d. +func (d *LazyDLL) NewProc(name string) *LazyProc { + return &LazyProc{l: d, Name: name} +} + +// NewLazyDLL creates new LazyDLL associated with DLL file. +func NewLazyDLL(name string) *LazyDLL { + return &LazyDLL{Name: name} +} + +// NewLazySystemDLL is like NewLazyDLL, but will only +// search Windows System directory for the DLL if name is +// a base name (like "advapi32.dll"). +func NewLazySystemDLL(name string) *LazyDLL { + return &LazyDLL{Name: name, System: true} +} + +// A LazyProc implements access to a procedure inside a LazyDLL. +// It delays the lookup until the Addr method is called. +type LazyProc struct { + Name string + + mu sync.Mutex + l *LazyDLL + proc *Proc +} + +// Find searches DLL for procedure named p.Name. It returns +// an error if search fails. Find will not search procedure, +// if it is already found and loaded into memory. +func (p *LazyProc) Find() error { + // Non-racy version of: + // if p.proc == nil { + if atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc))) == nil { + p.mu.Lock() + defer p.mu.Unlock() + if p.proc == nil { + e := p.l.Load() + if e != nil { + return e + } + proc, e := p.l.dll.FindProc(p.Name) + if e != nil { + return e + } + // Non-racy version of: + // p.proc = proc + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&p.proc)), unsafe.Pointer(proc)) + } + } + return nil +} + +// mustFind is like Find but panics if search fails. +func (p *LazyProc) mustFind() { + e := p.Find() + if e != nil { + panic(e) + } +} + +// Addr returns the address of the procedure represented by p. +// The return value can be passed to Syscall to run the procedure. +// It will panic if the procedure cannot be found. +func (p *LazyProc) Addr() uintptr { + p.mustFind() + return p.proc.Addr() +} + +//go:uintptrescapes + +// Call executes procedure p with arguments a. It will panic, if more than 15 arguments +// are supplied. It will also panic if the procedure cannot be found. +// +// The returned error is always non-nil, constructed from the result of GetLastError. +// Callers must inspect the primary return value to decide whether an error occurred +// (according to the semantics of the specific function being called) before consulting +// the error. The error will be guaranteed to contain windows.Errno. +func (p *LazyProc) Call(a ...uintptr) (r1, r2 uintptr, lastErr error) { + p.mustFind() + return p.proc.Call(a...) +} + +var canDoSearchSystem32Once struct { + sync.Once + v bool +} + +func initCanDoSearchSystem32() { + // https://msdn.microsoft.com/en-us/library/ms684179(v=vs.85).aspx says: + // "Windows 7, Windows Server 2008 R2, Windows Vista, and Windows + // Server 2008: The LOAD_LIBRARY_SEARCH_* flags are available on + // systems that have KB2533623 installed. To determine whether the + // flags are available, use GetProcAddress to get the address of the + // AddDllDirectory, RemoveDllDirectory, or SetDefaultDllDirectories + // function. If GetProcAddress succeeds, the LOAD_LIBRARY_SEARCH_* + // flags can be used with LoadLibraryEx." + canDoSearchSystem32Once.v = (modkernel32.NewProc("AddDllDirectory").Find() == nil) +} + +func canDoSearchSystem32() bool { + canDoSearchSystem32Once.Do(initCanDoSearchSystem32) + return canDoSearchSystem32Once.v +} + +func isBaseName(name string) bool { + for _, c := range name { + if c == ':' || c == '/' || c == '\\' { + return false + } + } + return true +} + +// loadLibraryEx wraps the Windows LoadLibraryEx function. +// +// See https://msdn.microsoft.com/en-us/library/windows/desktop/ms684179(v=vs.85).aspx +// +// If name is not an absolute path, LoadLibraryEx searches for the DLL +// in a variety of automatic locations unless constrained by flags. +// See: https://msdn.microsoft.com/en-us/library/ff919712%28VS.85%29.aspx +func loadLibraryEx(name string, system bool) (*DLL, error) { + loadDLL := name + var flags uintptr + if system { + if canDoSearchSystem32() { + const LOAD_LIBRARY_SEARCH_SYSTEM32 = 0x00000800 + flags = LOAD_LIBRARY_SEARCH_SYSTEM32 + } else if isBaseName(name) { + // WindowsXP or unpatched Windows machine + // trying to load "foo.dll" out of the system + // folder, but LoadLibraryEx doesn't support + // that yet on their system, so emulate it. + windir, _ := Getenv("WINDIR") // old var; apparently works on XP + if windir == "" { + return nil, errString("%WINDIR% not defined") + } + loadDLL = windir + "\\System32\\" + name + } + } + h, err := LoadLibraryEx(loadDLL, 0, flags) + if err != nil { + return nil, err + } + return &DLL{Name: name, Handle: h}, nil +} + +type errString string + +func (s errString) Error() string { return string(s) } diff --git a/vendor/golang.org/x/sys/windows/env_windows.go b/vendor/golang.org/x/sys/windows/env_windows.go new file mode 100644 index 0000000..bdc71e2 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/env_windows.go @@ -0,0 +1,29 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Windows environment variables. + +package windows + +import "syscall" + +func Getenv(key string) (value string, found bool) { + return syscall.Getenv(key) +} + +func Setenv(key, value string) error { + return syscall.Setenv(key, value) +} + +func Clearenv() { + syscall.Clearenv() +} + +func Environ() []string { + return syscall.Environ() +} + +func Unsetenv(key string) error { + return syscall.Unsetenv(key) +} diff --git a/vendor/golang.org/x/sys/windows/eventlog.go b/vendor/golang.org/x/sys/windows/eventlog.go new file mode 100644 index 0000000..40af946 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/eventlog.go @@ -0,0 +1,20 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package windows + +const ( + EVENTLOG_SUCCESS = 0 + EVENTLOG_ERROR_TYPE = 1 + EVENTLOG_WARNING_TYPE = 2 + EVENTLOG_INFORMATION_TYPE = 4 + EVENTLOG_AUDIT_SUCCESS = 8 + EVENTLOG_AUDIT_FAILURE = 16 +) + +//sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW +//sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource +//sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW diff --git a/vendor/golang.org/x/sys/windows/exec_windows.go b/vendor/golang.org/x/sys/windows/exec_windows.go new file mode 100644 index 0000000..3606c3a --- /dev/null +++ b/vendor/golang.org/x/sys/windows/exec_windows.go @@ -0,0 +1,97 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Fork, exec, wait, etc. + +package windows + +// EscapeArg rewrites command line argument s as prescribed +// in http://msdn.microsoft.com/en-us/library/ms880421. +// This function returns "" (2 double quotes) if s is empty. +// Alternatively, these transformations are done: +// - every back slash (\) is doubled, but only if immediately +// followed by double quote ("); +// - every double quote (") is escaped by back slash (\); +// - finally, s is wrapped with double quotes (arg -> "arg"), +// but only if there is space or tab inside s. +func EscapeArg(s string) string { + if len(s) == 0 { + return "\"\"" + } + n := len(s) + hasSpace := false + for i := 0; i < len(s); i++ { + switch s[i] { + case '"', '\\': + n++ + case ' ', '\t': + hasSpace = true + } + } + if hasSpace { + n += 2 + } + if n == len(s) { + return s + } + + qs := make([]byte, n) + j := 0 + if hasSpace { + qs[j] = '"' + j++ + } + slashes := 0 + for i := 0; i < len(s); i++ { + switch s[i] { + default: + slashes = 0 + qs[j] = s[i] + case '\\': + slashes++ + qs[j] = s[i] + case '"': + for ; slashes > 0; slashes-- { + qs[j] = '\\' + j++ + } + qs[j] = '\\' + j++ + qs[j] = s[i] + } + j++ + } + if hasSpace { + for ; slashes > 0; slashes-- { + qs[j] = '\\' + j++ + } + qs[j] = '"' + j++ + } + return string(qs[:j]) +} + +func CloseOnExec(fd Handle) { + SetHandleInformation(Handle(fd), HANDLE_FLAG_INHERIT, 0) +} + +// FullPath retrieves the full path of the specified file. +func FullPath(name string) (path string, err error) { + p, err := UTF16PtrFromString(name) + if err != nil { + return "", err + } + n := uint32(100) + for { + buf := make([]uint16, n) + n, err = GetFullPathName(p, uint32(len(buf)), &buf[0], nil) + if err != nil { + return "", err + } + if n <= uint32(len(buf)) { + return UTF16ToString(buf[:n]), nil + } + } +} diff --git a/vendor/golang.org/x/sys/windows/memory_windows.go b/vendor/golang.org/x/sys/windows/memory_windows.go new file mode 100644 index 0000000..f80a420 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/memory_windows.go @@ -0,0 +1,26 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +const ( + MEM_COMMIT = 0x00001000 + MEM_RESERVE = 0x00002000 + MEM_DECOMMIT = 0x00004000 + MEM_RELEASE = 0x00008000 + MEM_RESET = 0x00080000 + MEM_TOP_DOWN = 0x00100000 + MEM_WRITE_WATCH = 0x00200000 + MEM_PHYSICAL = 0x00400000 + MEM_RESET_UNDO = 0x01000000 + MEM_LARGE_PAGES = 0x20000000 + + PAGE_NOACCESS = 0x01 + PAGE_READONLY = 0x02 + PAGE_READWRITE = 0x04 + PAGE_WRITECOPY = 0x08 + PAGE_EXECUTE_READ = 0x20 + PAGE_EXECUTE_READWRITE = 0x40 + PAGE_EXECUTE_WRITECOPY = 0x80 +) diff --git a/vendor/golang.org/x/sys/windows/mksyscall.go b/vendor/golang.org/x/sys/windows/mksyscall.go new file mode 100644 index 0000000..fb7db0e --- /dev/null +++ b/vendor/golang.org/x/sys/windows/mksyscall.go @@ -0,0 +1,7 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go diff --git a/vendor/golang.org/x/sys/windows/race.go b/vendor/golang.org/x/sys/windows/race.go new file mode 100644 index 0000000..a74e3e2 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/race.go @@ -0,0 +1,30 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows,race + +package windows + +import ( + "runtime" + "unsafe" +) + +const raceenabled = true + +func raceAcquire(addr unsafe.Pointer) { + runtime.RaceAcquire(addr) +} + +func raceReleaseMerge(addr unsafe.Pointer) { + runtime.RaceReleaseMerge(addr) +} + +func raceReadRange(addr unsafe.Pointer, len int) { + runtime.RaceReadRange(addr, len) +} + +func raceWriteRange(addr unsafe.Pointer, len int) { + runtime.RaceWriteRange(addr, len) +} diff --git a/vendor/golang.org/x/sys/windows/race0.go b/vendor/golang.org/x/sys/windows/race0.go new file mode 100644 index 0000000..e44a3cb --- /dev/null +++ b/vendor/golang.org/x/sys/windows/race0.go @@ -0,0 +1,25 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows,!race + +package windows + +import ( + "unsafe" +) + +const raceenabled = false + +func raceAcquire(addr unsafe.Pointer) { +} + +func raceReleaseMerge(addr unsafe.Pointer) { +} + +func raceReadRange(addr unsafe.Pointer, len int) { +} + +func raceWriteRange(addr unsafe.Pointer, len int) { +} diff --git a/vendor/golang.org/x/sys/windows/registry/export_test.go b/vendor/golang.org/x/sys/windows/registry/export_test.go new file mode 100644 index 0000000..8badf6f --- /dev/null +++ b/vendor/golang.org/x/sys/windows/registry/export_test.go @@ -0,0 +1,11 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package registry + +func (k Key) SetValue(name string, valtype uint32, data []byte) error { + return k.setValue(name, valtype, data) +} diff --git a/vendor/golang.org/x/sys/windows/registry/key.go b/vendor/golang.org/x/sys/windows/registry/key.go new file mode 100644 index 0000000..d0beb19 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/registry/key.go @@ -0,0 +1,200 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// Package registry provides access to the Windows registry. +// +// Here is a simple example, opening a registry key and reading a string value from it. +// +// k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SOFTWARE\Microsoft\Windows NT\CurrentVersion`, registry.QUERY_VALUE) +// if err != nil { +// log.Fatal(err) +// } +// defer k.Close() +// +// s, _, err := k.GetStringValue("SystemRoot") +// if err != nil { +// log.Fatal(err) +// } +// fmt.Printf("Windows system root is %q\n", s) +// +package registry + +import ( + "io" + "syscall" + "time" +) + +const ( + // Registry key security and access rights. + // See https://msdn.microsoft.com/en-us/library/windows/desktop/ms724878.aspx + // for details. + ALL_ACCESS = 0xf003f + CREATE_LINK = 0x00020 + CREATE_SUB_KEY = 0x00004 + ENUMERATE_SUB_KEYS = 0x00008 + EXECUTE = 0x20019 + NOTIFY = 0x00010 + QUERY_VALUE = 0x00001 + READ = 0x20019 + SET_VALUE = 0x00002 + WOW64_32KEY = 0x00200 + WOW64_64KEY = 0x00100 + WRITE = 0x20006 +) + +// Key is a handle to an open Windows registry key. +// Keys can be obtained by calling OpenKey; there are +// also some predefined root keys such as CURRENT_USER. +// Keys can be used directly in the Windows API. +type Key syscall.Handle + +const ( + // Windows defines some predefined root keys that are always open. + // An application can use these keys as entry points to the registry. + // Normally these keys are used in OpenKey to open new keys, + // but they can also be used anywhere a Key is required. + CLASSES_ROOT = Key(syscall.HKEY_CLASSES_ROOT) + CURRENT_USER = Key(syscall.HKEY_CURRENT_USER) + LOCAL_MACHINE = Key(syscall.HKEY_LOCAL_MACHINE) + USERS = Key(syscall.HKEY_USERS) + CURRENT_CONFIG = Key(syscall.HKEY_CURRENT_CONFIG) + PERFORMANCE_DATA = Key(syscall.HKEY_PERFORMANCE_DATA) +) + +// Close closes open key k. +func (k Key) Close() error { + return syscall.RegCloseKey(syscall.Handle(k)) +} + +// OpenKey opens a new key with path name relative to key k. +// It accepts any open key, including CURRENT_USER and others, +// and returns the new key and an error. +// The access parameter specifies desired access rights to the +// key to be opened. +func OpenKey(k Key, path string, access uint32) (Key, error) { + p, err := syscall.UTF16PtrFromString(path) + if err != nil { + return 0, err + } + var subkey syscall.Handle + err = syscall.RegOpenKeyEx(syscall.Handle(k), p, 0, access, &subkey) + if err != nil { + return 0, err + } + return Key(subkey), nil +} + +// OpenRemoteKey opens a predefined registry key on another +// computer pcname. The key to be opened is specified by k, but +// can only be one of LOCAL_MACHINE, PERFORMANCE_DATA or USERS. +// If pcname is "", OpenRemoteKey returns local computer key. +func OpenRemoteKey(pcname string, k Key) (Key, error) { + var err error + var p *uint16 + if pcname != "" { + p, err = syscall.UTF16PtrFromString(`\\` + pcname) + if err != nil { + return 0, err + } + } + var remoteKey syscall.Handle + err = regConnectRegistry(p, syscall.Handle(k), &remoteKey) + if err != nil { + return 0, err + } + return Key(remoteKey), nil +} + +// ReadSubKeyNames returns the names of subkeys of key k. +// The parameter n controls the number of returned names, +// analogous to the way os.File.Readdirnames works. +func (k Key) ReadSubKeyNames(n int) ([]string, error) { + ki, err := k.Stat() + if err != nil { + return nil, err + } + names := make([]string, 0, ki.SubKeyCount) + buf := make([]uint16, ki.MaxSubKeyLen+1) // extra room for terminating zero byte +loopItems: + for i := uint32(0); ; i++ { + if n > 0 { + if len(names) == n { + return names, nil + } + } + l := uint32(len(buf)) + for { + err := syscall.RegEnumKeyEx(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil) + if err == nil { + break + } + if err == syscall.ERROR_MORE_DATA { + // Double buffer size and try again. + l = uint32(2 * len(buf)) + buf = make([]uint16, l) + continue + } + if err == _ERROR_NO_MORE_ITEMS { + break loopItems + } + return names, err + } + names = append(names, syscall.UTF16ToString(buf[:l])) + } + if n > len(names) { + return names, io.EOF + } + return names, nil +} + +// CreateKey creates a key named path under open key k. +// CreateKey returns the new key and a boolean flag that reports +// whether the key already existed. +// The access parameter specifies the access rights for the key +// to be created. +func CreateKey(k Key, path string, access uint32) (newk Key, openedExisting bool, err error) { + var h syscall.Handle + var d uint32 + err = regCreateKeyEx(syscall.Handle(k), syscall.StringToUTF16Ptr(path), + 0, nil, _REG_OPTION_NON_VOLATILE, access, nil, &h, &d) + if err != nil { + return 0, false, err + } + return Key(h), d == _REG_OPENED_EXISTING_KEY, nil +} + +// DeleteKey deletes the subkey path of key k and its values. +func DeleteKey(k Key, path string) error { + return regDeleteKey(syscall.Handle(k), syscall.StringToUTF16Ptr(path)) +} + +// A KeyInfo describes the statistics of a key. It is returned by Stat. +type KeyInfo struct { + SubKeyCount uint32 + MaxSubKeyLen uint32 // size of the key's subkey with the longest name, in Unicode characters, not including the terminating zero byte + ValueCount uint32 + MaxValueNameLen uint32 // size of the key's longest value name, in Unicode characters, not including the terminating zero byte + MaxValueLen uint32 // longest data component among the key's values, in bytes + lastWriteTime syscall.Filetime +} + +// ModTime returns the key's last write time. +func (ki *KeyInfo) ModTime() time.Time { + return time.Unix(0, ki.lastWriteTime.Nanoseconds()) +} + +// Stat retrieves information about the open key k. +func (k Key) Stat() (*KeyInfo, error) { + var ki KeyInfo + err := syscall.RegQueryInfoKey(syscall.Handle(k), nil, nil, nil, + &ki.SubKeyCount, &ki.MaxSubKeyLen, nil, &ki.ValueCount, + &ki.MaxValueNameLen, &ki.MaxValueLen, nil, &ki.lastWriteTime) + if err != nil { + return nil, err + } + return &ki, nil +} diff --git a/vendor/golang.org/x/sys/windows/registry/mksyscall.go b/vendor/golang.org/x/sys/windows/registry/mksyscall.go new file mode 100644 index 0000000..0ac95ff --- /dev/null +++ b/vendor/golang.org/x/sys/windows/registry/mksyscall.go @@ -0,0 +1,7 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package registry + +//go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall_windows.go syscall.go diff --git a/vendor/golang.org/x/sys/windows/registry/registry_test.go b/vendor/golang.org/x/sys/windows/registry/registry_test.go new file mode 100644 index 0000000..3cb9771 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/registry/registry_test.go @@ -0,0 +1,756 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package registry_test + +import ( + "bytes" + "crypto/rand" + "os" + "syscall" + "testing" + "time" + "unsafe" + + "golang.org/x/sys/windows/registry" +) + +func randKeyName(prefix string) string { + const numbers = "0123456789" + buf := make([]byte, 10) + rand.Read(buf) + for i, b := range buf { + buf[i] = numbers[b%byte(len(numbers))] + } + return prefix + string(buf) +} + +func TestReadSubKeyNames(t *testing.T) { + k, err := registry.OpenKey(registry.CLASSES_ROOT, "TypeLib", registry.ENUMERATE_SUB_KEYS|registry.QUERY_VALUE) + if err != nil { + t.Fatal(err) + } + defer k.Close() + + names, err := k.ReadSubKeyNames(-1) + if err != nil { + t.Fatal(err) + } + var foundStdOle bool + for _, name := range names { + // Every PC has "stdole 2.0 OLE Automation" library installed. + if name == "{00020430-0000-0000-C000-000000000046}" { + foundStdOle = true + } + } + if !foundStdOle { + t.Fatal("could not find stdole 2.0 OLE Automation") + } +} + +func TestCreateOpenDeleteKey(t *testing.T) { + k, err := registry.OpenKey(registry.CURRENT_USER, "Software", registry.QUERY_VALUE) + if err != nil { + t.Fatal(err) + } + defer k.Close() + + testKName := randKeyName("TestCreateOpenDeleteKey_") + + testK, exist, err := registry.CreateKey(k, testKName, registry.CREATE_SUB_KEY) + if err != nil { + t.Fatal(err) + } + defer testK.Close() + + if exist { + t.Fatalf("key %q already exists", testKName) + } + + testKAgain, exist, err := registry.CreateKey(k, testKName, registry.CREATE_SUB_KEY) + if err != nil { + t.Fatal(err) + } + defer testKAgain.Close() + + if !exist { + t.Fatalf("key %q should already exist", testKName) + } + + testKOpened, err := registry.OpenKey(k, testKName, registry.ENUMERATE_SUB_KEYS) + if err != nil { + t.Fatal(err) + } + defer testKOpened.Close() + + err = registry.DeleteKey(k, testKName) + if err != nil { + t.Fatal(err) + } + + testKOpenedAgain, err := registry.OpenKey(k, testKName, registry.ENUMERATE_SUB_KEYS) + if err == nil { + defer testKOpenedAgain.Close() + t.Fatalf("key %q should already been deleted", testKName) + } + if err != registry.ErrNotExist { + t.Fatalf(`unexpected error ("not exist" expected): %v`, err) + } +} + +func equalStringSlice(a, b []string) bool { + if len(a) != len(b) { + return false + } + if a == nil { + return true + } + for i := range a { + if a[i] != b[i] { + return false + } + } + return true +} + +type ValueTest struct { + Type uint32 + Name string + Value interface{} + WillFail bool +} + +var ValueTests = []ValueTest{ + {Type: registry.SZ, Name: "String1", Value: ""}, + {Type: registry.SZ, Name: "String2", Value: "\000", WillFail: true}, + {Type: registry.SZ, Name: "String3", Value: "Hello World"}, + {Type: registry.SZ, Name: "String4", Value: "Hello World\000", WillFail: true}, + {Type: registry.EXPAND_SZ, Name: "ExpString1", Value: ""}, + {Type: registry.EXPAND_SZ, Name: "ExpString2", Value: "\000", WillFail: true}, + {Type: registry.EXPAND_SZ, Name: "ExpString3", Value: "Hello World"}, + {Type: registry.EXPAND_SZ, Name: "ExpString4", Value: "Hello\000World", WillFail: true}, + {Type: registry.EXPAND_SZ, Name: "ExpString5", Value: "%PATH%"}, + {Type: registry.EXPAND_SZ, Name: "ExpString6", Value: "%NO_SUCH_VARIABLE%"}, + {Type: registry.EXPAND_SZ, Name: "ExpString7", Value: "%PATH%;."}, + {Type: registry.BINARY, Name: "Binary1", Value: []byte{}}, + {Type: registry.BINARY, Name: "Binary2", Value: []byte{1, 2, 3}}, + {Type: registry.BINARY, Name: "Binary3", Value: []byte{3, 2, 1, 0, 1, 2, 3}}, + {Type: registry.DWORD, Name: "Dword1", Value: uint64(0)}, + {Type: registry.DWORD, Name: "Dword2", Value: uint64(1)}, + {Type: registry.DWORD, Name: "Dword3", Value: uint64(0xff)}, + {Type: registry.DWORD, Name: "Dword4", Value: uint64(0xffff)}, + {Type: registry.QWORD, Name: "Qword1", Value: uint64(0)}, + {Type: registry.QWORD, Name: "Qword2", Value: uint64(1)}, + {Type: registry.QWORD, Name: "Qword3", Value: uint64(0xff)}, + {Type: registry.QWORD, Name: "Qword4", Value: uint64(0xffff)}, + {Type: registry.QWORD, Name: "Qword5", Value: uint64(0xffffff)}, + {Type: registry.QWORD, Name: "Qword6", Value: uint64(0xffffffff)}, + {Type: registry.MULTI_SZ, Name: "MultiString1", Value: []string{"a", "b", "c"}}, + {Type: registry.MULTI_SZ, Name: "MultiString2", Value: []string{"abc", "", "cba"}}, + {Type: registry.MULTI_SZ, Name: "MultiString3", Value: []string{""}}, + {Type: registry.MULTI_SZ, Name: "MultiString4", Value: []string{"abcdef"}}, + {Type: registry.MULTI_SZ, Name: "MultiString5", Value: []string{"\000"}, WillFail: true}, + {Type: registry.MULTI_SZ, Name: "MultiString6", Value: []string{"a\000b"}, WillFail: true}, + {Type: registry.MULTI_SZ, Name: "MultiString7", Value: []string{"ab", "\000", "cd"}, WillFail: true}, + {Type: registry.MULTI_SZ, Name: "MultiString8", Value: []string{"\000", "cd"}, WillFail: true}, + {Type: registry.MULTI_SZ, Name: "MultiString9", Value: []string{"ab", "\000"}, WillFail: true}, +} + +func setValues(t *testing.T, k registry.Key) { + for _, test := range ValueTests { + var err error + switch test.Type { + case registry.SZ: + err = k.SetStringValue(test.Name, test.Value.(string)) + case registry.EXPAND_SZ: + err = k.SetExpandStringValue(test.Name, test.Value.(string)) + case registry.MULTI_SZ: + err = k.SetStringsValue(test.Name, test.Value.([]string)) + case registry.BINARY: + err = k.SetBinaryValue(test.Name, test.Value.([]byte)) + case registry.DWORD: + err = k.SetDWordValue(test.Name, uint32(test.Value.(uint64))) + case registry.QWORD: + err = k.SetQWordValue(test.Name, test.Value.(uint64)) + default: + t.Fatalf("unsupported type %d for %s value", test.Type, test.Name) + } + if test.WillFail { + if err == nil { + t.Fatalf("setting %s value %q should fail, but succeeded", test.Name, test.Value) + } + } else { + if err != nil { + t.Fatal(err) + } + } + } +} + +func enumerateValues(t *testing.T, k registry.Key) { + names, err := k.ReadValueNames(-1) + if err != nil { + t.Error(err) + return + } + haveNames := make(map[string]bool) + for _, n := range names { + haveNames[n] = false + } + for _, test := range ValueTests { + wantFound := !test.WillFail + _, haveFound := haveNames[test.Name] + if wantFound && !haveFound { + t.Errorf("value %s is not found while enumerating", test.Name) + } + if haveFound && !wantFound { + t.Errorf("value %s is found while enumerating, but expected to fail", test.Name) + } + if haveFound { + delete(haveNames, test.Name) + } + } + for n, v := range haveNames { + t.Errorf("value %s (%v) is found while enumerating, but has not been cretaed", n, v) + } +} + +func testErrNotExist(t *testing.T, name string, err error) { + if err == nil { + t.Errorf("%s value should not exist", name) + return + } + if err != registry.ErrNotExist { + t.Errorf("reading %s value should return 'not exist' error, but got: %s", name, err) + return + } +} + +func testErrUnexpectedType(t *testing.T, test ValueTest, gottype uint32, err error) { + if err == nil { + t.Errorf("GetXValue(%q) should not succeed", test.Name) + return + } + if err != registry.ErrUnexpectedType { + t.Errorf("reading %s value should return 'unexpected key value type' error, but got: %s", test.Name, err) + return + } + if gottype != test.Type { + t.Errorf("want %s value type %v, got %v", test.Name, test.Type, gottype) + return + } +} + +func testGetStringValue(t *testing.T, k registry.Key, test ValueTest) { + got, gottype, err := k.GetStringValue(test.Name) + if err != nil { + t.Errorf("GetStringValue(%s) failed: %v", test.Name, err) + return + } + if got != test.Value { + t.Errorf("want %s value %q, got %q", test.Name, test.Value, got) + return + } + if gottype != test.Type { + t.Errorf("want %s value type %v, got %v", test.Name, test.Type, gottype) + return + } + if gottype == registry.EXPAND_SZ { + _, err = registry.ExpandString(got) + if err != nil { + t.Errorf("ExpandString(%s) failed: %v", got, err) + return + } + } +} + +func testGetIntegerValue(t *testing.T, k registry.Key, test ValueTest) { + got, gottype, err := k.GetIntegerValue(test.Name) + if err != nil { + t.Errorf("GetIntegerValue(%s) failed: %v", test.Name, err) + return + } + if got != test.Value.(uint64) { + t.Errorf("want %s value %v, got %v", test.Name, test.Value, got) + return + } + if gottype != test.Type { + t.Errorf("want %s value type %v, got %v", test.Name, test.Type, gottype) + return + } +} + +func testGetBinaryValue(t *testing.T, k registry.Key, test ValueTest) { + got, gottype, err := k.GetBinaryValue(test.Name) + if err != nil { + t.Errorf("GetBinaryValue(%s) failed: %v", test.Name, err) + return + } + if !bytes.Equal(got, test.Value.([]byte)) { + t.Errorf("want %s value %v, got %v", test.Name, test.Value, got) + return + } + if gottype != test.Type { + t.Errorf("want %s value type %v, got %v", test.Name, test.Type, gottype) + return + } +} + +func testGetStringsValue(t *testing.T, k registry.Key, test ValueTest) { + got, gottype, err := k.GetStringsValue(test.Name) + if err != nil { + t.Errorf("GetStringsValue(%s) failed: %v", test.Name, err) + return + } + if !equalStringSlice(got, test.Value.([]string)) { + t.Errorf("want %s value %#v, got %#v", test.Name, test.Value, got) + return + } + if gottype != test.Type { + t.Errorf("want %s value type %v, got %v", test.Name, test.Type, gottype) + return + } +} + +func testGetValue(t *testing.T, k registry.Key, test ValueTest, size int) { + if size <= 0 { + return + } + // read data with no buffer + gotsize, gottype, err := k.GetValue(test.Name, nil) + if err != nil { + t.Errorf("GetValue(%s, [%d]byte) failed: %v", test.Name, size, err) + return + } + if gotsize != size { + t.Errorf("want %s value size of %d, got %v", test.Name, size, gotsize) + return + } + if gottype != test.Type { + t.Errorf("want %s value type %v, got %v", test.Name, test.Type, gottype) + return + } + // read data with short buffer + gotsize, gottype, err = k.GetValue(test.Name, make([]byte, size-1)) + if err == nil { + t.Errorf("GetValue(%s, [%d]byte) should fail, but succeeded", test.Name, size-1) + return + } + if err != registry.ErrShortBuffer { + t.Errorf("reading %s value should return 'short buffer' error, but got: %s", test.Name, err) + return + } + if gotsize != size { + t.Errorf("want %s value size of %d, got %v", test.Name, size, gotsize) + return + } + if gottype != test.Type { + t.Errorf("want %s value type %v, got %v", test.Name, test.Type, gottype) + return + } + // read full data + gotsize, gottype, err = k.GetValue(test.Name, make([]byte, size)) + if err != nil { + t.Errorf("GetValue(%s, [%d]byte) failed: %v", test.Name, size, err) + return + } + if gotsize != size { + t.Errorf("want %s value size of %d, got %v", test.Name, size, gotsize) + return + } + if gottype != test.Type { + t.Errorf("want %s value type %v, got %v", test.Name, test.Type, gottype) + return + } + // check GetValue returns ErrNotExist as required + _, _, err = k.GetValue(test.Name+"_not_there", make([]byte, size)) + if err == nil { + t.Errorf("GetValue(%q) should not succeed", test.Name) + return + } + if err != registry.ErrNotExist { + t.Errorf("GetValue(%q) should return 'not exist' error, but got: %s", test.Name, err) + return + } +} + +func testValues(t *testing.T, k registry.Key) { + for _, test := range ValueTests { + switch test.Type { + case registry.SZ, registry.EXPAND_SZ: + if test.WillFail { + _, _, err := k.GetStringValue(test.Name) + testErrNotExist(t, test.Name, err) + } else { + testGetStringValue(t, k, test) + _, gottype, err := k.GetIntegerValue(test.Name) + testErrUnexpectedType(t, test, gottype, err) + // Size of utf16 string in bytes is not perfect, + // but correct for current test values. + // Size also includes terminating 0. + testGetValue(t, k, test, (len(test.Value.(string))+1)*2) + } + _, _, err := k.GetStringValue(test.Name + "_string_not_created") + testErrNotExist(t, test.Name+"_string_not_created", err) + case registry.DWORD, registry.QWORD: + testGetIntegerValue(t, k, test) + _, gottype, err := k.GetBinaryValue(test.Name) + testErrUnexpectedType(t, test, gottype, err) + _, _, err = k.GetIntegerValue(test.Name + "_int_not_created") + testErrNotExist(t, test.Name+"_int_not_created", err) + size := 8 + if test.Type == registry.DWORD { + size = 4 + } + testGetValue(t, k, test, size) + case registry.BINARY: + testGetBinaryValue(t, k, test) + _, gottype, err := k.GetStringsValue(test.Name) + testErrUnexpectedType(t, test, gottype, err) + _, _, err = k.GetBinaryValue(test.Name + "_byte_not_created") + testErrNotExist(t, test.Name+"_byte_not_created", err) + testGetValue(t, k, test, len(test.Value.([]byte))) + case registry.MULTI_SZ: + if test.WillFail { + _, _, err := k.GetStringsValue(test.Name) + testErrNotExist(t, test.Name, err) + } else { + testGetStringsValue(t, k, test) + _, gottype, err := k.GetStringValue(test.Name) + testErrUnexpectedType(t, test, gottype, err) + size := 0 + for _, s := range test.Value.([]string) { + size += len(s) + 1 // nil terminated + } + size += 1 // extra nil at the end + size *= 2 // count bytes, not uint16 + testGetValue(t, k, test, size) + } + _, _, err := k.GetStringsValue(test.Name + "_strings_not_created") + testErrNotExist(t, test.Name+"_strings_not_created", err) + default: + t.Errorf("unsupported type %d for %s value", test.Type, test.Name) + continue + } + } +} + +func testStat(t *testing.T, k registry.Key) { + subk, _, err := registry.CreateKey(k, "subkey", registry.CREATE_SUB_KEY) + if err != nil { + t.Error(err) + return + } + defer subk.Close() + + defer registry.DeleteKey(k, "subkey") + + ki, err := k.Stat() + if err != nil { + t.Error(err) + return + } + if ki.SubKeyCount != 1 { + t.Error("key must have 1 subkey") + } + if ki.MaxSubKeyLen != 6 { + t.Error("key max subkey name length must be 6") + } + if ki.ValueCount != 24 { + t.Errorf("key must have 24 values, but is %d", ki.ValueCount) + } + if ki.MaxValueNameLen != 12 { + t.Errorf("key max value name length must be 10, but is %d", ki.MaxValueNameLen) + } + if ki.MaxValueLen != 38 { + t.Errorf("key max value length must be 38, but is %d", ki.MaxValueLen) + } + if mt, ct := ki.ModTime(), time.Now(); ct.Sub(mt) > 100*time.Millisecond { + t.Errorf("key mod time is not close to current time: mtime=%v current=%v delta=%v", mt, ct, ct.Sub(mt)) + } +} + +func deleteValues(t *testing.T, k registry.Key) { + for _, test := range ValueTests { + if test.WillFail { + continue + } + err := k.DeleteValue(test.Name) + if err != nil { + t.Error(err) + continue + } + } + names, err := k.ReadValueNames(-1) + if err != nil { + t.Error(err) + return + } + if len(names) != 0 { + t.Errorf("some values remain after deletion: %v", names) + } +} + +func TestValues(t *testing.T) { + softwareK, err := registry.OpenKey(registry.CURRENT_USER, "Software", registry.QUERY_VALUE) + if err != nil { + t.Fatal(err) + } + defer softwareK.Close() + + testKName := randKeyName("TestValues_") + + k, exist, err := registry.CreateKey(softwareK, testKName, registry.CREATE_SUB_KEY|registry.QUERY_VALUE|registry.SET_VALUE) + if err != nil { + t.Fatal(err) + } + defer k.Close() + + if exist { + t.Fatalf("key %q already exists", testKName) + } + + defer registry.DeleteKey(softwareK, testKName) + + setValues(t, k) + + enumerateValues(t, k) + + testValues(t, k) + + testStat(t, k) + + deleteValues(t, k) +} + +func walkKey(t *testing.T, k registry.Key, kname string) { + names, err := k.ReadValueNames(-1) + if err != nil { + t.Fatalf("reading value names of %s failed: %v", kname, err) + } + for _, name := range names { + _, valtype, err := k.GetValue(name, nil) + if err != nil { + t.Fatalf("reading value type of %s of %s failed: %v", name, kname, err) + } + switch valtype { + case registry.NONE: + case registry.SZ: + _, _, err := k.GetStringValue(name) + if err != nil { + t.Error(err) + } + case registry.EXPAND_SZ: + s, _, err := k.GetStringValue(name) + if err != nil { + t.Error(err) + } + _, err = registry.ExpandString(s) + if err != nil { + t.Error(err) + } + case registry.DWORD, registry.QWORD: + _, _, err := k.GetIntegerValue(name) + if err != nil { + t.Error(err) + } + case registry.BINARY: + _, _, err := k.GetBinaryValue(name) + if err != nil { + t.Error(err) + } + case registry.MULTI_SZ: + _, _, err := k.GetStringsValue(name) + if err != nil { + t.Error(err) + } + case registry.FULL_RESOURCE_DESCRIPTOR, registry.RESOURCE_LIST, registry.RESOURCE_REQUIREMENTS_LIST: + // TODO: not implemented + default: + t.Fatalf("value type %d of %s of %s failed: %v", valtype, name, kname, err) + } + } + + names, err = k.ReadSubKeyNames(-1) + if err != nil { + t.Fatalf("reading sub-keys of %s failed: %v", kname, err) + } + for _, name := range names { + func() { + subk, err := registry.OpenKey(k, name, registry.ENUMERATE_SUB_KEYS|registry.QUERY_VALUE) + if err != nil { + if err == syscall.ERROR_ACCESS_DENIED { + // ignore error, if we are not allowed to access this key + return + } + t.Fatalf("opening sub-keys %s of %s failed: %v", name, kname, err) + } + defer subk.Close() + + walkKey(t, subk, kname+`\`+name) + }() + } +} + +func TestWalkFullRegistry(t *testing.T) { + if testing.Short() { + t.Skip("skipping long running test in short mode") + } + walkKey(t, registry.CLASSES_ROOT, "CLASSES_ROOT") + walkKey(t, registry.CURRENT_USER, "CURRENT_USER") + walkKey(t, registry.LOCAL_MACHINE, "LOCAL_MACHINE") + walkKey(t, registry.USERS, "USERS") + walkKey(t, registry.CURRENT_CONFIG, "CURRENT_CONFIG") +} + +func TestExpandString(t *testing.T) { + got, err := registry.ExpandString("%PATH%") + if err != nil { + t.Fatal(err) + } + want := os.Getenv("PATH") + if got != want { + t.Errorf("want %q string expanded, got %q", want, got) + } +} + +func TestInvalidValues(t *testing.T) { + softwareK, err := registry.OpenKey(registry.CURRENT_USER, "Software", registry.QUERY_VALUE) + if err != nil { + t.Fatal(err) + } + defer softwareK.Close() + + testKName := randKeyName("TestInvalidValues_") + + k, exist, err := registry.CreateKey(softwareK, testKName, registry.CREATE_SUB_KEY|registry.QUERY_VALUE|registry.SET_VALUE) + if err != nil { + t.Fatal(err) + } + defer k.Close() + + if exist { + t.Fatalf("key %q already exists", testKName) + } + + defer registry.DeleteKey(softwareK, testKName) + + var tests = []struct { + Type uint32 + Name string + Data []byte + }{ + {registry.DWORD, "Dword1", nil}, + {registry.DWORD, "Dword2", []byte{1, 2, 3}}, + {registry.QWORD, "Qword1", nil}, + {registry.QWORD, "Qword2", []byte{1, 2, 3}}, + {registry.QWORD, "Qword3", []byte{1, 2, 3, 4, 5, 6, 7}}, + {registry.MULTI_SZ, "MultiString1", nil}, + {registry.MULTI_SZ, "MultiString2", []byte{0}}, + {registry.MULTI_SZ, "MultiString3", []byte{'a', 'b', 0}}, + {registry.MULTI_SZ, "MultiString4", []byte{'a', 0, 0, 'b', 0}}, + {registry.MULTI_SZ, "MultiString5", []byte{'a', 0, 0}}, + } + + for _, test := range tests { + err := k.SetValue(test.Name, test.Type, test.Data) + if err != nil { + t.Fatalf("SetValue for %q failed: %v", test.Name, err) + } + } + + for _, test := range tests { + switch test.Type { + case registry.DWORD, registry.QWORD: + value, valType, err := k.GetIntegerValue(test.Name) + if err == nil { + t.Errorf("GetIntegerValue(%q) succeeded. Returns type=%d value=%v", test.Name, valType, value) + } + case registry.MULTI_SZ: + value, valType, err := k.GetStringsValue(test.Name) + if err == nil { + if len(value) != 0 { + t.Errorf("GetStringsValue(%q) succeeded. Returns type=%d value=%v", test.Name, valType, value) + } + } + default: + t.Errorf("unsupported type %d for %s value", test.Type, test.Name) + } + } +} + +func TestGetMUIStringValue(t *testing.T) { + if err := registry.LoadRegLoadMUIString(); err != nil { + t.Skip("regLoadMUIString not supported; skipping") + } + if err := procGetDynamicTimeZoneInformation.Find(); err != nil { + t.Skipf("%s not supported; skipping", procGetDynamicTimeZoneInformation.Name) + } + var dtzi DynamicTimezoneinformation + if _, err := GetDynamicTimeZoneInformation(&dtzi); err != nil { + t.Fatal(err) + } + tzKeyName := syscall.UTF16ToString(dtzi.TimeZoneKeyName[:]) + timezoneK, err := registry.OpenKey(registry.LOCAL_MACHINE, + `SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\`+tzKeyName, registry.READ) + if err != nil { + t.Fatal(err) + } + defer timezoneK.Close() + + type testType struct { + name string + want string + } + var tests = []testType{ + {"MUI_Std", syscall.UTF16ToString(dtzi.StandardName[:])}, + } + if dtzi.DynamicDaylightTimeDisabled == 0 { + tests = append(tests, testType{"MUI_Dlt", syscall.UTF16ToString(dtzi.DaylightName[:])}) + } + + for _, test := range tests { + got, err := timezoneK.GetMUIStringValue(test.name) + if err != nil { + t.Error("GetMUIStringValue:", err) + } + + if got != test.want { + t.Errorf("GetMUIStringValue: %s: Got %q, want %q", test.name, got, test.want) + } + } +} + +type DynamicTimezoneinformation struct { + Bias int32 + StandardName [32]uint16 + StandardDate syscall.Systemtime + StandardBias int32 + DaylightName [32]uint16 + DaylightDate syscall.Systemtime + DaylightBias int32 + TimeZoneKeyName [128]uint16 + DynamicDaylightTimeDisabled uint8 +} + +var ( + kernel32DLL = syscall.NewLazyDLL("kernel32") + + procGetDynamicTimeZoneInformation = kernel32DLL.NewProc("GetDynamicTimeZoneInformation") +) + +func GetDynamicTimeZoneInformation(dtzi *DynamicTimezoneinformation) (rc uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetDynamicTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(dtzi)), 0, 0) + rc = uint32(r0) + if rc == 0xffffffff { + if e1 != 0 { + err = error(e1) + } else { + err = syscall.EINVAL + } + } + return +} diff --git a/vendor/golang.org/x/sys/windows/registry/syscall.go b/vendor/golang.org/x/sys/windows/registry/syscall.go new file mode 100644 index 0000000..e66643c --- /dev/null +++ b/vendor/golang.org/x/sys/windows/registry/syscall.go @@ -0,0 +1,32 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package registry + +import "syscall" + +const ( + _REG_OPTION_NON_VOLATILE = 0 + + _REG_CREATED_NEW_KEY = 1 + _REG_OPENED_EXISTING_KEY = 2 + + _ERROR_NO_MORE_ITEMS syscall.Errno = 259 +) + +func LoadRegLoadMUIString() error { + return procRegLoadMUIStringW.Find() +} + +//sys regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) = advapi32.RegCreateKeyExW +//sys regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) = advapi32.RegDeleteKeyW +//sys regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) = advapi32.RegSetValueExW +//sys regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegEnumValueW +//sys regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) = advapi32.RegDeleteValueW +//sys regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) = advapi32.RegLoadMUIStringW +//sys regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) = advapi32.RegConnectRegistryW + +//sys expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) = kernel32.ExpandEnvironmentStringsW diff --git a/vendor/golang.org/x/sys/windows/registry/value.go b/vendor/golang.org/x/sys/windows/registry/value.go new file mode 100644 index 0000000..71d4e15 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/registry/value.go @@ -0,0 +1,384 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package registry + +import ( + "errors" + "io" + "syscall" + "unicode/utf16" + "unsafe" +) + +const ( + // Registry value types. + NONE = 0 + SZ = 1 + EXPAND_SZ = 2 + BINARY = 3 + DWORD = 4 + DWORD_BIG_ENDIAN = 5 + LINK = 6 + MULTI_SZ = 7 + RESOURCE_LIST = 8 + FULL_RESOURCE_DESCRIPTOR = 9 + RESOURCE_REQUIREMENTS_LIST = 10 + QWORD = 11 +) + +var ( + // ErrShortBuffer is returned when the buffer was too short for the operation. + ErrShortBuffer = syscall.ERROR_MORE_DATA + + // ErrNotExist is returned when a registry key or value does not exist. + ErrNotExist = syscall.ERROR_FILE_NOT_FOUND + + // ErrUnexpectedType is returned by Get*Value when the value's type was unexpected. + ErrUnexpectedType = errors.New("unexpected key value type") +) + +// GetValue retrieves the type and data for the specified value associated +// with an open key k. It fills up buffer buf and returns the retrieved +// byte count n. If buf is too small to fit the stored value it returns +// ErrShortBuffer error along with the required buffer size n. +// If no buffer is provided, it returns true and actual buffer size n. +// If no buffer is provided, GetValue returns the value's type only. +// If the value does not exist, the error returned is ErrNotExist. +// +// GetValue is a low level function. If value's type is known, use the appropriate +// Get*Value function instead. +func (k Key) GetValue(name string, buf []byte) (n int, valtype uint32, err error) { + pname, err := syscall.UTF16PtrFromString(name) + if err != nil { + return 0, 0, err + } + var pbuf *byte + if len(buf) > 0 { + pbuf = (*byte)(unsafe.Pointer(&buf[0])) + } + l := uint32(len(buf)) + err = syscall.RegQueryValueEx(syscall.Handle(k), pname, nil, &valtype, pbuf, &l) + if err != nil { + return int(l), valtype, err + } + return int(l), valtype, nil +} + +func (k Key) getValue(name string, buf []byte) (date []byte, valtype uint32, err error) { + p, err := syscall.UTF16PtrFromString(name) + if err != nil { + return nil, 0, err + } + var t uint32 + n := uint32(len(buf)) + for { + err = syscall.RegQueryValueEx(syscall.Handle(k), p, nil, &t, (*byte)(unsafe.Pointer(&buf[0])), &n) + if err == nil { + return buf[:n], t, nil + } + if err != syscall.ERROR_MORE_DATA { + return nil, 0, err + } + if n <= uint32(len(buf)) { + return nil, 0, err + } + buf = make([]byte, n) + } +} + +// GetStringValue retrieves the string value for the specified +// value name associated with an open key k. It also returns the value's type. +// If value does not exist, GetStringValue returns ErrNotExist. +// If value is not SZ or EXPAND_SZ, it will return the correct value +// type and ErrUnexpectedType. +func (k Key) GetStringValue(name string) (val string, valtype uint32, err error) { + data, typ, err2 := k.getValue(name, make([]byte, 64)) + if err2 != nil { + return "", typ, err2 + } + switch typ { + case SZ, EXPAND_SZ: + default: + return "", typ, ErrUnexpectedType + } + if len(data) == 0 { + return "", typ, nil + } + u := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[:] + return syscall.UTF16ToString(u), typ, nil +} + +// GetMUIStringValue retrieves the localized string value for +// the specified value name associated with an open key k. +// If the value name doesn't exist or the localized string value +// can't be resolved, GetMUIStringValue returns ErrNotExist. +// GetMUIStringValue panics if the system doesn't support +// regLoadMUIString; use LoadRegLoadMUIString to check if +// regLoadMUIString is supported before calling this function. +func (k Key) GetMUIStringValue(name string) (string, error) { + pname, err := syscall.UTF16PtrFromString(name) + if err != nil { + return "", err + } + + buf := make([]uint16, 1024) + var buflen uint32 + var pdir *uint16 + + err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir) + if err == syscall.ERROR_FILE_NOT_FOUND { // Try fallback path + + // Try to resolve the string value using the system directory as + // a DLL search path; this assumes the string value is of the form + // @[path]\dllname,-strID but with no path given, e.g. @tzres.dll,-320. + + // This approach works with tzres.dll but may have to be revised + // in the future to allow callers to provide custom search paths. + + var s string + s, err = ExpandString("%SystemRoot%\\system32\\") + if err != nil { + return "", err + } + pdir, err = syscall.UTF16PtrFromString(s) + if err != nil { + return "", err + } + + err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir) + } + + for err == syscall.ERROR_MORE_DATA { // Grow buffer if needed + if buflen <= uint32(len(buf)) { + break // Buffer not growing, assume race; break + } + buf = make([]uint16, buflen) + err = regLoadMUIString(syscall.Handle(k), pname, &buf[0], uint32(len(buf)), &buflen, 0, pdir) + } + + if err != nil { + return "", err + } + + return syscall.UTF16ToString(buf), nil +} + +// ExpandString expands environment-variable strings and replaces +// them with the values defined for the current user. +// Use ExpandString to expand EXPAND_SZ strings. +func ExpandString(value string) (string, error) { + if value == "" { + return "", nil + } + p, err := syscall.UTF16PtrFromString(value) + if err != nil { + return "", err + } + r := make([]uint16, 100) + for { + n, err := expandEnvironmentStrings(p, &r[0], uint32(len(r))) + if err != nil { + return "", err + } + if n <= uint32(len(r)) { + u := (*[1 << 29]uint16)(unsafe.Pointer(&r[0]))[:] + return syscall.UTF16ToString(u), nil + } + r = make([]uint16, n) + } +} + +// GetStringsValue retrieves the []string value for the specified +// value name associated with an open key k. It also returns the value's type. +// If value does not exist, GetStringsValue returns ErrNotExist. +// If value is not MULTI_SZ, it will return the correct value +// type and ErrUnexpectedType. +func (k Key) GetStringsValue(name string) (val []string, valtype uint32, err error) { + data, typ, err2 := k.getValue(name, make([]byte, 64)) + if err2 != nil { + return nil, typ, err2 + } + if typ != MULTI_SZ { + return nil, typ, ErrUnexpectedType + } + if len(data) == 0 { + return nil, typ, nil + } + p := (*[1 << 29]uint16)(unsafe.Pointer(&data[0]))[:len(data)/2] + if len(p) == 0 { + return nil, typ, nil + } + if p[len(p)-1] == 0 { + p = p[:len(p)-1] // remove terminating null + } + val = make([]string, 0, 5) + from := 0 + for i, c := range p { + if c == 0 { + val = append(val, string(utf16.Decode(p[from:i]))) + from = i + 1 + } + } + return val, typ, nil +} + +// GetIntegerValue retrieves the integer value for the specified +// value name associated with an open key k. It also returns the value's type. +// If value does not exist, GetIntegerValue returns ErrNotExist. +// If value is not DWORD or QWORD, it will return the correct value +// type and ErrUnexpectedType. +func (k Key) GetIntegerValue(name string) (val uint64, valtype uint32, err error) { + data, typ, err2 := k.getValue(name, make([]byte, 8)) + if err2 != nil { + return 0, typ, err2 + } + switch typ { + case DWORD: + if len(data) != 4 { + return 0, typ, errors.New("DWORD value is not 4 bytes long") + } + return uint64(*(*uint32)(unsafe.Pointer(&data[0]))), DWORD, nil + case QWORD: + if len(data) != 8 { + return 0, typ, errors.New("QWORD value is not 8 bytes long") + } + return uint64(*(*uint64)(unsafe.Pointer(&data[0]))), QWORD, nil + default: + return 0, typ, ErrUnexpectedType + } +} + +// GetBinaryValue retrieves the binary value for the specified +// value name associated with an open key k. It also returns the value's type. +// If value does not exist, GetBinaryValue returns ErrNotExist. +// If value is not BINARY, it will return the correct value +// type and ErrUnexpectedType. +func (k Key) GetBinaryValue(name string) (val []byte, valtype uint32, err error) { + data, typ, err2 := k.getValue(name, make([]byte, 64)) + if err2 != nil { + return nil, typ, err2 + } + if typ != BINARY { + return nil, typ, ErrUnexpectedType + } + return data, typ, nil +} + +func (k Key) setValue(name string, valtype uint32, data []byte) error { + p, err := syscall.UTF16PtrFromString(name) + if err != nil { + return err + } + if len(data) == 0 { + return regSetValueEx(syscall.Handle(k), p, 0, valtype, nil, 0) + } + return regSetValueEx(syscall.Handle(k), p, 0, valtype, &data[0], uint32(len(data))) +} + +// SetDWordValue sets the data and type of a name value +// under key k to value and DWORD. +func (k Key) SetDWordValue(name string, value uint32) error { + return k.setValue(name, DWORD, (*[4]byte)(unsafe.Pointer(&value))[:]) +} + +// SetQWordValue sets the data and type of a name value +// under key k to value and QWORD. +func (k Key) SetQWordValue(name string, value uint64) error { + return k.setValue(name, QWORD, (*[8]byte)(unsafe.Pointer(&value))[:]) +} + +func (k Key) setStringValue(name string, valtype uint32, value string) error { + v, err := syscall.UTF16FromString(value) + if err != nil { + return err + } + buf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[:len(v)*2] + return k.setValue(name, valtype, buf) +} + +// SetStringValue sets the data and type of a name value +// under key k to value and SZ. The value must not contain a zero byte. +func (k Key) SetStringValue(name, value string) error { + return k.setStringValue(name, SZ, value) +} + +// SetExpandStringValue sets the data and type of a name value +// under key k to value and EXPAND_SZ. The value must not contain a zero byte. +func (k Key) SetExpandStringValue(name, value string) error { + return k.setStringValue(name, EXPAND_SZ, value) +} + +// SetStringsValue sets the data and type of a name value +// under key k to value and MULTI_SZ. The value strings +// must not contain a zero byte. +func (k Key) SetStringsValue(name string, value []string) error { + ss := "" + for _, s := range value { + for i := 0; i < len(s); i++ { + if s[i] == 0 { + return errors.New("string cannot have 0 inside") + } + } + ss += s + "\x00" + } + v := utf16.Encode([]rune(ss + "\x00")) + buf := (*[1 << 29]byte)(unsafe.Pointer(&v[0]))[:len(v)*2] + return k.setValue(name, MULTI_SZ, buf) +} + +// SetBinaryValue sets the data and type of a name value +// under key k to value and BINARY. +func (k Key) SetBinaryValue(name string, value []byte) error { + return k.setValue(name, BINARY, value) +} + +// DeleteValue removes a named value from the key k. +func (k Key) DeleteValue(name string) error { + return regDeleteValue(syscall.Handle(k), syscall.StringToUTF16Ptr(name)) +} + +// ReadValueNames returns the value names of key k. +// The parameter n controls the number of returned names, +// analogous to the way os.File.Readdirnames works. +func (k Key) ReadValueNames(n int) ([]string, error) { + ki, err := k.Stat() + if err != nil { + return nil, err + } + names := make([]string, 0, ki.ValueCount) + buf := make([]uint16, ki.MaxValueNameLen+1) // extra room for terminating null character +loopItems: + for i := uint32(0); ; i++ { + if n > 0 { + if len(names) == n { + return names, nil + } + } + l := uint32(len(buf)) + for { + err := regEnumValue(syscall.Handle(k), i, &buf[0], &l, nil, nil, nil, nil) + if err == nil { + break + } + if err == syscall.ERROR_MORE_DATA { + // Double buffer size and try again. + l = uint32(2 * len(buf)) + buf = make([]uint16, l) + continue + } + if err == _ERROR_NO_MORE_ITEMS { + break loopItems + } + return names, err + } + names = append(names, syscall.UTF16ToString(buf[:l])) + } + if n > len(names) { + return names, io.EOF + } + return names, nil +} diff --git a/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go new file mode 100644 index 0000000..ceebdd7 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/registry/zsyscall_windows.go @@ -0,0 +1,120 @@ +// MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT + +package registry + +import ( + "syscall" + "unsafe" + + "golang.org/x/sys/windows" +) + +var _ unsafe.Pointer + +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return nil + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + +var ( + modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") + modkernel32 = windows.NewLazySystemDLL("kernel32.dll") + + procRegCreateKeyExW = modadvapi32.NewProc("RegCreateKeyExW") + procRegDeleteKeyW = modadvapi32.NewProc("RegDeleteKeyW") + procRegSetValueExW = modadvapi32.NewProc("RegSetValueExW") + procRegEnumValueW = modadvapi32.NewProc("RegEnumValueW") + procRegDeleteValueW = modadvapi32.NewProc("RegDeleteValueW") + procRegLoadMUIStringW = modadvapi32.NewProc("RegLoadMUIStringW") + procRegConnectRegistryW = modadvapi32.NewProc("RegConnectRegistryW") + procExpandEnvironmentStringsW = modkernel32.NewProc("ExpandEnvironmentStringsW") +) + +func regCreateKeyEx(key syscall.Handle, subkey *uint16, reserved uint32, class *uint16, options uint32, desired uint32, sa *syscall.SecurityAttributes, result *syscall.Handle, disposition *uint32) (regerrno error) { + r0, _, _ := syscall.Syscall9(procRegCreateKeyExW.Addr(), 9, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(reserved), uintptr(unsafe.Pointer(class)), uintptr(options), uintptr(desired), uintptr(unsafe.Pointer(sa)), uintptr(unsafe.Pointer(result)), uintptr(unsafe.Pointer(disposition))) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func regDeleteKey(key syscall.Handle, subkey *uint16) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegDeleteKeyW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(subkey)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func regSetValueEx(key syscall.Handle, valueName *uint16, reserved uint32, vtype uint32, buf *byte, bufsize uint32) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegSetValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(valueName)), uintptr(reserved), uintptr(vtype), uintptr(unsafe.Pointer(buf)), uintptr(bufsize)) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func regEnumValue(key syscall.Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { + r0, _, _ := syscall.Syscall9(procRegEnumValueW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func regDeleteValue(key syscall.Handle, name *uint16) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegDeleteValueW.Addr(), 2, uintptr(key), uintptr(unsafe.Pointer(name)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func regLoadMUIString(key syscall.Handle, name *uint16, buf *uint16, buflen uint32, buflenCopied *uint32, flags uint32, dir *uint16) (regerrno error) { + r0, _, _ := syscall.Syscall9(procRegLoadMUIStringW.Addr(), 7, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(unsafe.Pointer(buflenCopied)), uintptr(flags), uintptr(unsafe.Pointer(dir)), 0, 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func regConnectRegistry(machinename *uint16, key syscall.Handle, result *syscall.Handle) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegConnectRegistryW.Addr(), 3, uintptr(unsafe.Pointer(machinename)), uintptr(key), uintptr(unsafe.Pointer(result))) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func expandEnvironmentStrings(src *uint16, dst *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procExpandEnvironmentStringsW.Addr(), 3, uintptr(unsafe.Pointer(src)), uintptr(unsafe.Pointer(dst)), uintptr(size)) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go new file mode 100644 index 0000000..f1ec5dc --- /dev/null +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -0,0 +1,476 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import ( + "syscall" + "unsafe" +) + +const ( + STANDARD_RIGHTS_REQUIRED = 0xf0000 + STANDARD_RIGHTS_READ = 0x20000 + STANDARD_RIGHTS_WRITE = 0x20000 + STANDARD_RIGHTS_EXECUTE = 0x20000 + STANDARD_RIGHTS_ALL = 0x1F0000 +) + +const ( + NameUnknown = 0 + NameFullyQualifiedDN = 1 + NameSamCompatible = 2 + NameDisplay = 3 + NameUniqueId = 6 + NameCanonical = 7 + NameUserPrincipal = 8 + NameCanonicalEx = 9 + NameServicePrincipal = 10 + NameDnsDomain = 12 +) + +// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. +// http://blogs.msdn.com/b/drnick/archive/2007/12/19/windows-and-upn-format-credentials.aspx +//sys TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.TranslateNameW +//sys GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) [failretval&0xff==0] = secur32.GetUserNameExW + +// TranslateAccountName converts a directory service +// object name from one format to another. +func TranslateAccountName(username string, from, to uint32, initSize int) (string, error) { + u, e := UTF16PtrFromString(username) + if e != nil { + return "", e + } + n := uint32(50) + for { + b := make([]uint16, n) + e = TranslateName(u, from, to, &b[0], &n) + if e == nil { + return UTF16ToString(b[:n]), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", e + } + if n <= uint32(len(b)) { + return "", e + } + } +} + +const ( + // do not reorder + NetSetupUnknownStatus = iota + NetSetupUnjoined + NetSetupWorkgroupName + NetSetupDomainName +) + +type UserInfo10 struct { + Name *uint16 + Comment *uint16 + UsrComment *uint16 + FullName *uint16 +} + +//sys NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) = netapi32.NetUserGetInfo +//sys NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) = netapi32.NetGetJoinInformation +//sys NetApiBufferFree(buf *byte) (neterr error) = netapi32.NetApiBufferFree + +const ( + // do not reorder + SidTypeUser = 1 + iota + SidTypeGroup + SidTypeDomain + SidTypeAlias + SidTypeWellKnownGroup + SidTypeDeletedAccount + SidTypeInvalid + SidTypeUnknown + SidTypeComputer + SidTypeLabel +) + +type SidIdentifierAuthority struct { + Value [6]byte +} + +var ( + SECURITY_NULL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 0}} + SECURITY_WORLD_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 1}} + SECURITY_LOCAL_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 2}} + SECURITY_CREATOR_SID_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 3}} + SECURITY_NON_UNIQUE_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 4}} + SECURITY_NT_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 5}} + SECURITY_MANDATORY_LABEL_AUTHORITY = SidIdentifierAuthority{[6]byte{0, 0, 0, 0, 0, 16}} +) + +const ( + SECURITY_NULL_RID = 0 + SECURITY_WORLD_RID = 0 + SECURITY_LOCAL_RID = 0 + SECURITY_CREATOR_OWNER_RID = 0 + SECURITY_CREATOR_GROUP_RID = 1 + SECURITY_DIALUP_RID = 1 + SECURITY_NETWORK_RID = 2 + SECURITY_BATCH_RID = 3 + SECURITY_INTERACTIVE_RID = 4 + SECURITY_LOGON_IDS_RID = 5 + SECURITY_SERVICE_RID = 6 + SECURITY_LOCAL_SYSTEM_RID = 18 + SECURITY_BUILTIN_DOMAIN_RID = 32 + SECURITY_PRINCIPAL_SELF_RID = 10 + SECURITY_CREATOR_OWNER_SERVER_RID = 0x2 + SECURITY_CREATOR_GROUP_SERVER_RID = 0x3 + SECURITY_LOGON_IDS_RID_COUNT = 0x3 + SECURITY_ANONYMOUS_LOGON_RID = 0x7 + SECURITY_PROXY_RID = 0x8 + SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x9 + SECURITY_SERVER_LOGON_RID = SECURITY_ENTERPRISE_CONTROLLERS_RID + SECURITY_AUTHENTICATED_USER_RID = 0xb + SECURITY_RESTRICTED_CODE_RID = 0xc + SECURITY_NT_NON_UNIQUE_RID = 0x15 +) + +// Predefined domain-relative RIDs for local groups. +// See https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx +const ( + DOMAIN_ALIAS_RID_ADMINS = 0x220 + DOMAIN_ALIAS_RID_USERS = 0x221 + DOMAIN_ALIAS_RID_GUESTS = 0x222 + DOMAIN_ALIAS_RID_POWER_USERS = 0x223 + DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x224 + DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x225 + DOMAIN_ALIAS_RID_PRINT_OPS = 0x226 + DOMAIN_ALIAS_RID_BACKUP_OPS = 0x227 + DOMAIN_ALIAS_RID_REPLICATOR = 0x228 + DOMAIN_ALIAS_RID_RAS_SERVERS = 0x229 + DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x22a + DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x22b + DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x22c + DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS = 0x22d + DOMAIN_ALIAS_RID_MONITORING_USERS = 0X22e + DOMAIN_ALIAS_RID_LOGGING_USERS = 0x22f + DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS = 0x230 + DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS = 0x231 + DOMAIN_ALIAS_RID_DCOM_USERS = 0x232 + DOMAIN_ALIAS_RID_IUSERS = 0x238 + DOMAIN_ALIAS_RID_CRYPTO_OPERATORS = 0x239 + DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP = 0x23b + DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP = 0x23c + DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP = 0x23d + DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP = 0x23e +) + +//sys LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountSidW +//sys LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) = advapi32.LookupAccountNameW +//sys ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) = advapi32.ConvertSidToStringSidW +//sys ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) = advapi32.ConvertStringSidToSidW +//sys GetLengthSid(sid *SID) (len uint32) = advapi32.GetLengthSid +//sys CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) = advapi32.CopySid +//sys AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) = advapi32.AllocateAndInitializeSid +//sys FreeSid(sid *SID) (err error) [failretval!=0] = advapi32.FreeSid +//sys EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) = advapi32.EqualSid + +// The security identifier (SID) structure is a variable-length +// structure used to uniquely identify users or groups. +type SID struct{} + +// StringToSid converts a string-format security identifier +// sid into a valid, functional sid. +func StringToSid(s string) (*SID, error) { + var sid *SID + p, e := UTF16PtrFromString(s) + if e != nil { + return nil, e + } + e = ConvertStringSidToSid(p, &sid) + if e != nil { + return nil, e + } + defer LocalFree((Handle)(unsafe.Pointer(sid))) + return sid.Copy() +} + +// LookupSID retrieves a security identifier sid for the account +// and the name of the domain on which the account was found. +// System specify target computer to search. +func LookupSID(system, account string) (sid *SID, domain string, accType uint32, err error) { + if len(account) == 0 { + return nil, "", 0, syscall.EINVAL + } + acc, e := UTF16PtrFromString(account) + if e != nil { + return nil, "", 0, e + } + var sys *uint16 + if len(system) > 0 { + sys, e = UTF16PtrFromString(system) + if e != nil { + return nil, "", 0, e + } + } + n := uint32(50) + dn := uint32(50) + for { + b := make([]byte, n) + db := make([]uint16, dn) + sid = (*SID)(unsafe.Pointer(&b[0])) + e = LookupAccountName(sys, acc, sid, &n, &db[0], &dn, &accType) + if e == nil { + return sid, UTF16ToString(db), accType, nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return nil, "", 0, e + } + if n <= uint32(len(b)) { + return nil, "", 0, e + } + } +} + +// String converts sid to a string format +// suitable for display, storage, or transmission. +func (sid *SID) String() (string, error) { + var s *uint16 + e := ConvertSidToStringSid(sid, &s) + if e != nil { + return "", e + } + defer LocalFree((Handle)(unsafe.Pointer(s))) + return UTF16ToString((*[256]uint16)(unsafe.Pointer(s))[:]), nil +} + +// Len returns the length, in bytes, of a valid security identifier sid. +func (sid *SID) Len() int { + return int(GetLengthSid(sid)) +} + +// Copy creates a duplicate of security identifier sid. +func (sid *SID) Copy() (*SID, error) { + b := make([]byte, sid.Len()) + sid2 := (*SID)(unsafe.Pointer(&b[0])) + e := CopySid(uint32(len(b)), sid2, sid) + if e != nil { + return nil, e + } + return sid2, nil +} + +// LookupAccount retrieves the name of the account for this sid +// and the name of the first domain on which this sid is found. +// System specify target computer to search for. +func (sid *SID) LookupAccount(system string) (account, domain string, accType uint32, err error) { + var sys *uint16 + if len(system) > 0 { + sys, err = UTF16PtrFromString(system) + if err != nil { + return "", "", 0, err + } + } + n := uint32(50) + dn := uint32(50) + for { + b := make([]uint16, n) + db := make([]uint16, dn) + e := LookupAccountSid(sys, sid, &b[0], &n, &db[0], &dn, &accType) + if e == nil { + return UTF16ToString(b), UTF16ToString(db), accType, nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", "", 0, e + } + if n <= uint32(len(b)) { + return "", "", 0, e + } + } +} + +const ( + // do not reorder + TOKEN_ASSIGN_PRIMARY = 1 << iota + TOKEN_DUPLICATE + TOKEN_IMPERSONATE + TOKEN_QUERY + TOKEN_QUERY_SOURCE + TOKEN_ADJUST_PRIVILEGES + TOKEN_ADJUST_GROUPS + TOKEN_ADJUST_DEFAULT + + TOKEN_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | + TOKEN_ASSIGN_PRIMARY | + TOKEN_DUPLICATE | + TOKEN_IMPERSONATE | + TOKEN_QUERY | + TOKEN_QUERY_SOURCE | + TOKEN_ADJUST_PRIVILEGES | + TOKEN_ADJUST_GROUPS | + TOKEN_ADJUST_DEFAULT + TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY + TOKEN_WRITE = STANDARD_RIGHTS_WRITE | + TOKEN_ADJUST_PRIVILEGES | + TOKEN_ADJUST_GROUPS | + TOKEN_ADJUST_DEFAULT + TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE +) + +const ( + // do not reorder + TokenUser = 1 + iota + TokenGroups + TokenPrivileges + TokenOwner + TokenPrimaryGroup + TokenDefaultDacl + TokenSource + TokenType + TokenImpersonationLevel + TokenStatistics + TokenRestrictedSids + TokenSessionId + TokenGroupsAndPrivileges + TokenSessionReference + TokenSandBoxInert + TokenAuditPolicy + TokenOrigin + TokenElevationType + TokenLinkedToken + TokenElevation + TokenHasRestrictions + TokenAccessInformation + TokenVirtualizationAllowed + TokenVirtualizationEnabled + TokenIntegrityLevel + TokenUIAccess + TokenMandatoryPolicy + TokenLogonSid + MaxTokenInfoClass +) + +type SIDAndAttributes struct { + Sid *SID + Attributes uint32 +} + +type Tokenuser struct { + User SIDAndAttributes +} + +type Tokenprimarygroup struct { + PrimaryGroup *SID +} + +type Tokengroups struct { + GroupCount uint32 + Groups [1]SIDAndAttributes +} + +// Authorization Functions +//sys checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) = advapi32.CheckTokenMembership +//sys OpenProcessToken(h Handle, access uint32, token *Token) (err error) = advapi32.OpenProcessToken +//sys GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) = advapi32.GetTokenInformation +//sys GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) = userenv.GetUserProfileDirectoryW + +// An access token contains the security information for a logon session. +// The system creates an access token when a user logs on, and every +// process executed on behalf of the user has a copy of the token. +// The token identifies the user, the user's groups, and the user's +// privileges. The system uses the token to control access to securable +// objects and to control the ability of the user to perform various +// system-related operations on the local computer. +type Token Handle + +// OpenCurrentProcessToken opens the access token +// associated with current process. +func OpenCurrentProcessToken() (Token, error) { + p, e := GetCurrentProcess() + if e != nil { + return 0, e + } + var t Token + e = OpenProcessToken(p, TOKEN_QUERY, &t) + if e != nil { + return 0, e + } + return t, nil +} + +// Close releases access to access token. +func (t Token) Close() error { + return CloseHandle(Handle(t)) +} + +// getInfo retrieves a specified type of information about an access token. +func (t Token) getInfo(class uint32, initSize int) (unsafe.Pointer, error) { + n := uint32(initSize) + for { + b := make([]byte, n) + e := GetTokenInformation(t, class, &b[0], uint32(len(b)), &n) + if e == nil { + return unsafe.Pointer(&b[0]), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return nil, e + } + if n <= uint32(len(b)) { + return nil, e + } + } +} + +// GetTokenUser retrieves access token t user account information. +func (t Token) GetTokenUser() (*Tokenuser, error) { + i, e := t.getInfo(TokenUser, 50) + if e != nil { + return nil, e + } + return (*Tokenuser)(i), nil +} + +// GetTokenGroups retrieves group accounts associated with access token t. +func (t Token) GetTokenGroups() (*Tokengroups, error) { + i, e := t.getInfo(TokenGroups, 50) + if e != nil { + return nil, e + } + return (*Tokengroups)(i), nil +} + +// GetTokenPrimaryGroup retrieves access token t primary group information. +// A pointer to a SID structure representing a group that will become +// the primary group of any objects created by a process using this access token. +func (t Token) GetTokenPrimaryGroup() (*Tokenprimarygroup, error) { + i, e := t.getInfo(TokenPrimaryGroup, 50) + if e != nil { + return nil, e + } + return (*Tokenprimarygroup)(i), nil +} + +// GetUserProfileDirectory retrieves path to the +// root directory of the access token t user's profile. +func (t Token) GetUserProfileDirectory() (string, error) { + n := uint32(100) + for { + b := make([]uint16, n) + e := GetUserProfileDirectory(t, &b[0], &n) + if e == nil { + return UTF16ToString(b), nil + } + if e != ERROR_INSUFFICIENT_BUFFER { + return "", e + } + if n <= uint32(len(b)) { + return "", e + } + } +} + +// IsMember reports whether the access token t is a member of the provided SID. +func (t Token) IsMember(sid *SID) (bool, error) { + var b int32 + if e := checkTokenMembership(t, sid, &b); e != nil { + return false, e + } + return b != 0, nil +} diff --git a/vendor/golang.org/x/sys/windows/service.go b/vendor/golang.org/x/sys/windows/service.go new file mode 100644 index 0000000..a500dd7 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/service.go @@ -0,0 +1,164 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package windows + +const ( + SC_MANAGER_CONNECT = 1 + SC_MANAGER_CREATE_SERVICE = 2 + SC_MANAGER_ENUMERATE_SERVICE = 4 + SC_MANAGER_LOCK = 8 + SC_MANAGER_QUERY_LOCK_STATUS = 16 + SC_MANAGER_MODIFY_BOOT_CONFIG = 32 + SC_MANAGER_ALL_ACCESS = 0xf003f +) + +//sys OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenSCManagerW + +const ( + SERVICE_KERNEL_DRIVER = 1 + SERVICE_FILE_SYSTEM_DRIVER = 2 + SERVICE_ADAPTER = 4 + SERVICE_RECOGNIZER_DRIVER = 8 + SERVICE_WIN32_OWN_PROCESS = 16 + SERVICE_WIN32_SHARE_PROCESS = 32 + SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS + SERVICE_INTERACTIVE_PROCESS = 256 + SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER + SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS + + SERVICE_BOOT_START = 0 + SERVICE_SYSTEM_START = 1 + SERVICE_AUTO_START = 2 + SERVICE_DEMAND_START = 3 + SERVICE_DISABLED = 4 + + SERVICE_ERROR_IGNORE = 0 + SERVICE_ERROR_NORMAL = 1 + SERVICE_ERROR_SEVERE = 2 + SERVICE_ERROR_CRITICAL = 3 + + SC_STATUS_PROCESS_INFO = 0 + + SERVICE_STOPPED = 1 + SERVICE_START_PENDING = 2 + SERVICE_STOP_PENDING = 3 + SERVICE_RUNNING = 4 + SERVICE_CONTINUE_PENDING = 5 + SERVICE_PAUSE_PENDING = 6 + SERVICE_PAUSED = 7 + SERVICE_NO_CHANGE = 0xffffffff + + SERVICE_ACCEPT_STOP = 1 + SERVICE_ACCEPT_PAUSE_CONTINUE = 2 + SERVICE_ACCEPT_SHUTDOWN = 4 + SERVICE_ACCEPT_PARAMCHANGE = 8 + SERVICE_ACCEPT_NETBINDCHANGE = 16 + SERVICE_ACCEPT_HARDWAREPROFILECHANGE = 32 + SERVICE_ACCEPT_POWEREVENT = 64 + SERVICE_ACCEPT_SESSIONCHANGE = 128 + + SERVICE_CONTROL_STOP = 1 + SERVICE_CONTROL_PAUSE = 2 + SERVICE_CONTROL_CONTINUE = 3 + SERVICE_CONTROL_INTERROGATE = 4 + SERVICE_CONTROL_SHUTDOWN = 5 + SERVICE_CONTROL_PARAMCHANGE = 6 + SERVICE_CONTROL_NETBINDADD = 7 + SERVICE_CONTROL_NETBINDREMOVE = 8 + SERVICE_CONTROL_NETBINDENABLE = 9 + SERVICE_CONTROL_NETBINDDISABLE = 10 + SERVICE_CONTROL_DEVICEEVENT = 11 + SERVICE_CONTROL_HARDWAREPROFILECHANGE = 12 + SERVICE_CONTROL_POWEREVENT = 13 + SERVICE_CONTROL_SESSIONCHANGE = 14 + + SERVICE_ACTIVE = 1 + SERVICE_INACTIVE = 2 + SERVICE_STATE_ALL = 3 + + SERVICE_QUERY_CONFIG = 1 + SERVICE_CHANGE_CONFIG = 2 + SERVICE_QUERY_STATUS = 4 + SERVICE_ENUMERATE_DEPENDENTS = 8 + SERVICE_START = 16 + SERVICE_STOP = 32 + SERVICE_PAUSE_CONTINUE = 64 + SERVICE_INTERROGATE = 128 + SERVICE_USER_DEFINED_CONTROL = 256 + SERVICE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SERVICE_QUERY_CONFIG | SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_ENUMERATE_DEPENDENTS | SERVICE_START | SERVICE_STOP | SERVICE_PAUSE_CONTINUE | SERVICE_INTERROGATE | SERVICE_USER_DEFINED_CONTROL + SERVICE_RUNS_IN_SYSTEM_PROCESS = 1 + SERVICE_CONFIG_DESCRIPTION = 1 + SERVICE_CONFIG_FAILURE_ACTIONS = 2 + + NO_ERROR = 0 + + SC_ENUM_PROCESS_INFO = 0 +) + +type SERVICE_STATUS struct { + ServiceType uint32 + CurrentState uint32 + ControlsAccepted uint32 + Win32ExitCode uint32 + ServiceSpecificExitCode uint32 + CheckPoint uint32 + WaitHint uint32 +} + +type SERVICE_TABLE_ENTRY struct { + ServiceName *uint16 + ServiceProc uintptr +} + +type QUERY_SERVICE_CONFIG struct { + ServiceType uint32 + StartType uint32 + ErrorControl uint32 + BinaryPathName *uint16 + LoadOrderGroup *uint16 + TagId uint32 + Dependencies *uint16 + ServiceStartName *uint16 + DisplayName *uint16 +} + +type SERVICE_DESCRIPTION struct { + Description *uint16 +} + +type SERVICE_STATUS_PROCESS struct { + ServiceType uint32 + CurrentState uint32 + ControlsAccepted uint32 + Win32ExitCode uint32 + ServiceSpecificExitCode uint32 + CheckPoint uint32 + WaitHint uint32 + ProcessId uint32 + ServiceFlags uint32 +} + +type ENUM_SERVICE_STATUS_PROCESS struct { + ServiceName *uint16 + DisplayName *uint16 + ServiceStatusProcess SERVICE_STATUS_PROCESS +} + +//sys CloseServiceHandle(handle Handle) (err error) = advapi32.CloseServiceHandle +//sys CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) [failretval==0] = advapi32.CreateServiceW +//sys OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) [failretval==0] = advapi32.OpenServiceW +//sys DeleteService(service Handle) (err error) = advapi32.DeleteService +//sys StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) = advapi32.StartServiceW +//sys QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) = advapi32.QueryServiceStatus +//sys ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) = advapi32.ControlService +//sys StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) = advapi32.StartServiceCtrlDispatcherW +//sys SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) = advapi32.SetServiceStatus +//sys ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) = advapi32.ChangeServiceConfigW +//sys QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfigW +//sys ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) = advapi32.ChangeServiceConfig2W +//sys QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) = advapi32.QueryServiceConfig2W +//sys EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) = advapi32.EnumServicesStatusExW diff --git a/vendor/golang.org/x/sys/windows/str.go b/vendor/golang.org/x/sys/windows/str.go new file mode 100644 index 0000000..917cc2a --- /dev/null +++ b/vendor/golang.org/x/sys/windows/str.go @@ -0,0 +1,22 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package windows + +func itoa(val int) string { // do it here rather than with fmt to avoid dependency + if val < 0 { + return "-" + itoa(-val) + } + var buf [32]byte // big enough for int64 + i := len(buf) - 1 + for val >= 10 { + buf[i] = byte(val%10 + '0') + i-- + val /= 10 + } + buf[i] = byte(val + '0') + return string(buf[i:]) +} diff --git a/vendor/golang.org/x/sys/windows/svc/debug/log.go b/vendor/golang.org/x/sys/windows/svc/debug/log.go new file mode 100644 index 0000000..e51ab42 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/debug/log.go @@ -0,0 +1,56 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package debug + +import ( + "os" + "strconv" +) + +// Log interface allows different log implementations to be used. +type Log interface { + Close() error + Info(eid uint32, msg string) error + Warning(eid uint32, msg string) error + Error(eid uint32, msg string) error +} + +// ConsoleLog provides access to the console. +type ConsoleLog struct { + Name string +} + +// New creates new ConsoleLog. +func New(source string) *ConsoleLog { + return &ConsoleLog{Name: source} +} + +// Close closes console log l. +func (l *ConsoleLog) Close() error { + return nil +} + +func (l *ConsoleLog) report(kind string, eid uint32, msg string) error { + s := l.Name + "." + kind + "(" + strconv.Itoa(int(eid)) + "): " + msg + "\n" + _, err := os.Stdout.Write([]byte(s)) + return err +} + +// Info writes an information event msg with event id eid to the console l. +func (l *ConsoleLog) Info(eid uint32, msg string) error { + return l.report("info", eid, msg) +} + +// Warning writes an warning event msg with event id eid to the console l. +func (l *ConsoleLog) Warning(eid uint32, msg string) error { + return l.report("warn", eid, msg) +} + +// Error writes an error event msg with event id eid to the console l. +func (l *ConsoleLog) Error(eid uint32, msg string) error { + return l.report("error", eid, msg) +} diff --git a/vendor/golang.org/x/sys/windows/svc/debug/service.go b/vendor/golang.org/x/sys/windows/svc/debug/service.go new file mode 100644 index 0000000..123df98 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/debug/service.go @@ -0,0 +1,45 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// Package debug provides facilities to execute svc.Handler on console. +// +package debug + +import ( + "os" + "os/signal" + "syscall" + + "golang.org/x/sys/windows/svc" +) + +// Run executes service name by calling appropriate handler function. +// The process is running on console, unlike real service. Use Ctrl+C to +// send "Stop" command to your service. +func Run(name string, handler svc.Handler) error { + cmds := make(chan svc.ChangeRequest) + changes := make(chan svc.Status) + + sig := make(chan os.Signal) + signal.Notify(sig) + + go func() { + status := svc.Status{State: svc.Stopped} + for { + select { + case <-sig: + cmds <- svc.ChangeRequest{svc.Stop, 0, 0, status} + case status = <-changes: + } + } + }() + + _, errno := handler.Execute([]string{name}, cmds, changes) + if errno != 0 { + return syscall.Errno(errno) + } + return nil +} diff --git a/vendor/golang.org/x/sys/windows/svc/event.go b/vendor/golang.org/x/sys/windows/svc/event.go new file mode 100644 index 0000000..0508e22 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/event.go @@ -0,0 +1,48 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package svc + +import ( + "errors" + + "golang.org/x/sys/windows" +) + +// event represents auto-reset, initially non-signaled Windows event. +// It is used to communicate between go and asm parts of this package. +type event struct { + h windows.Handle +} + +func newEvent() (*event, error) { + h, err := windows.CreateEvent(nil, 0, 0, nil) + if err != nil { + return nil, err + } + return &event{h: h}, nil +} + +func (e *event) Close() error { + return windows.CloseHandle(e.h) +} + +func (e *event) Set() error { + return windows.SetEvent(e.h) +} + +func (e *event) Wait() error { + s, err := windows.WaitForSingleObject(e.h, windows.INFINITE) + switch s { + case windows.WAIT_OBJECT_0: + break + case windows.WAIT_FAILED: + return err + default: + return errors.New("unexpected result from WaitForSingleObject") + } + return nil +} diff --git a/vendor/golang.org/x/sys/windows/svc/eventlog/install.go b/vendor/golang.org/x/sys/windows/svc/eventlog/install.go new file mode 100644 index 0000000..c76a376 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/eventlog/install.go @@ -0,0 +1,80 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package eventlog + +import ( + "errors" + + "golang.org/x/sys/windows" + "golang.org/x/sys/windows/registry" +) + +const ( + // Log levels. + Info = windows.EVENTLOG_INFORMATION_TYPE + Warning = windows.EVENTLOG_WARNING_TYPE + Error = windows.EVENTLOG_ERROR_TYPE +) + +const addKeyName = `SYSTEM\CurrentControlSet\Services\EventLog\Application` + +// Install modifies PC registry to allow logging with an event source src. +// It adds all required keys and values to the event log registry key. +// Install uses msgFile as the event message file. If useExpandKey is true, +// the event message file is installed as REG_EXPAND_SZ value, +// otherwise as REG_SZ. Use bitwise of log.Error, log.Warning and +// log.Info to specify events supported by the new event source. +func Install(src, msgFile string, useExpandKey bool, eventsSupported uint32) error { + appkey, err := registry.OpenKey(registry.LOCAL_MACHINE, addKeyName, registry.CREATE_SUB_KEY) + if err != nil { + return err + } + defer appkey.Close() + + sk, alreadyExist, err := registry.CreateKey(appkey, src, registry.SET_VALUE) + if err != nil { + return err + } + defer sk.Close() + if alreadyExist { + return errors.New(addKeyName + `\` + src + " registry key already exists") + } + + err = sk.SetDWordValue("CustomSource", 1) + if err != nil { + return err + } + if useExpandKey { + err = sk.SetExpandStringValue("EventMessageFile", msgFile) + } else { + err = sk.SetStringValue("EventMessageFile", msgFile) + } + if err != nil { + return err + } + err = sk.SetDWordValue("TypesSupported", eventsSupported) + if err != nil { + return err + } + return nil +} + +// InstallAsEventCreate is the same as Install, but uses +// %SystemRoot%\System32\EventCreate.exe as the event message file. +func InstallAsEventCreate(src string, eventsSupported uint32) error { + return Install(src, "%SystemRoot%\\System32\\EventCreate.exe", true, eventsSupported) +} + +// Remove deletes all registry elements installed by the correspondent Install. +func Remove(src string) error { + appkey, err := registry.OpenKey(registry.LOCAL_MACHINE, addKeyName, registry.SET_VALUE) + if err != nil { + return err + } + defer appkey.Close() + return registry.DeleteKey(appkey, src) +} diff --git a/vendor/golang.org/x/sys/windows/svc/eventlog/log.go b/vendor/golang.org/x/sys/windows/svc/eventlog/log.go new file mode 100644 index 0000000..46e5153 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/eventlog/log.go @@ -0,0 +1,70 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// Package eventlog implements access to Windows event log. +// +package eventlog + +import ( + "errors" + "syscall" + + "golang.org/x/sys/windows" +) + +// Log provides access to the system log. +type Log struct { + Handle windows.Handle +} + +// Open retrieves a handle to the specified event log. +func Open(source string) (*Log, error) { + return OpenRemote("", source) +} + +// OpenRemote does the same as Open, but on different computer host. +func OpenRemote(host, source string) (*Log, error) { + if source == "" { + return nil, errors.New("Specify event log source") + } + var s *uint16 + if host != "" { + s = syscall.StringToUTF16Ptr(host) + } + h, err := windows.RegisterEventSource(s, syscall.StringToUTF16Ptr(source)) + if err != nil { + return nil, err + } + return &Log{Handle: h}, nil +} + +// Close closes event log l. +func (l *Log) Close() error { + return windows.DeregisterEventSource(l.Handle) +} + +func (l *Log) report(etype uint16, eid uint32, msg string) error { + ss := []*uint16{syscall.StringToUTF16Ptr(msg)} + return windows.ReportEvent(l.Handle, etype, 0, eid, 0, 1, 0, &ss[0], nil) +} + +// Info writes an information event msg with event id eid to the end of event log l. +// When EventCreate.exe is used, eid must be between 1 and 1000. +func (l *Log) Info(eid uint32, msg string) error { + return l.report(windows.EVENTLOG_INFORMATION_TYPE, eid, msg) +} + +// Warning writes an warning event msg with event id eid to the end of event log l. +// When EventCreate.exe is used, eid must be between 1 and 1000. +func (l *Log) Warning(eid uint32, msg string) error { + return l.report(windows.EVENTLOG_WARNING_TYPE, eid, msg) +} + +// Error writes an error event msg with event id eid to the end of event log l. +// When EventCreate.exe is used, eid must be between 1 and 1000. +func (l *Log) Error(eid uint32, msg string) error { + return l.report(windows.EVENTLOG_ERROR_TYPE, eid, msg) +} diff --git a/vendor/golang.org/x/sys/windows/svc/eventlog/log_test.go b/vendor/golang.org/x/sys/windows/svc/eventlog/log_test.go new file mode 100644 index 0000000..6fbbd4a --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/eventlog/log_test.go @@ -0,0 +1,51 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package eventlog_test + +import ( + "testing" + + "golang.org/x/sys/windows/svc/eventlog" +) + +func TestLog(t *testing.T) { + if testing.Short() { + t.Skip("skipping test in short mode - it modifies system logs") + } + + const name = "mylog" + const supports = eventlog.Error | eventlog.Warning | eventlog.Info + err := eventlog.InstallAsEventCreate(name, supports) + if err != nil { + t.Fatalf("Install failed: %s", err) + } + defer func() { + err = eventlog.Remove(name) + if err != nil { + t.Fatalf("Remove failed: %s", err) + } + }() + + l, err := eventlog.Open(name) + if err != nil { + t.Fatalf("Open failed: %s", err) + } + defer l.Close() + + err = l.Info(1, "info") + if err != nil { + t.Fatalf("Info failed: %s", err) + } + err = l.Warning(2, "warning") + if err != nil { + t.Fatalf("Warning failed: %s", err) + } + err = l.Error(3, "error") + if err != nil { + t.Fatalf("Error failed: %s", err) + } +} diff --git a/vendor/golang.org/x/sys/windows/svc/example/beep.go b/vendor/golang.org/x/sys/windows/svc/example/beep.go new file mode 100644 index 0000000..dcf2340 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/example/beep.go @@ -0,0 +1,22 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package main + +import ( + "syscall" +) + +// BUG(brainman): MessageBeep Windows api is broken on Windows 7, +// so this example does not beep when runs as service on Windows 7. + +var ( + beepFunc = syscall.MustLoadDLL("user32.dll").MustFindProc("MessageBeep") +) + +func beep() { + beepFunc.Call(0xffffffff) +} diff --git a/vendor/golang.org/x/sys/windows/svc/example/install.go b/vendor/golang.org/x/sys/windows/svc/example/install.go new file mode 100644 index 0000000..39cb00d --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/example/install.go @@ -0,0 +1,92 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package main + +import ( + "fmt" + "os" + "path/filepath" + + "golang.org/x/sys/windows/svc/eventlog" + "golang.org/x/sys/windows/svc/mgr" +) + +func exePath() (string, error) { + prog := os.Args[0] + p, err := filepath.Abs(prog) + if err != nil { + return "", err + } + fi, err := os.Stat(p) + if err == nil { + if !fi.Mode().IsDir() { + return p, nil + } + err = fmt.Errorf("%s is directory", p) + } + if filepath.Ext(p) == "" { + p += ".exe" + fi, err := os.Stat(p) + if err == nil { + if !fi.Mode().IsDir() { + return p, nil + } + err = fmt.Errorf("%s is directory", p) + } + } + return "", err +} + +func installService(name, desc string) error { + exepath, err := exePath() + if err != nil { + return err + } + m, err := mgr.Connect() + if err != nil { + return err + } + defer m.Disconnect() + s, err := m.OpenService(name) + if err == nil { + s.Close() + return fmt.Errorf("service %s already exists", name) + } + s, err = m.CreateService(name, exepath, mgr.Config{DisplayName: desc}, "is", "auto-started") + if err != nil { + return err + } + defer s.Close() + err = eventlog.InstallAsEventCreate(name, eventlog.Error|eventlog.Warning|eventlog.Info) + if err != nil { + s.Delete() + return fmt.Errorf("SetupEventLogSource() failed: %s", err) + } + return nil +} + +func removeService(name string) error { + m, err := mgr.Connect() + if err != nil { + return err + } + defer m.Disconnect() + s, err := m.OpenService(name) + if err != nil { + return fmt.Errorf("service %s is not installed", name) + } + defer s.Close() + err = s.Delete() + if err != nil { + return err + } + err = eventlog.Remove(name) + if err != nil { + return fmt.Errorf("RemoveEventLogSource() failed: %s", err) + } + return nil +} diff --git a/vendor/golang.org/x/sys/windows/svc/example/main.go b/vendor/golang.org/x/sys/windows/svc/example/main.go new file mode 100644 index 0000000..dc96c08 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/example/main.go @@ -0,0 +1,76 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// Example service program that beeps. +// +// The program demonstrates how to create Windows service and +// install / remove it on a computer. It also shows how to +// stop / start / pause / continue any service, and how to +// write to event log. It also shows how to use debug +// facilities available in debug package. +// +package main + +import ( + "fmt" + "log" + "os" + "strings" + + "golang.org/x/sys/windows/svc" +) + +func usage(errmsg string) { + fmt.Fprintf(os.Stderr, + "%s\n\n"+ + "usage: %s \n"+ + " where is one of\n"+ + " install, remove, debug, start, stop, pause or continue.\n", + errmsg, os.Args[0]) + os.Exit(2) +} + +func main() { + const svcName = "myservice" + + isIntSess, err := svc.IsAnInteractiveSession() + if err != nil { + log.Fatalf("failed to determine if we are running in an interactive session: %v", err) + } + if !isIntSess { + runService(svcName, false) + return + } + + if len(os.Args) < 2 { + usage("no command specified") + } + + cmd := strings.ToLower(os.Args[1]) + switch cmd { + case "debug": + runService(svcName, true) + return + case "install": + err = installService(svcName, "my service") + case "remove": + err = removeService(svcName) + case "start": + err = startService(svcName) + case "stop": + err = controlService(svcName, svc.Stop, svc.Stopped) + case "pause": + err = controlService(svcName, svc.Pause, svc.Paused) + case "continue": + err = controlService(svcName, svc.Continue, svc.Running) + default: + usage(fmt.Sprintf("invalid command %s", cmd)) + } + if err != nil { + log.Fatalf("failed to %s %s: %v", cmd, svcName, err) + } + return +} diff --git a/vendor/golang.org/x/sys/windows/svc/example/manage.go b/vendor/golang.org/x/sys/windows/svc/example/manage.go new file mode 100644 index 0000000..782dbd9 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/example/manage.go @@ -0,0 +1,62 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package main + +import ( + "fmt" + "time" + + "golang.org/x/sys/windows/svc" + "golang.org/x/sys/windows/svc/mgr" +) + +func startService(name string) error { + m, err := mgr.Connect() + if err != nil { + return err + } + defer m.Disconnect() + s, err := m.OpenService(name) + if err != nil { + return fmt.Errorf("could not access service: %v", err) + } + defer s.Close() + err = s.Start("is", "manual-started") + if err != nil { + return fmt.Errorf("could not start service: %v", err) + } + return nil +} + +func controlService(name string, c svc.Cmd, to svc.State) error { + m, err := mgr.Connect() + if err != nil { + return err + } + defer m.Disconnect() + s, err := m.OpenService(name) + if err != nil { + return fmt.Errorf("could not access service: %v", err) + } + defer s.Close() + status, err := s.Control(c) + if err != nil { + return fmt.Errorf("could not send control=%d: %v", c, err) + } + timeout := time.Now().Add(10 * time.Second) + for status.State != to { + if timeout.Before(time.Now()) { + return fmt.Errorf("timeout waiting for service to go to state=%d", to) + } + time.Sleep(300 * time.Millisecond) + status, err = s.Query() + if err != nil { + return fmt.Errorf("could not retrieve service status: %v", err) + } + } + return nil +} diff --git a/vendor/golang.org/x/sys/windows/svc/example/service.go b/vendor/golang.org/x/sys/windows/svc/example/service.go new file mode 100644 index 0000000..237e809 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/example/service.go @@ -0,0 +1,82 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package main + +import ( + "fmt" + "time" + + "golang.org/x/sys/windows/svc" + "golang.org/x/sys/windows/svc/debug" + "golang.org/x/sys/windows/svc/eventlog" +) + +var elog debug.Log + +type myservice struct{} + +func (m *myservice) Execute(args []string, r <-chan svc.ChangeRequest, changes chan<- svc.Status) (ssec bool, errno uint32) { + const cmdsAccepted = svc.AcceptStop | svc.AcceptShutdown | svc.AcceptPauseAndContinue + changes <- svc.Status{State: svc.StartPending} + fasttick := time.Tick(500 * time.Millisecond) + slowtick := time.Tick(2 * time.Second) + tick := fasttick + changes <- svc.Status{State: svc.Running, Accepts: cmdsAccepted} +loop: + for { + select { + case <-tick: + beep() + elog.Info(1, "beep") + case c := <-r: + switch c.Cmd { + case svc.Interrogate: + changes <- c.CurrentStatus + // Testing deadlock from https://code.google.com/p/winsvc/issues/detail?id=4 + time.Sleep(100 * time.Millisecond) + changes <- c.CurrentStatus + case svc.Stop, svc.Shutdown: + break loop + case svc.Pause: + changes <- svc.Status{State: svc.Paused, Accepts: cmdsAccepted} + tick = slowtick + case svc.Continue: + changes <- svc.Status{State: svc.Running, Accepts: cmdsAccepted} + tick = fasttick + default: + elog.Error(1, fmt.Sprintf("unexpected control request #%d", c)) + } + } + } + changes <- svc.Status{State: svc.StopPending} + return +} + +func runService(name string, isDebug bool) { + var err error + if isDebug { + elog = debug.New(name) + } else { + elog, err = eventlog.Open(name) + if err != nil { + return + } + } + defer elog.Close() + + elog.Info(1, fmt.Sprintf("starting %s service", name)) + run := svc.Run + if isDebug { + run = debug.Run + } + err = run(name, &myservice{}) + if err != nil { + elog.Error(1, fmt.Sprintf("%s service failed: %v", name, err)) + return + } + elog.Info(1, fmt.Sprintf("%s service stopped", name)) +} diff --git a/vendor/golang.org/x/sys/windows/svc/go12.c b/vendor/golang.org/x/sys/windows/svc/go12.c new file mode 100644 index 0000000..6f1be1f --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/go12.c @@ -0,0 +1,24 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows +// +build !go1.3 + +// copied from pkg/runtime +typedef unsigned int uint32; +typedef unsigned long long int uint64; +#ifdef _64BIT +typedef uint64 uintptr; +#else +typedef uint32 uintptr; +#endif + +// from sys_386.s or sys_amd64.s +void ·servicemain(void); + +void +·getServiceMain(uintptr *r) +{ + *r = (uintptr)·servicemain; +} diff --git a/vendor/golang.org/x/sys/windows/svc/go12.go b/vendor/golang.org/x/sys/windows/svc/go12.go new file mode 100644 index 0000000..cd8b913 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/go12.go @@ -0,0 +1,11 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows +// +build !go1.3 + +package svc + +// from go12.c +func getServiceMain(r *uintptr) diff --git a/vendor/golang.org/x/sys/windows/svc/go13.go b/vendor/golang.org/x/sys/windows/svc/go13.go new file mode 100644 index 0000000..9d7f3ce --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/go13.go @@ -0,0 +1,31 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows +// +build go1.3 + +package svc + +import "unsafe" + +const ptrSize = 4 << (^uintptr(0) >> 63) // unsafe.Sizeof(uintptr(0)) but an ideal const + +// Should be a built-in for unsafe.Pointer? +func add(p unsafe.Pointer, x uintptr) unsafe.Pointer { + return unsafe.Pointer(uintptr(p) + x) +} + +// funcPC returns the entry PC of the function f. +// It assumes that f is a func value. Otherwise the behavior is undefined. +func funcPC(f interface{}) uintptr { + return **(**uintptr)(add(unsafe.Pointer(&f), ptrSize)) +} + +// from sys_386.s and sys_amd64.s +func servicectlhandler(ctl uint32) uintptr +func servicemain(argc uint32, argv **uint16) + +func getServiceMain(r *uintptr) { + *r = funcPC(servicemain) +} diff --git a/vendor/golang.org/x/sys/windows/svc/mgr/config.go b/vendor/golang.org/x/sys/windows/svc/mgr/config.go new file mode 100644 index 0000000..0a6edba --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/mgr/config.go @@ -0,0 +1,139 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package mgr + +import ( + "syscall" + "unicode/utf16" + "unsafe" + + "golang.org/x/sys/windows" +) + +const ( + // Service start types. + StartManual = windows.SERVICE_DEMAND_START // the service must be started manually + StartAutomatic = windows.SERVICE_AUTO_START // the service will start by itself whenever the computer reboots + StartDisabled = windows.SERVICE_DISABLED // the service cannot be started + + // The severity of the error, and action taken, + // if this service fails to start. + ErrorCritical = windows.SERVICE_ERROR_CRITICAL + ErrorIgnore = windows.SERVICE_ERROR_IGNORE + ErrorNormal = windows.SERVICE_ERROR_NORMAL + ErrorSevere = windows.SERVICE_ERROR_SEVERE +) + +// TODO(brainman): Password is not returned by windows.QueryServiceConfig, not sure how to get it. + +type Config struct { + ServiceType uint32 + StartType uint32 + ErrorControl uint32 + BinaryPathName string // fully qualified path to the service binary file, can also include arguments for an auto-start service + LoadOrderGroup string + TagId uint32 + Dependencies []string + ServiceStartName string // name of the account under which the service should run + DisplayName string + Password string + Description string +} + +func toString(p *uint16) string { + if p == nil { + return "" + } + return syscall.UTF16ToString((*[4096]uint16)(unsafe.Pointer(p))[:]) +} + +func toStringSlice(ps *uint16) []string { + if ps == nil { + return nil + } + r := make([]string, 0) + for from, i, p := 0, 0, (*[1 << 24]uint16)(unsafe.Pointer(ps)); true; i++ { + if p[i] == 0 { + // empty string marks the end + if i <= from { + break + } + r = append(r, string(utf16.Decode(p[from:i]))) + from = i + 1 + } + } + return r +} + +// Config retrieves service s configuration paramteres. +func (s *Service) Config() (Config, error) { + var p *windows.QUERY_SERVICE_CONFIG + n := uint32(1024) + for { + b := make([]byte, n) + p = (*windows.QUERY_SERVICE_CONFIG)(unsafe.Pointer(&b[0])) + err := windows.QueryServiceConfig(s.Handle, p, n, &n) + if err == nil { + break + } + if err.(syscall.Errno) != syscall.ERROR_INSUFFICIENT_BUFFER { + return Config{}, err + } + if n <= uint32(len(b)) { + return Config{}, err + } + } + + var p2 *windows.SERVICE_DESCRIPTION + n = uint32(1024) + for { + b := make([]byte, n) + p2 = (*windows.SERVICE_DESCRIPTION)(unsafe.Pointer(&b[0])) + err := windows.QueryServiceConfig2(s.Handle, + windows.SERVICE_CONFIG_DESCRIPTION, &b[0], n, &n) + if err == nil { + break + } + if err.(syscall.Errno) != syscall.ERROR_INSUFFICIENT_BUFFER { + return Config{}, err + } + if n <= uint32(len(b)) { + return Config{}, err + } + } + + return Config{ + ServiceType: p.ServiceType, + StartType: p.StartType, + ErrorControl: p.ErrorControl, + BinaryPathName: toString(p.BinaryPathName), + LoadOrderGroup: toString(p.LoadOrderGroup), + TagId: p.TagId, + Dependencies: toStringSlice(p.Dependencies), + ServiceStartName: toString(p.ServiceStartName), + DisplayName: toString(p.DisplayName), + Description: toString(p2.Description), + }, nil +} + +func updateDescription(handle windows.Handle, desc string) error { + d := windows.SERVICE_DESCRIPTION{toPtr(desc)} + return windows.ChangeServiceConfig2(handle, + windows.SERVICE_CONFIG_DESCRIPTION, (*byte)(unsafe.Pointer(&d))) +} + +// UpdateConfig updates service s configuration parameters. +func (s *Service) UpdateConfig(c Config) error { + err := windows.ChangeServiceConfig(s.Handle, c.ServiceType, c.StartType, + c.ErrorControl, toPtr(c.BinaryPathName), toPtr(c.LoadOrderGroup), + nil, toStringBlock(c.Dependencies), toPtr(c.ServiceStartName), + toPtr(c.Password), toPtr(c.DisplayName)) + if err != nil { + return err + } + return updateDescription(s.Handle, c.Description) +} diff --git a/vendor/golang.org/x/sys/windows/svc/mgr/mgr.go b/vendor/golang.org/x/sys/windows/svc/mgr/mgr.go new file mode 100644 index 0000000..76965b5 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/mgr/mgr.go @@ -0,0 +1,162 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// Package mgr can be used to manage Windows service programs. +// It can be used to install and remove them. It can also start, +// stop and pause them. The package can query / change current +// service state and config parameters. +// +package mgr + +import ( + "syscall" + "unicode/utf16" + "unsafe" + + "golang.org/x/sys/windows" +) + +// Mgr is used to manage Windows service. +type Mgr struct { + Handle windows.Handle +} + +// Connect establishes a connection to the service control manager. +func Connect() (*Mgr, error) { + return ConnectRemote("") +} + +// ConnectRemote establishes a connection to the +// service control manager on computer named host. +func ConnectRemote(host string) (*Mgr, error) { + var s *uint16 + if host != "" { + s = syscall.StringToUTF16Ptr(host) + } + h, err := windows.OpenSCManager(s, nil, windows.SC_MANAGER_ALL_ACCESS) + if err != nil { + return nil, err + } + return &Mgr{Handle: h}, nil +} + +// Disconnect closes connection to the service control manager m. +func (m *Mgr) Disconnect() error { + return windows.CloseServiceHandle(m.Handle) +} + +func toPtr(s string) *uint16 { + if len(s) == 0 { + return nil + } + return syscall.StringToUTF16Ptr(s) +} + +// toStringBlock terminates strings in ss with 0, and then +// concatenates them together. It also adds extra 0 at the end. +func toStringBlock(ss []string) *uint16 { + if len(ss) == 0 { + return nil + } + t := "" + for _, s := range ss { + if s != "" { + t += s + "\x00" + } + } + if t == "" { + return nil + } + t += "\x00" + return &utf16.Encode([]rune(t))[0] +} + +// CreateService installs new service name on the system. +// The service will be executed by running exepath binary. +// Use config c to specify service parameters. +// Any args will be passed as command-line arguments when +// the service is started; these arguments are distinct from +// the arguments passed to Service.Start or via the "Start +// parameters" field in the service's Properties dialog box. +func (m *Mgr) CreateService(name, exepath string, c Config, args ...string) (*Service, error) { + if c.StartType == 0 { + c.StartType = StartManual + } + if c.ErrorControl == 0 { + c.ErrorControl = ErrorNormal + } + if c.ServiceType == 0 { + c.ServiceType = windows.SERVICE_WIN32_OWN_PROCESS + } + s := syscall.EscapeArg(exepath) + for _, v := range args { + s += " " + syscall.EscapeArg(v) + } + h, err := windows.CreateService(m.Handle, toPtr(name), toPtr(c.DisplayName), + windows.SERVICE_ALL_ACCESS, c.ServiceType, + c.StartType, c.ErrorControl, toPtr(s), toPtr(c.LoadOrderGroup), + nil, toStringBlock(c.Dependencies), toPtr(c.ServiceStartName), toPtr(c.Password)) + if err != nil { + return nil, err + } + if c.Description != "" { + err = updateDescription(h, c.Description) + if err != nil { + return nil, err + } + } + return &Service{Name: name, Handle: h}, nil +} + +// OpenService retrieves access to service name, so it can +// be interrogated and controlled. +func (m *Mgr) OpenService(name string) (*Service, error) { + h, err := windows.OpenService(m.Handle, syscall.StringToUTF16Ptr(name), windows.SERVICE_ALL_ACCESS) + if err != nil { + return nil, err + } + return &Service{Name: name, Handle: h}, nil +} + +// ListServices enumerates services in the specified +// service control manager database m. +// If the caller does not have the SERVICE_QUERY_STATUS +// access right to a service, the service is silently +// omitted from the list of services returned. +func (m *Mgr) ListServices() ([]string, error) { + var err error + var bytesNeeded, servicesReturned uint32 + var buf []byte + for { + var p *byte + if len(buf) > 0 { + p = &buf[0] + } + err = windows.EnumServicesStatusEx(m.Handle, windows.SC_ENUM_PROCESS_INFO, + windows.SERVICE_WIN32, windows.SERVICE_STATE_ALL, + p, uint32(len(buf)), &bytesNeeded, &servicesReturned, nil, nil) + if err == nil { + break + } + if err != syscall.ERROR_MORE_DATA { + return nil, err + } + if bytesNeeded <= uint32(len(buf)) { + return nil, err + } + buf = make([]byte, bytesNeeded) + } + if servicesReturned == 0 { + return nil, nil + } + services := (*[1 << 20]windows.ENUM_SERVICE_STATUS_PROCESS)(unsafe.Pointer(&buf[0]))[:servicesReturned] + var names []string + for _, s := range services { + name := syscall.UTF16ToString((*[1 << 20]uint16)(unsafe.Pointer(s.ServiceName))[:]) + names = append(names, name) + } + return names, nil +} diff --git a/vendor/golang.org/x/sys/windows/svc/mgr/mgr_test.go b/vendor/golang.org/x/sys/windows/svc/mgr/mgr_test.go new file mode 100644 index 0000000..1569a22 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/mgr/mgr_test.go @@ -0,0 +1,169 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package mgr_test + +import ( + "os" + "path/filepath" + "sort" + "strings" + "syscall" + "testing" + "time" + + "golang.org/x/sys/windows/svc/mgr" +) + +func TestOpenLanManServer(t *testing.T) { + m, err := mgr.Connect() + if err != nil { + if errno, ok := err.(syscall.Errno); ok && errno == syscall.ERROR_ACCESS_DENIED { + t.Skip("Skipping test: we don't have rights to manage services.") + } + t.Fatalf("SCM connection failed: %s", err) + } + defer m.Disconnect() + + s, err := m.OpenService("LanmanServer") + if err != nil { + t.Fatalf("OpenService(lanmanserver) failed: %s", err) + } + defer s.Close() + + _, err = s.Config() + if err != nil { + t.Fatalf("Config failed: %s", err) + } +} + +func install(t *testing.T, m *mgr.Mgr, name, exepath string, c mgr.Config) { + // Sometimes it takes a while for the service to get + // removed after previous test run. + for i := 0; ; i++ { + s, err := m.OpenService(name) + if err != nil { + break + } + s.Close() + + if i > 10 { + t.Fatalf("service %s already exists", name) + } + time.Sleep(300 * time.Millisecond) + } + + s, err := m.CreateService(name, exepath, c) + if err != nil { + t.Fatalf("CreateService(%s) failed: %v", name, err) + } + defer s.Close() +} + +func depString(d []string) string { + if len(d) == 0 { + return "" + } + for i := range d { + d[i] = strings.ToLower(d[i]) + } + ss := sort.StringSlice(d) + ss.Sort() + return strings.Join([]string(ss), " ") +} + +func testConfig(t *testing.T, s *mgr.Service, should mgr.Config) mgr.Config { + is, err := s.Config() + if err != nil { + t.Fatalf("Config failed: %s", err) + } + if should.DisplayName != is.DisplayName { + t.Fatalf("config mismatch: DisplayName is %q, but should have %q", is.DisplayName, should.DisplayName) + } + if should.StartType != is.StartType { + t.Fatalf("config mismatch: StartType is %v, but should have %v", is.StartType, should.StartType) + } + if should.Description != is.Description { + t.Fatalf("config mismatch: Description is %q, but should have %q", is.Description, should.Description) + } + if depString(should.Dependencies) != depString(is.Dependencies) { + t.Fatalf("config mismatch: Dependencies is %v, but should have %v", is.Dependencies, should.Dependencies) + } + return is +} + +func remove(t *testing.T, s *mgr.Service) { + err := s.Delete() + if err != nil { + t.Fatalf("Delete failed: %s", err) + } +} + +func TestMyService(t *testing.T) { + if testing.Short() { + t.Skip("skipping test in short mode - it modifies system services") + } + + const name = "myservice" + + m, err := mgr.Connect() + if err != nil { + if errno, ok := err.(syscall.Errno); ok && errno == syscall.ERROR_ACCESS_DENIED { + t.Skip("Skipping test: we don't have rights to manage services.") + } + t.Fatalf("SCM connection failed: %s", err) + } + defer m.Disconnect() + + c := mgr.Config{ + StartType: mgr.StartDisabled, + DisplayName: "my service", + Description: "my service is just a test", + Dependencies: []string{"LanmanServer", "W32Time"}, + } + + exename := os.Args[0] + exepath, err := filepath.Abs(exename) + if err != nil { + t.Fatalf("filepath.Abs(%s) failed: %s", exename, err) + } + + install(t, m, name, exepath, c) + + s, err := m.OpenService(name) + if err != nil { + t.Fatalf("service %s is not installed", name) + } + defer s.Close() + + c.BinaryPathName = exepath + c = testConfig(t, s, c) + + c.StartType = mgr.StartManual + err = s.UpdateConfig(c) + if err != nil { + t.Fatalf("UpdateConfig failed: %v", err) + } + + testConfig(t, s, c) + + svcnames, err := m.ListServices() + if err != nil { + t.Fatalf("ListServices failed: %v", err) + } + var myserviceIsInstalled bool + for _, sn := range svcnames { + if sn == name { + myserviceIsInstalled = true + break + } + } + if !myserviceIsInstalled { + t.Errorf("ListServices failed to find %q service", name) + } + + remove(t, s) +} diff --git a/vendor/golang.org/x/sys/windows/svc/mgr/service.go b/vendor/golang.org/x/sys/windows/svc/mgr/service.go new file mode 100644 index 0000000..fdc46af --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/mgr/service.go @@ -0,0 +1,72 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package mgr + +import ( + "syscall" + + "golang.org/x/sys/windows" + "golang.org/x/sys/windows/svc" +) + +// TODO(brainman): Use EnumDependentServices to enumerate dependent services. + +// Service is used to access Windows service. +type Service struct { + Name string + Handle windows.Handle +} + +// Delete marks service s for deletion from the service control manager database. +func (s *Service) Delete() error { + return windows.DeleteService(s.Handle) +} + +// Close relinquish access to the service s. +func (s *Service) Close() error { + return windows.CloseServiceHandle(s.Handle) +} + +// Start starts service s. +// args will be passed to svc.Handler.Execute. +func (s *Service) Start(args ...string) error { + var p **uint16 + if len(args) > 0 { + vs := make([]*uint16, len(args)) + for i := range vs { + vs[i] = syscall.StringToUTF16Ptr(args[i]) + } + p = &vs[0] + } + return windows.StartService(s.Handle, uint32(len(args)), p) +} + +// Control sends state change request c to the servce s. +func (s *Service) Control(c svc.Cmd) (svc.Status, error) { + var t windows.SERVICE_STATUS + err := windows.ControlService(s.Handle, uint32(c), &t) + if err != nil { + return svc.Status{}, err + } + return svc.Status{ + State: svc.State(t.CurrentState), + Accepts: svc.Accepted(t.ControlsAccepted), + }, nil +} + +// Query returns current status of service s. +func (s *Service) Query() (svc.Status, error) { + var t windows.SERVICE_STATUS + err := windows.QueryServiceStatus(s.Handle, &t) + if err != nil { + return svc.Status{}, err + } + return svc.Status{ + State: svc.State(t.CurrentState), + Accepts: svc.Accepted(t.ControlsAccepted), + }, nil +} diff --git a/vendor/golang.org/x/sys/windows/svc/security.go b/vendor/golang.org/x/sys/windows/svc/security.go new file mode 100644 index 0000000..6fbc923 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/security.go @@ -0,0 +1,62 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package svc + +import ( + "unsafe" + + "golang.org/x/sys/windows" +) + +func allocSid(subAuth0 uint32) (*windows.SID, error) { + var sid *windows.SID + err := windows.AllocateAndInitializeSid(&windows.SECURITY_NT_AUTHORITY, + 1, subAuth0, 0, 0, 0, 0, 0, 0, 0, &sid) + if err != nil { + return nil, err + } + return sid, nil +} + +// IsAnInteractiveSession determines if calling process is running interactively. +// It queries the process token for membership in the Interactive group. +// http://stackoverflow.com/questions/2668851/how-do-i-detect-that-my-application-is-running-as-service-or-in-an-interactive-s +func IsAnInteractiveSession() (bool, error) { + interSid, err := allocSid(windows.SECURITY_INTERACTIVE_RID) + if err != nil { + return false, err + } + defer windows.FreeSid(interSid) + + serviceSid, err := allocSid(windows.SECURITY_SERVICE_RID) + if err != nil { + return false, err + } + defer windows.FreeSid(serviceSid) + + t, err := windows.OpenCurrentProcessToken() + if err != nil { + return false, err + } + defer t.Close() + + gs, err := t.GetTokenGroups() + if err != nil { + return false, err + } + p := unsafe.Pointer(&gs.Groups[0]) + groups := (*[2 << 20]windows.SIDAndAttributes)(p)[:gs.GroupCount] + for _, g := range groups { + if windows.EqualSid(g.Sid, interSid) { + return true, nil + } + if windows.EqualSid(g.Sid, serviceSid) { + return false, nil + } + } + return false, nil +} diff --git a/vendor/golang.org/x/sys/windows/svc/service.go b/vendor/golang.org/x/sys/windows/svc/service.go new file mode 100644 index 0000000..903cba3 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/service.go @@ -0,0 +1,363 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// Package svc provides everything required to build Windows service. +// +package svc + +import ( + "errors" + "runtime" + "syscall" + "unsafe" + + "golang.org/x/sys/windows" +) + +// State describes service execution state (Stopped, Running and so on). +type State uint32 + +const ( + Stopped = State(windows.SERVICE_STOPPED) + StartPending = State(windows.SERVICE_START_PENDING) + StopPending = State(windows.SERVICE_STOP_PENDING) + Running = State(windows.SERVICE_RUNNING) + ContinuePending = State(windows.SERVICE_CONTINUE_PENDING) + PausePending = State(windows.SERVICE_PAUSE_PENDING) + Paused = State(windows.SERVICE_PAUSED) +) + +// Cmd represents service state change request. It is sent to a service +// by the service manager, and should be actioned upon by the service. +type Cmd uint32 + +const ( + Stop = Cmd(windows.SERVICE_CONTROL_STOP) + Pause = Cmd(windows.SERVICE_CONTROL_PAUSE) + Continue = Cmd(windows.SERVICE_CONTROL_CONTINUE) + Interrogate = Cmd(windows.SERVICE_CONTROL_INTERROGATE) + Shutdown = Cmd(windows.SERVICE_CONTROL_SHUTDOWN) + ParamChange = Cmd(windows.SERVICE_CONTROL_PARAMCHANGE) + NetBindAdd = Cmd(windows.SERVICE_CONTROL_NETBINDADD) + NetBindRemove = Cmd(windows.SERVICE_CONTROL_NETBINDREMOVE) + NetBindEnable = Cmd(windows.SERVICE_CONTROL_NETBINDENABLE) + NetBindDisable = Cmd(windows.SERVICE_CONTROL_NETBINDDISABLE) + DeviceEvent = Cmd(windows.SERVICE_CONTROL_DEVICEEVENT) + HardwareProfileChange = Cmd(windows.SERVICE_CONTROL_HARDWAREPROFILECHANGE) + PowerEvent = Cmd(windows.SERVICE_CONTROL_POWEREVENT) + SessionChange = Cmd(windows.SERVICE_CONTROL_SESSIONCHANGE) +) + +// Accepted is used to describe commands accepted by the service. +// Note that Interrogate is always accepted. +type Accepted uint32 + +const ( + AcceptStop = Accepted(windows.SERVICE_ACCEPT_STOP) + AcceptShutdown = Accepted(windows.SERVICE_ACCEPT_SHUTDOWN) + AcceptPauseAndContinue = Accepted(windows.SERVICE_ACCEPT_PAUSE_CONTINUE) + AcceptParamChange = Accepted(windows.SERVICE_ACCEPT_PARAMCHANGE) + AcceptNetBindChange = Accepted(windows.SERVICE_ACCEPT_NETBINDCHANGE) + AcceptHardwareProfileChange = Accepted(windows.SERVICE_ACCEPT_HARDWAREPROFILECHANGE) + AcceptPowerEvent = Accepted(windows.SERVICE_ACCEPT_POWEREVENT) + AcceptSessionChange = Accepted(windows.SERVICE_ACCEPT_SESSIONCHANGE) +) + +// Status combines State and Accepted commands to fully describe running service. +type Status struct { + State State + Accepts Accepted + CheckPoint uint32 // used to report progress during a lengthy operation + WaitHint uint32 // estimated time required for a pending operation, in milliseconds +} + +// ChangeRequest is sent to the service Handler to request service status change. +type ChangeRequest struct { + Cmd Cmd + EventType uint32 + EventData uintptr + CurrentStatus Status +} + +// Handler is the interface that must be implemented to build Windows service. +type Handler interface { + + // Execute will be called by the package code at the start of + // the service, and the service will exit once Execute completes. + // Inside Execute you must read service change requests from r and + // act accordingly. You must keep service control manager up to date + // about state of your service by writing into s as required. + // args contains service name followed by argument strings passed + // to the service. + // You can provide service exit code in exitCode return parameter, + // with 0 being "no error". You can also indicate if exit code, + // if any, is service specific or not by using svcSpecificEC + // parameter. + Execute(args []string, r <-chan ChangeRequest, s chan<- Status) (svcSpecificEC bool, exitCode uint32) +} + +var ( + // These are used by asm code. + goWaitsH uintptr + cWaitsH uintptr + ssHandle uintptr + sName *uint16 + sArgc uintptr + sArgv **uint16 + ctlHandlerExProc uintptr + cSetEvent uintptr + cWaitForSingleObject uintptr + cRegisterServiceCtrlHandlerExW uintptr +) + +func init() { + k := syscall.MustLoadDLL("kernel32.dll") + cSetEvent = k.MustFindProc("SetEvent").Addr() + cWaitForSingleObject = k.MustFindProc("WaitForSingleObject").Addr() + a := syscall.MustLoadDLL("advapi32.dll") + cRegisterServiceCtrlHandlerExW = a.MustFindProc("RegisterServiceCtrlHandlerExW").Addr() +} + +// The HandlerEx prototype also has a context pointer but since we don't use +// it at start-up time we don't have to pass it over either. +type ctlEvent struct { + cmd Cmd + eventType uint32 + eventData uintptr + errno uint32 +} + +// service provides access to windows service api. +type service struct { + name string + h windows.Handle + cWaits *event + goWaits *event + c chan ctlEvent + handler Handler +} + +func newService(name string, handler Handler) (*service, error) { + var s service + var err error + s.name = name + s.c = make(chan ctlEvent) + s.handler = handler + s.cWaits, err = newEvent() + if err != nil { + return nil, err + } + s.goWaits, err = newEvent() + if err != nil { + s.cWaits.Close() + return nil, err + } + return &s, nil +} + +func (s *service) close() error { + s.cWaits.Close() + s.goWaits.Close() + return nil +} + +type exitCode struct { + isSvcSpecific bool + errno uint32 +} + +func (s *service) updateStatus(status *Status, ec *exitCode) error { + if s.h == 0 { + return errors.New("updateStatus with no service status handle") + } + var t windows.SERVICE_STATUS + t.ServiceType = windows.SERVICE_WIN32_OWN_PROCESS + t.CurrentState = uint32(status.State) + if status.Accepts&AcceptStop != 0 { + t.ControlsAccepted |= windows.SERVICE_ACCEPT_STOP + } + if status.Accepts&AcceptShutdown != 0 { + t.ControlsAccepted |= windows.SERVICE_ACCEPT_SHUTDOWN + } + if status.Accepts&AcceptPauseAndContinue != 0 { + t.ControlsAccepted |= windows.SERVICE_ACCEPT_PAUSE_CONTINUE + } + if status.Accepts&AcceptParamChange != 0 { + t.ControlsAccepted |= windows.SERVICE_ACCEPT_PARAMCHANGE + } + if status.Accepts&AcceptNetBindChange != 0 { + t.ControlsAccepted |= windows.SERVICE_ACCEPT_NETBINDCHANGE + } + if status.Accepts&AcceptHardwareProfileChange != 0 { + t.ControlsAccepted |= windows.SERVICE_ACCEPT_HARDWAREPROFILECHANGE + } + if status.Accepts&AcceptPowerEvent != 0 { + t.ControlsAccepted |= windows.SERVICE_ACCEPT_POWEREVENT + } + if status.Accepts&AcceptSessionChange != 0 { + t.ControlsAccepted |= windows.SERVICE_ACCEPT_SESSIONCHANGE + } + if ec.errno == 0 { + t.Win32ExitCode = windows.NO_ERROR + t.ServiceSpecificExitCode = windows.NO_ERROR + } else if ec.isSvcSpecific { + t.Win32ExitCode = uint32(windows.ERROR_SERVICE_SPECIFIC_ERROR) + t.ServiceSpecificExitCode = ec.errno + } else { + t.Win32ExitCode = ec.errno + t.ServiceSpecificExitCode = windows.NO_ERROR + } + t.CheckPoint = status.CheckPoint + t.WaitHint = status.WaitHint + return windows.SetServiceStatus(s.h, &t) +} + +const ( + sysErrSetServiceStatusFailed = uint32(syscall.APPLICATION_ERROR) + iota + sysErrNewThreadInCallback +) + +func (s *service) run() { + s.goWaits.Wait() + s.h = windows.Handle(ssHandle) + argv := (*[100]*int16)(unsafe.Pointer(sArgv))[:sArgc] + args := make([]string, len(argv)) + for i, a := range argv { + args[i] = syscall.UTF16ToString((*[1 << 20]uint16)(unsafe.Pointer(a))[:]) + } + + cmdsToHandler := make(chan ChangeRequest) + changesFromHandler := make(chan Status) + exitFromHandler := make(chan exitCode) + + go func() { + ss, errno := s.handler.Execute(args, cmdsToHandler, changesFromHandler) + exitFromHandler <- exitCode{ss, errno} + }() + + status := Status{State: Stopped} + ec := exitCode{isSvcSpecific: true, errno: 0} + var outch chan ChangeRequest + inch := s.c + var cmd Cmd + var evtype uint32 + var evdata uintptr +loop: + for { + select { + case r := <-inch: + if r.errno != 0 { + ec.errno = r.errno + break loop + } + inch = nil + outch = cmdsToHandler + cmd = r.cmd + evtype = r.eventType + evdata = r.eventData + case outch <- ChangeRequest{cmd, evtype, evdata, status}: + inch = s.c + outch = nil + case c := <-changesFromHandler: + err := s.updateStatus(&c, &ec) + if err != nil { + // best suitable error number + ec.errno = sysErrSetServiceStatusFailed + if err2, ok := err.(syscall.Errno); ok { + ec.errno = uint32(err2) + } + break loop + } + status = c + case ec = <-exitFromHandler: + break loop + } + } + + s.updateStatus(&Status{State: Stopped}, &ec) + s.cWaits.Set() +} + +func newCallback(fn interface{}) (cb uintptr, err error) { + defer func() { + r := recover() + if r == nil { + return + } + cb = 0 + switch v := r.(type) { + case string: + err = errors.New(v) + case error: + err = v + default: + err = errors.New("unexpected panic in syscall.NewCallback") + } + }() + return syscall.NewCallback(fn), nil +} + +// BUG(brainman): There is no mechanism to run multiple services +// inside one single executable. Perhaps, it can be overcome by +// using RegisterServiceCtrlHandlerEx Windows api. + +// Run executes service name by calling appropriate handler function. +func Run(name string, handler Handler) error { + runtime.LockOSThread() + + tid := windows.GetCurrentThreadId() + + s, err := newService(name, handler) + if err != nil { + return err + } + + ctlHandler := func(ctl uint32, evtype uint32, evdata uintptr, context uintptr) uintptr { + e := ctlEvent{cmd: Cmd(ctl), eventType: evtype, eventData: evdata} + // We assume that this callback function is running on + // the same thread as Run. Nowhere in MS documentation + // I could find statement to guarantee that. So putting + // check here to verify, otherwise things will go bad + // quickly, if ignored. + i := windows.GetCurrentThreadId() + if i != tid { + e.errno = sysErrNewThreadInCallback + } + s.c <- e + // Always return NO_ERROR (0) for now. + return 0 + } + + var svcmain uintptr + getServiceMain(&svcmain) + t := []windows.SERVICE_TABLE_ENTRY{ + {syscall.StringToUTF16Ptr(s.name), svcmain}, + {nil, 0}, + } + + goWaitsH = uintptr(s.goWaits.h) + cWaitsH = uintptr(s.cWaits.h) + sName = t[0].ServiceName + ctlHandlerExProc, err = newCallback(ctlHandler) + if err != nil { + return err + } + + go s.run() + + err = windows.StartServiceCtrlDispatcher(&t[0]) + if err != nil { + return err + } + return nil +} + +// StatusHandle returns service status handle. It is safe to call this function +// from inside the Handler.Execute because then it is guaranteed to be set. +// This code will have to change once multiple services are possible per process. +func StatusHandle() windows.Handle { + return windows.Handle(ssHandle) +} diff --git a/vendor/golang.org/x/sys/windows/svc/svc_test.go b/vendor/golang.org/x/sys/windows/svc/svc_test.go new file mode 100644 index 0000000..da7ec66 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/svc_test.go @@ -0,0 +1,118 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package svc_test + +import ( + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "testing" + "time" + + "golang.org/x/sys/windows/svc" + "golang.org/x/sys/windows/svc/mgr" +) + +func getState(t *testing.T, s *mgr.Service) svc.State { + status, err := s.Query() + if err != nil { + t.Fatalf("Query(%s) failed: %s", s.Name, err) + } + return status.State +} + +func testState(t *testing.T, s *mgr.Service, want svc.State) { + have := getState(t, s) + if have != want { + t.Fatalf("%s state is=%d want=%d", s.Name, have, want) + } +} + +func waitState(t *testing.T, s *mgr.Service, want svc.State) { + for i := 0; ; i++ { + have := getState(t, s) + if have == want { + return + } + if i > 10 { + t.Fatalf("%s state is=%d, waiting timeout", s.Name, have) + } + time.Sleep(300 * time.Millisecond) + } +} + +func TestExample(t *testing.T) { + if testing.Short() { + t.Skip("skipping test in short mode - it modifies system services") + } + + const name = "myservice" + + m, err := mgr.Connect() + if err != nil { + t.Fatalf("SCM connection failed: %s", err) + } + defer m.Disconnect() + + dir, err := ioutil.TempDir("", "svc") + if err != nil { + t.Fatalf("failed to create temp directory: %v", err) + } + defer os.RemoveAll(dir) + + exepath := filepath.Join(dir, "a.exe") + o, err := exec.Command("go", "build", "-o", exepath, "golang.org/x/sys/windows/svc/example").CombinedOutput() + if err != nil { + t.Fatalf("failed to build service program: %v\n%v", err, string(o)) + } + + s, err := m.OpenService(name) + if err == nil { + err = s.Delete() + if err != nil { + s.Close() + t.Fatalf("Delete failed: %s", err) + } + s.Close() + } + s, err = m.CreateService(name, exepath, mgr.Config{DisplayName: "my service"}, "is", "auto-started") + if err != nil { + t.Fatalf("CreateService(%s) failed: %v", name, err) + } + defer s.Close() + + testState(t, s, svc.Stopped) + err = s.Start("is", "manual-started") + if err != nil { + t.Fatalf("Start(%s) failed: %s", s.Name, err) + } + waitState(t, s, svc.Running) + time.Sleep(1 * time.Second) + + // testing deadlock from issues 4. + _, err = s.Control(svc.Interrogate) + if err != nil { + t.Fatalf("Control(%s) failed: %s", s.Name, err) + } + _, err = s.Control(svc.Interrogate) + if err != nil { + t.Fatalf("Control(%s) failed: %s", s.Name, err) + } + time.Sleep(1 * time.Second) + + _, err = s.Control(svc.Stop) + if err != nil { + t.Fatalf("Control(%s) failed: %s", s.Name, err) + } + waitState(t, s, svc.Stopped) + + err = s.Delete() + if err != nil { + t.Fatalf("Delete failed: %s", err) + } +} diff --git a/vendor/golang.org/x/sys/windows/svc/sys_386.s b/vendor/golang.org/x/sys/windows/svc/sys_386.s new file mode 100644 index 0000000..2c82a9d --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/sys_386.s @@ -0,0 +1,68 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// func servicemain(argc uint32, argv **uint16) +TEXT ·servicemain(SB),7,$0 + MOVL argc+0(FP), AX + MOVL AX, ·sArgc(SB) + MOVL argv+4(FP), AX + MOVL AX, ·sArgv(SB) + + PUSHL BP + PUSHL BX + PUSHL SI + PUSHL DI + + SUBL $12, SP + + MOVL ·sName(SB), AX + MOVL AX, (SP) + MOVL $·servicectlhandler(SB), AX + MOVL AX, 4(SP) + MOVL $0, 8(SP) + MOVL ·cRegisterServiceCtrlHandlerExW(SB), AX + MOVL SP, BP + CALL AX + MOVL BP, SP + CMPL AX, $0 + JE exit + MOVL AX, ·ssHandle(SB) + + MOVL ·goWaitsH(SB), AX + MOVL AX, (SP) + MOVL ·cSetEvent(SB), AX + MOVL SP, BP + CALL AX + MOVL BP, SP + + MOVL ·cWaitsH(SB), AX + MOVL AX, (SP) + MOVL $-1, AX + MOVL AX, 4(SP) + MOVL ·cWaitForSingleObject(SB), AX + MOVL SP, BP + CALL AX + MOVL BP, SP + +exit: + ADDL $12, SP + + POPL DI + POPL SI + POPL BX + POPL BP + + MOVL 0(SP), CX + ADDL $12, SP + JMP CX + +// I do not know why, but this seems to be the only way to call +// ctlHandlerProc on Windows 7. + +// func servicectlhandler(ctl uint32, evtype uint32, evdata uintptr, context uintptr) uintptr { +TEXT ·servicectlhandler(SB),7,$0 + MOVL ·ctlHandlerExProc(SB), CX + JMP CX diff --git a/vendor/golang.org/x/sys/windows/svc/sys_amd64.s b/vendor/golang.org/x/sys/windows/svc/sys_amd64.s new file mode 100644 index 0000000..06b4259 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/svc/sys_amd64.s @@ -0,0 +1,42 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// func servicemain(argc uint32, argv **uint16) +TEXT ·servicemain(SB),7,$0 + MOVL CX, ·sArgc(SB) + MOVL DX, ·sArgv(SB) + + SUBQ $32, SP // stack for the first 4 syscall params + + MOVQ ·sName(SB), CX + MOVQ $·servicectlhandler(SB), DX + // BUG(pastarmovj): Figure out a way to pass in context in R8. + MOVQ ·cRegisterServiceCtrlHandlerExW(SB), AX + CALL AX + CMPQ AX, $0 + JE exit + MOVQ AX, ·ssHandle(SB) + + MOVQ ·goWaitsH(SB), CX + MOVQ ·cSetEvent(SB), AX + CALL AX + + MOVQ ·cWaitsH(SB), CX + MOVQ $4294967295, DX + MOVQ ·cWaitForSingleObject(SB), AX + CALL AX + +exit: + ADDQ $32, SP + RET + +// I do not know why, but this seems to be the only way to call +// ctlHandlerProc on Windows 7. + +// func ·servicectlhandler(ctl uint32, evtype uint32, evdata uintptr, context uintptr) uintptr { +TEXT ·servicectlhandler(SB),7,$0 + MOVQ ·ctlHandlerExProc(SB), AX + JMP AX diff --git a/vendor/golang.org/x/sys/windows/syscall.go b/vendor/golang.org/x/sys/windows/syscall.go new file mode 100644 index 0000000..b07bc23 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall.go @@ -0,0 +1,71 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +// Package windows contains an interface to the low-level operating system +// primitives. OS details vary depending on the underlying system, and +// by default, godoc will display the OS-specific documentation for the current +// system. If you want godoc to display syscall documentation for another +// system, set $GOOS and $GOARCH to the desired system. For example, if +// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS +// to freebsd and $GOARCH to arm. +// The primary use of this package is inside other packages that provide a more +// portable interface to the system, such as "os", "time" and "net". Use +// those packages rather than this one if you can. +// For details of the functions and data types in this package consult +// the manuals for the appropriate operating system. +// These calls return err == nil to indicate success; otherwise +// err represents an operating system error describing the failure and +// holds a value of type syscall.Errno. +package windows // import "golang.org/x/sys/windows" + +import ( + "syscall" +) + +// ByteSliceFromString returns a NUL-terminated slice of bytes +// containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func ByteSliceFromString(s string) ([]byte, error) { + for i := 0; i < len(s); i++ { + if s[i] == 0 { + return nil, syscall.EINVAL + } + } + a := make([]byte, len(s)+1) + copy(a, s) + return a, nil +} + +// BytePtrFromString returns a pointer to a NUL-terminated array of +// bytes containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func BytePtrFromString(s string) (*byte, error) { + a, err := ByteSliceFromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +// Single-word zero for use when we need a valid pointer to 0 bytes. +// See mksyscall.pl. +var _zero uintptr + +func (ts *Timespec) Unix() (sec int64, nsec int64) { + return int64(ts.Sec), int64(ts.Nsec) +} + +func (tv *Timeval) Unix() (sec int64, nsec int64) { + return int64(tv.Sec), int64(tv.Usec) * 1000 +} + +func (ts *Timespec) Nano() int64 { + return int64(ts.Sec)*1e9 + int64(ts.Nsec) +} + +func (tv *Timeval) Nano() int64 { + return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 +} diff --git a/vendor/golang.org/x/sys/windows/syscall_test.go b/vendor/golang.org/x/sys/windows/syscall_test.go new file mode 100644 index 0000000..d7009e4 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall_test.go @@ -0,0 +1,53 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build windows + +package windows_test + +import ( + "syscall" + "testing" + + "golang.org/x/sys/windows" +) + +func testSetGetenv(t *testing.T, key, value string) { + err := windows.Setenv(key, value) + if err != nil { + t.Fatalf("Setenv failed to set %q: %v", value, err) + } + newvalue, found := windows.Getenv(key) + if !found { + t.Fatalf("Getenv failed to find %v variable (want value %q)", key, value) + } + if newvalue != value { + t.Fatalf("Getenv(%v) = %q; want %q", key, newvalue, value) + } +} + +func TestEnv(t *testing.T) { + testSetGetenv(t, "TESTENV", "AVALUE") + // make sure TESTENV gets set to "", not deleted + testSetGetenv(t, "TESTENV", "") +} + +func TestGetProcAddressByOrdinal(t *testing.T) { + // Attempt calling shlwapi.dll:IsOS, resolving it by ordinal, as + // suggested in + // https://msdn.microsoft.com/en-us/library/windows/desktop/bb773795.aspx + h, err := windows.LoadLibrary("shlwapi.dll") + if err != nil { + t.Fatalf("Failed to load shlwapi.dll: %s", err) + } + procIsOS, err := windows.GetProcAddressByOrdinal(h, 437) + if err != nil { + t.Fatalf("Could not find shlwapi.dll:IsOS by ordinal: %s", err) + } + const OS_NT = 1 + r, _, _ := syscall.Syscall(procIsOS, 1, OS_NT, 0, 0) + if r == 0 { + t.Error("shlwapi.dll:IsOS(OS_NT) returned 0, expected non-zero value") + } +} diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go new file mode 100644 index 0000000..1e9f4bb --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -0,0 +1,1153 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Windows system calls. + +package windows + +import ( + errorspkg "errors" + "sync" + "syscall" + "unicode/utf16" + "unsafe" +) + +type Handle uintptr + +const ( + InvalidHandle = ^Handle(0) + + // Flags for DefineDosDevice. + DDD_EXACT_MATCH_ON_REMOVE = 0x00000004 + DDD_NO_BROADCAST_SYSTEM = 0x00000008 + DDD_RAW_TARGET_PATH = 0x00000001 + DDD_REMOVE_DEFINITION = 0x00000002 + + // Return values for GetDriveType. + DRIVE_UNKNOWN = 0 + DRIVE_NO_ROOT_DIR = 1 + DRIVE_REMOVABLE = 2 + DRIVE_FIXED = 3 + DRIVE_REMOTE = 4 + DRIVE_CDROM = 5 + DRIVE_RAMDISK = 6 + + // File system flags from GetVolumeInformation and GetVolumeInformationByHandle. + FILE_CASE_SENSITIVE_SEARCH = 0x00000001 + FILE_CASE_PRESERVED_NAMES = 0x00000002 + FILE_FILE_COMPRESSION = 0x00000010 + FILE_DAX_VOLUME = 0x20000000 + FILE_NAMED_STREAMS = 0x00040000 + FILE_PERSISTENT_ACLS = 0x00000008 + FILE_READ_ONLY_VOLUME = 0x00080000 + FILE_SEQUENTIAL_WRITE_ONCE = 0x00100000 + FILE_SUPPORTS_ENCRYPTION = 0x00020000 + FILE_SUPPORTS_EXTENDED_ATTRIBUTES = 0x00800000 + FILE_SUPPORTS_HARD_LINKS = 0x00400000 + FILE_SUPPORTS_OBJECT_IDS = 0x00010000 + FILE_SUPPORTS_OPEN_BY_FILE_ID = 0x01000000 + FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 + FILE_SUPPORTS_SPARSE_FILES = 0x00000040 + FILE_SUPPORTS_TRANSACTIONS = 0x00200000 + FILE_SUPPORTS_USN_JOURNAL = 0x02000000 + FILE_UNICODE_ON_DISK = 0x00000004 + FILE_VOLUME_IS_COMPRESSED = 0x00008000 + FILE_VOLUME_QUOTAS = 0x00000020 +) + +// StringToUTF16 is deprecated. Use UTF16FromString instead. +// If s contains a NUL byte this function panics instead of +// returning an error. +func StringToUTF16(s string) []uint16 { + a, err := UTF16FromString(s) + if err != nil { + panic("windows: string with NUL passed to StringToUTF16") + } + return a +} + +// UTF16FromString returns the UTF-16 encoding of the UTF-8 string +// s, with a terminating NUL added. If s contains a NUL byte at any +// location, it returns (nil, syscall.EINVAL). +func UTF16FromString(s string) ([]uint16, error) { + for i := 0; i < len(s); i++ { + if s[i] == 0 { + return nil, syscall.EINVAL + } + } + return utf16.Encode([]rune(s + "\x00")), nil +} + +// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s, +// with a terminating NUL removed. +func UTF16ToString(s []uint16) string { + for i, v := range s { + if v == 0 { + s = s[0:i] + break + } + } + return string(utf16.Decode(s)) +} + +// StringToUTF16Ptr is deprecated. Use UTF16PtrFromString instead. +// If s contains a NUL byte this function panics instead of +// returning an error. +func StringToUTF16Ptr(s string) *uint16 { return &StringToUTF16(s)[0] } + +// UTF16PtrFromString returns pointer to the UTF-16 encoding of +// the UTF-8 string s, with a terminating NUL added. If s +// contains a NUL byte at any location, it returns (nil, syscall.EINVAL). +func UTF16PtrFromString(s string) (*uint16, error) { + a, err := UTF16FromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +func Getpagesize() int { return 4096 } + +// NewCallback converts a Go function to a function pointer conforming to the stdcall calling convention. +// This is useful when interoperating with Windows code requiring callbacks. +func NewCallback(fn interface{}) uintptr { + return syscall.NewCallback(fn) +} + +// NewCallbackCDecl converts a Go function to a function pointer conforming to the cdecl calling convention. +// This is useful when interoperating with Windows code requiring callbacks. +func NewCallbackCDecl(fn interface{}) uintptr { + return syscall.NewCallbackCDecl(fn) +} + +// windows api calls + +//sys GetLastError() (lasterr error) +//sys LoadLibrary(libname string) (handle Handle, err error) = LoadLibraryW +//sys LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) = LoadLibraryExW +//sys FreeLibrary(handle Handle) (err error) +//sys GetProcAddress(module Handle, procname string) (proc uintptr, err error) +//sys GetVersion() (ver uint32, err error) +//sys FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) = FormatMessageW +//sys ExitProcess(exitcode uint32) +//sys CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) [failretval==InvalidHandle] = CreateFileW +//sys ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) +//sys WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) +//sys SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) [failretval==0xffffffff] +//sys CloseHandle(handle Handle) (err error) +//sys GetStdHandle(stdhandle uint32) (handle Handle, err error) [failretval==InvalidHandle] +//sys SetStdHandle(stdhandle uint32, handle Handle) (err error) +//sys findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstFileW +//sys findNextFile1(handle Handle, data *win32finddata1) (err error) = FindNextFileW +//sys FindClose(handle Handle) (err error) +//sys GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) +//sys GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) = GetCurrentDirectoryW +//sys SetCurrentDirectory(path *uint16) (err error) = SetCurrentDirectoryW +//sys CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) = CreateDirectoryW +//sys RemoveDirectory(path *uint16) (err error) = RemoveDirectoryW +//sys DeleteFile(path *uint16) (err error) = DeleteFileW +//sys MoveFile(from *uint16, to *uint16) (err error) = MoveFileW +//sys MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) = MoveFileExW +//sys GetComputerName(buf *uint16, n *uint32) (err error) = GetComputerNameW +//sys GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) = GetComputerNameExW +//sys SetEndOfFile(handle Handle) (err error) +//sys GetSystemTimeAsFileTime(time *Filetime) +//sys GetSystemTimePreciseAsFileTime(time *Filetime) +//sys GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) [failretval==0xffffffff] +//sys CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) +//sys GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) +//sys PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) +//sys CancelIo(s Handle) (err error) +//sys CancelIoEx(s Handle, o *Overlapped) (err error) +//sys CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) = CreateProcessW +//sys OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) +//sys TerminateProcess(handle Handle, exitcode uint32) (err error) +//sys GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) +//sys GetStartupInfo(startupInfo *StartupInfo) (err error) = GetStartupInfoW +//sys GetCurrentProcess() (pseudoHandle Handle, err error) +//sys GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) +//sys DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) +//sys WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) [failretval==0xffffffff] +//sys GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) = GetTempPathW +//sys CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) +//sys GetFileType(filehandle Handle) (n uint32, err error) +//sys CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) = advapi32.CryptAcquireContextW +//sys CryptReleaseContext(provhandle Handle, flags uint32) (err error) = advapi32.CryptReleaseContext +//sys CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) = advapi32.CryptGenRandom +//sys GetEnvironmentStrings() (envs *uint16, err error) [failretval==nil] = kernel32.GetEnvironmentStringsW +//sys FreeEnvironmentStrings(envs *uint16) (err error) = kernel32.FreeEnvironmentStringsW +//sys GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) = kernel32.GetEnvironmentVariableW +//sys SetEnvironmentVariable(name *uint16, value *uint16) (err error) = kernel32.SetEnvironmentVariableW +//sys SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) +//sys GetFileAttributes(name *uint16) (attrs uint32, err error) [failretval==INVALID_FILE_ATTRIBUTES] = kernel32.GetFileAttributesW +//sys SetFileAttributes(name *uint16, attrs uint32) (err error) = kernel32.SetFileAttributesW +//sys GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) = kernel32.GetFileAttributesExW +//sys GetCommandLine() (cmd *uint16) = kernel32.GetCommandLineW +//sys CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) [failretval==nil] = shell32.CommandLineToArgvW +//sys LocalFree(hmem Handle) (handle Handle, err error) [failretval!=0] +//sys SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) +//sys FlushFileBuffers(handle Handle) (err error) +//sys GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) = kernel32.GetFullPathNameW +//sys GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) = kernel32.GetLongPathNameW +//sys GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) = kernel32.GetShortPathNameW +//sys CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) = kernel32.CreateFileMappingW +//sys MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) +//sys UnmapViewOfFile(addr uintptr) (err error) +//sys FlushViewOfFile(addr uintptr, length uintptr) (err error) +//sys VirtualLock(addr uintptr, length uintptr) (err error) +//sys VirtualUnlock(addr uintptr, length uintptr) (err error) +//sys VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) = kernel32.VirtualAlloc +//sys VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) = kernel32.VirtualFree +//sys VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) = kernel32.VirtualProtect +//sys TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) = mswsock.TransmitFile +//sys ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) = kernel32.ReadDirectoryChangesW +//sys CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) = crypt32.CertOpenSystemStoreW +//sys CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) [failretval==InvalidHandle] = crypt32.CertOpenStore +//sys CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) [failretval==nil] = crypt32.CertEnumCertificatesInStore +//sys CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) = crypt32.CertAddCertificateContextToStore +//sys CertCloseStore(store Handle, flags uint32) (err error) = crypt32.CertCloseStore +//sys CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) = crypt32.CertGetCertificateChain +//sys CertFreeCertificateChain(ctx *CertChainContext) = crypt32.CertFreeCertificateChain +//sys CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) [failretval==nil] = crypt32.CertCreateCertificateContext +//sys CertFreeCertificateContext(ctx *CertContext) (err error) = crypt32.CertFreeCertificateContext +//sys CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) = crypt32.CertVerifyCertificateChainPolicy +//sys RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) = advapi32.RegOpenKeyExW +//sys RegCloseKey(key Handle) (regerrno error) = advapi32.RegCloseKey +//sys RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegQueryInfoKeyW +//sys RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) = advapi32.RegEnumKeyExW +//sys RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) = advapi32.RegQueryValueExW +//sys getCurrentProcessId() (pid uint32) = kernel32.GetCurrentProcessId +//sys GetConsoleMode(console Handle, mode *uint32) (err error) = kernel32.GetConsoleMode +//sys SetConsoleMode(console Handle, mode uint32) (err error) = kernel32.SetConsoleMode +//sys GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) = kernel32.GetConsoleScreenBufferInfo +//sys WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) = kernel32.WriteConsoleW +//sys ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) = kernel32.ReadConsoleW +//sys CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) [failretval==InvalidHandle] = kernel32.CreateToolhelp32Snapshot +//sys Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32FirstW +//sys Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) = kernel32.Process32NextW +//sys DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) +// This function returns 1 byte BOOLEAN rather than the 4 byte BOOL. +//sys CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) [failretval&0xff==0] = CreateSymbolicLinkW +//sys CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) [failretval&0xff==0] = CreateHardLinkW +//sys GetCurrentThreadId() (id uint32) +//sys CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) = kernel32.CreateEventW +//sys CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) = kernel32.CreateEventExW +//sys OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) = kernel32.OpenEventW +//sys SetEvent(event Handle) (err error) = kernel32.SetEvent +//sys ResetEvent(event Handle) (err error) = kernel32.ResetEvent +//sys PulseEvent(event Handle) (err error) = kernel32.PulseEvent + +// Volume Management Functions +//sys DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) = DefineDosDeviceW +//sys DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) = DeleteVolumeMountPointW +//sys FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeW +//sys FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) [failretval==InvalidHandle] = FindFirstVolumeMountPointW +//sys FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) = FindNextVolumeW +//sys FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) = FindNextVolumeMountPointW +//sys FindVolumeClose(findVolume Handle) (err error) +//sys FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) +//sys GetDriveType(rootPathName *uint16) (driveType uint32) = GetDriveTypeW +//sys GetLogicalDrives() (drivesBitMask uint32, err error) [failretval==0] +//sys GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) [failretval==0] = GetLogicalDriveStringsW +//sys GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationW +//sys GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) = GetVolumeInformationByHandleW +//sys GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) = GetVolumeNameForVolumeMountPointW +//sys GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) = GetVolumePathNameW +//sys GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) = GetVolumePathNamesForVolumeNameW +//sys QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) [failretval==0] = QueryDosDeviceW +//sys SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) = SetVolumeLabelW +//sys SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) = SetVolumeMountPointW + +// syscall interface implementation for other packages + +// GetProcAddressByOrdinal retrieves the address of the exported +// function from module by ordinal. +func GetProcAddressByOrdinal(module Handle, ordinal uintptr) (proc uintptr, err error) { + r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), ordinal, 0) + proc = uintptr(r0) + if proc == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func Exit(code int) { ExitProcess(uint32(code)) } + +func makeInheritSa() *SecurityAttributes { + var sa SecurityAttributes + sa.Length = uint32(unsafe.Sizeof(sa)) + sa.InheritHandle = 1 + return &sa +} + +func Open(path string, mode int, perm uint32) (fd Handle, err error) { + if len(path) == 0 { + return InvalidHandle, ERROR_FILE_NOT_FOUND + } + pathp, err := UTF16PtrFromString(path) + if err != nil { + return InvalidHandle, err + } + var access uint32 + switch mode & (O_RDONLY | O_WRONLY | O_RDWR) { + case O_RDONLY: + access = GENERIC_READ + case O_WRONLY: + access = GENERIC_WRITE + case O_RDWR: + access = GENERIC_READ | GENERIC_WRITE + } + if mode&O_CREAT != 0 { + access |= GENERIC_WRITE + } + if mode&O_APPEND != 0 { + access &^= GENERIC_WRITE + access |= FILE_APPEND_DATA + } + sharemode := uint32(FILE_SHARE_READ | FILE_SHARE_WRITE) + var sa *SecurityAttributes + if mode&O_CLOEXEC == 0 { + sa = makeInheritSa() + } + var createmode uint32 + switch { + case mode&(O_CREAT|O_EXCL) == (O_CREAT | O_EXCL): + createmode = CREATE_NEW + case mode&(O_CREAT|O_TRUNC) == (O_CREAT | O_TRUNC): + createmode = CREATE_ALWAYS + case mode&O_CREAT == O_CREAT: + createmode = OPEN_ALWAYS + case mode&O_TRUNC == O_TRUNC: + createmode = TRUNCATE_EXISTING + default: + createmode = OPEN_EXISTING + } + h, e := CreateFile(pathp, access, sharemode, sa, createmode, FILE_ATTRIBUTE_NORMAL, 0) + return h, e +} + +func Read(fd Handle, p []byte) (n int, err error) { + var done uint32 + e := ReadFile(fd, p, &done, nil) + if e != nil { + if e == ERROR_BROKEN_PIPE { + // NOTE(brainman): work around ERROR_BROKEN_PIPE is returned on reading EOF from stdin + return 0, nil + } + return 0, e + } + if raceenabled { + if done > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), int(done)) + } + raceAcquire(unsafe.Pointer(&ioSync)) + } + return int(done), nil +} + +func Write(fd Handle, p []byte) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + var done uint32 + e := WriteFile(fd, p, &done, nil) + if e != nil { + return 0, e + } + if raceenabled && done > 0 { + raceReadRange(unsafe.Pointer(&p[0]), int(done)) + } + return int(done), nil +} + +var ioSync int64 + +func Seek(fd Handle, offset int64, whence int) (newoffset int64, err error) { + var w uint32 + switch whence { + case 0: + w = FILE_BEGIN + case 1: + w = FILE_CURRENT + case 2: + w = FILE_END + } + hi := int32(offset >> 32) + lo := int32(offset) + // use GetFileType to check pipe, pipe can't do seek + ft, _ := GetFileType(fd) + if ft == FILE_TYPE_PIPE { + return 0, syscall.EPIPE + } + rlo, e := SetFilePointer(fd, lo, &hi, w) + if e != nil { + return 0, e + } + return int64(hi)<<32 + int64(rlo), nil +} + +func Close(fd Handle) (err error) { + return CloseHandle(fd) +} + +var ( + Stdin = getStdHandle(STD_INPUT_HANDLE) + Stdout = getStdHandle(STD_OUTPUT_HANDLE) + Stderr = getStdHandle(STD_ERROR_HANDLE) +) + +func getStdHandle(stdhandle uint32) (fd Handle) { + r, _ := GetStdHandle(stdhandle) + CloseOnExec(r) + return r +} + +const ImplementsGetwd = true + +func Getwd() (wd string, err error) { + b := make([]uint16, 300) + n, e := GetCurrentDirectory(uint32(len(b)), &b[0]) + if e != nil { + return "", e + } + return string(utf16.Decode(b[0:n])), nil +} + +func Chdir(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return SetCurrentDirectory(pathp) +} + +func Mkdir(path string, mode uint32) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return CreateDirectory(pathp, nil) +} + +func Rmdir(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return RemoveDirectory(pathp) +} + +func Unlink(path string) (err error) { + pathp, err := UTF16PtrFromString(path) + if err != nil { + return err + } + return DeleteFile(pathp) +} + +func Rename(oldpath, newpath string) (err error) { + from, err := UTF16PtrFromString(oldpath) + if err != nil { + return err + } + to, err := UTF16PtrFromString(newpath) + if err != nil { + return err + } + return MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING) +} + +func ComputerName() (name string, err error) { + var n uint32 = MAX_COMPUTERNAME_LENGTH + 1 + b := make([]uint16, n) + e := GetComputerName(&b[0], &n) + if e != nil { + return "", e + } + return string(utf16.Decode(b[0:n])), nil +} + +func Ftruncate(fd Handle, length int64) (err error) { + curoffset, e := Seek(fd, 0, 1) + if e != nil { + return e + } + defer Seek(fd, curoffset, 0) + _, e = Seek(fd, length, 0) + if e != nil { + return e + } + e = SetEndOfFile(fd) + if e != nil { + return e + } + return nil +} + +func Gettimeofday(tv *Timeval) (err error) { + var ft Filetime + GetSystemTimeAsFileTime(&ft) + *tv = NsecToTimeval(ft.Nanoseconds()) + return nil +} + +func Pipe(p []Handle) (err error) { + if len(p) != 2 { + return syscall.EINVAL + } + var r, w Handle + e := CreatePipe(&r, &w, makeInheritSa(), 0) + if e != nil { + return e + } + p[0] = r + p[1] = w + return nil +} + +func Utimes(path string, tv []Timeval) (err error) { + if len(tv) != 2 { + return syscall.EINVAL + } + pathp, e := UTF16PtrFromString(path) + if e != nil { + return e + } + h, e := CreateFile(pathp, + FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) + if e != nil { + return e + } + defer Close(h) + a := NsecToFiletime(tv[0].Nanoseconds()) + w := NsecToFiletime(tv[1].Nanoseconds()) + return SetFileTime(h, nil, &a, &w) +} + +func UtimesNano(path string, ts []Timespec) (err error) { + if len(ts) != 2 { + return syscall.EINVAL + } + pathp, e := UTF16PtrFromString(path) + if e != nil { + return e + } + h, e := CreateFile(pathp, + FILE_WRITE_ATTRIBUTES, FILE_SHARE_WRITE, nil, + OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0) + if e != nil { + return e + } + defer Close(h) + a := NsecToFiletime(TimespecToNsec(ts[0])) + w := NsecToFiletime(TimespecToNsec(ts[1])) + return SetFileTime(h, nil, &a, &w) +} + +func Fsync(fd Handle) (err error) { + return FlushFileBuffers(fd) +} + +func Chmod(path string, mode uint32) (err error) { + if mode == 0 { + return syscall.EINVAL + } + p, e := UTF16PtrFromString(path) + if e != nil { + return e + } + attrs, e := GetFileAttributes(p) + if e != nil { + return e + } + if mode&S_IWRITE != 0 { + attrs &^= FILE_ATTRIBUTE_READONLY + } else { + attrs |= FILE_ATTRIBUTE_READONLY + } + return SetFileAttributes(p, attrs) +} + +func LoadGetSystemTimePreciseAsFileTime() error { + return procGetSystemTimePreciseAsFileTime.Find() +} + +func LoadCancelIoEx() error { + return procCancelIoEx.Find() +} + +func LoadSetFileCompletionNotificationModes() error { + return procSetFileCompletionNotificationModes.Find() +} + +// net api calls + +const socket_error = uintptr(^uint32(0)) + +//sys WSAStartup(verreq uint32, data *WSAData) (sockerr error) = ws2_32.WSAStartup +//sys WSACleanup() (err error) [failretval==socket_error] = ws2_32.WSACleanup +//sys WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) [failretval==socket_error] = ws2_32.WSAIoctl +//sys socket(af int32, typ int32, protocol int32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.socket +//sys Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) [failretval==socket_error] = ws2_32.setsockopt +//sys Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockopt +//sys bind(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.bind +//sys connect(s Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socket_error] = ws2_32.connect +//sys getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getsockname +//sys getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) [failretval==socket_error] = ws2_32.getpeername +//sys listen(s Handle, backlog int32) (err error) [failretval==socket_error] = ws2_32.listen +//sys shutdown(s Handle, how int32) (err error) [failretval==socket_error] = ws2_32.shutdown +//sys Closesocket(s Handle) (err error) [failretval==socket_error] = ws2_32.closesocket +//sys AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) = mswsock.AcceptEx +//sys GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) = mswsock.GetAcceptExSockaddrs +//sys WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecv +//sys WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASend +//sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom +//sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo +//sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname +//sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname +//sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs +//sys GetProtoByName(name string) (p *Protoent, err error) [failretval==nil] = ws2_32.getprotobyname +//sys DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) = dnsapi.DnsQuery_W +//sys DnsRecordListFree(rl *DNSRecord, freetype uint32) = dnsapi.DnsRecordListFree +//sys DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) = dnsapi.DnsNameCompare_W +//sys GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) = ws2_32.GetAddrInfoW +//sys FreeAddrInfoW(addrinfo *AddrinfoW) = ws2_32.FreeAddrInfoW +//sys GetIfEntry(pIfRow *MibIfRow) (errcode error) = iphlpapi.GetIfEntry +//sys GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) = iphlpapi.GetAdaptersInfo +//sys SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) = kernel32.SetFileCompletionNotificationModes +//sys WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) [failretval==-1] = ws2_32.WSAEnumProtocolsW +//sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses +//sys GetACP() (acp uint32) = kernel32.GetACP +//sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Sockaddr interface { + sockaddr() (ptr unsafe.Pointer, len int32, err error) // lowercase; only we can define Sockaddrs +} + +type SockaddrInet4 struct { + Port int + Addr [4]byte + raw RawSockaddrInet4 +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, int32, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +type SockaddrInet6 struct { + Port int + ZoneId uint32 + Addr [16]byte + raw RawSockaddrInet6 +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, int32, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, syscall.EINVAL + } + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Addr[i] = sa.Addr[i] + } + return unsafe.Pointer(&sa.raw), int32(unsafe.Sizeof(sa.raw)), nil +} + +type SockaddrUnix struct { + Name string +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, int32, error) { + // TODO(brainman): implement SockaddrUnix.sockaddr() + return nil, 0, syscall.EWINDOWS +} + +func (rsa *RawSockaddrAny) Sockaddr() (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_UNIX: + return nil, syscall.EWINDOWS + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + for i := 0; i < len(sa.Addr); i++ { + sa.Addr[i] = pp.Addr[i] + } + return sa, nil + } + return nil, syscall.EAFNOSUPPORT +} + +func Socket(domain, typ, proto int) (fd Handle, err error) { + if domain == AF_INET6 && SocketDisableIPv6 { + return InvalidHandle, syscall.EAFNOSUPPORT + } + return socket(int32(domain), int32(typ), int32(proto)) +} + +func SetsockoptInt(fd Handle, level, opt int, value int) (err error) { + v := int32(value) + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&v)), int32(unsafe.Sizeof(v))) +} + +func Bind(fd Handle, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return bind(fd, ptr, n) +} + +func Connect(fd Handle, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connect(fd, ptr, n) +} + +func Getsockname(fd Handle) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + if err = getsockname(fd, &rsa, &l); err != nil { + return + } + return rsa.Sockaddr() +} + +func Getpeername(fd Handle) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + l := int32(unsafe.Sizeof(rsa)) + if err = getpeername(fd, &rsa, &l); err != nil { + return + } + return rsa.Sockaddr() +} + +func Listen(s Handle, n int) (err error) { + return listen(s, int32(n)) +} + +func Shutdown(fd Handle, how int) (err error) { + return shutdown(fd, int32(how)) +} + +func WSASendto(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to Sockaddr, overlapped *Overlapped, croutine *byte) (err error) { + rsa, l, err := to.sockaddr() + if err != nil { + return err + } + return WSASendTo(s, bufs, bufcnt, sent, flags, (*RawSockaddrAny)(unsafe.Pointer(rsa)), l, overlapped, croutine) +} + +func LoadGetAddrInfo() error { + return procGetAddrInfoW.Find() +} + +var connectExFunc struct { + once sync.Once + addr uintptr + err error +} + +func LoadConnectEx() error { + connectExFunc.once.Do(func() { + var s Handle + s, connectExFunc.err = Socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) + if connectExFunc.err != nil { + return + } + defer CloseHandle(s) + var n uint32 + connectExFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_CONNECTEX)), + uint32(unsafe.Sizeof(WSAID_CONNECTEX)), + (*byte)(unsafe.Pointer(&connectExFunc.addr)), + uint32(unsafe.Sizeof(connectExFunc.addr)), + &n, nil, 0) + }) + return connectExFunc.err +} + +func connectEx(s Handle, name unsafe.Pointer, namelen int32, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(connectExFunc.addr, 7, uintptr(s), uintptr(name), uintptr(namelen), uintptr(unsafe.Pointer(sendBuf)), uintptr(sendDataLen), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = error(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ConnectEx(fd Handle, sa Sockaddr, sendBuf *byte, sendDataLen uint32, bytesSent *uint32, overlapped *Overlapped) error { + err := LoadConnectEx() + if err != nil { + return errorspkg.New("failed to find ConnectEx: " + err.Error()) + } + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) +} + +var sendRecvMsgFunc struct { + once sync.Once + sendAddr uintptr + recvAddr uintptr + err error +} + +func loadWSASendRecvMsg() error { + sendRecvMsgFunc.once.Do(func() { + var s Handle + s, sendRecvMsgFunc.err = Socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP) + if sendRecvMsgFunc.err != nil { + return + } + defer CloseHandle(s) + var n uint32 + sendRecvMsgFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_WSARECVMSG)), + uint32(unsafe.Sizeof(WSAID_WSARECVMSG)), + (*byte)(unsafe.Pointer(&sendRecvMsgFunc.recvAddr)), + uint32(unsafe.Sizeof(sendRecvMsgFunc.recvAddr)), + &n, nil, 0) + if sendRecvMsgFunc.err != nil { + return + } + sendRecvMsgFunc.err = WSAIoctl(s, + SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&WSAID_WSASENDMSG)), + uint32(unsafe.Sizeof(WSAID_WSASENDMSG)), + (*byte)(unsafe.Pointer(&sendRecvMsgFunc.sendAddr)), + uint32(unsafe.Sizeof(sendRecvMsgFunc.sendAddr)), + &n, nil, 0) + }) + return sendRecvMsgFunc.err +} + +func WSASendMsg(fd Handle, msg *WSAMsg, flags uint32, bytesSent *uint32, overlapped *Overlapped, croutine *byte) error { + err := loadWSASendRecvMsg() + if err != nil { + return err + } + r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.sendAddr, 6, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(flags), uintptr(unsafe.Pointer(bytesSent)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return err +} + +func WSARecvMsg(fd Handle, msg *WSAMsg, bytesReceived *uint32, overlapped *Overlapped, croutine *byte) error { + err := loadWSASendRecvMsg() + if err != nil { + return err + } + r1, _, e1 := syscall.Syscall6(sendRecvMsgFunc.recvAddr, 5, uintptr(fd), uintptr(unsafe.Pointer(msg)), uintptr(unsafe.Pointer(bytesReceived)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return err +} + +// Invented structures to support what package os expects. +type Rusage struct { + CreationTime Filetime + ExitTime Filetime + KernelTime Filetime + UserTime Filetime +} + +type WaitStatus struct { + ExitCode uint32 +} + +func (w WaitStatus) Exited() bool { return true } + +func (w WaitStatus) ExitStatus() int { return int(w.ExitCode) } + +func (w WaitStatus) Signal() Signal { return -1 } + +func (w WaitStatus) CoreDump() bool { return false } + +func (w WaitStatus) Stopped() bool { return false } + +func (w WaitStatus) Continued() bool { return false } + +func (w WaitStatus) StopSignal() Signal { return -1 } + +func (w WaitStatus) Signaled() bool { return false } + +func (w WaitStatus) TrapCause() int { return -1 } + +// Timespec is an invented structure on Windows, but here for +// consistency with the corresponding package for other operating systems. +type Timespec struct { + Sec int64 + Nsec int64 +} + +func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } + +func NsecToTimespec(nsec int64) (ts Timespec) { + ts.Sec = nsec / 1e9 + ts.Nsec = nsec % 1e9 + return +} + +// TODO(brainman): fix all needed for net + +func Accept(fd Handle) (nfd Handle, sa Sockaddr, err error) { return 0, nil, syscall.EWINDOWS } +func Recvfrom(fd Handle, p []byte, flags int) (n int, from Sockaddr, err error) { + return 0, nil, syscall.EWINDOWS +} +func Sendto(fd Handle, p []byte, flags int, to Sockaddr) (err error) { return syscall.EWINDOWS } +func SetsockoptTimeval(fd Handle, level, opt int, tv *Timeval) (err error) { return syscall.EWINDOWS } + +// The Linger struct is wrong but we only noticed after Go 1. +// sysLinger is the real system call structure. + +// BUG(brainman): The definition of Linger is not appropriate for direct use +// with Setsockopt and Getsockopt. +// Use SetsockoptLinger instead. + +type Linger struct { + Onoff int32 + Linger int32 +} + +type sysLinger struct { + Onoff uint16 + Linger uint16 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +func GetsockoptInt(fd Handle, level, opt int) (int, error) { return -1, syscall.EWINDOWS } + +func SetsockoptLinger(fd Handle, level, opt int, l *Linger) (err error) { + sys := sysLinger{Onoff: uint16(l.Onoff), Linger: uint16(l.Linger)} + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&sys)), int32(unsafe.Sizeof(sys))) +} + +func SetsockoptInet4Addr(fd Handle, level, opt int, value [4]byte) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(&value[0])), 4) +} +func SetsockoptIPMreq(fd Handle, level, opt int, mreq *IPMreq) (err error) { + return Setsockopt(fd, int32(level), int32(opt), (*byte)(unsafe.Pointer(mreq)), int32(unsafe.Sizeof(*mreq))) +} +func SetsockoptIPv6Mreq(fd Handle, level, opt int, mreq *IPv6Mreq) (err error) { + return syscall.EWINDOWS +} + +func Getpid() (pid int) { return int(getCurrentProcessId()) } + +func FindFirstFile(name *uint16, data *Win32finddata) (handle Handle, err error) { + // NOTE(rsc): The Win32finddata struct is wrong for the system call: + // the two paths are each one uint16 short. Use the correct struct, + // a win32finddata1, and then copy the results out. + // There is no loss of expressivity here, because the final + // uint16, if it is used, is supposed to be a NUL, and Go doesn't need that. + // For Go 1.1, we might avoid the allocation of win32finddata1 here + // by adding a final Bug [2]uint16 field to the struct and then + // adjusting the fields in the result directly. + var data1 win32finddata1 + handle, err = findFirstFile1(name, &data1) + if err == nil { + copyFindData(data, &data1) + } + return +} + +func FindNextFile(handle Handle, data *Win32finddata) (err error) { + var data1 win32finddata1 + err = findNextFile1(handle, &data1) + if err == nil { + copyFindData(data, &data1) + } + return +} + +func getProcessEntry(pid int) (*ProcessEntry32, error) { + snapshot, err := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0) + if err != nil { + return nil, err + } + defer CloseHandle(snapshot) + var procEntry ProcessEntry32 + procEntry.Size = uint32(unsafe.Sizeof(procEntry)) + if err = Process32First(snapshot, &procEntry); err != nil { + return nil, err + } + for { + if procEntry.ProcessID == uint32(pid) { + return &procEntry, nil + } + err = Process32Next(snapshot, &procEntry) + if err != nil { + return nil, err + } + } +} + +func Getppid() (ppid int) { + pe, err := getProcessEntry(Getpid()) + if err != nil { + return -1 + } + return int(pe.ParentProcessID) +} + +// TODO(brainman): fix all needed for os +func Fchdir(fd Handle) (err error) { return syscall.EWINDOWS } +func Link(oldpath, newpath string) (err error) { return syscall.EWINDOWS } +func Symlink(path, link string) (err error) { return syscall.EWINDOWS } + +func Fchmod(fd Handle, mode uint32) (err error) { return syscall.EWINDOWS } +func Chown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } +func Lchown(path string, uid int, gid int) (err error) { return syscall.EWINDOWS } +func Fchown(fd Handle, uid int, gid int) (err error) { return syscall.EWINDOWS } + +func Getuid() (uid int) { return -1 } +func Geteuid() (euid int) { return -1 } +func Getgid() (gid int) { return -1 } +func Getegid() (egid int) { return -1 } +func Getgroups() (gids []int, err error) { return nil, syscall.EWINDOWS } + +type Signal int + +func (s Signal) Signal() {} + +func (s Signal) String() string { + if 0 <= s && int(s) < len(signals) { + str := signals[s] + if str != "" { + return str + } + } + return "signal " + itoa(int(s)) +} + +func LoadCreateSymbolicLink() error { + return procCreateSymbolicLinkW.Find() +} + +// Readlink returns the destination of the named symbolic link. +func Readlink(path string, buf []byte) (n int, err error) { + fd, err := CreateFile(StringToUTF16Ptr(path), GENERIC_READ, 0, nil, OPEN_EXISTING, + FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, 0) + if err != nil { + return -1, err + } + defer CloseHandle(fd) + + rdbbuf := make([]byte, MAXIMUM_REPARSE_DATA_BUFFER_SIZE) + var bytesReturned uint32 + err = DeviceIoControl(fd, FSCTL_GET_REPARSE_POINT, nil, 0, &rdbbuf[0], uint32(len(rdbbuf)), &bytesReturned, nil) + if err != nil { + return -1, err + } + + rdb := (*reparseDataBuffer)(unsafe.Pointer(&rdbbuf[0])) + var s string + switch rdb.ReparseTag { + case IO_REPARSE_TAG_SYMLINK: + data := (*symbolicLinkReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) + p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) + s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) + case IO_REPARSE_TAG_MOUNT_POINT: + data := (*mountPointReparseBuffer)(unsafe.Pointer(&rdb.reparseBuffer)) + p := (*[0xffff]uint16)(unsafe.Pointer(&data.PathBuffer[0])) + s = UTF16ToString(p[data.PrintNameOffset/2 : (data.PrintNameLength-data.PrintNameOffset)/2]) + default: + // the path is not a symlink or junction but another type of reparse + // point + return -1, syscall.ENOENT + } + n = copy(buf, []byte(s)) + + return n, nil +} diff --git a/vendor/golang.org/x/sys/windows/syscall_windows_test.go b/vendor/golang.org/x/sys/windows/syscall_windows_test.go new file mode 100644 index 0000000..9c7133c --- /dev/null +++ b/vendor/golang.org/x/sys/windows/syscall_windows_test.go @@ -0,0 +1,107 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows_test + +import ( + "io/ioutil" + "os" + "path/filepath" + "syscall" + "testing" + "unsafe" + + "golang.org/x/sys/windows" +) + +func TestWin32finddata(t *testing.T) { + dir, err := ioutil.TempDir("", "go-build") + if err != nil { + t.Fatalf("failed to create temp directory: %v", err) + } + defer os.RemoveAll(dir) + + path := filepath.Join(dir, "long_name.and_extension") + f, err := os.Create(path) + if err != nil { + t.Fatalf("failed to create %v: %v", path, err) + } + f.Close() + + type X struct { + fd windows.Win32finddata + got byte + pad [10]byte // to protect ourselves + + } + var want byte = 2 // it is unlikely to have this character in the filename + x := X{got: want} + + pathp, _ := windows.UTF16PtrFromString(path) + h, err := windows.FindFirstFile(pathp, &(x.fd)) + if err != nil { + t.Fatalf("FindFirstFile failed: %v", err) + } + err = windows.FindClose(h) + if err != nil { + t.Fatalf("FindClose failed: %v", err) + } + + if x.got != want { + t.Fatalf("memory corruption: want=%d got=%d", want, x.got) + } +} + +func TestFormatMessage(t *testing.T) { + dll := windows.MustLoadDLL("pdh.dll") + + pdhOpenQuery := func(datasrc *uint16, userdata uint32, query *windows.Handle) (errno uintptr) { + r0, _, _ := syscall.Syscall(dll.MustFindProc("PdhOpenQueryW").Addr(), 3, uintptr(unsafe.Pointer(datasrc)), uintptr(userdata), uintptr(unsafe.Pointer(query))) + return r0 + } + + pdhCloseQuery := func(query windows.Handle) (errno uintptr) { + r0, _, _ := syscall.Syscall(dll.MustFindProc("PdhCloseQuery").Addr(), 1, uintptr(query), 0, 0) + return r0 + } + + var q windows.Handle + name, err := windows.UTF16PtrFromString("no_such_source") + if err != nil { + t.Fatal(err) + } + errno := pdhOpenQuery(name, 0, &q) + if errno == 0 { + pdhCloseQuery(q) + t.Fatal("PdhOpenQuery succeeded, but expected to fail.") + } + + const flags uint32 = syscall.FORMAT_MESSAGE_FROM_HMODULE | syscall.FORMAT_MESSAGE_ARGUMENT_ARRAY | syscall.FORMAT_MESSAGE_IGNORE_INSERTS + buf := make([]uint16, 300) + _, err = windows.FormatMessage(flags, uintptr(dll.Handle), uint32(errno), 0, buf, nil) + if err != nil { + t.Fatalf("FormatMessage for handle=%x and errno=%x failed: %v", dll.Handle, errno, err) + } +} + +func abort(funcname string, err error) { + panic(funcname + " failed: " + err.Error()) +} + +func ExampleLoadLibrary() { + h, err := windows.LoadLibrary("kernel32.dll") + if err != nil { + abort("LoadLibrary", err) + } + defer windows.FreeLibrary(h) + proc, err := windows.GetProcAddress(h, "GetVersion") + if err != nil { + abort("GetProcAddress", err) + } + r, _, _ := syscall.Syscall(uintptr(proc), 0, 0, 0, 0) + major := byte(r) + minor := uint8(r >> 8) + build := uint16(r >> 16) + print("windows version ", major, ".", minor, " (Build ", build, ")\n") +} diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go new file mode 100644 index 0000000..52c2037 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -0,0 +1,1333 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +import "syscall" + +const ( + // Windows errors. + ERROR_FILE_NOT_FOUND syscall.Errno = 2 + ERROR_PATH_NOT_FOUND syscall.Errno = 3 + ERROR_ACCESS_DENIED syscall.Errno = 5 + ERROR_NO_MORE_FILES syscall.Errno = 18 + ERROR_HANDLE_EOF syscall.Errno = 38 + ERROR_NETNAME_DELETED syscall.Errno = 64 + ERROR_FILE_EXISTS syscall.Errno = 80 + ERROR_BROKEN_PIPE syscall.Errno = 109 + ERROR_BUFFER_OVERFLOW syscall.Errno = 111 + ERROR_INSUFFICIENT_BUFFER syscall.Errno = 122 + ERROR_MOD_NOT_FOUND syscall.Errno = 126 + ERROR_PROC_NOT_FOUND syscall.Errno = 127 + ERROR_ALREADY_EXISTS syscall.Errno = 183 + ERROR_ENVVAR_NOT_FOUND syscall.Errno = 203 + ERROR_MORE_DATA syscall.Errno = 234 + ERROR_OPERATION_ABORTED syscall.Errno = 995 + ERROR_IO_PENDING syscall.Errno = 997 + ERROR_SERVICE_SPECIFIC_ERROR syscall.Errno = 1066 + ERROR_NOT_FOUND syscall.Errno = 1168 + ERROR_PRIVILEGE_NOT_HELD syscall.Errno = 1314 + WSAEACCES syscall.Errno = 10013 + WSAEMSGSIZE syscall.Errno = 10040 + WSAECONNRESET syscall.Errno = 10054 +) + +const ( + // Invented values to support what package os expects. + O_RDONLY = 0x00000 + O_WRONLY = 0x00001 + O_RDWR = 0x00002 + O_CREAT = 0x00040 + O_EXCL = 0x00080 + O_NOCTTY = 0x00100 + O_TRUNC = 0x00200 + O_NONBLOCK = 0x00800 + O_APPEND = 0x00400 + O_SYNC = 0x01000 + O_ASYNC = 0x02000 + O_CLOEXEC = 0x80000 +) + +const ( + // More invented values for signals + SIGHUP = Signal(0x1) + SIGINT = Signal(0x2) + SIGQUIT = Signal(0x3) + SIGILL = Signal(0x4) + SIGTRAP = Signal(0x5) + SIGABRT = Signal(0x6) + SIGBUS = Signal(0x7) + SIGFPE = Signal(0x8) + SIGKILL = Signal(0x9) + SIGSEGV = Signal(0xb) + SIGPIPE = Signal(0xd) + SIGALRM = Signal(0xe) + SIGTERM = Signal(0xf) +) + +var signals = [...]string{ + 1: "hangup", + 2: "interrupt", + 3: "quit", + 4: "illegal instruction", + 5: "trace/breakpoint trap", + 6: "aborted", + 7: "bus error", + 8: "floating point exception", + 9: "killed", + 10: "user defined signal 1", + 11: "segmentation fault", + 12: "user defined signal 2", + 13: "broken pipe", + 14: "alarm clock", + 15: "terminated", +} + +const ( + GENERIC_READ = 0x80000000 + GENERIC_WRITE = 0x40000000 + GENERIC_EXECUTE = 0x20000000 + GENERIC_ALL = 0x10000000 + + FILE_LIST_DIRECTORY = 0x00000001 + FILE_APPEND_DATA = 0x00000004 + FILE_WRITE_ATTRIBUTES = 0x00000100 + + FILE_SHARE_READ = 0x00000001 + FILE_SHARE_WRITE = 0x00000002 + FILE_SHARE_DELETE = 0x00000004 + FILE_ATTRIBUTE_READONLY = 0x00000001 + FILE_ATTRIBUTE_HIDDEN = 0x00000002 + FILE_ATTRIBUTE_SYSTEM = 0x00000004 + FILE_ATTRIBUTE_DIRECTORY = 0x00000010 + FILE_ATTRIBUTE_ARCHIVE = 0x00000020 + FILE_ATTRIBUTE_NORMAL = 0x00000080 + FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 + + INVALID_FILE_ATTRIBUTES = 0xffffffff + + CREATE_NEW = 1 + CREATE_ALWAYS = 2 + OPEN_EXISTING = 3 + OPEN_ALWAYS = 4 + TRUNCATE_EXISTING = 5 + + FILE_FLAG_OPEN_REPARSE_POINT = 0x00200000 + FILE_FLAG_BACKUP_SEMANTICS = 0x02000000 + FILE_FLAG_OVERLAPPED = 0x40000000 + + HANDLE_FLAG_INHERIT = 0x00000001 + STARTF_USESTDHANDLES = 0x00000100 + STARTF_USESHOWWINDOW = 0x00000001 + DUPLICATE_CLOSE_SOURCE = 0x00000001 + DUPLICATE_SAME_ACCESS = 0x00000002 + + STD_INPUT_HANDLE = -10 & (1<<32 - 1) + STD_OUTPUT_HANDLE = -11 & (1<<32 - 1) + STD_ERROR_HANDLE = -12 & (1<<32 - 1) + + FILE_BEGIN = 0 + FILE_CURRENT = 1 + FILE_END = 2 + + LANG_ENGLISH = 0x09 + SUBLANG_ENGLISH_US = 0x01 + + FORMAT_MESSAGE_ALLOCATE_BUFFER = 256 + FORMAT_MESSAGE_IGNORE_INSERTS = 512 + FORMAT_MESSAGE_FROM_STRING = 1024 + FORMAT_MESSAGE_FROM_HMODULE = 2048 + FORMAT_MESSAGE_FROM_SYSTEM = 4096 + FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192 + FORMAT_MESSAGE_MAX_WIDTH_MASK = 255 + + MAX_PATH = 260 + MAX_LONG_PATH = 32768 + + MAX_COMPUTERNAME_LENGTH = 15 + + TIME_ZONE_ID_UNKNOWN = 0 + TIME_ZONE_ID_STANDARD = 1 + + TIME_ZONE_ID_DAYLIGHT = 2 + IGNORE = 0 + INFINITE = 0xffffffff + + WAIT_TIMEOUT = 258 + WAIT_ABANDONED = 0x00000080 + WAIT_OBJECT_0 = 0x00000000 + WAIT_FAILED = 0xFFFFFFFF + + PROCESS_TERMINATE = 1 + PROCESS_QUERY_INFORMATION = 0x00000400 + SYNCHRONIZE = 0x00100000 + + FILE_MAP_COPY = 0x01 + FILE_MAP_WRITE = 0x02 + FILE_MAP_READ = 0x04 + FILE_MAP_EXECUTE = 0x20 + + CTRL_C_EVENT = 0 + CTRL_BREAK_EVENT = 1 + + // Windows reserves errors >= 1<<29 for application use. + APPLICATION_ERROR = 1 << 29 +) + +const ( + // Process creation flags. + CREATE_BREAKAWAY_FROM_JOB = 0x01000000 + CREATE_DEFAULT_ERROR_MODE = 0x04000000 + CREATE_NEW_CONSOLE = 0x00000010 + CREATE_NEW_PROCESS_GROUP = 0x00000200 + CREATE_NO_WINDOW = 0x08000000 + CREATE_PROTECTED_PROCESS = 0x00040000 + CREATE_PRESERVE_CODE_AUTHZ_LEVEL = 0x02000000 + CREATE_SEPARATE_WOW_VDM = 0x00000800 + CREATE_SHARED_WOW_VDM = 0x00001000 + CREATE_SUSPENDED = 0x00000004 + CREATE_UNICODE_ENVIRONMENT = 0x00000400 + DEBUG_ONLY_THIS_PROCESS = 0x00000002 + DEBUG_PROCESS = 0x00000001 + DETACHED_PROCESS = 0x00000008 + EXTENDED_STARTUPINFO_PRESENT = 0x00080000 + INHERIT_PARENT_AFFINITY = 0x00010000 +) + +const ( + // flags for CreateToolhelp32Snapshot + TH32CS_SNAPHEAPLIST = 0x01 + TH32CS_SNAPPROCESS = 0x02 + TH32CS_SNAPTHREAD = 0x04 + TH32CS_SNAPMODULE = 0x08 + TH32CS_SNAPMODULE32 = 0x10 + TH32CS_SNAPALL = TH32CS_SNAPHEAPLIST | TH32CS_SNAPMODULE | TH32CS_SNAPPROCESS | TH32CS_SNAPTHREAD + TH32CS_INHERIT = 0x80000000 +) + +const ( + // filters for ReadDirectoryChangesW + FILE_NOTIFY_CHANGE_FILE_NAME = 0x001 + FILE_NOTIFY_CHANGE_DIR_NAME = 0x002 + FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x004 + FILE_NOTIFY_CHANGE_SIZE = 0x008 + FILE_NOTIFY_CHANGE_LAST_WRITE = 0x010 + FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x020 + FILE_NOTIFY_CHANGE_CREATION = 0x040 + FILE_NOTIFY_CHANGE_SECURITY = 0x100 +) + +const ( + // do not reorder + FILE_ACTION_ADDED = iota + 1 + FILE_ACTION_REMOVED + FILE_ACTION_MODIFIED + FILE_ACTION_RENAMED_OLD_NAME + FILE_ACTION_RENAMED_NEW_NAME +) + +const ( + // wincrypt.h + PROV_RSA_FULL = 1 + PROV_RSA_SIG = 2 + PROV_DSS = 3 + PROV_FORTEZZA = 4 + PROV_MS_EXCHANGE = 5 + PROV_SSL = 6 + PROV_RSA_SCHANNEL = 12 + PROV_DSS_DH = 13 + PROV_EC_ECDSA_SIG = 14 + PROV_EC_ECNRA_SIG = 15 + PROV_EC_ECDSA_FULL = 16 + PROV_EC_ECNRA_FULL = 17 + PROV_DH_SCHANNEL = 18 + PROV_SPYRUS_LYNKS = 20 + PROV_RNG = 21 + PROV_INTEL_SEC = 22 + PROV_REPLACE_OWF = 23 + PROV_RSA_AES = 24 + CRYPT_VERIFYCONTEXT = 0xF0000000 + CRYPT_NEWKEYSET = 0x00000008 + CRYPT_DELETEKEYSET = 0x00000010 + CRYPT_MACHINE_KEYSET = 0x00000020 + CRYPT_SILENT = 0x00000040 + CRYPT_DEFAULT_CONTAINER_OPTIONAL = 0x00000080 + + USAGE_MATCH_TYPE_AND = 0 + USAGE_MATCH_TYPE_OR = 1 + + X509_ASN_ENCODING = 0x00000001 + PKCS_7_ASN_ENCODING = 0x00010000 + + CERT_STORE_PROV_MEMORY = 2 + + CERT_STORE_ADD_ALWAYS = 4 + + CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG = 0x00000004 + + CERT_TRUST_NO_ERROR = 0x00000000 + CERT_TRUST_IS_NOT_TIME_VALID = 0x00000001 + CERT_TRUST_IS_REVOKED = 0x00000004 + CERT_TRUST_IS_NOT_SIGNATURE_VALID = 0x00000008 + CERT_TRUST_IS_NOT_VALID_FOR_USAGE = 0x00000010 + CERT_TRUST_IS_UNTRUSTED_ROOT = 0x00000020 + CERT_TRUST_REVOCATION_STATUS_UNKNOWN = 0x00000040 + CERT_TRUST_IS_CYCLIC = 0x00000080 + CERT_TRUST_INVALID_EXTENSION = 0x00000100 + CERT_TRUST_INVALID_POLICY_CONSTRAINTS = 0x00000200 + CERT_TRUST_INVALID_BASIC_CONSTRAINTS = 0x00000400 + CERT_TRUST_INVALID_NAME_CONSTRAINTS = 0x00000800 + CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT = 0x00001000 + CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT = 0x00002000 + CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT = 0x00004000 + CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT = 0x00008000 + CERT_TRUST_IS_OFFLINE_REVOCATION = 0x01000000 + CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY = 0x02000000 + CERT_TRUST_IS_EXPLICIT_DISTRUST = 0x04000000 + CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT = 0x08000000 + + CERT_CHAIN_POLICY_BASE = 1 + CERT_CHAIN_POLICY_AUTHENTICODE = 2 + CERT_CHAIN_POLICY_AUTHENTICODE_TS = 3 + CERT_CHAIN_POLICY_SSL = 4 + CERT_CHAIN_POLICY_BASIC_CONSTRAINTS = 5 + CERT_CHAIN_POLICY_NT_AUTH = 6 + CERT_CHAIN_POLICY_MICROSOFT_ROOT = 7 + CERT_CHAIN_POLICY_EV = 8 + + CERT_E_EXPIRED = 0x800B0101 + CERT_E_ROLE = 0x800B0103 + CERT_E_PURPOSE = 0x800B0106 + CERT_E_UNTRUSTEDROOT = 0x800B0109 + CERT_E_CN_NO_MATCH = 0x800B010F + + AUTHTYPE_CLIENT = 1 + AUTHTYPE_SERVER = 2 +) + +var ( + OID_PKIX_KP_SERVER_AUTH = []byte("1.3.6.1.5.5.7.3.1\x00") + OID_SERVER_GATED_CRYPTO = []byte("1.3.6.1.4.1.311.10.3.3\x00") + OID_SGC_NETSCAPE = []byte("2.16.840.1.113730.4.1\x00") +) + +// Invented values to support what package os expects. +type Timeval struct { + Sec int32 + Usec int32 +} + +func (tv *Timeval) Nanoseconds() int64 { + return (int64(tv.Sec)*1e6 + int64(tv.Usec)) * 1e3 +} + +func NsecToTimeval(nsec int64) (tv Timeval) { + tv.Sec = int32(nsec / 1e9) + tv.Usec = int32(nsec % 1e9 / 1e3) + return +} + +type SecurityAttributes struct { + Length uint32 + SecurityDescriptor uintptr + InheritHandle uint32 +} + +type Overlapped struct { + Internal uintptr + InternalHigh uintptr + Offset uint32 + OffsetHigh uint32 + HEvent Handle +} + +type FileNotifyInformation struct { + NextEntryOffset uint32 + Action uint32 + FileNameLength uint32 + FileName uint16 +} + +type Filetime struct { + LowDateTime uint32 + HighDateTime uint32 +} + +// Nanoseconds returns Filetime ft in nanoseconds +// since Epoch (00:00:00 UTC, January 1, 1970). +func (ft *Filetime) Nanoseconds() int64 { + // 100-nanosecond intervals since January 1, 1601 + nsec := int64(ft.HighDateTime)<<32 + int64(ft.LowDateTime) + // change starting time to the Epoch (00:00:00 UTC, January 1, 1970) + nsec -= 116444736000000000 + // convert into nanoseconds + nsec *= 100 + return nsec +} + +func NsecToFiletime(nsec int64) (ft Filetime) { + // convert into 100-nanosecond + nsec /= 100 + // change starting time to January 1, 1601 + nsec += 116444736000000000 + // split into high / low + ft.LowDateTime = uint32(nsec & 0xffffffff) + ft.HighDateTime = uint32(nsec >> 32 & 0xffffffff) + return ft +} + +type Win32finddata struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 + Reserved0 uint32 + Reserved1 uint32 + FileName [MAX_PATH - 1]uint16 + AlternateFileName [13]uint16 +} + +// This is the actual system call structure. +// Win32finddata is what we committed to in Go 1. +type win32finddata1 struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 + Reserved0 uint32 + Reserved1 uint32 + FileName [MAX_PATH]uint16 + AlternateFileName [14]uint16 +} + +func copyFindData(dst *Win32finddata, src *win32finddata1) { + dst.FileAttributes = src.FileAttributes + dst.CreationTime = src.CreationTime + dst.LastAccessTime = src.LastAccessTime + dst.LastWriteTime = src.LastWriteTime + dst.FileSizeHigh = src.FileSizeHigh + dst.FileSizeLow = src.FileSizeLow + dst.Reserved0 = src.Reserved0 + dst.Reserved1 = src.Reserved1 + + // The src is 1 element bigger than dst, but it must be NUL. + copy(dst.FileName[:], src.FileName[:]) + copy(dst.AlternateFileName[:], src.AlternateFileName[:]) +} + +type ByHandleFileInformation struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + VolumeSerialNumber uint32 + FileSizeHigh uint32 + FileSizeLow uint32 + NumberOfLinks uint32 + FileIndexHigh uint32 + FileIndexLow uint32 +} + +const ( + GetFileExInfoStandard = 0 + GetFileExMaxInfoLevel = 1 +) + +type Win32FileAttributeData struct { + FileAttributes uint32 + CreationTime Filetime + LastAccessTime Filetime + LastWriteTime Filetime + FileSizeHigh uint32 + FileSizeLow uint32 +} + +// ShowWindow constants +const ( + // winuser.h + SW_HIDE = 0 + SW_NORMAL = 1 + SW_SHOWNORMAL = 1 + SW_SHOWMINIMIZED = 2 + SW_SHOWMAXIMIZED = 3 + SW_MAXIMIZE = 3 + SW_SHOWNOACTIVATE = 4 + SW_SHOW = 5 + SW_MINIMIZE = 6 + SW_SHOWMINNOACTIVE = 7 + SW_SHOWNA = 8 + SW_RESTORE = 9 + SW_SHOWDEFAULT = 10 + SW_FORCEMINIMIZE = 11 +) + +type StartupInfo struct { + Cb uint32 + _ *uint16 + Desktop *uint16 + Title *uint16 + X uint32 + Y uint32 + XSize uint32 + YSize uint32 + XCountChars uint32 + YCountChars uint32 + FillAttribute uint32 + Flags uint32 + ShowWindow uint16 + _ uint16 + _ *byte + StdInput Handle + StdOutput Handle + StdErr Handle +} + +type ProcessInformation struct { + Process Handle + Thread Handle + ProcessId uint32 + ThreadId uint32 +} + +type ProcessEntry32 struct { + Size uint32 + Usage uint32 + ProcessID uint32 + DefaultHeapID uintptr + ModuleID uint32 + Threads uint32 + ParentProcessID uint32 + PriClassBase int32 + Flags uint32 + ExeFile [MAX_PATH]uint16 +} + +type Systemtime struct { + Year uint16 + Month uint16 + DayOfWeek uint16 + Day uint16 + Hour uint16 + Minute uint16 + Second uint16 + Milliseconds uint16 +} + +type Timezoneinformation struct { + Bias int32 + StandardName [32]uint16 + StandardDate Systemtime + StandardBias int32 + DaylightName [32]uint16 + DaylightDate Systemtime + DaylightBias int32 +} + +// Socket related. + +const ( + AF_UNSPEC = 0 + AF_UNIX = 1 + AF_INET = 2 + AF_INET6 = 23 + AF_NETBIOS = 17 + + SOCK_STREAM = 1 + SOCK_DGRAM = 2 + SOCK_RAW = 3 + SOCK_SEQPACKET = 5 + + IPPROTO_IP = 0 + IPPROTO_IPV6 = 0x29 + IPPROTO_TCP = 6 + IPPROTO_UDP = 17 + + SOL_SOCKET = 0xffff + SO_REUSEADDR = 4 + SO_KEEPALIVE = 8 + SO_DONTROUTE = 16 + SO_BROADCAST = 32 + SO_LINGER = 128 + SO_RCVBUF = 0x1002 + SO_SNDBUF = 0x1001 + SO_UPDATE_ACCEPT_CONTEXT = 0x700b + SO_UPDATE_CONNECT_CONTEXT = 0x7010 + + IOC_OUT = 0x40000000 + IOC_IN = 0x80000000 + IOC_VENDOR = 0x18000000 + IOC_INOUT = IOC_IN | IOC_OUT + IOC_WS2 = 0x08000000 + SIO_GET_EXTENSION_FUNCTION_POINTER = IOC_INOUT | IOC_WS2 | 6 + SIO_KEEPALIVE_VALS = IOC_IN | IOC_VENDOR | 4 + SIO_UDP_CONNRESET = IOC_IN | IOC_VENDOR | 12 + + // cf. http://support.microsoft.com/default.aspx?scid=kb;en-us;257460 + + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_LOOP = 0xb + IP_ADD_MEMBERSHIP = 0xc + IP_DROP_MEMBERSHIP = 0xd + + IPV6_V6ONLY = 0x1b + IPV6_UNICAST_HOPS = 0x4 + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_LOOP = 0xb + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_DONTROUTE = 0x4 + MSG_WAITALL = 0x8 + + MSG_TRUNC = 0x0100 + MSG_CTRUNC = 0x0200 + MSG_BCAST = 0x0400 + MSG_MCAST = 0x0800 + + SOMAXCONN = 0x7fffffff + + TCP_NODELAY = 1 + + SHUT_RD = 0 + SHUT_WR = 1 + SHUT_RDWR = 2 + + WSADESCRIPTION_LEN = 256 + WSASYS_STATUS_LEN = 128 +) + +type WSABuf struct { + Len uint32 + Buf *byte +} + +type WSAMsg struct { + Name *syscall.RawSockaddrAny + Namelen int32 + Buffers *WSABuf + BufferCount uint32 + Control WSABuf + Flags uint32 +} + +// Invented values to support what package os expects. +const ( + S_IFMT = 0x1f000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXUSR = 0x40 +) + +const ( + FILE_TYPE_CHAR = 0x0002 + FILE_TYPE_DISK = 0x0001 + FILE_TYPE_PIPE = 0x0003 + FILE_TYPE_REMOTE = 0x8000 + FILE_TYPE_UNKNOWN = 0x0000 +) + +type Hostent struct { + Name *byte + Aliases **byte + AddrType uint16 + Length uint16 + AddrList **byte +} + +type Protoent struct { + Name *byte + Aliases **byte + Proto uint16 +} + +const ( + DNS_TYPE_A = 0x0001 + DNS_TYPE_NS = 0x0002 + DNS_TYPE_MD = 0x0003 + DNS_TYPE_MF = 0x0004 + DNS_TYPE_CNAME = 0x0005 + DNS_TYPE_SOA = 0x0006 + DNS_TYPE_MB = 0x0007 + DNS_TYPE_MG = 0x0008 + DNS_TYPE_MR = 0x0009 + DNS_TYPE_NULL = 0x000a + DNS_TYPE_WKS = 0x000b + DNS_TYPE_PTR = 0x000c + DNS_TYPE_HINFO = 0x000d + DNS_TYPE_MINFO = 0x000e + DNS_TYPE_MX = 0x000f + DNS_TYPE_TEXT = 0x0010 + DNS_TYPE_RP = 0x0011 + DNS_TYPE_AFSDB = 0x0012 + DNS_TYPE_X25 = 0x0013 + DNS_TYPE_ISDN = 0x0014 + DNS_TYPE_RT = 0x0015 + DNS_TYPE_NSAP = 0x0016 + DNS_TYPE_NSAPPTR = 0x0017 + DNS_TYPE_SIG = 0x0018 + DNS_TYPE_KEY = 0x0019 + DNS_TYPE_PX = 0x001a + DNS_TYPE_GPOS = 0x001b + DNS_TYPE_AAAA = 0x001c + DNS_TYPE_LOC = 0x001d + DNS_TYPE_NXT = 0x001e + DNS_TYPE_EID = 0x001f + DNS_TYPE_NIMLOC = 0x0020 + DNS_TYPE_SRV = 0x0021 + DNS_TYPE_ATMA = 0x0022 + DNS_TYPE_NAPTR = 0x0023 + DNS_TYPE_KX = 0x0024 + DNS_TYPE_CERT = 0x0025 + DNS_TYPE_A6 = 0x0026 + DNS_TYPE_DNAME = 0x0027 + DNS_TYPE_SINK = 0x0028 + DNS_TYPE_OPT = 0x0029 + DNS_TYPE_DS = 0x002B + DNS_TYPE_RRSIG = 0x002E + DNS_TYPE_NSEC = 0x002F + DNS_TYPE_DNSKEY = 0x0030 + DNS_TYPE_DHCID = 0x0031 + DNS_TYPE_UINFO = 0x0064 + DNS_TYPE_UID = 0x0065 + DNS_TYPE_GID = 0x0066 + DNS_TYPE_UNSPEC = 0x0067 + DNS_TYPE_ADDRS = 0x00f8 + DNS_TYPE_TKEY = 0x00f9 + DNS_TYPE_TSIG = 0x00fa + DNS_TYPE_IXFR = 0x00fb + DNS_TYPE_AXFR = 0x00fc + DNS_TYPE_MAILB = 0x00fd + DNS_TYPE_MAILA = 0x00fe + DNS_TYPE_ALL = 0x00ff + DNS_TYPE_ANY = 0x00ff + DNS_TYPE_WINS = 0xff01 + DNS_TYPE_WINSR = 0xff02 + DNS_TYPE_NBSTAT = 0xff01 +) + +const ( + DNS_INFO_NO_RECORDS = 0x251D +) + +const ( + // flags inside DNSRecord.Dw + DnsSectionQuestion = 0x0000 + DnsSectionAnswer = 0x0001 + DnsSectionAuthority = 0x0002 + DnsSectionAdditional = 0x0003 +) + +type DNSSRVData struct { + Target *uint16 + Priority uint16 + Weight uint16 + Port uint16 + Pad uint16 +} + +type DNSPTRData struct { + Host *uint16 +} + +type DNSMXData struct { + NameExchange *uint16 + Preference uint16 + Pad uint16 +} + +type DNSTXTData struct { + StringCount uint16 + StringArray [1]*uint16 +} + +type DNSRecord struct { + Next *DNSRecord + Name *uint16 + Type uint16 + Length uint16 + Dw uint32 + Ttl uint32 + Reserved uint32 + Data [40]byte +} + +const ( + TF_DISCONNECT = 1 + TF_REUSE_SOCKET = 2 + TF_WRITE_BEHIND = 4 + TF_USE_DEFAULT_WORKER = 0 + TF_USE_SYSTEM_THREAD = 16 + TF_USE_KERNEL_APC = 32 +) + +type TransmitFileBuffers struct { + Head uintptr + HeadLength uint32 + Tail uintptr + TailLength uint32 +} + +const ( + IFF_UP = 1 + IFF_BROADCAST = 2 + IFF_LOOPBACK = 4 + IFF_POINTTOPOINT = 8 + IFF_MULTICAST = 16 +) + +const SIO_GET_INTERFACE_LIST = 0x4004747F + +// TODO(mattn): SockaddrGen is union of sockaddr/sockaddr_in/sockaddr_in6_old. +// will be fixed to change variable type as suitable. + +type SockaddrGen [24]byte + +type InterfaceInfo struct { + Flags uint32 + Address SockaddrGen + BroadcastAddress SockaddrGen + Netmask SockaddrGen +} + +type IpAddressString struct { + String [16]byte +} + +type IpMaskString IpAddressString + +type IpAddrString struct { + Next *IpAddrString + IpAddress IpAddressString + IpMask IpMaskString + Context uint32 +} + +const MAX_ADAPTER_NAME_LENGTH = 256 +const MAX_ADAPTER_DESCRIPTION_LENGTH = 128 +const MAX_ADAPTER_ADDRESS_LENGTH = 8 + +type IpAdapterInfo struct { + Next *IpAdapterInfo + ComboIndex uint32 + AdapterName [MAX_ADAPTER_NAME_LENGTH + 4]byte + Description [MAX_ADAPTER_DESCRIPTION_LENGTH + 4]byte + AddressLength uint32 + Address [MAX_ADAPTER_ADDRESS_LENGTH]byte + Index uint32 + Type uint32 + DhcpEnabled uint32 + CurrentIpAddress *IpAddrString + IpAddressList IpAddrString + GatewayList IpAddrString + DhcpServer IpAddrString + HaveWins bool + PrimaryWinsServer IpAddrString + SecondaryWinsServer IpAddrString + LeaseObtained int64 + LeaseExpires int64 +} + +const MAXLEN_PHYSADDR = 8 +const MAX_INTERFACE_NAME_LEN = 256 +const MAXLEN_IFDESCR = 256 + +type MibIfRow struct { + Name [MAX_INTERFACE_NAME_LEN]uint16 + Index uint32 + Type uint32 + Mtu uint32 + Speed uint32 + PhysAddrLen uint32 + PhysAddr [MAXLEN_PHYSADDR]byte + AdminStatus uint32 + OperStatus uint32 + LastChange uint32 + InOctets uint32 + InUcastPkts uint32 + InNUcastPkts uint32 + InDiscards uint32 + InErrors uint32 + InUnknownProtos uint32 + OutOctets uint32 + OutUcastPkts uint32 + OutNUcastPkts uint32 + OutDiscards uint32 + OutErrors uint32 + OutQLen uint32 + DescrLen uint32 + Descr [MAXLEN_IFDESCR]byte +} + +type CertContext struct { + EncodingType uint32 + EncodedCert *byte + Length uint32 + CertInfo uintptr + Store Handle +} + +type CertChainContext struct { + Size uint32 + TrustStatus CertTrustStatus + ChainCount uint32 + Chains **CertSimpleChain + LowerQualityChainCount uint32 + LowerQualityChains **CertChainContext + HasRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 +} + +type CertSimpleChain struct { + Size uint32 + TrustStatus CertTrustStatus + NumElements uint32 + Elements **CertChainElement + TrustListInfo uintptr + HasRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 +} + +type CertChainElement struct { + Size uint32 + CertContext *CertContext + TrustStatus CertTrustStatus + RevocationInfo *CertRevocationInfo + IssuanceUsage *CertEnhKeyUsage + ApplicationUsage *CertEnhKeyUsage + ExtendedErrorInfo *uint16 +} + +type CertRevocationInfo struct { + Size uint32 + RevocationResult uint32 + RevocationOid *byte + OidSpecificInfo uintptr + HasFreshnessTime uint32 + FreshnessTime uint32 + CrlInfo uintptr // *CertRevocationCrlInfo +} + +type CertTrustStatus struct { + ErrorStatus uint32 + InfoStatus uint32 +} + +type CertUsageMatch struct { + Type uint32 + Usage CertEnhKeyUsage +} + +type CertEnhKeyUsage struct { + Length uint32 + UsageIdentifiers **byte +} + +type CertChainPara struct { + Size uint32 + RequestedUsage CertUsageMatch + RequstedIssuancePolicy CertUsageMatch + URLRetrievalTimeout uint32 + CheckRevocationFreshnessTime uint32 + RevocationFreshnessTime uint32 + CacheResync *Filetime +} + +type CertChainPolicyPara struct { + Size uint32 + Flags uint32 + ExtraPolicyPara uintptr +} + +type SSLExtraCertChainPolicyPara struct { + Size uint32 + AuthType uint32 + Checks uint32 + ServerName *uint16 +} + +type CertChainPolicyStatus struct { + Size uint32 + Error uint32 + ChainIndex uint32 + ElementIndex uint32 + ExtraPolicyStatus uintptr +} + +const ( + // do not reorder + HKEY_CLASSES_ROOT = 0x80000000 + iota + HKEY_CURRENT_USER + HKEY_LOCAL_MACHINE + HKEY_USERS + HKEY_PERFORMANCE_DATA + HKEY_CURRENT_CONFIG + HKEY_DYN_DATA + + KEY_QUERY_VALUE = 1 + KEY_SET_VALUE = 2 + KEY_CREATE_SUB_KEY = 4 + KEY_ENUMERATE_SUB_KEYS = 8 + KEY_NOTIFY = 16 + KEY_CREATE_LINK = 32 + KEY_WRITE = 0x20006 + KEY_EXECUTE = 0x20019 + KEY_READ = 0x20019 + KEY_WOW64_64KEY = 0x0100 + KEY_WOW64_32KEY = 0x0200 + KEY_ALL_ACCESS = 0xf003f +) + +const ( + // do not reorder + REG_NONE = iota + REG_SZ + REG_EXPAND_SZ + REG_BINARY + REG_DWORD_LITTLE_ENDIAN + REG_DWORD_BIG_ENDIAN + REG_LINK + REG_MULTI_SZ + REG_RESOURCE_LIST + REG_FULL_RESOURCE_DESCRIPTOR + REG_RESOURCE_REQUIREMENTS_LIST + REG_QWORD_LITTLE_ENDIAN + REG_DWORD = REG_DWORD_LITTLE_ENDIAN + REG_QWORD = REG_QWORD_LITTLE_ENDIAN +) + +type AddrinfoW struct { + Flags int32 + Family int32 + Socktype int32 + Protocol int32 + Addrlen uintptr + Canonname *uint16 + Addr uintptr + Next *AddrinfoW +} + +const ( + AI_PASSIVE = 1 + AI_CANONNAME = 2 + AI_NUMERICHOST = 4 +) + +type GUID struct { + Data1 uint32 + Data2 uint16 + Data3 uint16 + Data4 [8]byte +} + +var WSAID_CONNECTEX = GUID{ + 0x25a207b9, + 0xddf3, + 0x4660, + [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, +} + +var WSAID_WSASENDMSG = GUID{ + 0xa441e712, + 0x754f, + 0x43ca, + [8]byte{0x84, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d}, +} + +var WSAID_WSARECVMSG = GUID{ + 0xf689d7c8, + 0x6f1f, + 0x436b, + [8]byte{0x8a, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22}, +} + +const ( + FILE_SKIP_COMPLETION_PORT_ON_SUCCESS = 1 + FILE_SKIP_SET_EVENT_ON_HANDLE = 2 +) + +const ( + WSAPROTOCOL_LEN = 255 + MAX_PROTOCOL_CHAIN = 7 + BASE_PROTOCOL = 1 + LAYERED_PROTOCOL = 0 + + XP1_CONNECTIONLESS = 0x00000001 + XP1_GUARANTEED_DELIVERY = 0x00000002 + XP1_GUARANTEED_ORDER = 0x00000004 + XP1_MESSAGE_ORIENTED = 0x00000008 + XP1_PSEUDO_STREAM = 0x00000010 + XP1_GRACEFUL_CLOSE = 0x00000020 + XP1_EXPEDITED_DATA = 0x00000040 + XP1_CONNECT_DATA = 0x00000080 + XP1_DISCONNECT_DATA = 0x00000100 + XP1_SUPPORT_BROADCAST = 0x00000200 + XP1_SUPPORT_MULTIPOINT = 0x00000400 + XP1_MULTIPOINT_CONTROL_PLANE = 0x00000800 + XP1_MULTIPOINT_DATA_PLANE = 0x00001000 + XP1_QOS_SUPPORTED = 0x00002000 + XP1_UNI_SEND = 0x00008000 + XP1_UNI_RECV = 0x00010000 + XP1_IFS_HANDLES = 0x00020000 + XP1_PARTIAL_MESSAGE = 0x00040000 + XP1_SAN_SUPPORT_SDP = 0x00080000 + + PFL_MULTIPLE_PROTO_ENTRIES = 0x00000001 + PFL_RECOMMENDED_PROTO_ENTRY = 0x00000002 + PFL_HIDDEN = 0x00000004 + PFL_MATCHES_PROTOCOL_ZERO = 0x00000008 + PFL_NETWORKDIRECT_PROVIDER = 0x00000010 +) + +type WSAProtocolInfo struct { + ServiceFlags1 uint32 + ServiceFlags2 uint32 + ServiceFlags3 uint32 + ServiceFlags4 uint32 + ProviderFlags uint32 + ProviderId GUID + CatalogEntryId uint32 + ProtocolChain WSAProtocolChain + Version int32 + AddressFamily int32 + MaxSockAddr int32 + MinSockAddr int32 + SocketType int32 + Protocol int32 + ProtocolMaxOffset int32 + NetworkByteOrder int32 + SecurityScheme int32 + MessageSize uint32 + ProviderReserved uint32 + ProtocolName [WSAPROTOCOL_LEN + 1]uint16 +} + +type WSAProtocolChain struct { + ChainLen int32 + ChainEntries [MAX_PROTOCOL_CHAIN]uint32 +} + +type TCPKeepalive struct { + OnOff uint32 + Time uint32 + Interval uint32 +} + +type symbolicLinkReparseBuffer struct { + SubstituteNameOffset uint16 + SubstituteNameLength uint16 + PrintNameOffset uint16 + PrintNameLength uint16 + Flags uint32 + PathBuffer [1]uint16 +} + +type mountPointReparseBuffer struct { + SubstituteNameOffset uint16 + SubstituteNameLength uint16 + PrintNameOffset uint16 + PrintNameLength uint16 + PathBuffer [1]uint16 +} + +type reparseDataBuffer struct { + ReparseTag uint32 + ReparseDataLength uint16 + Reserved uint16 + + // GenericReparseBuffer + reparseBuffer byte +} + +const ( + FSCTL_GET_REPARSE_POINT = 0x900A8 + MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 + IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 + IO_REPARSE_TAG_SYMLINK = 0xA000000C + SYMBOLIC_LINK_FLAG_DIRECTORY = 0x1 +) + +const ( + ComputerNameNetBIOS = 0 + ComputerNameDnsHostname = 1 + ComputerNameDnsDomain = 2 + ComputerNameDnsFullyQualified = 3 + ComputerNamePhysicalNetBIOS = 4 + ComputerNamePhysicalDnsHostname = 5 + ComputerNamePhysicalDnsDomain = 6 + ComputerNamePhysicalDnsFullyQualified = 7 + ComputerNameMax = 8 +) + +const ( + MOVEFILE_REPLACE_EXISTING = 0x1 + MOVEFILE_COPY_ALLOWED = 0x2 + MOVEFILE_DELAY_UNTIL_REBOOT = 0x4 + MOVEFILE_WRITE_THROUGH = 0x8 + MOVEFILE_CREATE_HARDLINK = 0x10 + MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x20 +) + +const GAA_FLAG_INCLUDE_PREFIX = 0x00000010 + +const ( + IF_TYPE_OTHER = 1 + IF_TYPE_ETHERNET_CSMACD = 6 + IF_TYPE_ISO88025_TOKENRING = 9 + IF_TYPE_PPP = 23 + IF_TYPE_SOFTWARE_LOOPBACK = 24 + IF_TYPE_ATM = 37 + IF_TYPE_IEEE80211 = 71 + IF_TYPE_TUNNEL = 131 + IF_TYPE_IEEE1394 = 144 +) + +type SocketAddress struct { + Sockaddr *syscall.RawSockaddrAny + SockaddrLength int32 +} + +type IpAdapterUnicastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterUnicastAddress + Address SocketAddress + PrefixOrigin int32 + SuffixOrigin int32 + DadState int32 + ValidLifetime uint32 + PreferredLifetime uint32 + LeaseLifetime uint32 + OnLinkPrefixLength uint8 +} + +type IpAdapterAnycastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterAnycastAddress + Address SocketAddress +} + +type IpAdapterMulticastAddress struct { + Length uint32 + Flags uint32 + Next *IpAdapterMulticastAddress + Address SocketAddress +} + +type IpAdapterDnsServerAdapter struct { + Length uint32 + Reserved uint32 + Next *IpAdapterDnsServerAdapter + Address SocketAddress +} + +type IpAdapterPrefix struct { + Length uint32 + Flags uint32 + Next *IpAdapterPrefix + Address SocketAddress + PrefixLength uint32 +} + +type IpAdapterAddresses struct { + Length uint32 + IfIndex uint32 + Next *IpAdapterAddresses + AdapterName *byte + FirstUnicastAddress *IpAdapterUnicastAddress + FirstAnycastAddress *IpAdapterAnycastAddress + FirstMulticastAddress *IpAdapterMulticastAddress + FirstDnsServerAddress *IpAdapterDnsServerAdapter + DnsSuffix *uint16 + Description *uint16 + FriendlyName *uint16 + PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte + PhysicalAddressLength uint32 + Flags uint32 + Mtu uint32 + IfType uint32 + OperStatus uint32 + Ipv6IfIndex uint32 + ZoneIndices [16]uint32 + FirstPrefix *IpAdapterPrefix + /* more fields might be present here. */ +} + +const ( + IfOperStatusUp = 1 + IfOperStatusDown = 2 + IfOperStatusTesting = 3 + IfOperStatusUnknown = 4 + IfOperStatusDormant = 5 + IfOperStatusNotPresent = 6 + IfOperStatusLowerLayerDown = 7 +) + +// Console related constants used for the mode parameter to SetConsoleMode. See +// https://docs.microsoft.com/en-us/windows/console/setconsolemode for details. + +const ( + ENABLE_PROCESSED_INPUT = 0x1 + ENABLE_LINE_INPUT = 0x2 + ENABLE_ECHO_INPUT = 0x4 + ENABLE_WINDOW_INPUT = 0x8 + ENABLE_MOUSE_INPUT = 0x10 + ENABLE_INSERT_MODE = 0x20 + ENABLE_QUICK_EDIT_MODE = 0x40 + ENABLE_EXTENDED_FLAGS = 0x80 + ENABLE_AUTO_POSITION = 0x100 + ENABLE_VIRTUAL_TERMINAL_INPUT = 0x200 + + ENABLE_PROCESSED_OUTPUT = 0x1 + ENABLE_WRAP_AT_EOL_OUTPUT = 0x2 + ENABLE_VIRTUAL_TERMINAL_PROCESSING = 0x4 + DISABLE_NEWLINE_AUTO_RETURN = 0x8 + ENABLE_LVB_GRID_WORLDWIDE = 0x10 +) + +type Coord struct { + X int16 + Y int16 +} + +type SmallRect struct { + Left int16 + Top int16 + Right int16 + Bottom int16 +} + +// Used with GetConsoleScreenBuffer to retreive information about a console +// screen buffer. See +// https://docs.microsoft.com/en-us/windows/console/console-screen-buffer-info-str +// for details. + +type ConsoleScreenBufferInfo struct { + Size Coord + CursorPosition Coord + Attributes uint16 + Window SmallRect + MaximumWindowSize Coord +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_386.go b/vendor/golang.org/x/sys/windows/types_windows_386.go new file mode 100644 index 0000000..fe0ddd0 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_386.go @@ -0,0 +1,22 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte +} + +type Servent struct { + Name *byte + Aliases **byte + Port uint16 + Proto *byte +} diff --git a/vendor/golang.org/x/sys/windows/types_windows_amd64.go b/vendor/golang.org/x/sys/windows/types_windows_amd64.go new file mode 100644 index 0000000..7e154c2 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/types_windows_amd64.go @@ -0,0 +1,22 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package windows + +type WSAData struct { + Version uint16 + HighVersion uint16 + MaxSockets uint16 + MaxUdpDg uint16 + VendorInfo *byte + Description [WSADESCRIPTION_LEN + 1]byte + SystemStatus [WSASYS_STATUS_LEN + 1]byte +} + +type Servent struct { + Name *byte + Aliases **byte + Proto *byte + Port uint16 +} diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go new file mode 100644 index 0000000..c7b3b15 --- /dev/null +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -0,0 +1,2687 @@ +// MACHINE GENERATED BY 'go generate' COMMAND; DO NOT EDIT + +package windows + +import ( + "syscall" + "unsafe" +) + +var _ unsafe.Pointer + +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return nil + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + +var ( + modadvapi32 = NewLazySystemDLL("advapi32.dll") + modkernel32 = NewLazySystemDLL("kernel32.dll") + modshell32 = NewLazySystemDLL("shell32.dll") + modmswsock = NewLazySystemDLL("mswsock.dll") + modcrypt32 = NewLazySystemDLL("crypt32.dll") + modws2_32 = NewLazySystemDLL("ws2_32.dll") + moddnsapi = NewLazySystemDLL("dnsapi.dll") + modiphlpapi = NewLazySystemDLL("iphlpapi.dll") + modsecur32 = NewLazySystemDLL("secur32.dll") + modnetapi32 = NewLazySystemDLL("netapi32.dll") + moduserenv = NewLazySystemDLL("userenv.dll") + + procRegisterEventSourceW = modadvapi32.NewProc("RegisterEventSourceW") + procDeregisterEventSource = modadvapi32.NewProc("DeregisterEventSource") + procReportEventW = modadvapi32.NewProc("ReportEventW") + procOpenSCManagerW = modadvapi32.NewProc("OpenSCManagerW") + procCloseServiceHandle = modadvapi32.NewProc("CloseServiceHandle") + procCreateServiceW = modadvapi32.NewProc("CreateServiceW") + procOpenServiceW = modadvapi32.NewProc("OpenServiceW") + procDeleteService = modadvapi32.NewProc("DeleteService") + procStartServiceW = modadvapi32.NewProc("StartServiceW") + procQueryServiceStatus = modadvapi32.NewProc("QueryServiceStatus") + procControlService = modadvapi32.NewProc("ControlService") + procStartServiceCtrlDispatcherW = modadvapi32.NewProc("StartServiceCtrlDispatcherW") + procSetServiceStatus = modadvapi32.NewProc("SetServiceStatus") + procChangeServiceConfigW = modadvapi32.NewProc("ChangeServiceConfigW") + procQueryServiceConfigW = modadvapi32.NewProc("QueryServiceConfigW") + procChangeServiceConfig2W = modadvapi32.NewProc("ChangeServiceConfig2W") + procQueryServiceConfig2W = modadvapi32.NewProc("QueryServiceConfig2W") + procEnumServicesStatusExW = modadvapi32.NewProc("EnumServicesStatusExW") + procGetLastError = modkernel32.NewProc("GetLastError") + procLoadLibraryW = modkernel32.NewProc("LoadLibraryW") + procLoadLibraryExW = modkernel32.NewProc("LoadLibraryExW") + procFreeLibrary = modkernel32.NewProc("FreeLibrary") + procGetProcAddress = modkernel32.NewProc("GetProcAddress") + procGetVersion = modkernel32.NewProc("GetVersion") + procFormatMessageW = modkernel32.NewProc("FormatMessageW") + procExitProcess = modkernel32.NewProc("ExitProcess") + procCreateFileW = modkernel32.NewProc("CreateFileW") + procReadFile = modkernel32.NewProc("ReadFile") + procWriteFile = modkernel32.NewProc("WriteFile") + procSetFilePointer = modkernel32.NewProc("SetFilePointer") + procCloseHandle = modkernel32.NewProc("CloseHandle") + procGetStdHandle = modkernel32.NewProc("GetStdHandle") + procSetStdHandle = modkernel32.NewProc("SetStdHandle") + procFindFirstFileW = modkernel32.NewProc("FindFirstFileW") + procFindNextFileW = modkernel32.NewProc("FindNextFileW") + procFindClose = modkernel32.NewProc("FindClose") + procGetFileInformationByHandle = modkernel32.NewProc("GetFileInformationByHandle") + procGetCurrentDirectoryW = modkernel32.NewProc("GetCurrentDirectoryW") + procSetCurrentDirectoryW = modkernel32.NewProc("SetCurrentDirectoryW") + procCreateDirectoryW = modkernel32.NewProc("CreateDirectoryW") + procRemoveDirectoryW = modkernel32.NewProc("RemoveDirectoryW") + procDeleteFileW = modkernel32.NewProc("DeleteFileW") + procMoveFileW = modkernel32.NewProc("MoveFileW") + procMoveFileExW = modkernel32.NewProc("MoveFileExW") + procGetComputerNameW = modkernel32.NewProc("GetComputerNameW") + procGetComputerNameExW = modkernel32.NewProc("GetComputerNameExW") + procSetEndOfFile = modkernel32.NewProc("SetEndOfFile") + procGetSystemTimeAsFileTime = modkernel32.NewProc("GetSystemTimeAsFileTime") + procGetSystemTimePreciseAsFileTime = modkernel32.NewProc("GetSystemTimePreciseAsFileTime") + procGetTimeZoneInformation = modkernel32.NewProc("GetTimeZoneInformation") + procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") + procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") + procPostQueuedCompletionStatus = modkernel32.NewProc("PostQueuedCompletionStatus") + procCancelIo = modkernel32.NewProc("CancelIo") + procCancelIoEx = modkernel32.NewProc("CancelIoEx") + procCreateProcessW = modkernel32.NewProc("CreateProcessW") + procOpenProcess = modkernel32.NewProc("OpenProcess") + procTerminateProcess = modkernel32.NewProc("TerminateProcess") + procGetExitCodeProcess = modkernel32.NewProc("GetExitCodeProcess") + procGetStartupInfoW = modkernel32.NewProc("GetStartupInfoW") + procGetCurrentProcess = modkernel32.NewProc("GetCurrentProcess") + procGetProcessTimes = modkernel32.NewProc("GetProcessTimes") + procDuplicateHandle = modkernel32.NewProc("DuplicateHandle") + procWaitForSingleObject = modkernel32.NewProc("WaitForSingleObject") + procGetTempPathW = modkernel32.NewProc("GetTempPathW") + procCreatePipe = modkernel32.NewProc("CreatePipe") + procGetFileType = modkernel32.NewProc("GetFileType") + procCryptAcquireContextW = modadvapi32.NewProc("CryptAcquireContextW") + procCryptReleaseContext = modadvapi32.NewProc("CryptReleaseContext") + procCryptGenRandom = modadvapi32.NewProc("CryptGenRandom") + procGetEnvironmentStringsW = modkernel32.NewProc("GetEnvironmentStringsW") + procFreeEnvironmentStringsW = modkernel32.NewProc("FreeEnvironmentStringsW") + procGetEnvironmentVariableW = modkernel32.NewProc("GetEnvironmentVariableW") + procSetEnvironmentVariableW = modkernel32.NewProc("SetEnvironmentVariableW") + procSetFileTime = modkernel32.NewProc("SetFileTime") + procGetFileAttributesW = modkernel32.NewProc("GetFileAttributesW") + procSetFileAttributesW = modkernel32.NewProc("SetFileAttributesW") + procGetFileAttributesExW = modkernel32.NewProc("GetFileAttributesExW") + procGetCommandLineW = modkernel32.NewProc("GetCommandLineW") + procCommandLineToArgvW = modshell32.NewProc("CommandLineToArgvW") + procLocalFree = modkernel32.NewProc("LocalFree") + procSetHandleInformation = modkernel32.NewProc("SetHandleInformation") + procFlushFileBuffers = modkernel32.NewProc("FlushFileBuffers") + procGetFullPathNameW = modkernel32.NewProc("GetFullPathNameW") + procGetLongPathNameW = modkernel32.NewProc("GetLongPathNameW") + procGetShortPathNameW = modkernel32.NewProc("GetShortPathNameW") + procCreateFileMappingW = modkernel32.NewProc("CreateFileMappingW") + procMapViewOfFile = modkernel32.NewProc("MapViewOfFile") + procUnmapViewOfFile = modkernel32.NewProc("UnmapViewOfFile") + procFlushViewOfFile = modkernel32.NewProc("FlushViewOfFile") + procVirtualLock = modkernel32.NewProc("VirtualLock") + procVirtualUnlock = modkernel32.NewProc("VirtualUnlock") + procVirtualAlloc = modkernel32.NewProc("VirtualAlloc") + procVirtualFree = modkernel32.NewProc("VirtualFree") + procVirtualProtect = modkernel32.NewProc("VirtualProtect") + procTransmitFile = modmswsock.NewProc("TransmitFile") + procReadDirectoryChangesW = modkernel32.NewProc("ReadDirectoryChangesW") + procCertOpenSystemStoreW = modcrypt32.NewProc("CertOpenSystemStoreW") + procCertOpenStore = modcrypt32.NewProc("CertOpenStore") + procCertEnumCertificatesInStore = modcrypt32.NewProc("CertEnumCertificatesInStore") + procCertAddCertificateContextToStore = modcrypt32.NewProc("CertAddCertificateContextToStore") + procCertCloseStore = modcrypt32.NewProc("CertCloseStore") + procCertGetCertificateChain = modcrypt32.NewProc("CertGetCertificateChain") + procCertFreeCertificateChain = modcrypt32.NewProc("CertFreeCertificateChain") + procCertCreateCertificateContext = modcrypt32.NewProc("CertCreateCertificateContext") + procCertFreeCertificateContext = modcrypt32.NewProc("CertFreeCertificateContext") + procCertVerifyCertificateChainPolicy = modcrypt32.NewProc("CertVerifyCertificateChainPolicy") + procRegOpenKeyExW = modadvapi32.NewProc("RegOpenKeyExW") + procRegCloseKey = modadvapi32.NewProc("RegCloseKey") + procRegQueryInfoKeyW = modadvapi32.NewProc("RegQueryInfoKeyW") + procRegEnumKeyExW = modadvapi32.NewProc("RegEnumKeyExW") + procRegQueryValueExW = modadvapi32.NewProc("RegQueryValueExW") + procGetCurrentProcessId = modkernel32.NewProc("GetCurrentProcessId") + procGetConsoleMode = modkernel32.NewProc("GetConsoleMode") + procSetConsoleMode = modkernel32.NewProc("SetConsoleMode") + procGetConsoleScreenBufferInfo = modkernel32.NewProc("GetConsoleScreenBufferInfo") + procWriteConsoleW = modkernel32.NewProc("WriteConsoleW") + procReadConsoleW = modkernel32.NewProc("ReadConsoleW") + procCreateToolhelp32Snapshot = modkernel32.NewProc("CreateToolhelp32Snapshot") + procProcess32FirstW = modkernel32.NewProc("Process32FirstW") + procProcess32NextW = modkernel32.NewProc("Process32NextW") + procDeviceIoControl = modkernel32.NewProc("DeviceIoControl") + procCreateSymbolicLinkW = modkernel32.NewProc("CreateSymbolicLinkW") + procCreateHardLinkW = modkernel32.NewProc("CreateHardLinkW") + procGetCurrentThreadId = modkernel32.NewProc("GetCurrentThreadId") + procCreateEventW = modkernel32.NewProc("CreateEventW") + procCreateEventExW = modkernel32.NewProc("CreateEventExW") + procOpenEventW = modkernel32.NewProc("OpenEventW") + procSetEvent = modkernel32.NewProc("SetEvent") + procResetEvent = modkernel32.NewProc("ResetEvent") + procPulseEvent = modkernel32.NewProc("PulseEvent") + procDefineDosDeviceW = modkernel32.NewProc("DefineDosDeviceW") + procDeleteVolumeMountPointW = modkernel32.NewProc("DeleteVolumeMountPointW") + procFindFirstVolumeW = modkernel32.NewProc("FindFirstVolumeW") + procFindFirstVolumeMountPointW = modkernel32.NewProc("FindFirstVolumeMountPointW") + procFindNextVolumeW = modkernel32.NewProc("FindNextVolumeW") + procFindNextVolumeMountPointW = modkernel32.NewProc("FindNextVolumeMountPointW") + procFindVolumeClose = modkernel32.NewProc("FindVolumeClose") + procFindVolumeMountPointClose = modkernel32.NewProc("FindVolumeMountPointClose") + procGetDriveTypeW = modkernel32.NewProc("GetDriveTypeW") + procGetLogicalDrives = modkernel32.NewProc("GetLogicalDrives") + procGetLogicalDriveStringsW = modkernel32.NewProc("GetLogicalDriveStringsW") + procGetVolumeInformationW = modkernel32.NewProc("GetVolumeInformationW") + procGetVolumeInformationByHandleW = modkernel32.NewProc("GetVolumeInformationByHandleW") + procGetVolumeNameForVolumeMountPointW = modkernel32.NewProc("GetVolumeNameForVolumeMountPointW") + procGetVolumePathNameW = modkernel32.NewProc("GetVolumePathNameW") + procGetVolumePathNamesForVolumeNameW = modkernel32.NewProc("GetVolumePathNamesForVolumeNameW") + procQueryDosDeviceW = modkernel32.NewProc("QueryDosDeviceW") + procSetVolumeLabelW = modkernel32.NewProc("SetVolumeLabelW") + procSetVolumeMountPointW = modkernel32.NewProc("SetVolumeMountPointW") + procWSAStartup = modws2_32.NewProc("WSAStartup") + procWSACleanup = modws2_32.NewProc("WSACleanup") + procWSAIoctl = modws2_32.NewProc("WSAIoctl") + procsocket = modws2_32.NewProc("socket") + procsetsockopt = modws2_32.NewProc("setsockopt") + procgetsockopt = modws2_32.NewProc("getsockopt") + procbind = modws2_32.NewProc("bind") + procconnect = modws2_32.NewProc("connect") + procgetsockname = modws2_32.NewProc("getsockname") + procgetpeername = modws2_32.NewProc("getpeername") + proclisten = modws2_32.NewProc("listen") + procshutdown = modws2_32.NewProc("shutdown") + procclosesocket = modws2_32.NewProc("closesocket") + procAcceptEx = modmswsock.NewProc("AcceptEx") + procGetAcceptExSockaddrs = modmswsock.NewProc("GetAcceptExSockaddrs") + procWSARecv = modws2_32.NewProc("WSARecv") + procWSASend = modws2_32.NewProc("WSASend") + procWSARecvFrom = modws2_32.NewProc("WSARecvFrom") + procWSASendTo = modws2_32.NewProc("WSASendTo") + procgethostbyname = modws2_32.NewProc("gethostbyname") + procgetservbyname = modws2_32.NewProc("getservbyname") + procntohs = modws2_32.NewProc("ntohs") + procgetprotobyname = modws2_32.NewProc("getprotobyname") + procDnsQuery_W = moddnsapi.NewProc("DnsQuery_W") + procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") + procDnsNameCompare_W = moddnsapi.NewProc("DnsNameCompare_W") + procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") + procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") + procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") + procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") + procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") + procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") + procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") + procGetACP = modkernel32.NewProc("GetACP") + procMultiByteToWideChar = modkernel32.NewProc("MultiByteToWideChar") + procTranslateNameW = modsecur32.NewProc("TranslateNameW") + procGetUserNameExW = modsecur32.NewProc("GetUserNameExW") + procNetUserGetInfo = modnetapi32.NewProc("NetUserGetInfo") + procNetGetJoinInformation = modnetapi32.NewProc("NetGetJoinInformation") + procNetApiBufferFree = modnetapi32.NewProc("NetApiBufferFree") + procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") + procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") + procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") + procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") + procGetLengthSid = modadvapi32.NewProc("GetLengthSid") + procCopySid = modadvapi32.NewProc("CopySid") + procAllocateAndInitializeSid = modadvapi32.NewProc("AllocateAndInitializeSid") + procFreeSid = modadvapi32.NewProc("FreeSid") + procEqualSid = modadvapi32.NewProc("EqualSid") + procCheckTokenMembership = modadvapi32.NewProc("CheckTokenMembership") + procOpenProcessToken = modadvapi32.NewProc("OpenProcessToken") + procGetTokenInformation = modadvapi32.NewProc("GetTokenInformation") + procGetUserProfileDirectoryW = moduserenv.NewProc("GetUserProfileDirectoryW") +) + +func RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procRegisterEventSourceW.Addr(), 2, uintptr(unsafe.Pointer(uncServerName)), uintptr(unsafe.Pointer(sourceName)), 0) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func DeregisterEventSource(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDeregisterEventSource.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procReportEventW.Addr(), 9, uintptr(log), uintptr(etype), uintptr(category), uintptr(eventId), uintptr(usrSId), uintptr(numStrings), uintptr(dataSize), uintptr(unsafe.Pointer(strings)), uintptr(unsafe.Pointer(rawData))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func OpenSCManager(machineName *uint16, databaseName *uint16, access uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procOpenSCManagerW.Addr(), 3, uintptr(unsafe.Pointer(machineName)), uintptr(unsafe.Pointer(databaseName)), uintptr(access)) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CloseServiceHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseServiceHandle.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreateService(mgr Handle, serviceName *uint16, displayName *uint16, access uint32, srvType uint32, startType uint32, errCtl uint32, pathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall15(procCreateServiceW.Addr(), 13, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(unsafe.Pointer(displayName)), uintptr(access), uintptr(srvType), uintptr(startType), uintptr(errCtl), uintptr(unsafe.Pointer(pathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), 0, 0) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func OpenService(mgr Handle, serviceName *uint16, access uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procOpenServiceW.Addr(), 3, uintptr(mgr), uintptr(unsafe.Pointer(serviceName)), uintptr(access)) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func DeleteService(service Handle) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteService.Addr(), 1, uintptr(service), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func StartService(service Handle, numArgs uint32, argVectors **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procStartServiceW.Addr(), 3, uintptr(service), uintptr(numArgs), uintptr(unsafe.Pointer(argVectors))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func QueryServiceStatus(service Handle, status *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procQueryServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(status)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ControlService(service Handle, control uint32, status *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procControlService.Addr(), 3, uintptr(service), uintptr(control), uintptr(unsafe.Pointer(status))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func StartServiceCtrlDispatcher(serviceTable *SERVICE_TABLE_ENTRY) (err error) { + r1, _, e1 := syscall.Syscall(procStartServiceCtrlDispatcherW.Addr(), 1, uintptr(unsafe.Pointer(serviceTable)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetServiceStatus(service Handle, serviceStatus *SERVICE_STATUS) (err error) { + r1, _, e1 := syscall.Syscall(procSetServiceStatus.Addr(), 2, uintptr(service), uintptr(unsafe.Pointer(serviceStatus)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ChangeServiceConfig(service Handle, serviceType uint32, startType uint32, errorControl uint32, binaryPathName *uint16, loadOrderGroup *uint16, tagId *uint32, dependencies *uint16, serviceStartName *uint16, password *uint16, displayName *uint16) (err error) { + r1, _, e1 := syscall.Syscall12(procChangeServiceConfigW.Addr(), 11, uintptr(service), uintptr(serviceType), uintptr(startType), uintptr(errorControl), uintptr(unsafe.Pointer(binaryPathName)), uintptr(unsafe.Pointer(loadOrderGroup)), uintptr(unsafe.Pointer(tagId)), uintptr(unsafe.Pointer(dependencies)), uintptr(unsafe.Pointer(serviceStartName)), uintptr(unsafe.Pointer(password)), uintptr(unsafe.Pointer(displayName)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func QueryServiceConfig(service Handle, serviceConfig *QUERY_SERVICE_CONFIG, bufSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceConfigW.Addr(), 4, uintptr(service), uintptr(unsafe.Pointer(serviceConfig)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ChangeServiceConfig2(service Handle, infoLevel uint32, info *byte) (err error) { + r1, _, e1 := syscall.Syscall(procChangeServiceConfig2W.Addr(), 3, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(info))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func QueryServiceConfig2(service Handle, infoLevel uint32, buff *byte, buffSize uint32, bytesNeeded *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procQueryServiceConfig2W.Addr(), 5, uintptr(service), uintptr(infoLevel), uintptr(unsafe.Pointer(buff)), uintptr(buffSize), uintptr(unsafe.Pointer(bytesNeeded)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func EnumServicesStatusEx(mgr Handle, infoLevel uint32, serviceType uint32, serviceState uint32, services *byte, bufSize uint32, bytesNeeded *uint32, servicesReturned *uint32, resumeHandle *uint32, groupName *uint16) (err error) { + r1, _, e1 := syscall.Syscall12(procEnumServicesStatusExW.Addr(), 10, uintptr(mgr), uintptr(infoLevel), uintptr(serviceType), uintptr(serviceState), uintptr(unsafe.Pointer(services)), uintptr(bufSize), uintptr(unsafe.Pointer(bytesNeeded)), uintptr(unsafe.Pointer(servicesReturned)), uintptr(unsafe.Pointer(resumeHandle)), uintptr(unsafe.Pointer(groupName)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetLastError() (lasterr error) { + r0, _, _ := syscall.Syscall(procGetLastError.Addr(), 0, 0, 0, 0) + if r0 != 0 { + lasterr = syscall.Errno(r0) + } + return +} + +func LoadLibrary(libname string) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return + } + return _LoadLibrary(_p0) +} + +func _LoadLibrary(libname *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryW.Addr(), 1, uintptr(unsafe.Pointer(libname)), 0, 0) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func LoadLibraryEx(libname string, zero Handle, flags uintptr) (handle Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(libname) + if err != nil { + return + } + return _LoadLibraryEx(_p0, zero, flags) +} + +func _LoadLibraryEx(libname *uint16, zero Handle, flags uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLoadLibraryExW.Addr(), 3, uintptr(unsafe.Pointer(libname)), uintptr(zero), uintptr(flags)) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FreeLibrary(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFreeLibrary.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetProcAddress(module Handle, procname string) (proc uintptr, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(procname) + if err != nil { + return + } + return _GetProcAddress(module, _p0) +} + +func _GetProcAddress(module Handle, procname *byte) (proc uintptr, err error) { + r0, _, e1 := syscall.Syscall(procGetProcAddress.Addr(), 2, uintptr(module), uintptr(unsafe.Pointer(procname)), 0) + proc = uintptr(r0) + if proc == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetVersion() (ver uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetVersion.Addr(), 0, 0, 0, 0) + ver = uint32(r0) + if ver == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FormatMessage(flags uint32, msgsrc uintptr, msgid uint32, langid uint32, buf []uint16, args *byte) (n uint32, err error) { + var _p0 *uint16 + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := syscall.Syscall9(procFormatMessageW.Addr(), 7, uintptr(flags), uintptr(msgsrc), uintptr(msgid), uintptr(langid), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(args)), 0, 0) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ExitProcess(exitcode uint32) { + syscall.Syscall(procExitProcess.Addr(), 1, uintptr(exitcode), 0, 0) + return +} + +func CreateFile(name *uint16, access uint32, mode uint32, sa *SecurityAttributes, createmode uint32, attrs uint32, templatefile int32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ReadFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procReadFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func WriteFile(handle Handle, buf []byte, done *uint32, overlapped *Overlapped) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r1, _, e1 := syscall.Syscall6(procWriteFile.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(done)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetFilePointer(handle Handle, lowoffset int32, highoffsetptr *int32, whence uint32) (newlowoffset uint32, err error) { + r0, _, e1 := syscall.Syscall6(procSetFilePointer.Addr(), 4, uintptr(handle), uintptr(lowoffset), uintptr(unsafe.Pointer(highoffsetptr)), uintptr(whence), 0, 0) + newlowoffset = uint32(r0) + if newlowoffset == 0xffffffff { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CloseHandle(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCloseHandle.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetStdHandle(stdhandle uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procGetStdHandle.Addr(), 1, uintptr(stdhandle), 0, 0) + handle = Handle(r0) + if handle == InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetStdHandle(stdhandle uint32, handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetStdHandle.Addr(), 2, uintptr(stdhandle), uintptr(handle), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func findFirstFile1(name *uint16, data *win32finddata1) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstFileW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(data)), 0) + handle = Handle(r0) + if handle == InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func findNextFile1(handle Handle, data *win32finddata1) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextFileW.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FindClose(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindClose.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetFileInformationByHandle(handle Handle, data *ByHandleFileInformation) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileInformationByHandle.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(data)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetCurrentDirectory(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetCurrentDirectoryW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetCurrentDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetCurrentDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreateDirectory(path *uint16, sa *SecurityAttributes) (err error) { + r1, _, e1 := syscall.Syscall(procCreateDirectoryW.Addr(), 2, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(sa)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func RemoveDirectory(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procRemoveDirectoryW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func DeleteFile(path *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteFileW.Addr(), 1, uintptr(unsafe.Pointer(path)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func MoveFile(from *uint16, to *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileW.Addr(), 2, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func MoveFileEx(from *uint16, to *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags)) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetComputerName(buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameW.Addr(), 2, uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetComputerNameEx(nametype uint32, buf *uint16, n *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetComputerNameExW.Addr(), 3, uintptr(nametype), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(n))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetEndOfFile(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEndOfFile.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetSystemTimeAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimeAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + return +} + +func GetSystemTimePreciseAsFileTime(time *Filetime) { + syscall.Syscall(procGetSystemTimePreciseAsFileTime.Addr(), 1, uintptr(unsafe.Pointer(time)), 0, 0) + return +} + +func GetTimeZoneInformation(tzi *Timezoneinformation) (rc uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTimeZoneInformation.Addr(), 1, uintptr(unsafe.Pointer(tzi)), 0, 0) + rc = uint32(r0) + if rc == 0xffffffff { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreateIoCompletionPort(filehandle Handle, cphandle Handle, key uint32, threadcnt uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(filehandle), uintptr(cphandle), uintptr(key), uintptr(threadcnt), 0, 0) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetQueuedCompletionStatus(cphandle Handle, qty *uint32, key *uint32, overlapped **Overlapped, timeout uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(cphandle), uintptr(unsafe.Pointer(qty)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(overlapped)), uintptr(timeout), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func PostQueuedCompletionStatus(cphandle Handle, qty uint32, key uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall6(procPostQueuedCompletionStatus.Addr(), 4, uintptr(cphandle), uintptr(qty), uintptr(key), uintptr(unsafe.Pointer(overlapped)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CancelIo(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIo.Addr(), 1, uintptr(s), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CancelIoEx(s Handle, o *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(s), uintptr(unsafe.Pointer(o)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreateProcess(appName *uint16, commandLine *uint16, procSecurity *SecurityAttributes, threadSecurity *SecurityAttributes, inheritHandles bool, creationFlags uint32, env *uint16, currentDir *uint16, startupInfo *StartupInfo, outProcInfo *ProcessInformation) (err error) { + var _p0 uint32 + if inheritHandles { + _p0 = 1 + } else { + _p0 = 0 + } + r1, _, e1 := syscall.Syscall12(procCreateProcessW.Addr(), 10, uintptr(unsafe.Pointer(appName)), uintptr(unsafe.Pointer(commandLine)), uintptr(unsafe.Pointer(procSecurity)), uintptr(unsafe.Pointer(threadSecurity)), uintptr(_p0), uintptr(creationFlags), uintptr(unsafe.Pointer(env)), uintptr(unsafe.Pointer(currentDir)), uintptr(unsafe.Pointer(startupInfo)), uintptr(unsafe.Pointer(outProcInfo)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func OpenProcess(da uint32, inheritHandle bool, pid uint32) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } else { + _p0 = 0 + } + r0, _, e1 := syscall.Syscall(procOpenProcess.Addr(), 3, uintptr(da), uintptr(_p0), uintptr(pid)) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func TerminateProcess(handle Handle, exitcode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procTerminateProcess.Addr(), 2, uintptr(handle), uintptr(exitcode), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetExitCodeProcess(handle Handle, exitcode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetExitCodeProcess.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(exitcode)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetStartupInfo(startupInfo *StartupInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetStartupInfoW.Addr(), 1, uintptr(unsafe.Pointer(startupInfo)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetCurrentProcess() (pseudoHandle Handle, err error) { + r0, _, e1 := syscall.Syscall(procGetCurrentProcess.Addr(), 0, 0, 0, 0) + pseudoHandle = Handle(r0) + if pseudoHandle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetProcessTimes(handle Handle, creationTime *Filetime, exitTime *Filetime, kernelTime *Filetime, userTime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procGetProcessTimes.Addr(), 5, uintptr(handle), uintptr(unsafe.Pointer(creationTime)), uintptr(unsafe.Pointer(exitTime)), uintptr(unsafe.Pointer(kernelTime)), uintptr(unsafe.Pointer(userTime)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func DuplicateHandle(hSourceProcessHandle Handle, hSourceHandle Handle, hTargetProcessHandle Handle, lpTargetHandle *Handle, dwDesiredAccess uint32, bInheritHandle bool, dwOptions uint32) (err error) { + var _p0 uint32 + if bInheritHandle { + _p0 = 1 + } else { + _p0 = 0 + } + r1, _, e1 := syscall.Syscall9(procDuplicateHandle.Addr(), 7, uintptr(hSourceProcessHandle), uintptr(hSourceHandle), uintptr(hTargetProcessHandle), uintptr(unsafe.Pointer(lpTargetHandle)), uintptr(dwDesiredAccess), uintptr(_p0), uintptr(dwOptions), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func WaitForSingleObject(handle Handle, waitMilliseconds uint32) (event uint32, err error) { + r0, _, e1 := syscall.Syscall(procWaitForSingleObject.Addr(), 2, uintptr(handle), uintptr(waitMilliseconds), 0) + event = uint32(r0) + if event == 0xffffffff { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetTempPath(buflen uint32, buf *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetTempPathW.Addr(), 2, uintptr(buflen), uintptr(unsafe.Pointer(buf)), 0) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreatePipe(readhandle *Handle, writehandle *Handle, sa *SecurityAttributes, size uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCreatePipe.Addr(), 4, uintptr(unsafe.Pointer(readhandle)), uintptr(unsafe.Pointer(writehandle)), uintptr(unsafe.Pointer(sa)), uintptr(size), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetFileType(filehandle Handle) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileType.Addr(), 1, uintptr(filehandle), 0, 0) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CryptAcquireContext(provhandle *Handle, container *uint16, provider *uint16, provtype uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procCryptAcquireContextW.Addr(), 5, uintptr(unsafe.Pointer(provhandle)), uintptr(unsafe.Pointer(container)), uintptr(unsafe.Pointer(provider)), uintptr(provtype), uintptr(flags), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CryptReleaseContext(provhandle Handle, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCryptReleaseContext.Addr(), 2, uintptr(provhandle), uintptr(flags), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CryptGenRandom(provhandle Handle, buflen uint32, buf *byte) (err error) { + r1, _, e1 := syscall.Syscall(procCryptGenRandom.Addr(), 3, uintptr(provhandle), uintptr(buflen), uintptr(unsafe.Pointer(buf))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetEnvironmentStrings() (envs *uint16, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentStringsW.Addr(), 0, 0, 0, 0) + envs = (*uint16)(unsafe.Pointer(r0)) + if envs == nil { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FreeEnvironmentStrings(envs *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procFreeEnvironmentStringsW.Addr(), 1, uintptr(unsafe.Pointer(envs)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetEnvironmentVariable(name *uint16, buffer *uint16, size uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetEnvironmentVariableW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(size)) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetEnvironmentVariable(name *uint16, value *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetEnvironmentVariableW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(value)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetFileTime(handle Handle, ctime *Filetime, atime *Filetime, wtime *Filetime) (err error) { + r1, _, e1 := syscall.Syscall6(procSetFileTime.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(ctime)), uintptr(unsafe.Pointer(atime)), uintptr(unsafe.Pointer(wtime)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetFileAttributes(name *uint16) (attrs uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetFileAttributesW.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + attrs = uint32(r0) + if attrs == INVALID_FILE_ATTRIBUTES { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetFileAttributes(name *uint16, attrs uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileAttributesW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(attrs), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetFileAttributesEx(name *uint16, level uint32, info *byte) (err error) { + r1, _, e1 := syscall.Syscall(procGetFileAttributesExW.Addr(), 3, uintptr(unsafe.Pointer(name)), uintptr(level), uintptr(unsafe.Pointer(info))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetCommandLine() (cmd *uint16) { + r0, _, _ := syscall.Syscall(procGetCommandLineW.Addr(), 0, 0, 0, 0) + cmd = (*uint16)(unsafe.Pointer(r0)) + return +} + +func CommandLineToArgv(cmd *uint16, argc *int32) (argv *[8192]*[8192]uint16, err error) { + r0, _, e1 := syscall.Syscall(procCommandLineToArgvW.Addr(), 2, uintptr(unsafe.Pointer(cmd)), uintptr(unsafe.Pointer(argc)), 0) + argv = (*[8192]*[8192]uint16)(unsafe.Pointer(r0)) + if argv == nil { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func LocalFree(hmem Handle) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procLocalFree.Addr(), 1, uintptr(hmem), 0, 0) + handle = Handle(r0) + if handle != 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetHandleInformation(handle Handle, mask uint32, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetHandleInformation.Addr(), 3, uintptr(handle), uintptr(mask), uintptr(flags)) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FlushFileBuffers(handle Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFlushFileBuffers.Addr(), 1, uintptr(handle), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetFullPathName(path *uint16, buflen uint32, buf *uint16, fname **uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall6(procGetFullPathNameW.Addr(), 4, uintptr(unsafe.Pointer(path)), uintptr(buflen), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(fname)), 0, 0) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetLongPathName(path *uint16, buf *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLongPathNameW.Addr(), 3, uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(buf)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetShortPathName(longpath *uint16, shortpath *uint16, buflen uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetShortPathNameW.Addr(), 3, uintptr(unsafe.Pointer(longpath)), uintptr(unsafe.Pointer(shortpath)), uintptr(buflen)) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreateFileMapping(fhandle Handle, sa *SecurityAttributes, prot uint32, maxSizeHigh uint32, maxSizeLow uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateFileMappingW.Addr(), 6, uintptr(fhandle), uintptr(unsafe.Pointer(sa)), uintptr(prot), uintptr(maxSizeHigh), uintptr(maxSizeLow), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func MapViewOfFile(handle Handle, access uint32, offsetHigh uint32, offsetLow uint32, length uintptr) (addr uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procMapViewOfFile.Addr(), 5, uintptr(handle), uintptr(access), uintptr(offsetHigh), uintptr(offsetLow), uintptr(length), 0) + addr = uintptr(r0) + if addr == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func UnmapViewOfFile(addr uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procUnmapViewOfFile.Addr(), 1, uintptr(addr), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FlushViewOfFile(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procFlushViewOfFile.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func VirtualLock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualLock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func VirtualUnlock(addr uintptr, length uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualUnlock.Addr(), 2, uintptr(addr), uintptr(length), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func VirtualAlloc(address uintptr, size uintptr, alloctype uint32, protect uint32) (value uintptr, err error) { + r0, _, e1 := syscall.Syscall6(procVirtualAlloc.Addr(), 4, uintptr(address), uintptr(size), uintptr(alloctype), uintptr(protect), 0, 0) + value = uintptr(r0) + if value == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func VirtualFree(address uintptr, size uintptr, freetype uint32) (err error) { + r1, _, e1 := syscall.Syscall(procVirtualFree.Addr(), 3, uintptr(address), uintptr(size), uintptr(freetype)) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func VirtualProtect(address uintptr, size uintptr, newprotect uint32, oldprotect *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procVirtualProtect.Addr(), 4, uintptr(address), uintptr(size), uintptr(newprotect), uintptr(unsafe.Pointer(oldprotect)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func TransmitFile(s Handle, handle Handle, bytesToWrite uint32, bytsPerSend uint32, overlapped *Overlapped, transmitFileBuf *TransmitFileBuffers, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procTransmitFile.Addr(), 7, uintptr(s), uintptr(handle), uintptr(bytesToWrite), uintptr(bytsPerSend), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transmitFileBuf)), uintptr(flags), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ReadDirectoryChanges(handle Handle, buf *byte, buflen uint32, watchSubTree bool, mask uint32, retlen *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { + var _p0 uint32 + if watchSubTree { + _p0 = 1 + } else { + _p0 = 0 + } + r1, _, e1 := syscall.Syscall9(procReadDirectoryChangesW.Addr(), 8, uintptr(handle), uintptr(unsafe.Pointer(buf)), uintptr(buflen), uintptr(_p0), uintptr(mask), uintptr(unsafe.Pointer(retlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CertOpenSystemStore(hprov Handle, name *uint16) (store Handle, err error) { + r0, _, e1 := syscall.Syscall(procCertOpenSystemStoreW.Addr(), 2, uintptr(hprov), uintptr(unsafe.Pointer(name)), 0) + store = Handle(r0) + if store == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CertOpenStore(storeProvider uintptr, msgAndCertEncodingType uint32, cryptProv uintptr, flags uint32, para uintptr) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCertOpenStore.Addr(), 5, uintptr(storeProvider), uintptr(msgAndCertEncodingType), uintptr(cryptProv), uintptr(flags), uintptr(para), 0) + handle = Handle(r0) + if handle == InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CertEnumCertificatesInStore(store Handle, prevContext *CertContext) (context *CertContext, err error) { + r0, _, e1 := syscall.Syscall(procCertEnumCertificatesInStore.Addr(), 2, uintptr(store), uintptr(unsafe.Pointer(prevContext)), 0) + context = (*CertContext)(unsafe.Pointer(r0)) + if context == nil { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CertAddCertificateContextToStore(store Handle, certContext *CertContext, addDisposition uint32, storeContext **CertContext) (err error) { + r1, _, e1 := syscall.Syscall6(procCertAddCertificateContextToStore.Addr(), 4, uintptr(store), uintptr(unsafe.Pointer(certContext)), uintptr(addDisposition), uintptr(unsafe.Pointer(storeContext)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CertCloseStore(store Handle, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCertCloseStore.Addr(), 2, uintptr(store), uintptr(flags), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CertGetCertificateChain(engine Handle, leaf *CertContext, time *Filetime, additionalStore Handle, para *CertChainPara, flags uint32, reserved uintptr, chainCtx **CertChainContext) (err error) { + r1, _, e1 := syscall.Syscall9(procCertGetCertificateChain.Addr(), 8, uintptr(engine), uintptr(unsafe.Pointer(leaf)), uintptr(unsafe.Pointer(time)), uintptr(additionalStore), uintptr(unsafe.Pointer(para)), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(chainCtx)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CertFreeCertificateChain(ctx *CertChainContext) { + syscall.Syscall(procCertFreeCertificateChain.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + return +} + +func CertCreateCertificateContext(certEncodingType uint32, certEncoded *byte, encodedLen uint32) (context *CertContext, err error) { + r0, _, e1 := syscall.Syscall(procCertCreateCertificateContext.Addr(), 3, uintptr(certEncodingType), uintptr(unsafe.Pointer(certEncoded)), uintptr(encodedLen)) + context = (*CertContext)(unsafe.Pointer(r0)) + if context == nil { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CertFreeCertificateContext(ctx *CertContext) (err error) { + r1, _, e1 := syscall.Syscall(procCertFreeCertificateContext.Addr(), 1, uintptr(unsafe.Pointer(ctx)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CertVerifyCertificateChainPolicy(policyOID uintptr, chain *CertChainContext, para *CertChainPolicyPara, status *CertChainPolicyStatus) (err error) { + r1, _, e1 := syscall.Syscall6(procCertVerifyCertificateChainPolicy.Addr(), 4, uintptr(policyOID), uintptr(unsafe.Pointer(chain)), uintptr(unsafe.Pointer(para)), uintptr(unsafe.Pointer(status)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func RegOpenKeyEx(key Handle, subkey *uint16, options uint32, desiredAccess uint32, result *Handle) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegOpenKeyExW.Addr(), 5, uintptr(key), uintptr(unsafe.Pointer(subkey)), uintptr(options), uintptr(desiredAccess), uintptr(unsafe.Pointer(result)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegCloseKey(key Handle) (regerrno error) { + r0, _, _ := syscall.Syscall(procRegCloseKey.Addr(), 1, uintptr(key), 0, 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegQueryInfoKey(key Handle, class *uint16, classLen *uint32, reserved *uint32, subkeysLen *uint32, maxSubkeyLen *uint32, maxClassLen *uint32, valuesLen *uint32, maxValueNameLen *uint32, maxValueLen *uint32, saLen *uint32, lastWriteTime *Filetime) (regerrno error) { + r0, _, _ := syscall.Syscall12(procRegQueryInfoKeyW.Addr(), 12, uintptr(key), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(subkeysLen)), uintptr(unsafe.Pointer(maxSubkeyLen)), uintptr(unsafe.Pointer(maxClassLen)), uintptr(unsafe.Pointer(valuesLen)), uintptr(unsafe.Pointer(maxValueNameLen)), uintptr(unsafe.Pointer(maxValueLen)), uintptr(unsafe.Pointer(saLen)), uintptr(unsafe.Pointer(lastWriteTime))) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegEnumKeyEx(key Handle, index uint32, name *uint16, nameLen *uint32, reserved *uint32, class *uint16, classLen *uint32, lastWriteTime *Filetime) (regerrno error) { + r0, _, _ := syscall.Syscall9(procRegEnumKeyExW.Addr(), 8, uintptr(key), uintptr(index), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(class)), uintptr(unsafe.Pointer(classLen)), uintptr(unsafe.Pointer(lastWriteTime)), 0) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func RegQueryValueEx(key Handle, name *uint16, reserved *uint32, valtype *uint32, buf *byte, buflen *uint32) (regerrno error) { + r0, _, _ := syscall.Syscall6(procRegQueryValueExW.Addr(), 6, uintptr(key), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(reserved)), uintptr(unsafe.Pointer(valtype)), uintptr(unsafe.Pointer(buf)), uintptr(unsafe.Pointer(buflen))) + if r0 != 0 { + regerrno = syscall.Errno(r0) + } + return +} + +func getCurrentProcessId() (pid uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentProcessId.Addr(), 0, 0, 0, 0) + pid = uint32(r0) + return +} + +func GetConsoleMode(console Handle, mode *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleMode.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(mode)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetConsoleMode(console Handle, mode uint32) (err error) { + r1, _, e1 := syscall.Syscall(procSetConsoleMode.Addr(), 2, uintptr(console), uintptr(mode), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetConsoleScreenBufferInfo(console Handle, info *ConsoleScreenBufferInfo) (err error) { + r1, _, e1 := syscall.Syscall(procGetConsoleScreenBufferInfo.Addr(), 2, uintptr(console), uintptr(unsafe.Pointer(info)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func WriteConsole(console Handle, buf *uint16, towrite uint32, written *uint32, reserved *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procWriteConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(towrite), uintptr(unsafe.Pointer(written)), uintptr(unsafe.Pointer(reserved)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ReadConsole(console Handle, buf *uint16, toread uint32, read *uint32, inputControl *byte) (err error) { + r1, _, e1 := syscall.Syscall6(procReadConsoleW.Addr(), 5, uintptr(console), uintptr(unsafe.Pointer(buf)), uintptr(toread), uintptr(unsafe.Pointer(read)), uintptr(unsafe.Pointer(inputControl)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreateToolhelp32Snapshot(flags uint32, processId uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procCreateToolhelp32Snapshot.Addr(), 2, uintptr(flags), uintptr(processId), 0) + handle = Handle(r0) + if handle == InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func Process32First(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32FirstW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func Process32Next(snapshot Handle, procEntry *ProcessEntry32) (err error) { + r1, _, e1 := syscall.Syscall(procProcess32NextW.Addr(), 2, uintptr(snapshot), uintptr(unsafe.Pointer(procEntry)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func DeviceIoControl(handle Handle, ioControlCode uint32, inBuffer *byte, inBufferSize uint32, outBuffer *byte, outBufferSize uint32, bytesReturned *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procDeviceIoControl.Addr(), 8, uintptr(handle), uintptr(ioControlCode), uintptr(unsafe.Pointer(inBuffer)), uintptr(inBufferSize), uintptr(unsafe.Pointer(outBuffer)), uintptr(outBufferSize), uintptr(unsafe.Pointer(bytesReturned)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreateSymbolicLink(symlinkfilename *uint16, targetfilename *uint16, flags uint32) (err error) { + r1, _, e1 := syscall.Syscall(procCreateSymbolicLinkW.Addr(), 3, uintptr(unsafe.Pointer(symlinkfilename)), uintptr(unsafe.Pointer(targetfilename)), uintptr(flags)) + if r1&0xff == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreateHardLink(filename *uint16, existingfilename *uint16, reserved uintptr) (err error) { + r1, _, e1 := syscall.Syscall(procCreateHardLinkW.Addr(), 3, uintptr(unsafe.Pointer(filename)), uintptr(unsafe.Pointer(existingfilename)), uintptr(reserved)) + if r1&0xff == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetCurrentThreadId() (id uint32) { + r0, _, _ := syscall.Syscall(procGetCurrentThreadId.Addr(), 0, 0, 0, 0) + id = uint32(r0) + return +} + +func CreateEvent(eventAttrs *SecurityAttributes, manualReset uint32, initialState uint32, name *uint16) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(manualReset), uintptr(initialState), uintptr(unsafe.Pointer(name)), 0, 0) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func CreateEventEx(eventAttrs *SecurityAttributes, name *uint16, flags uint32, desiredAccess uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateEventExW.Addr(), 4, uintptr(unsafe.Pointer(eventAttrs)), uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(desiredAccess), 0, 0) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func OpenEvent(desiredAccess uint32, inheritHandle bool, name *uint16) (handle Handle, err error) { + var _p0 uint32 + if inheritHandle { + _p0 = 1 + } else { + _p0 = 0 + } + r0, _, e1 := syscall.Syscall(procOpenEventW.Addr(), 3, uintptr(desiredAccess), uintptr(_p0), uintptr(unsafe.Pointer(name))) + handle = Handle(r0) + if handle == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procSetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ResetEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procResetEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func PulseEvent(event Handle) (err error) { + r1, _, e1 := syscall.Syscall(procPulseEvent.Addr(), 1, uintptr(event), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func DefineDosDevice(flags uint32, deviceName *uint16, targetPath *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDefineDosDeviceW.Addr(), 3, uintptr(flags), uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func DeleteVolumeMountPoint(volumeMountPoint *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procDeleteVolumeMountPointW.Addr(), 1, uintptr(unsafe.Pointer(volumeMountPoint)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FindFirstVolume(volumeName *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeW.Addr(), 2, uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength), 0) + handle = Handle(r0) + if handle == InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FindFirstVolumeMountPoint(rootPathName *uint16, volumeMountPoint *uint16, bufferLength uint32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procFindFirstVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + handle = Handle(r0) + if handle == InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FindNextVolume(findVolume Handle, volumeName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeW.Addr(), 3, uintptr(findVolume), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferLength)) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FindNextVolumeMountPoint(findVolumeMountPoint Handle, volumeMountPoint *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procFindNextVolumeMountPointW.Addr(), 3, uintptr(findVolumeMountPoint), uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(bufferLength)) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FindVolumeClose(findVolume Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeClose.Addr(), 1, uintptr(findVolume), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FindVolumeMountPointClose(findVolumeMountPoint Handle) (err error) { + r1, _, e1 := syscall.Syscall(procFindVolumeMountPointClose.Addr(), 1, uintptr(findVolumeMountPoint), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetDriveType(rootPathName *uint16) (driveType uint32) { + r0, _, _ := syscall.Syscall(procGetDriveTypeW.Addr(), 1, uintptr(unsafe.Pointer(rootPathName)), 0, 0) + driveType = uint32(r0) + return +} + +func GetLogicalDrives() (drivesBitMask uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDrives.Addr(), 0, 0, 0, 0) + drivesBitMask = uint32(r0) + if drivesBitMask == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetLogicalDriveStrings(bufferLength uint32, buffer *uint16) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procGetLogicalDriveStringsW.Addr(), 2, uintptr(bufferLength), uintptr(unsafe.Pointer(buffer)), 0) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetVolumeInformation(rootPathName *uint16, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationW.Addr(), 8, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetVolumeInformationByHandle(file Handle, volumeNameBuffer *uint16, volumeNameSize uint32, volumeNameSerialNumber *uint32, maximumComponentLength *uint32, fileSystemFlags *uint32, fileSystemNameBuffer *uint16, fileSystemNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetVolumeInformationByHandleW.Addr(), 8, uintptr(file), uintptr(unsafe.Pointer(volumeNameBuffer)), uintptr(volumeNameSize), uintptr(unsafe.Pointer(volumeNameSerialNumber)), uintptr(unsafe.Pointer(maximumComponentLength)), uintptr(unsafe.Pointer(fileSystemFlags)), uintptr(unsafe.Pointer(fileSystemNameBuffer)), uintptr(fileSystemNameSize), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetVolumeNameForVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16, bufferlength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumeNameForVolumeMountPointW.Addr(), 3, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), uintptr(bufferlength)) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetVolumePathName(fileName *uint16, volumePathName *uint16, bufferLength uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetVolumePathNameW.Addr(), 3, uintptr(unsafe.Pointer(fileName)), uintptr(unsafe.Pointer(volumePathName)), uintptr(bufferLength)) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetVolumePathNamesForVolumeName(volumeName *uint16, volumePathNames *uint16, bufferLength uint32, returnLength *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetVolumePathNamesForVolumeNameW.Addr(), 4, uintptr(unsafe.Pointer(volumeName)), uintptr(unsafe.Pointer(volumePathNames)), uintptr(bufferLength), uintptr(unsafe.Pointer(returnLength)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func QueryDosDevice(deviceName *uint16, targetPath *uint16, max uint32) (n uint32, err error) { + r0, _, e1 := syscall.Syscall(procQueryDosDeviceW.Addr(), 3, uintptr(unsafe.Pointer(deviceName)), uintptr(unsafe.Pointer(targetPath)), uintptr(max)) + n = uint32(r0) + if n == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetVolumeLabel(rootPathName *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeLabelW.Addr(), 2, uintptr(unsafe.Pointer(rootPathName)), uintptr(unsafe.Pointer(volumeName)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func SetVolumeMountPoint(volumeMountPoint *uint16, volumeName *uint16) (err error) { + r1, _, e1 := syscall.Syscall(procSetVolumeMountPointW.Addr(), 2, uintptr(unsafe.Pointer(volumeMountPoint)), uintptr(unsafe.Pointer(volumeName)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func WSAStartup(verreq uint32, data *WSAData) (sockerr error) { + r0, _, _ := syscall.Syscall(procWSAStartup.Addr(), 2, uintptr(verreq), uintptr(unsafe.Pointer(data)), 0) + if r0 != 0 { + sockerr = syscall.Errno(r0) + } + return +} + +func WSACleanup() (err error) { + r1, _, e1 := syscall.Syscall(procWSACleanup.Addr(), 0, 0, 0, 0) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func WSAIoctl(s Handle, iocc uint32, inbuf *byte, cbif uint32, outbuf *byte, cbob uint32, cbbr *uint32, overlapped *Overlapped, completionRoutine uintptr) (err error) { + r1, _, e1 := syscall.Syscall9(procWSAIoctl.Addr(), 9, uintptr(s), uintptr(iocc), uintptr(unsafe.Pointer(inbuf)), uintptr(cbif), uintptr(unsafe.Pointer(outbuf)), uintptr(cbob), uintptr(unsafe.Pointer(cbbr)), uintptr(unsafe.Pointer(overlapped)), uintptr(completionRoutine)) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func socket(af int32, typ int32, protocol int32) (handle Handle, err error) { + r0, _, e1 := syscall.Syscall(procsocket.Addr(), 3, uintptr(af), uintptr(typ), uintptr(protocol)) + handle = Handle(r0) + if handle == InvalidHandle { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func Setsockopt(s Handle, level int32, optname int32, optval *byte, optlen int32) (err error) { + r1, _, e1 := syscall.Syscall6(procsetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(optlen), 0) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func Getsockopt(s Handle, level int32, optname int32, optval *byte, optlen *int32) (err error) { + r1, _, e1 := syscall.Syscall6(procgetsockopt.Addr(), 5, uintptr(s), uintptr(level), uintptr(optname), uintptr(unsafe.Pointer(optval)), uintptr(unsafe.Pointer(optlen)), 0) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func bind(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func connect(s Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procconnect.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func getsockname(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func getpeername(s Handle, rsa *RawSockaddrAny, addrlen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func listen(s Handle, backlog int32) (err error) { + r1, _, e1 := syscall.Syscall(proclisten.Addr(), 2, uintptr(s), uintptr(backlog), 0) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func shutdown(s Handle, how int32) (err error) { + r1, _, e1 := syscall.Syscall(procshutdown.Addr(), 2, uintptr(s), uintptr(how), 0) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func Closesocket(s Handle) (err error) { + r1, _, e1 := syscall.Syscall(procclosesocket.Addr(), 1, uintptr(s), 0, 0) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func AcceptEx(ls Handle, as Handle, buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, recvd *uint32, overlapped *Overlapped) (err error) { + r1, _, e1 := syscall.Syscall9(procAcceptEx.Addr(), 8, uintptr(ls), uintptr(as), uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(overlapped)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetAcceptExSockaddrs(buf *byte, rxdatalen uint32, laddrlen uint32, raddrlen uint32, lrsa **RawSockaddrAny, lrsalen *int32, rrsa **RawSockaddrAny, rrsalen *int32) { + syscall.Syscall9(procGetAcceptExSockaddrs.Addr(), 8, uintptr(unsafe.Pointer(buf)), uintptr(rxdatalen), uintptr(laddrlen), uintptr(raddrlen), uintptr(unsafe.Pointer(lrsa)), uintptr(unsafe.Pointer(lrsalen)), uintptr(unsafe.Pointer(rrsa)), uintptr(unsafe.Pointer(rrsalen)), 0) + return +} + +func WSARecv(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecv.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func WSASend(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASend.Addr(), 7, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine)), 0, 0) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSARecvFrom.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(recvd)), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) { + r1, _, e1 := syscall.Syscall9(procWSASendTo.Addr(), 9, uintptr(s), uintptr(unsafe.Pointer(bufs)), uintptr(bufcnt), uintptr(unsafe.Pointer(sent)), uintptr(flags), uintptr(unsafe.Pointer(to)), uintptr(tolen), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(croutine))) + if r1 == socket_error { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetHostByName(name string) (h *Hostent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + return _GetHostByName(_p0) +} + +func _GetHostByName(name *byte) (h *Hostent, err error) { + r0, _, e1 := syscall.Syscall(procgethostbyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + h = (*Hostent)(unsafe.Pointer(r0)) + if h == nil { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetServByName(name string, proto string) (s *Servent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + var _p1 *byte + _p1, err = syscall.BytePtrFromString(proto) + if err != nil { + return + } + return _GetServByName(_p0, _p1) +} + +func _GetServByName(name *byte, proto *byte) (s *Servent, err error) { + r0, _, e1 := syscall.Syscall(procgetservbyname.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(proto)), 0) + s = (*Servent)(unsafe.Pointer(r0)) + if s == nil { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func Ntohs(netshort uint16) (u uint16) { + r0, _, _ := syscall.Syscall(procntohs.Addr(), 1, uintptr(netshort), 0, 0) + u = uint16(r0) + return +} + +func GetProtoByName(name string) (p *Protoent, err error) { + var _p0 *byte + _p0, err = syscall.BytePtrFromString(name) + if err != nil { + return + } + return _GetProtoByName(_p0) +} + +func _GetProtoByName(name *byte) (p *Protoent, err error) { + r0, _, e1 := syscall.Syscall(procgetprotobyname.Addr(), 1, uintptr(unsafe.Pointer(name)), 0, 0) + p = (*Protoent)(unsafe.Pointer(r0)) + if p == nil { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func DnsQuery(name string, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + var _p0 *uint16 + _p0, status = syscall.UTF16PtrFromString(name) + if status != nil { + return + } + return _DnsQuery(_p0, qtype, options, extra, qrs, pr) +} + +func _DnsQuery(name *uint16, qtype uint16, options uint32, extra *byte, qrs **DNSRecord, pr *byte) (status error) { + r0, _, _ := syscall.Syscall6(procDnsQuery_W.Addr(), 6, uintptr(unsafe.Pointer(name)), uintptr(qtype), uintptr(options), uintptr(unsafe.Pointer(extra)), uintptr(unsafe.Pointer(qrs)), uintptr(unsafe.Pointer(pr))) + if r0 != 0 { + status = syscall.Errno(r0) + } + return +} + +func DnsRecordListFree(rl *DNSRecord, freetype uint32) { + syscall.Syscall(procDnsRecordListFree.Addr(), 2, uintptr(unsafe.Pointer(rl)), uintptr(freetype), 0) + return +} + +func DnsNameCompare(name1 *uint16, name2 *uint16) (same bool) { + r0, _, _ := syscall.Syscall(procDnsNameCompare_W.Addr(), 2, uintptr(unsafe.Pointer(name1)), uintptr(unsafe.Pointer(name2)), 0) + same = r0 != 0 + return +} + +func GetAddrInfoW(nodename *uint16, servicename *uint16, hints *AddrinfoW, result **AddrinfoW) (sockerr error) { + r0, _, _ := syscall.Syscall6(procGetAddrInfoW.Addr(), 4, uintptr(unsafe.Pointer(nodename)), uintptr(unsafe.Pointer(servicename)), uintptr(unsafe.Pointer(hints)), uintptr(unsafe.Pointer(result)), 0, 0) + if r0 != 0 { + sockerr = syscall.Errno(r0) + } + return +} + +func FreeAddrInfoW(addrinfo *AddrinfoW) { + syscall.Syscall(procFreeAddrInfoW.Addr(), 1, uintptr(unsafe.Pointer(addrinfo)), 0, 0) + return +} + +func GetIfEntry(pIfRow *MibIfRow) (errcode error) { + r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { + r0, _, _ := syscall.Syscall(procGetAdaptersInfo.Addr(), 2, uintptr(unsafe.Pointer(ai)), uintptr(unsafe.Pointer(ol)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func SetFileCompletionNotificationModes(handle Handle, flags uint8) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(handle), uintptr(flags), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { + r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) + n = int32(r0) + if n == -1 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) { + r0, _, _ := syscall.Syscall6(procGetAdaptersAddresses.Addr(), 5, uintptr(family), uintptr(flags), uintptr(reserved), uintptr(unsafe.Pointer(adapterAddresses)), uintptr(unsafe.Pointer(sizePointer)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + +func GetACP() (acp uint32) { + r0, _, _ := syscall.Syscall(procGetACP.Addr(), 0, 0, 0, 0) + acp = uint32(r0) + return +} + +func MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) { + r0, _, e1 := syscall.Syscall6(procMultiByteToWideChar.Addr(), 6, uintptr(codePage), uintptr(dwFlags), uintptr(unsafe.Pointer(str)), uintptr(nstr), uintptr(unsafe.Pointer(wchar)), uintptr(nwchar)) + nwrite = int32(r0) + if nwrite == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func TranslateName(accName *uint16, accNameFormat uint32, desiredNameFormat uint32, translatedName *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procTranslateNameW.Addr(), 5, uintptr(unsafe.Pointer(accName)), uintptr(accNameFormat), uintptr(desiredNameFormat), uintptr(unsafe.Pointer(translatedName)), uintptr(unsafe.Pointer(nSize)), 0) + if r1&0xff == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetUserNameEx(nameFormat uint32, nameBuffre *uint16, nSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetUserNameExW.Addr(), 3, uintptr(nameFormat), uintptr(unsafe.Pointer(nameBuffre)), uintptr(unsafe.Pointer(nSize))) + if r1&0xff == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func NetUserGetInfo(serverName *uint16, userName *uint16, level uint32, buf **byte) (neterr error) { + r0, _, _ := syscall.Syscall6(procNetUserGetInfo.Addr(), 4, uintptr(unsafe.Pointer(serverName)), uintptr(unsafe.Pointer(userName)), uintptr(level), uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NetGetJoinInformation(server *uint16, name **uint16, bufType *uint32) (neterr error) { + r0, _, _ := syscall.Syscall(procNetGetJoinInformation.Addr(), 3, uintptr(unsafe.Pointer(server)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(bufType))) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func NetApiBufferFree(buf *byte) (neterr error) { + r0, _, _ := syscall.Syscall(procNetApiBufferFree.Addr(), 1, uintptr(unsafe.Pointer(buf)), 0, 0) + if r0 != 0 { + neterr = syscall.Errno(r0) + } + return +} + +func LookupAccountSid(systemName *uint16, sid *SID, name *uint16, nameLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func LookupAccountName(systemName *uint16, accountName *uint16, sid *SID, sidLen *uint32, refdDomainName *uint16, refdDomainNameLen *uint32, use *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidLen)), uintptr(unsafe.Pointer(refdDomainName)), uintptr(unsafe.Pointer(refdDomainNameLen)), uintptr(unsafe.Pointer(use)), 0, 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ConvertSidToStringSid(sid *SID, stringSid **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(stringSid)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func ConvertStringSidToSid(stringSid *uint16, sid **SID) (err error) { + r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(stringSid)), uintptr(unsafe.Pointer(sid)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetLengthSid(sid *SID) (len uint32) { + r0, _, _ := syscall.Syscall(procGetLengthSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + len = uint32(r0) + return +} + +func CopySid(destSidLen uint32, destSid *SID, srcSid *SID) (err error) { + r1, _, e1 := syscall.Syscall(procCopySid.Addr(), 3, uintptr(destSidLen), uintptr(unsafe.Pointer(destSid)), uintptr(unsafe.Pointer(srcSid))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func AllocateAndInitializeSid(identAuth *SidIdentifierAuthority, subAuth byte, subAuth0 uint32, subAuth1 uint32, subAuth2 uint32, subAuth3 uint32, subAuth4 uint32, subAuth5 uint32, subAuth6 uint32, subAuth7 uint32, sid **SID) (err error) { + r1, _, e1 := syscall.Syscall12(procAllocateAndInitializeSid.Addr(), 11, uintptr(unsafe.Pointer(identAuth)), uintptr(subAuth), uintptr(subAuth0), uintptr(subAuth1), uintptr(subAuth2), uintptr(subAuth3), uintptr(subAuth4), uintptr(subAuth5), uintptr(subAuth6), uintptr(subAuth7), uintptr(unsafe.Pointer(sid)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func FreeSid(sid *SID) (err error) { + r1, _, e1 := syscall.Syscall(procFreeSid.Addr(), 1, uintptr(unsafe.Pointer(sid)), 0, 0) + if r1 != 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func EqualSid(sid1 *SID, sid2 *SID) (isEqual bool) { + r0, _, _ := syscall.Syscall(procEqualSid.Addr(), 2, uintptr(unsafe.Pointer(sid1)), uintptr(unsafe.Pointer(sid2)), 0) + isEqual = r0 != 0 + return +} + +func checkTokenMembership(tokenHandle Token, sidToCheck *SID, isMember *int32) (err error) { + r1, _, e1 := syscall.Syscall(procCheckTokenMembership.Addr(), 3, uintptr(tokenHandle), uintptr(unsafe.Pointer(sidToCheck)), uintptr(unsafe.Pointer(isMember))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func OpenProcessToken(h Handle, access uint32, token *Token) (err error) { + r1, _, e1 := syscall.Syscall(procOpenProcessToken.Addr(), 3, uintptr(h), uintptr(access), uintptr(unsafe.Pointer(token))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetTokenInformation(t Token, infoClass uint32, info *byte, infoLen uint32, returnedLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetTokenInformation.Addr(), 5, uintptr(t), uintptr(infoClass), uintptr(unsafe.Pointer(info)), uintptr(infoLen), uintptr(unsafe.Pointer(returnedLen)), 0) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +} + +func GetUserProfileDirectory(t Token, dir *uint16, dirLen *uint32) (err error) { + r1, _, e1 := syscall.Syscall(procGetUserProfileDirectoryW.Addr(), 3, uintptr(t), uintptr(unsafe.Pointer(dir)), uintptr(unsafe.Pointer(dirLen))) + if r1 == 0 { + if e1 != 0 { + err = errnoErr(e1) + } else { + err = syscall.EINVAL + } + } + return +}

8^T^_F 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 z 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